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.