趙 昂
(中國空空導彈研究院,河南 洛陽 471000)
關于船舶模型的辨識開始于20世紀末。FOSSEN等[1]提出采用平行離線EKF算法來辨識船舶模型中對應的水動力參數,但是算法較為復雜。WANG等[2]提出了LS-SVM算法對船舶中的水動力參數進行辨識,該算法僅適用于離線辨識領域,并且要求的數據量較多。FUJIMORI等[3]提出在連續時間系統辨識領域中采用迭代學習控制來辨識某一連續時間狀態空間模型。BERGAMASCO等[4]將基于預測器的子空間連續時間辨識算法應用到了四旋翼飛行器的參數辨識中,并取得了較好的辨識結果。
傳統的船舶模型需要辨識的動力參數較多且較為復雜,因此很多學者將研究的重點轉移到了對船舶黑箱模型的辨識中。MOREIRA等[5]采用遞歸神經網絡模型得到了船舶輸入和輸出之間的非線性關系。MENDES等[6]將T-S模糊模型作為船舶預測模型,并將其應用于船舶廣義預測控制中。
在過去的20年間,子空間辨識算法得到了學者們的廣泛關注。NOEL等[7]介紹了在頻域中采用子空間辨識算法得到系統模型。YAN等[8]提出采用遞推子空間辨識算法辨識得到AUV模型。XIA等[9]推導出了船舶Hammerstein模型,并且將子空間辨識算法應用到了該模型的辨識中。
本文以動力定位船舶為研究對象,構建了船舶Hammerstein黑箱模型,并提出以該模型為基礎的子空間辨識算法,接著提出采用Givens旋轉矩陣對算法中復雜QR分解進行簡化,最終形成了適應船舶黑箱模型辨識的在線子空間辨識算法。
根據經典的船舶三自由度非線性模型[10],選取作用在船上的橫向、縱向作用力和轉艏力矩(τ)作為辨識輸入。最終的船舶模型結構圖見圖1。圖中,υ1(k)、ω(k)和υ2(k)分別表示輸入、輸出測量誤差和過程噪聲。定義非線性反饋映射為ffd(·),于是船舶Hammestein模型便具有如下形式:

圖1 帶有非線性反饋的船舶Hammerstein模型

(1)
式中:x(k)∈R3為系統狀態;p(k)∈R3為與推進器有關的參數;y(k)=[uvr]T∈R3為系統的測量輸出;A、Bin、Bf、C、Din、Df為具有適當維數的系統矩陣。
測量的輸入、輸出數據可以表示為如下的結構形式(假設模型中遇到白噪聲):
首先對Hammerstein模型進行適當的參數化。選取截斷的Fourier級數對系統的非線性部分進行逼近。定義基函數如下:
L1=(xmin)max,L2=(xmin)max
式中:j=1,2,…,p。
非線性函數fin(·)可以展開成如下的形式:
fin(p)=W·η(p)
Wi=[Wiu1Wiu2Wiu3]∈R1×3(2N+1)
Wiuj=[ωuj0ωuj1…ωujN]∈R1×(2N+1)
η(p)=[ηT(p1)ηT(p2)ηT(p3)]T∈R3(2N+1)×1
式中:N為基函數的長度。
同樣地,對非線性反饋函數ffd(y(k))可以展開成類似的形式,船舶模型轉換為

(2)
B=[BinWBfM)],D=[DinWDfM)]
ε(k)=[ηT(p(k))σT(y(k))]T代表了系統的輸入向量。
至此,得到帶有非線性反饋Hammerstein船舶模型。
采用Givens旋轉矩陣來提高QR分解和奇異值分解的速度。算法推導前做出如下假設[11]:
(1)系統滿足持續激勵條件。
(2)噪聲項d(k)、w1(k)、w2(k)不相關。
MOESP辨識算法的思想在于首先得到系統的廣義能觀矩陣,根據該矩陣得到對應的系統矩陣。
首先忽略噪聲項d(k)、w1(k)和w2(k),得到如下的輸出數據方程:
Yp=ΓiXp+HiEp
(3)
式中:帶有下角標p的矩陣為包含系統已知數據的Hankel矩陣; 矩陣Yp、Ep為輸入輸出Hankel矩陣;Xp為狀態矩陣;Hi為下三角Toepliloz矩陣。
經典MOESP辨識算法的核心即通過輔助數據方程分解得到廣義能觀矩陣Γi的一致估計:
(4)
將式(4)和式(3)結合在一起可以得到:
這表明Γi的列空間在矩陣R22的列空間中。因此,通過對R22進行SVD分解就可得到Γi[12]:
(5)
于是可以得到廣義能觀矩陣Γi=R22。根據子空間辨識算法的定義,可以求出系統矩陣的相似變換矩陣(ATBTCTD)形式[11]。
考慮系統受到d(k)、w1(k)、w2(k)誤差的影響,于是式(3)將變為如下形式:
(6)
式中:W2f、Ωf分別包含了w2(k)、d(k);矩陣P為下三角矩陣。
(7)
從矩陣R22的SVD分解中得到廣義能觀矩陣Γi的一致估計,于是系統矩陣就可以通過上節中介紹的方法進行求解。

