2
$\begingroup$

Terminal Penalty is used to ensure stability of Model Predictive Control (MPC).

where the initial cost function is

$$J(u)=\Sigma_{i=1}^{\infty}[x(k+i)^TQx(k+i)+u(k+i−1)^TRu(k+i−1)]$$

it is modified to

$$J(u)=\Sigma_{i=1}^{p−1}[x(k+i)^TQx(k+i)+u(k+i−1)^TRu(k+i−1)]+x(k+p)^TQ_px(k+p)$$

The terminal penalty matrix $Q_p$ is calculated from solving a Riccati equation:

$$Q_p=A^TQ_pA−A^TQ_pB(B^TQ_pB+R)^{−1}B^TQ_pA+Q$$

I am wondering what if a matrix is used which has higher magnitude members? Does it still guarantee the stability?

For example if $\beta>1$, can I replace $Q_p$ with $\beta Q_p$ yet ensuring stability?

or if $(Q'_p-Q_p)$ is positive definite, can I replace $Q_p$ with $Q'_p$ yet ensuring stability?

$\endgroup$
1
$\begingroup$

This approach is just assuming a roll-out policy, so using a control policy after and including time step $k+p$ which is known to stabilize the system. For this roll-out policy the input and output constraints are not taken into consideration. So in order to guarantee stability $p$ has to be chosen to be sufficiently large such that these constraints will not be violated given some initial condition $x(k)$ within some compact set and roll-out policy. Using a more aggressive roll-out policy would usually mean bigger inputs, so you might need to increase $p$ to still ensure that the constraints will not be violated.

Now onto answering you real question. You are allowed to choose any $Q_p$ such that you can come up with a control policy which stabilizes the system, whose cost adds up to $x(k+p)^\top Q_p\,x(k+p)$. I am assuming you are dealing with a linear time invariant system, in which case a constant state feedback could stabilize the system. One example of such a controller would be the linear quadratic regulator (LQR). This requires solving the discrete algebraic Riccati equation (DARE)

$$ Q_p = A^\top Q_p A − (A^\top Q_p B + N) (B^\top Q_p B + R)^{−1} (B^\top Q_p A + N^\top) + Q $$

however $N$ is often chosen to be zero, so this would yields the same equation as in your question. The corresponding roll-out policy would then be

$$ u = -(R + B^\top Q_p B)^{-1} (B^\top Q_p A + N^\top)\,x. $$

Normally for LQR you start of with a given $(A,B)$, which is stabilizable, and then choose $R$, $Q$ and $N$ such that

$$ \begin{bmatrix} Q & N \\ N^\top & R \end{bmatrix} \succ 0 $$

a positive definite matrix. But if you start with $Q_p$ this turns the problem into finding $R$, $Q$ and $N$ which satisfy both the previous condition and the DARE. If you assume $N=0$ then this comes down to finding a positive definite $R$ such that

$$ Q = Q_p - A^\top Q_p A + A^\top Q_p B (B^\top Q_p B + R)^{−1} B^\top Q_p A $$

is positive definite as well. But this assumes that you can choose any positive definite matrix for $Q_p$. If you limit yourself to multiplying a previously found $Q_p$ by a positive scalar, then it can be shown that scaling both $Q_p$, $Q$, $R$ and $N$ by $\beta > 0$ still satisfies the DARE and this will also ensure that matrix constructed from $R$, $Q$ and $N$ is still positive definite. Since $(\beta\,M)^{-1} = M^{-1} / \beta$, so $\beta$ can be factored out from the DARE. And multiplying a positive definite matrix by a positive scalar will also return a positive definite matrix. It can be noted this actually gives the same roll-out policy, because the cost of every $x$ compared to every $u$ has not changed.

So using $\beta\,Q_p$, with $\beta > 1$ will still ensure stability, since there exists a stabilizing roll-out policy associated with that terminal cost. Since this roll-out policy is actually identical to the previous roll-out policy, therefore the constraints on the system should not be violated if they also weren't previously. Since the terminal cost is higher this should actually reduce the magnitude of the state and thus the input after $p$ time steps. So with this terminal cost you might actually be able to lower the value of $p$.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.