船用慣導(dǎo)系統(tǒng)的定位精度很大程度上取決于慣性系統(tǒng)的測(cè)量精度,而慣導(dǎo)系統(tǒng)誤差的主要原因是其核心部件——液浮陀螺儀的漂移,例如0.01(°)/h的陀螺漂移將會(huì)造成慣導(dǎo)系統(tǒng)1 n mile/h的定位誤差[1]。消除陀螺漂移誤差,主要有兩種途徑:一是提高陀螺儀硬件的精度,即采取各種高精度工藝手段,改進(jìn)結(jié)構(gòu)設(shè)計(jì)以滿(mǎn)足高精度的要求。目前,精度最高的液浮陀螺儀的隨機(jī)漂移已達(dá)到5×10-4(°)/h,但這種單純依靠提高硬件精度的辦法,所需的研制經(jīng)費(fèi)相當(dāng)高,研制周期也相當(dāng)長(zhǎng);二是利用軟件來(lái)提高系統(tǒng)精度,建立準(zhǔn)確的陀螺漂移數(shù)學(xué)模型,并使用合理的信號(hào)處理方法,對(duì)陀螺漂移進(jìn)行實(shí)時(shí)估計(jì)和補(bǔ)償。
液浮陀螺漂移誤差模型通常分為三類(lèi):靜態(tài)漂移誤差模型、動(dòng)態(tài)漂移誤差模型和隨機(jī)漂移誤差模型,其中隨機(jī)漂移是液浮慣導(dǎo)系統(tǒng)的主要誤差源。建立陀螺隨機(jī)漂移模型應(yīng)用最廣泛的方法是時(shí)序分析法。本文基于時(shí)序分析理論,按照傳統(tǒng)時(shí)序分析的方法與步驟,利用實(shí)測(cè)的陀螺漂移數(shù)據(jù)建立液浮陀螺隨機(jī)漂移誤差模型,并在建模過(guò)程中直接調(diào)用Matlab自帶函數(shù),避免了復(fù)雜的編程,大大減少了工作量,提高了建模效率。
Matlab( Matrix Laboratory)是美國(guó)Math work公司推出的集數(shù)值計(jì)算、符號(hào)運(yùn)算、圖形處理及程序設(shè)計(jì)等強(qiáng)大功能于一體的科學(xué)計(jì)算語(yǔ)言,它將計(jì)算、可視化和編程功能集成在非常便于使用的環(huán)境中,是一個(gè)交互式的、以矩陣計(jì)算為基礎(chǔ)的科學(xué)和工程計(jì)算軟件。它的功能具有其他計(jì)算機(jī)語(yǔ)言無(wú)法比擬的優(yōu)勢(shì)和特點(diǎn)[2]:
Matlab擁有600多個(gè)工程中要用到的數(shù)學(xué)運(yùn)算函數(shù),可以方便地實(shí)現(xiàn)用戶(hù)所需的各種計(jì)算功能。目前最新的版本包括一般數(shù)值分析、矩陣運(yùn)算、數(shù)字信號(hào)處理、建模、系統(tǒng)控制與優(yōu)化、動(dòng)態(tài)仿真、有限元分析等應(yīng)用程序,可以方便地處理各種應(yīng)用問(wèn)題。
Matlab對(duì)許多專(zhuān)門(mén)的領(lǐng)域都開(kāi)發(fā)了功能強(qiáng)大的模塊集和工具箱,它們由特定領(lǐng)域的專(zhuān)家開(kāi)發(fā),用戶(hù)可以直接使用而不需要自己編寫(xiě)代碼。
Matlab是一個(gè)開(kāi)放系統(tǒng),用戶(hù)可以方便地看到函數(shù)的源程序,也可以通過(guò)M文件方便地開(kāi)發(fā)自己的程序,甚至創(chuàng)建自己的“庫(kù)”。
時(shí)間序列分析是對(duì)有序的隨機(jī)數(shù)據(jù)進(jìn)行分析研究,根據(jù)系統(tǒng)輸出數(shù)據(jù)來(lái)推測(cè)系統(tǒng)的內(nèi)部時(shí)性和外部影響,并預(yù)測(cè)系統(tǒng)的未來(lái)狀況。時(shí)序分析方法的基本模型是自回歸滑動(dòng)平均模型(即ARMA模型),ARMA(n,m)模型的一般形式為:
(1)
式中,x(t)為時(shí)間序列,m、n為模型階次,φi<1(i=1,2,…,n)為自回歸系數(shù),θi<1(i=1,2,…,m)為滑動(dòng)平均系數(shù),{ai}(i=1,2,…,N)為白噪聲序列。
如果模型中θi=0,則模型簡(jiǎn)化為:
x(t)=φ1x(t-1)+L+φnx(t-n)+at
(2)
上述模型稱(chēng)為n階自回歸模型AR(n)。如果模型中φi=0,則模型簡(jiǎn)化為:
x(t)=at-θ1at-1-θ2at-2-L-θmat-m
(3)
上述模型稱(chēng)為m階滑動(dòng)平均模型MA(m)。
液浮陀螺隨機(jī)漂移時(shí)序建模的內(nèi)容包括數(shù)據(jù)采集、數(shù)據(jù)檢驗(yàn)與預(yù)處理、模型辨識(shí)、模型參數(shù)估計(jì)、模型適用性檢驗(yàn)等問(wèn)題。將采集的陀螺漂移數(shù)據(jù)導(dǎo)入Matlab工作空間后,應(yīng)用Matlab對(duì)陀螺漂移進(jìn)行時(shí)間序列建模主要包括以下步驟。
數(shù)據(jù)預(yù)處理是指在合理地選擇采樣間隔得到大量的測(cè)量數(shù)據(jù)之后,對(duì)數(shù)據(jù)進(jìn)行初步的整理和必要的檢驗(yàn),以得到零均值平穩(wěn)時(shí)間序列,從而滿(mǎn)足時(shí)間序列建模的前提要求。
4.1.1野值剔除
在對(duì)陀螺漂移數(shù)據(jù)進(jìn)行測(cè)試時(shí),由于外界的環(huán)境干擾或人為的操作失誤,得到的測(cè)試數(shù)據(jù)往往存在一定的不真實(shí)性,甚至有個(gè)別的測(cè)試數(shù)據(jù)本身就是錯(cuò)誤的,由此產(chǎn)生的異點(diǎn)在隨后的時(shí)序分析中會(huì)帶來(lái)極大影響。因此在進(jìn)行時(shí)序分析前,首先要進(jìn)行剔值、平滑處理。這一步可利用Matlab中的函數(shù)smooth,調(diào)用格式為:
y=smooth(x,span,’method’)
(4)
式中,y是平滑x得到的數(shù)據(jù)序列;span表示每次平滑計(jì)算所用的數(shù)據(jù)個(gè)數(shù),缺省值為5;method表示平滑方法,缺省為滑動(dòng)平均法。
4.1.2剔除趨勢(shì)項(xiàng)
由于實(shí)測(cè)得到的陀螺漂移序列一般非平穩(wěn),因此在對(duì)其進(jìn)行剔值、平滑處理后,必須進(jìn)行零均值化、平穩(wěn)化處理,消除或提取趨勢(shì)項(xiàng)。Matlab中的detrend函數(shù)用來(lái)消除時(shí)間序列的線(xiàn)性趨勢(shì),調(diào)用格式為:
y=detrend(x)
(5)
式中,y是去除x的線(xiàn)性趨勢(shì)項(xiàng)后得到的數(shù)據(jù)組。
如果去除趨勢(shì)項(xiàng)后的序列仍為非平穩(wěn)的時(shí)間序列,則應(yīng)進(jìn)行差分處理,直至得到平穩(wěn)的時(shí)間序列。對(duì)于一維時(shí)間序列,進(jìn)行差分的最基本的函數(shù)為diff,調(diào)用格式為:
y=diff(x,n)
(6)
式中,n是差分階數(shù),缺省為1,y是一階差分的結(jié)果。圖1~圖4為數(shù)據(jù)預(yù)處理過(guò)程中各階段的液浮陀螺漂移曲線(xiàn)。

圖1 原始漂移

圖3 去除線(xiàn)性趨勢(shì)漂移

圖4 差分后漂移
模型結(jié)構(gòu)是指模型的類(lèi)別和階次。實(shí)際應(yīng)用中,液浮陀螺隨機(jī)漂移通常采用AR,ARMA模型逼近隨機(jī)序列,由于液浮陀螺隨機(jī)漂移模型階次都比較低,通常不超過(guò)2~3階,因此可以在模型參數(shù)數(shù)目等于3的范圍內(nèi)尋找適合的模型,并且對(duì)于最小實(shí)現(xiàn)的線(xiàn)性系統(tǒng),ARMA模型的自回歸階次大于或等于滑動(dòng)平均部分的階次,故實(shí)際需要選擇的只有AR(1),AR(2),AR(3),ARMA(1,1),ARMA(2,1)這5種模型。
參數(shù)估計(jì)是指在辨識(shí)得到模型類(lèi)別和階次的基礎(chǔ)上求出模型中自回歸系數(shù)及滑動(dòng)平均系數(shù)的值。參數(shù)估計(jì)中常用最小二乘法、誤差預(yù)測(cè)估計(jì)法、輔助變量法等[3]。
對(duì)于AR模型的參數(shù)估計(jì),Matlab中采用函數(shù)ar,調(diào)用格式為:
Model=ar(x,n,’approach’)
(7)
式中,x為隨機(jī)漂移序列,n為AR模型階次,approach表示采用的方法,有以下幾種[4]:1) ’fb’——前后向;2) ’ls’——最小二乘法;3) ’yw’——Yule-Walker法;4) ’burg’——基于Burg格法;5) ’gl’——幾何格法。
對(duì)于ARMA模型的參數(shù)估計(jì),Matlab中采用函數(shù)armax,調(diào)用格式為:
Model=armax(x,orders)
(8)
式中,orders=[na,nc],na、nc分別為模型的自回歸系數(shù)和滑動(dòng)平均系數(shù)。
利用函數(shù)ar,armax求出液浮陀螺隨機(jī)漂移模型參數(shù)如表1所示。

