# Model Predictive Control and Numerical Integration Schemes

When simulating systems of ODEs, I'm used to always using a numerical integration scheme to propagate the equations forward in time, such as simple Euler integration or Runge-Kutta methods. However, with model predictive control (MPC), every textbook I see gives the following form for propagating a linear system forward in time:

$$x(t+1)=Ax(t)+Bu(t)$$

However, if we see how this system evolves in time using arbitrary inputs $u(t)$, the results are extremely inaccurate. I would have thought that MPC would incorporate some form of integration scheme while performing the control optimization. So, for example, if we consider Euler integration we would have,

$$\dot{x}(t)=Ax(t)+Bu(t)$$ $$\frac{x(t+1)-x(t)}{\Delta t}=Ax(t)+Bu(t)$$ and then our dynamics used as linear equality constraints in an MPC algorithm would be given by, $$x(t+1)= x(t) + \Delta t[Ax(t)+Bu(t)]$$

However, I've never seen a form like this used before. I know I must be wrong, but I don't know what I'm missing. Any clarification of why general MPC algorithms use $x(t+1)=Ax(t)+Bu(t)$ without any integration scheme would be much appreciated.

## 1 Answer

The first equation you wrote is called discrete-time system. They are often also written as $$x_{k+1} = Ax_k + Bu_k$$ Recall that MPC solves an optimization problem every time-step, so you need your system to have discrete time-steps in the first place.

In fact, you can use your Euler integration scheme to discretize a continuous time-system of the form $$\dot x = Ax + Bu$$ before applying an MPC scheme, you basically already did it right in your question without realizing.

If you consider, as you already mentioned, the forward Euler equation, you get $$\frac{x(t_{k+1})-x(t_k)}{\Delta t} = Ax(t_k) + Bu(t_k),$$ then you can solve this for $x(t_{k+1})$, which yields the discrete-time system $$x(t_{k+1}) = (I+A \Delta t)x(t_k) + B\Delta tu(t_k)$$ where $I$ is the identity matrix.

• It is also worth mentioning that there are much better discretization method. For example zero order hold. – fibonatic Jun 10 '18 at 11:16
• Aha, so the $A$ and $B$ matrices in MPC already assumes that we've applied some form of numerical integration scheme already, where in our case we have $A = (I+A\Delta t)$ and $B = B\Delta t$? – InquisitiveInquirer Jun 10 '18 at 20:23
• You could describe it like that, though the purpose of the "numerical integration scheme" here is really the discretization (and it's not very good at that, as @fibonatic already pointed out), not developing the system state. Maybe it also helps to read a bit about the difference between continuous-time and discrete-time systems, it is crucial here to understand it. – OpticalResonator Jun 10 '18 at 20:54