Moving Horizon Estimation

Moving Horizon Estimation (MHE) is an optimization approach that uses a series of measurements observed over time, containing noise (random variations) and other inaccuracies, and produces estimates of unknown variables or parameters. Unlike deterministic approaches like the Kalman filter, MHE requires an iterative approach that relies on linear programming or nonlinear programming solvers to find a solution.

MHE with Simulink and MATLAB

MHE in APMonitor

The DBS file parameter imode is used to control the simulation mode. This option is set to 5 or 8 for dynamic parameter estimation or MHE.

 apm.imode = 5 (simultaneous dynamic estimation)
 apm.imode = 8 (sequential dynamic estimation)

 % APM MATLAB
 apm_option(server,app,'apm.imode',5);

 # APM Python
 apm_option(server,app,'apm.imode',8)

 # Python Gekko
 m.options.IMODE = 8

Moving horizon estimation is optimization of model parameters based on a time series of data measurements. The APMonitor solution engine uses sparse large-scale nonlinear solvers to reconcile the model to available measurements. This approach is desireable for problems with:

  • Constraints
  • Nonlinear Models
  • Infrequent Measurements
  • Explicit Measurement Ranking
  • Rejection of Statistically Insignificant Noise and Outliers
  • Reliable real-time solutions

Moving horizon estimation uses a moving window of previous model predictions and process measurements. As additional measurements arrive, the model is updated with the new information.

See also MHE Introduction, CSTR MHE, MHE with MPC, MHE with Python Gekko (see example #16)