禹 忠, 黃一超, 郭 暢
(西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710121)
微機(jī)電系統(tǒng)(micro-electro-mechanical system,MEMS)傳感器,是一種可以將多種自然信號(hào)收集并轉(zhuǎn)換為電子系統(tǒng)能夠識(shí)別的電信號(hào)的工具,憑借其體積小、重量輕,抗干擾能力強(qiáng),能耗低研究者會(huì)利用或提出相關(guān)算法來實(shí)現(xiàn)對(duì)MEMS傳感器精度的提升。
馬群等人[1]建立了自回歸滑動(dòng)平均模型,再通過卡爾曼濾波器對(duì)MEMS的精度進(jìn)行提升,并通利用Allan方差分析法,觀測出其量化噪聲、角度隨機(jī)游走和零偏誤差系數(shù)都形成了不同程度的降低。孫玉潔等人[2]曾利用神經(jīng)網(wǎng)絡(luò)進(jìn)行非線性映射,通過建立傳感器輸出數(shù)據(jù)與實(shí)際姿態(tài)之間的誤差補(bǔ)償模型,預(yù)測出三種姿態(tài)角的誤差補(bǔ)償度數(shù),提升了MEMS在姿態(tài)感應(yīng)輸出上的精度。王法亮等人[3]和郭震等人[4]在神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ)上分別引入了自適應(yīng)權(quán)重粒子群優(yōu)化(particle swarm optimization,PSO)算法和螢火蟲算法(firefly algorithm,FA)對(duì)神經(jīng)網(wǎng)絡(luò)算法進(jìn)行優(yōu)化,從而針對(duì)MEMS加速度計(jì)實(shí)現(xiàn)效果更加顯著的溫度誤差補(bǔ)償。
本文以陀螺儀陣列[5]為研究對(duì)象,針對(duì)其建立隨機(jī)漂移誤差模型,在原先卡爾曼濾波的基礎(chǔ)上再結(jié)合人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)算法有規(guī)律性地對(duì)過程噪聲協(xié)方差矩陣Q和測量噪聲協(xié)方差矩陣R進(jìn)行訓(xùn)練,最后對(duì)比此結(jié)合算法與原先基礎(chǔ)卡爾曼濾波算法的降噪能力。
實(shí)驗(yàn)中,選用4片型號(hào)為ADXRS620的單軸陀螺儀在一塊印刷電路板(printed circuit board,PCB)上2×2進(jìn)行布線排列從而實(shí)現(xiàn)陀螺儀的陣列排布,主控芯片采用STM32151CB,經(jīng)過初步數(shù)據(jù)采集之后,經(jīng)過建立的陀螺儀陣列的隨意漂移誤差模型,如圖1。
圖1 系統(tǒng)整體算法設(shè)計(jì)流程
每進(jìn)行3 000次卡爾曼濾波迭代就利用神經(jīng)網(wǎng)絡(luò)算法對(duì)矩陣Q和矩陣R進(jìn)行訓(xùn)練一輪,直到最后的高精度數(shù)據(jù)輸出。最后,將經(jīng)過卡爾曼與神經(jīng)網(wǎng)絡(luò)算法結(jié)合的濾波算法輸出的數(shù)據(jù)和經(jīng)過單一卡爾曼濾波算法輸出的數(shù)據(jù)進(jìn)行比較,突出本文所提出的算法的先進(jìn)性。
Allan方差分析法通常被用來分析五種類型的誤差:零偏不穩(wěn)定性、角度隨機(jī)游走白噪聲、速率斜坡、角速度隨機(jī)游走白噪聲和陀螺儀的量化噪聲。本文研究的是陀螺儀陣列的前三種類型誤差。本文利用Allan方差法實(shí)現(xiàn)兩個(gè)功能:一個(gè)是對(duì)比經(jīng)過不同濾波算法的陀螺儀性能;另一個(gè)則是獲得相關(guān)的噪聲參數(shù)(噪聲參數(shù)可以用于設(shè)置Q陣或是直觀的定量對(duì)比分析)。
式中i為陀螺儀陣列中的第i個(gè)陀螺儀;bi為第i個(gè)陀螺儀的零偏不穩(wěn)定性;nbi則為第i個(gè)陀螺儀的角速度隨機(jī)游走白噪聲;yi的含義是陀螺儀的實(shí)際輸出;ω為陀螺儀的真實(shí)角速率,在實(shí)際的實(shí)驗(yàn)中,由于存在噪聲的影響,因此ω表現(xiàn)為nω;nai為陀螺儀的角度隨機(jī)白噪聲。
構(gòu)造本文算法中的基于卡爾曼濾波[6~8]的系統(tǒng)的狀態(tài)方程和量測方程。首先將式(1)中兩式改寫成矩陣形式
其中,各向量矩陣展開為
本文將零偏不穩(wěn)定性b和真實(shí)角速率ω作為狀態(tài),系統(tǒng)的狀態(tài)矢量X=[bTω]T,由此式在(2)的基礎(chǔ)上建立陀螺儀陣列的狀態(tài)方程和量測方程如下
式中F為系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣,為0(N+1)×(N+1);G為噪聲矩陣,為I(N+1)×(N+1);此式中的H為含有噪聲的量測矩陣,為[IN×N… 1N×1];W(t)和V(t)為相互獨(dú)立的白噪聲,其方差分別是q和r,E[W(t)WT(t)]=Qδ(t-τ),E[V(t)VT(t)]=Rδ(t-τ)。
式中Qb為角速度隨機(jī)游走噪聲矢量nb的協(xié)方差矩陣,Qω為真實(shí)角速率的噪聲矢量nω的協(xié)方差矩陣
R=[Qa]
(5)
式中Qa為角度隨機(jī)游走噪聲矢量na的協(xié)方差矩陣。
本文實(shí)驗(yàn)是建立在25 ℃的恒溫環(huán)境下的,卡爾曼濾波器的采樣頻率為200 Hz,采樣點(diǎn)總共15 000個(gè)。經(jīng)過Allan方差的隨機(jī)漂移誤差識(shí)別,令N=4,則Q陣的初值為106diag(1.1,1.2,1.1,1.3,1.0),R陣的初值是3×10-3diag(1,1,1,1),X0=[0 0 0 0 0]T,P0=diag(100,100,100,100,100)。
將式(3)離散化得
當(dāng)N=4時(shí),式(6)中的F為05×5,G為I5×5,H為[I4×4…I4×1];系統(tǒng)的觀測方程構(gòu)建如式(7)
(7)
迭代時(shí),將訓(xùn)練好的Q陣和R陣代入如下的式(8)和式(9)中
Pk|k-1=FPk-1|k-1FT+GQGT
(8)
Kk=Pk|k-1HT[HPk|k-1HT+R]-1
(9)
式(9)則通過更新Kk檢查卡爾曼濾波器內(nèi)神經(jīng)網(wǎng)絡(luò)模型與實(shí)際測量值的權(quán)重從而起到濾波的效果;Kk更新后,再通過式(10)求出卡爾曼濾波的最佳值
(10)
最后再通過式(11)實(shí)現(xiàn)狀態(tài)協(xié)方差矩陣的更新,準(zhǔn)備開始下一次迭代
Pk|k=(I-KkH)Pk|k-1
(11)
式中Pk|k為估計(jì)誤差協(xié)方差陣。
本文選用的是Python編程語言中的TensorFlow框架來搭建人工神經(jīng)網(wǎng)絡(luò)。
采用4層訓(xùn)練網(wǎng)絡(luò)[9,10],防止因輸入輸出數(shù)據(jù)量級(jí)過高使學(xué)習(xí)函數(shù)散射從而導(dǎo)致精度降低的問題出現(xiàn)。每進(jìn)行3 000次卡爾曼迭代神經(jīng)網(wǎng)絡(luò)系統(tǒng)就對(duì)隨機(jī)漂移誤差模型中的Q值和R值分別進(jìn)行訓(xùn)練一次,總訓(xùn)練次數(shù)為5次。此訓(xùn)練網(wǎng)絡(luò)是一個(gè)單一輸入和單一輸出的的神經(jīng)網(wǎng)絡(luò)系統(tǒng),輸入端為Q值或R值,記為X1,四層的隱藏間層的神經(jīng)元數(shù)量分別為第一層10個(gè)、第二層30個(gè)、第三層60個(gè)以及第四層20個(gè)。圖2為神經(jīng)元的工作模式示意圖。
圖2 神經(jīng)元工作示意
數(shù)據(jù)進(jìn)入輸入層并展開成到第一層的10個(gè)神經(jīng)元,每個(gè)神經(jīng)元通過突觸權(quán)值Wk1,Wk2,…,Wkn進(jìn)行加權(quán)整理,當(dāng)輸入超過閾值T時(shí),系統(tǒng)會(huì)激發(fā)神經(jīng)元形成脈沖,通過非線性的傳遞函數(shù)最終輸出Y1。該網(wǎng)絡(luò)采用的優(yōu)化算法是梯度下降算法中的隨機(jī)梯度下降算法。其參數(shù)的更新公式如下
本實(shí)驗(yàn)的對(duì)象是2×2的單軸陀螺儀陣列,通過每個(gè)陀螺儀之間的相關(guān)性進(jìn)行數(shù)據(jù)融合可以得到最終的濾波數(shù)據(jù)。圖3為不同模型的濾波結(jié)果對(duì)比,圖3可以明顯看出卡爾曼濾波結(jié)合神經(jīng)網(wǎng)絡(luò)濾波算法的降噪能力要高于基礎(chǔ)卡爾曼濾波器的降噪能力。
圖3 不同模型濾波結(jié)果對(duì)比
從圖4的濾波前后Allan方差雙對(duì)數(shù)曲線圖可以看出,圖中各數(shù)據(jù)的曲線走勢基本相同,因此,傳感器間誤差差異不大,表明實(shí)驗(yàn)中選用的各個(gè)陀螺儀性能基本一致,符合陀螺儀陣列設(shè)計(jì)??柭鼮V波結(jié)合神經(jīng)網(wǎng)絡(luò)濾波算法處理后的數(shù)據(jù)曲線在所有曲線的最下方,說明算法對(duì)陀螺儀的各個(gè)誤差參數(shù)的抑制更優(yōu)。并且算法曲線走勢與原始數(shù)據(jù)融曲線走勢基本相同,表明經(jīng)過算法處理后并未對(duì)陀螺儀的誤差特性進(jìn)行改變。
圖4 濾波前后Allan方差雙對(duì)數(shù)曲線對(duì)比
表1 不同濾波算法隨機(jī)漂移誤差系數(shù)對(duì)比
本文針對(duì)4個(gè)單軸MEMS陀螺儀形成的2×2陣列構(gòu)成的虛擬陀螺,提出了一種卡爾曼濾波結(jié)合ANN的濾波算法,通過將神經(jīng)網(wǎng)絡(luò)系統(tǒng)嵌套在卡爾曼迭代中,可以對(duì)各種噪聲進(jìn)行有效抑制,從而提高陀螺儀陣列的輸出精度。并且通過實(shí)際測量數(shù)據(jù)進(jìn)行了驗(yàn)證,結(jié)果證明:本文提出的結(jié)合算法將 MEMS陀螺儀陣列的零偏不穩(wěn)定性、角度隨機(jī)游走和速率斜坡等重要參數(shù)實(shí)現(xiàn)了大幅優(yōu)化,同時(shí)與基礎(chǔ)卡爾曼濾波算法相比,本文結(jié)合算法將上述三個(gè)參數(shù)分別下降了76.38 %,78.91 %和80.98 %,其優(yōu)化性能具有明顯優(yōu)勢。