R(t+1)·QT(t+1)
(8)
接著,根據Givens旋轉矩陣的特點,可以得到如下一系列Givens變換律:
R(t+1)QT(t+1)=R(t)G1G2…Gm·
Gi為Givens矩陣,且均為正交矩陣。于是括號中的矩陣乘積結果即形成了新的正交矩陣QT(t+1),最終可以得到:
R(t+1)=R(t)G1G2…Gm
即可以通過這樣一系列的Givens變換進行更新。由于Givens矩陣的特殊結構,可以對該過程進行進一步的簡化。假設當有新數據到來時,原矩陣R(t)具有如下的形式:
R(t)=[RΦnew data]=
最右邊一列的數據為新測量得到的數據。首先,為了將Φ1置為0,定義:

于是,對應元素(即第一列中的ri,1和最后一列中的元素Φi)可以通過如下的方式進行更新:
可以得到第一次遞推之后的R(t)矩陣如下:

通過使用這種方法,可以直接處理原R矩陣中的對應列,降低了計算復雜度,提高了計算效率。
典型的動力定位系統方框圖見圖2。圖中的虛線框部分為船舶模型辨識模塊,并采用本文的算法對參數矩陣進行不斷地在線調整。

圖2 典型的動力定位系統框圖
為了驗證子空間辨識算法的有效性,對已經建模并修正過的實船數學模型進行20°Z形操舵實驗,并將得到的輸入輸出數據用于子空間模型辨識算法[14]和經典船舶模型辨識算法中。對比仿真結果見圖3~圖4,可以看出子空間辨識算法的有效性。

圖3 船舶速度辨識結果對比

圖4 船舶速度辨識結果對比
假設系統的輸入輸出均受到白噪聲的影響。算法中Fourier級數的項數取p=6。仿真中船舶初始位置為(0 m,0 m)~(+10 m,+8 m),分別為初始位置的正北和正東向。在定位到300 s的時刻,移動至(+5 m,+3 m),仿真結果見圖5~圖8。

圖5 位置和艏向跟蹤情況
圖5、圖6表示船舶位置和艏向的跟蹤情況和偏差,可以看出,基于船舶模型的預測控制算法能夠滿足動力定位系統的控制要求(位置偏差1 m以內,艏向誤差1°以內)。從圖7中可以看出,作用在船上的力和力矩均較為平滑。圖8中數學模型的速度項輸出(實線)和船舶仿真輸出(虛線)結果基本重合,驗證了辨識得到的船舶數學模型的正確性及本文在線子空間辨識算法的有效性。可以得出結論:基于子空間MOESP算法的辨識方法能夠較為準確地辨識出船舶Hammerstein模型,實現了對船舶模型參數的實時調整,克服了傳統船舶模型辨識算法只能對模型進行離線辨識的缺點,使得控制器的輸入更為平滑。本文算法可以為緊急情況下的船位推算策略提供較為準確的模型依據,因此具有十分廣闊的應用前景和工程意義。

圖6 跟蹤誤差

圖7 船舶受到的縱向、橫向、回轉作用力和力矩

圖8 辨識模型的速度項輸出和仿真結果對比
本論文推導了動力定位船舶非線性模型的Hammerstein結構形式,接著提出了基于MOESP算法的遞推子空間辨識方法,使用簡化的Givens旋轉策略對子空間辨識中涉及到的復雜QR分解計算進行處理,降低了計算復雜度,實現了辨識算法的在線計算。最終將本文提出的子空間在線辨識算法應用到了船舶動力定位系統中,驗證了基于子空間MOESP的在線辨識算法的有效性和適用性,為動力定位系統模型辨識提供了新思路。