段志強(qiáng),劉潔瑜,汪立新,李新三,沈 強(qiáng)
(火箭軍工程大學(xué) 導(dǎo)航制導(dǎo)與仿真實(shí)驗(yàn)室, 陜西 西安 710025)
微機(jī)電系統(tǒng)(MEMS)陀螺儀在導(dǎo)航、定位系統(tǒng)中有著重要地位,采用純慣性導(dǎo)航時(shí),由于MEMS慣性器件中存在不同類型的誤差,會使導(dǎo)航精度隨著時(shí)間的增長而不斷降低[1]。提高導(dǎo)航精度,通常有兩種辦法:
1) 改善制作工藝,提高陀螺儀的精度,但此舉研發(fā)周期長,成本高。
2) 通過軟件補(bǔ)償?shù)霓k法,建立精確的誤差模型,利用濾波算法提高陀螺儀精度[2]。
傳統(tǒng)的數(shù)據(jù)處理方法有遞歸型數(shù)字濾波器(IIR)和非遞歸型數(shù)字濾波器(FIR)濾波[3],該濾波方法需根據(jù)經(jīng)驗(yàn)設(shè)計(jì)濾波器,且不適合噪聲頻譜和信號頻譜混疊的情況;文獻(xiàn)[4]利用小波去噪濾波,小波去噪中的關(guān)鍵問題包括閾值的確定、分解層數(shù)及小波基函數(shù)的選取,如果小波基函數(shù)的選取不合理就無法獲取精確模型,將導(dǎo)致濾波去噪效果不理想;卡爾曼濾波因計(jì)算簡單,實(shí)時(shí)性好,故在工程實(shí)踐中被廣泛應(yīng)用,但是卡爾曼濾波在建模不精確時(shí),易導(dǎo)致濾波發(fā)散,不能有效提高陀螺儀的精度。
本文針對MEMS陀螺儀誤差建模不精確或難以建模的情況下,借助誤差反饋(BP)神經(jīng)網(wǎng)絡(luò)輔助卡爾曼濾波[6]的思想對MEMS陀螺儀數(shù)據(jù)進(jìn)行處理。將卡爾曼濾波器的新息、濾波增益、量測噪聲方差矩陣引入神經(jīng)網(wǎng)絡(luò),把系統(tǒng)噪聲方差作為輸出。通過自適應(yīng)調(diào)整系統(tǒng)噪聲方差值,得到一組較好值作為訓(xùn)練樣本,把神經(jīng)網(wǎng)絡(luò)輸出作為卡爾曼濾波的預(yù)測系統(tǒng)噪聲方差矩陣的值,可有效提高卡爾曼濾波對外界輸入的適應(yīng)能力和濾波效果。
Kalman濾波是一套計(jì)算機(jī)實(shí)現(xiàn)的實(shí)時(shí)遞推算法,處理隨機(jī)信號有顯著效果[7]。其系統(tǒng)的狀態(tài)方程和量測方程分別為
xk=Axk-1+Buk+wk
(1)
zk=Hxk+vk
(2)
式中:xk為系統(tǒng)狀態(tài);zk為量測;A,B,H為已知的系統(tǒng)結(jié)構(gòu)參數(shù);wk為量測噪聲,均值為0方差為Q;vk為系統(tǒng)噪聲,均值為0方差為R。
卡爾曼濾波方程為
(3)
式中:Pk|k-1為一步預(yù)測均方誤差矩陣;Pk為狀態(tài)估計(jì)誤差矩陣;Kk為系統(tǒng)增益矩陣。
卡爾曼濾波作為線性無偏最小方差估計(jì)濾波方法,隨著時(shí)間的推移,觀測數(shù)據(jù)的增多,濾波估計(jì)的精度應(yīng)越來越高,均方誤差陣或趨于穩(wěn)定值或有界。當(dāng)濾波得到的估計(jì)值可能有偏,且估計(jì)誤差的方差也可能很大,超出了理想范圍;其濾波誤差的均值與誤差趨于無窮大,導(dǎo)致濾波發(fā)散。
為避免濾波發(fā)散現(xiàn)象,本文對系統(tǒng)噪聲方差Q進(jìn)行優(yōu)化處理。分析式(3),當(dāng)系統(tǒng)噪聲太大時(shí),Pk/k-1會越大,從而導(dǎo)致濾波增益Kk減小及會減小新息對最優(yōu)估計(jì)值X的貢獻(xiàn),最終導(dǎo)致均方誤差P變大,使濾波發(fā)散。反之,當(dāng)系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣A不準(zhǔn)確時(shí),可以通過調(diào)節(jié)Q來使系統(tǒng)達(dá)到穩(wěn)定。
基于以上思想,采用BP神經(jīng)網(wǎng)絡(luò)對Q進(jìn)行優(yōu)化,將Q設(shè)為變量,在濾波過程中進(jìn)行更新,通過大量的數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到一組較好的Q。在卡爾曼濾波預(yù)測時(shí)代入訓(xùn)練好的Q值,輸出結(jié)果為最優(yōu)。
本文采用AR(n)模型對MEMS陀螺儀噪聲信號進(jìn)行建模[8],該模型建模容易,計(jì)算快,便于預(yù)測,易估計(jì)模型的參數(shù)。系統(tǒng)的狀態(tài)序列{xt}為0均值的非平穩(wěn)隨機(jī)預(yù)測值過程,且
xt=a1xt-1+a2xt-2+…+anxt-n+?t
(4)
(5)
AR模型階次的確定主要有自相關(guān)和偏相關(guān)定階法、FPE 準(zhǔn)則、模型擬合系數(shù)(AIC)準(zhǔn)則等方法[1]。本文采用AIC準(zhǔn)則來對AR模型進(jìn)行定階。MEMS陀螺儀漂移模型的階次較低,一般不會超過三階[9]。表1為AR模型系數(shù)擬合。
表1 AR模型系數(shù)擬合
根據(jù)表1可知AR(1)值最小,所以采用一階自回歸模型為
(6)
BP神經(jīng)網(wǎng)絡(luò)改進(jìn)卡爾曼濾波器,首先對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,輸入層采用卡爾曼濾波器的新息、濾波增益、量測噪聲方差矩陣;隱含層采用的是5層,通過誤差反饋?zhàn)詣诱{(diào)節(jié)各節(jié)點(diǎn)之間的參數(shù)值;輸出層是系統(tǒng)噪聲方差矩陣。把訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,重新采集一組MEMS陀螺儀的數(shù)據(jù),對其進(jìn)行卡爾曼濾波預(yù)處理。將預(yù)處理好的新息、濾波增益、量測噪聲方差矩陣輸入神經(jīng)網(wǎng)絡(luò)測試,將神經(jīng)網(wǎng)絡(luò)輸出的結(jié)果返回給卡爾曼濾波器,最后改進(jìn)濾波器輸出的值為最優(yōu)估計(jì)值。
神經(jīng)網(wǎng)絡(luò)輔助卡爾曼濾波器的優(yōu)勢是系統(tǒng)模型不確定時(shí),通過大量數(shù)據(jù)訓(xùn)練后的系統(tǒng)噪聲方差矩陣具有一定的代表性,將訓(xùn)練好的數(shù)值直接給卡爾曼濾波器進(jìn)行濾波,減少了濾波器的計(jì)算量,實(shí)時(shí)性得到進(jìn)一步提升,對于短時(shí)間的捷聯(lián)系統(tǒng)有重要的意義。建立步驟如下:
1) 結(jié)合式(6)陀螺儀的誤差建模,給出卡爾曼濾波的狀態(tài)方程:
(7)
2) 將實(shí)際測量與量測預(yù)測間的殘差稱為第k次量測獲得的新息,即:
(8)
3) 濾波增益是新息的利用權(quán)重系數(shù),且:
(9)
4) 量測噪聲方差矩陣為
Rk=Py,k/k-1-HPx,k/k-1HT
(10)
步驟2)~4)作為神經(jīng)網(wǎng)絡(luò)的輸入。將系統(tǒng)噪聲方差矩陣作為神經(jīng)網(wǎng)絡(luò)的輸出,即:
Qk=θ1Qk-1+θ2(Pk/k-1-APk-1AT)
(11)
式中θ1,θ2為自適應(yīng)因子。對神經(jīng)網(wǎng)絡(luò)進(jìn)行多次訓(xùn)練,得出較好的一組Q*值作為樣本。
定量。并非指每日投喂數(shù)量,而是指每日根據(jù)魚苗攝食情況、天氣情況、水質(zhì)狀況來確定當(dāng)日飼料投喂量,以飽食投喂為主。苗種培育階段一般按照魚類總體重5%~8%投喂,若遇到天氣悶熱、陰雨可以開增氧機(jī)投喂,如果都正常,沒必要停喂,停喂意味著殘食,影響魚苗的成活率。
經(jīng)網(wǎng)絡(luò)采用5層隱含層,其設(shè)計(jì)流程圖如圖1所示。
圖1 BP-KF流程圖
本文從靜、動態(tài)數(shù)據(jù)采集兩方面對本文方法進(jìn)行驗(yàn)證。
本實(shí)驗(yàn)測試的BDST-MGI760-MIMU,內(nèi)置的MEMS陀螺儀器件型號GRG20,帶寬80 Hz;量程300 (°)/s。采樣頻率為100 Hz,采樣周期為10 ms。
把微型慣性測量單元(MIMU)放置在恒溫(25 ℃)箱里,將恒溫箱放在隔離地基,通過RS232數(shù)據(jù)線連接電腦上位機(jī)。選取MEMS陀螺儀x軸為測試對象,采集過程:開機(jī)預(yù)熱20 min后,采集1.5 h。獲取50萬個(gè)數(shù)據(jù),截取中間的10萬個(gè)作為測試數(shù)據(jù),采集的原始數(shù)據(jù)如圖2所示,x軸的均值為-0.008 5 (°)/s,方差為0.097 7 (°)2/s。
圖2 原始數(shù)據(jù)
1) 預(yù)處理。將采集到的數(shù)據(jù)進(jìn)行預(yù)處理,通過依達(dá)拉準(zhǔn)則剔除粗大誤差數(shù)據(jù)[10],然后用最小二乘法提取趨勢項(xiàng)。其均值為-0.008 2 (°)/s,方差為0.096 (°)2/s。
2) 第一次實(shí)驗(yàn)設(shè)計(jì)。利用第2.1節(jié)建好的數(shù)學(xué)模型設(shè)置卡爾曼濾波器,A=0.507 8,H=1,Q=0.1,R=0.01。將處理好的數(shù)據(jù)代入卡爾曼濾波器,輸出結(jié)果如圖3所示,其均值為-0.002 0 (°)/s,方差為0.001 1 (°)2/s。
圖3 KF處理
3) 第二次實(shí)驗(yàn)設(shè)計(jì)。設(shè)計(jì)一組自適應(yīng)卡爾曼濾波降噪實(shí)驗(yàn)。采用sage-husa自適應(yīng)卡爾曼濾波算法,利用指數(shù)漸消記憶加權(quán)平均算法對量測噪聲方差進(jìn)行數(shù)值衰減。如圖3所示,其均值為-0.001 3 (° )/s,方差為0.000 7 (° )2/s。
4) 第三次實(shí)驗(yàn)設(shè)計(jì)。采用本文第2節(jié)提出的方法,得到的結(jié)果如圖3所示,其均值為0.000 46 (°)/s,方差為3.454 4×10-9(°)2/s。
采用Allan方差分析法對陀螺儀原始數(shù)據(jù)、卡爾曼濾波算法處理過的數(shù)據(jù)和BP神經(jīng)網(wǎng)絡(luò)改進(jìn)卡爾曼濾波算法處理過的數(shù)據(jù)進(jìn)行辨識。Allan方差(σA(τ))-對數(shù)曲線如圖4所示。
圖4 Allan方差-對數(shù)曲線
設(shè)計(jì)7組不同的實(shí)驗(yàn)如表2所示。對MEMS陀螺儀的數(shù)據(jù)誤差處理,采用Allan方差進(jìn)行幅值辨識。
表2 Allan方差辨識結(jié)果
將微慣性測量單元(MIMU)放置在實(shí)驗(yàn)的雙軸溫控轉(zhuǎn)臺上,對其進(jìn)行轉(zhuǎn)臺測試實(shí)驗(yàn)。截取y軸36 000個(gè)數(shù)據(jù),將訓(xùn)練好的噪聲協(xié)方差矩陣代入濾波方程,濾波效果如圖5所示。
圖5 轉(zhuǎn)臺實(shí)驗(yàn)數(shù)據(jù)處理
從表2可看出,使用卡爾曼濾波可使角度隨機(jī)游走下降65%,零偏不穩(wěn)定性下降約96%,角度隨機(jī)游走,速率斜坡,量化噪聲下降1個(gè)數(shù)量級。使用自適應(yīng)卡爾曼濾波處理,與卡爾曼濾波相比,速率斜坡的值下降較明顯,其余幅值波動不大。
在模型發(fā)生變化時(shí)可看出,模型的變化會導(dǎo)致卡爾曼濾波效果發(fā)生較大變動,這驗(yàn)證了不精確的模型會導(dǎo)致濾波發(fā)散情形。
BP-卡爾曼濾波算法與卡爾曼濾波算法相比,MEMS陀螺儀的量化噪聲下降2個(gè)數(shù)量級,零偏不穩(wěn)定性下降了6個(gè)數(shù)量級,速率斜坡下降80%,角度隨機(jī)游走下降78%。且在2個(gè)不同模型的BP-卡爾曼濾波器中,得到的效果也相同(見表2),證明了濾波器在不同模型中的適應(yīng)性。
從實(shí)驗(yàn)2中可得出動態(tài)數(shù)據(jù)濾波后的波形較平滑,保持原始信號的基本波形。濾波前角速率誤差標(biāo)準(zhǔn)差從0.496 8 ()/s下降到了0.132 6 ()/s。
中低精度MEMS陀螺儀隨機(jī)誤差較大,在使用過程中需要對其輸出信息進(jìn)行誤差建模和降噪處理。在數(shù)據(jù)的處理過程中對陀螺儀的噪聲信號建立自回歸模型,采用標(biāo)準(zhǔn)卡爾曼濾波和自適應(yīng)卡爾曼濾波對陀螺儀數(shù)據(jù)進(jìn)行處理,與原始信號相比有顯著提高,但是噪聲并未完全過濾掉。為此,采用神經(jīng)網(wǎng)絡(luò)輔助卡爾曼濾波對陀螺儀數(shù)據(jù)進(jìn)行了降噪處理。通過大量數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,把卡爾曼的新息矩陣、濾波增益、量測噪聲方差矩陣作為新的輸入,把系統(tǒng)噪聲方差矩陣作為輸出,調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的內(nèi)部參數(shù)使數(shù)據(jù)輸出達(dá)到最好的效果。最后,Allan方差辨識結(jié)果表明,BP-卡爾曼濾波比卡爾曼濾波效果好,在高動態(tài)運(yùn)動下也能得到較好的濾波效果。