呂幫俊,黃斌,彭利坤
海軍工程大學(xué) 動力工程學(xué)院,湖北 武漢 430033
潛艇(或水下航行器)的高精度數(shù)學(xué)模型對其設(shè)計和性能預(yù)報起著至關(guān)重要的作用。目前,進行潛艇運動性能計算、運動規(guī)律預(yù)報或是自動操艇控制器設(shè)計,大都依賴于Gertler等[1]或是Feldman等[2]基于潛艇水動力泰勒展開推導(dǎo)得到的六自由度空間運動模型,以及由此簡化得到的潛艇平面(水平面或垂直面)運動模型。而要精確獲取上述模型方程中的各項水動力系數(shù)是建模的關(guān)鍵因素,但也是方程中最難以確定的,故系數(shù)精確與否將顯著影響潛艇的性能計算和運動預(yù)報精度。
目前,確定上述模型的水動力系數(shù)有3種常用方法[3]。第1種是約束船模試驗方法,通過定制潛艇的幾何縮比模型,并開展拖曳水池、懸臂水池或者平面運動機構(gòu)等水動力試驗來獲取。這是工程中最常用及經(jīng)過實踐檢驗后最實用和準(zhǔn)確的一種方法,其不足之處是周期長、經(jīng)費投入巨大,且試驗中存在尺度效應(yīng),應(yīng)用時需處理實船與船模的相關(guān)性,導(dǎo)致該試驗方法的應(yīng)用受到限制。第2種是理論計算方法,例如小展弦比理論、細長體理論等。由于流場的復(fù)雜性、流體黏性以及受到各種界面的影響,計算時必須進行一定的假設(shè)。這樣做雖然方便了計算,卻使得計算結(jié)果不盡如人意,導(dǎo)致理論結(jié)果難以滿足工程要求。第3種是計算流體力學(xué)(CFD)方法,即建立三維操縱性數(shù)值水池,通過模擬開展水動力試驗來獲取潛艇的水動力系數(shù)。該方法相對于船模水動力試驗方法較容易實現(xiàn),但計算結(jié)果的精度受仿真邊界條件、物性參數(shù)定義、網(wǎng)格劃分等因素的影響較大,計算結(jié)果仍需通過水動力試驗來驗證。
近年來,系統(tǒng)辨識(system identification,SI)技術(shù)的發(fā)展為水動力系數(shù)的確定提供了新的方法[4-5]。按照一定的機動方式,在采集實船或船模航行試驗的實測數(shù)據(jù)后,通過滑模觀測器(sliding mode observer,SMO)[6]、卡爾曼濾波(Kalman filter,KF)[7]、序列二次規(guī)劃(sequential quadratic programming,SQP)[8]、貝葉斯規(guī)則[9]等算法,可將建模所需的水動力系數(shù)準(zhǔn)確提取出來。其中,KF是一種非常有效的系統(tǒng)狀態(tài)預(yù)測及參數(shù)辨識算法,已在眾多領(lǐng)域的模型參數(shù)識別領(lǐng)域得到有效應(yīng)用[10-13],成為近來研究的重點。為解決傳統(tǒng)KF算法無法應(yīng)用于非線性系統(tǒng)濾波的問題,提出了擴展卡爾曼濾波(extended Kalman filter,EKF)方法,并成為水下航行器模型參數(shù)識別方面應(yīng)用最廣泛的算法之一[5-6,13]。EKF算法的本質(zhì)是將非線性方程局部線性化,以使得傳統(tǒng)的KF算法能夠繼續(xù)適用,但該算法存在精度不高、穩(wěn)定性差等缺陷。而基于無跡變換提出的無跡卡爾曼濾波(unscented Kalman filter,UKF)算法是通過設(shè)計Sigma點來近似表示n維目標(biāo)采樣點,并直接經(jīng)由非線性函數(shù)的傳播來獲得更新后的濾波值,有效地克服了EKF算法的缺陷,計算精度較高。Van Der Merwe等[14]對UKF算法進行優(yōu)化,解決了由誤差和噪聲等因素引起的誤差協(xié)方差矩陣非正定性甚至是計算發(fā)散的問題,提出的平方根無跡卡爾曼濾波(SR-UKF)算法已逐步應(yīng)用于水下航行器數(shù)學(xué)模型未知參數(shù)識別[15]。SR-UKF算法利用協(xié)方差平方根代替協(xié)方差參加遞推運算,保證了濾波算法的數(shù)值穩(wěn)定性,能提高跟蹤的精度和可靠性。嘗試應(yīng)用SR-UKF算法辨識潛艇水動力系數(shù),探索新的系統(tǒng)識別技術(shù)在未知參數(shù)識別方面的潛力,對于精確建立潛艇操縱運動數(shù)學(xué)模型并準(zhǔn)確預(yù)報潛艇的運動和性能具有重要意義。

采用國際拖曳水池會議(ITTC)推薦的和美國造船與輪機工程學(xué)會(SNAME)術(shù)語公報的體系[16],對Gertler等[1]發(fā)表的用于描述潛艇空間運動的方程進行如下假設(shè):
1) 潛艇在水平方向受到的力和力矩平衡,忽略水平方向運動對操縱的影響;
2) 潛艇在垂直面內(nèi)作弱機動,即垂向速度w、俯仰角速度q、艏舵角δb和艉舵角δs等運動參數(shù)為小量;
3) 認為潛艇航速u=u0保持不變,可忽略X方程。
得到潛艇垂直面操縱運動數(shù)學(xué)模型為:


