# 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.

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.
• 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$? Jun 10 '18 at 20:23