褚式新,茅云生,董早鵬,楊鑫
(1.武漢理工大學(xué) 高性能船舶技術(shù)教育部重點實驗室, 湖北 武漢 430063;2.武漢理工大學(xué) 交通學(xué)院, 湖北 武漢 430063)
近年來,由于海洋資源開發(fā)的蓬勃發(fā)展,各類智能化海洋裝備都備受關(guān)注,各學(xué)者關(guān)于此類海洋裝備的研究也層出不窮[1-2],其中關(guān)于無人海洋運載器(UMV)的研究最為廣泛[3],UMV包括無人波浪滑翔機(UWG)[4]、水下自主航行器(AUV)[5-6]、無人水下機器人(UUV)和水面無人艇(USV)等[7-8],其中USV由于其船型輕巧、智能化等特點廣泛應(yīng)用在軍事和商業(yè)等各個方面,各個國家非常重視USV的研究和發(fā)展[9-11]。良好的操縱性是USV智能化的基礎(chǔ),而操縱性的預(yù)報精度與操縱響應(yīng)模型參數(shù)的精度相關(guān)。隨著系統(tǒng)辨識學(xué)科的發(fā)展,系統(tǒng)辨識的方法被廣泛應(yīng)用在各種模型參數(shù)的辨識上,改變了以往通過實驗獲取模型參數(shù)的現(xiàn)狀,節(jié)約了實驗成本。而在船舶方面的研究,各種辨識方法層出不窮,對操縱模型參數(shù)的辨識精度也越來越高,對船舶的操縱性預(yù)報也越來越精確[12]。
眾多學(xué)者采用辨識的方法對船舶的操縱性進(jìn)行了研究:Luo等[13]、張心光等[14]研究了支持向量機(SVM)在船舶操縱模型中的辨識效果,并在船模實驗中得到了驗證;Zhu等[15]通過人工蜂群算法對SVM進(jìn)行優(yōu)化,辨識了大型集裝箱船的運動模型;Xu等[16]和謝朔等[17]將最小二乘法與SVM結(jié)合運用,實現(xiàn)了參數(shù)的在線辨識;文獻(xiàn)[18-22]介紹了卡爾曼濾波在船舶運動模型參數(shù)辨識方面的應(yīng)用,包括擴(kuò)展卡爾曼濾波(EKF)和無跡卡爾曼濾波(UKF)。
但是目前所使用的辨識算法在獲取USV操縱響應(yīng)模型參數(shù)方面的研究較少,且算法存在精度不高的問題,USV一般體型較小,需要較精確的操縱性預(yù)報,因此需要一種精度較高的辨識算法獲取響應(yīng)模型參數(shù)。極大似然(ML)算法是系統(tǒng)辨識中一種常見的辨識算法,已經(jīng)應(yīng)用在很多領(lǐng)域內(nèi)的參數(shù)獲取上[23-26],具有簡單、方便、精度高等特點,但是目前應(yīng)用在USV運動模型上的研究比較少見,本文基于ML算法,結(jié)合高速USV的2階非線性運動模型展開研究。
隨著海洋資源開發(fā)效率的提升,對USV航速的要求越來越高,隨著航速的提升,對USV的操縱性要求越來越高。描述USV運動模型又分為MMG(由日本Maneuvering Modeling Group提出,簡稱MMG)模型、Abkowitz模型和響應(yīng)型模型,其中MMG分離模型與Abkowitz整體模型因為分析了USV的水動力受力,從根本上得到USV的運動機理,使USV的運動得到精確的預(yù)報。但是由于模型中含有眾多水動力導(dǎo)數(shù),求解起來比較困難,難以普遍使用。相對來說響應(yīng)型模型用簡單的數(shù)學(xué)表達(dá)式反映了操縱舵角與艏向角的關(guān)系式,因此在預(yù)報USV操縱性上被廣泛使用。響應(yīng)型模型分為1階線性、1階非線性、2階線性和2階非線性模型。由于2階線性模型受小擾動限制,當(dāng)USV運動幅度較大時,線性響應(yīng)模型已經(jīng)不再適用,其運動模型中的非線性項值不能忽略,在高速USV操縱響應(yīng)模型中必須要加上非線性項,才能滿足其操縱響應(yīng)變化,由文獻(xiàn)[27]得高速USV 2階非線性操縱響應(yīng)方程為
(1)
式中:T1、T2、T3為時間常數(shù)(s),表示應(yīng)舵性和航向穩(wěn)定性;r為艏向角速度;α為非線性項系數(shù)(s2/rad2);K為舵角增益(s-1);δ為舵角;δr表示壓舵角(rad)。
ML算法是Fisher等在1912年提出的一種辨識算法。它根據(jù)觀測輸出量的條件概率分布構(gòu)造以觀測數(shù)據(jù)和未知參數(shù)為自變量的似然函數(shù),當(dāng)似然函數(shù)取最大值時,自變量的值即為模型參數(shù)的辨識值。ML算法是系統(tǒng)辨識中一種比較常用的辨識方法,具有簡單和高精度等優(yōu)點。對于一個形如(2)式的模型:
Yt=Htθ,
(2)
式中:Yt為輸出量矩陣,包含從開始到t時刻的所有輸出量;Ht為輸入量矩陣,包含從開始到t時刻的所有輸入量;θ為參數(shù)矩陣。定義似然函數(shù)為
L(Yt|θ)=f(y1|θ)f(y2|θ)…f(yt|θ),
(3)
式中:f(yt|θ)表示t時刻的觀測值概率分布密度。似然函數(shù)就是從1到t時刻的所有觀測值概率分布密度的乘積。
為了方便求出似然函數(shù)的極大值,將其變換為
(4)
對參數(shù)θ求導(dǎo),得
(5)
可推得參數(shù)θ的ML估計為
(6)
由此即可得到基于ML算法對形如(2)式模型的參數(shù)辨識結(jié)果。
Z形實驗是一種常見的USV操縱運動,目前基于船舶操縱性的研究大部分以此展開。本文基于數(shù)學(xué)分析軟件MATLAB開展Z形半物理仿真操縱實驗,以獲取辨識所需實驗數(shù)據(jù)。選取文獻(xiàn)[28]中參數(shù),如表1中所示。
表1 USV 2階非線性操縱響應(yīng)模型參數(shù)
基于上述響應(yīng)模型參數(shù),應(yīng)用工程上常用的4階龍格- 庫塔法進(jìn)行計算,以MATLAB 2018a軟件為仿真計算平臺,進(jìn)行了20° Z形仿真操縱實驗。為擬合真實實驗,仿真采樣時間間隔取1 s,采樣時間為500 s,各項數(shù)據(jù)如圖1所示,圖中ψ為艏向角。
圖1 20° Z形實驗仿真數(shù)據(jù)
為了滿足基于ML算法辨識需求,需要構(gòu)造形如(2)式的辨識模型,因此需要將待辨識模型(1)式轉(zhuǎn)化為(2)式。由于(1)式為連續(xù)模型,需要使用差分法對其進(jìn)行離散處理,考慮到實際實驗中艏向角比其他參數(shù)容易測量獲取,將(1)式中各物理量使用前向差分法差分到艏向角,具體差分過程為
(7)
(8)
(9)
(10)
式中:Δt為時間間隔。
將(7)式~(10)式代入(1)式中,令y(t)=ψ(t+1)-ψ(t),得
(11)
將(11)式寫成矩陣形式,即可得到Y(jié)t=Htθ的辨識模型,矩陣的具體表達(dá)式為:
輸入矩陣
Ht=[(Δt)3δ(t) (Δt)3(Δt)2[δ(t+1)-δ(t)]
-Δt[y(t+1)-y(t)] -(Δt)2y(t) -y3(t)];
(12)
參數(shù)矩陣
(13)
輸出矩陣
Yt=[y(t+2)-2y(t+1)+y(t)].
(14)
基于圖1中的仿真數(shù)據(jù),可依次計算輸入矩陣和輸出矩陣的各值,然后根據(jù)ML算法的辨識結(jié)果(6)式可得到USV 2階非線性響應(yīng)模型的參數(shù)辨識結(jié)果。
為充分體現(xiàn)ML算法在辨識模型參數(shù)上的精確性,將ML算法與目前參數(shù)辨識中常用的EKF算法在20° Z形仿真實驗數(shù)據(jù)的情況下展開辨識,并對比其辨識結(jié)果,辨識結(jié)果如表2所示。
表2 20° Z形仿真辨識結(jié)果
由表2可以看出,ML算法在辨識高速USV操縱響應(yīng)模型參數(shù)時,T1、K、α、δr參數(shù)辨識精度均較EKF算法有所提高,但T2、T3參數(shù)辨識精度誤差很大,且同時向大于原始值的方向偏移,故認(rèn)為此辨識結(jié)果產(chǎn)生了參數(shù)漂移。
參數(shù)漂移現(xiàn)象產(chǎn)生的原因是在設(shè)計辨識模型時,使用了前向差分法離散角速度和舵角變化率等物理量。由圖1可知,艏向角的變化曲線很光滑,用差分法處理時誤差很小,但是舵角的變化曲線卻不光滑,使用差分法處理時誤差很大,導(dǎo)致了T2、T3的漂移。鑒于目前的操縱運動中只有正弦實驗舵角變化曲線比較光滑,使用差分法處理時誤差較小,將采用正弦仿真數(shù)據(jù)開展辨識。
(15)
辨識數(shù)據(jù)的采集改用20°正弦仿真實驗,與Z形仿真實驗相同,采樣時間間隔取1 s,采樣時間取500 s.仿真數(shù)據(jù)如圖2所示。
圖2 20°正弦實驗仿真數(shù)據(jù)
辨識過程與Z形實驗相同,與Z形實驗對比結(jié)果如表3所示。
表3 20°正弦和Z形實驗辨識結(jié)果對比
由表3可知:基于正弦仿真數(shù)據(jù)下辨識,在其他參數(shù)辨識精度變化不大的情況下,T2、T3整體參數(shù)辨識精度有較大改善;改善后T2辨識結(jié)果小于真實值,T3辨識結(jié)果大于真實值,說明了此方法對改善響應(yīng)模型辨識中參數(shù)漂移的有效性。同時也通過此方法使辨識結(jié)果精度得到進(jìn)一步的提升,從而最大程度提高USV的操縱性預(yù)報精度。
為了將USV 2階非線性響應(yīng)模型參數(shù)辨識結(jié)果與具體的USV操縱運動預(yù)報相對應(yīng),本文基于表2的ML算法與EKF算法的辨識結(jié)果開展了5°、10°、20°和30°正弦和Z形半物理仿真操縱實驗,以分析本文所提ML算法和EKF算法,基于Z形仿真數(shù)據(jù)下的辨識參數(shù)結(jié)果,在USV操縱性預(yù)報上的預(yù)報精度。
因為在USV運動時,容易觀測艏向角,所以只繪制了艏向角的變化曲線,為符合實際情況,均將艏向角值限制在[0 rad,2π rad]范圍內(nèi),實驗結(jié)果如圖3所示。
圖3 操縱運動仿真實驗驗證圖
由圖3可以看出,與EKF算法辨識結(jié)果對操縱性實驗的預(yù)報相比,基于ML算法的辨識結(jié)果顯然與真實操縱運動艏向角的變化更加擬合,且在不同角度與不同類型實驗下都非常接近真實值,證明了ML算法的辨識結(jié)果精度優(yōu)于EKF算法,且算法具有很高的泛化性。圖3(e)與其他Z形實驗艏向角變化形狀不同的原因在于EKF算法辨識的δr值較大,5°的Z形實驗不能使舵角左右偏移,舵角一直在一邊,所以呈現(xiàn)的艏向角變化是一直增大的。
但是ML算法基于Z形數(shù)據(jù)的辨識結(jié)果在T2、T3參數(shù)處仍有較大誤差,由表3的辨識數(shù)據(jù)可知,ML算法基于正弦實驗數(shù)據(jù)辨識能提高T2、T3參數(shù)辨識精度,消除因參數(shù)漂移所帶來的誤差。為將辨識精度反映到操縱預(yù)報上,將基于表3正弦辨識和Z形辨識結(jié)果開展操縱運動驗證。由圖3可知,基于ML算法的Z形辨識結(jié)果在正弦和Z形操縱仿真實驗中非常接近真實值,因此在這兩種操縱運動中,基于正弦辨識結(jié)果的預(yù)報相對于Z形辨識的提升并不明顯??紤]用回轉(zhuǎn)運動去驗證基于正弦實驗辨識對操縱性的提升,將基于兩種實驗仿真數(shù)據(jù)辨識結(jié)果開展5°、10°、20°和30°回轉(zhuǎn)運動,對比結(jié)果如圖4所示。
圖4 回轉(zhuǎn)仿真實驗驗證圖
從圖4可以看出,在ML算法對USV 2階非線性響應(yīng)模型參數(shù)辨識過程中,基于正弦仿真實驗數(shù)據(jù)辨識的結(jié)果對回轉(zhuǎn)運動的預(yù)報與真實變化非常擬合,且精度明顯高于Z形實驗的,同樣也驗證了基于正弦實驗數(shù)據(jù)辨識結(jié)果也具有極強的泛化能力。由此可以證明,基于正弦實驗數(shù)據(jù)辨識結(jié)果消除了參數(shù)漂移現(xiàn)象,對參數(shù)T2、T3的辨識精度有很大提升,同時提高了USV的整體辨識精度。綜上所述,基于正弦實驗數(shù)據(jù)辨識能有效消除基于Z形實驗數(shù)據(jù)辨識中的參數(shù)漂移現(xiàn)象,提高了USV的模型參數(shù)整體辨識精度,從而提高USV在各種復(fù)雜操縱運動中的預(yù)報精確度。
針對高速USV操縱性預(yù)報困難與精度不高等問題,本文提出了一種用于獲取高速USV 2階非線性響應(yīng)模型參數(shù)的ML辨識方法,并基于辨識結(jié)果預(yù)報了高速USV的操縱運動。本文從ML算法的辨識模型設(shè)計、辨識過程、辨識結(jié)果分析、辨識結(jié)果對比4個方面展開了研究,并進(jìn)行了泛化性仿真操縱性實驗驗證。主要得到以下結(jié)論:
1)基于USV 2階非線性響應(yīng)模型設(shè)計了ML辨識算法模型,通過仿真采集了Z形實驗數(shù)據(jù),以此初步辨識了模型參數(shù),并與EKF算法辨識結(jié)果進(jìn)行了對比,驗證了ML辨識算法是一種精度極高的算法。
2)通過研究發(fā)現(xiàn),ML算法在辨識USV 2階非線性響應(yīng)模型參數(shù)時,由于使用前向差分法處理舵角變化率會導(dǎo)致T2、T3參數(shù)在辨識過程中的漂移現(xiàn)象,提出采用舵角光順變化的正弦實驗進(jìn)行辨識,且辨識結(jié)果能有效地消除參數(shù)漂移現(xiàn)象。
3)為驗證辨識精度對于操縱性預(yù)報的影響,進(jìn)行了5°、10°、20°及30° Z形、正弦和回轉(zhuǎn)操縱運動仿真實驗。實驗結(jié)果表明:ML算法具有很強的泛化性,無論操縱運動種類和角度的變化,其辨識結(jié)果都能有效地預(yù)報USV的操縱性。