3.5.33Guidance, Navigation & Control (GNC)

Observability matrix — rank test

1,587 words7 min readdifficulty · medium1 backlinks

WHAT is observability?

WHY only AA and CC? Because the inputs uu and DD produce a known contribution to yy; we can subtract it off. What remains is the free response yfree=CeAtx(0)y_{\text{free}}=C e^{At}x(0). Observability is purely about whether CC and AA let us "see" every direction of x(0)x(0).


HOW to derive the test (from scratch)

Set u=0u=0 (legitimate, since its effect is known). The output is y(t)=CeAtx(0).y(t) = C e^{At} x(0).

WHY differentiate? A single instant y(0)=Cx(0)y(0)=Cx(0) only tells us x(0)x(0)'s projection onto CC. To grab more directions, take derivatives at t=0t=0:

y(0)=Cx(0)y˙(0)=CAx(0)y¨(0)=CA2x(0)    y(k)(0)=CAkx(0)\begin{aligned} y(0) &= C x(0)\\ \dot{y}(0) &= C A x(0)\\ \ddot{y}(0) &= C A^2 x(0)\\ &\;\;\vdots\\ y^{(k)}(0) &= C A^{k} x(0) \end{aligned}

Why stop at k=n1k=n-1? By the Cayley–Hamilton theorem, AnA^n is a linear combination of I,A,,An1I, A, \dots, A^{n-1}. So CAn,CAn+1,CA^n, CA^{n+1}, \dots give no new rows — every higher derivative is redundant. Stacking derivatives 00 through n1n-1:

[y(0)y˙(0)y(n1)(0)]known=[CCACAn1]Ox(0).\underbrace{\begin{bmatrix} y(0)\\ \dot y(0)\\ \vdots \\ y^{(n-1)}(0)\end{bmatrix}}_{\text{known}} = \underbrace{\begin{bmatrix} C\\ CA\\ \vdots \\ CA^{n-1}\end{bmatrix}}_{\mathcal{O}} x(0).

We can solve uniquely for x(0)x(0) iff the matrix O\mathcal{O} has full column rank nn (so its null space is only {0}\{0\}).

Figure — Observability matrix — rank test

Worked examples


Common mistakes


Flashcards

Define observability of an LTI system
(A,C)(A,C) is observable if x(0)x(0) can be uniquely determined from u(t),y(t)u(t),y(t) on any finite interval.
State the observability matrix
O=[C; CA; CA2;; CAn1]\mathcal{O}=[\,C;\ CA;\ CA^2;\dots;\ CA^{n-1}\,], size pn×npn\times n.
State the rank test
Observable     rank(O)=n\iff \operatorname{rank}(\mathcal{O})=n.
Why stop at power n1n-1?
Cayley–Hamilton: AnA^n is a combination of lower powers, so CAkCA^k for knk\ge n adds no new rows.
What is an unobservable state?
A nonzero x0ker(O)x_0\in\ker(\mathcal{O}); it gives CeAtx00Ce^{At}x_0\equiv0, invisible to sensors.
Why can we ignore B,D,uB,D,u in observability?
Their contribution to yy is known and subtractable; observability concerns only the free response CeAtx(0)Ce^{At}x(0).
Duality statement
(A,C)(A,C) observable     (A,C)\iff (A^\top,C^\top) controllable.
Can a single output observe two identical decoupled modes?
No — a scalar CC cannot separate a repeated eigenvalue with 2 eigenvectors; need p2p\ge2.

Recall Feynman: explain to a 12-year-old

Imagine a box with hidden gears (the states). You can only see one dial on the outside (the output). Observability asks: by watching that dial — its value and how fast it changes — can you figure out how every gear was spinning at the start? If some gear never moves the dial no matter what, it's "hidden," and the box is not observable. The rank test is just a way to count how many gears the dial can actually reveal; if that count equals the total number of gears, you can see everything.


Connections

Concept Map

inputs known, subtract off

only A and C matter

differentiate at t=0

each gives row C A^k

A^n is redundant

full column rank n

goal

nonzero kernel

duality

LTI system x-dot=Ax+Bu, y=Cx+Du

Free response y=Ce^At x0

Observability of pair A,C

Stack y, y-dot ... derivatives

Observability matrix O

Cayley-Hamilton theorem

Stop at k = n-1

Reconstruct initial state x0

Unobservable state, y=0

Controllability of A-transpose, C-transpose

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Socho tumhare paas ek system hai jiske andar kuch chhupe hue "states" hain (jaise position, velocity, temperature), par tum sirf bahar wala sensor ka output yy dekh sakte ho. Observability ka sawaal simple hai: kya sirf output dekh ke tum initial state x(0)x(0) ko poori tarah nikal sakte ho? Agar haan, to system observable hai. Yeh cheez bahut important hai kyunki Kalman filter jaisa estimator tabhi kaam karta hai jab system observable ho.

Test kaise banate hain? Output y=CeAtx(0)y=Ce^{At}x(0) hota hai. Ek time pe sirf ek projection milta hai, isliye hum derivatives lete hain: y,y˙,y¨y, \dot y, \ddot y \dots Har derivative ek nayi row deta hai — C,CA,CA2C, CA, CA^2 \dots Cayley–Hamilton theorem kehta hai ki AnA^n wala term purane powers ka combination hota hai, isliye n1n-1 power pe ruk jao. In sab rows ko upar-neeche stack karo — yeh hai observability matrix O\mathcal{O}.

Ab rule ekdum clean hai: agar rank(O)=n\operatorname{rank}(\mathcal{O})=n (total states), to observable. Agar rank kam hai, to koi na koi state "chhupa" hai — us direction ka x0x_0 output mein kabhi dikhta hi nahi (y0y\equiv 0). Diagram mein red curve dekho: ek state aisi hai jo sensor ko bilkul touch nahi karti.

Do common galtiyan yaad rakho: (1) matrix ka bada size matlab zyada observable nahi hota — sirf rank matter karta hai. (2) Stability aur observability alag cheezein hain; system stable ho sakta hai par phir bhi unobservable. Aur ek pyaari duality: (A,C)(A,C) observable hona =(AT,CT)=(A^T, C^T) controllable hona. Ek seekh lo, doosra free.

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections