Does Model Predictive Control required to store the past input values?

334 Views Asked by At

I have five questions about Model Predictive Control. LQR control has a control law which is static for all time. As I get it, MPC has a LQR control law, which changes over time, depending on a cost function, and that cost function is depending on future outputs?

So I list my questions:

  1. Does Model Predictive Control requires that I store the past input values $u(t)$ to use them later when a similar behavior of the dynamic system appear? Then the controller can predict future behavior?

  2. Is Model Predictive Control like LQR control law, but the control law is changing depending of future outputs?

  3. Can I predict the future outputs by using an extended observability matrix? Or do I need to know the future inputs too?

  4. The difference between LQR and MPC is that LQR can only predict the next state, but MPC can predict more that the next state? In other words, MPC is better that LQR.

  5. Can I use the Kalman-Bucy filter together with Model Predictive Control? Or will the filter interrupt the controller?

Edit:

This is the MPC I want to learn, but I have very bad literature about it and I don't know the name of this kind of MPC-model.

Assume that we have a state space model:

$$x(k+1) = Ax(k) + Bu(k)\\y(k) = Cx(k) + Du(x)$$

If we want to find the future output $y(k)$, let's say for example $y(n)$. That means we need to simulate to $k = 1, 2, 3, 4, 5, 6, \dots , n$ or we can predict $y(n)$.

As we know, the discrete state space model use its own state of derivative. Like this:

$$x(2) = Ax(1) + Bu(1)\\ x(3) = Ax(2) + Bu(2) = A(Ax(1) + Bu(1)) + Bu(2)\\ x(4) = Ax(3) + Bu(3) = A(A(Ax(1) + Bu(1)) + Bu(2)) + Bu(3)\\ x(5) = Ax(4) + Bu(4) = A(A(A(Ax(1) + Bu(1)) + Bu(2)) + Bu(3)) + Bu(3)\\ x(6) = Ax(5) + Bu(5) = A(A(A(A(Ax(1) + Bu(1)) + Bu(2)) + Bu(3)) + Bu(3)) + Bu(3)\\ \vdots \\ x(n+1) = A^{n} + A^{n}B + A^{n-1}B + A^{n-2}B + \dots + AB + B$$

Then we find $y(n)$ vector:

$$y(n) = C[A^{n} + A^{n}B + A^{n-1}B + A^{n-2}B + \dots + AB + B]\\ y(n) = CA^{n} + CA^{n}B + CA^{n-1}B + CA^{n-2}B + \dots + CAB + CB$$

Now we can predict $y(n)$ which is the future output of $n$ samples. But now my question is:

How do I develop a control law for this? What do I need to use? The control law need to be "updated" for every sample the controller do.

1

There are 1 best solutions below

6
On BEST ANSWER

What is MPC?

MPC is an online multi-input/multi-output optimization which systematically handles constraints.

What MPC knows about your system are the model and the current states (not past).

What it does is to obtain the optimal control input series.

If you know the system model and the current state $\boldsymbol{x}_0$ and if you have the current input $\boldsymbol{u}_0$, then you can compute the next state $\boldsymbol{x}_1$, having the second control input $\boldsymbol{u}_1$, you can calculate $\boldsymbol{x}_2$ too. Because you have the model.

So, having $(\boldsymbol{u}_0,\boldsymbol{u}_1,\dots,\boldsymbol{u}_{N-1})$ and $\boldsymbol{x}_0$ means you can calculate $(\boldsymbol{x}_1,\dots,\boldsymbol{x}_N)$ and $(\boldsymbol{y}_1,\dots,\boldsymbol{y}_N)$ respectively.

Now, the question is what series of inputs lead to the best output? We call the optimal control input series as $(\boldsymbol{u}_0^*,\boldsymbol{u}_1^*,\dots,\boldsymbol{u}_{N-1}^*)$.

So, MPC optimizes the control input based on current state as well as predicted future. There is no past information involved.

MPC depends on the current state. The future output is calculated from the current state. Therefore, I would not say that it depends on the future output. MPC is similar to LQR in time domain. But beside the fact of calculation of multiple future steps, it handles constraints as well while LQR does not.