張 強(qiáng), 張顯庫, 林南均
(1.大連海事大學(xué) 航海學(xué)院,遼寧 大連 116026; 2. 山東交通學(xué)院 航海學(xué)院, 山東 威海 264209; 3. 木浦國(guó)立海事大學(xué) 航海學(xué)院,韓國(guó) 木浦 530729)
船舶自動(dòng)靠泊問題涉及船舶在淺水中的低速運(yùn)動(dòng),風(fēng)、浪、流的干擾相對(duì)較強(qiáng),系統(tǒng)的信息量較大,操縱和控制船舶較為困難。[1]因此,有關(guān)船舶自動(dòng)靠泊問題的研究隱含受限水域、不確定數(shù)學(xué)模型、較強(qiáng)環(huán)境擾動(dòng)下的船舶操縱及定位控制等內(nèi)容。[2]
為實(shí)現(xiàn)自動(dòng)靠泊控制,在控制器設(shè)計(jì)中應(yīng)用非線性滑模[3]、反步法[4]、最優(yōu)控制[5]和神經(jīng)網(wǎng)絡(luò)等算法。由于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)具有較強(qiáng)的非線性函數(shù)映射能力,且易復(fù)制船長(zhǎng)豐富的靠泊經(jīng)驗(yàn),因此在解決自動(dòng)靠泊控制問題時(shí)得到廣泛應(yīng)用。ZHANG等[6]利用多參數(shù)神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)在線調(diào)參的靠泊控制器。IM等[7-9]和TRAN等[10]利用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)并行神經(jīng)網(wǎng)絡(luò)靠泊控制器、基于運(yùn)動(dòng)識(shí)別的神經(jīng)網(wǎng)絡(luò)靠泊控制器、根據(jù)不同靠泊狀態(tài)進(jìn)行決策的神經(jīng)網(wǎng)絡(luò)控制器及利用側(cè)推器和拖船等輔助設(shè)備的自動(dòng)靠泊控制器。NGUYEN等[11]利用自適應(yīng)神經(jīng)網(wǎng)絡(luò)分別訓(xùn)練舵、槳控制信號(hào),實(shí)現(xiàn)自動(dòng)靠泊。AHMED等[12-16]利用神經(jīng)網(wǎng)絡(luò)技術(shù),結(jié)合虛擬窗口理論、非線性規(guī)劃及PD混合控制等算法設(shè)計(jì)自動(dòng)靠泊控制器,并利用自由船模試驗(yàn)驗(yàn)證其有效性。
隨著海上信息技術(shù)的不斷發(fā)展,基于大數(shù)據(jù)的靠泊控制參數(shù)整定逐漸成為可能。[17]在大量有效樣本數(shù)據(jù)下,神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù)的優(yōu)化會(huì)減少計(jì)算維數(shù)。因此,為實(shí)現(xiàn)自動(dòng)靠泊控制,降低計(jì)算負(fù)荷,首先在ANN架構(gòu)[9]的基礎(chǔ)上,利用BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)3層神經(jīng)網(wǎng)絡(luò)控制器。根據(jù)靠泊經(jīng)驗(yàn),通過取消虛擬導(dǎo)航線和位置輔助線參數(shù),優(yōu)化輸入?yún)?shù)。其次,在4種船舶初始狀態(tài)下進(jìn)行訓(xùn)練,從而獲取樣本數(shù)據(jù),訓(xùn)練網(wǎng)絡(luò)權(quán)重和偏差。針對(duì)樣本數(shù)據(jù)較多、計(jì)算負(fù)荷大的問題,根據(jù)樣本有效數(shù)據(jù)信息量與控制器輸出成正比的關(guān)系,對(duì)有效信息量較大的數(shù)據(jù)(例如舵角或螺旋槳轉(zhuǎn)速變化較大時(shí)的數(shù)據(jù))增大提取頻率,而對(duì)有效信息量少的數(shù)據(jù)減小提取頻率,從而優(yōu)化有效樣本數(shù)據(jù),縮短計(jì)算時(shí)間。最后,利用基于MMG(Maneuvering Modeling Group)船舶數(shù)學(xué)模型的靠泊仿真試驗(yàn),驗(yàn)證船舶在不同于樣本數(shù)據(jù)的初始狀態(tài)下達(dá)到理想的控制效果,從而進(jìn)一步驗(yàn)證簡(jiǎn)捷神經(jīng)網(wǎng)絡(luò)靠泊控制器在減少計(jì)算維度時(shí)的控制有效性。
在充分考慮船舶靠泊等操縱實(shí)踐的基礎(chǔ)上,借鑒MMG分離建模的思想,采用慣性坐標(biāo)系O-xyz和附體坐標(biāo)系O′-x′y′z′(見圖1),其中:X,Y,N分別為作用在船舶上的合外力在附體坐標(biāo)系上的投影;u,v,r分別為船舶縱向速度矢量分量、橫向速度矢量分量和轉(zhuǎn)艏角速度;δ,Ψ,β分別為舵角、航向角和漂角。采用的數(shù)學(xué)模型為
(1)
式(1)中:m為船舶質(zhì)量;mx,my,Jzz分別為附體坐標(biāo)系上船舶縱向附加質(zhì)量、橫向附加質(zhì)量和附加慣性矩;Izz為船體繞z0軸的轉(zhuǎn)動(dòng)慣量;YxC重心力矩修正;H,P,R,W,C分別為船體、槳、舵、風(fēng)、流。
船舶自動(dòng)靠泊通常有泊位外鎮(zhèn)定、直接靠攏和先泊位外鎮(zhèn)定再平行靠攏等3種類型。[2]大型船舶自主靠港操縱一般分為靠泊操縱和系泊操縱2個(gè)階段。
1)靠泊操縱為船舶由外海減速至泊位外當(dāng),使船體盡量平行于泊位或有利于系泊的位置,并控制船位至撇纜繩能打到泊位或帶纜艇能拖帶纜繩上岸樁的位置。此時(shí)船速盡可能小。
2)系泊操縱是船舶綜合利用舵、槳、纜繩、錨鏈及側(cè)推器等設(shè)備,實(shí)現(xiàn)船舷與泊位碰墊完全靠攏。
然而,大部分大型船舶都要借助拖船等輔助手段靠泊。參考文獻(xiàn)[7]~文獻(xiàn)[9],本文設(shè)計(jì)的控制器主要應(yīng)用在大型船舶靠泊操縱的第一階段,控制目標(biāo)是使船速減小到0.1 m/s以內(nèi),航向保持在泊位方向±20°以內(nèi),船位距離泊位1倍船長(zhǎng)以內(nèi)。
AHMED等[13]認(rèn)為船舶沿虛擬導(dǎo)航線航行至距離碼頭1.5倍船長(zhǎng)的泊位外檔處鎮(zhèn)定,即完成自動(dòng)靠泊控制任務(wù)。虛擬導(dǎo)航線是大多數(shù)船長(zhǎng)靠泊時(shí)導(dǎo)引船舶抵達(dá)泊位的航線,與碼頭岸線的夾角一般為30°(見圖2)。然而,在實(shí)際靠泊過程中,虛擬導(dǎo)航線是根據(jù)不同泊位的地理?xiàng)l件和外界干擾隨時(shí)調(diào)整的,并非固定的航線。由于欠驅(qū)動(dòng)船舶在低速時(shí)并不能完全跟蹤設(shè)計(jì)的航線,且虛擬航線有時(shí)會(huì)給船長(zhǎng)或引航員帶來干擾,從而影響船舶安全靠泊,因此在進(jìn)行訓(xùn)練樣本時(shí)取消虛擬導(dǎo)航線。
本文設(shè)計(jì)的自動(dòng)靠泊控制器(見圖3)是利用ANN直接學(xué)習(xí)的方法得到的。首先,由有經(jīng)驗(yàn)的船長(zhǎng)在已知初始條件下操縱具有舵機(jī)特性和螺旋槳特性的MMG船舶數(shù)學(xué)模型進(jìn)行實(shí)際靠泊,從而獲得訓(xùn)練數(shù)據(jù)。隨后,利用多層神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)控制器,并采用BP算法訓(xùn)練網(wǎng)絡(luò)權(quán)重和偏差。最后,利用ANN的泛化性能,在不同初始輸入條件下實(shí)現(xiàn)船舶自動(dòng)靠泊控制的輸出。
網(wǎng)絡(luò)訓(xùn)練的目標(biāo)是減小樣本訓(xùn)練輸出和控制器輸出的誤差。設(shè)3層ANN中各層的節(jié)點(diǎn)個(gè)數(shù)分別為m,n,p,訓(xùn)練數(shù)據(jù)以{q1,o1}, {q2,o2},…,{qi,oi}的形式存儲(chǔ),其中qi及oi為神經(jīng)網(wǎng)絡(luò)輸入和目標(biāo)輸出。在隱層的n個(gè)節(jié)點(diǎn)處,其輸出Hn可表示為
(2)
式(2)中:f1和Nn分別為隱層的激活函數(shù)及網(wǎng)絡(luò)N的n個(gè)節(jié)點(diǎn)的輸入;Wmn和bn分別為節(jié)點(diǎn)n到m的權(quán)重及隱層Hn的閾值。隱層的活化函數(shù)選擇Tansig函數(shù),即
(3)
同理,在輸出層第p節(jié)點(diǎn)的輸出可表示為
(4)
式(4)中:f2和Np分別為輸出層的活化函數(shù)及輸出層p節(jié)點(diǎn)的輸入;Wnp和bp分別為p節(jié)點(diǎn)到n節(jié)點(diǎn)的權(quán)重及輸出層Op的閾值。在隱層的傳遞函數(shù)選擇Satlin函數(shù),即
(5)
目標(biāo)函數(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為辨識(shí)矩陣;μ為調(diào)整系數(shù)。
輸入層由輸入的特征決定,在進(jìn)行ANN模型設(shè)計(jì)時(shí),若將對(duì)模型貢獻(xiàn)較小的參數(shù)引入到網(wǎng)絡(luò)中,勢(shì)必會(huì)造成網(wǎng)絡(luò)癱瘓,影響網(wǎng)絡(luò)收的斂速度,且易于使網(wǎng)絡(luò)陷入局部極小;同時(shí),當(dāng)外推這組學(xué)習(xí)輸入/輸出數(shù)據(jù)時(shí),預(yù)測(cè)結(jié)果的正確率也沒有保證。[19]在文獻(xiàn)[9]中,8個(gè)與靠泊有關(guān)的輸入?yún)?shù)分別為y0,x0,Ψ,u,v,r,d1,d2。由于船位信息包含船位到坐標(biāo)橫軸的距離x0和縱軸的距離y0及船位到虛擬導(dǎo)航線的輔助坐標(biāo)參數(shù)d1和d2,而后者相當(dāng)于x0和y0的坐標(biāo)變換。考慮到實(shí)際靠泊中d1和d2的必要性不足(第2部分自動(dòng)靠泊原理中已論述),且對(duì)模型的貢獻(xiàn)較小,因此采用與靠泊直接相關(guān)的6個(gè)參數(shù),減少2個(gè)計(jì)算維度。ANN三層網(wǎng)絡(luò)架構(gòu)見圖4,其中:輸入層有6個(gè)輸入?yún)?shù),分別為y0,x0,Ψ,u,v,r;隱層節(jié)點(diǎn)數(shù)為25個(gè);輸出層有2個(gè)輸出參數(shù),即舵角δ和螺旋槳轉(zhuǎn)速n。
最終t+1時(shí)刻的控制律[δt+1,nt+1]T表示為
Ψ(t),ut,vt,rt]T+bn)+bp)
(8)
以一艘液化氣船[18]作為仿真對(duì)象,在MATLAB環(huán)境下利用MMG船舶運(yùn)動(dòng)數(shù)學(xué)模型(1)和GUI控件搭建靠泊仿真平臺(tái)。液化氣船仿真參數(shù)見表1。
在參數(shù)訓(xùn)練中,憑借多年的船舶操縱經(jīng)驗(yàn),利用搭建的靠泊仿真平臺(tái),在不同的初始條件下操縱船舶,針對(duì)舵角δ和螺旋槳轉(zhuǎn)速n進(jìn)行多次靠泊試驗(yàn)。試驗(yàn)后,剔除靠泊過程中不理想的樣本點(diǎn)數(shù)據(jù)(1個(gè)樣本點(diǎn)數(shù)據(jù)包含某時(shí)刻的船舶運(yùn)動(dòng)、舵角和螺旋槳轉(zhuǎn)速數(shù)據(jù)),僅保留最優(yōu)樣本點(diǎn)數(shù)據(jù),例如剔除船舶靠泊速度過大或最終船位距離目標(biāo)點(diǎn)較遠(yuǎn)的數(shù)據(jù)。為方便處理,在進(jìn)行樣本訓(xùn)練時(shí),需對(duì)輸入/輸出數(shù)據(jù)進(jìn)行歸一化;在實(shí)際操作中,取預(yù)測(cè)參數(shù)的最大值為1,最小值為0,中間值利用加權(quán)平均法計(jì)算。仿真中設(shè)置訓(xùn)練采樣步長(zhǎng)為0.2 s,在1次完整的靠泊過程中的采樣數(shù)據(jù)較多,為優(yōu)化樣本質(zhì)量,根據(jù)有效信息量調(diào)整提取頻率。
表1 液化氣船仿真參數(shù)
為提高樣本數(shù)據(jù)的有效性,設(shè)計(jì)4種不同的初始船位進(jìn)行靠泊訓(xùn)練,獲得大量具有多樣性的樣本數(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)證輸入?yún)?shù)優(yōu)化后的控制器的有效性,因此仿真環(huán)境中的外界干擾只考慮風(fēng)速為5 m/s,風(fēng)向?yàn)?70°的情況。為使靠泊效果明顯,保證靠泊安全,仿真坐標(biāo)系的原點(diǎn)取在泊位橫向外當(dāng)0.5倍船長(zhǎng)處。訓(xùn)練后的樣本數(shù)據(jù)見圖5。
由圖5可知,在4種初始狀態(tài)下均能完成靠泊任務(wù)。以初始狀態(tài)(1)為例,其參數(shù)見圖6。
利用樣本數(shù)據(jù)進(jìn)行權(quán)重和偏差訓(xùn)練。由于在樣本訓(xùn)練中產(chǎn)生大量的樣本數(shù)據(jù),為優(yōu)化數(shù)據(jù)和簡(jiǎn)化計(jì)算,在提取樣本數(shù)據(jù)時(shí)根據(jù)樣本數(shù)據(jù)信息量與控制器輸出成正比的關(guān)系,對(duì)有效信息量較大的時(shí)間段增大提取頻率,例如圖6中的500~600 s時(shí)間段,若舵角或螺旋槳轉(zhuǎn)速變化較大,則平均時(shí)間間隔內(nèi)提取100%或80%的數(shù)據(jù);而對(duì)有效信息量較小的時(shí)間段減小提取頻率,因?yàn)樵摬糠职挠行畔⑤^少,例如在100~240 s時(shí)間段內(nèi),平均時(shí)間間隔內(nèi)提取10%的數(shù)據(jù)。
在進(jìn)行網(wǎng)絡(luò)訓(xùn)練時(shí),設(shè)定訓(xùn)練目標(biāo)最小誤差為0.000 1,最大迭代次數(shù)等于樣本數(shù)量。數(shù)據(jù)歸一化處理后的訓(xùn)練結(jié)果見圖7,其中:橫坐標(biāo)為時(shí)間;縱坐標(biāo)為歸一化后的舵角和螺旋槳轉(zhuǎn)速;訓(xùn)練前的初始數(shù)據(jù)為隨機(jī)數(shù)據(jù),訓(xùn)練后的數(shù)據(jù)與樣本數(shù)據(jù)符合度較高,說明參數(shù)訓(xùn)練有效。
利用訓(xùn)練好的ANN,在初始狀態(tài)參數(shù)為(4,6,250,2,0,0,0.75,0)的條件下進(jìn)行自動(dòng)靠泊控制仿真,其他仿真環(huán)境與參數(shù)訓(xùn)練時(shí)一致。仿真結(jié)果見圖8。控制器能使船舶較好地完成控制任務(wù)。
由圖9可知,船速從2 m/s下降到接近0.068 m/s,達(dá)到<0.1 m/s的目標(biāo),且下降速率較為平穩(wěn),橫向速度為-0.003 m/s,轉(zhuǎn)艏速度為0.001 m/s。最終橫向船位坐標(biāo)在0.04L處,縱向船位坐標(biāo)在-0.07L處,非常接近目標(biāo)船位,誤差較小。最終靠泊時(shí)艏向?yàn)?50°,最佳目標(biāo)艏向?yàn)?70°,誤差為-20°。雖然未能達(dá)到270°,但也符合航海實(shí)踐要求(實(shí)踐中有時(shí)使艏部先接近泊位,以便帶艏纜或艏倒纜)。存在誤差的原因主要有:
1)在自動(dòng)靠泊仿真中,為檢驗(yàn)所提出算法的泛化性能,采用的初始位置與訓(xùn)練位置不同,導(dǎo)致誤差存在。
2)在設(shè)計(jì)4種不同的初始船位進(jìn)行靠泊訓(xùn)練時(shí),各次手動(dòng)靠泊的樣本數(shù)據(jù)之間也存在一定的差異,影響自動(dòng)靠泊的精度。
相比圖6中第1種初始狀態(tài)下的訓(xùn)練數(shù)據(jù),圖9中縱向船速u下降較快,雖然舵角δ較大,但由于船速相對(duì)較小,造成轉(zhuǎn)艏力矩較小,從而使航向未能達(dá)到270°,但這滿足航海實(shí)踐的要求。
在282~325 s及605 s以后,使用右滿舵信號(hào),以控制航向、擺正船位。螺旋槳轉(zhuǎn)速變化較為平緩,整個(gè)靠泊時(shí)間為706 s,滿足航海實(shí)踐的要求??刂平Y(jié)果顯示設(shè)計(jì)的控制器能達(dá)到預(yù)期的控制效果。
為利用ANN實(shí)現(xiàn)自動(dòng)靠泊,減少計(jì)算維度,降低計(jì)算負(fù)荷,本文利用BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)3層神經(jīng)網(wǎng)絡(luò)控制器,并根據(jù)實(shí)際靠泊操縱經(jīng)驗(yàn)對(duì)神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù)進(jìn)行優(yōu)化。在大樣本數(shù)據(jù)處理中,采用選擇性有效數(shù)據(jù)提取方法優(yōu)化控制效果,縮短計(jì)算時(shí)間。通過基于MMG的數(shù)學(xué)模型的靠泊仿真試驗(yàn),驗(yàn)證了該控制器不僅能在不同于樣本數(shù)據(jù)的初始狀態(tài)下減少計(jì)算維數(shù)、降低計(jì)算負(fù)荷,還能達(dá)到較為理想的控制效果,滿足航海實(shí)踐的要求。
此外,本文提出的ANN模型不依賴具有不確定因素的虛擬導(dǎo)航線,可在實(shí)際控制過程中降低計(jì)算負(fù)荷,提高控制的實(shí)時(shí)性,為后續(xù)自動(dòng)靠泊的在線ANN控制提供理論支撐。
[1] 張顯庫. 船舶運(yùn)動(dòng)簡(jiǎn)捷魯棒控制[M].北京:科學(xué)出版社, 2012:5.
[2] 張強(qiáng),張顯庫. 船舶自動(dòng)靠泊研究綜述[J]. 大連海事大學(xué)學(xué)報(bào), 2015, 41(3):1-9.
[3] 卜仁祥,劉正江,胡江強(qiáng). 欠驅(qū)動(dòng)船舶非線性滑??坎纯刂破鱗J]. 交通運(yùn)輸工程學(xué)報(bào),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] 黃澤洋,邵哲平,潘家財(cái),等. 基于AIS的大型船舶靠泊航速分布規(guī)律[J]. 中國(guó)航海, 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é)點(diǎn)篩選規(guī)則的確定[J]. 高技術(shù)通訊,2002, 12(6):65-68.