余縝 李軍
(南京理工大學(xué)自動化學(xué)院 南京210094)
隨著經(jīng)濟和科技水平的發(fā)展,對于海洋的探索開發(fā)越來越多[1],比如海洋運輸、海底采礦、海上風(fēng)力發(fā)電以及旅游觀光等。船舶在海上航行或作業(yè)的過程中,不可避免地會受到風(fēng)浪的擾動影響,導(dǎo)致船舶產(chǎn)生橫搖、縱搖、艏搖、橫蕩、縱蕩以及垂蕩六個自由度上的運動。船舶六自由度運動給海上作業(yè)帶來諸多不便和危險,比如,艦載武器的精確瞄準(zhǔn)、直升機在船舶甲板的起降、船舶之間的貨物運輸以及航海攝影。如果能獲得船舶運動狀態(tài),并進行短期預(yù)測,可以提升艦載設(shè)備的操作精確度,降低事故發(fā)生幾率。
現(xiàn)在常用的方法是時間序列法,它的思想是利用過去一段時間內(nèi)某事件時間的特征來預(yù)測未來一段時間內(nèi)該事件的特征,自回歸模型(Autore?gressive Model,AR模型)是構(gòu)建時間序列的常用模型[3],時間序列法的優(yōu)點是不需要知道任何先驗信息和船舶航態(tài)的狀態(tài)方程,僅利用船舶本身的歷史運動狀態(tài)數(shù)據(jù)尋求規(guī)律,就可以進行船舶運動姿態(tài)的預(yù)測。
基于AR模型的預(yù)測屬于線性預(yù)測的方法,然而,船舶的六自由度運動是一個復(fù)雜的非線性過程,使用線性預(yù)測法會有某些偏差。對于這個問題,NAR神經(jīng)網(wǎng)絡(luò)模型是一個更好的解決方案。
本文從船舶運動姿態(tài)的時間序列入手,分析了傳統(tǒng)的AR模型預(yù)測法,再對船舶運動姿態(tài)建立了NAR神經(jīng)網(wǎng)絡(luò)模型,對船舶運動姿態(tài)進行預(yù)測。利用實際采集的船舶運動姿態(tài)數(shù)據(jù)對NAR神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練,將訓(xùn)練結(jié)果用于預(yù)測仿真,使用同一批數(shù)據(jù),分別利用AR模型和NAR神經(jīng)網(wǎng)絡(luò)模型進行預(yù)測,并將實驗結(jié)果進行對比。
船舶的六自由度運動姿態(tài)可以看成是無數(shù)個具有不同波長,波幅與隨機初始相位的余弦信號的疊加的運動過程,它的時間序列中包含著一些相關(guān)性信息。根據(jù)統(tǒng)計學(xué)知識,可以通過線性模型對船舶的運動規(guī)律進行擬合,從而達到預(yù)測未來狀態(tài)的目的。
AR模型是時間序列分析法中針對平穩(wěn)序列常用的一種線性模型,它的思想是通過對變量自身的歷史數(shù)據(jù)的相關(guān)性進行研究,將這種關(guān)系進行量化處理,從而預(yù)測未來狀態(tài)。AR模型的定義為

基于AR模型的預(yù)測算法如圖1所示,主要包括模型參數(shù)估計,模型定階和預(yù)測三部分內(nèi)容。

圖1 基于AR模型預(yù)測算法流程圖
AR模型是一種典型的線性時間序列模型,但是在實際的高變化應(yīng)用下,時間序列的線性模型難以建立,或者預(yù)測精度不高[5],因此,應(yīng)該針對時間序列建立非線性模型。
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種由受生物神經(jīng)系統(tǒng)啟發(fā)的數(shù)學(xué)模型表示的神經(jīng)網(wǎng)絡(luò),它是一種智能系統(tǒng),可以識別時間序列模式和非線性特征,因此它已經(jīng)被廣泛應(yīng)用到動態(tài)非線性時間序列建模[6]。
神經(jīng)網(wǎng)絡(luò)由若干神經(jīng)元組成,這些神經(jīng)元可以構(gòu)成神經(jīng)網(wǎng)絡(luò)的不同層次,一般分為輸入層、隱含層和輸出層。神經(jīng)元相互作用使神經(jīng)網(wǎng)絡(luò)具有強大的功能,神經(jīng)網(wǎng)絡(luò)理論的基礎(chǔ)之一就是三層神經(jīng)網(wǎng)絡(luò)可以逼近任意函數(shù),所以理論上,只要數(shù)據(jù)量足夠大,神經(jīng)元足夠多,就可以通過調(diào)整神經(jīng)元權(quán)值和閾值學(xué)到任意的東西[7]。
NAR神經(jīng)網(wǎng)絡(luò)是一種基于具有反饋連接的線性自回歸模型的循環(huán)動態(tài)網(wǎng)絡(luò)[8],它常用于時間序列的多步預(yù)測,其結(jié)構(gòu)如圖2所示。NAR神經(jīng)網(wǎng)絡(luò)可由式表示,使用t時刻之前的d個值預(yù)測y(t)的值。f(·)是事先未知的,通過訓(xùn)練神經(jīng)網(wǎng)絡(luò),調(diào)整各條鏈路的權(quán)重和偏差值來得到近似的f(·)。

圖2 NAR神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖

