Here we gave a gentle intro to model predictive control (MPC). Some contents comes from Prof. Alberto Bemporad’s slides at IMT Lucca.

## Basic Idea

According to Prof. Alberto Bemporad, the core idea of MPC is “Use a dynamical model of the process to predict its future evolution and optimize the control signal.”

Specifically, at time $t$: solve an optimal control problem over a finite future horizon of $N$ steps:

\begin{align} \min_u \quad &\sum_{k=0}^{N-1} || y_{t+k}-r(t) ||^2+\rho||u_{t+k}||^2 \\ \text{s.t.} \quad &x_{t+k+1} = f(x_{t+k},u_{t+k}) \\ &y_{t+k} = g(x_{t+k}) \\ &u_{\text{min}} ≤ u_{t+k} ≤ u_{\text{min}} \\ &y_{\text{min}} ≤ y_{t+k} ≤ y_{\text{min}} \\ & x_t = x(t), k =0,...,N − 1 \end{align}

After the optimization at each step, only the first optimal move $u^*(t)$ is applied.

At time $t+1$: Get new measurements, repeat the optimization. And so on … A simple illustration of the process can be found in the figure below. The advantage of repeated on‐line optimization is FEEDBACK, which is one of the core parts in control.

## Constrained Optimal Control

In MPC, we are actually solving a constrained optimization at each step. We consider a linear model: