蔣 帆 徐海祥 余文瞾 李文娟
(武漢理工大學交通學院1) 武漢 430063) (武漢理工大學高性能船舶技術教育部重點實驗室2) 武漢 430063) (江蘇科技大學海洋裝備研究院3) 鎮江 212003)
對于動力定位船舶而言,船舶操縱運動數學模型的確定,不僅是研究船舶操縱性的基礎,更是狀態估計和動力定位控制模塊的關鍵,而確定船舶操縱運動數學模型的主要任務在于確定數學模型中相應的水動力參數.傳統求取水動力參數的方法主要有約束模試驗法和半理論半經驗估算法,前者測定結果最為精確但成本高,耗時長,且存在尺度效應[1];后者則需要大量的歷史累積數據,特別當設計船舶不在現有數據所限定的船型內,其求取精度將大大降低.系統辨識理論和試驗測量技術的不斷發展為確定船舶水動力參數提供了新的方法.
在船舶水動力參數辨識研究方面,Abkowitz[2]首次提出了基于擴展卡爾曼濾波(EKF)辨識方法,結合實船試驗數據分析得到了較滿意的辨識結果,但是由于EKF的辨識精度對誤差協方差的初始估計值以及量測噪聲矩陣和過程噪聲矩陣的值比較敏感,使得辨識結果容易發散.邊信黔等[3]結合實船試驗數據并采用離線最速下降尋優法,在節約時間的同時能較精確地辨識出相關水動力參數,但是該種方法受隨機干擾的影響較大.劉建成等[4]使用極大似然法對水下機器人水動力系數進行辨識,得到的辨識結果通過仿真運動驗證了其可靠性,但是該方法只適用于存在正態噪聲的模型參數辨識.羅偉林等[5]通過對試驗數據的分析,采用最小二乘支持向量機的方法確定船舶數學模型中的水動力參數及其干擾力系數,并驗證了該方法的有效性,但是其對于船首向參數的辨識結果仍存在較大的誤差.謝朔等[6]將最小二乘支持向量機與多新息方法相結合,提出一種新的多新息在線LS-SVM辨識方法,并結合Z形試驗數據對模型參數進行辨識,結果驗證了其有效性,但是單一標準Z形試驗數據所辨識的參數卻不能完全滿足該算法的驗證要求.
近年來,隨著人工智能技術的發展,系統辨識涌現出如人工神經網絡[7]、粒子群算法、蝙蝠算法等智能化的辨識方法.田延飛等[8]基于實船試驗數據,采用了新型蝙蝠算法辨識實船一階線性響應模型參數,辨識結果驗證其算法的有效性,但是所采用的一階線性響應模型所需要辨識的參數較少,并且算法本身缺乏變異機制,容易陷入局部最優.Luo等[9]將支持向量機與粒子群算法相結合,提出了PSO-SVM算法,并通過實船試驗數據進行參數辨識驗證了其有效性,但該種方法需要對數據樣本進行重構,容易導致數據信息丟失.遺傳算法(GA)作為一種現代智能辨識方法,它相較于神經網絡法而言,不需要大量的歷史數據進行相關學習,當辨識對象的動態特性改變時,也具有良好的魯棒性和全局尋優能力.袁偉杰等[10]提出了一種基于遺傳算法的AUV水動力參數辨識方法,對AUV樣機的水平面運動水動力參數進行辨識,得到的辨識結果與實際值相比,辨識誤差在允許范圍之內,但該方法采用的固定遺傳參數難以保證種群的多樣性及最終結果的收斂性.邢家偉[11]對傳統的遺傳算法進行了改進,將自適應遺傳算法與最小二乘法相結合,通過仿真辨識出相關水動力參數,但并未考慮種群父代與子代之間的信息交互,忽略了遺傳算法優化過程中的動態特性.
針對船舶水動力參數辨識存在的問題,文中采用MMG模型對被辨識的動力定位模型船舶進行建模,在文獻[10-11]的基礎上,改進了自適應遺傳算子,引入了重組替代策略,設計了自適應重組遺傳算法對參數向量進行估計,得到參數最優解,并通過仿真試驗驗證了本文所推薦方法的有效性.
建立圖1所示的固定坐標系Oo-xoyozo和運動坐標系O-xyz.其中:u,v,r分別為船舶沿x,y運動的速度和繞z軸轉動的角速度;φ為船舶首向角;G為船舶重心.

圖1 固定坐標系和運動坐標系
對于動力定位這樣的低速運動模型,MMG操縱運動方程可以寫成[12]
(1)

式(1)可以寫成如下矩陣形式:

(2)
式中:M為質量矩陣;D為阻尼矩陣;v為速度矩陣,v=[uvr]T;τ為合外力矩陣,τ=[τxτyτn]T.相關矩陣形式如下:
傳統遺傳算法從問題可能潛在解集的一個種群開始,而種群則由經過編碼的一定規模的個體組成.每個個體實際上是帶有特征的染色體實體.在初代種群產生后,根據種群中每個個體適應度大小選擇個體,將交叉算子、變異算子作用于相關個體,產生出代表新的解集的種群,由此逐代演化,最終得到實際問題的最優解.
適應度值是評價種群中每個個體優劣的唯一指標.適應度函數通常通過目標函數轉化得到,本文中,模型船舶實際運動速度為v(t),而通過辨識確定的θ參數矩陣也可以求出相對應的速度v_iden(t),根據系統辨識理論中殘差平方和最小的要求,可以將目標函數定為

