模型預測控制(MPC)演算法之一MAC演算法

引言

隨著自動駕駛技術以及機器人控制技術的不斷發展及逐漸火熱,模型預測控制(MPC)演算法作為一種先進的控制演算法,其應用範圍與領域得到了進一步拓展與延伸。目前提出的模型預測控制演算法主要有基於非參數模型的模型演算法控制(MAC)和動態矩陣控制(DMC),以及基於參數模型的廣義預測控制(GPC)和廣義預測幾點配置控制(GPP)。

雖然模型預測控制演算法的種類有多種,但始終離不開這三大要素[4]:

  1. 預測模型——對未來一段時間內的輸出進行預測;
  2. 滾動優化——滾動進行有限時域在線優化(最優控制);
  3. 反饋校正——通過預測誤差反饋,修正預測模型,提高預測精度。

本篇以MAC演算法作為開篇,對MPC演算法的三大要素的流程進行分析,從而加深對模型預測控制演算法的了解。

MAC演算法

MAC作為一種非參數模型,以系統脈衝響應作為內部預測模型,通過過去與當前的輸入輸出狀態,根據系統的預測模型來預測系統未來的輸出狀態。其開環預測和閉環預測的框圖如下所示:

模型演算法控制框圖

通過上述框圖可知,MAC演算法主要由圖中的四個模塊所組成,各模塊所代表的意義如下所示。當期望輸入為 c 時,獲取 k 時刻下的控制輸入 u(k) ,首先得經過模塊(2)求取此時的參考輸出 y_r ,並通過模塊(1)求取模型輸出 y_M ,通過閉環反饋校正(4)求取預測輸出 y_p ,最終通過模塊(3)算出此時的最優控制率 u(k) 。註明:不討論開環預測的情況。

  1. 預測模型;
  2. 參考軌跡;
  3. 滾動優化;
  4. 反饋校正;

一、預測模型

—————— y_M(k+i) 的求取

對於線性系統,若已知其單位脈衝響應的採樣值 g_1 , g_2 ,..., g_N ,則利用離散卷積公式,可知系統的預測模型描述可近似地用一個有限項卷積表示:

y_M(k+i)=sum_{j=1}^{N}g_j*u(k+i-j)---(1)

其中, y_M(k+i) 表示系統的模型預測輸出; u(k+i-j) 表示系統的控制輸入;G=[g_1, g_2, ..., g_N]^T 表示系統的模型向量,可通過系統辨識的方法得到[1]。

脈衝響應模型

二、參考軌跡

—————— y_r(k+i) 的求取

在MAC中,控制系統的期望輸出是由現時實際輸出 y(k) 出發且向設定值 y_{sp} 光滑過度的一條參考軌跡規定的。在 k 時刻的參考軌跡可由未來時刻的值 y_r(k+i)i=1,2,..., 來描述。其表徵形式如下:

y_r(k+i)=(1-alpha^i)y_{sp}+alpha^i y(k)---(2)

其中, y_r(k+i) 為參考輸出; alpha^i 為柔化係數,且 0<alpha^i<1

三、滾動優化

—————— u(k+i) 的求取

若有《最優控制》的基礎,不難理解,模型預測控制(MPC)的滾動優化問題實際上是以一定的優化準則來獲取最優的控制輸入 u(k) 。不失一般性,採用如下的優化準則:

minJ(k)=sum_{i=1}^{P}q_i[(y_P(k+i)-y_r(k+i))]^2+sum_{j=1}^{M}r_ju^2(k+j-1)---(3)

其中, P 為優化時域; M 為控制時域,一般有 M<Pq_i 為輸出跟蹤加權係數; r_j 為輸入加權係數; y_P(k+i) 為預測輸出

不難發現,若要根據上述的優化準則獲取最優控制輸入 u(k) ,還必須知道其預測輸出 y_P(k+i) 。因此,針對 y_P(k+i) 的求取,引入了模型預測控制(MPC)的第三個要素——反饋校正

四、反饋校正

—————— y_P(k+i) 的求取

閉環預測為例, k 時刻系統的閉環預測輸出可記為

y_P(k)=y_M(k)+h*e(k)---(4)

其中, y_P(k)=[y_P(k+1), ..., y_P(k+P)]^T ;

h=[h_1, ..., h_P]^Th 為反饋係數矩陣 ;

e(k)=y(k)-y_M(k)=y(k)-sum_{j=1}^{N}g_j*u(k-j)---(5)

五、最優控制率

由前面的分析可知,根據預測模型 (1) 、參考軌跡 (2) 、閉環預測 (4) 即可求解出性能指標 (3) 下的無約束MAC最優化控制率:

u_1(k)=(G_1^TQG_1+R)^{-1}G_1^TQ*[y_r(k)-G_2u_2(k)-he(k)]---(6)

其中, Q=diag(q_,q_2, ...,  q_P)R=diag(r_1, r_2, ..., r_M)

最優即時控制量為:

u(k)=d^T*[y_r(k)-G_2u_2(k)-he(k)]---(7)

其中, d^T=[1, 0... 0](G_1^TQG_1+R)^{-1}G_1^TQ---(8)

小結

通過分析MAC演算法的過程可以大致了解模型預測控制(MPC)的實現過程,但在具體設計時,還有一些設計細節需要注意,如控制時域、預測時域長度的選擇,權重矩陣係數的調節等都是需要注意的。

參考文獻

[1] 模型預測控制及Matlab實現.

[2] 模型預測控制介紹.

[3] 模型預測控制之參數選擇.

[4]預測控制之MAC控制.

[5]廣義預測控制GPC.

[6] 預測控制-席裕庚.

推薦閱讀:

MPC模型預測控制(2)--什麼是MPC
MPC模型預測控制(3)--MPC參數設計

TAG:MPC控制 | 模型預測控制 | 控制理論 |