錢蔚鑫
(中船第九設(shè)計(jì)研究院工程有限公司,上海 200063)
目前動(dòng)力定位(Dynamic Positioning, DP)系統(tǒng)已在海洋工程領(lǐng)域得到廣泛應(yīng)用[1]。通過(guò)使用DP系統(tǒng),海洋平臺(tái)或勘探鉆井可快速適應(yīng)外部環(huán)境的變化。這種自動(dòng)控制系統(tǒng)可通過(guò)調(diào)節(jié)推進(jìn)器的轉(zhuǎn)速和角度來(lái)產(chǎn)生使海上裝備朝指定方向移動(dòng)的力[2]。
傳統(tǒng)的DP控制系統(tǒng)通常采用控制器算法和推力分配(Thrust Allocation, TA)算法設(shè)計(jì)[3]??刂破饔?jì)算所需的廣義力包括縱蕩力、橫蕩力和艏搖力矩。TA算法以廣義力為輸入,將其分配給每個(gè)推進(jìn)器。由于控制器算法沒(méi)有考慮螺旋槳的推力飽和、艏推進(jìn)器的不對(duì)稱效應(yīng)和能量消耗等因素,采用該算法設(shè)計(jì)的DP控制系統(tǒng)可能是次優(yōu)的。模型預(yù)測(cè)控制(Model Predictive Control, MPC)可將觀察到的船舶狀態(tài)作為輸入,計(jì)算出每個(gè)螺旋槳應(yīng)產(chǎn)生的推力,從而產(chǎn)生理論上最佳的推進(jìn)器輸出。然而,MPC算法是一種耗時(shí)的方法[4],在快速動(dòng)態(tài)系統(tǒng)中難以做到實(shí)時(shí)實(shí)現(xiàn)。
本文對(duì)MPC算法[5]進(jìn)行改進(jìn),大大提高M(jìn)PC中每個(gè)步驟的計(jì)算速度。首先,研究MPC中二次規(guī)劃(Quadratic-Programming, QP)的特殊結(jié)構(gòu),然后,采用近似內(nèi)點(diǎn)法求解QP;最后,通過(guò)算例對(duì)該方法的有效性進(jìn)行驗(yàn)證。
船舶的離散狀態(tài)動(dòng)力學(xué)模型[6]為
式(1)中:t為時(shí)間為狀態(tài)為控制輸入為環(huán)境干擾;矩陣和為已知矩陣,與質(zhì)量、阻尼和其他流體動(dòng)力效應(yīng)有關(guān)。對(duì)于船舶而言,式(1)包括隨體坐標(biāo)系與大地坐標(biāo)系之間的速度轉(zhuǎn)換,有
式(2)中:φ為航向角。
MPC是一種基于有限時(shí)域的滾動(dòng)優(yōu)化,會(huì)根據(jù)現(xiàn)在的和以前的狀態(tài)x(0),…,x(t)確定當(dāng)前的控制輸入u(t)。定義一個(gè)凸二次懲罰函數(shù)有
此外,考慮狀態(tài)約束和控制約束,定義一組線性不等式,即
在MPC中,考慮懲罰函數(shù)將限制在T步驟的范圍[7]。通過(guò)求解QP問(wèn)題[8],在每個(gè)步驟中找到控制輸入u(t),有
通過(guò)定義一個(gè)整體決策變量對(duì)式(7)進(jìn)行改寫,有
罰函數(shù)法是通過(guò)在目標(biāo)函數(shù)中增加罰函數(shù)來(lái)代替不等式約束,進(jìn)而求解上述QP問(wèn)題的。
式(9)中:φ(z)為罰函數(shù)。
式(11)中:d為平行元素為P的第i行。在迭代過(guò)程中,保證隱式約束并計(jì)算得到主步長(zhǎng)和對(duì)偶步長(zhǎng)Δz,Δν,直到z+Δz和ν+Δν給出的殘差(rd,rp)足夠小。
式(12)應(yīng)在MPC中迭代計(jì)算,若使用密集的LDLT因式分解來(lái)求解,運(yùn)算浮點(diǎn)數(shù)是次。若利用對(duì)角矩陣的稀疏結(jié)構(gòu),運(yùn)算浮點(diǎn)數(shù)可降次。Φ的逆矩陣可寫為
通過(guò)分塊消除,可通過(guò)以下步驟求解式(12):
該Schur補(bǔ)Y是一個(gè)分塊對(duì)角陣,即
在標(biāo)準(zhǔn)牛頓法中,只有當(dāng)殘差的范數(shù)足夠小時(shí)迭代才會(huì)停止。在近似方法中,會(huì)限制迭代步數(shù),即選擇Kmax作為牛頓步驟的迭代極限。通常將Kmax的值設(shè)定為3~10。
提出一個(gè)機(jī)械控制系統(tǒng),由經(jīng)彈簧連接的6個(gè)物體組成(見(jiàn)圖1)。船舶運(yùn)動(dòng)可簡(jiǎn)化為該系統(tǒng)模型。假設(shè)驅(qū)動(dòng)力向量的大小在-0.5~+0.5,每個(gè)物體的位置在-4~+4。連續(xù)時(shí)間狀態(tài)空間模型為
圖1 彈簧連接振動(dòng)質(zhì)量模型
在一階離散連續(xù)時(shí)間狀態(tài)空間模型中應(yīng)用公式
式(16)中:Tc為采樣時(shí)間,用來(lái)離散化該連續(xù)時(shí)間系統(tǒng)。在快速M(fèi)PC中,選擇一個(gè)時(shí)間范圍T=30,二次目標(biāo)函數(shù)的權(quán)值為
采用近似牛頓法進(jìn)行數(shù)值模擬,并將模擬結(jié)果與采用標(biāo)準(zhǔn)牛頓法所得結(jié)果相對(duì)比,各算例的仿真數(shù)據(jù)見(jiàn)表1,仿真結(jié)果見(jiàn)圖2~圖4。由圖2~圖4可知,快速M(fèi)PC中每個(gè)物體的位移與標(biāo)準(zhǔn)MPC中物體的位移相同。從功耗和變化率方面看,快速M(fèi)PC的控制效果不會(huì)比標(biāo)準(zhǔn)MPC的控制效果差。這表示快速M(fèi)PC可獲得令人滿意的控制性能。同時(shí),從計(jì)算時(shí)間方面看,使用標(biāo)準(zhǔn) MPC求解器計(jì)算每一步控制輸入需500~1000ms,而對(duì)于該算例,執(zhí)行一個(gè)快速M(fèi)PC步驟需7~8ms,可達(dá)到100Hz的控制率。
表1 各算例的仿真數(shù)據(jù)
圖2 x1和u1隨時(shí)間的變化曲線
圖3 x3和u2隨時(shí)間的變化曲線
圖4 x5和u3隨時(shí)間的變化曲線
本文利用MPC中的稀疏結(jié)構(gòu)提高了MPC的計(jì)算速度,可實(shí)現(xiàn)實(shí)時(shí)應(yīng)用??焖費(fèi)PC的控制性能令人滿意。運(yùn)用快速M(fèi)PC算法將使船舶的最優(yōu)控制輸入計(jì)算成為可能。該算法具有普適性,可解決環(huán)境干擾情況下的快速控制問(wèn)題,在無(wú)人機(jī)和車輛運(yùn)動(dòng)控制等領(lǐng)域均可應(yīng)用。