You cannot see the state, only the output. So build a twin — a model that runs the same equations alongside the plant and, whenever its predicted output disagrees with the real measurement, corrects itself in proportion to the error. Choose the correction gain and the twin's own error dynamics fall wherever you place them. The estimate converges to the truth it was never shown.
source Luenberger, D. G. — Observing the State of a Linear System, IEEE Trans. Military Electronics, vol. 8, pp. 74–80 (1964). ADS 1964ITME....8...74L. Rendered, not quoted.
A small LTI plant, state unseen, output measured:
A has known eigenvalues -1, -2 (char. poly λ²+3λ+2). We measure only x₁. The observer copies the model and adds a correction:
Subtract from the true dynamics and everything but the error cancels: the estimation error e = x − x̂ obeys e' = (A − L C) e — no plant, no input, just decay.
the-observability asked can the state be recovered from the output? Here that question is cashed in: because (A,C) is observable, L can place the error poles anywhere.
The observer is the deterministic skeleton of the-kalman filter — Kalman's gain is the noise-optimal L; drop the noise and it collapses to a placed pole. And by duality it is the exact dual of the-pole-placement: place eig(A−LC) here, place eig(A−BK) there, and the separation principle lets you do both independently.
Re-runs the live invariants on demand: observer poles land on the chosen set, the error decays, and the separation union holds. It also watches window 6 — if the gain is chosen on the unobservable plant, it catches the mode that never dies.
WITNESS: checking…
The plant is observable; you supply where the error should live. Pick two stable poles for eig(A−LC):
Initial estimation error e(0) = [1, 0]ᵀ. Input u is irrelevant to e — that is the whole point.
Pole placement solves for L in closed form (coefficient matching on the 2×2 characteristic polynomial), then the error is propagated by a live matrix exponential e(t)=e(A−LC)te(0).
∥e(t)∥ t: 0 → 6
Proven at boot, before any interaction:
booting…
Observer poles placed on the chosen set to 1e-8; error → 0; and the separation union eig{A−BK} ∪ eig{A−LC} = {-5,-6,-3,-4} confirmed as the combined closed-loop spectrum.
"Just crank L huge and the error dies instantly."
No. L amplifies the measurement residual, and every real sensor carries noise. A large L pumps that noise straight into x̂. The filter version of this observer exists precisely to trade convergence speed against noise injection — the deterministic placement here assumes a clean y. High-gain observers are real but pay in peaking and noise sensitivity.
"An observer can reconstruct any state from the output."
→ Only the observable subspace. An unobservable mode leaves no trace in y, so no L can pull its error to zero (window 6 exhibits exactly this).
"The observer changes how the plant behaves."
→ It does not. e' = (A−LC)e has no plant or input coupling; the estimator is a passenger. Only when its estimate feeds a controller do poles interact — and even then the separation principle keeps the two sets independent.
"Faster observer poles are always better."
→ amber only under clean measurement. Faster poles need larger L, and larger L means more noise. The choice is a tradeoff, not a maximum.
Planted void (disclosed): swap the plant for an unobservable one — A₂=diag(-1, +1), C₂=[1 0]. The +1 mode is invisible in y, so any L leaves it at +1 and its error grows without bound. The witness in 7 catches it.
plant: observable (clean).