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, MHE requires an iterative approach that relies on linear programming or nonlinear programming solvers to find a solution.

MHE reduces to the Kalman filter under certain simplifying conditions. A critical evaluation of the extended Kalman filter and the MHE found that the MHE improved performance at the cost of increased computational expense. Because of the computational expense, MHE has generally been applied to systems where there are greater computational resources and moderate to slow system dynamics. However, in the literature there are some methods to accelerate this method.

Overview 
The application of MHE is generally to estimate measured or unmeasured states of dynamical systems. Initial conditions and parameters within a model are adjusted by MHE to align measured and predicted values. MHE is based on a finite horizon optimization of a process model and measurements.  At time  the current process state is sampled and a minimizing strategy is computed (via a numerical minimization algorithm) for a relatively short time horizon in the past: .  Specifically, an online or on-the-fly calculation is used to explore state trajectories that find (via the solution of Euler–Lagrange equations) an objective-minimizing strategy until time . Only the last step of the estimation strategy is used, then the process state is sampled again and the calculations are repeated starting from the time-shifted states, yielding a new state path and predicted parameters. The estimation horizon keeps being shifted forward and for this reason the technique is called moving horizon estimation.  Although this approach is not optimal, in practice it has given very good results when compared with the Kalman filter and other estimation strategies.

Principles of MHE
Moving horizon estimation (MHE) is a multivariable estimation algorithm that uses:
 an internal dynamic model of the process
 a history of past measurements and
 an optimization cost function J over the estimation horizon,
to calculate the optimum states and parameters.

The optimization estimation function is given by:

without violating state or parameter constraints (low/high limits)

With:

 = i -th model predicted variable (e.g. predicted temperature)

 = i -th measured variable (e.g. measured temperature)

 = i -th estimated parameter (e.g. heat transfer coefficient)

 = weighting coefficient reflecting the relative importance of measured values 

 = weighting coefficient reflecting the relative importance of prior model predictions 

 = weighting coefficient penalizing relative big changes in 

Moving horizon estimation uses a sliding time window. At each sampling time the window moves one step forward. It estimates the states in the window by analyzing the measured output sequence and uses the last estimated state out of the window, as the prior knowledge.

Applications

 MATLAB, Python, and Simulink source code for MHE: Python, MATLAB, and Simulink CSTR Example 
 Monitoring of industrial process fouling 
 Oil and gas industry 
 Polymer manufacture
 Unmanned aerial systems

See also
 Alpha beta filter
 Data assimilation
 Ensemble Kalman filter
 Extended Kalman filter
 Invariant extended Kalman filter
 Fast Kalman filter
 Filtering problem (stochastic processes)
 Kernel adaptive filter
 Non-linear filter
 Particle filter
 Predictor corrector
 Recursive least squares
 Schmidt–Kalman filter
 Sliding mode control
 Wiener filter

References

Further reading

External links
 MHE with Python GEKKO
 MHE Tutorial in Simulink and MATLAB
 MHE lecture material
 Online Course: MHE in Simulink, MATLAB and Python

Control theory
Nonlinear filters
Linear filters
Signal estimation