盧冠宇, 姚建喜
(武漢理工大學(xué) a. 高性能艦船技術(shù)教育部重點(diǎn)試驗(yàn)室;b. 船海與能源動(dòng)力工程學(xué)院, 湖北 武漢 430063)
利用船舶操縱運(yùn)動(dòng)的數(shù)學(xué)模型進(jìn)行計(jì)算機(jī)數(shù)值模擬是船舶操縱性預(yù)報(bào)最常用和最有效的方法之一。船舶操縱運(yùn)動(dòng)的數(shù)學(xué)建模分為機(jī)理建模和黑箱建模。機(jī)理建?;诖_定的數(shù)學(xué)模型,常用的為Abkowitz整體式模型和分離式數(shù)學(xué)模型(Maneuvering Modeling Group, MMG)。對(duì)于機(jī)理建模,所使用模型中水動(dòng)力導(dǎo)數(shù)的精度是影響其預(yù)報(bào)精度的關(guān)鍵。目前,獲取水動(dòng)力導(dǎo)數(shù)主要有約束模型試驗(yàn)方法、經(jīng)驗(yàn)公式法、基于CFD(Computational Fluid Dynamics)的數(shù)值計(jì)算方法和系統(tǒng)辨識(shí)方法等4種方法。由于CFD的數(shù)值模擬耗費(fèi)大量的計(jì)算資源,難以滿足工程的應(yīng)用需要,而系統(tǒng)辨識(shí)方法很好地彌補(bǔ)了其缺點(diǎn)。系統(tǒng)辨識(shí)用于船舶操縱性預(yù)報(bào)的過(guò)程屬于有參數(shù)回歸,回歸得到的水動(dòng)力導(dǎo)數(shù)具有較為明確的物理意義,LUO等[1]使用LS-SVM(Least Square-Support Vector Machine)對(duì)船舶操縱性進(jìn)行有參數(shù)的預(yù)報(bào),并討論減緩參數(shù)漂移的方法;李騰飛[2]使用擴(kuò)展卡爾曼濾波法對(duì)MMG模型中的部分參數(shù)進(jìn)行辨識(shí)。然而,船舶操縱運(yùn)動(dòng)實(shí)際上是一個(gè)非常復(fù)雜的非線性系統(tǒng),機(jī)理建模的參數(shù)漂移不能消除,且在多數(shù)情況下使用機(jī)理建模難以建立高精度的船舶操縱運(yùn)動(dòng)模型。使用黑箱建模的思想進(jìn)行無(wú)參數(shù)回歸,將水動(dòng)力與運(yùn)動(dòng)參數(shù)進(jìn)行非線性的黑箱映射,可避免出現(xiàn)在系統(tǒng)辨識(shí)過(guò)程中水動(dòng)力導(dǎo)數(shù)的耦合現(xiàn)象,從而提高預(yù)報(bào)精度。對(duì)于實(shí)船運(yùn)動(dòng),黑箱建模便于討論Abkowitz模型外一些項(xiàng)的影響,例如已知高階項(xiàng)和未知項(xiàng),且可隨著船舶運(yùn)動(dòng)建模理論的發(fā)展而對(duì)輸入因素進(jìn)行擴(kuò)展。
隨著機(jī)器學(xué)習(xí)和人工智能技術(shù)的發(fā)展,多種新的方法被應(yīng)用在船舶操縱運(yùn)動(dòng)模型精度的改進(jìn)上。HADDARA等[3]利用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)對(duì)非線性水動(dòng)力導(dǎo)數(shù)項(xiàng)構(gòu)建黑箱進(jìn)而預(yù)報(bào)船舶水面運(yùn)動(dòng);蔡韡等[4]訓(xùn)練徑向基(Radial Basis Function, RBF)神經(jīng)網(wǎng)絡(luò)對(duì)船舶操縱運(yùn)動(dòng)進(jìn)行預(yù)報(bào);王雪剛等[5]使用LS-SVM在多組仿真數(shù)據(jù)下預(yù)報(bào)了四自由度船舶操縱運(yùn)動(dòng),但未對(duì)核函數(shù)參數(shù)變化進(jìn)行討論;梅斌等[6]采用模型參考和隨機(jī)森林模型對(duì)船舶操縱運(yùn)動(dòng)進(jìn)行辨識(shí)建模;白偉偉等[7]運(yùn)用一種基于全局最優(yōu)的局部加權(quán)學(xué)習(xí)算法對(duì)船舶操縱運(yùn)動(dòng)進(jìn)行黑箱建模;謝朔等[8]將多新息在線方法引入SVM辨識(shí)建模。SVM最早用于解決分類問(wèn)題,顯然運(yùn)動(dòng)預(yù)報(bào)屬于回歸問(wèn)題,此時(shí)其形式為支持向量回歸(Support Vector Regression, SVR)。
本文使用10°/10°、20°/20°Z形試驗(yàn)和35°回轉(zhuǎn)試驗(yàn)的少量仿真數(shù)據(jù)進(jìn)行樣本重構(gòu),代入SVR黑箱模型進(jìn)行訓(xùn)練,通過(guò)網(wǎng)格搜索交叉驗(yàn)證對(duì)核函數(shù)的選取以及參數(shù)的調(diào)整進(jìn)行試驗(yàn),用所構(gòu)建的黑箱模型較為準(zhǔn)確地預(yù)報(bào)10°/10°、20°/20°Z形運(yùn)動(dòng)和35°回轉(zhuǎn)運(yùn)動(dòng),驗(yàn)證了該黑箱模型的有效性;基于該模型泛化預(yù)報(bào)15°/15°Z形運(yùn)動(dòng)和15°、25°回轉(zhuǎn)運(yùn)動(dòng),將預(yù)報(bào)結(jié)果和仿真數(shù)據(jù)進(jìn)行比對(duì),驗(yàn)證SVR黑箱模型應(yīng)用于船舶操縱運(yùn)動(dòng)具有良好的泛化性。
船舶三自由度操縱運(yùn)動(dòng)方程為
(1)
將船體所受水動(dòng)力進(jìn)行泰勒級(jí)數(shù)展開(kāi),即式(1)可表示為
(2)
式(2)中:Xu、Yv和Nv為水動(dòng)力導(dǎo)數(shù);Δu為關(guān)于初始縱向速度的變化量。
將式(2)中所有加速度項(xiàng)移至左邊為
(3)
式(3)中:F1、F2、F3為關(guān)于運(yùn)動(dòng)參數(shù)u、v、r和δ的函數(shù);等式左端除(角)加速度項(xiàng)外皆為常量,因此,各(角)加速度可表示為運(yùn)動(dòng)參數(shù)u、v、r和δ的函數(shù),并將加速度項(xiàng)離散為差分形式
(4)
即:
(5)
式(4)和式(5)中:k和k+1為當(dāng)前時(shí)刻和下一時(shí)刻;g1、g2、g3為u、v、r和δ的非線性函數(shù),可使用黑箱模型表示非線性函數(shù),在這個(gè)黑箱系統(tǒng)中,輸入{u(k),v(k),r(k),δ(k)}就可輸出{u(k+1),v(k+1),r(k+1)}。
對(duì)于式(5)所反映的函數(shù)關(guān)系,使用SVR建立預(yù)測(cè)模型。給定訓(xùn)練樣本集D={(xi,yi),i=1,2,3,…,n},輸入為多維變量x∈Rm,輸出y∈R。此時(shí)多輸入單輸出(Multi Input and Single Output, MISO)系統(tǒng)模型為
yi=ωTxi+b
(6)
式(6)中:ω為權(quán)重向量;b為偏置值。
(7)
式(7)中:C為懲罰項(xiàng)系數(shù)。
(8)
(9)
(10)
(11)
C=αi+μi
(12)
(13)
將式(10)~式(13)代入式(9),得到SVR的對(duì)偶問(wèn)題,有
(14)
(15)
式(14)和式(15)為凸二次規(guī)劃(QP)問(wèn)題,存在最優(yōu)解,常使用序列最小優(yōu)化(Sequential Minimal Optimization, SMO)算法[10]進(jìn)行求解,SMO算法的計(jì)算流程為
(16)
在處理回歸問(wèn)題時(shí)只關(guān)注于結(jié)果的預(yù)測(cè),并不關(guān)心過(guò)程中模型參數(shù)的大小。式(6)所反映的函數(shù)關(guān)系,明顯是線性函數(shù)關(guān)系。在機(jī)器學(xué)習(xí)領(lǐng)域,當(dāng)提取的特征與預(yù)測(cè)目標(biāo)之間呈現(xiàn)非線性關(guān)系時(shí),往往使用核函數(shù)來(lái)對(duì)其進(jìn)行高維空間映射,將線性學(xué)習(xí)器拓展為非線性學(xué)習(xí)器,這種思想稱為核方法。
常見(jiàn)的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、RBF核函數(shù)和Sigmoid核函數(shù)等。對(duì)于船舶操縱運(yùn)動(dòng)模型,輸入變量與輸出變量之間明顯是非線性關(guān)系,且線性核函數(shù)不包含可調(diào)參數(shù),故先確定以使用多項(xiàng)式核函數(shù)和RBF核函數(shù)為佳。試驗(yàn)中多項(xiàng)式核函數(shù)的預(yù)測(cè)精度接近于RBF核函數(shù),優(yōu)先使用RBF核函數(shù)進(jìn)行建模與網(wǎng)格搜索,而若RBF核函數(shù)不滿足所設(shè)定精度閾值時(shí),則使用多項(xiàng)式核函數(shù)繼續(xù)尋優(yōu)。以RBF核函數(shù)建立的SVR模型為
(17)
式(17)中:γ為核函數(shù)的尺度參數(shù)。
網(wǎng)格搜索法是一種遍歷式的參數(shù)尋優(yōu)方法,把指定區(qū)間劃分網(wǎng)格,網(wǎng)格中每一個(gè)點(diǎn)都代表一種參數(shù)組合。將網(wǎng)格中包含的所有參數(shù)組合代入計(jì)算模型誤差,比較誤差大小,以得到最優(yōu)參數(shù)組合。網(wǎng)格搜索交叉驗(yàn)證是指以K折交叉驗(yàn)證結(jié)果為尋優(yōu)依據(jù)進(jìn)行網(wǎng)格搜索。在網(wǎng)格搜索過(guò)程中,將數(shù)據(jù)集劃分成K個(gè)子集,每次將其中1個(gè)子集作為測(cè)試集,剩余K-1個(gè)子集作為訓(xùn)練集進(jìn)行訓(xùn)練;依次代入每一個(gè)網(wǎng)格中的參數(shù)組合,使用訓(xùn)練集構(gòu)建模型,對(duì)測(cè)試集進(jìn)行MSE計(jì)算;重復(fù)K次迭代,使每子集都曾作為測(cè)試集計(jì)算MSE,對(duì)K次MSE值求平均,作為最終評(píng)價(jià)網(wǎng)格搜索中參數(shù)組合優(yōu)劣的依據(jù),取交叉驗(yàn)證誤差最小的參數(shù)組合作為最優(yōu)結(jié)果。理論上,只要網(wǎng)格無(wú)限劃分,最終所找到的參數(shù)組合即為全局最優(yōu)。
本文使用網(wǎng)格搜索法對(duì)核函數(shù)參數(shù)進(jìn)行尋優(yōu),步驟如下:
1) 將(0.1,10.1)視為γ的取值區(qū)間,取值區(qū)間均分為10等份,取其所有端點(diǎn)值(每次11個(gè)點(diǎn)值)代入核函數(shù),使用10折交叉驗(yàn)證計(jì)算MSE,觀察數(shù)據(jù)走向,取誤差最小點(diǎn),變量賦值為a。
2) 取p為已循環(huán)次數(shù),以[a-0.5×10-p+1,a+0.5×10-p+1]為取值區(qū)間,均分為10等份,分別取其所有端點(diǎn)值代入核函數(shù)計(jì)算,使用10折交叉驗(yàn)證取得誤差最小點(diǎn),更新賦值為a。
3) 重復(fù)進(jìn)行2),直到MSE小于規(guī)定精度,取MSE最小值作為RBF核函數(shù)的γ參數(shù)。取q為最大循環(huán)次數(shù),如循環(huán)q次仍不滿足精度要求,分別使用三次和四次多項(xiàng)式核函數(shù)重復(fù)1),直到MSE小于規(guī)定精度。
SVR黑箱建??偭鞒桃?jiàn)圖1。
圖1 SVR黑箱建??偭鞒?/p>
采用KVLCC2船型的CFD計(jì)算所得到的水動(dòng)力導(dǎo)數(shù),代入整體型操縱運(yùn)動(dòng)方程,對(duì)其三自由度的運(yùn)動(dòng)進(jìn)行仿真,分別得到10°/10°,20°/20°Z形試驗(yàn)和35°回轉(zhuǎn)試驗(yàn)的運(yùn)動(dòng)數(shù)據(jù),迭代步長(zhǎng)皆為0.1 s,其中Z形試驗(yàn)以4次轉(zhuǎn)舵操縱為限,35°回轉(zhuǎn)試驗(yàn)以3 000 s為限。將以上仿真所得4組數(shù)據(jù)匯總等距抽取1%(共694個(gè)樣本)用作樣本數(shù)據(jù)。仿真模型KVLCC2的主要參數(shù)見(jiàn)表1。
表1 仿真船型KVLCC2的主要參數(shù)
在仿真生成的無(wú)噪聲數(shù)據(jù)中,松弛變量的懲罰項(xiàng)系數(shù)C對(duì)SVR結(jié)果幾無(wú)影響,取C=106表示回歸過(guò)程僅容許較小誤差;取ε=0.1,基于網(wǎng)格搜索法對(duì)γ參數(shù)和對(duì)應(yīng)核函數(shù)類型進(jìn)行尋優(yōu),并使用10折交叉驗(yàn)證對(duì)應(yīng)γ值所構(gòu)建SVR黑箱模型的泛化性進(jìn)行評(píng)估。在黑箱映射建立過(guò)程中,由于r量級(jí)較小,僅為u量級(jí)的萬(wàn)分之一,使損失函數(shù)變化的敏感程度低,針對(duì)r的樣本輸入進(jìn)行構(gòu)造處理(構(gòu)造方法見(jiàn)第4節(jié))。使用黑箱模型預(yù)報(bào)10°/10°、20°/20°Z形試驗(yàn)和35°回轉(zhuǎn)試驗(yàn)的u、v、r,并通過(guò)以上預(yù)測(cè)速度值計(jì)算艏向角ψ與35°回轉(zhuǎn)試驗(yàn)中的對(duì)地坐標(biāo)x和y,見(jiàn)圖2~圖4。由圖2~圖4可知:本文建立的SVR黑箱模型可較為準(zhǔn)確地預(yù)報(bào)船舶操縱運(yùn)動(dòng)。
在黑箱映射建立過(guò)程中,由于r量級(jí)較小,僅為u量級(jí)的萬(wàn)分之一,使損失函數(shù)變化的敏感程度低,直接使用原始樣本則無(wú)法構(gòu)建r(k+1)關(guān)于自變量的映射關(guān)系,見(jiàn)圖5c~圖7c,需要針對(duì)r進(jìn)行樣本構(gòu)造。本文使用的樣本構(gòu)造方法有兩種:
1) 第一種(簡(jiǎn)稱構(gòu)造1)是僅對(duì)樣本中r的因變量值擴(kuò)大一定倍數(shù)處理,假設(shè)這個(gè)倍數(shù)為N,此時(shí)構(gòu)建的映射反映的是N×r(k+1)關(guān)于原輸入自變量的關(guān)系。在預(yù)報(bào)過(guò)程中,在黑箱映射后除以該倍數(shù)N就可得到r(k+1)的預(yù)測(cè)值。
2) 第二種(簡(jiǎn)稱構(gòu)造2)是對(duì)樣本中r的自變量值和因變量值都擴(kuò)大一定倍數(shù),此時(shí)所構(gòu)建映射反映的是N×r(k+1)關(guān)于輸入自變量{u(k),v(k),N×r(k),δ(k)}的關(guān)系,預(yù)報(bào)得到的N×r(k+1)除以該倍數(shù)便可得到r(k+1)的預(yù)測(cè)值。兩種樣本構(gòu)造的黑箱模型間的區(qū)別見(jiàn)圖8。
分別使用構(gòu)造1和構(gòu)造2對(duì)船舶水面三自由度運(yùn)動(dòng)進(jìn)行預(yù)報(bào),見(jiàn)圖5~圖7。由圖5~圖7可知:兩種構(gòu)造對(duì)于u和v的預(yù)報(bào)精度相當(dāng),但對(duì)于r的預(yù)報(bào)精度不同。使用構(gòu)造1對(duì)10°/10°、20°/20°Z形試驗(yàn)中r的預(yù)報(bào)更為精確,體現(xiàn)在ψ隨時(shí)間的變化上,表明r的時(shí)歷預(yù)報(bào)中誤差的積累小,而構(gòu)造2對(duì)r的預(yù)報(bào)會(huì)使ψ計(jì)算隨時(shí)間不斷積累更大的誤差,導(dǎo)致數(shù)據(jù)偏離加大;對(duì)于35°回轉(zhuǎn)試驗(yàn),構(gòu)造1對(duì)r的預(yù)報(bào)精度明顯不及構(gòu)造2的預(yù)報(bào)精度。因此,在第3節(jié)中,優(yōu)先使用構(gòu)造1進(jìn)行預(yù)報(bào),而僅針對(duì)35°回轉(zhuǎn)試驗(yàn)中r的預(yù)報(bào)使用構(gòu)造2。
SVR黑箱模型對(duì)船舶操縱運(yùn)動(dòng)可實(shí)現(xiàn)在小樣本下快速準(zhǔn)確地預(yù)報(bào)。在網(wǎng)格搜索過(guò)程中,以35°回轉(zhuǎn)試驗(yàn)的結(jié)果為例,見(jiàn)圖9,核函數(shù)類型的選取以及核函數(shù)取不同的γ值對(duì)預(yù)報(bào)精度產(chǎn)生明顯影響。系統(tǒng)篩選的尋優(yōu)核函數(shù)類型和γ值及對(duì)應(yīng)MSE見(jiàn)表2。
表2 尋優(yōu)核函數(shù)類型、γ值及對(duì)應(yīng)MSE
10°/10°、15°/15°、20°/20°Z形試驗(yàn)和15°、25°、35°回轉(zhuǎn)試驗(yàn)的預(yù)報(bào)精度采用10折交叉驗(yàn)證的MSE來(lái)衡量,誤差值越接近于0表示預(yù)測(cè)結(jié)果越準(zhǔn)確如表2所示。
鑒于第3節(jié)中SVR黑箱模型已對(duì)10°/10°、20°/20°Z形試驗(yàn)和35°回轉(zhuǎn)試驗(yàn)進(jìn)行預(yù)報(bào),現(xiàn)將該算法應(yīng)用至15°Z形試驗(yàn)和15°、25°回轉(zhuǎn)試驗(yàn)的預(yù)報(bào),以驗(yàn)證SVR預(yù)報(bào)具有良好的泛化性。這里取倍數(shù)為100,對(duì)樣本作以下處理:在對(duì)15°Z形試驗(yàn)的預(yù)報(bào)以及對(duì)15°、25°回轉(zhuǎn)試驗(yàn)中的u、v的預(yù)報(bào)中,僅對(duì)樣本中因變量的r(k+1)擴(kuò)大100倍(構(gòu)造1);在預(yù)報(bào)15°、25°回轉(zhuǎn)試驗(yàn)中的r時(shí),對(duì)樣本中自變量r(k)和因變量r(k+1)都擴(kuò)大100倍(構(gòu)造2)。用第3節(jié)所使用數(shù)據(jù)集建立SVR黑箱模型,使用網(wǎng)格搜索交叉驗(yàn)證對(duì)核函數(shù)的選取進(jìn)行優(yōu)化,預(yù)報(bào)了15°Z形試驗(yàn)和15°、25°回轉(zhuǎn)試驗(yàn)的u、v和r,并通過(guò)以上預(yù)測(cè)速度值計(jì)算ψ與回轉(zhuǎn)試驗(yàn)中的對(duì)地坐標(biāo)x和y,見(jiàn)圖10~圖12。由圖10~圖12可知:基于SVR的黑箱預(yù)報(bào)方法具有良好的泛化性。
本文開(kāi)展基于SVR的船舶操縱運(yùn)動(dòng)黑箱建模研究,結(jié)論如下:
1) 通過(guò)10°/10°、15°/15°、20°/20°Z形試驗(yàn)和15°、25°、35°回轉(zhuǎn)試驗(yàn)預(yù)報(bào)結(jié)果與基于機(jī)理建模的仿真結(jié)果對(duì)比,驗(yàn)證所建立SVR黑箱模型的有效性,并具有良好的泛化性。
2) 對(duì)于SVR黑箱的訓(xùn)練樣本,需對(duì)其進(jìn)行樣本構(gòu)造,不同的樣本構(gòu)造會(huì)對(duì)結(jié)果精度產(chǎn)生影響,其影響主要體現(xiàn)在對(duì)r的預(yù)報(bào)。2種構(gòu)造的區(qū)別是:一種僅對(duì)樣本中因變量的r(k+1)擴(kuò)大一定倍數(shù)(構(gòu)造1);另一種對(duì)樣本中自變量r(k)和因變量r(k+1)都擴(kuò)大一定倍數(shù)(構(gòu)造2)。對(duì)r進(jìn)行預(yù)報(bào)時(shí),使用構(gòu)造1對(duì)Z形試驗(yàn)中r的預(yù)報(bào)較為準(zhǔn)確,而使用構(gòu)造2則對(duì)回轉(zhuǎn)試驗(yàn)中的r預(yù)報(bào)更為準(zhǔn)確。
3) 不同的核函數(shù)類型與核函數(shù)參數(shù)的選取,對(duì)黑箱映射功能存在顯著影響。RBF核函數(shù)具有較強(qiáng)的高維映射能力,一般使用RBF核函數(shù)建立模型就可滿足精度要求。本文以多項(xiàng)式核函數(shù)作為備選,在使用RBF核函數(shù)難以達(dá)到精度閾值時(shí)用多項(xiàng)式核函數(shù)替代并搜索尋優(yōu),大大減少循環(huán)次數(shù),縮短計(jì)算時(shí)間。
4) 用SVR黑箱建模的方法對(duì)船舶操縱運(yùn)動(dòng)進(jìn)行預(yù)報(bào)時(shí),對(duì)參與訓(xùn)練的操縱運(yùn)動(dòng)類型的預(yù)報(bào)不一定比泛化預(yù)報(bào)的運(yùn)動(dòng)類型更加準(zhǔn)確,因?yàn)楹谙淠P陀?xùn)練的過(guò)程是無(wú)記憶的,目的是為搭建對(duì)于輸入輸出損失最小的模型。例如本文抽取了10°/10°、20°/20°Z形試驗(yàn)和35°回轉(zhuǎn)試驗(yàn)的694個(gè)樣本對(duì)進(jìn)行模型訓(xùn)練,對(duì)15°/15°Z形試驗(yàn)和15°、25°回轉(zhuǎn)試驗(yàn)進(jìn)行泛化性預(yù)報(bào)時(shí)部分結(jié)果具有更高的準(zhǔn)確度。
5) 在Z形試驗(yàn)中,在對(duì)r的預(yù)報(bào)值隨時(shí)間進(jìn)行積分從而計(jì)算ψ時(shí),會(huì)出現(xiàn)誤差隨時(shí)間不斷積累的現(xiàn)象。分段訓(xùn)練樣本、對(duì)船舶操縱運(yùn)動(dòng)進(jìn)行在線預(yù)報(bào)等措施仍有提高預(yù)報(bào)精度的空間,值得下一步研究深入討論。