Skip to content

System-Identification Experiment

Empirical modelling method — instantiates Model-Based Regulation

Builds the system model empirically by injecting designed inputs into the real system and fitting the observed response, its disturbances, and the assumptions the fit rests on.

Before a regulator can act through a model, someone has to get the model — and for most real systems it cannot be derived from first principles. A System-Identification Experiment builds it from the outside in: you drive the real system with deliberately chosen inputs, record how it responds, and fit a model to the input–output data, together with the disturbances that intrude and the operating assumptions the fit depends on. Its defining move is active perturbation of the real system — it does not passively watch normal operation (which rarely reveals the dynamics) and does not theorize on a whiteboard; it asks the system directly, "when I push here, what happens, and how fast?" The answer is a decision-relevant map of what each available action actually does, grounded in the plant itself.

Example

To fit a model-predictive controller for a twelve-storey office building's heating, engineers cannot compute the thermal dynamics from drawings — too many walls, occupants, and sun angles. So they run a system-identification experiment over an empty weekend: they drive the supply heat with a pseudo-random on/off sequence rather than a single step, and log every zone temperature each minute. Fitting the input–output data yields a compact thermal model — roughly "a 1 °C rise in supply heat lifts this zone ≈0.4 °C with a ≈40-minute time constant" — plus a disturbance model separating out solar gain and outside-air temperature.

Crucially, the experiment also writes down what it assumed: the fit holds for an empty building in mild weather within the excitation range tested. That labelled scope is what stops the controller from trusting the model in a packed summer atrium it never saw. The perturbation bought the dynamics; the assumption log bounded them.

How it works

What distinguishes identification from ordinary data-fitting is that it designs the input to make the model observable:

  • Excite the modes you need to see — choose an input rich enough in frequency content that every parameter leaves a distinguishable fingerprint; a constant or too-simple input reveals nothing.
  • Perturb and log — apply the input to the real system and record input and output together; the model is fit to the measured response, not assumed.
  • Separate signal from disturbance — estimate the disturbance model concurrently so external noise is not silently baked into the dynamics.
  • Record the conditions — log the operating point, excitation range, and structural assumptions so they travel with the model, then validate on held-out data.

Tuning parameters

  • Excitation design (amplitude and bandwidth) — bigger, richer perturbations identify more and faster but disturb live operation and can push the system out of its normal regime; step vs. sweep vs. pseudo-random trades identifiability against disruption.
  • Model order — how many states and parameters to fit; higher order tracks the data better but overfits noise into a fragile model.
  • Open- vs. closed-loop identification — perturb the bare system or perturb it while a controller runs; closed-loop is safer but can mask dynamics the controller is already cancelling.
  • Experiment duration — longer captures slow modes and averages out noise, at the cost of tying up the real system.
  • Sampling rate — fast enough to catch the quickest dynamics of interest without drowning the fit in noise.

When it helps, and when it misleads

Its strength is producing a model of what actions actually do that is grounded in the real system — including the couplings, delays, and cross-effects a first-principles sketch quietly omits.

Its central failure is that the model is only valid where you excited it. Extrapolating past the tested amplitude, frequency, or operating point is the classic error, and if the input was not persistently exciting some parameters are simply unidentifiable — the fit will invent plausible values with no basis.[1] The usual misuse is to identify only in comfortable normal conditions and then trust the model in an emergency regime it never saw. The discipline is to design the input for persistent excitation, log the validity conditions honestly, and hand the "does it hold outside the tested envelope?" question to a red team rather than assuming it does.

How it implements the components

System-Identification Experiment fills the model-building side of the archetype — constructing the plant model, not inferring its live state or governing it:

  • response_model — its primary output: the fitted input→output map, "what each action does," with gains, delays, and time constants read off the real system.
  • disturbance_model — it estimates, alongside the dynamics, which external disturbances intrude and how they enter, so they are modelled rather than mistaken for dynamics.
  • assumption_register — it records the operating point, excitation range, and structural assumptions (linearity, time-invariance) the fitted model depends on.

It does not infer the moment-to-moment hidden state from that model — Bayesian State Estimation does — and it does not map where the fitted model breaks down; establishing that validity boundary adversarially is the job of Model-Failure Red Team.

Notes

Unlike a Digital Twin Trial, which perturbs a simulation, this experiment perturbs the real system — so every run carries an operational cost and a safety question: the excitation that best reveals the dynamics is also, by design, an unusual stress on live operation. Choose the gentlest input that still achieves persistent excitation, and prefer off-peak or empty-system windows.

References

[1] Persistent excitation is the system-identification condition that the input must be sufficiently rich — spanning enough distinct frequencies — for every model parameter to be uniquely determined. Under a constant or too-simple input the parameters are unidentifiable, and a fitting routine will still return numbers that have no empirical support.