3.5.23 · D4Guidance, Navigation & Control (GNC)

Exercises — Observability — when KF can estimate state

3,393 words15 min readBack to topic

The figure below is a map of the whole page, not a formula. Each box is one level of the exercise ladder; the colour tells you how hard it is (chalk-blue = warm-up, pale-yellow = analysis, chalk-pink = mastery). Inside each box, the italic line is the flavour of question that level asks. The arrows show the intended climb order. The single line across the top is the moral: no matter which box you are in, the actual computation is always the same three moves — build , count its independent rows, compare to .

Figure — Observability — when KF can estimate state

How to read it: start at the bottom-left box (L1 Recognition — "build , count rank") and follow the arrows up-right to L5 Mastery ("will the KF converge?"). Notice that the question in each box gets wordier and more physical as you climb, but the tool underneath never changes. If you ever feel lost inside an exercise, find your box on this ladder and ask: "which rung am I on, and is my current step really just the rank test in disguise?"


Level 1 — Recognition

Goal: read off , build mechanically, count the rank.

Recall Solution 1.1

WHAT we do: we only need and because (we stack up to ). WHY: each extra row is one more equation about the starting snapshot (the state at time zero, introduced above); Cayley–Hamilton (see Cayley–Hamilton Theorem) says stopping at loses nothing.

Row 1: . Row 2: . The two rows point in independent directions (they are the identity), so . Answer: observable.

Recall Solution 1.2

WHY only two rows: , so by Cayley–Hamilton we stack and and stop — would be a combination of these and add no information. , and . Row 2 is just row 1 — no new direction. The first column is all zeros, so no combination of rows ever "reaches" state 1. . Answer: NOT observable. State is decoupled ( is diagonal) and unmeasured, so it never leaks into . ❌


Level 2 — Application

Goal: plug in real GNC dynamics; interpret the rank physically.

Recall Solution 2.1

WHY only two rows: , so the test needs exactly and (Cayley–Hamilton caps the stack at ). , . Answer: NOT observable. Interpretation: velocity never depends on position (position doesn't feed back into the dynamics — the first column of is zero), so watching the velocity tells you nothing about where the cart is. Contrast with the parent note's Example 1, where you measure position and velocity leaks in through . Here the information flow runs the wrong way. A KF's variance on never shrinks.

Recall Solution 2.2

WHY only two rows: again , so we stack and and stop — higher powers are redundant by Cayley–Hamilton. , . Answer: observable. ✅ The bias still feeds the angle rate (), so its footprint appears in the measured angle. This is the mechanism behind Gyro bias estimation / star-tracker calibration.


Level 3 — Analysis

Goal: handle parameters, symbolic conditions, and degenerate values.

Recall Solution 3.1

WHY only two rows: ; stack and . Because is then square (), we can test full rank cheaply via its determinant (nonzero determinant full rank). , . The determinant is for every , so always. Answer: observable for all real . The extra velocity term in the sensor never destroys the information already carried by the position term — the second row independently pins down velocity.

Recall Solution 3.2

WHY only two rows: , so we stack and use as the full-rank test. , . The determinant is , independent of . Answer: observable for every — it never loses observability. The trap here (see below) is assuming a free parameter must have a bad value.

Recall Solution 3.3

WHY three rows here: now , so Cayley–Hamilton lets us stop at ; we stack . . . . The entire first column is zero — no row reaches state . So . Answer: NOT observable. State (the mode) is fully decoupled from states 2 and 3 and unmeasured; it is invisible. (For completeness: rows 2 and 3 together span the plane, so . Only the isolated mode is lost.)


Level 4 — Synthesis

Goal: combine observability with duality, Gramians, and detectability.

Recall Solution 4.1

Set and . . Full rank controllable, matching observable. Duality confirmed. See Controllability — when we can steer the state and Detectability & Stabilizability.

Recall Solution 4.2

With diagonal, , and . The integrand's entry is with . Because the system is stable (), these exponentials decay, so the integral to converges: : Interpretation: . The faster-decaying mode () spends less time influencing the output, so it is less observable — the KF recovers it with larger uncertainty. This connects to the steady-state covariance from the Riccati Equation & steady-state covariance.


Level 5 — Mastery

Goal: reason about the KF consequence, detectability, and design a fix.

Before the exercises, one definition the parent note leaned on but we will now make precise, because Level 5 hinges on it.

Recall Solution 5.1

Setup — why the update collapses to a scalar. The full covariance obeys the time update , where is the process-noise injection. Project this onto the single hidden axis (the eigenvector with ): write for the variance along that axis and for the noise fed into it. Using (so too), the two matrix terms each contribute : Crucially, the measurement update does nothing here: the mode is unobservable, so the Kalman gain cannot correct along ( carries no information). The scalar is the whole story.

Case (stable mode). Then . Setting gives the steady value , a finite number; any starting relaxes to it. Bounded ✅. Even though we never see this mode, it decays on its own, so the injected noise cannot pile up. The system is detectable: unobservable but stable.

Case (unstable mode). Then . The homogeneous part grows like , so — no finite steady state exists. Diverges ❌. An unobservable and unstable mode is fatal: the filter is blind exactly where the error is exploding.

The property that draws the line: detectability. A Kalman Filter has a bounded steady-state covariance iff every unobservable mode is asymptotically stable (i.e. ). is detectable (bounded); is not detectable (diverges). This is the covariance behaviour of the Kalman Filter — prediction & update Riccati recursion.

Recall Solution 5.2

WHY we can reuse the old work: the original block already spanned the plane (rank 2) but left column 1 empty. The new row directly measures (scaled by ), which is exactly the missing direction — so we only need to check whether it fills column 1. Stack the fresh row on top of two independent old rows; the relevant block of is Compute its determinant (expand along the first column, since only the top entry is nonzero there): This determinant is nonzero (hence the block, and therefore , has full rank ) iff . Answer: observable for every ; still unobservable at (a zero-gain sensor measures nothing, leaving column 1 empty as before). This is the design lesson: to see a decoupled mode, you must add a sensor that actually touches it with nonzero gain — and always confirm the rank rose to , echoing the parent note's "more sensors don't help unless they add rank."


Recall Self-test checklist

Can you, from memory, build for any system? ::: Yes: stack on , check the determinant. What single number decides observability of a square ? ::: Its determinant — nonzero means full rank means observable. Which property lets a KF tolerate an unseen mode? ::: Detectability — the unseen mode is asymptotically stable. How do you rescue a decoupled invisible state? ::: Add a sensor that touches that state (nonzero gain into that column) and confirm the rank rises to .