| name | digital-control |
| description | Digital control systems — Z-transform, sampling theorem, discretization (ZOH, Tustin), PID digital implementation, anti-windup, state-space design, pole placement, LQR, deadbeat control, stability margins. |
| metadata | {"priority":7,"promptSignals":{"phrases":["digital control","Z-transform","discrete control","sampled data","digital PID","discretization"],"minScore":3}} |
Digital Control Systems — Complete Skill
Sampling Theorem
Nyquist-Shannon sampling theorem:
f_s ≥ 2 × f_max [sampling frequency must be at least twice highest signal frequency]
f_s < 2f_max → aliasing (low-frequency artifact in sampled signal)
Anti-aliasing filter: low-pass with cutoff f_c = f_s/2; applied BEFORE ADC
Practical sampling rate: f_s ≥ 10–20× f_bandwidth (for adequate control performance)
For 10 Hz bandwidth controller: sample at 100–200 Hz (T = 0.005–0.01 s)
Nyquist frequency: f_N = f_s/2 → maximum representable frequency in digital system
Z-Transform
Definition:
Z{x[k]} = X(z) = Σ_{k=0}^∞ x[k] × z^(-k)
Key transform pairs:
x[k] = δ[k] (unit impulse): X(z) = 1
x[k] = u[k] (unit step): X(z) = z/(z-1)
x[k] = a^k: X(z) = z/(z-a)
x[k] = k·a^k: X(z) = az/(z-a)²
x[k] = e^(-akT)·sin(bkT): X(z) = ze^(-aT)sin(bT) / (z² - 2ze^(-aT)cos(bT) + e^(-2aT))
Relationship to Laplace:
z = e^(sT) [T = sampling period; exact; used for exact substitution]
Approximations: z ≈ (1+sT/2)/(1-sT/2) (Tustin/bilinear); z ≈ 1+sT (Euler forward)
Inverse Z-transform:
Long division, partial fractions, or residue method → find x[k] sequence
Discretization Methods
Zero-Order Hold (ZOH) — Most Common
Process:
- Hold input constant over each sampling interval T
- Exact discrete equivalent: G_d(z) = (1-z^(-1)) × Z{G(s)/s}
Good for: digital implementation of analog controllers; exact for step inputs
Bilinear (Tustin) Transform
s → (2/T)(z-1)/(z+1)
Frequency warping: ω_digital = (2/T) × tan(ω_analog × T/2) → pre-warp critical frequencies
Good for: audio, filter design; preserves stability; frequency response approximation
Pre-warped Tustin:
ω_d_prewarped = (2/T) × tan(ω_c × T/2) → design analog at ω_d_prewarped then apply Tustin
Forward Euler
s → (z-1)/T
Tends to be unstable for large T; simple but inaccurate; not recommended for control
Backward Euler
s → (z-1)/(Tz)
Always stable; conservative; overdamped response
Digital PID Implementation
Continuous PID:
u(t) = Kp × e + Ki × ∫e dt + Kd × de/dt
Discrete PID (position form):
u[k] = Kp×e[k] + Ki×T×Σe[i] + Kd×(e[k]-e[k-1])/T
Velocity (incremental) form:
Δu[k] = u[k] - u[k-1] = Kp×(e[k]-e[k-1]) + Ki×T×e[k] + Kd×(e[k]-2e[k-1]+e[k-2])/T
Anti-windup:
Method 1 (clamping): if actuator saturated AND integrator driving further into saturation → stop integrating
Method 2 (back-calculation): u_actual = sat(u_calc); integrator input += K_aw × (u_actual - u_calc)
Recommended K_aw = 1/Ti (= Ki/Kp) for anti-windup back-calculation gain
Derivative filter (prevent high-freq amplification):
D_filtered[k] = (α × D_filtered[k-1] + (1-α) × e[k]) [first-order filter; α = τ_d/(τ_d + T)]
Or: discrete low-pass after pure derivative in Tustin:
N = derivative filter coefficient (typically 5–20); D_pole at s = -N/T_d
Stability Analysis
Characteristic equation: 1 + G_OL(z) × H(z) = 0
Stability: all poles inside unit circle |z| < 1
Jury stability criterion (analog to Routh-Hurwitz):
For polynomial: a_n + a_{n-1}z + ... + a_0 z^n = 0
Jury array → check necessary conditions → all roots inside unit circle
Root locus for digital: same rules as s-plane but map to z-plane; unit circle = stability boundary
Digital Frequency Response (Bode)
Substitute z = e^(jωT):
G(jω) = G(z)|_{z=e^(jωT)} [evaluate for 0 ≤ ω ≤ ω_s/2]
Gain margin: frequency where ∠G = -180°; GM = 1/|G|
Phase margin: frequency where |G| = 1; PM = 180° + ∠G
Rule of thumb: PM ≥ 45°; GM ≥ 6 dB for robust stability
State-Space Digital Design
Discrete state-space:
x[k+1] = Φ x[k] + Γ u[k]
y[k] = C x[k] + D u[k]
Φ = e^(AT) (matrix exponential); Γ = ∫₀^T e^(Aτ)B dτ
Pole placement (state feedback):
u = -K x → closed-loop: x[k+1] = (Φ-ΓK) x[k]
Choose K so eigenvalues of (Φ-ΓK) are at desired z locations
Map s-plane design poles using z = e^(sT); place inside unit circle
Desired poles (digital):
For ωₙ and ζ: s₁,₂ = -ζωₙ ± jωₙ√(1-ζ²) → z₁,₂ = e^(s₁T)
Settling time (digital): n_settle = 4/(ζωₙT) samples
LQR (Linear Quadratic Regulator)
Minimization objective:
J = Σ_{k=0}^∞ (x^T Q x + u^T R u) [Q ≥ 0 state penalty; R > 0 control penalty]
Solution: discrete algebraic Riccati equation (DARE) → optimal gain K*
u[k] = -K* x[k]
Tuning:
Q = C^T C × q_i (weight on outputs); R = r_i × I (control effort weight)
Increase q_i → faster response (more aggressive); increase r_i → slower (less control effort)
Trade-off: Q/R ratio determines bandwidth
MATLAB/Python: dlqr(Phi, Gamma, Q, R) → K, P, eigvals
Deadbeat Control
Minimum-time digital controller: drives error to zero in minimum samples
k_min = n (number of plant poles) samples to reach zero error
Problem: large initial control action; sensitive to model uncertainty; requires exact model
Practical: use deadbeat only for servo positioning with good model; not for regulation
Observer (Digital Kalman Filter)
Prediction:
x̂[k|k-1] = Φ x̂[k-1|k-1] + Γ u[k-1]
P[k|k-1] = Φ P Φ^T + Q_noise [Q_noise = process noise covariance]
Update:
K_f = P[k|k-1] C^T × (C P[k|k-1] C^T + R_noise)^(-1) [Kalman gain]
x̂[k|k] = x̂[k|k-1] + K_f × (y[k] - C x̂[k|k-1])
P[k|k] = (I - K_f C) P[k|k-1]
Standards
| Standard | Scope |
|---|
| IEC 61131-3 | Programming languages for PLCs |
| IEC 61511 | Safety instrumented systems (SIS) |
| ISA-5.1 | P&ID symbols |
| IEC 60268-3 | Sound system equipment — amplifiers |
| MIL-STD-1553 | Digital communication bus |
Output
Provide: sampling period T [s] (justify vs. 10× bandwidth rule), discretization method (ZOH/Tustin/Euler), discrete transfer function G_d(z) with coefficients, PID discrete gains (Kp, Ki_discrete, Kd_discrete), anti-windup method (back-calculation K_aw), pole locations in z-plane (desired vs. achieved), stability margins (gain margin [dB], phase margin [°]), state-feedback gain K (if LQR), Q and R weights, observer poles (3× faster than control), and applicable standard (IEC 61131-3, ISA-5.1).