title: Moving horizon estimation
text: # 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 t 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: $[t-T,t]$. 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 $t$. 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:
  
  $J=\sum _{i=1}^{N}w_{y}(x_{i}-y_{i})^{2}+\sum _{i=1}^{N}w_{\hat {x}}(x_{i}-{\hat {x}}_{i})^{2}+\sum _{i=1}^{N}w_{p_{i}}{\Delta p_{i}}^{2}$
  
  without violating state or parameter constraints (low/high limits)
  
  With:
  
  $x_{i}$ = i -th model predicted variable (e.g. predicted temperature)
  
  $y_{i}$ = i -th measured variable (e.g. measured temperature)
  
  $p_{i}$ = i -th estimated parameter (e.g. heat transfer coefficient)
  
  $w_{y}$ = weighting coefficient reflecting the relative importance of measured values $y_{i}$
  
  $w_{{\hat {x}}_{i}}$ = weighting coefficient reflecting the relative importance of prior model predictions ${\hat {x}}_{i}$
  
  $w_{p_{i}}$ = weighting coefficient penalizing relative big changes in Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "http://localhost:6011/en.wikipedia.org/v1/":): p_{i}
  
  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
  