参考论文为《A Predictive Controller for Autonomous Vehicle Path Tracking》。假设我们要求解的代价函数\(J\)为:
\[J=X'QX+U'RU\:(1) \]其中,\(X\)为未来\(N_p\)次的状态预测序列,\(U\)为未来\(N_u\)次的控制序列,亦即表示如下:
\[X=\left[\begin{matrix}x(k+1|k)\\x(k+1|k)\\\vdots&\\x(k+N_p|k)\end{matrix}\right] \]\[U=\left[\begin{matrix}u(k|k)\\u(k+1|k)\\\vdots&\\u(k+N_u-1|k)\end{matrix}\right] \]依据状态方程\(x(k+1)=Ax(k)+Bu(k)\),依次待入解得\(x(k+1),x(k+1),\cdots\)我们可以得到:
\[X=P_xx(k|k)+H_xU\:(2) \]其中\(P_x\)如下:
\[P_x=\left[\begin{matrix}A\\A^2\\\vdots&\\A^{N_p}\end{matrix}\right] \]而\(H_x\)如下:
\[H_x=\left[\begin{matrix}B&0&\cdots&0\\AB&B&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\A^{N_p-1}B&\cdots&\cdots&B\end{matrix}\right] \]我们将\((2)\)待入\((1)\)可以得到:
\[J=C+U'(H_x'QH_x+R)U+x(k|k)'P'QH_xU+U'H_x'QPx(k|k)\:(3) \]通常\(Q\)为对角阵,因此\((3)\)可以化简为:
\[J=C+U'(H_x'QH_x+R)U+2x(k|k)'P'QH_xU\:(4) \]其中\(C\)为常数项,可以忽略,这样便有了标准二次规划\(Y=X'HX+fX\)的形式,可以直接进行求解了。