⚙️ Control Theory · Robotics
📅 Березень 2026⏱ ≈ 11 хв читання🔴 Advanced

Modern Control Theory

Classical PID control tunes three numbers for a single feedback loop. Modern control theory re-casts the problem in matrix algebra: describe the full system state, ask what inputs achieve desired dynamics, and design an optimal controller that minimises a cost function — all at once.

1. State Space Representation

Any LTI (linear time-invariant) system can be written in state-space form. The state vector x(t) contains the minimum information needed to predict future behaviour:

Continuous-time state-space ẋ = Ax + Bu // state equation y = Cx + Du // output equation x ∈ ℝⁿ (state vector) u ∈ ℝᵐ (input / control) y ∈ ℝᵖ (measured output) A ∈ ℝⁿˣⁿ (system / dynamics matrix) B ∈ ℝⁿˣᵐ (input matrix) C ∈ ℝᵖˣⁿ (output matrix) D ∈ ℝᵖˣᵐ (feedthrough matrix)

Example — inverted pendulum on a cart: state x = [cart_pos, cart_vel, angle, angular_vel]ᵀ, input u = [force]. A is the linearised dynamics around the upright unstable equilibrium.

Discrete-time version: x[k+1] = Ax[k] + Bu[k]. The eigenvalues of A determine stability: for continuous-time, stable iff all eigenvalues have negative real parts; for discrete-time, iff all eigenvalues lie inside the unit circle.

2. Controllability & Observability

Two fundamental structural properties determine whether control and estimation are even possible:

Controllability matrix 𝒞 = [B | AB | A²B | ... | Aⁿ⁻¹B] ∈ ℝⁿˣ(nm) System is controllable iff rank(𝒞) = n → can drive x to any desired state in finite time
Observability matrix 𝒪 = [C; CA; CA²; ...; CAⁿ⁻¹] ∈ ℝ(np)ˣn System is observable iff rank(𝒪) = n → can reconstruct full state x from output y

If a system is not fully controllable, some modes cannot be influenced by the input — they are uncontrollable. If they are stable, the system is "stabilisable" and we can still design useful controllers. Similarly, unobservable stable modes are acceptable (system is "detectable").

Kalman decomposition: Any state-space system can be decomposed into four parts: (1) controllable & observable, (2) controllable but not observable, (3) observable but not controllable, (4) neither. Only part (1) appears in the transfer function.

3. Pole Placement

Assuming full state feedback u = −Kx (we measure or estimate all states), the closed-loop system becomes:

Closed-loop dynamics ẋ = (A − BK)x Closed-loop eigenvalues = eigenvalues of (A − BK)

Pole placement: Choose desired eigenvalues (poles) for the closed-loop system. Then solve for the gain matrix K that places the eigenvalues there. The Ackermann formula (for SISO systems) or eigenvalue assignment algorithms (for MIMO) solve this.

Where should you place poles? Each eigenvalue σ ± jω gives a mode with decay rate σ (must be negative for stability) and oscillation frequency ω. Fast poles → fast response, but large control effort. Rules of thumb:

4. Linear Quadratic Regulator (LQR)

Pole placement requires guessing pole locations. LQR removes the guesswork: find the gain K that minimises a quadratic cost function over infinite time:

LQR cost function J = ∫₀^∞ (xᵀQx + uᵀRu) dt → min Q = state cost matrix (n×n, positive semidefinite) R = input cost matrix (m×m, positive definite) Solution: K = R⁻¹BᵀP where P satisfies the Algebraic Riccati Equation (ARE): AᵀP + PA − PBR⁻¹BᵀP + Q = 0

Q penalises large state deviations; R penalises large control effort. Increase Q_ii → faster response for state i (at cost of more aggressive input). Increase R → slower, gentler response. The resulting K is optimal for this tradeoff, and the closed-loop system (A−BK) is guaranteed stable for any positive-definite Q, R.

Tuning insight: a common starting point is Q = C'C (penalise outputs) and R = αI. Decrease α to get more aggressive control. This is often easier to tune intuitively than placing poles directly.

5. Luenberger Observer

In practice we don't measure the full state — only y = Cx + noise. The Luenberger observer reconstructs x̂ (an estimate of x) from past inputs and measured outputs:

Observer (state estimator) x̂̇ = Ax̂ + Bu + L(y − Cx̂) y − Cx̂ = innovation (measurement residual) L ∈ ℝⁿˣᵖ = observer gain matrix Estimation error ẽ = x − x̂: ė = (A − LC)ẽ

Design L so eigenvalues of (A−LC) are stable and fast. By duality, this is exactly like pole placement but transposed. The observer poles should be placed ~2–5× faster than the controller poles so the estimator converges before the controller lag matters.

Alternatively, choose L using LQR duality — the dual optimal observer is the Kalman filter, with L = PCᵀR_n⁻¹ where P solves the dual Riccati equation and R_n is the measurement noise covariance.

6. LQG — Observer + Controller

Combining LQR control with the Kalman filter observer gives the Linear Quadratic Gaussian (LQG) controller — the gold standard of linear optimal control:

Reference r
LQR K gain
Plant (A, B, C)
Measured output y
Kalman Filter
→ x̂

The separation principle: under LQG assumptions (linear system, Gaussian noise), the optimal controller and optimal estimator can be designed independently and combined. u = −Kx̂.

LQG limitation: Not robust to model uncertainty — can become unstable with small perturbations. LQG with Loop Transfer Recovery (LQG/LTR) or H∞ control adds robustness guarantees.

7. Applications

Nonlinear systems: Real systems are nonlinear. Common approaches: linearise around operating point (→ use LQR), extended/unscented Kalman filter for estimation, Model Predictive Control (MPC, solve QP at each step over a receding horizon), or reinforcement learning for hard nonlinearities.