張 敏,李 凱,韓 焱,史 策,李 坤
(中北大學信息探測與處理山西省重點實驗室,太原 030051)
角速率是慣性導航領域的關鍵參數(shù)之一[1-2],微機械(MEMS)陀螺儀是慣性導航領域內測量角速率的常用傳感器,但其精度問題限制了其在慣性導航領域的進一步發(fā)展。
目前,降低MEMS陀螺儀隨機漂移影響的方法有硬件設計和軟件編程,軟件設計主要利用算法對誤差建立模型,通過合適的濾波器對誤差進行修正,優(yōu)勢在于研制周期短,成本低,而且精度提升的空間較大[3]。常用的建模方法有利用滑動自回歸建模方法[4],其主要思想是基于時間序列分析建立滑動自回歸模型,但滑動自回歸模型的階數(shù)太高就無法精確描述隨機漂移誤差;有基于小波分析的建模方法[5-6],小波變換能根據(jù)信號頻率進行不同分辨率分析,然而小波基函數(shù)選取不合理就無法精確建模;還有根據(jù)MEMS陀螺儀數(shù)據(jù)手冊建模方法[7],建模精確度高但不適用于所有MEMS陀螺儀,以上模型都能補償部分隨機漂移誤差,但都無法提供精確的MEMS陀螺儀測量信息??柭鼮V波器因其解算速度快[8-11],實時性好而成為常用的MEMS陀螺儀降噪算法,但模型不合理會造成濾波器發(fā)散。
本文針對MEMS陀螺儀隨機漂移誤差嚴重的問題,提出一種基于BP神經網絡建模的卡爾曼濾波算法。統(tǒng)計MEMS陀螺儀隨機漂移誤差內部蘊含的規(guī)律,提高卡爾曼算法對外界輸入的適應能力和濾波精度,在MEMS陀螺儀的數(shù)據(jù)處理方面具有一定的應用價值。
已知采樣的時間間隔為Tn,采樣總時長為T,此時就會獲得總數(shù)為N=T/Tn的數(shù)據(jù)樣本。
①按采樣間隔的順序將數(shù)據(jù)均分為n個子集,每個子集存放的數(shù)據(jù)點數(shù)為K=N/n(K≥2),每個數(shù)據(jù)子集所用的平均時間為t(n)=nTn;
③不同的子集之間的方差表示為式(1):
(1)
文獻[12]中指出,噪聲因素在進行系數(shù)擬合時,使用Allan標準差精度更高,不同的t(n)對應不同的噪聲因素,在Allan標準差雙對數(shù)曲線圖上對應不同的斜率[10],根據(jù)上述的表達式,得到Allan方差與MEMS陀螺儀常見誤差源的對應關系如表1。
表1 Allan標準差與常見噪聲對應關系
卡爾曼濾波是時域內一種最優(yōu)化數(shù)據(jù)濾波器,將信號的動態(tài)變化規(guī)律用動力學方程表示,采用遞推的方式實時更新觀測數(shù)據(jù),解算出新的卡爾曼濾波值,建模過程簡單,數(shù)據(jù)解算速度快。結合Allan方差使用,能夠在時域內全面、精確的辨識出MEMS陀螺儀測量數(shù)據(jù)中代表不同物理意義的噪聲因素[13],實現(xiàn)對測量信息的高精度獲取。
卡爾曼濾波理論采用了狀態(tài)空間法來描述系統(tǒng),其不僅能處理非平穩(wěn)的隨機過程,也能處理多維隨機過程,在了解了系統(tǒng)的動力學規(guī)律后,建立能夠準確描述系統(tǒng)運動規(guī)律的狀態(tài)方程,將狀態(tài)方程與卡爾曼濾波器的遞推迭代公式結合起來使用,這就是卡爾曼濾波的量測更新過程。
BP神經網絡模仿了人類大腦的神經系統(tǒng)結構,具有人腦的自學習、非線性映射與聯(lián)想記憶功能,能用來對非線性系統(tǒng)建立模型[14],通過訓練與學習,BP神經網絡可以學習出卡爾曼濾波器的狀態(tài)轉移矩陣。
BP神經網絡辨識非線性復雜系統(tǒng)精度高于傳統(tǒng)的最小二乘法辨識、梯度校正參數(shù)辨識和極大似然函數(shù)辨識函數(shù)等[14],其基本思想是自變量信號從輸入層正向傳播經隱層加權求和得到輸出值,輸出值與實際期望輸出值之間的誤差反向分布分攤給每層的各個節(jié)點[15],用以修正下一次輸出。3層BP神經網絡可以辨識任何的動力學方程為非線性的系統(tǒng)[16]。
系統(tǒng)整體設計的流程圖如圖1所示。利用BP算法的精確的非線性映射能力統(tǒng)計MEMS陀螺儀隨機漂移誤差內部蘊含的規(guī)律,提高卡爾曼算法對外界輸入的適應能力和濾波精度,避免建立的模型不精確而造成卡爾曼濾波器發(fā)散。
圖1 濾波器設計整體框圖
將學習好的BP神經網絡模型結合卡爾曼濾波遞推方程進行濾波,利用Allan方差辨識MEMS陀螺儀隨機漂移誤差源的系數(shù)下降情況來判斷濾波效果的好壞,同時建立基本卡爾曼模型,與BP神經網絡模型進行對比,驗證BP神經網絡模型的濾波性能。
本文采用3層BP神經網絡對隨機漂移系統(tǒng)進行學習,建立能精確描述系統(tǒng)的模型。為避免輸入輸出數(shù)據(jù)數(shù)量級過高使學習函數(shù)發(fā)散而影響預測精度[17],故對數(shù)據(jù)進行歸一化。
圖2 神經元工作示意圖
MEMS陀螺儀靜態(tài)漂移模型用隨機漂移噪聲來訓練網絡,是一個單輸入單輸出系統(tǒng),輸入層與輸出層神經元數(shù)目都是1,隱層神經元數(shù)目遵循2n+1的規(guī)律,先設定隱層節(jié)點數(shù)目為3,一個神經元的工作模式如圖2所示,輸入層輸入x后,經過加權系數(shù)W加權整合,當輸入超過閾值T,神經元被激發(fā)產生脈沖,經過非線性的傳遞函數(shù)f整合得出輸出O,本網絡使用的傳遞函數(shù)為L-M優(yōu)化算法。在MATLAB中調用newff函數(shù)實現(xiàn)。
建立網絡對象后,通過調用train函數(shù),設定訓練函數(shù)為tansig函數(shù)、迭代次數(shù)為5、學習率為0.5,學習率越高,學習越精細,給網絡輸入樣本進行網絡的訓練與學習。
網絡學習完成后,利用sim函數(shù),取學習樣本對網絡進行仿真,得到仿真輸出,將仿真輸出與已有樣本進行對比,驗證網絡的準確性,如果誤差較大,重新調整訓練過程中的樣本個數(shù)和網絡參數(shù)以使仿真輸出與已有樣本誤差最小。隱層節(jié)點數(shù)目選取與網絡學習的均方誤差對應如表2所示。
表2 隱層節(jié)點數(shù)與網絡學習均方誤差和迭代次數(shù)
由表2可知,在學習率為0.8時,隱層節(jié)點數(shù)目為100時,網絡仿真輸出與樣本均方誤差最小,但隱層節(jié)點數(shù)目過多造成學習時間過長,綜合考慮,選取隱層節(jié)點數(shù)為8時,網絡整體學習效果最好,BP神經網絡模型建立完成。
模型建立完成后,在網絡每層都得到精確地權值和閾值,系統(tǒng)每層的傳遞函數(shù)也已知,這樣可以確定卡爾曼濾波系統(tǒng)的狀態(tài)轉移矩陣F。系統(tǒng)觀測方程見式(2):
Xk+1|k=FXk|k
(2)
式中:Xk+1|k表示下一時刻估計狀態(tài);Xk|k表示當前預測狀態(tài);F表示狀態(tài)轉移矩陣。
由于卡爾曼濾波系統(tǒng)輸入為MEMS陀螺儀三軸的數(shù)據(jù),所以卡爾曼濾波器的觀測矩陣H設定為I3×3,噪聲驅動矩陣G設定為I3×3。
噪聲協(xié)方差的設定精度與卡爾曼濾波器的性能息息相關,它會對卡爾曼濾波器的協(xié)方差矩陣造成影響。通過對MEMS陀螺儀測量的靜態(tài)噪聲經過多次的測量并進行概率統(tǒng)計,將系統(tǒng)噪聲的協(xié)方差矩陣Q設定為10-5diag(2.252,1.434 8,1.184 4),通過查閱MEMS陀螺儀的數(shù)據(jù)手冊,將測量噪聲的協(xié)方差矩陣R設定為diag(0.001,0.001,0.001)。協(xié)方差矩陣Q和R不隨時間的變化而改變。將其代入式(3)求解協(xié)方差矩陣:
Pk+1|k=FPk+1|k+1FT+GQGT
(3)
式中:Pk+1|k表示當前時刻估計值的協(xié)方差矩陣;Q表示系統(tǒng)噪聲的協(xié)方差矩陣。
通過式(4)運用卡爾曼濾波增益來判斷卡爾曼濾波器中BP神經網絡模型與實際測量值的權重來達到濾波的目的。
Kk+1=Pk+1|kHT[HPk+1|kHT+R]-1
(4)
式中:Kk+1表示卡爾曼濾波增益;H表示系統(tǒng)觀測矩陣;R表示測量噪聲的協(xié)方差矩陣。
得出卡爾曼濾波增益后,利用式(5)能夠得出最佳卡爾曼濾波值,并通過式(6)求出用于下一次迭代的協(xié)方差矩陣:
Xk+1|k+1=Xk+1|k+Kk+1(Yk+1-HXk+1|k)
(5)
Pk+1|k+1=[In-Kk+1H]Pk+1|k
(6)
式中:Xk+1|k+1表示最佳卡爾曼濾波值;Pk+1|k+1表示下一時刻的估計協(xié)方差矩陣。
當陀螺儀沒有外加輸入時,MEMS陀螺在零輸入情況下的輸出是白噪聲和一個近似平穩(wěn)隨機數(shù)集合的疊加[18],將MEMS陀螺儀的實際角速度和零位偏置不穩(wěn)定性列為狀態(tài)量,設定合適的參數(shù),建立基本卡爾曼濾波模型。
此次試驗采用高速轉臺作為試驗平臺,將傳感器模塊固定在轉臺上,敏感軸平行于轉臺軸,溫度保持25 ℃,保持轉臺靜止狀態(tài),接通電源后,采用5 kHz采樣頻率,采集共計50 000個數(shù)據(jù)點。對采集到的靜態(tài)數(shù)據(jù)進行數(shù)值分析以及后續(xù)的信號處理,MEMS陀螺儀三軸靜態(tài)實測數(shù)據(jù)如圖3所示。
圖3 MEMS陀螺儀三軸原始數(shù)據(jù)
對采集到的MEMS陀螺儀數(shù)據(jù)進行Allan方差分析,得到如圖4所示的Allan標準差雙對數(shù)曲線圖。
將圖4所示雙對數(shù)曲線圖分段按照不同的斜率進行擬合,辨識出的誤差因素及其系數(shù)如表3所示。
圖4 原始數(shù)據(jù)Allan標準差曲線圖
誤差因素X軸Y軸Z軸量化噪聲/(°)-0.00160.00150.0070零偏不穩(wěn)定性/[(°)/h]0.49273.35506.2229速率隨機游走/[(°)/h3/2]-37.78-154.03-267.79
根據(jù)2.1節(jié)的分析構建BP神經網絡,將MEMS陀螺儀采集到的靜態(tài)數(shù)據(jù)作為BP神經網絡的輸入,進行訓練后可以獲得輸入層、隱層、輸出層各個節(jié)點的權值和閾值以及傳遞函數(shù),配合卡爾曼濾波器的迭代公式,建立基于BP神經網絡模型的卡爾曼濾波系統(tǒng)。
神經網絡學習樣本的時間平均為9 s,數(shù)據(jù)點有50 000個,平均學習一個點需要18 ms,而本次試驗的采樣頻率為5 kHz,學習的結果符合系統(tǒng)要求,滿足實時性要求。
根據(jù)基本卡爾曼濾波模型的狀態(tài)方程和觀測方程,設定系統(tǒng)噪聲協(xié)方差陣Q的取值為diag(2.25×10-5,1.43×10-5,1.18×10-4),設定系統(tǒng)的濾波周期T=0.000 2 s,濾波初值X0為[0]6×6估計值的協(xié)方差陣初值P0為diag(0.01,0.01,0.01,0.01,0.01,0.01)。
分別構建兩種不同濾波模型對原始數(shù)據(jù)進行卡爾曼濾波,以Y軸的信號為例,濾波結果對比如圖5所示。
對原始數(shù)據(jù)和濾波后的信號進行數(shù)值統(tǒng)計特性對比,分析結果如表4所示。
表4 原始數(shù)據(jù)與不同模型濾波后方差對比
由表4可以看出濾波后的系統(tǒng)的隨機噪聲收斂很明顯,說明卡爾曼濾波器能夠有效補償MEMS陀螺儀隨機漂移噪聲對系統(tǒng)測量精度的影響,而基于BP神經網絡模型濾波后的有用信號的波形更為清晰、光滑、平穩(wěn),隨機漂移量明顯減小。表4中兩種模型補償后的信號方差都大幅度減小,說明數(shù)據(jù)離散程度都比原始數(shù)據(jù)低,基于BP神經網絡模型濾波后的信號離散程度比原始數(shù)據(jù)下降到2到3個數(shù)量級,信號比基本模型濾波后更為穩(wěn)定。
采用Allan方差分析法對進行誤差補償后的信號進行分析辨識,以MEMS陀螺儀的Z軸為例,濾波后的Allan標準差雙對數(shù)曲線圖如圖6所示。
圖6 Z軸兩種模型Allan標準差曲線圖
在圖6中,平均時間較小的情況下,神經網絡模型的噪聲情況改善更明顯,平均時間更大的時候兩種模型下的濾波效果不分伯仲,與圖3所示的各個信號的波形圖表現(xiàn)出的特點相符,將卡爾曼濾波后的信號進行誤差因素的系數(shù)辨識,仍以陀螺儀Z軸為例,基于BP神經網絡模型濾波后的信號的量化噪聲為0.001 5°、零偏不穩(wěn)定性為0.968 7°/h、速率隨機游走為-38.875 3°/h3/2。濾波后噪聲系數(shù)下降倍數(shù)如表5所示
表5 Z軸噪聲因素下降倍數(shù)
在表5中,基于BP神經網絡模型卡爾曼濾波器的噪聲降低倍數(shù)要高于基本卡爾曼模型??梢娀贐P神經網絡系統(tǒng)辨識建模的卡爾曼濾波器具有更好的濾波效果。這說明在描述陀螺儀的隨機漂移特性時,神經網絡辨識建模能更準確的識別MEMS陀螺儀的輸入,方法簡潔易操作精確度高,能更大程度提高陀螺儀的輸出精度。
本文提出了一種BP神經網絡與卡爾曼濾波算法結合的MEMS陀螺儀角速率降噪方法。利用BP神經網絡強大的學習能力對MEMS陀螺儀的隨機漂移誤差精確地訓練學習建立模型,利用能實時解算數(shù)據(jù)的卡爾曼濾波器對信號進行處理,通過Allan方差分析法對卡爾曼濾波效果進行定量分析來觀察不同建模方式對MEMS陀螺儀的降噪效果的影響。通過MATLAB仿真試驗驗證了BP神經網絡建模更為精確,使卡爾曼濾波能夠更加有效降低MEMS陀螺儀的隨機漂移噪聲,能較大幅度提高MEMS陀螺儀的角速率測量精度。
[1] Li K,Li Y,Han Y. An EM Induction Hi-Speed Rotation Angular Rate Sensor[J]. Sensors,2017,17(3):610.
[2] Li K,Li Y,Han Y. A Magnetic Induction-Based Highly Dynamic Rotational Angular Rate Measurement Method[J]. IEEE Access,2017,5(99):8118-8125.
[3] 李杰,張文棟,劉俊. 基于時間序列分析的Kalman濾波方法在MEMS陀螺儀隨機漂移誤差補償中的應用研究[J]. 傳感技術學報,2006,19(5b):2215-2219.
[4] 吉訓生,王壽榮. MEMS陀螺儀隨機漂移誤差研究[J]. 宇航學報,2006,27(4):640-642.
[5] 楊金顯,陳超,李志鵬. 基于小波卡爾曼混合算法的陀螺儀去噪方法[J]. 電子測量技術,2016,39(3):29-33.
[6] 胡俊偉,劉明雍,張加全. 一種光纖陀螺隨機噪聲時間序列建模與實時濾波方法[J]. 魚雷技術,2011,19(1):31-34.
[7] 徐韓,曾超,黃清華. 基于卡爾曼濾波算法的MEMS陀螺儀誤差補償研究[J]. 傳感技術學報,2016,29(7):962-965.
[8] 黃小平,王巖. 卡爾曼濾波原理及應用[M]. 電子工業(yè)出版社,2015.
[9] IEEE Standard Specification Format Guide and Test Procedure for Single-Axis Interferometric Fiber OpticGyros[S]. USA:IEEE Stand Board,1998.
[10] 陳旭光,楊平,陳意. MEMS陀螺儀零位誤差分析與處理[J]. 傳感技術學報,2012,25(5):628-632.
[11] 秦永元. 卡爾曼濾波與組合導航原理[M]. 西北工業(yè)大學出版社,1998.
[12] 趙思浩,陸明泉,馮振明. MEMS慣性器件誤差系數(shù)的Allan方差分析方法[J]. 中國科學:物理學 力學 天文學,2010,40(5):672-675.
[13] El-Sheimy N,Hou H,Niu X. Analysis and Modeling of Inertial Sensors Using Allan Variance[J]. IEEE Transactions on Instrumentation and Measurement,2007,57(1):140-149.
[14] 侯媛彬. 系統(tǒng)辨識及其MATLAB仿真[M]. 科學出版社,2004.
[15] 韓力群. 人工神經網絡理論、設計及應用[M]. 化學工業(yè)出版社,2007.
[16] 李忠良,陳衛(wèi)兵,鄒豪杰,等. 基于新息的神經網絡自適應卡爾曼濾波[J]. 湖南工業(yè)大學學報,2011,25(1):105-108.
[17] 王小川. MATLAB神經網絡43個案例分析[M]. 北京:北京航空航天大學出版社,2013.
[18] 劉明雍,朱立,董海霞. 基于卡爾曼濾波的陀螺儀陣列技術研究[J]. 兵工學報,2016,37(2):272-278.