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.

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.