3.5.23Guidance, Navigation & Control (GNC)

Observability — when KF can estimate state

1,915 words9 min readdifficulty · medium1 backlinks

WHAT is observability?

WHY this matters for a KF: the Kalman Filter estimates x^\hat{x} from measurements yy. If the system is unobservable, some directions in state-space have no measurement pipeline — the KF's error covariance PP in those directions never shrinks (it stays large or grows). You get a "confident-looking" filter that is silently blind.


HOW do we test it? — Deriving the Observability Matrix

We want to know: can y(t)y(t) pin down x(0)x(0)? Set u=0u=0 (inputs are known, so subtract their effect; only the unforced response tests observability).

Step 1 — write the output. Solution of x˙=Ax\dot x = Ax is x(t)=eAtx(0)x(t)=e^{At}x(0), so y(t)=CeAtx(0).y(t) = C e^{At} x(0). Why this step? eAte^{At} propagates the initial state; CC projects it onto the sensors.

Step 2 — squeeze out information via derivatives at t=0t=0. Differentiate yy repeatedly and evaluate at t=0t=0: y(0)=Cx(0),y˙(0)=CAx(0),y¨(0)=CA2x(0), y(0)=Cx(0),\quad \dot y(0)=CAx(0),\quad \ddot y(0)=CA^2x(0),\ \dots Why this step? Each derivative of the known signal yy gives us one more linear equation about the unknown x(0)x(0).

Step 3 — stop at n1n-1 (Cayley–Hamilton). By the Cayley–Hamilton theorem, AnA^n is a linear combination of I,A,,An1I, A, \dots, A^{n-1}. So CAnCA^n gives no new information — higher derivatives are redundant. Why this step? It guarantees a finite test: only nn blocks are needed.

Step 4 — stack the equations. The system of nn blocks is

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

The unobservable subspace is ker(O)\ker(\mathcal{O}): any x(0)x(0) in it produces y(t)0y(t)\equiv 0 and is invisible.

Figure — Observability — when KF can estimate state

Worked Examples


Common Mistakes


Connection to the Kalman Filter


Flashcards

When can a Kalman Filter estimate a given state direction?
Only when that direction is observable, i.e. it lies outside ker(O)\ker(\mathcal{O}) / contributes to the output.
Write the observability matrix for an nn-state system with matrices A,CA,C.
O=[C;CA;CA2;;CAn1]\mathcal{O}=[C;\,CA;\,CA^2;\dots;CA^{n-1}].
State the observability rank test.
System observable     rank(O)=n\iff \mathrm{rank}(\mathcal{O})=n (full column rank).
Why do we stop at An1A^{n-1} in O\mathcal{O}?
Cayley–Hamilton: AnA^n is a linear combo of lower powers, so higher derivatives add no new information.
What physically is the unobservable subspace?
ker(O)\ker(\mathcal{O}) — initial states producing y(t)0y(t)\equiv0; invisible to any estimator.
Observability vs controllability — the duality statement.
(A,C)(A,C) observable     (A,C)\iff (A^\top,C^\top) controllable.
What happens to KF covariance in an unobservable, unstable direction?
It never shrinks (measurement update is blind) and grows via process noise QQ — estimate diverges.
Weaker condition than observability that still gives a stable KF?
Detectability — all unobservable modes are asymptotically stable.
Is position–velocity with only a position sensor observable?
Yes, because velocity drives position (A120A_{12}\neq0), so it leaks into the output.
Tool to measure degree of observability, not just yes/no?
The observability Gramian Wo=0TeAtCCeAtdtW_o=\int_0^T e^{A^\top t}C^\top C e^{At}dt; small eigenvalues = weakly observable.

Recall Feynman: explain to a 12-year-old

Imagine a locked room with a few gears turning inside, and you can only peek through one small window. Some gears you can see directly. Others you can't see — but if a hidden gear pushes on a visible one, its movement shows up in the gear you can see, so you can figure it out anyway! "Observable" means: through your little window, every hidden gear eventually gives itself away. If a gear spins off in its own sealed box connected to nothing you can see, it's a mystery forever — and no amount of clever guessing (that's the Kalman Filter) can reveal it. The trick O\mathcal O is just: watch not only where the visible gear is, but how fast it moves, and how its speed changes — each of those is a new clue.

Connections

  • Kalman Filter — prediction & update
  • Controllability — when we can steer the state
  • Cayley–Hamilton Theorem
  • Observability Gramian & degree of observability
  • Detectability & Stabilizability
  • Riccati Equation & steady-state covariance
  • Gyro bias estimation / star-tracker calibration
  • State-space representation of LTI systems

Concept Map

asks if

must reveal

tested for

derivatives give

stops stacking at n-1

checked via

full rank means

null space is

invisible states produce

estimates from

unobservable leaves

never shrinks in

Measurements y

Full state x

Observability property

Linear system A C

Observability matrix O

Cayley-Hamilton theorem

Rank test rank O equals n

Unobservable subspace ker O

Kalman Filter

Error covariance P

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, Kalman Filter ek smart estimator hai, lekin woh bhi tabhi kaam karega jab measurement mein us state ka "information" hoga. Yahi baat observability batati hai: kya tumhare sensor output yy ko dekh kar poora andar ka state xx nikaala ja sakta hai ya nahi? Agar do bilkul alag internal states exactly same output stream dete hain, toh koi bhi filter unhe distinguish nahi kar sakta — woh direction "unobservable" hai.

Test simple hai: observability matrix banao — CC, phir CACA, phir CA2CA^2... CAn1CA^{n-1} tak stack kar do. Kyun sirf n1n-1 tak? Kyunki Cayley–Hamilton theorem kehta hai ki AnA^n purani powers ka combination hai, toh aage kuch naya nahi milega. Agar is matrix ka rank = n (state ka size) hai, toh system observable hai — matlab KF sab kuch estimate kar sakta hai. Intuition: tum output ki value, uski speed (derivative), uski acceleration... har derivative ek naya clue deti hai unknown x(0)x(0) ke baare mein.

GNC mein iska classic example: angle measure karke gyro bias estimate karna. Angle slowly drift karta hai bias ki wajah se, aur us drift ko dekh kar KF bias nikaal leta hai — isiliye star-tracker se gyro calibrate hota hai. Yeh observable hai.

Ek important galti se bacho: zyada sensors lagane se observability guarantee nahi hoti! Agar naya sensor wahi cheez measure kar raha hai jo pehle se visible thi, toh rank nahi badhega. Aur agar direction unobservable ho aur unstable bhi ho, toh KF ka covariance PP us direction mein kabhi kam nahi hoga — estimate fatt jayega. Isliye rank test hamesha check karo, aur weakly-observable directions ke liye Gramian ki eigenvalues dekho.

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections