船用慣導系統(tǒng)的定位精度很大程度上取決于慣性系統(tǒng)的測量精度,而慣導系統(tǒng)誤差的主要原因是其核心部件——液浮陀螺儀的漂移,例如0.01(°)/h的陀螺漂移將會造成慣導系統(tǒng)1 n mile/h的定位誤差[1]。消除陀螺漂移誤差,主要有兩種途徑:一是提高陀螺儀硬件的精度,即采取各種高精度工藝手段,改進結構設計以滿足高精度的要求。目前,精度最高的液浮陀螺儀的隨機漂移已達到5×10-4(°)/h,但這種單純依靠提高硬件精度的辦法,所需的研制經費相當高,研制周期也相當長;二是利用軟件來提高系統(tǒng)精度,建立準確的陀螺漂移數(shù)學模型,并使用合理的信號處理方法,對陀螺漂移進行實時估計和補償。
液浮陀螺漂移誤差模型通常分為三類:靜態(tài)漂移誤差模型、動態(tài)漂移誤差模型和隨機漂移誤差模型,其中隨機漂移是液浮慣導系統(tǒng)的主要誤差源。建立陀螺隨機漂移模型應用最廣泛的方法是時序分析法。本文基于時序分析理論,按照傳統(tǒng)時序分析的方法與步驟,利用實測的陀螺漂移數(shù)據(jù)建立液浮陀螺隨機漂移誤差模型,并在建模過程中直接調用Matlab自帶函數(shù),避免了復雜的編程,大大減少了工作量,提高了建模效率。
Matlab( Matrix Laboratory)是美國Math work公司推出的集數(shù)值計算、符號運算、圖形處理及程序設計等強大功能于一體的科學計算語言,它將計算、可視化和編程功能集成在非常便于使用的環(huán)境中,是一個交互式的、以矩陣計算為基礎的科學和工程計算軟件。它的功能具有其他計算機語言無法比擬的優(yōu)勢和特點[2]:
Matlab擁有600多個工程中要用到的數(shù)學運算函數(shù),可以方便地實現(xiàn)用戶所需的各種計算功能。目前最新的版本包括一般數(shù)值分析、矩陣運算、數(shù)字信號處理、建模、系統(tǒng)控制與優(yōu)化、動態(tài)仿真、有限元分析等應用程序,可以方便地處理各種應用問題。
Matlab對許多專門的領域都開發(fā)了功能強大的模塊集和工具箱,它們由特定領域的專家開發(fā),用戶可以直接使用而不需要自己編寫代碼。
Matlab是一個開放系統(tǒng),用戶可以方便地看到函數(shù)的源程序,也可以通過M文件方便地開發(fā)自己的程序,甚至創(chuàng)建自己的“庫”。
時間序列分析是對有序的隨機數(shù)據(jù)進行分析研究,根據(jù)系統(tǒng)輸出數(shù)據(jù)來推測系統(tǒng)的內部時性和外部影響,并預測系統(tǒng)的未來狀況。時序分析方法的基本模型是自回歸滑動平均模型(即ARMA模型),ARMA(n,m)模型的一般形式為:
(1)
式中,x(t)為時間序列,m、n為模型階次,φi<1(i=1,2,…,n)為自回歸系數(shù),θi<1(i=1,2,…,m)為滑動平均系數(shù),{ai}(i=1,2,…,N)為白噪聲序列。
如果模型中θi=0,則模型簡化為:
x(t)=φ1x(t-1)+L+φnx(t-n)+at
(2)
上述模型稱為n階自回歸模型AR(n)。如果模型中φi=0,則模型簡化為:
x(t)=at-θ1at-1-θ2at-2-L-θmat-m
(3)
上述模型稱為m階滑動平均模型MA(m)。
液浮陀螺隨機漂移時序建模的內容包括數(shù)據(jù)采集、數(shù)據(jù)檢驗與預處理、模型辨識、模型參數(shù)估計、模型適用性檢驗等問題。將采集的陀螺漂移數(shù)據(jù)導入Matlab工作空間后,應用Matlab對陀螺漂移進行時間序列建模主要包括以下步驟。
數(shù)據(jù)預處理是指在合理地選擇采樣間隔得到大量的測量數(shù)據(jù)之后,對數(shù)據(jù)進行初步的整理和必要的檢驗,以得到零均值平穩(wěn)時間序列,從而滿足時間序列建模的前提要求。
4.1.1野值剔除
在對陀螺漂移數(shù)據(jù)進行測試時,由于外界的環(huán)境干擾或人為的操作失誤,得到的測試數(shù)據(jù)往往存在一定的不真實性,甚至有個別的測試數(shù)據(jù)本身就是錯誤的,由此產生的異點在隨后的時序分析中會帶來極大影響。因此在進行時序分析前,首先要進行剔值、平滑處理。這一步可利用Matlab中的函數(shù)smooth,調用格式為:
y=smooth(x,span,’method’)
(4)
式中,y是平滑x得到的數(shù)據(jù)序列;span表示每次平滑計算所用的數(shù)據(jù)個數(shù),缺省值為5;method表示平滑方法,缺省為滑動平均法。
4.1.2剔除趨勢項
由于實測得到的陀螺漂移序列一般非平穩(wěn),因此在對其進行剔值、平滑處理后,必須進行零均值化、平穩(wěn)化處理,消除或提取趨勢項。Matlab中的detrend函數(shù)用來消除時間序列的線性趨勢,調用格式為:
y=detrend(x)
(5)
式中,y是去除x的線性趨勢項后得到的數(shù)據(jù)組。
如果去除趨勢項后的序列仍為非平穩(wěn)的時間序列,則應進行差分處理,直至得到平穩(wěn)的時間序列。對于一維時間序列,進行差分的最基本的函數(shù)為diff,調用格式為:
y=diff(x,n)
(6)
式中,n是差分階數(shù),缺省為1,y是一階差分的結果。圖1~圖4為數(shù)據(jù)預處理過程中各階段的液浮陀螺漂移曲線。
圖1 原始漂移
圖3 去除線性趨勢漂移
圖4 差分后漂移
模型結構是指模型的類別和階次。實際應用中,液浮陀螺隨機漂移通常采用AR,ARMA模型逼近隨機序列,由于液浮陀螺隨機漂移模型階次都比較低,通常不超過2~3階,因此可以在模型參數(shù)數(shù)目等于3的范圍內尋找適合的模型,并且對于最小實現(xiàn)的線性系統(tǒng),ARMA模型的自回歸階次大于或等于滑動平均部分的階次,故實際需要選擇的只有AR(1),AR(2),AR(3),ARMA(1,1),ARMA(2,1)這5種模型。
參數(shù)估計是指在辨識得到模型類別和階次的基礎上求出模型中自回歸系數(shù)及滑動平均系數(shù)的值。參數(shù)估計中常用最小二乘法、誤差預測估計法、輔助變量法等[3]。
對于AR模型的參數(shù)估計,Matlab中采用函數(shù)ar,調用格式為:
Model=ar(x,n,’approach’)
(7)
式中,x為隨機漂移序列,n為AR模型階次,approach表示采用的方法,有以下幾種[4]:1) ’fb’——前后向;2) ’ls’——最小二乘法;3) ’yw’——Yule-Walker法;4) ’burg’——基于Burg格法;5) ’gl’——幾何格法。
對于ARMA模型的參數(shù)估計,Matlab中采用函數(shù)armax,調用格式為:
Model=armax(x,orders)
(8)
式中,orders=[na,nc],na、nc分別為模型的自回歸系數(shù)和滑動平均系數(shù)。
利用函數(shù)ar,armax求出液浮陀螺隨機漂移模型參數(shù)如表1所示。
表1 各模型參數(shù)
在利用平穩(wěn)時間序列建模方法建立陀螺漂移模型后,為了保證模型是對實測漂移數(shù)據(jù)的最優(yōu)擬合,必須采用相應的方法對模型進行檢驗。模型檢驗主要是測定殘差序列(即原始序列與預測序列之間的誤差序列)是否為隨機序列,以鑒定所建立的模型是否適用。常用的檢驗準則有:白噪聲檢驗準則、殘差平方和檢驗準則、FPE準則、AIC準則等[5]。
Matlab中提供的檢驗模型適用性的函數(shù)有fpe,aic,它們的調用格式分別為:
e=fpe(Mode1)
(9)
aic=aic(Mode1)
(10)
式中,fpe對應FPE準則,用于求解最終預報誤差值;aic對應AIC準則,用于求解赤池信息值。它們采用的計算公式分別為:
fpe=V×(N+d/N-d)
(11)
aic=log(V)+2d/N
(12)
式中,V是模型的損失函數(shù),d是估計參數(shù)個數(shù),N是隨機漂移序列數(shù)據(jù)個數(shù)。
本文的原始數(shù)據(jù)是某液浮陀螺儀漂移實測數(shù)據(jù)。建模主要步驟如下:
1) 輸入原始數(shù)據(jù);
2) 對建模用的原始數(shù)據(jù)進行剔值、零均值化,平穩(wěn)化處理,然后進行分析。用detrend函數(shù)將建模用的原始數(shù)據(jù)實現(xiàn)去趨勢項處理,即零均值化,平穩(wěn)化處理;
3) 利用ar和armax函數(shù)對模型進行參數(shù)估計;
4) 利用函數(shù)ar和armax求出液浮陀螺隨機漂移模型;
5) 利用函數(shù)fpe和aic求出各模型的fpe、aic值(表2)。再比較所得數(shù)據(jù),理論上應選fpe值、aic值均最小的模型。
某液浮陀螺儀漂移的數(shù)據(jù)處理結果和模型辨識結果見圖1~圖4以及表1和表2,最后得到的最優(yōu)模型為ARMA(2,1),即
x(t)-0.911 5x(t-1)-0.119 9x(t-2)
=at-0.974 8at-1
(13)
表2 各模型fpe,aic值
需要注意的是,F(xiàn)PE準則、AIC準則是模型優(yōu)化的一種宏觀度量,不宜機械地以最小值來檢驗模型適用性, 而應該在所對應的模型進行多方比較后,進一步確定模型階次及相應參數(shù),這里不再詳細討論。另外,這里得到的模型是在平穩(wěn)時間序列條件下的最優(yōu)模型,如果要更加準確反映液浮陀螺隨機漂移的實際情況,則應該采用非平穩(wěn)時間序列的建模預測方法。對于非平穩(wěn)時間序列的建模預測方法,不在本文的討論范圍之內。
本文依據(jù)時序分析理論,建立了液浮陀螺儀隨機漂移的平穩(wěn)時間序列模型。通過Matlab在液浮陀螺隨機漂移建模中的應用,避免了傳統(tǒng)編程建模的繁瑣,簡化了建模過程,大大減小了工作量,提高了建模效率。
[1] 頤旅玲,許江寧,卞鴻生.陀螺隨機漂移誤差模型建模方法研究[J].海軍工程大學學報,2000,2(1):80-82.
[2] 武麗花.三浮陀螺儀漂移模型的建立及Matlab實現(xiàn)[J].中國慣性技術學報,2004,12(6):76-78.
[3] 曹鮮花,吳美平,胡小平.Matlab在光纖陀螺隨機漂移建模中的應用[J].航天控制,2007,25(1):18-25.
[4] 張善文,雷杰英,馮有前.Matlab在時間序列分析中的應用[M].西安:西安電子科技大學出版社,2007.
[5] 王振龍.時間序列分析[M].北京:中國統(tǒng)計出版社,2002.