神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程實際上就是不斷調(diào)整未知參數(shù)使得代價函數(shù)達到最小值,通常選擇均方誤差函數(shù)MSE作為代價函數(shù),如式(3)所示:


傳統(tǒng)的用來更新參數(shù)的反向傳播類型算法有最速下降法和高斯-牛頓法。
最速下降法[9]沿著梯度的反方向,按照一定的步長大小進行參數(shù)更新,使代價函數(shù)達到最小值,如式(5)所示:

高斯-牛頓法[10]是在牛頓法的基礎(chǔ)上得到的,僅用來解決非線性最小二乘問題。采用牛頓法求解式中F(x)的最小值,需要計算其梯度向量和Hessian矩陣。梯度向量如式(6)所示:

其中:

是r的Jacobian矩陣,則式(6)可以寫作:


當(dāng)殘差ri≈0,時,可以認(rèn)為二階導(dǎo)數(shù)項接近于0而舍去,所以Hessian矩陣可以近似寫為

將梯度向量,近似Hessian矩陣代入牛頓法迭代公式:

即可得到高斯-牛頓法的迭代公式:

只需要計算Jacobian矩陣,而不需要計算二階導(dǎo)數(shù),簡化了迭代步驟。高斯-牛頓法與牛頓法的缺點一樣,當(dāng)初始值距離最小值較遠時,高斯-牛頓法并不能保證收斂,并且當(dāng)近似奇異的時候,高斯-牛頓法也不能正確收斂[11]。
Levenberg-Marquardt算法[12~13]為了克服上述高斯-牛頓法的缺點,在高斯-牛頓法的基礎(chǔ)上,改進迭代公式,通過在Hessian矩陣中加入阻尼系數(shù)來控制每一步迭代的步長及方向,Levenberg-Mar?quardt算法的迭代公式如下:

其中,λ是阻尼系數(shù),記,當(dāng)λ>0時,有如下效果:
1)λ比較大時,對角線元素占主導(dǎo)地位,,迭代算法會以較小的步長接近最速下降法;
2)λ比較小時,迭代算法接近高斯-牛頓法。高斯-牛頓法在誤差最小值附近更快、更準(zhǔn)確,適合迭代的最后階段,非常接近最優(yōu)解,避免最速下降的震蕩。
因此,Levenberg-Marquardt算法的目標(biāo)是盡快接近高斯-牛頓法,在每次迭代后,若性能函數(shù)減小,則減小λ,若在某次迭代中,性能函數(shù)增加,則增大λ,這樣,在算法的每次迭代中,總是降低性能函數(shù)。
Levenberg-Marquardt算法結(jié)合了最速下降法和高斯-牛頓法的優(yōu)點,基于Levenberg-Marquardt算法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法通常是訓(xùn)練中等大小前饋神經(jīng)網(wǎng)絡(luò)的最快方法。因此在本文中,使用Lev?enberg-Marquardt算法對NAR神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。
在海上航行作業(yè)過程中,船舶六自由度運動中橫搖角對船舶的穩(wěn)定工作影響較大,故在本文實驗中選取船舶的橫搖角進行數(shù)值仿真,運動姿態(tài)時間序列通過在國家電投集團“電投01”風(fēng)電運維船上安裝傳感器裝置采集得到。
運用NAR神經(jīng)網(wǎng)絡(luò)模型對船舶運動姿態(tài)時間序列進行預(yù)測,本文選取時長200s的時間序列作為樣本,采樣頻率為100Hz。將樣本的前75%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),用來訓(xùn)練神經(jīng)網(wǎng)絡(luò),后25%的數(shù)據(jù)作為測試數(shù)據(jù),驗證神經(jīng)網(wǎng)絡(luò)的預(yù)測性能。AR模型預(yù)測結(jié)果如圖3所示,NAR模型的預(yù)測結(jié)果如圖4所示,兩種模型的預(yù)測誤差對比如圖5所示。

圖3 AR模型預(yù)測結(jié)果

圖4 NAR神經(jīng)網(wǎng)絡(luò)模型預(yù)測結(jié)果

圖5 NAR神經(jīng)網(wǎng)絡(luò)模型預(yù)測誤差
對于不同模型的預(yù)測性能,使用兩個指標(biāo)來衡量,均方根誤差RMSE和決定系數(shù)R2。RMSE是MSE的平方根,可以保持指標(biāo)和原始數(shù)據(jù)的量綱一致;決定系數(shù)R2用于度量因變量的變異種可由自變量解釋部分所占的比例,以此來判斷模型的解釋力。
表1 表示了兩種模型的預(yù)測性能分析結(jié)果。由表可知,NAR模型較傳統(tǒng)的AR模型有更好的預(yù)測精度。

表1 船舶運動姿態(tài)預(yù)測結(jié)果性能分析
本文從船舶運動姿態(tài)的時間序列分析入手,針對傳統(tǒng)AR模型在船舶運動姿態(tài)預(yù)測上的不足,引入NAR神經(jīng)網(wǎng)絡(luò)模型,使用Levenberg-Marquardt算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),對船舶的橫搖運動進行預(yù)測,結(jié)果表明,NAR神經(jīng)網(wǎng)絡(luò)模型比傳統(tǒng)的AR模型預(yù)測精度更高,并且能充分逼近非線性映射,同時,該方法具有通用性,可以適用于船舶其他自由度上的運動預(yù)測,在工程上具有較高的使用價值。