郭宏偉,侯宏錄,李光耀
MEMS 陀螺是由機械構件、 驅動部件和電控系統集成為一個整體單元的微型器件。MEMS 陀螺的輸出易受溫度的影響導致陀螺發生溫度漂移,影響其測量精度[1]。為了抑制陀螺溫度漂移,提高MEMS陀螺的精度,通常采用建立溫度漂移模型,通過分析模型預測陀螺輸出與溫度漂移量的關系并進行補償,以達到抑制溫度漂移的目的。
實現MEMS 陀螺溫度漂移補償, 需要先測試MEMS 陀螺在不同溫度環境下的輸出,通過分析陀螺輸出的漂移與溫度的關系,建立溫度漂移補償模型[2]。本文提出了卡爾曼濾波和粒子群優化BP神經網絡相結合的補償方法。首先記錄在不同溫度下MEMS 陀螺的輸出信號,然后通過卡爾曼濾波去除信號中的高頻噪聲,最后將降噪后的數據通過粒子群優化BP 神經網絡進行自主學習得到溫度漂移的模型,通過模型預測溫度漂移并對輸出參數進行補償,有效提高了MEMS 陀螺的測量精度。
MEMS 陀螺溫度漂移具有復雜多變的特點。對于以上系統通常采用系統辨別的方法,將其看成一個黑箱,通過實驗得到輸入和輸出的關系,建立識別模型,得到溫度漂移與溫度之間的變化關系[3]。由于陀螺輸出溫度漂移呈現的復雜非線性關系,可采用具有學習逼近任意非線性映射能力的神經網絡方法。MEMS 陀螺輸出中包含的高頻噪聲會對神經網絡擬合精度造成影響。因此,在擬合前需預先降低信號噪聲。
MEMS 陀螺測試, 需要在能自主調節環境溫度的溫箱中進行。先將MEMS 陀螺保持靜止狀態固定于大理石基座上以避免震動對實驗的干擾,再將MEMS陀螺連同大理石基座置于溫箱中,并使其敏感軸垂直于水平面[4]。實驗中MEMS 陀螺保持正常工作,并實時記錄實驗數據。實驗步驟:首先設置溫箱的初始溫度為40 ℃和溫箱的變溫速率為-0.2 ℃/min;當溫箱溫度達到20℃時, 將變溫速率設置為-0.4 ℃/min;當溫箱溫度降到-30 ℃時,做定溫度測試,將溫箱的溫度保持在-30 ℃測試2 h,再將變溫速率設置為0.5 ℃/min, 待溫度升高到50 ℃, 再做定溫度測試, 將溫度保持在70 ℃測試4 h, 將設置變溫速率為-0.3 ℃/min,待降溫到20 ℃時,進行2 h 的定溫測試,完成測試實驗。
實驗中使用MEMS 陀螺和溫度傳感器采樣率均為200 Hz,所采集的數據量十分龐大。為了減少擬合數據的計算量需要對原始數據做平滑處理,即每間隔10 s 對10 s 內的原始數據求一次平均值,平滑處理后的數據進行后續的處理[5]。圖1為平滑處理MEMS 陀螺隨溫度變化的輸出圖。

圖1 MEMS 陀螺在不同溫度下的輸出Fig.1 Output of MEMS gyro at different temperatures
通過計算,不同溫度下MEMS 陀螺的輸出均值和方差如表1所示。

表1 不同溫度下MEMS 陀螺輸出平均值和方差Tab.1 Mean and variance of MEMS gyro output at different temperatures
從實驗數據中可以看出, 不同的溫度階段MEMS 陀螺的輸出均值不同。溫度變化會導致MEMS 陀螺出現明顯的漂移現象。
MEMS 陀螺的輸出信號中的高頻噪聲對溫度漂移的識別不高而且在建立溫度漂移模型時,高頻噪聲的存在會占用很多的算法資源也會增加建模的復雜度,進而會降低MEMS 陀螺的擬合精度。因此需要采取措施降低MEMS 陀螺信號中的高頻噪聲[6]。本文將采用Kalman 濾波對高頻信號進行處理,具體步驟如下:
(1)先對原始數據預處理、正態性檢驗和平穩性檢驗,以滿足時間序列建模的基本要求;
(2)自回歸模型(AR)建立具有容易建模、計算快速、便于預測、易于估計。適用于采樣率高和數據量大的系統。AR 模型:通過對一組已有的歷史數據進行線性組合,給出關心時刻的預測信息。其表達式如下:

式中:Xt表示AR 模型在t 時刻的輸出, 及t 時刻的預測值,時間序列{Xt,t=1,2,…,n}為已獲的歷史數據;Фn為模型參數,σ2a為時間序列的方差;K 為Xt的數據量;{at,t=1,2,…,n}表示對應歷史時刻數據的權值,即AR 模型的待定系數。卡爾曼濾波流程如圖2所示。

圖2 Kalman 濾波器濾波系統框圖Fig.2 Block diagram of Kalman filter filtering system

AR 模型的最優階數n 的濾波效果如圖3所示。

圖3 卡爾曼濾波結果Fig.3 Results of Kalman filtering
經過計算, 采用Kalman 模型濾波后在不同溫度下MEMS 陀螺輸出的平均值和方差如表2所示。

