Observability
Controllability
asked whether we can steer the whole state. Observability asks the mirror-image
question about seeing it. In practice we rarely measure the full state — a sensor
gives only an output y = Cx, a few combinations of the state
variables. Observability asks: watching that output
y(t) over an interval of time, can we reconstruct the entire initial
state x(0)? If yes, the hidden internal state is recoverable from
what we measure; if no, some internal motion produces no signal at all and is invisible to us.
The observability matrix
From y = Cx alone we see only Cx(0). But
the output's derivatives reveal more: differentiating and using
\dot{x} = Ax gives
\dot{y} = C\dot{x} = CAx, then
\ddot{y} = CA^2 x, and so on. Each derivative exposes a new
combination of the state. Stacking the first n of them
vertically gives the observability matrix:
\mathcal{O} = \begin{bmatrix} C \\ CA \\ CA^2 \\ \vdots \\ CA^{\,n-1} \end{bmatrix}.
The initial state x(0) is recoverable exactly when this map from
states to measurements is injective — when \mathcal{O} has full
column rank. Anything in its null space produces an identically zero output and can never be
seen:
(A, C) \text{ observable} \iff \operatorname{rank}\,\mathcal{O} = n.
The duality with controllability
The two notions are not merely analogous — they are
transposes of
each other. Compare the observability matrix of (A, C) with the
controllability matrix of the transposed pair (A^{\mathsf{T}}, C^{\mathsf{T}}).
Step 1 — transpose \mathcal{O}. Transposing a
vertical stack lays the blocks out horizontally, and
(CA^k)^{\mathsf{T}} = (A^{\mathsf{T}})^k C^{\mathsf{T}}:
\mathcal{O}^{\mathsf{T}} = \begin{bmatrix} C^{\mathsf{T}} & A^{\mathsf{T}} C^{\mathsf{T}} & (A^{\mathsf{T}})^2 C^{\mathsf{T}} & \cdots & (A^{\mathsf{T}})^{n-1} C^{\mathsf{T}} \end{bmatrix}.
Step 2 — recognise it. That is exactly the controllability matrix
\mathcal{C} of the system
(A^{\mathsf{T}}, C^{\mathsf{T}}) — read A^{\mathsf{T}}
for A and C^{\mathsf{T}} for
B.
Step 3 — rank is transpose-invariant. Since
\operatorname{rank}\mathcal{O} = \operatorname{rank}\mathcal{O}^{\mathsf{T}},
full rank of one is full rank of the other:
(A, C) \text{ observable} \iff (A^{\mathsf{T}},\, C^{\mathsf{T}}) \text{ controllable}.
This duality means every theorem about controllability has a free twin about
observability — and the observer that estimates the state turns out to be the exact transpose
of the controller that steers it.
A worked 2×2 — and one that fails
Take the same dynamics as before, measured through a single sensor:
A = \begin{bmatrix} 0 & 1 \\ -\tfrac12 & -\tfrac32 \end{bmatrix}, \qquad C = \begin{bmatrix} 1 & 0 \end{bmatrix} \ \text{(measure } x_1 \text{ only)}.
Step 1 — form CA.
CA = \begin{bmatrix} 1 & 0 \end{bmatrix} A = \begin{bmatrix} 0 & 1 \end{bmatrix}.
Step 2 — stack and take the determinant.
\mathcal{O} = \begin{bmatrix} C \\ CA \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \qquad \det \mathcal{O} = 1 \neq 0.
Full rank 2 = n: measuring position alone, the velocity is exposed
through \dot{y}, so the system is observable.
A failure. Align C with a left eigenvector
of A, C = \begin{bmatrix} 1 & 2 \end{bmatrix}
(here CA = -C, eigenvalue -1). Then
\mathcal{O} = \begin{bmatrix} 1 & 2 \\ -1 & -2 \end{bmatrix}, \qquad \det \mathcal{O} = (1)(-2) - (2)(-1) = 0.
Rank 1: the output never escapes the line spanned by
C, so the state component across that line leaves no trace in
y — it is unobservable. Measuring along a left
eigenvector hides a whole direction.
- The observability matrix is the vertical stack
\mathcal{O} = [\,C;\ CA;\ CA^2;\ \cdots;\ CA^{\,n-1}\,].
- (A, C) is observable
\iff \operatorname{rank}\mathcal{O} = n.
- For a single-output 2\times2 system this is just
\det[\,C;\ CA\,] \neq 0.
- Duality: (A, C) observable
\iff (A^{\mathsf{T}}, C^{\mathsf{T}}) controllable.
See the whole state, or not
Fix A = \begin{bmatrix} 0 & 1 \\ -\tfrac12 & -\tfrac32 \end{bmatrix}
and aim the sensor row C = (c_1, c_2) with the sliders. The output
and its derivative read the state along the directions C and
CA, drawn here as arrows. When they are independent they span the
plane — \det\mathcal{O} \neq 0, full rank, the verdict turns green and
the whole state is reconstructable. Align C with a left eigenvector
of A (try (1, 2)) and
CA collapses onto C: the arrows go
collinear, \det\mathcal{O} = 0, and a direction of the state hides
from every measurement.
Observability is not an academic footnote — it is the precondition for state
estimation. When we cannot measure the full state, we build an observer
that watches the output and infers the rest, and such an observer exists precisely when the
system is observable. Its most celebrated incarnation, the Kalman filter, fuses a noisy model
with noisy measurements to estimate the state optimally, and by the duality of this page its
equations are the exact transpose of the optimal controller's. Together,
controllability-plus-observability is the structural green light for the whole edifice of
estimation and feedback that the rest of optimal control builds.