表1 各模型參數(shù)
在利用平穩(wěn)時(shí)間序列建模方法建立陀螺漂移模型后,為了保證模型是對(duì)實(shí)測(cè)漂移數(shù)據(jù)的最優(yōu)擬合,必須采用相應(yīng)的方法對(duì)模型進(jìn)行檢驗(yàn)。模型檢驗(yàn)主要是測(cè)定殘差序列(即原始序列與預(yù)測(cè)序列之間的誤差序列)是否為隨機(jī)序列,以鑒定所建立的模型是否適用。常用的檢驗(yàn)準(zhǔn)則有:白噪聲檢驗(yàn)準(zhǔn)則、殘差平方和檢驗(yàn)準(zhǔn)則、FPE準(zhǔn)則、AIC準(zhǔn)則等[5]。
Matlab中提供的檢驗(yàn)?zāi)P瓦m用性的函數(shù)有fpe,aic,它們的調(diào)用格式分別為:
e=fpe(Mode1)
(9)
aic=aic(Mode1)
(10)
式中,fpe對(duì)應(yīng)FPE準(zhǔn)則,用于求解最終預(yù)報(bào)誤差值;aic對(duì)應(yīng)AIC準(zhǔn)則,用于求解赤池信息值。它們采用的計(jì)算公式分別為:
fpe=V×(N+d/N-d)
(11)
aic=log(V)+2d/N
(12)
式中,V是模型的損失函數(shù),d是估計(jì)參數(shù)個(gè)數(shù),N是隨機(jī)漂移序列數(shù)據(jù)個(gè)數(shù)。
本文的原始數(shù)據(jù)是某液浮陀螺儀漂移實(shí)測(cè)數(shù)據(jù)。建模主要步驟如下:
1) 輸入原始數(shù)據(jù);
2) 對(duì)建模用的原始數(shù)據(jù)進(jìn)行剔值、零均值化,平穩(wěn)化處理,然后進(jìn)行分析。用detrend函數(shù)將建模用的原始數(shù)據(jù)實(shí)現(xiàn)去趨勢(shì)項(xiàng)處理,即零均值化,平穩(wěn)化處理;
3) 利用ar和armax函數(shù)對(duì)模型進(jìn)行參數(shù)估計(jì);
4) 利用函數(shù)ar和armax求出液浮陀螺隨機(jī)漂移模型;
5) 利用函數(shù)fpe和aic求出各模型的fpe、aic值(表2)。再比較所得數(shù)據(jù),理論上應(yīng)選fpe值、aic值均最小的模型。
某液浮陀螺儀漂移的數(shù)據(jù)處理結(jié)果和模型辨識(shí)結(jié)果見(jiàn)圖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準(zhǔn)則、AIC準(zhǔn)則是模型優(yōu)化的一種宏觀度量,不宜機(jī)械地以最小值來(lái)檢驗(yàn)?zāi)P瓦m用性, 而應(yīng)該在所對(duì)應(yīng)的模型進(jìn)行多方比較后,進(jìn)一步確定模型階次及相應(yīng)參數(shù),這里不再詳細(xì)討論。另外,這里得到的模型是在平穩(wěn)時(shí)間序列條件下的最優(yōu)模型,如果要更加準(zhǔn)確反映液浮陀螺隨機(jī)漂移的實(shí)際情況,則應(yīng)該采用非平穩(wěn)時(shí)間序列的建模預(yù)測(cè)方法。對(duì)于非平穩(wěn)時(shí)間序列的建模預(yù)測(cè)方法,不在本文的討論范圍之內(nèi)。
本文依據(jù)時(shí)序分析理論,建立了液浮陀螺儀隨機(jī)漂移的平穩(wěn)時(shí)間序列模型。通過(guò)Matlab在液浮陀螺隨機(jī)漂移建模中的應(yīng)用,避免了傳統(tǒng)編程建模的繁瑣,簡(jiǎn)化了建模過(guò)程,大大減小了工作量,提高了建模效率。
[1] 頤旅玲,許江寧,卞鴻生.陀螺隨機(jī)漂移誤差模型建模方法研究[J].海軍工程大學(xué)學(xué)報(bào),2000,2(1):80-82.
[2] 武麗花.三浮陀螺儀漂移模型的建立及Matlab實(shí)現(xiàn)[J].中國(guó)慣性技術(shù)學(xué)報(bào),2004,12(6):76-78.
[3] 曹鮮花,吳美平,胡小平.Matlab在光纖陀螺隨機(jī)漂移建模中的應(yīng)用[J].航天控制,2007,25(1):18-25.
[4] 張善文,雷杰英,馮有前.Matlab在時(shí)間序列分析中的應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.
[5] 王振龍.時(shí)間序列分析[M].北京:中國(guó)統(tǒng)計(jì)出版社,2002.