翁震平,顧 民,劉長德
(中國船舶科學(xué)研究中心,江蘇 無錫 214082)
基于二階自適應(yīng)Volterra級數(shù)的船舶運(yùn)動極短期預(yù)報研究
翁震平,顧 民,劉長德
(中國船舶科學(xué)研究中心,江蘇 無錫 214082)
針對隨機(jī)海浪作用下船舶運(yùn)動的非平穩(wěn)、非線性特性,文章提出了基于卡爾曼(Kalman)濾波原理的非線性二階Volterra級數(shù)自適應(yīng)預(yù)報模型。通過把Volterra級數(shù)核向量作為狀態(tài)向量,利用隨機(jī)游動模型建立系統(tǒng)的狀態(tài)方程,一步Volterra級數(shù)預(yù)報模型作為系統(tǒng)的觀測方程,從而進(jìn)一步提高了Volterra級數(shù)模型的核估計的收斂速度。同時驗證了利用AIC準(zhǔn)則對Volterra級數(shù)預(yù)報模型定階的可行性,通過迭代法實現(xiàn)了自適應(yīng)多步預(yù)報。仿真結(jié)果表明文中提出的基于Kalman濾波算法的自適應(yīng)預(yù)報模型應(yīng)用于船舶運(yùn)動極短期預(yù)報是可行的,該方法在理論和工程應(yīng)用方面具有重要的意義。
卡爾曼濾波;二階Volterra級數(shù);AIC準(zhǔn)則;船舶運(yùn)動預(yù)報
船舶在航行過程中,由于受海浪、海風(fēng)等環(huán)境因素影響,不可避免地會產(chǎn)生搖擺,尤其是在惡劣的海況下對船舶的海上作業(yè)會造成很大的隱患。如果能提前幾秒或十幾秒預(yù)報出船舶的運(yùn)動姿態(tài)或其運(yùn)動趨勢,可以為重要設(shè)備的作業(yè)提供指導(dǎo),從而可有效提高作業(yè)安全性,并在特定條件下可改善船舶的耐波性和適航性。
目前,國內(nèi)外對船舶運(yùn)動姿態(tài)建模預(yù)報都非常重視并展開了許多研究。文獻(xiàn)[1]對國內(nèi)外研究現(xiàn)狀進(jìn)行了歸納總結(jié),其中利用時間序列分析法[2-3]對船舶運(yùn)動姿態(tài)進(jìn)行極短期預(yù)報越來越受到重視,這種方法的最大優(yōu)點是無需知道海浪的任何先驗信息和船舶航行姿態(tài)的狀態(tài)方程,僅僅利用歷史數(shù)據(jù)尋求規(guī)律進(jìn)行預(yù)報。這種方法假設(shè)船舶在海浪中的運(yùn)動姿態(tài)為一平穩(wěn)的窄帶隨機(jī)過程,從而利用線性回歸(AR)模型擬合這一過程,但是實際情況下的船舶運(yùn)動是非線性的,文獻(xiàn)[4-7]利用神經(jīng)網(wǎng)絡(luò)進(jìn)行非線性建模取得了一定成效,但對輸入層以及隱層節(jié)點的選取往往通過試湊法,不宜處理時變系統(tǒng),難以做到對海況實時變化的自適應(yīng)。因此本文提出采用非線性二階Volterra級數(shù)預(yù)報模型,結(jié)合AIC準(zhǔn)則實現(xiàn)了船舶運(yùn)動的自適應(yīng)多步預(yù)報。
在非線性自適應(yīng)預(yù)報中,基于Volterra級數(shù)的模型已經(jīng)得到了廣泛的應(yīng)用。Volterra級數(shù)理論之所以具有如此大的吸引力,原因在于它與冪級數(shù)有著天然的密切聯(lián)系和相似之處且具有鮮明的物理意義,為解決非線性實際問題提供了強(qiáng)有力的方法和工具。張家樹、肖先賜等人[8-9]提出了多種非線性自適應(yīng)預(yù)報算法來提高預(yù)報性能。其中歸一化LMS算法[8]和遞推最小二乘(RLS)算法[9-10]應(yīng)用最為廣泛,文獻(xiàn)[8]中歸一化LMS(NLMS)算法的特點是運(yùn)算簡單,無須計算相關(guān)函數(shù),但收斂速度較慢,且在對時間序列遞推過程中,收斂參數(shù)μ的選取不容易掌握,對數(shù)據(jù)的相關(guān)陣特征值分布也比較敏感,不利于實現(xiàn)自適應(yīng)在線預(yù)報。文獻(xiàn)[9-10]遞推最小二乘(RLS)算法能實現(xiàn)快速收斂,該算法旨在使期望輸出信號與模型輸出之差的平方和最小,有效地提高了算法的魯棒性,其收斂速度明顯高于NLMS算法,但RLS算法得到的數(shù)據(jù)自適應(yīng)濾波器是對每一組輸入數(shù)據(jù)而言的,未能體現(xiàn)信息的完整性。本文提出利用自適應(yīng)Kalman濾波算法對Volterra級數(shù)核進(jìn)行估計,并結(jié)合AIC準(zhǔn)則實現(xiàn)了自適應(yīng)船舶運(yùn)動極短期預(yù)報,自適應(yīng)Kalman濾波算法的特點類似于RLS算法,但Kalman濾波算法是從總體平均導(dǎo)出的在均方意義上最優(yōu)的濾波器,且其收斂速度更快,對數(shù)據(jù)相關(guān)陣的特征值分布具有魯棒性,能較好地實現(xiàn)多步預(yù)報。
設(shè)非線性離散動力系統(tǒng)的輸入為XT(n)={x( n- 1 ),x( n- 2 ),…,x( n- p )}(n=p+1,p+2,…,N ),輸出為(n+ 1 ),則非線性系統(tǒng)函數(shù)的Volterra級數(shù)展開式為
式中:p為濾波器長度,hp(m1,m2,…,mp)為p階Volterra核。
在實際應(yīng)用中,這種無窮級數(shù)展開式難以實現(xiàn),必須采用有限次求和的方式。最常用的是二階截斷求和形式,則用于時間序列預(yù)報的Volterra自適應(yīng)濾波器的形式為
定義Volterra級數(shù)濾波器的狀態(tài)擴(kuò)展的輸入矢量為系數(shù)向量為則(2)式所示非線性Volterra自適應(yīng)濾波器可描述成如圖 1 所示結(jié)構(gòu)。 (2)式由(3)、(4)式可以表示為
圖1 Volterra自適應(yīng)濾波器結(jié)構(gòu)Fig.1 Volterra adaptive filter
假設(shè)所用建模數(shù)據(jù)個數(shù)為N,預(yù)報數(shù)據(jù)的個數(shù)為M。則實時遞推預(yù)報原理如圖2所示。
Step1.利用1~N個數(shù)據(jù)建立模型,預(yù)報未來N+1~N+M個數(shù)據(jù)。
Step2.獲得第N+1個數(shù)據(jù)后,利用2~N+1個數(shù)據(jù)重新建立模型,預(yù)報N+2~N+M+1個數(shù)據(jù)。
此后一直重復(fù)這個過程,即獲得新數(shù)據(jù)后,建模數(shù)據(jù)個數(shù)始終保持為N,預(yù)報未來M個數(shù)據(jù)。
圖2 遞推預(yù)報原理示意圖Fig.2 Recursive prediction principle
實際應(yīng)用中,我們采用AIC準(zhǔn)則[2](Akaike information criterion)來確定模型的階數(shù)。該準(zhǔn)則是一種最佳準(zhǔn)則函數(shù)法,即確定出一個準(zhǔn)則函數(shù),該函數(shù)既要考慮用某一個模型擬和對原始數(shù)據(jù)的接近程度,同時又考慮模型中所含待定參數(shù)的個數(shù),具體算法如下:
設(shè)一個最大階數(shù)M,一般我們?nèi)1=N2,M=N/3(N為建模時所用數(shù)據(jù)個數(shù)),Sp()N 為預(yù)報模型(6)-(8)式的殘差平方和,則
設(shè)以z(t)表示t時刻離散線性系統(tǒng)狀態(tài)m維向量,以y(t)表示t時刻系統(tǒng)n維觀測數(shù)據(jù)向量,則系統(tǒng)的狀態(tài)空間模型如下:
狀態(tài)方程:
觀測方程:
其中,φ( t+ 1 ,t)為系統(tǒng)的m×m維狀態(tài)轉(zhuǎn)移陣,v1(t)為m×1過程噪聲向量,它是零均值的白噪聲過程,v1(t)的相關(guān)矩陣為Q1(t)。c(t)為已知的n×m維觀測矩陣,v2(t)為n×1維觀測噪聲向量,v2(t)的相關(guān)矩陣為Q2(t)。其中v1(t)與v2(t)是統(tǒng)計獨(dú)立的。
新息過程:
Kalman增益:
一步預(yù)報:
狀態(tài)估計:
狀態(tài)濾波誤差相關(guān)陣:
狀態(tài)預(yù)報誤差相關(guān)陣:
利用自適應(yīng)Kalman濾波算法對Volterra級數(shù)核進(jìn)行遞推估計時,因為模型參數(shù)隨時間推移而發(fā)生變化,因此我們把參數(shù)估計過程看作非平穩(wěn)過程,引入過程噪聲v()n,假定Volterra級數(shù)核的狀態(tài)方程是隨機(jī)游動模型[12]:
其中,v(n)是零均值平穩(wěn)隨機(jī)過程,相關(guān)陣為Q(n)=E[v( n ) vT(n)]=qI(q 為標(biāo)量,是 v(n)的方差)。顯然這里的轉(zhuǎn)移矩陣為單位陣。
觀測方程為
其中,U(n)=[1,x(n),x( n- 1 ),…,x( n- p +1),x2(n),x(n) x( n- 1 ),…,x2(n- p +1)]T為量測矩陣,ε(n)均值為零,方差為,其中 {v( n )}和 {ε (n )}相互獨(dú)立。
由(21)式可以看出,觀測方程實際為一步Volterra級數(shù)預(yù)報模型。
設(shè)(20)、(21)式確立的狀態(tài)空間模型中狀態(tài)濾波誤差定義為e(n),狀態(tài)預(yù)報誤差相關(guān)陣為K(n+1,n),則由Kalman濾波算法遞推公式可得:
方程(22)-(26)式構(gòu)成了自適應(yīng)Kalman濾波算法對Volterra級數(shù)核的狀態(tài)估計過程。
則對應(yīng)輸入向量XT(p+ 1 ),XT(p+ 2 ),…,XT(N)的希望輸出為x( p+ 1 ),x( p+ 2 ),…,x(N ) ;對應(yīng)的Volterra級數(shù)的狀態(tài)擴(kuò)展為U(p),U( p+ 1 ),…,U(N)。
基于Kalman濾波算法的Volterra級數(shù)核估計的具體推導(dǎo)過程如下:
令p=1,2,…,M/3;計算t=p,p+2,…,N-1時的
由(27)、(31)式我們可以看到在該算法過程中需預(yù)先假定:
(2) v(t)的方差q。
數(shù)據(jù)預(yù)處理的目的是使時間序列變?yōu)榱憔?,使其變?yōu)榻破椒€(wěn)序列。
本文分別采用浪向為150°和180°工況下的模型試驗數(shù)據(jù)轉(zhuǎn)化為實船后的數(shù)據(jù)進(jìn)行驗證分析,采樣頻率2Hz,建模數(shù)據(jù)個數(shù)為200,采用滑動窗法,連續(xù)遞推預(yù)報次數(shù)為300(即連續(xù)預(yù)報時間長度為150s),并對這300次多步預(yù)報在未來tk=2s,4s,6s,8s時刻的預(yù)報誤差進(jìn)行統(tǒng)計分析。
圖3、圖4分別給出了頂浪狀態(tài)下航速為18kns、24kns的縱搖數(shù)據(jù)在未來tk=6s時刻的預(yù)報曲線與實際曲線比較。
由圖3、圖4可以觀察到,在頂浪狀態(tài)高航速和低航速的縱搖預(yù)報值曲線與實測值曲線都比較接近。由表1可得,對應(yīng)于tk=2s,4s,6s,8s時刻,低航速下的縱搖運(yùn)動預(yù)報精度EPA要高于高航速狀態(tài)下的運(yùn)動預(yù)報精度EPA,且隨著預(yù)報時間的增長,低航速下的縱搖預(yù)報精度明顯高于高航速狀態(tài)下的運(yùn)動預(yù)報精度。
表1 縱搖預(yù)報誤差統(tǒng)計表(頂浪)Tab.1 Prediction errors statistics of pitch motion(head sea)
表示預(yù)報精度,它反映了預(yù)報曲線與真實曲線之間的形狀相似程度。EPA越接近1,表明預(yù)報曲線與實際數(shù)據(jù)曲線相似程度越高。其中,n為預(yù)報的數(shù)據(jù)個數(shù),x(t)、(t)分別為t時刻的真實值與預(yù)報值,(t)、xm(t)分別為n個預(yù)報值和真實值的平均期望;σ、σx分別代表預(yù)報序列和期望序列的標(biāo)準(zhǔn)差。
為進(jìn)一步驗證本文自適應(yīng)預(yù)報模型的可行性,下面利用浪向150°、航速為18kns工況下的橫搖、縱搖數(shù)據(jù)對其進(jìn)一步驗證分析。
對圖5、圖6預(yù)報值曲線與實測值曲線比較以及表2中對橫搖、縱搖誤差統(tǒng)計可以看出,本文方法對該船在浪向150°、航速18kns工況下的橫搖、縱搖數(shù)據(jù)同樣取得了良好的預(yù)報效果??v搖預(yù)報精度EPA要明顯好于橫搖預(yù)報精度EPA。
利用本文方法,以頂浪、航速18kns的船舶運(yùn)動縱搖數(shù)據(jù)考察模型自適應(yīng)性與收斂性。
(1) 自適應(yīng)性
在預(yù)報過程中,本文采用滑動窗法建模,通過引入AIC準(zhǔn)則,結(jié)合Kalman濾波算法,模型根據(jù)輸入數(shù)據(jù)自動定階同時完成Volterra核估計,完全實現(xiàn)了自適應(yīng)建模與預(yù)報。隨著新數(shù)據(jù)的到來,模型階數(shù)與參數(shù)自適應(yīng)變化,使得一步預(yù)報模型始終保持最佳,從而極大地保證了預(yù)報精度。
表2 橫搖、縱搖誤差統(tǒng)計表(浪向150°,航速18kns)Tab.2 Prediction errors statistics on pitch motion and roll motion(wave direction 150°,forward speed 18kns)
(2) 收斂性
由圖7可以得出,對于連續(xù)300次滑動建模預(yù)報,利用AIC準(zhǔn)則對每次建模進(jìn)行定階,模型階數(shù)變動較大,因此,需要對每次建模進(jìn)行重新定階。圖8-10分別為利用第11-210個采樣點、第151-250個采樣點、第221-420個采樣點建模時的Volterra核收斂曲線,通過圖7可以得出,對應(yīng)于這三次建模的階數(shù)分別為3、6、7,其核向量收斂曲線分別如圖8-10所示。
圖8中h1(0),h1(1),h1(2)所示曲線為Volterra級數(shù)模型中對應(yīng)一次項的核收斂曲線,其余為二次項對應(yīng)核收斂曲線,從圖8中可以看出,在建模過程中一次項核起主要作用,二次項基本趨于零,當(dāng)?shù)螖?shù)為200時,Volterra核趨于收斂。圖9、圖10只畫出了一次項核收斂曲線,同理也可以看出當(dāng)?shù)螖?shù)為200時,Volterra核趨于收斂,因此驗證了本文選取建模數(shù)據(jù)為200是可行的。
本文基于二階Volterra級數(shù)模型,提出了利用Kalman濾波算法對Volterra級數(shù)核估計的一種新的辨識方法,并將其應(yīng)用到船舶運(yùn)動極短期預(yù)報當(dāng)中,得出了以下結(jié)論:
(1)在頂浪狀態(tài)下高航速和低航速的縱搖預(yù)報效果都比較理想,但低航速下的縱搖運(yùn)動預(yù)報精度要高于高航速狀態(tài)下的縱搖運(yùn)動預(yù)報精度;斜浪狀態(tài)下的縱搖運(yùn)動預(yù)報效果明顯好于橫搖運(yùn)動預(yù)報效果。
(2)利用AIC準(zhǔn)則對非線性Volterra級數(shù)定階是可行的。通過采用滑動窗法與迭代法,實現(xiàn)了船舶運(yùn)動自適應(yīng)多步預(yù)報。
(3)通過Volterra核收斂曲線驗證了Kalman濾波算法的快速收斂性,同時通過收斂性能驗證了所選建模數(shù)據(jù)個數(shù)的可行性,并作為建模數(shù)據(jù)個數(shù)選取的規(guī)范,從而在Volterra核估計中,避免了不必要的計算,同時又保證了預(yù)報精度,為今后實時在線預(yù)報提供了可行性依據(jù)。
[1]趙希人,彭秀艷.艦船運(yùn)動極短期預(yù)報建模的研究現(xiàn)狀[J].船舶工程,2002(3):4-8.
[2]彭秀艷,趙希人,魏納新等.大型艦船姿態(tài)運(yùn)動極短期預(yù)報的一種AR算法[J].船舶工程,2001(5):6-8.
[3]彭秀艷,趙希人,高奇峰.船舶姿態(tài)運(yùn)動實時預(yù)報算法研究[J].系統(tǒng)仿真學(xué)報,2007(1):267-269.
[4]徐 培,金鴻章,王科俊等.一種新型的船舶橫搖運(yùn)動實時預(yù)報方法[J].中國造船,2002,43(1):71-73.
[5]謝美萍,趙希人.基于小波網(wǎng)的船舶運(yùn)動極短期建模預(yù)報[J].船舶力學(xué),2002,6(2):16-20.
[6]Richards R A.Application of multipl artificial intelligence techniques for an aircraft carrier landing decision support tool[C].IEEE International Conference on Plasma Science,2002,1:7-11.
[7]Shen Yan,Xie Meiping.The extreme short prediction of ship pitch based on diagonal recurrent neural network[J].Journal of Marine Science and Application,2005,4(2):56-60.
[8]張家樹,肖先賜.用于混沌時間序列的Volterra自適應(yīng)預(yù)測[J].物理學(xué)報,2000,49(3):403-408.
[9]張家樹,肖先賜.用于混沌時間序列自適應(yīng)預(yù)測的一種少參數(shù)二階Volterra濾波器[J].物理學(xué)報,2001,50(07):1248-1254.
[10]孔祥玉,韓崇昭,馬紅光等.一種總體最小二乘算法及在Volterra濾波器中的應(yīng)用[J].西安交通大學(xué)學(xué)報,2004,38(4):340-342.
[11]Altunkaynak A.Adaptive estimation of wave parameters by Geno-Kalman filtering[J].Ocean Engineering(2008),doi:10.1016/j.oceaneng.2008.03.010:1-7.
[12]Louka P,Galanis G,Siebert N,et al.Improvements in wind speed forecasts for wind power prediction purposes using Kalman filtering[J].Wind Eng Ind.Aero-dyn.(2008).doi.:10.1016/j.jwe-ia.2008.03.013:5-15.
Extreme short-term prediction of ship motion based on second-order adaptive Volterra series
WENG Zhen-ping,GU Min,LIU Chang-de
(China Ship Scientific Research Center,Wuxi 214082,China)
Aiming at non-stationary and non-linear nature of the ship motion,the application of Kalman filtering in non-linear second-order Volterra series model is proposed.The system’s state space model is established by taking the Volterra series kernals vector as the state vector,the observation equation can be obtained by Volterra series model.Then the convergence rate is improved further and carried out adaptive ship motion prediction combining AIC criterion.The multi-step simulation results obtained show that non-linear second-order Volterra series model based Kalman filtering is feasible in the predicting skill.The approach has vital significance in the theory and the engineering application.
Kalman filtering;second-order Volterra series;AIC criterion;ship motion prediction
U661.32
A
1007-7294(2010)07-0732-09
2010-05-05
翁震平(1958-),男,博士生,中國船舶科學(xué)研究中心研究員。