(3)
則適應度函數可定義為
(4)
式中:ζ為一ζ較小的正實數,本文中ζ=0.01,主要是為了防止當目標函數趨于0時發生計算溢出現象.
GA中的算子主要包括交叉算子和變異算子.傳統遺傳算法中,交叉概率Pc和變異概率Pm是固定的,要為某個特定的辨識問題設置好Pc和Pm,其算法需要經過反復地調試且難以豐富種群中優良解的多樣性.
為此,文獻[11]改進了Srinvas等[13]提出的自適應遺傳算法,將Pc和Pm隨著個體的適應度在種群平均適應度和最大適應度之間進行線性調整,為
(5)
(6)
式中:Pc1和Pc2為交叉概率取值的上限與下限值;f′為參與交叉的兩個個體中較大的適應度;favg為種群的平均適應度;Pm1和Pm2為變異概率取值的上限與下限;f為變異個體的適應度.
自適應交叉算子和變異算子的設定,對遠離最優值的個體采用較大的Pc和Pm,以提高算法的計算速度;對接近最優值的個體采用較小的Pc和Pm,以保證收斂于全局最優解[14].因此,Pc和Pm的選取就不能簡單地隨著適應度線性變化.本文采用一種分階段的正弦自適應Pc/Pm計算方法,該種方法減小了處于平均適應度附近和最大適應度附近的Pc/Pm,這有利于保留種群中的優良個體.且正弦自適應Pc/Pm計算方法與分階段Pc/Pm相結合避免了Pc/Pm的驟升與驟降,提高了算法進化過程的穩定性,減少了收斂代數.
設最大遺傳代數為maxgen,將進化過程劃分為如下三個階段:第一階段為[0,0.382maxgen],Pc1為0.9,Pc2為0.7;第二階段為[0.382maxgen,0.618maxgen],pc1為0.7,Pc2為0.5;第三階段為[0.618maxgen,maxgen],Pc1為0.5,Pc2為0.3.交叉概率和變異概率的計算式為
(7)
(8)
傳統遺傳算法在經歷選擇、交叉、變異操作后,由子代種群直接替代父代種群(完全替代重組),或者是設置每代保留的優異個體數(穩態替代重組)從而形成新的種群.無論是完全替代重組還是穩態替代重組都是人為決定每代所被替代的個體數量,忽略了進化過程的動態性.一方面,高的計算效率需要將當前代適應度較高的個體保留下來直接進入下一代來實現.另一方面,由于種群規模不變,適應度較低的個體則會相應降低保留的概率,由于適應度較低的個體攜帶獨有的信息含量,這就直接降低了算法探索新的解區域的能力,容易導致早熟收斂.一個合適的重組替代策略要求能夠找到算法的收斂速度和解的質量之間的平衡[15].

(9)
式中:k,b為系數,k>0;n為靈敏度系數,n≥1.
為驗證自適應重組遺傳算法的有效性,對一艘縮尺比1∶20的動力定位平臺供應船模進行了參數辨識仿真試驗,并與文獻[10-11]方法進行了對比.為敘述方便,約定文獻[10]方法為方法I、文獻[11]方法為方法II、自適應重組遺傳算法為方法III.船模相關參數見表1.

表1 船模相關參數值
圖2為三種方法適應度函數值的進化過程.根據2.1可知,適應度函數值表征解的質量,函數值越大,解的質量越高,反之亦然.由圖3可知,方法I的結果在迭代達到最大迭代次數時并未收斂,方法II的結果在迭代13次時收斂,并且適應度函數最終值保持在94.3496.方法III則在迭代15次時收斂,并且適應度函數最終值保持在98.8253.

圖2 適應度函數值的進化過程
對比方案1、方法II的結果,由于方法II相較于方法I只是設置了隨著適應度線性變化的交叉概率和變異概率,但是方法II無論從結果的收斂性還是結果的準確性都要明顯優于方法I,從中可以得出以下結論,在利用遺傳算法進行船舶水動力參數辨識時,交叉算子和變異算子的設置對辨識的最終結果將會產生很大影響,一旦設置不合適可能導致算法最終無法收斂.
對比方法II、方法III的結果可以看出,方法III在收斂速度方面與方法II相差無幾,但是方法III結果的準確性卻要優于方法II,且算法的收斂過程更加穩定.
表2為方法II和方法III對MMG模型進行辨識得到的相應水動力參數結果的比較.由于方法I的辨識結果在迭代達到最大迭代次數時仍然未收斂,故不在此處列出.由表2可知,與真值相比,方法II辨識所得的水動力參數的最大相對誤差為-10.133 6%,最小相對誤差為0.034 3%.方法III辨識所得的水動力參數的最大相對誤差為8.063 5%,最小相對誤差為-0.032 4%.由此可見,只要試驗數據含有足夠的信息量,方法II和方法III都可以辨識出相關水動力導數.
對比方法II和方法III辨識結果的相對誤差可以得到,除了 和 外,方法III辨識結果相對誤差都小于方法II,結合適應度曲線的對比結果可以得到如下結論:引入多階段的正弦自適應遺傳算子計算方法及自適應重組替代策略后的遺傳算法在保證算法收斂速度的前提下,可以有效地提高解的質量.
設計了一種自適應重組替代的遺傳算法,以MMG模型為基礎,對動力定位模型船舶水動力參數進行辨識,并將結果與文獻[10-11]的辨識結果相比較,結果表明本文推薦的算法在保證算法收斂速度的前提下,提高了辨識精度.
本文沒有對重組遺傳因子相關系數的確定作進一步的深入研究,后續可以考慮改變相關系數或者重新定義重組替代遺傳因子的表達式對辨識結果的影響.