Skip to content

Smith Predictor or Model-Predictive Compensation

A compensation method — instantiates Coupling Latency and Time-Delay Effects

Acts on where the system will be when the command actually lands, using a model to see past a known delay instead of chasing the stale state the sensor still reports.

A Smith Predictor or Model-Predictive Compensation attacks delay head-on: it runs an internal model of the system that predicts what the state and target will be at the moment an action actually takes effect, and acts on that prediction instead of on the delayed measurement. What makes it this mechanism and not its siblings is that it neither slows the loop down (like a rate limit) nor waits out the delay (like a buffer) — it compensates the delay by anticipating it, letting the controller behave almost as if the lag weren't there. Its defining move is separating what the loop knows about the delay from the feedback itself: the model carries the delay so the controller doesn't have to react to stale state.

Example

A mixing tank blends two feed streams to hit a target concentration, but the composition sensor sits ≈30 seconds downstream of the tank along a pipe — so every reading describes the mix as it was half a minute ago. A plain controller, adjusting valves against that stale reading, over-corrects and sends the concentration into slow oscillation. A Smith predictor adds an internal model of the tank and the pipe: when the controller makes a valve change, the model immediately estimates the effect that change will have when it finally reaches the sensor, and feeds that prediction back at once. The controller then reacts to the predicted, delay-free response rather than the lagging measurement — issuing its next move on where the concentration is heading, not where it was 30 seconds ago. The real delay is unchanged, but the loop behaves as if the sensor were at the tank, and the oscillation disappears. The predictor's honesty depends entirely on its model: the ≈30 s and the tank dynamics must be right.

How it works

  • Model the plant and the delay explicitly. Build an internal model of both the system's dynamics and the known dead time; the model is what lets the controller look past the lag.
  • Predict the delay-free response. When an action is issued, the model estimates its effect before the delay would reveal it, giving the controller a fast, undelayed feedback signal to act on.
  • Correct the prediction with reality. Compare the model's delayed prediction against the actual (delayed) measurement; the mismatch corrects the model, so a modeling error doesn't accumulate unchecked.
  • Act on the anticipated state. The controller commands against where the system is going, effectively compensating the delay rather than accommodating it.

Tuning parameters

  • Model fidelity — how detailed the internal plant/delay model is. A richer model compensates better but costs more to build and identify, and each extra parameter is another thing that can be wrong.
  • Delay estimate — the assumed dead time, the single most sensitive input. Set it wrong and the predictor confidently compensates for a delay the system doesn't have, which can destabilize rather than steady the loop.
  • Prediction horizon — for the model-predictive form, how far ahead the controller optimizes. Longer anticipates more but compounds model error over the horizon.
  • Mismatch correction gain — how strongly measured reality is allowed to pull the model back. Higher tracks a changing plant but reintroduces some of the delay's noise; lower trusts the model but drifts if it's off.

When it helps, and when it misleads

Its strength is unique among the siblings: it recovers loop performance under delay rather than merely tolerating the delay. Where a rate limit trades speed for stability and a buffer spends latency for smoothness, a good predictor gives back much of both — the loop responds crisply despite a long dead time. This is why dead-time compensation is a workhorse of process control.[1]

Its failure mode is a single, sharp dependency: the compensation is only as good as the model, and especially the delay estimate. A predictor tuned to a delay that later drifts, or built on plant dynamics that shift with operating conditions, doesn't just lose benefit — it can actively destabilize, because it is now confidently correcting for a future that won't happen. It also demands more to build and maintain than any sibling. The discipline is to identify the model carefully, monitor for delay drift and re-identify when it moves, keep the model-versus-reality mismatch visible, and fall back to a simpler, restraint-based rule when the model can no longer be trusted.

How it implements the components

The method fills the two anticipation components:

  • predictive_feedforward_model — the internal plant-and-delay model that forecasts the effect of an action before the delay reveals it is exactly this component.
  • lag_compensation_or_absorption_rule — acting on the predicted delay-free response is the rule by which the known delay is compensated rather than merely waited out.

It does not measure the delay it assumes (latency_profile) — that comes from the Lead-Lag Cross-Correlation Analysis or a scorecard — and it does not simply hold stock to ride out the delay (temporal_decoupling_buffer), which is the Lead-Time Inventory or Capacity Buffer's approach.

References

[1] The Smith predictor is the classical dead-time compensator — an internal model that removes the delay from the feedback path — introduced by O. J. M. Smith in the late 1950s; model-predictive control generalizes the anticipatory idea to constrained, multivariable loops.