褚式新 茅云生 董早鵬 蘭繼雷 姜 昊
(武漢理工大學交通學院 武漢 430063)
無人水面艇(unmanned surface vessel,USV)的智能化基礎是基于對其操縱運動的控制,而USV的操縱運動的預報由其運動數學模型所決定的[1].USV的操縱預報精度直接取決于建立的運動數學模型中的參數獲取精度[2].
隨著系統辨識學科的發展,辨識逐漸成為學者們獲取模型參數的一種重要途徑,Abkowitz[3]最早將辨識用于船舶操縱性研究,取得了非常好的效果,改變了以往通過實驗獲取參數的現狀,節約了成本.如今辨識算法也越來越智能化,Dong等[4]采用了擴展卡爾曼濾波算法及支持向量機兩種算法辨識了USV的二階非線性響應模型,獲取了模型參數,并對比了獲取的模型參數對USV操縱性的預報精度的影響,發現擴展卡爾曼濾波算法在辨識精度上優于支持向量機;羅偉林等[5]對支持向量機算法進行了改進,提出了最小二乘支持向量機辨識船舶的操縱運動模型,并采用仿真實驗驗證了算法的有效性;隨著神經網絡的興起,有學者利用神經網絡強大的學習與自適應能力,與系統辨識相結合,提出了利用神經網絡辨識船舶操縱運動模型的水動力導數的算法,并進行了對應的操縱實驗驗證了辨識結果的精確性[6];遞推最小二乘法(recursive least squares,RLS)是目前系統辨識中常用的一種算法,是基于最小二乘法辨識結果所進行的一種改進的在線辨識算法[7],但是RLS算法辨識精度往往依賴于數據量,大部分通過辨識得到的模型參數精度均有待提升,需要對結果進一步優化,粒子群(particle swarm optimization,PSO)算法是諸多智能優化算法中效果比較好的一種算法,具有極強的全局搜索能力[8],文中基于USV二階非線性響應模型,采用RLS辨識算法結合PSO優化算法展開研究.
目前關于USV操縱運動的數學模型分為三種:①以美國Abkowitz教授為代表的整體型建模流派,主要思想是將船體黏性力、槳力與舵力看作一個整體,將其合力以泰勒展開的形式給出;②以日本操縱建模小組(manoeuvring model group)提出的MMG模型,主要思想是將作用于船體的黏性力、槳力與舵力分開計算,并考慮它們的耦合作用;③日本的野本謙作教授利用類比建模法建立的一階響應模型,主要思想是將模型簡化,只考慮輸入舵角與輸出首向角的響應關系,故也稱為操縱響應模型,后續又發展了二階非線性響應模型,根據后續發展需求,在方程中又加入了非線性項,見式(1).因模型數學表達簡單,故在USV操縱性的研究上應用較為廣泛,本文的研究基于此模型展開.
(1)
式中:T1,T2,T3為時間常數,表示USV的應舵性和航向穩定性;K為舵角增益;α為高階非線性項系數;r為轉首角速度;δr為壓舵角.
對于一個線性系統,為
Y=Hθ
(2)
式中:Y為系統輸出矩陣;H為系統輸入矩陣;θ為系統參數矩陣.最小二乘法的辨識準則是使系統中每個觀測值與估計值的誤差的平方和達到最小,為
J=∑ε2
(3)
式中:ε為誤差矩陣,定義為

(4)
將式(4)代入式(3)中,對參數矩陣求導為0,得到
(5)
解得
(6)
式(6)即為最小二乘法的辨識結果,但由于最小二乘是一種離線辨識,其辨識效率低且辨識精度非常依賴于數據量的大小,故有學者基于最小二乘的辨識結果進行了一些變換,得到了一系列遞推公式,使最小二乘法的辨識結果對數據的依賴程度不高,得到了RLS算法,其主要變換過程如下,設:
[P-1(t-1)+H(t)TH(T)]-1
(7)
式中:Ht為所有時刻的系統輸入矩陣;H(t)為t時刻的系統輸入矩陣.其次設定誤差增益矩陣為
K(t)=P(t-1)H(t)T[I+H(t)P(t-1)H(t)T]-1
(8)
綜合式(6)~式(8),可得到RLS算法的主要遞推公式:
P(t)=[I-K(t)H(t)]P(t-1)
(9)

(10)
式(10)即為RLS算法對于線性系統的辨識結果,其辨識結果是依據當前時刻系統的輸入和輸出值對上一時刻參數辨識值的修正,當參數辨識值變化較為平緩時,即為RLS算法的辨識值.
為采集辨識所需實驗數據,選取文獻[9]中某USV響應模型參數(見表1),基于四階龍格-庫塔(Runge-Kutta)進行數值仿真實驗,因Z形實驗能體現USV良好的操縱性,在Matlab平臺進行20°Z形仿真實驗,見圖1.

表1 某USV響應模型參數

圖1 20° Z形仿真實驗圖
仿真總時間為500 s,時間間隔為0.5 s,采集了舵角δ、首向角ψ等數據,用以開展后續辨識.
由于操縱響應模型式(2)是一個連續的模型,通過仿真實驗采集的數據是離散化的,所以需要將辨識模型離散化.在實際實驗中,首向角的采集比其他物理量更為容易,故采用歐拉差分法將角速度等物理量差分到首向角,具體差分過程為
(11)
(12)
(13)
(14)
式中:h為時間間隔.
將差分結果帶入辨識模型中,令y(t)=ψ(t+1)-ψ(t),得
y(t+2)-2y(t+1)+y(t)=
(15)
得到形如式(2)的形式,其中輸出矩陣為
Yt=[y(t+2)-2y(t+1)+y(t)]
(16)
輸入矩陣為
Ht=[δ(t)h3h3h3(δ(t+1)-δ(t))-
h(y(t+1)-y(t))-h2y(t)-y(t)3]
(17)
參數矩陣為
(18)
基于2.3設計的辨識模型,結合2.2的仿真數據,可得到各個時刻的系統輸入輸出矩陣的值,在RLS算法的遞推公式下,可得到每時刻的參數估計值,見圖2.

