李榮輝,陳志娟,李宗宣,卜仁祥
(1.大連海事大學(xué)航海學(xué)院,遼寧 大連 116026;2.廣東海洋大學(xué)海運(yùn)學(xué)院,廣東 湛江 524088)
由于欠驅(qū)動(dòng)船舶運(yùn)動(dòng)具有模型不確定、受外界干擾以及舵角輸入受約束等特性,所以對(duì)其路徑跟蹤控制是比較復(fù)雜的。Fossen 提出Line of Sight(LOS)制導(dǎo)法[1],將路徑跟蹤三維控制轉(zhuǎn)換為對(duì)船首向角的一維控制。文獻(xiàn)[2-3]在滑模控制中結(jié)合增量反饋,避免對(duì)不確定項(xiàng)進(jìn)行估計(jì)。文獻(xiàn)[4-6]利用自抗擾控制器的核心(即擴(kuò)張狀態(tài)觀測(cè)器)對(duì)內(nèi)部未知項(xiàng)和外部擾動(dòng)進(jìn)行估計(jì)。文獻(xiàn)[7]利用神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)優(yōu)化,避免不確定項(xiàng)和外界干擾。文獻(xiàn)[8-10]均采用自適應(yīng)算法對(duì)外界干擾進(jìn)行處理。文獻(xiàn)[11]設(shè)計(jì)最小二乘法與神經(jīng)元自適應(yīng)相結(jié)合的控制器,使船在風(fēng)浪流干擾下仍能跟蹤上曲線航跡。文獻(xiàn)[12]將Lyapunov 直接法和神經(jīng)網(wǎng)絡(luò)結(jié)合,使船在外界干擾下仍能跟蹤上正弦路徑。文獻(xiàn)[13]提出結(jié)合 backstepping 與徑向基函數(shù)(radial basis function,RBF)神經(jīng)網(wǎng)絡(luò)的簡(jiǎn)捷魯棒自適應(yīng)控制器,有效地解決風(fēng)浪流干擾。文獻(xiàn)[14]為防止所計(jì)算的控制律超出約束范圍,便引入輔助系統(tǒng)。文獻(xiàn)[2]利用雙曲正切函數(shù)本身的極值約束性對(duì)舵角輸入進(jìn)行了限制。文獻(xiàn)[15]提出模型預(yù)測(cè)控制(model predictive control,MPC),使船能在有風(fēng)流的環(huán)境中跟蹤上參考路徑。文獻(xiàn)[16]設(shè)計(jì)了軌跡跟蹤MPC控制器,能同時(shí)處理輸入及輸入增量約束。文獻(xiàn)[17]提出線性和非線性MPC,線性MPC 在計(jì)算量上更小卻在控制精度上不如非線性MPC 高,但兩者均能有效地處理約束問題。
從以上研究可以看出,對(duì)處理外界干擾及模型不確定項(xiàng)的研究已多有成果,而對(duì)于舵角約束處理的方案則較少。在舵角約束方面,本研究考慮到MPC 只需在求解二次型(Quadratic Programming,QP)[18]時(shí)加入舵角的限制值,便可自然地解決舵角約束問題,因此提出一種歐拉迭代MPC 控制算法,對(duì)船舶路徑跟蹤進(jìn)行控制。多數(shù)MPC 算法是將卷積模型或狀態(tài)空間模型作為預(yù)測(cè)模型,來預(yù)測(cè)未來狀態(tài)值[16,19]。而船舶實(shí)際模型中各個(gè)狀態(tài)之間都是高度耦合的,需要對(duì)其簡(jiǎn)化處理。本研究為提高預(yù)測(cè)精度,采用分離型船舶模型(mathematical model group,MMG)作為預(yù)測(cè)模型,與簡(jiǎn)化后的船舶模型相比,MMG 與實(shí)際船舶運(yùn)動(dòng)情況更為符合。由于MMG 非線性和耦合程度較高,所需船舶參數(shù)較多且計(jì)算量大,因此本研究采用歐拉迭代法對(duì)MMG 模型進(jìn)行離散并預(yù)測(cè),并通過仿真結(jié)果驗(yàn)證所提控制器的有效性。
分離型模型(MMG)是基于深層次的理論分析結(jié)合大量的試驗(yàn)進(jìn)行研究的,其將作用于船舶上的流體動(dòng)力和力矩分解為作用于船體、螺旋槳和舵上的流體動(dòng)力和力矩,并考慮各流體動(dòng)力和力矩之間的相互影響[2]。船舶在平面內(nèi)的位置與運(yùn)動(dòng)參數(shù)的關(guān)系如圖1 所示。
圖1 在流干擾下的船舶平面位置與運(yùn)動(dòng)參數(shù)Fig.1 Planimetric position and kinematicswith of ship under current disturbance
其中,在空間固定坐標(biāo)系中,船舶重心在固定坐標(biāo)系的位置用x0、y0表示,規(guī)定x軸指向正北,船首尾中心線與x軸的夾角即船首向角用φ表示。φc和Vc分別為流的流向和流速,ur為對(duì)水前進(jìn)速度,vr為對(duì)水橫移速度,對(duì)水合速度U=(ur2+vr2)1/2。船舶運(yùn)動(dòng)速度在oxyz坐標(biāo)系上沿x軸和y軸上的分量分別為u和v,u為對(duì)地前進(jìn)速度,v為對(duì)地橫移速度,船首繞z軸旋轉(zhuǎn)的角速度為r,對(duì)地合速度V=(u2+v2)1/2,漂角β=arctan(v/u),δ為舵角。由圖1,考慮了風(fēng)、浪、流干擾和舵機(jī)響應(yīng)特性的船舶MMG 模型如下:
式中,δr為命令舵角,KE為舵機(jī)控制增益,TE為舵機(jī)時(shí)間常數(shù),m為船舶質(zhì)量,mx和my為附加質(zhì)量,XH、YH和NH為作用于船體的黏性類流體動(dòng)力(矩),XP、YP和NP為螺旋槳力(矩),XW、YW和NW為風(fēng)力(矩),XWave、YWave和NWave為浪力(矩),IZZ為船舶繞豎直軸的慣性矩,JZZ為附加慣性矩。XR、YR和NR為舵力(矩),其計(jì)算公式如下:
式中,tR是舵阻力減額份數(shù),aH是操舵引起的船體附加橫向力與舵橫向力的比值,xH是操舵誘導(dǎo)船體橫向力作用中心到船舶重心的距離,F(xiàn)N是舵正壓力。
本研究假設(shè)所有船舶系統(tǒng)狀態(tài)值x,y,φ,u,v,r均可被獲取到。給定螺旋槳轉(zhuǎn)速,只對(duì)橫向位移進(jìn)行控制,控制目標(biāo)是設(shè)計(jì)合適的舵角,使船舶跟蹤參考路徑。
本研究將MPC 作為路徑跟蹤控制器,MPC 算法包括預(yù)測(cè)模型、反饋校正、滾動(dòng)優(yōu)化三個(gè)要素[20]。它的主要優(yōu)點(diǎn)是只需通過在約束下計(jì)算標(biāo)準(zhǔn)的QP二次型,便可直接解決系統(tǒng)輸入限制的問題。首先,根據(jù)預(yù)測(cè)模型和當(dāng)前系統(tǒng)狀態(tài)來對(duì)預(yù)測(cè)時(shí)域Np內(nèi)的所有未來狀態(tài)進(jìn)行預(yù)測(cè)。然后,建立包含預(yù)測(cè)誤差在內(nèi)的優(yōu)化函數(shù)。最后通過在有約束下求解此優(yōu)化函數(shù),便可計(jì)算出最優(yōu)控制輸入。到下一時(shí)刻,利用系統(tǒng)新的測(cè)量數(shù)據(jù)的反饋,重復(fù)相同的流程,即滾動(dòng)優(yōu)化。本研究直接將MMG 模型作為預(yù)測(cè)模型,并基于歐拉迭代法對(duì)系統(tǒng)狀態(tài)進(jìn)行離散和預(yù)測(cè)。控制結(jié)構(gòu)如圖2 所示。
圖2 船舶路徑跟蹤MPC 控制設(shè)計(jì)結(jié)構(gòu)Fig.2 Structural diagram of MPC for ship path following
在當(dāng)前時(shí)刻,船舶運(yùn)動(dòng)系統(tǒng)輸出當(dāng)前狀態(tài)值,RBF 神經(jīng)網(wǎng)絡(luò)通過狀態(tài)歷史信息對(duì)未知干擾項(xiàng)進(jìn)行逼近。然后,根據(jù)預(yù)測(cè)模型和當(dāng)前狀態(tài)對(duì)預(yù)測(cè)時(shí)域Np內(nèi)的所有未來狀態(tài)進(jìn)行預(yù)測(cè)。利用預(yù)測(cè)路徑與參考路徑之間的預(yù)測(cè)誤差建立優(yōu)化函數(shù)。最后通過在有約束下求解此優(yōu)化函數(shù),可計(jì)算出最優(yōu)控制舵角。待下一時(shí)刻,船舶運(yùn)動(dòng)系統(tǒng)繼續(xù)將狀態(tài)值反饋給控制器,進(jìn)行滾動(dòng)優(yōu)化,以此類推。
對(duì)式(1)中的各個(gè)狀態(tài)進(jìn)行離散和預(yù)測(cè),式(1)中動(dòng)力學(xué)微分方程中的各個(gè)力矩之間是高度耦合的,很難轉(zhuǎn)化為狀態(tài)空間矩陣形式,即不能通過矩陣進(jìn)行預(yù)測(cè)。本研究采用歐拉法[21],通過各個(gè)狀態(tài)之間的迭代,在保留原來各狀態(tài)之間耦合及非線性關(guān)系的基礎(chǔ)上進(jìn)行預(yù)測(cè):
式中,Tc是預(yù)測(cè)采樣時(shí)間,即連續(xù)兩個(gè)預(yù)測(cè)值之間的時(shí)間間隔。和分別是對(duì)式(1)中各微分方程的離散化,計(jì)算公式如下。
通過式(5)的預(yù)測(cè)結(jié)果和參考橫向位移yd,計(jì)算路徑預(yù)測(cè)誤差其中j=1,2,…,Np。
根據(jù)預(yù)測(cè)誤差,構(gòu)造優(yōu)化函數(shù)如式(7):
式中,Q是權(quán)重矩陣,通過求解QP 二次型或者在約束條件δmin≤δ≤δmax下求解方程?f*(ēy,δ)/?δ=0,可以計(jì)算出最優(yōu)控制律δ*。由于MPC是利用計(jì)算機(jī)在線進(jìn)行運(yùn)算的[22],所以只能在線通過每步優(yōu)化來計(jì)算控制律,而不能直接寫出控制律的解析式。對(duì)于優(yōu)化函數(shù)中所包含的未知干擾項(xiàng),利用RBF 進(jìn)行逼近并補(bǔ)償。Np是預(yù)測(cè)時(shí)域,Nc是控制時(shí)域,即在預(yù)測(cè)系統(tǒng)未來狀態(tài)時(shí)需要的未來輸入個(gè)數(shù)δk+1,δk+2,…,δk+Nc。Np、Nc和Tc作為控制參數(shù),需要進(jìn)行設(shè)計(jì)。其穩(wěn)定性分析如下:
引理1:當(dāng)h(x)在兩端點(diǎn)a、b處的函數(shù)值A(chǔ)、B 異號(hào)時(shí),在開區(qū)間(a,b)內(nèi)必存在至少一點(diǎn)ξ,使h(ξ)=0。
引理2[23]:一個(gè)函數(shù)能夠取到極值的充要條件:(1)存在使導(dǎo)數(shù)等于0 的點(diǎn);(2)使導(dǎo)數(shù)等于0的那個(gè)x值,左右兩邊導(dǎo)數(shù)符號(hào)相反。
由式(1)、(2)、(3)和(4),有
式中,F(xiàn)r為正的不含舵角的常系數(shù),為不含舵角的其它項(xiàng)總和,γ是整流系數(shù),與βR的值如下:
式中,L是船長(zhǎng),Cb是方形系數(shù),B是船寬。船舶在正常行駛時(shí),船速為常速且漂角不太大,本研究取|β|≤25°,U≤7.5 m/s,轉(zhuǎn)首角速度|r|≤3°/s。將式(8)對(duì)δ求偏導(dǎo),式(8)為差分方程,本不可以對(duì)其求導(dǎo),本研究視其為各個(gè)時(shí)刻連續(xù)值的累加和,通過對(duì)每個(gè)時(shí)刻偏導(dǎo)數(shù)的累加來求近似整體的偏導(dǎo)數(shù)。并根據(jù)船舶參數(shù)可得:
由式(3)和(4),有
將(11)對(duì)δ求偏導(dǎo),并把式(10)代入,得
對(duì)式(4)第2 項(xiàng)做三角函數(shù)變換,得
將式(14)對(duì)δ求偏導(dǎo),由于參考位移yd不含舵角δ,并且舵力在速度u、v上的分量相對(duì)于在轉(zhuǎn)首角速度上的十分小[24],所以忽略它們對(duì)舵角的導(dǎo)數(shù),則有
式中,z1、z2以及z3如下:
由于舵角|δ|≤35°,所以z3恒小于零。將式(8)和(11)代入式(16)最后一項(xiàng),有
由于舵角|δ|≤35°,所以cosδ> 0。h、j和i的大小均受預(yù)測(cè)時(shí)域Np限制。由于漂角較小且船首向角初始值是定值,故θe的符號(hào)和大小僅取決于δ、Np和Tc。因此,設(shè)計(jì)合適的控制參數(shù)Np和Tc便可以使式(15)有如下變化:
由于船舶運(yùn)動(dòng)過程是連續(xù)的,所以f也是連續(xù)的。則根據(jù)式(18)和引理1,存在最優(yōu)舵角δ*可使?f/ ?δ=0。并且,當(dāng)δ<δ*時(shí),?f/ ?δ< 0,當(dāng)δ>δ*時(shí),?f/ ?δ> 0。則根據(jù)引理2 可知,f在δ*處取極小值,則每一時(shí)刻滾動(dòng)求解δ*,使f與(k+j)通過每次得最小值而逐漸趨于零,從而使得y逐漸跟蹤上yd。
本節(jié)利用船舶歷史信息(即上一采樣時(shí)刻的船舶輸出狀態(tài)值)和RBF 的梯度下降法訓(xùn)練權(quán)重值,使RBF 的輸出逼近外界未知項(xiàng)[25]。以(k) 為例,設(shè)計(jì)過程如下:
式中yn是RBF 輸出,即(k),m 是神經(jīng)元數(shù),w是權(quán)重,h是隱含層輸出,計(jì)算如下:
式中,x是輸入,即[δ,],cj是中心點(diǎn)矢量值,bj是寬度矢量值,計(jì)算如下:
式中,α∈(0,1) 是動(dòng)量因子,利用梯度下降法調(diào)節(jié)w、b和c,計(jì)算如下:
式中,η∈(0,1) 是學(xué)習(xí)速率,yh是船舶歷史狀態(tài)信息與控制器中對(duì)應(yīng)的水動(dòng)力之間的誤差數(shù)據(jù),E為逼近偏差。通過誤差數(shù)據(jù)的訓(xùn)練,可以使RBF逼近船舶實(shí)際系統(tǒng)狀態(tài)與控制器中所用模型之間的偏差,即外界干擾項(xiàng),用來補(bǔ)償MPC 中的預(yù)測(cè)模型。當(dāng)外界為定常干擾時(shí),最終權(quán)值會(huì)穩(wěn)定。本研究為處理時(shí)變干擾,每隔3 個(gè)采樣時(shí)間便對(duì)RBF訓(xùn)練一次。逼近流程與相同。
為驗(yàn)證所設(shè)計(jì)控制器的有效性,以大連海事大學(xué)實(shí)習(xí)船育龍輪為仿真對(duì)象,在MATLAB 中進(jìn)行仿真[26],以式(1)中MMG 模型為仿真模型。育龍輪參數(shù)[27]:滿載吃水8 m,滿載排水量14 635 t,船長(zhǎng)126 m,船寬20.8 m,方形系數(shù)0.681,正面受風(fēng)面積369.9 m2,側(cè)面受風(fēng)面積1031.94 m2,螺旋槳直徑4.6 m,螺距3.66 m,舵面積18.8 m2,展弦比1.72,舵機(jī)時(shí)間常數(shù)TE2.5 s,設(shè)定螺旋槳轉(zhuǎn)速100 轉(zhuǎn)/分鐘。
仿真1:初始狀態(tài):u=7.2 m/s,v=0,r=0,φ=0,(x0,y0)=(0,200 m);外界干擾,風(fēng)速:10m/s,風(fēng)向:30°sin(0.02t)+45°;流速:1.0 m/s,流向:10°sin(0.005t)+45°;控制器參數(shù):Np=18,Nc=1,Tc=2.0 s;RBF 參數(shù):η=0.15,α=0.05,c0=[-1 -0.5 0 0.5 1;-1 -0.5 0 0.5 1],b0=5,w0=0。
由圖3 可看出,船舶路徑產(chǎn)生了小于7%的超調(diào),但都小于船寬20.4 m。系統(tǒng)穩(wěn)定后,由于時(shí)變干擾的影響,所以路徑一直存在小波動(dòng),但波動(dòng)的最大幅值也小于5 m,即不到船寬的25%,這在實(shí)際航行中屬于正常。因此我們可以認(rèn)為船舶在受到風(fēng)流時(shí)變干擾的情況下,所設(shè)計(jì)控制器仍能使船準(zhǔn)確地跟蹤上直線參考路徑。所用仿真實(shí)驗(yàn)船本身的舵角幅度限制值為35°。由舵角變化可以看出,在系統(tǒng)穩(wěn)定后,由于時(shí)變風(fēng)流干擾的影響,船首向角與舵角時(shí)刻變化,以抵抗時(shí)變外界干擾。但船首向角和舵角變化平穩(wěn),舵角幅度限制在10°以內(nèi),驗(yàn)證了所提MPC 控制器可有效處理舵角約束。
仿真2:初始狀態(tài)u=7.2 m/s,v=0,r=0,φ=0,(x0,y0)=(0,0);參考路徑:yd=200sin(0.00035πx);外界干擾,風(fēng)速:10 m/s,風(fēng)向:30°sin(0.01t)+45°;流速:1.0 m/s,流向:10°sin(0.005t)+45°;控制器參數(shù):Np=15,Nc=1,Tc=2.5 s,RBF 參數(shù)與仿真3相同。
圖3 有風(fēng)流干擾的直線路徑跟蹤Fig.3 Straight line path following with wind/current disturbances
圖4 有風(fēng)流干擾的曲線路徑跟蹤Fig.4 Curve path following with wind/current disturbances
由圖4 可以看出,在風(fēng)流時(shí)變干擾下,船舶仍能準(zhǔn)確地跟蹤上曲線路徑。從舵角的變化可以看出,整個(gè)過程中舵角都被限制在較小的范圍,并且光滑沒有振蕩或抖動(dòng)。曲線路徑跟蹤與舵角變化的結(jié)果,說明了所設(shè)計(jì)的控制器能有效處理曲線跟蹤過程中的外界干擾以及舵角約束問題。
本研究考慮欠驅(qū)動(dòng)船舶在運(yùn)動(dòng)過程中具有受外部風(fēng)流干擾、控制輸入受約束等問題,基于歐拉迭代法設(shè)計(jì)了船舶路徑跟蹤MPC 控制器。利用MPC 本身在處理系統(tǒng)約束問題上的優(yōu)點(diǎn),解決了舵角輸入受約束問題。并采用歐拉迭代法離散并預(yù)測(cè)船舶未來狀態(tài),以保留船舶運(yùn)動(dòng)狀態(tài)之間的非線性和耦合性并簡(jiǎn)化MPC 的運(yùn)算量。直接以MMG 船舶運(yùn)動(dòng)模型作為MPC 的預(yù)測(cè)模型,彌補(bǔ)了歐拉迭代法精度的不足。利用徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)通過歷史信息的訓(xùn)練,對(duì)外界干擾進(jìn)行逼近及補(bǔ)償。仿真結(jié)果表明所設(shè)計(jì)的MPC 控制器使船舶在外界干擾下仍能準(zhǔn)確地跟蹤上設(shè)定的路徑,舵角變化小,光滑平穩(wěn)。在風(fēng)流時(shí)變干擾的情況下,控制舵角被限制在較小的幅度范圍內(nèi),說明了所設(shè)計(jì)MPC 控制器可以有效處理舵角約束問題的能力。