高彥釗,章衛(wèi)國,郭 鑫,黃 海2,劉小雄
(1.西北工業(yè)大學(xué) 自動化學(xué)院, 西安 710072;2.中國船舶重工集團(tuán)公司第七〇五研究所,西安 710000)
捷聯(lián)慣性導(dǎo)航系統(tǒng)(strapdown inertial navigation system, SINS)是一種被廣泛應(yīng)用于無人機(jī)制導(dǎo)、水下導(dǎo)航等領(lǐng)域的自主式導(dǎo)航系統(tǒng),具有體積小、結(jié)構(gòu)簡單、成本低等優(yōu)點(diǎn)。在此基礎(chǔ)上,引入全球定位系統(tǒng)(global positioning system, GPS)的位置信息、速度信息作為觀測量,使用卡爾曼濾波器作為數(shù)據(jù)融合算法,使兩者形成優(yōu)勢互補(bǔ),便可克服單一SINS的誤差會隨時(shí)間積累的缺點(diǎn),即為目前應(yīng)用最為廣泛的GPS/SINS組合導(dǎo)航系統(tǒng)。
目前國內(nèi)外在旋翼無人機(jī)組合導(dǎo)航系統(tǒng)上使用的數(shù)據(jù)融合算法主要是擴(kuò)展卡爾曼濾波算法(extend kalman filter, EKF)。文獻(xiàn)[1]用松組合與常規(guī)卡爾曼濾波的方式,進(jìn)行組合導(dǎo)航解算。文獻(xiàn)[2]針對多旋翼無人機(jī)自身的特性,為了改善組合導(dǎo)航系統(tǒng)的解算效果,在擴(kuò)展卡爾曼濾波的基礎(chǔ)上,提出使用序貫處理、自適應(yīng)濾波以及強(qiáng)跟蹤濾波等一系列改進(jìn)算法。
傳統(tǒng)的擴(kuò)展卡爾曼濾波算法的系統(tǒng)噪聲協(xié)方差矩陣和量測噪聲協(xié)方差矩陣均設(shè)定為常值,但是相對的,實(shí)際中系統(tǒng)的噪聲是隨機(jī)的,因此會產(chǎn)生濾波誤差。系統(tǒng)模型的準(zhǔn)確與否能夠?qū)U(kuò)展卡爾曼濾波算法的精確性產(chǎn)生深遠(yuǎn)的影響,但是在實(shí)際系統(tǒng)的建立過程中,有目的的近似和簡化無法避免,導(dǎo)致模型沒有包含足夠的系統(tǒng)真實(shí)特征的信息,進(jìn)而對最終濾波結(jié)果產(chǎn)生影響。
自適應(yīng)漸消卡爾曼濾波(adaptive fading kalmanfilter, AFKF)就是為了解決常規(guī)的擴(kuò)展卡爾曼濾波系統(tǒng)模型不準(zhǔn)確的問題而被提出的。該方法通過實(shí)時(shí)計(jì)算遺忘因子,不斷調(diào)整系統(tǒng)的協(xié)方差陣,削減過去的數(shù)據(jù)權(quán)重,以此限制卡爾曼濾波器的“記憶”,即模型誤差累積。
國內(nèi)外一些學(xué)者已經(jīng)在自適應(yīng)漸消卡爾曼濾波領(lǐng)域做了很多的研究工作。文獻(xiàn)[3]提出了加入自適應(yīng)遺忘因子對系統(tǒng)模型進(jìn)行實(shí)時(shí)調(diào)整的方法,并且深入研究了3種求取最佳遺忘因子的算法;文獻(xiàn)[8]針對上述方法進(jìn)行了分析研究,對其直接對協(xié)方差陣進(jìn)行加權(quán)漸消的處理存在合理性提出了質(zhì)疑;文獻(xiàn)[4]針對文獻(xiàn)[8]所提出問題進(jìn)行了深入研究,證明了文獻(xiàn)[3]算法的正確性和合理性。
基于上述研究成果,本文提出使用自適應(yīng)漸消卡爾曼濾波作為旋翼無人機(jī)組合導(dǎo)航系統(tǒng)的融合算法,對系統(tǒng)模型進(jìn)行實(shí)時(shí)的修正,以提高濾波結(jié)果的精度,最終改善旋翼無人機(jī)的導(dǎo)航解算效果。仿真結(jié)果表明了本文所使用算法的有效性。
一般而言,旋翼無人機(jī)大多使用組合導(dǎo)航系統(tǒng),由全球定位系統(tǒng)與捷聯(lián)慣性導(dǎo)航系統(tǒng)相組合,再融入如磁力計(jì)等外置傳感器,不僅克服了單一慣導(dǎo)系統(tǒng)會隨時(shí)間累計(jì)誤差的缺點(diǎn),并且不受外界干擾,導(dǎo)航信息全面。
濾波方式共有兩種:
1)直接濾波法。使用系統(tǒng)的導(dǎo)航參數(shù)作為狀態(tài)量,直接對系統(tǒng)的導(dǎo)航參數(shù)進(jìn)行估計(jì)。
2)間接濾波法。使用導(dǎo)航參數(shù)的誤差量作為狀態(tài)量,即對誤差量進(jìn)行估計(jì)。
兩種濾波方式各有優(yōu)缺點(diǎn)如下:
1)直接濾波法:
a)由于直接使用導(dǎo)航系統(tǒng)解算方程作為系統(tǒng)方程,所以該方法能夠準(zhǔn)確地反映出系統(tǒng)狀態(tài)的真實(shí)變化情況。
b)對于濾波算法的計(jì)算周期要求嚴(yán)格,為了達(dá)到理想的濾波效果,需要將周期控制得很短。
c)直接濾波法所使用的狀態(tài)量在數(shù)量級上不統(tǒng)一,會大大增加計(jì)算復(fù)雜度,進(jìn)而影響估計(jì)精度。
2)間接濾波法:
a)由于使用導(dǎo)航系統(tǒng)的誤差方程作為系統(tǒng)方程,所以該方法只能間接地反映系統(tǒng)狀態(tài)的變化,準(zhǔn)確性不足。
b)對計(jì)算周期的要求比較寬松,在保證濾波器性能的前提下,該方法的周期可以在幾秒到一分鐘之內(nèi)選取。
c)間接濾波法使用誤差作為狀態(tài)量,各個(gè)量之間相差很小,計(jì)算簡單。
綜上所述,由于間接濾波法對于量測更新的時(shí)間間隔沒有嚴(yán)格要求,并且計(jì)算量較小,結(jié)合旋翼無人機(jī)本身的特點(diǎn),本文選取間接濾波方式,則系統(tǒng)的誤差量就是濾波器的狀態(tài)量。
選取系統(tǒng)的18個(gè)狀態(tài)量如下:
X=[δLδλδhδVEδVNδVUφEφNφU
εbxεbyεbzεrxεryεrz▽x▽y▽z]
(1)
其中:δL,δλ,δh分別是捷聯(lián)慣性導(dǎo)航系統(tǒng)的經(jīng)度、緯度、高度誤差;δVE,δVN,δVU分別是捷聯(lián)慣性導(dǎo)航系統(tǒng)的東向、北向、垂直方向速度誤差;φE,φN,φU是系統(tǒng)的3個(gè)姿態(tài)角誤差;εbx,εby,εbz是陀螺儀的3個(gè)隨機(jī)漂移;εrx,εry,εrz是陀螺儀3個(gè)方向的相關(guān)漂移;▽x, ▽y, ▽z是加速度計(jì)3個(gè)方向的隨機(jī)漂移。
由卡爾曼濾波基本理論可知,系統(tǒng)的狀態(tài)方程可以表達(dá)為:
(2)
系統(tǒng)的白噪聲W(t)為:
W(t)=[ωgxωgyωgzωrxωryωrzωaxωayωaz]T
(3)
其中:ωgx,ωgy,ωgz是陀螺儀隨機(jī)漂移在載體坐標(biāo)系下的白噪聲;ωrx,ωry,ωrz是載體坐標(biāo)系下陀螺儀相關(guān)漂移的白噪聲;ωax,ωay,ωaz是載體坐標(biāo)系下加速度計(jì)隨機(jī)漂移的白噪聲。
系統(tǒng)的噪聲分配矩陣G(t)為:
(4)
而系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣為:
(5)
本文中組合導(dǎo)航系統(tǒng)采用速度和位置組合模式。因此,系統(tǒng)的觀測量是捷聯(lián)慣性導(dǎo)航系統(tǒng)解算的速度信息和位置信息,與全球定位系統(tǒng)給出的速度信息和位置信息的差值。
定義速度的觀測量為:
(6)
由卡爾曼濾波的基本方程可知,量測方程的形式如下:
Zvet(t)=Hvet(t)X(t)+Wvet(t)
(7)
綜上可以得到速度的量測矩陣為:
(8)
定義位置的觀測量為:
(9)
量測方程的形式為:
Zpos(t)=Hpos(t)X(t)+Wpos(t)
(10)
綜上可以得到位置的量測矩陣為:
(11)
綜合式(7)和式(9),可以知道系統(tǒng)的量測方程為:
(12)
式中,量測矩陣H(t)為:
(13)
量測噪聲為:
(14)
如下是一個(gè)線性、離散時(shí)間、隨機(jī)多變量系統(tǒng):
x(k+1)=Φ(k+1,k)x(k)+G(k)w(k)
(15)
y(k)=H(k)x(k)+v(k)
(16)
其中:x(k)是n×1維狀態(tài)向量,y(k)是m×1維量測向量,Φ(k+1,k)和H(k)分別是狀態(tài)轉(zhuǎn)移矩陣和量測矩陣。w(k)和v(k)表示具有零均值的不相關(guān)高斯隨機(jī)向量序列,其協(xié)方差矩陣為:
E[w(k)wT(j)]=Q(k)δkj
(17)
E[v(k)vT(j)]=R(k)δkj
(18)
初始狀態(tài)被指定為一個(gè)隨機(jī)高斯向量。
(19)
(20)
如果系統(tǒng)是完全可觀的,那么描述最優(yōu)估計(jì)的方程(常規(guī)卡爾曼濾波)是:
(21)
(22)
其中:
K(k)=P(k|k-1)HT(k)×
[H(k)P(k|k-1)HT(k)+R(k)]-1
(23)
P(k+1|k)=Φ(k+1,k)P(k)ΦT(k+1,k)+
G(k)Q(k)GT(k)
(24)
P(k)=[I-K(k)H(k)]P(k|k-1)
(25)
自適應(yīng)漸消卡爾曼濾波就是在計(jì)算一步預(yù)測均方誤差時(shí)加入遺忘因子λ(k):
P(k+1|k)=λ(k+1)Φ(k+1,k)P(k)ΦT(k+1,k)+
G(k)Q(k)GT(k)
(25)
其中:λ(k)≥1。
除了遺忘因子λ(k)外,方程(21)~(25)中描述自適應(yīng)漸消卡爾曼濾波的方程與正規(guī)卡爾曼濾波的方程是相同的。
分析上述基本原理,可以發(fā)現(xiàn),標(biāo)準(zhǔn)卡爾曼濾波器魯棒性差的根本原因,在于其最優(yōu)增益的計(jì)算嚴(yán)重依賴驗(yàn)前數(shù)據(jù),但是其系統(tǒng)模型的建立過程中又會不可避免地存在近似或簡化。因此常規(guī)擴(kuò)展卡爾曼濾波的估計(jì)誤差會不斷增大,嚴(yán)重影響濾波效果,甚至導(dǎo)致發(fā)散。
相對應(yīng)的,自適應(yīng)漸消卡爾曼濾波器在濾波過程中,不斷地通過遺忘因子對增益陣進(jìn)行修正,如果估計(jì)誤差不斷增大,則遺忘因子λ(k)增大,相應(yīng)的一步預(yù)測均方誤差增大,最終導(dǎo)致增益K(k)增大。換言之,過去時(shí)刻的誤差會導(dǎo)致遺忘因子對模型的調(diào)節(jié),加大新息的權(quán)重,也就減小了過去時(shí)刻誤差對估計(jì)結(jié)果的影響。
自適應(yīng)漸消卡爾曼濾波效果的好壞直接決定于遺忘因子λ(k)的求取,下面介紹一種求取遺忘因子的方法。
自適應(yīng)漸消卡爾曼濾波希望通過求取一個(gè)最優(yōu)的遺忘因子,使得其成為最優(yōu)濾波器。換言之,遺忘因子應(yīng)當(dāng)滿足最優(yōu)濾波器的性質(zhì)。
最優(yōu)濾波器具有一條重要的性質(zhì):在使用最優(yōu)濾波增益時(shí),下面方程所定義的殘差是一個(gè)白噪聲序列。
(27)
對于任意增益K(k),可以證明殘差的協(xié)方差為:
Co(k)=E[z(k)zT(k)]=H(k)P(k|k-1)HT(k)+R(k)
(28)
殘差的自協(xié)方差為:
Cj(k)=E[z(k+j)zT(k)]=H(k+j)Φ(k+j,k+j-1)×
[I-K(k+j-1)H(k+j-1)]...Φ(k+2,k+1)×
[I-K(k+1)H(k+1)]...Φ(k+1,k)×
9[P(k|k-1)HT(k)-K(k)Co(k)]
?j=1,2,3...
(29)
顯然,由于白噪聲序列的性質(zhì),殘差序列的自協(xié)方差,即方程(29)應(yīng)當(dāng)?shù)扔诹?。觀察展開之后的方程式,可以發(fā)現(xiàn)C1(k)僅取決于最后一項(xiàng),其他項(xiàng)均只包含將來時(shí)刻的增益K(k+j-1),由此便將最優(yōu)濾波器的性質(zhì)轉(zhuǎn)換為了下述等價(jià)條件:
P(k|k-1)HT(k)-K(k)Co(k)=0
(30)
給定系統(tǒng)狀態(tài)方程(15)~(20),將等價(jià)條件(30)展開,得到:
P(k|k-1)HT(k)×
{I-[H(k)P(k|k-1)HT(k)+R(k)]-1Co(k)}=0
(31)
假設(shè)1:Q(k),R(k),P(0)都是正定的。
假設(shè)2:量測矩陣H(k)是滿秩的。
在上述假設(shè)前提下,顯然可以將方程(31)等價(jià)為下式:
H(k)P(k|k-1)HT(k)=Co(k)-R(k)
(32)
展開后得到:
λ(k)M(k)=N(k)
(33)
其中,
M(k)=H(k)Φ(k,k-1)×P(k-1)ΦT(k,k-1)HT(k)
(34)
N(k)=Co(k)-[H(k)G(k-1)Q(k-1)×
GT(k-1)HT(k)]-R(k)
(35)
則最佳遺忘因子可由下式計(jì)算:
λ(k)=max{1,trace[N(k)]/trace[M(k)]}
(36)
注意:在實(shí)際應(yīng)用中,式中的Co(k)是根據(jù)實(shí)測數(shù)據(jù)計(jì)算的,而不是根據(jù)理想化條件下的方程(28)計(jì)算的。
算法1自適應(yīng)漸消卡爾曼濾波濾波器更新
1.時(shí)間更新
dx_k=fai*dx
P_k=fai*P*fai'+Q
P_k=(P_k+P_k')/2
2.構(gòu)造量測量
z=[lat-INSGPS.GPS(GPS_loc,8)*deg2rad;
lng-INSGPS.GPS(GPS_loc,9)*deg2rad;
h-INSGPS.GPS(GPS_loc,10);
ve-INSGPS.GPS(GPS_loc,11)*
sin(INSGPS.GPS(GPS_loc,12)*deg2rad);
vn-INSGPS.GPS(GPS_loc,11)*
cos(INSGPS.GPS(GPS_loc,12)*deg2rad);
vu+INSGPS.GPS(GPS_loc,13)];
3.計(jì)算殘差
innovation=z-H*dx_k;
4.計(jì)算殘差的協(xié)方差
Cok=innovation*innovation';
5.計(jì)算Mk和Nk
Mk=H*fai*P*fai'*H'
Nk=Cok-H*Q*H'-R
6.計(jì)算遺忘因子
fading_factor=max(1,trace(Nk)/trace(Mk));
7.加入遺忘因子
P_k=fading_factor*P_k;
8.進(jìn)行量測更新
K=P_k*H'*inv(H*P_k*H'+R);
dx=dx_k+K*(z-H*dx_k);
P=P_k-K*H*P_k;
程序仿真環(huán)境為Matlab環(huán)境,仿真中使用的原始數(shù)據(jù)是四旋翼平臺試飛時(shí)保存的數(shù)據(jù),使仿真程序最大程度的接近真實(shí)情況。
實(shí)驗(yàn)所用旋翼無人機(jī)搭載的是Pixhawk。Pixhawk是一款開源飛控,屬于PX4開源項(xiàng)目,由3DR公司生產(chǎn)制造。Pixhawk的導(dǎo)航系統(tǒng)應(yīng)用的也是以擴(kuò)展卡爾曼濾波為基礎(chǔ)的組合導(dǎo)航方式,相比廣泛應(yīng)用的GPS/SINS組合導(dǎo)航系統(tǒng),融合了更多傳感器的數(shù)據(jù),算法更復(fù)雜,所以可以以此作為基準(zhǔn),驗(yàn)證設(shè)計(jì)算法的效果好壞。
在原始數(shù)據(jù)中,慣性測量單元20 ms保存數(shù)據(jù)的時(shí)間間隔是20 ms,相對應(yīng)的,在仿真程序中三軸加速度計(jì)和三軸陀螺儀的更新頻率是50 Hz,比Pixhawk中組合導(dǎo)航系統(tǒng)的運(yùn)行頻率要低很多。另一方面,全球定位系統(tǒng)兩組數(shù)據(jù)之間的時(shí)間間隔是200 ms,即全球定位系統(tǒng)數(shù)據(jù)的更新頻率是5 Hz,這是全球定位系統(tǒng)接收機(jī)正常的更新頻率。
擴(kuò)展卡爾曼濾波的初始化數(shù)據(jù)如下所示:
P=diag([(2/Re)2,(2/Re)2,22,
0.052,0.052,0.052,
(0.5*pi/180)2,(1*pi/180/60)2,
(1*pi/180/60)2,(0.1*pi/180/3600)2,
(0.1*pi/180/3600)2,(0.1*pi/180/3600)2,
(0.1*pi/180/3600)2,(0.1*pi/180/3600)2,
(0.1*pi/180/3600)2,(50E-6*g0)2,
(50E-6*g0)2,(50E-6*g0)2])
(37)
q=diag([(0.04*pi/180)2,
(0.04*pi/180)2,(0.04*pi/180)2,
(0.04*pi/180)2,(0.04*pi/180)2,
(0.04*pi/180)2,(400E-6*g0)2,
(400E-6*g0)2,(400E-6*g0)2])
(38)
R=diag([(2.5/Re)2,(2.5/Re)2,32,
0.0052,0.0052,0.0052,])
(39)
下面給出用全球定位系統(tǒng)輸出的速度信息和位置信息,通過擴(kuò)展卡爾曼濾波算法與自適應(yīng)漸消卡爾曼濾波算法對捷聯(lián)慣導(dǎo)系統(tǒng)進(jìn)行校正的仿真結(jié)果。
圖1 姿態(tài)角曲線
圖1中三幅圖分別為俯仰角、滾轉(zhuǎn)角、航向角的曲線圖。觀察以上曲線圖可以看出:
1)俯仰角方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線均能夠較好的跟蹤基準(zhǔn)曲線,誤差在1度左右,濾波效果良好。
2)滾轉(zhuǎn)角方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線均能夠較好的跟蹤基準(zhǔn)曲線,誤差較小,偶有野值,但是對總體濾波效果影響不大。
3)航向角方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線與基準(zhǔn)曲線相差不大,偶有野值,在250 s之后略有波動,但是基本不影響濾波效果。
圖2 速度曲線
圖2中三幅圖分別為東向速度、北向速度、天向速度的曲線圖。觀察以上曲線圖可以看出:
4)東向速度方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線與基準(zhǔn)曲線基本吻合,濾波效果良好。
5)北向速度方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線均能夠較好的跟蹤基準(zhǔn)曲線,誤差較小,但是對總體濾波效果影響不大。
6)天向速度方面。擴(kuò)展卡爾曼濾波與自適應(yīng)漸消卡爾曼濾波的濾波結(jié)果曲線與基準(zhǔn)曲線相差不大,總體誤差在0.15m/s左右,濾波效果較好。
圖3 位置曲線
圖3中,三幅圖分別為緯度、精度、高度的曲線圖。觀察以上曲線圖可以看出:
在位置方面,常規(guī)擴(kuò)展卡爾曼濾波由于全球定位系統(tǒng)硬件精度所限制,在緯度、經(jīng)度、高度3個(gè)方面均具有較大誤差,自適應(yīng)漸消卡爾曼濾波則明顯減小了誤差:
1)緯度方面,200~250 s之間,自適應(yīng)漸消卡爾曼濾波將誤差縮小了50%以上; 250~350 s之間,自適應(yīng)漸消卡爾曼濾波基本將誤差消除,與基準(zhǔn)曲線重合。
2)經(jīng)度方面, 200~350 s之間,自適應(yīng)漸消卡爾曼濾波基本將誤差消除。
3)高度方面, 200~350 s之間,常規(guī)擴(kuò)展卡爾曼濾波與基準(zhǔn)曲線之間產(chǎn)生了較大誤差,約為2~3 m;自適應(yīng)漸消卡爾曼濾波則大幅抑制了誤差,將仿真曲線限制在基準(zhǔn)曲線附近。
通過上述仿真結(jié)果可得,當(dāng)系統(tǒng)建模不夠準(zhǔn)確或是硬件精度受限時(shí),常規(guī)卡爾曼濾波會因此產(chǎn)生誤差,導(dǎo)致新量測值對估計(jì)值的修正作用下降,舊量測值對估計(jì)值得修正作用上升,繼而嚴(yán)重影響最終的濾波結(jié)果,采用自適應(yīng)漸消卡爾曼濾波可以實(shí)時(shí)調(diào)整系統(tǒng)的協(xié)方差陣,較好地抑制濾波結(jié)果的誤差,提高濾波精度。
本文首先介紹了目前無人機(jī)上常用的組合導(dǎo)航系統(tǒng)——GPS/SINS組合導(dǎo)航系統(tǒng),其使用的數(shù)據(jù)融合算法以擴(kuò)展卡爾曼濾波為主流。接著針對幾篇文獻(xiàn)以此為基礎(chǔ)進(jìn)行了簡要分析,從而引出了作為改進(jìn)算法的自適應(yīng)漸消卡爾曼濾波,其相比于擴(kuò)展卡爾曼濾波擁有精度高、模型準(zhǔn)確的優(yōu)點(diǎn),分析了國內(nèi)外學(xué)者對此進(jìn)行的研究。
本文建立了濾波器模型、狀態(tài)方程以及量測方程,對自適應(yīng)漸消卡爾曼濾波的原理進(jìn)行詳細(xì)講解,深入解析了一種求取最優(yōu)遺忘因子的方法,最后通過Matlab仿真程序,使用旋翼無人機(jī)飛行數(shù)據(jù),對算法進(jìn)行了仿真驗(yàn)證,分析結(jié)果得到如下結(jié)論:
對于弱非線性系統(tǒng),擴(kuò)展卡爾曼濾波算法可以達(dá)到較好的濾波效果,但是在其建模過程中,無可避免的對其線性模型進(jìn)行了近似和簡化,通常會導(dǎo)致系統(tǒng)模型缺乏足夠的關(guān)于真實(shí)系統(tǒng)特征的信息,繼而影響其濾波效果。自適應(yīng)漸消卡爾曼濾波在擴(kuò)展卡爾曼濾波基礎(chǔ)上,引入了遺忘因子,實(shí)時(shí)調(diào)整系統(tǒng)的協(xié)方差陣,削減過去的數(shù)據(jù)權(quán)重,以此限制卡爾曼濾波器的模型誤差,大幅提升濾波精度,對于改善旋翼無人機(jī)飛行效果具有重要意義。