圖2 RLS辨識結果圖
當其辨識結果收斂時,其收斂值即為RLS算法的參數辨識值,其收斂值見表2.

表2 RLS算法辨識收斂值
基于參數矩陣中各參數的表達式,依次解方程可得到USV操縱響應模型的參數辨識值,見表3,且由辨識結果可知,T1,K,δr辨識精度較高,T2,T3,α辨識精度較差,為更為精確的預報無人艇的操縱性,需要對辨識精度進一步優化.

表3 RLS算法辨識值
通過RLS算法辨識結果設定PSO算法尋優的范圍,設定iden=[T1,T2,T3,K,α,δr]為辨識值,A為限制矩陣,則PSO尋優范圍上限為Xmax=iden+iden×A,下限為Xmin=iden-iden×A,式中:

(19)
初始粒子群設定為1 000個粒子組成的種群,每一個粒子表示為一個潛在解,為
X=(X1,X2,X3,…,X1 000)
(20)
其次初始化粒子速度,設定Vmax=0.001,Vmin=-0.001,速度表示為
V=(V1,V2,V3,…,V1 000)
(21)
設定適應度函數為
fitness=∑(Y-Ye)2
(22)
式中:Y為實際系統輸出;Ye為基于粒子值所估計的系統輸出,由于Z形實驗舵角變化較為單一,將采用20°正弦實驗數據進行優化,仿真數據見圖3.

圖3 20°正弦仿真實驗
計算每個粒子的適應度函數值,基于粒子的適應度函數值找出粒子的個體極值pbest和群體極值gbest,然后對粒子進行速度和位置的更新,更新方法為
vi,j(t+1)=ωvi,j(t)+c1r1[pbest-xi,j(t)]+
c2r2[gbest-xi,j(t)]
(23)
xi,j(t+1)=xi,j(t)+vi,j(t+1)
(24)
式中:i為粒子數;j為該粒子中的變量數;ω為慣性權重系數,設為0.729 8;c1,c2為學習因子,設定為c1=c2=2;r1,r2為0~1之間均勻分布的隨機數.
當粒子的速度與位置更新后,重新計算適應度函數值,依據新的適應度函數值跟新粒子群的個體極值pbest和群體極值gbest,當粒子到達最優解時或者達到最大迭代代數時停止更新,一般設定最大迭代代數為100,基于Matlab平臺得到的粒子群優化操縱響應模型參數的適應度函數值變化曲線見圖4.

圖4 PSO算法適應度值變化圖
由圖4可知,在迭代到60代時,適應度函數值基本趨向為一個接近0的小值,此時得到的結果為優化結果,將優化結果與RLS算法辨識結果相比較,見表4.由表4可知,基于PSO優化的參數結果比只用RLS算法辨識的參數結果要更精確,其中因T1,K,δr辨識精度較高,所以優化精度提升較小;而T2,T3,α參數因辨識精度較差,所以在優化過程中得到了較大提升.綜上,基于PSO算法能有效的優化操縱響應模型參數辨識結果,提升辨識精度.

表4 PSO優化結果對比
為驗證USV操縱響應模型參數辨識結果的精確度,將開展10°,20°及30°Z形、正弦,以及回轉等標準操縱運動仿真實驗驗證辨識結果對操縱性預報的影響,基于表4的優化結果與辨識結果相對比,因在實際實驗中,首向角較為容易觀測,故在圖中只顯示了首向角的對比,實驗結果見圖5.

圖5 操縱運動仿真實驗圖
由圖5可知,基于PSO優化的各個參數的結果在仿真實驗中的首向角變化均比優化前更接近實際變化,即優化后的辨識結果能更精確的預報USV的操縱性,其次基于PSO優化的結果在各種操縱仿真實驗下均對USV操縱性的預報有一定提升,說明基于PSO算法優化的參數辨識結果也具有很強的泛化性.綜上,基于RLS算法能有效的辨識USV二階非線性操縱響應模型,且其辨識值具有一定的精度,基于辨識結果,采用PSO智能算法對其進行優化,其優化結果能提升RLS算法的辨識精度,使其辨識結果能有效的預報各種USV操縱運動.
1) RLS算法是一種有效的辨識算法,基于RLS算法辨識能有效的得到參數的估計值,且具有一定精度,能一定程度上預報USV的操縱性.
2) 基于辨識結果采用PSO算法優化是一種較好的方法,辨識能確定PSO尋優的范圍,從而大大縮短尋優時間,尋優能夠提高辨識精度,其優化的結果在仿真實驗中也得到了了較好的驗證.
3) PSO算法也具有極強的泛化性,其優化的結果在各種操縱運動的預報上均有很高的精度.
綜上,基于RLS算法辨識USV二階非線性操縱響應模型參數能得到一個有效的估計值,PSO算法基于此估計值進行優化,優化后的各個參數精度均比優化前有提升,基于優化后的參數值能有效的預報各種USV操縱運動.