Worked examples — LQG — LQR + Kalman filter, separation principle
Before any number: three tiny reminders so no symbol is unearned.
The scenario matrix
Every cell below is hit by at least one worked example. Read it as a checklist.
| # | Case class | What makes it special | Hit by |
|---|---|---|---|
| A | Stable scalar plant () | drift already helps | Ex 1 |
| B | Unstable scalar plant () | control must stabilize | Ex 2 |
| C | Cheap control limit () | gain blows up, fast poles | Ex 3 |
| D | Expensive control limit () | gain minimal, mirror trick | Ex 3 |
| E | Zero state penalty () on stable plant | degenerate: do nothing | Ex 4 |
| F | Kalman: clean vs noisy sensor ( small/large) | trust sensor vs model | Ex 5 |
| G | 2×2 plant, full separation, poles = union | matrix case, no coupling | Ex 6 |
| H | Real-world word problem (spacecraft rate damping) | translate physics matrices | Ex 7 |
| I | Exam twist: uncontrollable / degenerate | Riccati has no stabilizing | Ex 8 |
Ex 1 — Cell A: stable scalar plant
Forecast: the plant already decays on its own (). Will the optimal controller push hard or barely nudge? Guess the sign of the pole before reading.
- Write CARE for scalars. With scalars everything commutes, so and . Why this step? CARE is the optimality condition from the HJB equation; solving it is the whole LQR problem.
- Take the positive root (the value function must be a bowl, so ): Why this step? Of the two algebraic roots only gives a real cost-to-go and a stabilizing gain.
- Gain and closed loop: , so Why this step? is the state-feedback law; is the pole of the controlled system.
Verify: the plant was already stable () and the optimum only made it more stable () — modest push because the plant helps itself. ✅ Units: dimensionless here (all matrices scalar).
Ex 2 — Cell B: unstable scalar plant
Forecast: an unstable plant with must be pulled below zero. Will exceed ? Guess.
- CARE: . Why this step? Same scalar CARE template; only changed.
- Positive root: . Why this step? Pick for the stabilizing solution.
- Gain: . Closed loop: . Why this step? The controller must overcome the drift and then some to reach a negative pole.
Verify: indeed , exactly as an unstable plant demands — the controller "cancels" the and adds of decay. ✅
Ex 3 — Cells C & D: cheap vs expensive control limits
Forecast: with free control we expect an infinitely aggressive pole; with priceless control we expect the mildest stabilizing pole. What is that mildest pole for an unstable ?
- General scalar CARE with kept: , so Why this step? Keeping symbolic lets us take clean limits instead of guessing.
- Cheap control : ; pole . Why this step? Free control means no reason to hold back — infinite gain, instantaneous correction. (Physically impossible, hence we never set .)
- Expensive control : ; pole . Why this step? This is the famous mirror-image result: the cheapest-effort stabilizer just reflects the unstable pole across the imaginary axis to .
Verify: at , take → (matches parent Example 1); take → . Limits bracket the parent's answer. ✅
Ex 4 — Cell E: degenerate on a stable plant
Forecast: says "state error is free." On an already-stable plant, is there any reason to spend control effort?
- CARE with : . Why this step? Same template with ; factor it.
- Choose : the roots are and . Only is admissible. Why this step? Cost-to-go cannot be negative; is rejected.
- Gain: , so . Closed loop . Why this step? With no state penalty and a stable plant, the optimal action is do nothing and let the plant decay for free.
Verify: : with a decaying plant and no penalties, the total cost really is zero. ✅
Ex 5 — Cell F: Kalman clean vs noisy sensor
Forecast: which sensor makes us lean on the measurement (big ) and which makes us trust the model (small )?
- FARE for scalars: , i.e. Why this step? FARE is the dual of CARE (swap , , , ).
- Clean sensor : . Then . Why this step? Tiny means the sensor is trustworthy — large pulls the estimate hard toward .
- Noisy sensor : . Then . Why this step? Huge means the sensor lies — small tells the filter to trust its model.
Verify: is roughly larger than — monotone with sensor quality, exactly as "large → small " predicts. ✅
Ex 6 — Cell G: 2×2 plant, separation gives union of poles
Forecast: because everything is diagonal, each axis is an independent scalar problem. Predict that the 4 poles are just two copies of a scalar answer, once per axis.
- Diagonal ⇒ two scalar CAREs. Axis 1: , , pole . Why this step? A diagonal system decouples the state-feedback problem into independent channels.
- Axis 2: , , pole . Why this step? Same, with .
- Estimator poles by duality: mirrors the CAREs, giving and estimator poles . Why this step? FARE = CARE here (symmetric numbers), so estimator poles equal controller poles.
- Union of poles. By the block-triangular structure the LQG poles are Why this step? The block in makes eigenvalues the union — the separation principle, applied.
Verify: all four poles are strictly negative → closed loop stable, and the set is exactly (controller poles) ∪ (estimator poles). ✅
Ex 7 — Cell H: real-world word problem (spacecraft rate damping)
Forecast: the axis already de-spins slowly (). Will the controller add strong or gentle damping given the heavy ?
- Translate physics to matrices: . Rate is the state; torque is the input. Why this step? GNC problems are just state-space in disguise — identify first.
- CARE: . Gain . Closed loop . Why this step? Heavy demands tight rate control, so we expect a fast pole — confirmed.
- FARE: . Kalman gain . Estimator pole . Why this step? Gyro noise () is comparable to process noise, so a moderate blends model and sensor.
- Assemble the controller: run , then command . Why this step? Separation lets us bolt the two pieces together directly.
Verify: controller pole (fast damping, as heavy demands) and estimator pole are both stable; units of are , matching a rate-damping gain. ✅
Ex 8 — Cell I: exam twist, degenerate/uncontrollable
Forecast: with the control does nothing. Can LQR possibly stabilize an unstable, uncontrollable plant?
- Plug into CARE: . Why this step? The quadratic term vanishes because ; we're left with a linear equation.
- Reject the root. is not a valid cost-to-go — there is no . Why this step? No admissible means the infinite-horizon cost is : the unstable mode is uncontrollable and cannot be regulated.
- Interpret: LQR requires stabilizable. With and , the diverging mode is untouchable, so for any input. Why this step? This is the standard exam gotcha: check stabilizability before trusting a Riccati solution.
Verify: the only algebraic root violates ; consistent with for an unstable uncontrollable mode. ✅
Recall Quick self-test
Scalar : what is ? ::: (Ex 2) Mirror-pole limit for : closed-loop pole? ::: (reflect ) (Ex 3) , : optimal control? ::: , do nothing (Ex 4) Huge sensor noise : is big or small? ::: small — trust the model (Ex 5) : does LQR have a solution? ::: no — uncontrollable unstable mode, (Ex 8)