Worked examples — Controllability matrix — rank test
Everything here uses only ideas already built in the parent: the State-space representation , matrix multiplication, determinant/rank, and Cayley–Hamilton theorem to know we stop at .
The scenario matrix
Before any numbers, let's map out the space of possible cases. Every controllability problem lives in one of these cells. Our 8 examples below each carry a tag like (C2) telling you which cell it fills.
| Cell | What varies | The question it stress-tests |
|---|---|---|
| C1 | Full rank, single input | The clean "yes, controllable" |
| C2 | Rank , decoupled modes | A mode the actuator never touches |
| C3 | Coupling rescues a shared | Same , different flips the answer |
| C4 | (degenerate input) | No actuator at all — the trivial "no" |
| C5 | Multi-input () | When one input alone fails but two together win |
| C6 | , needs | Higher power actually matters |
| C7 | Repeated eigenvalue (Jordan block) | The classic silent trap |
| C8 | Word problem + exam twist | Translate physics → → rank |
Recall Reading the rank quickly
Rank the number of linearly independent columns (equivalently rows). For a square , full rank. For non-square, row-reduce and count non-zero rows.
C1 — Full rank, single input
-
Compute (we need up to because ). Why this step? Cayley–Hamilton theorem guarantees adds nothing new, so is the complete list.
-
Stack into . Why this step? The reachable subspace is the column span of ; stacking side by side is how we collect all reachable directions.
-
Take the determinant (fastest rank test for a square matrix). Why this step? Non-zero determinant full rank .
✅ Controllable.
C2 — Decoupled modes, actuator misses one
-
Compute . Why this step? Diagonal scales each coordinate; the zero in row 2 of stays zero.
-
Stack. Why this step? Row 2 is entirely zero — a giant hint.
-
Rank. Second row all zeros . Why this step? One independent row means one reachable dimension. is the dead direction.
❌ Not controllable. The mode runs with no input.
C3 — Same , coupling in saves it
-
Compute . Why this step? Each mode scales by its own eigenvalue, so and now differ in proportion, not just magnitude.
-
Stack.
-
Determinant. Why this step? Non-zero rank .
✅ Controllable.

C4 — Degenerate input
-
Compute . Why this step? times the zero vector is zero — every power of applied to stays .
-
Stack.
-
Rank. All zeros .
❌ Uncontrollable — reachable subspace is just the origin. This is the extreme limiting case: zero rank, zero reachable dimensions.
C5 — Multi-input: two weak inputs, one strong system
-
Compute . Since , and . Why this step? With , higher power blocks vanish — only itself carries reachable directions.
-
Stack , size :
-
Rank. Only two non-zero rows .
❌ Uncontrollable. Direction 3 is unreachable — no thruster, no coupling.
C6 — where genuinely matters
-
Compute . Why this step? shifts the "1" one row up — this is the cascade in action.
-
Compute . Why this step? Now the "1" reaches the top state — this final power is what fills the last dimension. Skipping it would falsely look rank-2.
-
Stack and check. This is the anti-diagonal identity: — cleaner to note it's a permutation matrix, so , rank . Why this step? Full rank .
✅ Controllable. This is why the parent says "stop at " and not earlier — here was essential.
C7 — The repeated-eigenvalue trap
-
Case (a): compute . Stack: , . Controllable ✅ Why this step? The off-diagonal mixes the two states, so a single input reaches both.
-
Case (b): compute . Stack: , . Uncontrollable ❌ Why this step? With a diagonalizable repeated eigenvalue, the two modes are indistinguishable to any single input — and are parallel.
C8 — Word problem + exam twist
-
Write from the physics. Why this step? Reading off the two scalar equations — the State-space representation step.
-
Compute . Why this step? Only need since .
-
Stack and take determinant symbolically. Why this step? Symbolic determinant lets us solve for the failure condition directly.
-
Solve . . Why this step? Uncontrollable exactly when the determinant vanishes.
Answer: controllable for every (any value of !), and uncontrollable only when — the physically obvious "dead thruster" case. The stiffness never affects controllability.
Recap: which cell taught what
Practice reflexes:
When is a single input hopeless?
Fastest 2×2 controllability check?
Does more inputs guarantee controllability?
Why compute in C6?
Connections
- Controllability matrix — rank test (parent — the machine these examples exercise)
- Observability matrix — rank test (dual: run the same drill on )
- State-space representation (the C8 translation step)
- Cayley–Hamilton theorem (why we stop at in every example)
- Pole placement & state feedback (C1/C3/C6 controllability lets you place all poles)
- Kalman decomposition (C2/C4/C5 uncontrollable modes get split off here)
- Matrix exponential $e^{At}$ (the propagator behind reachability)
- Stabilizability (C7b's uncontrollable mode is unstable → not even stabilizable)