MPC優化問題求解的推導

2022-10-09 01:09:10 字數 906 閱讀 4101

參考**為《a predictive controller for autonomous vehicle path tracking》。假設我們要求解的代價函式\(j\)為:

\[j=x'qx+u'ru\:(1)

\]其中,\(x\)為未來\(n_p\)次的狀態**序列,\(u\)為未來\(n_u\)次的控制序列,亦即表示如下:

\[x=\left[\beginx(k+1|k)\\x(k+1|k)\\\vdots&\\x(k+n_p|k)\end\right]

\]\[u=\left[\beginu(k|k)\\u(k+1|k)\\\vdots&\\u(k+n_u-1|k)\end\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[\begina\\a^2\\\vdots&\\a^\end\right]

\]而\(h_x\)如下:

\[h_x=\left[\beginb&0&\cdots&0\\ab&b&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\a^b&\cdots&\cdots&b\end\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\)的形式,可以直接進行求解了。

素數求解問題及優化

素數求解問題在程式設計師的面試中是個很簡單的問題,經常是小公司的基礎面試題。然而因為一些個小緊張什麼的,弄跪了些許人 那麼,今天就關於這個問題我們來進行總結及方案優化 素數概念 除了1和它本身不能被其他數整除的數字都是素數 思路 因此判斷乙個整數m是否是素數,只需把m被 2 m 1 之間的每乙個整數...

數學基礎 求解優化問題的演算法比較

在對比演算法之前,我們先給出不同型別問題的定義 p問題 可以在多項式時間內求解的問題 np問題 可以在多項式時間內驗證解是否為問題的解,猜解和驗證解的過程,np問題存在多項式級的演算法,所有的p類問題都是np問題,p np npc問題 不存在多項式求解演算法的問題 npc問題是乙個np問題,所有的n...

MATLAB有約束最優化問題的求解

有約束最優化問題的一般描述為 其中x x1,x2,xn t,該數學表示的含義亦即求取一組x,使得目標函式f x 為最小,且滿足約束條件g x 0。記號s.t.是英文subject to的縮寫,表示x要滿足後面的約束條件。約束條件可以進一步細化為 線性不等式約束 ax b 線性等式約束 aeqx be...