張 強, 張顯庫, 林南均
(1.大連海事大學 航海學院,遼寧 大連 116026; 2. 山東交通學院 航海學院, 山東 威海 264209; 3. 木浦國立海事大學 航海學院,韓國 木浦 530729)
船舶自動靠泊問題涉及船舶在淺水中的低速運動,風、浪、流的干擾相對較強,系統(tǒng)的信息量較大,操縱和控制船舶較為困難。[1]因此,有關(guān)船舶自動靠泊問題的研究隱含受限水域、不確定數(shù)學模型、較強環(huán)境擾動下的船舶操縱及定位控制等內(nèi)容。[2]
為實現(xiàn)自動靠泊控制,在控制器設(shè)計中應(yīng)用非線性滑模[3]、反步法[4]、最優(yōu)控制[5]和神經(jīng)網(wǎng)絡(luò)等算法。由于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)具有較強的非線性函數(shù)映射能力,且易復(fù)制船長豐富的靠泊經(jīng)驗,因此在解決自動靠泊控制問題時得到廣泛應(yīng)用。ZHANG等[6]利用多參數(shù)神經(jīng)網(wǎng)絡(luò)算法設(shè)計在線調(diào)參的靠泊控制器。IM等[7-9]和TRAN等[10]利用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法設(shè)計并行神經(jīng)網(wǎng)絡(luò)靠泊控制器、基于運動識別的神經(jīng)網(wǎng)絡(luò)靠泊控制器、根據(jù)不同靠泊狀態(tài)進行決策的神經(jīng)網(wǎng)絡(luò)控制器及利用側(cè)推器和拖船等輔助設(shè)備的自動靠泊控制器。NGUYEN等[11]利用自適應(yīng)神經(jīng)網(wǎng)絡(luò)分別訓練舵、槳控制信號,實現(xiàn)自動靠泊。AHMED等[12-16]利用神經(jīng)網(wǎng)絡(luò)技術(shù),結(jié)合虛擬窗口理論、非線性規(guī)劃及PD混合控制等算法設(shè)計自動靠泊控制器,并利用自由船模試驗驗證其有效性。
隨著海上信息技術(shù)的不斷發(fā)展,基于大數(shù)據(jù)的靠泊控制參數(shù)整定逐漸成為可能。[17]在大量有效樣本數(shù)據(jù)下,神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù)的優(yōu)化會減少計算維數(shù)。因此,為實現(xiàn)自動靠泊控制,降低計算負荷,首先在ANN架構(gòu)[9]的基礎(chǔ)上,利用BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計3層神經(jīng)網(wǎng)絡(luò)控制器。根據(jù)靠泊經(jīng)驗,通過取消虛擬導航線和位置輔助線參數(shù),優(yōu)化輸入?yún)?shù)。其次,在4種船舶初始狀態(tài)下進行訓練,從而獲取樣本數(shù)據(jù),訓練網(wǎng)絡(luò)權(quán)重和偏差。針對樣本數(shù)據(jù)較多、計算負荷大的問題,根據(jù)樣本有效數(shù)據(jù)信息量與控制器輸出成正比的關(guān)系,對有效信息量較大的數(shù)據(jù)(例如舵角或螺旋槳轉(zhuǎn)速變化較大時的數(shù)據(jù))增大提取頻率,而對有效信息量少的數(shù)據(jù)減小提取頻率,從而優(yōu)化有效樣本數(shù)據(jù),縮短計算時間。最后,利用基于MMG(Maneuvering Modeling Group)船舶數(shù)學模型的靠泊仿真試驗,驗證船舶在不同于樣本數(shù)據(jù)的初始狀態(tài)下達到理想的控制效果,從而進一步驗證簡捷神經(jīng)網(wǎng)絡(luò)靠泊控制器在減少計算維度時的控制有效性。
在充分考慮船舶靠泊等操縱實踐的基礎(chǔ)上,借鑒MMG分離建模的思想,采用慣性坐標系O-xyz和附體坐標系O′-x′y′z′(見圖1),其中:X,Y,N分別為作用在船舶上的合外力在附體坐標系上的投影;u,v,r分別為船舶縱向速度矢量分量、橫向速度矢量分量和轉(zhuǎn)艏角速度;δ,Ψ,β分別為舵角、航向角和漂角。采用的數(shù)學模型為
(1)
式(1)中:m為船舶質(zhì)量;mx,my,Jzz分別為附體坐標系上船舶縱向附加質(zhì)量、橫向附加質(zhì)量和附加慣性矩;Izz為船體繞z0軸的轉(zhuǎn)動慣量;YxC重心力矩修正;H,P,R,W,C分別為船體、槳、舵、風、流。
船舶自動靠泊通常有泊位外鎮(zhèn)定、直接靠攏和先泊位外鎮(zhèn)定再平行靠攏等3種類型。[2]大型船舶自主靠港操縱一般分為靠泊操縱和系泊操縱2個階段。
1)靠泊操縱為船舶由外海減速至泊位外當,使船體盡量平行于泊位或有利于系泊的位置,并控制船位至撇纜繩能打到泊位或帶纜艇能拖帶纜繩上岸樁的位置。此時船速盡可能小。
2)系泊操縱是船舶綜合利用舵、槳、纜繩、錨鏈及側(cè)推器等設(shè)備,實現(xiàn)船舷與泊位碰墊完全靠攏。
然而,大部分大型船舶都要借助拖船等輔助手段靠泊。參考文獻[7]~文獻[9],本文設(shè)計的控制器主要應(yīng)用在大型船舶靠泊操縱的第一階段,控制目標是使船速減小到0.1 m/s以內(nèi),航向保持在泊位方向±20°以內(nèi),船位距離泊位1倍船長以內(nèi)。
AHMED等[13]認為船舶沿虛擬導航線航行至距離碼頭1.5倍船長的泊位外檔處鎮(zhèn)定,即完成自動靠泊控制任務(wù)。虛擬導航線是大多數(shù)船長靠泊時導引船舶抵達泊位的航線,與碼頭岸線的夾角一般為30°(見圖2)。然而,在實際靠泊過程中,虛擬導航線是根據(jù)不同泊位的地理條件和外界干擾隨時調(diào)整的,并非固定的航線。由于欠驅(qū)動船舶在低速時并不能完全跟蹤設(shè)計的航線,且虛擬航線有時會給船長或引航員帶來干擾,從而影響船舶安全靠泊,因此在進行訓練樣本時取消虛擬導航線。
本文設(shè)計的自動靠泊控制器(見圖3)是利用ANN直接學習的方法得到的。首先,由有經(jīng)驗的船長在已知初始條件下操縱具有舵機特性和螺旋槳特性的MMG船舶數(shù)學模型進行實際靠泊,從而獲得訓練數(shù)據(jù)。隨后,利用多層神經(jīng)網(wǎng)絡(luò)設(shè)計控制器,并采用BP算法訓練網(wǎng)絡(luò)權(quán)重和偏差。最后,利用ANN的泛化性能,在不同初始輸入條件下實現(xiàn)船舶自動靠泊控制的輸出。
網(wǎng)絡(luò)訓練的目標是減小樣本訓練輸出和控制器輸出的誤差。設(shè)3層ANN中各層的節(jié)點個數(shù)分別為m,n,p,訓練數(shù)據(jù)以{q1,o1}, {q2,o2},…,{qi,oi}的形式存儲,其中qi及oi為神經(jīng)網(wǎng)絡(luò)輸入和目標輸出。在隱層的n個節(jié)點處,其輸出Hn可表示為
(2)
式(2)中:f1和Nn分別為隱層的激活函數(shù)及網(wǎng)絡(luò)N的n個節(jié)點的輸入;Wmn和bn分別為節(jié)點n到m的權(quán)重及隱層Hn的閾值。隱層的活化函數(shù)選擇Tansig函數(shù),即
(3)
同理,在輸出層第p節(jié)點的輸出可表示為
(4)
式(4)中:f2和Np分別為輸出層的活化函數(shù)及輸出層p節(jié)點的輸入;Wnp和bp分別為p節(jié)點到n節(jié)點的權(quán)重及輸出層Op的閾值。在隱層的傳遞函數(shù)選擇Satlin函數(shù),即
(5)
目標函數(shù)表示為
(6)
Wk+1=Wk-[JT(Wk)J(W)+μI]-1JT(Wk)E(Wk)
(7)
式(7)中:Wk包括神經(jīng)網(wǎng)絡(luò)的所有權(quán)重;J為雅克比矩陣;I為辨識矩陣;μ為調(diào)整系數(shù)。
輸入層由輸入的特征決定,在進行ANN模型設(shè)計時,若將對模型貢獻較小的參數(shù)引入到網(wǎng)絡(luò)中,勢必會造成網(wǎng)絡(luò)癱瘓,影響網(wǎng)絡(luò)收的斂速度,且易于使網(wǎng)絡(luò)陷入局部極??;同時,當外推這組學習輸入/輸出數(shù)據(jù)時,預(yù)測結(jié)果的正確率也沒有保證。[19]在文獻[9]中,8個與靠泊有關(guān)的輸入?yún)?shù)分別為y0,x0,Ψ,u,v,r,d1,d2。由于船位信息包含船位到坐標橫軸的距離x0和縱軸的距離y0及船位到虛擬導航線的輔助坐標參數(shù)d1和d2,而后者相當于x0和y0的坐標變換。考慮到實際靠泊中d1和d2的必要性不足(第2部分自動靠泊原理中已論述),且對模型的貢獻較小,因此采用與靠泊直接相關(guān)的6個參數(shù),減少2個計算維度。ANN三層網(wǎng)絡(luò)架構(gòu)見圖4,其中:輸入層有6個輸入?yún)?shù),分別為y0,x0,Ψ,u,v,r;隱層節(jié)點數(shù)為25個;輸出層有2個輸出參數(shù),即舵角δ和螺旋槳轉(zhuǎn)速n。
最終t+1時刻的控制律[δt+1,nt+1]T表示為
Ψ(t),ut,vt,rt]T+bn)+bp)
(8)
以一艘液化氣船[18]作為仿真對象,在MATLAB環(huán)境下利用MMG船舶運動數(shù)學模型(1)和GUI控件搭建靠泊仿真平臺。液化氣船仿真參數(shù)見表1。
在參數(shù)訓練中,憑借多年的船舶操縱經(jīng)驗,利用搭建的靠泊仿真平臺,在不同的初始條件下操縱船舶,針對舵角δ和螺旋槳轉(zhuǎn)速n進行多次靠泊試驗。試驗后,剔除靠泊過程中不理想的樣本點數(shù)據(jù)(1個樣本點數(shù)據(jù)包含某時刻的船舶運動、舵角和螺旋槳轉(zhuǎn)速數(shù)據(jù)),僅保留最優(yōu)樣本點數(shù)據(jù),例如剔除船舶靠泊速度過大或最終船位距離目標點較遠的數(shù)據(jù)。為方便處理,在進行樣本訓練時,需對輸入/輸出數(shù)據(jù)進行歸一化;在實際操作中,取預(yù)測參數(shù)的最大值為1,最小值為0,中間值利用加權(quán)平均法計算。仿真中設(shè)置訓練采樣步長為0.2 s,在1次完整的靠泊過程中的采樣數(shù)據(jù)較多,為優(yōu)化樣本質(zhì)量,根據(jù)有效信息量調(diào)整提取頻率。
表1 液化氣船仿真參數(shù)
為提高樣本數(shù)據(jù)的有效性,設(shè)計4種不同的初始船位進行靠泊訓練,獲得大量具有多樣性的樣本數(shù)據(jù)。初始狀態(tài)的參數(shù)為(y0/L,x0/L,Ψ,u,v,r,n,δ),4組具體值為:(5,6,240,2,0,0,0.75,0);(5,6,220,2,0,0,0.75,0);(3,6,260,2,0,0,0.75,0);(3,6,240,2,0,0,0.75,0)。由于本文主要驗證輸入?yún)?shù)優(yōu)化后的控制器的有效性,因此仿真環(huán)境中的外界干擾只考慮風速為5 m/s,風向為270°的情況。為使靠泊效果明顯,保證靠泊安全,仿真坐標系的原點取在泊位橫向外當0.5倍船長處。訓練后的樣本數(shù)據(jù)見圖5。
由圖5可知,在4種初始狀態(tài)下均能完成靠泊任務(wù)。以初始狀態(tài)(1)為例,其參數(shù)見圖6。
利用樣本數(shù)據(jù)進行權(quán)重和偏差訓練。由于在樣本訓練中產(chǎn)生大量的樣本數(shù)據(jù),為優(yōu)化數(shù)據(jù)和簡化計算,在提取樣本數(shù)據(jù)時根據(jù)樣本數(shù)據(jù)信息量與控制器輸出成正比的關(guān)系,對有效信息量較大的時間段增大提取頻率,例如圖6中的500~600 s時間段,若舵角或螺旋槳轉(zhuǎn)速變化較大,則平均時間間隔內(nèi)提取100%或80%的數(shù)據(jù);而對有效信息量較小的時間段減小提取頻率,因為該部分包含的有效信息較少,例如在100~240 s時間段內(nèi),平均時間間隔內(nèi)提取10%的數(shù)據(jù)。
在進行網(wǎng)絡(luò)訓練時,設(shè)定訓練目標最小誤差為0.000 1,最大迭代次數(shù)等于樣本數(shù)量。數(shù)據(jù)歸一化處理后的訓練結(jié)果見圖7,其中:橫坐標為時間;縱坐標為歸一化后的舵角和螺旋槳轉(zhuǎn)速;訓練前的初始數(shù)據(jù)為隨機數(shù)據(jù),訓練后的數(shù)據(jù)與樣本數(shù)據(jù)符合度較高,說明參數(shù)訓練有效。
利用訓練好的ANN,在初始狀態(tài)參數(shù)為(4,6,250,2,0,0,0.75,0)的條件下進行自動靠泊控制仿真,其他仿真環(huán)境與參數(shù)訓練時一致。仿真結(jié)果見圖8??刂破髂苁勾拜^好地完成控制任務(wù)。
由圖9可知,船速從2 m/s下降到接近0.068 m/s,達到<0.1 m/s的目標,且下降速率較為平穩(wěn),橫向速度為-0.003 m/s,轉(zhuǎn)艏速度為0.001 m/s。最終橫向船位坐標在0.04L處,縱向船位坐標在-0.07L處,非常接近目標船位,誤差較小。最終靠泊時艏向為250°,最佳目標艏向為270°,誤差為-20°。雖然未能達到270°,但也符合航海實踐要求(實踐中有時使艏部先接近泊位,以便帶艏纜或艏倒纜)。存在誤差的原因主要有:
1)在自動靠泊仿真中,為檢驗所提出算法的泛化性能,采用的初始位置與訓練位置不同,導致誤差存在。
2)在設(shè)計4種不同的初始船位進行靠泊訓練時,各次手動靠泊的樣本數(shù)據(jù)之間也存在一定的差異,影響自動靠泊的精度。
相比圖6中第1種初始狀態(tài)下的訓練數(shù)據(jù),圖9中縱向船速u下降較快,雖然舵角δ較大,但由于船速相對較小,造成轉(zhuǎn)艏力矩較小,從而使航向未能達到270°,但這滿足航海實踐的要求。
在282~325 s及605 s以后,使用右滿舵信號,以控制航向、擺正船位。螺旋槳轉(zhuǎn)速變化較為平緩,整個靠泊時間為706 s,滿足航海實踐的要求??刂平Y(jié)果顯示設(shè)計的控制器能達到預(yù)期的控制效果。
為利用ANN實現(xiàn)自動靠泊,減少計算維度,降低計算負荷,本文利用BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計3層神經(jīng)網(wǎng)絡(luò)控制器,并根據(jù)實際靠泊操縱經(jīng)驗對神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù)進行優(yōu)化。在大樣本數(shù)據(jù)處理中,采用選擇性有效數(shù)據(jù)提取方法優(yōu)化控制效果,縮短計算時間。通過基于MMG的數(shù)學模型的靠泊仿真試驗,驗證了該控制器不僅能在不同于樣本數(shù)據(jù)的初始狀態(tài)下減少計算維數(shù)、降低計算負荷,還能達到較為理想的控制效果,滿足航海實踐的要求。
此外,本文提出的ANN模型不依賴具有不確定因素的虛擬導航線,可在實際控制過程中降低計算負荷,提高控制的實時性,為后續(xù)自動靠泊的在線ANN控制提供理論支撐。
[1] 張顯庫. 船舶運動簡捷魯棒控制[M].北京:科學出版社, 2012:5.
[2] 張強,張顯庫. 船舶自動靠泊研究綜述[J]. 大連海事大學學報, 2015, 41(3):1-9.
[3] 卜仁祥,劉正江,胡江強. 欠驅(qū)動船舶非線性滑模靠泊控制器[J]. 交通運輸工程學報,2007, 7(4):24-29.
[4] PARK J Y, KIM N. Design of an Adaptive Backstepping Controller for Auto-Berthing a Cruise Ship Under Wind Loads[J]. International Journal of Naval Architecture and Ocean Engineering, 2014, 6(2):347-360.
[5] MIZUNO N, UNCHIDA Y, OKAZAKI T. Quasi Real-Time Optimal Control Scheme for Automatic Berthing[J]. IFAC Papers Online, 2015, 48(16):305-312.
[6] ZHANG Yao, HEARN G E, SEN P. A Multivariable Neural Controller for Automatic Ship Berthing Control Systems[J]. IEEE Control Systems, 1997, 17(4):31-45.
[7] IM N K, HASEGAWA K. A Study on Automatic Ship Berthing Using Parallel Neural Controller (2nd Report)-Motion Identification Considering Lateral Speed and Angular Velocity to Cope with Disturbances[J]. Journal of the Kansai Society of Naval Architects Japan, 2001, 237(3):127-132.
[8] IM N K, HASEGAWA K. Motion Identification Using Neural Networks and its Application to Automatic Ship Berthing Under Wind[J]. Journal of Technology, 2002, 6(1): 16-26.
[9] IM N K, LEE S K, DO B H. An Application of ANN to Automatic Ship Berthing Using Selective Controller[J]. International Journal on Marine Navigation and Safety of Sea Transportation, 2007, 1(1):101-105.
[10] TRAN V L, IM N K. A Study on Ship Automatic Berthing with Assistance of Auxiliary Devices[J]. International Journal of Naval Architecture and Ocean Engineering, 2012,4(3):199- 210.
[11] NGUYEN P H, JUNG Y C. Automatic Berthing Control of Ship Using Adaptive Neural Networks[J]. International Journal of Navigation and Port Research, 2007, 31(7):563-568.
[12] AHMED Y A, HASEGAWA K. Automatic Ship Berthing Using Artificial Neural Network Based on Virtual Window Concept in Wind Condition[C]//IFAC Symposium on Control in Transportation Systems, 2012,45(24):286-291.
[13] AHMED Y A, HASEGAWA K. Automatic Ship Berthing Using Artificial Neural Network Trained by Consistent Teaching Data Using Nonlinear Programming Method[J]. Engineering Applications of Artificial Intelligence, 2013, 26(10): 2287-2304.
[14] AHMED Y A, HASEGAWA K. Experiment Results for Automatic Ship Berthing Using Artificial Neural Network Based Controller[Z]. IFAC Proceedings Volumes, 47(3): 2658-2663.
[15] AHMED Y A, HASEGAWA K. Artificial Neural Network Based Automatic Ship Berthing Combining PD Controlled Side Thrusters[C]//13th International Conference on Control, Automation, Robotics & Vision. Singapore, 2014.
[16] AHMED Y A, HASEGAWA K. Consistently Trained Artificial Neural Network for Automatic Ship Berthing Control[J]. International Journal on Marine Navigation and Safety of Sea Transportation, 2015, 9(3):365-368.
[17] 黃澤洋,邵哲平,潘家財,等. 基于AIS的大型船舶靠泊航速分布規(guī)律[J]. 中國航海, 2016, 39(2): 55-58.
[18] ZHANG Qiang, ZHANG Xianku, IM NK. Ship Nonlinear-Feedback Course Keeping Algorithm Based on MMG Model Driven by Bipolar Sigmoid Function for Berthing[J]. International Journal of Naval Architecture and Ocean Engineering, 2017,9(5):525-536.
[19] 高大文,王鵬,孫麗欣,等. 人工神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點篩選規(guī)則的確定[J]. 高技術(shù)通訊,2002, 12(6):65-68.