3.5.32Guidance, Navigation & Control (GNC)

Controllability matrix — rank test

1,683 words8 min readdifficulty · medium2 backlinks

The setup (WHAT)


Deriving the test from scratch (HOW + WHY)

Where does a matrix rank even come into this? Let's build it, not memorize it.

The solution of x˙=Ax+Bu\dot{x}=Ax+Bu starting from x0=0x_0=0 (rest) is x(T)=0TeA(Tτ)Bu(τ)dτ.x(T) = \int_0^T e^{A(T-\tau)} B\, u(\tau)\, d\tau.

Why this step? This is the standard variation-of-parameters solution; the matrix exponential eAte^{At} propagates the state, and the integral accumulates the effect of the input history.

The set of states reachable from the origin is the span of all vectors of the form eA(Tτ)Bu(τ)e^{A(T-\tau)}B\, u(\tau). So the reachable subspace is spanned by columns of eAtBe^{A t}B for all tt.

Now use the Cayley–Hamilton theorem: every matrix AA satisfies its own characteristic polynomial, so AnA^n (and higher powers) can be written as a linear combination of I,A,A2,,An1I, A, A^2,\dots,A^{n-1}. Expanding the matrix exponential eAt=k=0(At)kk!e^{At} = \sum_{k=0}^{\infty}\frac{(At)^k}{k!} Why this step? Every power AkA^k collapses onto the finite set {I,A,,An1}\{I,A,\dots,A^{n-1}\}. So eAtBe^{At}B only ever produces linear combinations of B,  AB,  A2B,  ,  An1B.B,\; AB,\; A^2B,\;\dots,\;A^{n-1}B.

Therefore the reachable subspace is exactly the column span of these blocks stacked side by side. That stack IS the controllability matrix.

Why rank nn and not more? You can never reach more than nn dimensions (state is nn-dimensional). Rank =n=n means the columns span the entire state space. Rank <n<n means there's a "dead" subspace no input touches.

Figure — Controllability matrix — rank test

Worked examples


Common mistakes (Steel-man them)


Flashcards

What does controllability answer?
Whether any initial state can be driven to any target state in finite time using available inputs.
Controllability matrix definition
C=[B    AB    A2B    An1B]\mathcal{C}=[\,B\;\;AB\;\;A^2B\;\cdots\;A^{n-1}B\,].
Rank condition for controllability
rank(C)=n\operatorname{rank}(\mathcal{C})=n (full row rank).
Why stop at An1BA^{n-1}B?
Cayley–Hamilton: AnA^n and higher are linear combinations of I,,An1I,\dots,A^{n-1}, so higher powers add no new directions.
Size of C\mathcal{C} for nn states, mm inputs
n×(nm)n\times(nm).
Does a zero in BB imply uncontrollable?
No — depends on how AA mixes BB; must check rank of C\mathcal{C}.
Is controllability the same as stability?
No; they are independent properties.
For single-input n=2n=2, quick controllability check
det[B    AB]0\det[B\;\;AB]\neq0.
What does rank <n<n physically mean?
There exists a state-space direction (a mode) no input can affect.

Recall Feynman: explain to a 12-year-old

Imagine a toy robot on a floor. You have a remote that can push it in certain ways. Controllable means: with the buttons you have, you can eventually get the robot to any spot facing any direction. If some buttons are missing — say you can push forward/back but the robot is glued so it can never turn — then no matter how long you play, you can never make it face left. That "stuck-ness" is what the rank test detects. We list every way your pushes ripple through the robot's motion (B,AB,A2B,B, AB, A^2B,\dots) and ask: do these together cover all the ways the robot can move? If yes (full rank) → total control. If no → some motions are forever locked.

Connections

Concept Map

defines

asks

solution

reachable span of

collapses powers

spanned by

stacked into

apply

full rank

rank less than n

answers

LTI system x-dot = Ax + Bu

Controllability

Steer any x0 to any xf in finite time

x of T = integral of exp of A times B times u

columns of exp of At times B

Cayley-Hamilton theorem

B, AB, A^2B ... A^n-1 B

Controllability matrix C

rank test rank C = n

Controllable, nothing unreachable

Dead subspace unreachable

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, controllability ka matlab simple hai: tumhare paas ek system hai jiska state xx hai (jaise spacecraft ki position, velocity, attitude) aur tumhare paas kuch inputs uu hain (thrusters). Sawaal yeh hai — kya main apne inputs se system ko kisi bhi starting point se kisi bhi target tak le ja sakta hoon? Agar haan, to system controllable hai. Agar nahi, to state-space mein kuch directions aisi hain jinhe tumhare actuators kabhi touch hi nahi kar sakte, chahe kitna bhi try karo.

Ab yeh check kaise karein? Yahan aata hai controllability matrix C=[B  AB  A2B    An1B]\mathcal{C}=[B\;AB\;A^2B\;\cdots\;A^{n-1}B]. Iska logic yeh hai: input ka effect system mein BB ke through ghusta hai, phir AA usko har time step pe mix karta hai — isliye ABAB, A2BA^2B waghera. Cayley–Hamilton theorem kehta hai ki An1A^{n-1} ke baad koi nayi direction nahi aati, isliye bas n1n-1 powers tak jao. Phir rank nikaalo: agar rank =n=n (jitne states hain), to poora state-space cover ho gaya — controllable! Agar rank kam hai, to koi mode "dead" hai.

Ek common galti: log sochte hain agar BB mein zero hai to uncontrollable. Galat! Ho sakta hai AA us mode ko mix karke reachable bana de. Isliye hamesha C\mathcal{C} compute karke rank check karo, sirf BB dekh ke andaaza mat lagao. Doosri baat — controllability aur stability alag cheezein hain. Ek system unstable ho sakta hai par controllable (feedback se fix kar sakte ho), ya stable par uncontrollable. Yeh concept GNC mein bahut important hai kyunki pole placement aur state feedback tabhi kaam karta hai jab system controllable ho.

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections