賈玉鵬, 神和龍, 尹 勇, 張秀鳳
(大連海事大學 航海動態(tài)仿真和控制交通部重點實驗室, 遼寧 大連 116026)
大型船舶靠泊被認為是最困難的船舶操縱之一。當船舶低速靠近泊位時,船舶的操縱性與可控性急劇下降,并且由于岸壁效應與淺水效應,導致大型無人船的靠泊更加困難[1]。人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)具有較強的非線性映射能力,可以學習經(jīng)驗豐富船長的操縱過程,被廣泛應用在自主靠泊控制器中。2002年,Mizuno等[2]提出了基于神經(jīng)網(wǎng)絡的船舶最小時間操縱系統(tǒng)。該方法既可以用于插值預計算的最小時間解,又可以補償模型誤差以及干擾引起的誤差。這個控制策略在“Shioji Maru”號實習船上進行海試并取得了理想的效果。2012年Ahmed[3]采用虛擬窗口技術,解決了神經(jīng)網(wǎng)絡自動靠泊控制中訓練數(shù)據(jù)的一致性問題,實驗驗證了該方法也可以增強控制器對風干擾的處理能力。2013與2014年Ahmed、Hasegawa等[4-6]考慮舵角受限的情形,進一步增強了樣本的一致性。同時首次考慮了陣風的干擾而不是均勻風,通過對不同船舶的靠泊實驗,驗證了其設計的ANN控制器的有效性。2018年Im與Nguyen等[7-8]提出了一種“艏向上”的坐標系統(tǒng),他們將ANN的輸入由船舶位置坐標更換為船舶距離泊位間距、航向與虛擬引航線的夾角,這樣極大增強了控制器的適用范圍。張強、張顯庫等[9]通過取消虛擬導航線與位置輔助線參數(shù),來解決多參數(shù)船舶自動靠泊神經(jīng)網(wǎng)絡控制器的負荷問題。在大樣本的數(shù)據(jù)處理中,采用有效數(shù)據(jù)提取方法優(yōu)化控制效果,縮短計算時間,提高了控制的實時性。
傳統(tǒng)ANN控制器雖然在靠泊仿真過程中取得了較好的效果,可以成功將船舶??吭诰嚯x泊位1.5倍船長內(nèi),但忽略了車令與螺旋槳轉(zhuǎn)速、舵令與實際舵角之間的映射關系,并且在靠泊完成后船艏向與泊位岸線方向偏差較大,船艏偏差20°[9]。本文以“銀河號”為研究對象,采用考慮舵令、車令響應的船舶運動數(shù)學模型,嘗試采用人工神經(jīng)網(wǎng)絡實現(xiàn)無人商船的自動靠泊控制,以減小靠泊完成后的船艏誤差。
大型商船的自主靠泊通常為靠泊與系泊操縱兩個階段。第一階段是船舶由錨地或進港航道減速至泊位附近,這時要求船艏向與泊位基本平行。第二階段是利用側(cè)推器、纜繩與拖輪等輔助設備實現(xiàn)船舷與泊位碰墊的完全靠攏。由于大型集裝箱船一般只在船尾安裝一個推進器,首尾無側(cè)推器,屬于典型的欠驅(qū)動系統(tǒng),因此本文針對大型商船設計的靠泊控制器重點解決第一階段的靠泊問題。本ANN自主靠泊控制器的目標是將船舶成功??吭诓次皇孜簿€限定范圍內(nèi)、與岸線夾角小于10°、速度減小到0.05 m/s以內(nèi)、船舶靠泊位一側(cè)與岸線距離在一倍船長內(nèi)。
在過往的神經(jīng)網(wǎng)絡控制器中,為了降低計算負荷,選擇性地提取靠泊數(shù)據(jù),這樣雖然可以加快網(wǎng)絡的訓練速度,但丟失了部分信息的數(shù)據(jù)導致在靠泊完成后誤差較大。因此本文在訓練樣本時,選擇提取手動靠泊過程中的全部運動狀態(tài)值來訓練網(wǎng)絡,以提高精度。
本文采用六自由度船舶運動數(shù)學模型,考慮風、流、浪等外力對本船運動的影響[10-12]。借鑒MMG(Maneuvering Modeling Group)分離建模思想,在慣性坐標系與附體坐標系中描述船舶運動(見圖1),O1-x1y1z1為固定在地球表面的坐標系,其中O1x1指向正北,O1y1指向正東,O1z1指向地心。O-xyz為附體坐標系,Ox指向船艏,Oy指向船舶右舷,Oz指向船底。在這兩種坐標系下,船舶運動可以通過沿附體坐標系的三個坐標軸平移與繞三個坐標軸旋轉(zhuǎn)來描述,其名稱說明如表1所示。
圖1 船舶慣性坐標系和附體坐標系
表1 船舶運動描述
六自由度船舶運動數(shù)學模型為:
(1)
式(1)中:符號XH、YH、ZH、KH、MH、NH分別表示裸船體在相應自由度上受到的力與力矩,下標為P、R的變量分別為螺旋槳和舵的力和力矩;下標為wind與wave的變量分別為風與浪的力與力矩;u、v、w、p、q、r分別表示在相應自由度上的速度與角速度;Ixx、Iyy、Izz分別為船體自身繞Ox、Oy、Oz軸的轉(zhuǎn)動慣性矩;Jxx、Jyy、Jzz分別為繞Ox、Oy、Oz軸的附加慣性矩;m為船舶質(zhì)量;mx、my、mz分別為縱向、橫向和垂向船舶的附加質(zhì)量。
設計靠泊選定的船舶為“銀河號”集裝箱船,其主要參數(shù)見表2??坎磳嶒炂鹗键c經(jīng)緯度為 (39°00.352 7′N,121°41.453 4′E),初始速度為4 kn,船艏向為真北45°(泊位岸線真北方向為15°)。在V.Dragon-5000航海模擬器中手動控制車與舵進行多次靠泊實驗,最后選擇效果理想的靠泊數(shù)據(jù)進行訓練。船舶在人為操縱下將速度減小至0.05 m/s以內(nèi),并成功停靠在泊位附近。圖2a可以看到船舶在電子海圖中的位置,船舶前方箭頭為速度矢量線,其方向表示船舶的運動方向,長度表示船舶運動速度的大小。靠泊全程如圖2b所示,靠泊全程的船舶狀態(tài)信息如圖3所示。
表2 “銀河號”參數(shù)
a) 初始位置
圖3 手動靠泊實驗的船舶參數(shù)
隨著科技的發(fā)展,越來越多高精度的傳感器應用于船舶輔助決策上。作為本神經(jīng)網(wǎng)絡控制器輸入的船舶運動狀態(tài)量:經(jīng)度、緯度、船艏向、橫向速度、縱向速度與轉(zhuǎn)艏角速度可以從現(xiàn)有的傳感器,如GPS、羅經(jīng)、姿態(tài)測量儀等方便地得到。如圖4所示,采用三層BP神經(jīng)網(wǎng)絡來作為自主靠泊的控制器。控制器的輸入為船舶的運動狀態(tài)信息,輸出為舵令與車令,在每次訓練中不斷計算權(quán)重與偏差,使其達到期望值,學習結(jié)束后將樣本模式以連接權(quán)與閾值的形式,分布記憶在控制器中??刂破魍ㄟ^對訓練數(shù)據(jù)提供的靠泊模式進行學習訓練并儲存此模式,在重新輸入新的船舶運動信息時,控制器實時地輸出舵令與車令來完成自主靠泊,整個實驗的設計流程如圖5所示。
圖4 ANN控制器結(jié)構(gòu)
圖5 自動靠泊流程
為了消除不同單位下的數(shù)據(jù)對神經(jīng)網(wǎng)絡的影響,在訓練之前將全部q組數(shù)據(jù)利用式(2)進行歸一化處理。式中x為歸一化前的數(shù)據(jù)原始值。xmin,xmax分別為歸一化前數(shù)據(jù)的最小值與最大值。y為與x相對應的歸一化后的值,ymin,ymax為設定歸一化后的閾值,此處設為-1與1,可以將訓練數(shù)據(jù)歸一化到(-1,1)的區(qū)間內(nèi)。
(2)
在設計的三層BP神經(jīng)網(wǎng)絡中,Hn為隱層的第n個節(jié)點處的輸出,可以表示為:
(3)
式(3)中:Wjn為輸入層節(jié)點m到隱層節(jié)點n的網(wǎng)絡權(quán)重,θn為隱層節(jié)點處的閾值。輸入層到輸出層的激活函數(shù)為Tan-Sigmoid(S型正切函數(shù)),其計算公式為式(4),其返回值位于(-1,1)的區(qū)間中,其中net_n為隱層輸入的列向量。
(4)
同理,輸出層的第p個節(jié)點的輸出Op如式(5)所示。其中,Wip為隱層節(jié)點n到輸出層節(jié)點p的網(wǎng)絡權(quán)重,θp為輸出層節(jié)點處的閾值。
(5)
因為隱層激活函數(shù)的返回值已經(jīng)位于(-1,1)之間,所以可以不再采用傳統(tǒng)的輸出層激活函數(shù)Satlin,而選用更為簡捷的Purelin函數(shù),如式(6)所示,其中net_p為輸出層輸入的列向量。
f2(net_p)=net_p
(6)
輸出節(jié)點的誤差Eo為:
本小節(jié)將手動操縱環(huán)節(jié)得到的靠泊記錄作為神經(jīng)網(wǎng)絡數(shù)據(jù)驅(qū)動。將數(shù)據(jù)以[lat,lon,hdg,u,v,r]T的形式保存,作為神經(jīng)網(wǎng)絡訓練數(shù)據(jù)的輸入,將神經(jīng)網(wǎng)絡的輸出保存為[OrderRPM,OrderRud]T,神經(jīng)網(wǎng)絡的學習速率設置為0.01,目標誤差設置為1×e-7。在網(wǎng)絡訓練完成后,即可作為自主靠泊控制器使用。
將式(2)求逆,可得到待求網(wǎng)絡輸出反歸一化方程:
(8)
在訓練結(jié)束后,將所使用的船舶狀態(tài)信息再作為網(wǎng)絡輸入,通過式(9)即可得到網(wǎng)絡的輸出[OrderRPM,OrderRud]T,將其與手動靠泊記錄的車舵命令信息對比如圖6所示??梢钥闯錾窠?jīng)網(wǎng)絡的輸出與訓練數(shù)據(jù)中的輸出符合度較高,驗證了設計的ANN控制器可以代替經(jīng)驗豐富的船長給出合理的車舵命令,能夠進一步進行靠泊實驗。
[OrderRPM,OrderRud]T=f3(OP)=
(9)
a)命令車鐘
在上一環(huán)節(jié)中,驗證了所設計控制器與原始狀態(tài)下的輸出符合度較高,證明了ANN控制器對靠泊決策這一強非線性過程的映射能力較好。但是僅僅把測試數(shù)據(jù)作為控制器輸入得到的車舵命令與原始數(shù)據(jù)比較還不能證明所設計控制器的穩(wěn)定性,這一環(huán)節(jié)忽視了控制器實時性對整個控制過程的影響。
為了進一步測試所設計ANN控制器的穩(wěn)定性能與泛化能力,在原始位置與更改船舶的初始位置(在V.Dragon-5000航海模擬器中的電子海圖上將船舶移動,并更改船艏向,初始速度保持不變,如圖7所示,灰色船舶輪廓為船舶原始位置)分別來進行靠泊實驗:將船舶運動狀態(tài)實時傳送給控制器,控制器輸出的車舵命令發(fā)給模擬器來解算船舶運動數(shù)學模型。自主靠泊過程如圖7所示,其中一次更改初始點之后靠泊的船舶運動狀態(tài)信息、車舵命令與實際車舵數(shù)據(jù)見圖8。
a) 初始點不變靠泊
圖8 改變初始點后一次靠泊實驗的船舶參數(shù)
手動靠泊、初始位置自動靠泊與更改初始位置后的靠泊參數(shù)如表3所示,兩種情形下的船舶自動靠泊均達到了設定的靠泊目標,驗證了本ANN控制器的泛化能力達到要求。從圖9可以看出,更改初始點后船舶的靠泊軌跡與手動靠泊軌跡十分接近,證實所設計的ANN控制器的訓練效果良好。
表3 靠泊參數(shù)對比
圖9 手動靠泊與自動靠泊(更改初始點)軌跡對比
針對在過往ANN控制器靠泊結(jié)束后船艏向與岸線偏差較大這一問題[9],將只選擇靠泊過程中的重要節(jié)點數(shù)據(jù)改變?yōu)橛柧氄麄€過程。同時,為了更加符合實際靠泊情形,將控制器輸出由螺旋槳轉(zhuǎn)速、舵角改為車令與舵令。在V.Dragon-5000航海模擬器中選取“銀河號”集裝箱船,移動初始點之后,進行自主靠泊仿真實驗,可以完成指定的靠泊任務。
本控制器使用的訓練數(shù)據(jù)都可以通過現(xiàn)有的傳感器:GPS、姿態(tài)測量儀、羅經(jīng)等精確得到;將ANN控制器收到船舶信息到給出車令與舵令視為一個控制步,計算了整個控制過程的平均步長為26.2 m,完全滿足實際過程中對控制器的實時性要求。經(jīng)過實驗驗證,本控制器可以在前移130 m范圍內(nèi),船艏向在42°到47°之間可以完成靠泊第一階段的任務,本文所有實驗都在一級風浪干擾下進行,對于進一步增大初始船位移動范圍,并考慮更高風級的干擾將是接下來的重點研究方向。