3.5.32 · D4Guidance, Navigation & Control (GNC)

Exercises — Controllability matrix — rank test

2,586 words12 min readBack to topic

The whole game is geometric: your inputs can only ever produce motion inside the span of the columns of . Controllable means that span fills the entire state space — nothing is locked out. The picture below is the mental image to carry through every problem.

Figure — Controllability matrix — rank test

Level 1 — Recognition

Recall Solution L1.1

(a) has 2 rows, so . (b) is a single scalar (one column in ), so . (c) is . (d) You compute , i.e. up to . That is 2 blocks: and . (Cayley–Hamilton says adds nothing — see Cayley–Hamilton theorem.)

Recall Solution L1.2

The second row is entirely zero, so the columns only ever reach vectors of the form . That spans one direction, so . Not controllable. The dead direction is the -axis : no input combination ever produces motion there.


Level 2 — Application

Recall Solution L2.1

Step 1 — (only block we need since ): Step 2 — stack: Step 3 — determinant (fastest full-rank test for a square ): Nonzero determinant . ✅ Controllable.

Recall Solution L2.2

Step 1: Step 2: Step 3: . Second row all zero . ❌ Not controllable. Physically: is diagonal, so the two modes never talk to each other, and 's second entry is , so the input never touches mode 2. Mode 2 evolves as with no input — untouchable. (See Kalman decomposition for splitting such systems.)

Recall Solution L2.3

Step 1: Step 2: Step 3: . ✅ Controllable. The input now pushes both modes, and because the two modes have different eigenvalues ( and ), and point in different directions and span the plane.


Level 3 — Analysis

Recall Solution L3.1

Step 1: Step 2: Step 3: Uncontrollable exactly when , i.e. . Why: at the two diagonal modes share the same eigenvalue. With repeated eigenvalues and a single input, the input cannot distinguish the two modes — and become parallel. This is the intuition behind the PBH test (Popov–Belevitch–Hautus): a mode is uncontrollable when lies "flat" against a repeated/shared eigen-direction.

Look at the figure below: as slides from down toward , the vector swings closer and closer to . At they coincide — 's two columns lie on one line, so their span is a line, not the plane, and rank drops to .

Figure — Controllability matrix — rank test
Recall Solution L3.2

Step 1: (, so — parallel to !) Step 2: Step 3: . ❌ Not controllable. Reachable subspace = span of , i.e. the line . Unreachable target: any point off that line, e.g. . Check: is a multiple of ? No. So it can never be reached from the origin. Deep reason: when (a scalar times identity), every power is just a scalar times — all blocks stay on one line. A single input can never leave that line.

In the figure below, the magenta line is the reachable subspace ; both (navy) and (orange) lie on it, while the violet target floats off the line — provably out of reach.

Figure — Controllability matrix — rank test

Level 4 — Synthesis

Recall Solution L4.1

Here , so we need . : : Stack: Determinant: this is a permutation (anti-diagonal) matrix; . ✅ Controllable. Why it works: the single input hits the bottom mode, and each power of shifts it up the chain — the "ripple" fills all three directions. This is why chains of integrators are the poster child of controllability, and why Pole placement & state feedback can freely assign every pole here.

Recall Solution L4.2

Why single input fails: , so . Then — the two columns are identical, rank . No single-column can win. Smallest working : we need columns whose combined span is . Take Then , and . Rank of a rectangular — use the minors rule from the definition box above. This matrix contains the sub-block (columns 1 and 2) with , so . ✅ Controllable. (Row reduction gives the same: the two non-zero rows confirm rank 2.) Lesson: when every mode has the same eigenvalue and does no mixing at all; you must supply the directions directly through . You need at least as many independent input columns as the eigenvalue multiplicity.


Level 5 — Mastery

Recall Solution L5.1

: : Stack: Determinant (expand along the bottom row — only one nonzero entry, in position ): Controllable . Interpretation: here injects the input into the middle state (and, if , also the bottom state). At the input enters only the middle rung, so it can never reach the third state — uncontrollable. This is a different injection point from L4.1 (whose enters at the bottom and stays controllable). Any here re-connects the bottom rung and restores full rank. This is exactly the kind of edge case Stabilizability cares about.

Recall Solution L5.2

Key idea (duality): is observable is controllable. So build the controllability matrix of the transposed pair. (This is the bridge to the Observability matrix — rank test.) Let and . : Stack: Determinant: . Controllable dual observable original. ✅ You reused the same rank test with .

Recall Solution L5.3

: Stack: Determinant: for all . So always. ✅ Always controllable. Why this matters: companion form is by construction controllable, which is exactly why controllable systems can be transformed into it — and why Pole placement & state feedback uses companion form to read off feedback gains directly. Note never even appeared in : it changes the poles, not the controllability.


Recall One-line summary

Every problem reduced to the same three moves: compute the blocks up to , stack them into , and test the rank (determinant when is square; minors or row-reduction when it is rectangular). Full rank ⇒ controllable; anything less ⇒ a mode is forever locked.