表2 采用卡爾曼濾波后的MEMS 陀螺輸出平均值和方差Tab.2 Means and variance of output of MEMS gyro after kalman filtering
經過降噪后不同溫度下的輸出均值與原始數據幾乎相同,偏差在10-5量級。降噪后定溫條件下輸出方差降低了23.8%, 變溫條件下的輸出方差降低了34.7%。采用卡爾曼濾波可以有效抑制信號中的高頻噪聲,同時能夠有效濾除信號中的異常突變數據,但由溫度引入的漂移量并未減小。
BP 學習算法由兩部分組成:有效信息的正向傳播與誤差的反向傳播。正向傳播過程中,信息通過激活函數得到輸出端的輸出值[8]。當輸出值與期望值偏差較大時,將誤差信號反向傳播對神經網絡進行校正,使得網絡輸出值逐漸逼近理想輸出值,直到輸出誤差達到限定的水平。誤差函數按式(3)計算:

式中:e 為輸出誤差;doo為期望輸出;yoo為實際輸出。其中輸入層誤差信號與網絡的期望輸出與實際輸出之差有關,直接反應了輸出誤差。通過將誤差信號方向傳播對神經網絡進行校正,使得輸出值逐漸逼近理想輸出值。但BP 神經網絡學習速率低,需要較長的訓練時間,常采用的梯度下降法會使算法陷入局部極值,權值收斂到局部極小點,從而導致網絡訓練失敗。
BP 神經網絡進行學習時,使用PSO 在更大尺度上尋找下降梯度最大的方向,進而對各層連接權值和閾值進行調整,解決了陷入局部極小值的問題。PSO-BP 與傳統的BP 神經網絡相比學習速度快、泛化性能好。通過PSO 優化過的參數作為BP 神經網絡數據,基于PSO 優化BP 神經網絡流程如圖4所示。

圖4 PSO-BP 優化算法流程Fig.4 PSO-BP optimization algorithm flow chart
將神經網絡各層的連接權值編碼成粒子,適應度值則為使用該組權值時的網絡輸出均方誤差,每個粒子的適應度值按式(4)和式(5)計算。

式中:P 為神經網絡輸出個數;Yij和yij分別為i 各樣本的第j 個理想輸出值和實際輸出值;n 為樣本個數;m 為最大取得粒子群算法中粒子個數。在Matlab 上編程實現, 需要設定模型的基本參數和相關函數,隱層節點數為15,學習速率為0.05,迭代次數設為5000,學習目標最小誤差為0.001,通過訓練得出全局最優的網絡權值[9]。PSO 優化BP 神經網絡模型如圖5所示。

圖5 BP 神經網絡模型Fig.5 BP neural network model
按照上文描述的方法, 分別采用PSO 優化BP神經網絡和BP 神經網絡對MEMS 陀螺溫度漂移進行擬合,BP 神經網絡的擬合結果、BP 神經網絡擬合和MEMS 陀螺原始數據如圖6所示。

圖6 PSO-BP、BP 神經網絡擬合和陀螺原始數據Fig.6 PSO-BP、BP neural network fitting and gyro original data
由圖6可以看出PSO 優化BP 神經網絡的預測輸出相比于BP 神經網絡更好地擬合了MEMS 陀螺溫度漂移,在波動更加劇烈的部分,PSO 優化BP 神經網絡預測值曲線和濾波后輸出基本一致。
將預測結果作為補償量,對原始MEMS 陀螺輸出進行補償(在原始的MEMS 陀螺輸出上減去模型的預測值)[10],經過實驗兩種方案償結果如圖7所示。

圖7 BP 與PSO-BP 神經網絡補償效果Fig.7 Compensation effect of BP and PSO-BP neural network
通過BP 神經網絡對MEMS 陀螺漂移進行擬合,得到溫度漂移模型。利用該模型預測溫度漂移并對輸出參數進行補償,補償后的結果穩定在零點附近。經過計算,補償后不同溫度下的均值和方差如表3所示。

表3 補償后的MEMS 陀螺輸出平均值和方差Tab.3 Mean and variance of compensated MEMS gyro output
通過上表可以發現兩種方法都對MEMS 陀螺都有顯著的補償效果。補償后MEMS 陀螺在溫度變化下的輸出均值都有所降低,BP 神經網絡補償后全過程的輸出均值為0.0253°/s,PSO 化BP 神經網絡補償后全過程的輸出均值為0.0232°/s。
Kalman-AR 模型濾波后的噪聲相比于濾波之前降低了5.27%,有效降低了MEMS 陀螺輸出信號中包含的高頻噪聲,同時在溫度漂移量維持不變的情況下, 濾除了MEMS陀螺輸出中的異常數據。
MEMS 陀螺補償前的輸出均值0.5°/s 左右,輸出方差在0.05 °/s 左右。經過BP 神經網絡補償,MEMS 陀螺輸出方差均在0.003°/s 以下,而輸出方差0.026°/s 左右。為解決BP 神經網絡容易陷入局部極小值的問題, 采用卡爾曼AR 模型降噪與PSO優化BP 神經網絡相結合的方法與補償前相比,MEMS 陀螺輸出方差降低了65.09%, 與傳統BP 神經網絡相比補償精度明顯提高。