PPolySim OS

State Observer

Estimate what you can't measure. A Luenberger observer rebuilds the full state of a system from its output alone — watch the estimate chase down the truth from a wrong initial guess.

State ObserverLive

Controls

Presets

A Luenberger observer reconstructs the full state of a mass-spring-damper from the measured position alone. It starts from a wrong guess (solid = true, dashed = estimate) and the error e = x − x̂ decays as (A − LC). Push the observer speed up to converge faster — then add noise to see why you can't just crank it.

▶ Run in Python

Data Inspector

Observer poles−4.0, −4.0
Gain L[7.60, 6.96]
Error e-folding0.25 s
Convergence rate4.0 /s

Governing equation

Error dynamics

Reading this result: Observer poles at s = −4.0 give a balanced error e-folding time of 0.25 s: the estimate converges within a few seconds while keeping the gains L = [7.6, 7.0] modest enough to tolerate noise.

Runs locally in your browser — free forever. Scale to the cloud when reality gets heavy.

or unlock everything with Pro →
★ Sign in to save this setup
Save your tuned setup, or drop this simulation into your own site, docs, or course page.

How it works

A Luenberger observer runs a copy of the plant dynamics ẋ̂ = Ax̂ + Bu and corrects it with the measurement error L(y − Cx̂). Here a mass-spring-damper is driven from an initial displacement, but only its position is measured — the observer reconstructs the hidden velocity too. Because the estimation error obeys ė = (A − LC)e, choosing the gain L to place the eigenvalues of A − LC far into the left half-plane makes the estimate converge fast. The catch: those same high gains amplify measurement noise, so the 'observer speed' slider is really a speed-versus-noise tradeoff. The gain L is computed by exact 2×2 pole placement (scipy.signal.place_poles in the exported code).

✦

Ask the AI about this model

The math, the assumptions, real-world uses, or a code translation — explained for this exact simulation.

Related live simulations

Frequently asked questions

Is this Luenberger observer state estimation tool really free?▾
Yes. State Observer runs entirely in your browser using your device's own compute, so local use is free forever. You only pay Compute Tokens if you scale a job to the cloud.
Do I need to install anything?▾
No. Everything runs client-side in a modern browser — no downloads, no license, no account required to start.
Can I save or share my simulation?▾
Create a free account to save projects, and use a shareable embed or minted DOI to publish a live, interactive version anywhere.
How accurate are the results?▾
The solver uses established numerical methods, but results are for research and educational purposes and should be validated against experiment or professional review before you rely on them.