陳 剛,王 威,霍 聰
(海軍工程大學(xué) 艦船與海洋學(xué)院,湖北 武漢 430033)
隨著自主船舶技術(shù)的發(fā)展,船舶自主航行的安全尤為重要。當(dāng)船舶執(zhí)行避障或狹窄水域航行等高機(jī)動(dòng)任務(wù)時(shí),需要建立準(zhǔn)確的動(dòng)力學(xué)模型來(lái)預(yù)見(jiàn)船舶未來(lái)的運(yùn)動(dòng)狀態(tài)或軌跡,判斷控制策略是否有效或規(guī)劃路徑是否滿足船舶運(yùn)動(dòng)特性,并提前采取行動(dòng)避免碰撞。高精度船舶數(shù)學(xué)模型可以提供準(zhǔn)確的運(yùn)動(dòng)預(yù)測(cè),對(duì)于船舶智能導(dǎo)航和控制器的設(shè)計(jì)至關(guān)重要。
船舶動(dòng)力學(xué)模型辨識(shí)的目標(biāo)是建立數(shù)學(xué)模型,在給定船舶運(yùn)動(dòng)狀態(tài)、推力和舵角作為輸入的情況下,生成船舶測(cè)量的運(yùn)動(dòng)狀態(tài)與模型預(yù)測(cè)運(yùn)動(dòng)狀態(tài)之間的最佳擬合。輸入和輸出之間的映射越準(zhǔn)確,現(xiàn)實(shí)世界與模型之間的差距就越小。
目前,船舶動(dòng)力學(xué)建模主要分為基于先驗(yàn)?zāi)P偷膮?shù)化建模和基于數(shù)據(jù)的非參數(shù)化建模。由于船舶表面不規(guī)則,水動(dòng)力分析極其復(fù)雜,用第一原理建模非常困難,有許多先驗(yàn)?zāi)P徒Y(jié)構(gòu)用于近似表達(dá)船舶動(dòng)力學(xué)。其中一些模型廣泛用于水面船舶的動(dòng)力學(xué)建模,如基于泰勒展開(kāi)的三次Abkowitz 模型[1]和二次Norrbin 模型[2]。圍繞這些模型,參數(shù)化建模開(kāi)展了大量的研究工作。諸如最小二乘法[3]、擴(kuò)展卡爾曼濾波器 (EKF)[4]和最小二乘支持向量回歸(LSSVR)[5–6]等方法已用于船舶運(yùn)動(dòng)辨識(shí)。然而,這些方法都存在一些固有的缺點(diǎn),如涉及參數(shù)過(guò)多,導(dǎo)致的多重共線性會(huì)使參數(shù)識(shí)別不準(zhǔn)確,2 組不同的系數(shù)可以同樣好地預(yù)測(cè)某一特定工況,而它們?cè)诹硪粋€(gè)工況中表現(xiàn)不佳,泛化性不足。許多方法被提出來(lái)克服參數(shù)漂移的影響[7],最優(yōu)截?cái)嗥娈愔捣纸?(T-SVD)[8]和最優(yōu)截?cái)嘧钚《酥С窒蛄炕貧w(T-LSSVR)[9–11]被證明可以減少估計(jì)參數(shù)的不確定性。然而,這些方法是一種有偏估計(jì),降低了水動(dòng)力系數(shù)的準(zhǔn)確性,從而降低了參數(shù)的方差,參數(shù)不確定性問(wèn)題仍未完全解決。也有各種消除變量和簡(jiǎn)化參數(shù)的模型[12–13]。然而,船舶的“真實(shí)”模型結(jié)構(gòu)是未知的,確定船舶的模型結(jié)構(gòu)一直是參數(shù)化建模實(shí)際應(yīng)用中的一個(gè)難題。建立模型的目標(biāo)是獲得準(zhǔn)確的預(yù)測(cè),不一定是獲得正確的水動(dòng)力系數(shù)。
與參數(shù)化建模相比,非參數(shù)化建模幾乎不需要船舶模型結(jié)構(gòu)的先驗(yàn)信息,無(wú)需分析復(fù)雜的流體動(dòng)力學(xué),也可以獲得正確的輸入輸出映射。近年來(lái),支持向量回歸(SVR)和局部加權(quán)學(xué)習(xí)(LWL)等機(jī)器學(xué)習(xí)方法被用于船舶動(dòng)力學(xué)建模。廣義橢球基函數(shù)模糊神經(jīng)網(wǎng)絡(luò)[14]用于模擬大型油輪的運(yùn)動(dòng),但是,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)難以確定。v-SVM[15]被提出來(lái)建立操縱運(yùn)動(dòng)模型,并通過(guò)KVLCC2 船舶實(shí)驗(yàn)數(shù)據(jù)進(jìn)行驗(yàn)證,它基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化來(lái)克服神經(jīng)網(wǎng)絡(luò)容易過(guò)擬合但參數(shù)難以調(diào)整的缺點(diǎn)。一種新的基于局部加權(quán)學(xué)習(xí)(LWL)[16]的非參數(shù)辨識(shí)建模方法用于船舶動(dòng)力學(xué)建模,它可以提供更高的建模精度,但存在計(jì)算復(fù)雜度高和計(jì)算時(shí)間長(zhǎng)的缺點(diǎn)。核嶺回歸(KRR)[17–19]用于訓(xùn)練具有多個(gè)隨機(jī)測(cè)試的模型,然而核嶺回歸需要執(zhí)行網(wǎng)格搜索以進(jìn)行超參數(shù)優(yōu)化。總的來(lái)說(shuō),采用核函數(shù)的非參數(shù)建模避免了參數(shù)化建模需要了解模型結(jié)構(gòu)的缺點(diǎn),但仍然存在過(guò)擬合、超參數(shù)調(diào)整困難等問(wèn)題。
高斯過(guò)程回歸(GPR)可以通過(guò)最大化邊際似然函數(shù)來(lái)自動(dòng)優(yōu)化超參數(shù),還可以克服過(guò)擬合問(wèn)題,它廣泛應(yīng)用于機(jī)械臂[20]和賽車[21]的動(dòng)力學(xué)建模。最近,它也被引入到船舶的動(dòng)力學(xué)建模中,多輸出高斯過(guò)程被用來(lái)模擬集裝箱船運(yùn)動(dòng)[22]。薛[23]通過(guò)使用帶有人工噪聲的模擬數(shù)據(jù),提出了一種考慮噪聲輸入高斯過(guò)程來(lái)進(jìn)行船舶動(dòng)力學(xué)建模,但目前僅限于模擬數(shù)據(jù),沒(méi)有對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行建模。
在本文研究中,基于高斯過(guò)程的非參數(shù)回歸被用于船舶動(dòng)力學(xué)模型辨識(shí),通過(guò)建立模型預(yù)測(cè)難以測(cè)量的船舶加速度。同時(shí)提出多步預(yù)測(cè)模型以提供船舶未來(lái)一段時(shí)間加速度、速度和位置信息。KVLCC2 的實(shí)驗(yàn)數(shù)據(jù)用于驗(yàn)證所提出方法的有效性。
船舶動(dòng)力學(xué)參數(shù)模型極其復(fù)雜,該模型包含輻射引起的附加質(zhì)量、阻尼和恢復(fù)力。描述船舶動(dòng)力學(xué)的參數(shù)化數(shù)學(xué)模型有很多,常用的運(yùn)動(dòng)方程[24]可以表示為:
其中,船速s=[u,v,r]T與位置η=[x0,y0,ψ]T的 關(guān)系如圖1所示。
圖1 地球和船舶固定坐標(biāo)系Fig.1 Earth and ship-fixed coordinate systems
當(dāng)只考慮3 個(gè)自由度模型(縱向、搖擺和偏航)時(shí),靜水恢復(fù)力和流體記憶效應(yīng)可以忽略不計(jì),不考慮外界風(fēng)和流的影響,方程(1)可以簡(jiǎn)化為:
由于阻尼力D(s)的非常復(fù)雜,參數(shù)模型中通常使用二次或三次模型進(jìn)行估計(jì)。根據(jù)參數(shù)化模型的表達(dá)形式,提出船舶動(dòng)力學(xué)的非參數(shù)化表達(dá)如下:
其中:τ通常由推進(jìn)器產(chǎn)生推力T和舵δ表示;s表示船舶運(yùn)動(dòng)速度;表示船舶運(yùn)動(dòng)速度,3 個(gè)自由度方向可以表示為:
{(xi,yi)|i=1,···,n}是回歸的輸入和輸出,它們之間的關(guān)系可以表示為:
在高斯過(guò)程回歸[25]中,y和f(x?)的聯(lián)合分布為:
f(x?)的預(yù)測(cè)值為:
通常采用平方指數(shù)協(xié)方差函數(shù)作為核函數(shù):
其中,?f和Λ是核函數(shù)的超參數(shù)。使用共軛梯度或擬牛頓法算法對(duì)邊際似然函數(shù)可對(duì)超參數(shù)進(jìn)行優(yōu)化。
在控制船舶時(shí),通常希望在執(zhí)行控制命令后預(yù)測(cè)未來(lái)k步船舶的運(yùn)動(dòng)響應(yīng)。一個(gè)簡(jiǎn)單的方法是按順序應(yīng)用單步預(yù)測(cè)模型k次。在傳感器信號(hào)丟失的情況下,多步預(yù)測(cè)模型用于提供未來(lái)一段時(shí)間的軌跡估計(jì)。
對(duì)于船舶動(dòng)力學(xué)模型,多步預(yù)測(cè)模型的主要輸入為:初始速度狀態(tài)(u0,v0,r0)和接下來(lái)k步中的舵角控制命令(δ0,δ1,δ2,...δk?1)。為了簡(jiǎn)化模型,螺旋槳速度T通??梢员灰暈槌?shù)而不是輸入變量。輸出是船舶在接下來(lái)k步中的加速度,通過(guò)歐拉積分可以得速度和船舶的位置,多步預(yù)測(cè)模型的輸入和輸出如圖2 所示。
圖2 多步預(yù)測(cè)模型的輸入和輸出Fig.2 The inputs and outputs of multi-step prediction model
多步預(yù)測(cè)模型容易受到誤差累積問(wèn)題的影響,過(guò)去的誤差會(huì)傳播到未來(lái)的預(yù)測(cè)中。因此,有必要盡可能提高單步預(yù)測(cè)的準(zhǔn)確性。
自由航行試驗(yàn)是船舶動(dòng)力學(xué)識(shí)別的常用方法。這種方法只需要測(cè)量船舶的位置和速度等狀態(tài)信息,不需要測(cè)量力。此外,它還可以應(yīng)用于全尺寸船舶以避免規(guī)模效應(yīng)。KVLCC2 是一艘大型油輪,在國(guó)際上已被用作驗(yàn)證船舶模型辨識(shí)方法的基準(zhǔn)船型。本文使用的試驗(yàn)數(shù)據(jù)來(lái)自在德國(guó)漢堡水箱(HSVA)進(jìn)行的KVLCC2 模型自由航行試驗(yàn)。KVLCC2 模型的主要參數(shù)詳見(jiàn)表1。試驗(yàn)開(kāi)展了一系列Z 形測(cè)試,所有的數(shù)據(jù)用在20 Hz 的采樣率采集。此研究中所用的試驗(yàn)數(shù)據(jù)見(jiàn)表2。
表1 KVLCC2 型號(hào)參數(shù)及尺寸Tab.1 Parameters and dimensions of the KVLCC2 model
表2 KVLCC2 試驗(yàn)數(shù)據(jù)Tab.2 Test data of the KVLCC2 model
傳統(tǒng)的機(jī)動(dòng)運(yùn)動(dòng)預(yù)測(cè)需要預(yù)測(cè)超調(diào)角和戰(zhàn)術(shù)直徑。然而,在規(guī)劃路線或控制船舶避開(kāi)障礙物時(shí),操作員更需要知道在執(zhí)行完一段控制命令后預(yù)測(cè)的船舶狀態(tài)響應(yīng)或軌跡是否與實(shí)際情況一致。因此,必須確保辨識(shí)中的控制指令和試驗(yàn)中的控制命令始終相同?;诟咚惯^(guò)程回歸的非參數(shù)回歸被用于船舶動(dòng)力學(xué)建模。歷史的控制命令和運(yùn)動(dòng)響應(yīng)數(shù)據(jù)用于訓(xùn)練模型。訓(xùn)練后的模型可以準(zhǔn)確預(yù)測(cè)未來(lái)任何控制命令的運(yùn)動(dòng)響應(yīng)。
非參數(shù)建模主要適用于插值預(yù)測(cè),為了學(xué)習(xí)一個(gè)“好”的模型,訓(xùn)練數(shù)據(jù)必須覆蓋船舶狀態(tài)空間較大范圍。因此,使用5°/1°,10°/5°,20°/5°,30°/5°,35°/5°之字形測(cè)試來(lái)訓(xùn)練模型,數(shù)據(jù)幾乎覆蓋了舵角的輸入空間。數(shù)據(jù)太多會(huì)使計(jì)算變慢,每間隔12 個(gè)點(diǎn)選1 個(gè)進(jìn)入訓(xùn)練集,訓(xùn)練集中共有1 512 個(gè)訓(xùn)練點(diǎn)。25°/5°之字形測(cè)試作為驗(yàn)證集,預(yù)測(cè)間隔為0.05 s。
通常,加速度無(wú)法測(cè)量或者測(cè)量不準(zhǔn)確,可以直接用速度差分代替加速度。雖然會(huì)放大噪聲,使加速度不可靠,但不影響模型預(yù)測(cè)結(jié)果,因?yàn)楦咚惯^(guò)程回歸可以應(yīng)用于噪聲數(shù)據(jù)回歸,辨識(shí)得到準(zhǔn)確的加速度值。25°/5°Z 形試驗(yàn)加速度的3 700 步預(yù)測(cè)值和試驗(yàn)值如圖3 所示。可以發(fā)現(xiàn),試驗(yàn)中速度差分得到的加速度具有較強(qiáng)的振蕩性,通過(guò)高斯過(guò)程回歸可以很好地得到準(zhǔn)確的加速度預(yù)測(cè)值。
圖3 25°/5°Z 形運(yùn)動(dòng)中的加速度3 700 步預(yù)測(cè)Fig.3 3 700 steps prediction of acceleration in 25°/5° zigzag maneuver
圖4 25°/5°Z 形運(yùn)動(dòng)中的速度3 700 步預(yù)測(cè)Fig.4 3 700 steps prediction of speed in 25°/5° zigzag maneuver
圖5 25°/5°Z 形運(yùn)動(dòng)中的軌跡3 700 步預(yù)測(cè)Fig.5 3 700 steps prediction of position in 25°/5° zigzag maneuver
該模型訓(xùn)練時(shí)間為87 s,然而,訓(xùn)練時(shí)間并不重要,因?yàn)槟P椭恍枰x線訓(xùn)練一次,相比之下,預(yù)測(cè)時(shí)間更為重要,預(yù)測(cè)時(shí)間越短,可實(shí)現(xiàn)控制頻率越高。選擇不同的起始點(diǎn)來(lái)進(jìn)行多步預(yù)測(cè),比較預(yù)測(cè)時(shí)間和預(yù)測(cè)精度。如表3 所示,一步預(yù)測(cè)準(zhǔn)確率高,預(yù)測(cè)所需時(shí)間短。隨著預(yù)測(cè)步數(shù)的增加,預(yù)測(cè)時(shí)間會(huì)在一定程度上增加,累積誤差也會(huì)增加,歐拉積分方法會(huì)導(dǎo)致誤差隨著時(shí)間的推移而增加。但模型仍能保持較高的預(yù)測(cè)精度,100 步的位置跟蹤誤差為0.013 m,1 000步的位置跟蹤誤差為0.599 m。
表3 25°/5°Z 形試驗(yàn)多步預(yù)測(cè)RMSE 的精度Tab.3 Multi-step prediction accuracy assessed by the RMSE of the 25°/5° zigzag test
在預(yù)測(cè)船舶運(yùn)動(dòng)響應(yīng)時(shí),通常假設(shè)控制輸入舵角在預(yù)測(cè)區(qū)間內(nèi)恒定或緩慢變化,因此時(shí)間間隔應(yīng)盡可能小。在大區(qū)間預(yù)測(cè)中,舵角變化較大時(shí),預(yù)測(cè)精度會(huì)降低。因此,為了實(shí)現(xiàn)多步高精度預(yù)測(cè),應(yīng)盡量選取較小的區(qū)間。
基于高斯過(guò)程的非參數(shù)回歸被用于船舶的動(dòng)力學(xué)辨識(shí),KVLCC2 的試驗(yàn)數(shù)據(jù)用于驗(yàn)證所提方法的有效性。結(jié)果表明,通過(guò)高斯過(guò)程回歸辨識(shí)得到的模型可以準(zhǔn)確預(yù)測(cè)船舶未來(lái)一段時(shí)間的運(yùn)動(dòng)響應(yīng)。在傳感器信號(hào)丟失的情況下,模型未來(lái)仍能提供準(zhǔn)確的船舶加速度、速度和位置信息,1 000 步的位置預(yù)測(cè)誤差為0.599 m。
基于高斯過(guò)程回歸的船舶動(dòng)力學(xué)建模模型的優(yōu)點(diǎn)可以概括為:1)與參數(shù)辨識(shí)不同,基于高斯過(guò)程回歸的模型不需要知道船舶動(dòng)力學(xué)的先驗(yàn)?zāi)P徒Y(jié)構(gòu),可以得到準(zhǔn)確的從輸入到輸出的映射;2)與LSSVR 等其他黑盒識(shí)別相比,該模型可以通過(guò)最大化邊際似然來(lái)自動(dòng)調(diào)整超參數(shù),減少因超參數(shù)不準(zhǔn)確而導(dǎo)致的預(yù)測(cè)精度損失;3)該模型可以應(yīng)用于噪聲數(shù)據(jù)而不會(huì)過(guò)擬合,它可以準(zhǔn)確估計(jì)難以測(cè)量的加速度。
但是,所提出方法的許多問(wèn)題還需要進(jìn)一步研究:對(duì)于非參數(shù)識(shí)別,訓(xùn)練數(shù)據(jù)必須覆蓋轉(zhuǎn)向角的輸入空間,回轉(zhuǎn)的預(yù)測(cè)和隨機(jī)舵運(yùn)動(dòng)預(yù)測(cè)是否需要改變訓(xùn)練集有待進(jìn)一步的實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證。同時(shí)數(shù)據(jù)量越大,預(yù)測(cè)精度越高,但訓(xùn)練時(shí)間會(huì)更長(zhǎng)甚至無(wú)法計(jì)算。未來(lái)的研究可以嘗試將局部高斯過(guò)程回歸應(yīng)用于大數(shù)據(jù)船舶動(dòng)力學(xué)建模。