圖 1 描述潛艇垂直面運動的坐標(biāo)系和主要參數(shù)Fig.1 The coordinate system and main parameters for describing submarine motion in the vertical plane
將式(1)~式(4)改寫成矩陣形式以便積分求解。

式中:x=[ζ,θ,w,q]T,為狀態(tài)變量;u=[δb,δs]T,為控制輸入;

其中,

SR-UKF算法用于參數(shù)估計時,一般可分為3個基本步驟[14]循環(huán)迭代,直至收斂到固定值。
當(dāng)?shù)螖?shù)k=0時,


采 用k-1步的 均 值w?k-1和 協(xié)方 差 矩陣Swk-1構(gòu)造Sigma點,預(yù)測下一步的系統(tǒng)狀態(tài)均值和方差。

Sigma點權(quán)值:

式(11)需要采用離散方程的形式估算2np+1個Sigma點的非線性函數(shù)值,可將式(5)寫成

式(15)給出的微分方程通常可采用四階龍格-庫塔積分算法進行積分,設(shè)積分步長為 Δt:

式中:b1=F(xk,w,uk)Δt;b2=F(xk+0.5b1,w,uk)Δt;b3=F(xk+0.5b2,w,uk)Δt;b4=F(xk+b3,w,uk)Δt。

式中: qr(·)為進行矩陣的QR分解; cholupdate(·)為進行矩陣喬列斯基分解因子更新;Re為測量誤差協(xié)方差矩陣;dk為觀測向量,對于潛艇的垂直面運動,可取dk=[θk,wk,qk]T,也即采用潛艇的縱傾角、垂向速度以及縱傾角速度作為測量值。
采用SR-UKF算法辨識參數(shù)時,為得到觀測向量dk,實艇一般采用多普勒儀(DVL)、陀螺儀或是姿態(tài)航向參考系統(tǒng)(AHRS)來采集潛艇的運動參數(shù),以用于水動力系數(shù)估計[17]。因僅研究算法的可行性,故只采用數(shù)值仿真方法得到所需的運動參數(shù),并加入一定的測量噪聲來模擬實際傳感器的測量值。此外,為使所有水動力系數(shù)都能得到有效辨識,必須設(shè)計一種潛艇機動模式,用以激發(fā)所有的水動力分量。本文設(shè)計自動操舵控制算法來使?jié)撏г诖怪泵娌捎媒普业牟倏v運動規(guī)律,初始航速取為6 kn,參數(shù)隨時間變化的情況如圖2所示。為避免機動過程的規(guī)律性太強而導(dǎo)致辨識結(jié)果不收斂,2 500 s之后通過艏舵控制放緩深度變化頻率,同時增大深度變化范圍。

圖 2 潛艇在垂直面的機動形式Fig.2 Submarine manoeuvring in the vertical plane


表 1 無因次水動力系數(shù)測定值Table 1 Dimensionless hydrodynamic coefficients measured values
當(dāng)初值w0均為0時,6個水動力系數(shù)隨時間的收斂情況如圖3所示。從中可以看出,算法經(jīng)過約3 000 s后,所有的水動力系數(shù)均逐漸收斂為一個常數(shù)。將各系數(shù)辨識結(jié)果與表1中的水動力試驗測定標(biāo)準(zhǔn)值進行比較,誤差百分比(|辨識值-真實值|/真實值×100%)如表2所示。表中所列水動力系數(shù)除了M0′的誤差達到了1.5%以外,其余水動力系數(shù)的辨識誤差均在1%以內(nèi)。此外,當(dāng)水動力系數(shù)初值w0取[0,1]區(qū)間內(nèi)的隨機數(shù)時,仿真辨識也可得到如圖3中所示的類似收斂曲線,此處不再重復(fù)列舉。表中誤差最大的仍然是M0′,約達37%,其他參數(shù)辨識的最大誤差均在3%以內(nèi)。其主要原因是,M0′的水動力試驗測定值本身非常小,僅 2×10-5,所以即使是很小的絕對誤差,也會引起較大的誤差百分比。

圖 3 SR-UKF算法的辨識結(jié)果Fig.3 Identification results by SR-UKF

表 2 無因次水動力系數(shù)辨識誤差Table 2 Dimensionless hydrodynamic coefficients identification errors


圖 4 RLS算法的辨識結(jié)果Fig.4 Identification results by RLS
本文將SR-UKF算法應(yīng)用到了潛艇垂直面黏性類水動力系數(shù)識別中,該算法直接采用非線性系統(tǒng)的狀態(tài)方差矩陣和噪聲方差矩陣的平方根進行遞推與估算,有效避免了采用傳統(tǒng)UKF算法進行參數(shù)辨識時因參數(shù)設(shè)置不合理而導(dǎo)致的噪聲方差矩陣非正定性等問題。該算法運行穩(wěn)定,當(dāng)待辨識參數(shù)選取合適的初始值時,采用潛艇的垂向速度、縱傾角和縱傾角速度仿真數(shù)據(jù)作為測量輸入進行參數(shù)辨識最大誤差僅1.5%,完全能夠滿足工程實際要求,并可以作為一種有效的水動力系數(shù)識別方法用于實船的水動力系數(shù)識別。