3.5.33 · D4Guidance, Navigation & Control (GNC)

Exercises — Observability matrix — rank test

2,170 words10 min readBack to topic

Everything here rests on the parent note Observability matrix — rank test. Keep this recipe in view:


Level 1 — Recognition

Can you build and read off its size and rank in the easiest cases?

L1.1 — Size of

A system has states and outputs. Without computing anything, state the dimensions of and the number that "full rank" must equal.

Recall Solution

stacks blocks (), each of size . So is . Full column rank means . What it looks like: a tall skinny slab, 8 rows tall, 4 columns wide — we only ever need 4 independent rows to "see" all 4 states.

L1.2 — Read a diagonal system

Build and decide observability.

Recall Solution

. The second column is all zeros ⇒ not observable. Why: only touches state 1; state 2 lives on its own eigenvector, never influencing . is unobservable.

L1.3 — Read the other diagonal slot

Same as L1.2 but . Observable?

Recall Solution

, so . First column zero ⇒ rank not observable. Symmetric to L1.2: a single scalar output on one diagonal channel can only ever see that one mode.


Level 2 — Application

Compute for coupled systems and interpret the kernel.

L2.1 — Chain of integrators

Here measures the second state. Observable?

Recall Solution

. Interpret: state 1 feeds state 2 (via the "1" in ), but the output watches state 2 while state 2's dynamics () never carry state 1's info back to . Contrast with Example 1 in the parent, where was observable — measuring the "upstream" state lets derivatives reveal the "downstream" one, but not vice-versa. Direction of the chain matters.

L2.2 — A genuinely coupled

Recall Solution

. Why it works: this is a position/velocity pair. is position; is velocity. Two measurements, two states, done.

L2.3 — Find the unobservable direction explicitly

Decide observability; if not observable, name a vector in and verify it gives .

Recall Solution

. Kernel: solve , free. So . Verify invisibility: with , the coupling in pushes into via the "1", but let us check the output directly. . Starting from : , and for all . Since depends only on (the second row of is , no term), 's value never reaches the output. Hence . ✅


Level 3 — Analysis

Use structure, eigenvalues, and duality instead of brute force.

L3.1 — Repeated eigenvalue, scalar output

Show that no choice of scalar makes this observable.

Recall Solution

. Row 2 row 1, so the rows are parallel ⇒ for every . Why fundamental: has eigenvalue with geometric multiplicity — a whole 2-D eigenspace. A single output cannot distinguish two identical, decoupled modes (see parent Example 3). By the PBH test, at eigenvalue we'd need , but , leaving only the one row ⇒ rank . You need outputs.

L3.2 — Duality check

Given , (parent Example 1, observable). Use duality to state a controllable pair, then verify.

Recall Solution

Duality: observable controllable. Here Controllability matrix . . Consistent: observable original controllable dual, as promised.

L3.3 — PBH cross-check

For , , decide observability two ways: rank test and PBH test.

Recall Solution

Rank test: , . Determinant ⇒ rank observable. PBH: check each eigenvalue . Need .

  • : — rows and independent ⇒ rank . ✔
  • : — rows and independent ⇒ rank . ✔ Both eigenvalues pass ⇒ observable. Both methods agree. Distinct eigenvalues + a that "touches" every eigenvector ⇒ observable.
Figure — Observability matrix — rank test

Level 4 — Synthesis

Design systems to a spec, and build the observable/unobservable split.

L4.1 — Design for a diagonal

. Find the smallest number of output rows and one explicit making observable.

Recall Solution

Eigenvalues are distinct, each with a 1-D eigenspace (the coordinate axes). With no modal degeneracy, a single output () can work provided it touches all three eigenvectors. Choose . This is a Vandermonde matrix in the nodes ; its determinant ⇒ rank observable. Smallest is . ✅ Why Vandermonde appears: row is — powers of the eigenvalues. Distinct nodes ⇒ nonzero determinant.

L4.2 — Build a system with a prescribed unobservable state

Construct a 2-state whose unobservable subspace is exactly .

Recall Solution

We want , i.e. rank , with giving . Pick so that . Now we must ensure too (so the whole line stays in the kernel — an -invariant subspace). Choose . Then . Check: and spans the row space, so only the direction is invisible. This is a mini Kalman decomposition: the observable part is the direction, the unobservable part is .

L4.3 — Repair an unobservable system

, is unobservable (parent Example 2). Add a second output row so the pair becomes observable, using the fewest new nonzero entries.

Recall Solution

The unobservable state is . We need a new row that has a nonzero projection onto it. The cheapest: add . Then already contains in its first two rows ⇒ rank observable. ✅ Why two outputs are forced here: has a repeated eigenvalue with a 2-D eigenspace (L3.1). No scalar output can ever fix it — you must have . This is not laziness of the designer; it's a hard structural requirement.


Level 5 — Mastery

Prove structural facts and stitch multiple tools together.

L5.1 — Similarity invariance

Prove: if and (a change of state coordinates ), then . So observability does not depend on coordinates.

Recall Solution

Compute a block row of the transformed matrix: using (the pairs cancel in the middle). Stacking all : Since is invertible, right-multiplying by it does not change rank. Hence . ∎ Meaning: observability is a property of the system, not of the basis you happen to write it in — exactly what the Kalman decomposition relies on.

L5.2 — Numeric mastery problem

(a companion / controllable-canonical-looking form). Determine observability by computing .

Recall Solution

. (first row of ). (second row of ). Observable. ✅ This is the "observer companion" pattern: measuring the first state of a chain of integrators reveals successive derivatives , so the whole chain unrolls.

L5.3 — Kalman-filter tie-in (conceptual + one computation)

For a state estimator to reconstruct , the pair must be observable. Given (a pure oscillator) and , verify observability, and explain what "watching position of an oscillator" reveals.

Recall Solution

. Interpretation: for a harmonic oscillator, is position and is velocity. Watching position and its slope gives both states at any instant, so an estimator can lock onto the true trajectory. Eigenvalues here are (undamped), yet observability holds — reinforcing the parent's mistake note: observability is independent of stability.

Figure — Observability matrix — rank test

Recall Self-test summary (reveal after finishing all levels)
  • L1: size ; a zero column kills rank.
  • L2: coupling has direction — always compute .
  • L3: repeated eigenvalues need ; distinct eigenvalues still need to touch every eigenvector; PBH cross-checks the rank test.
  • L4: design via Vandermonde; unobservable subspace = -invariant kernel of ; repeated modes force more sensors.
  • L5: ⇒ coordinate-free; observability ⟂ stability.

Connections