岳興春,彭 勇,宋 威,黃嘉誠,周鈺琛
(1.江南大學物聯(lián)網(wǎng)學院,江蘇無錫 214122;2.江南大學人工智能與計算機學院,江蘇無錫 214122)
MEMS物理傳感器應(yīng)用較廣泛,尤其是加速度計和陀螺儀被廣泛應(yīng)用于導航、姿態(tài)解算等[1]。但其易受環(huán)境噪聲影響,噪聲的讀取對控制系統(tǒng)具有重要影響,可能會導致系統(tǒng)失效。理想狀況下,期望傳感器讀取的數(shù)據(jù)無噪聲,而實際情況與期望不符,因此需要對噪聲進行濾除,常見的濾波器使用頻率對噪聲進行濾波,而實際中并不適用,同時也有如維納濾波等頻域的方法進行濾波,其需要存儲大量數(shù)據(jù),且要求數(shù)據(jù)平穩(wěn),不易于應(yīng)用于嵌入式系統(tǒng)[2]??柭鼮V波是一種時域分析方法,因其簡單且所需存儲空間小而被廣泛應(yīng)用。文獻[3-4]驗證了卡爾曼濾波在時間序列上去噪的有效性和實時性,但實際應(yīng)用時存在卡爾曼濾波器的各參數(shù)初始值不同對濾波效果的影響不同的問題[5-6]。文獻[7-9]使用單個變量法分析了不同初始參數(shù)對卡爾曼濾波器的影響,其中初始參數(shù)包括系統(tǒng)噪聲參數(shù)、測量噪聲參數(shù)、濾波初值、協(xié)方差參數(shù),但其只針對單個變量,未對系統(tǒng)噪聲和測量噪聲參數(shù)進行結(jié)合分析。文獻[8]和文獻[9]通過仿真和實際應(yīng)用給出了系統(tǒng)噪聲和測量噪聲比對卡爾曼濾波結(jié)果的影響,但僅對少數(shù)數(shù)據(jù)進行粗略分析得出的結(jié)論缺乏可信度。
針對上述問題,本文理論分析了系統(tǒng)噪聲和測量噪聲的比值對卡爾曼濾波器的影響,并通過仿真進行了驗證。同時結(jié)合上述分析,提出了將EMA算法和卡爾曼算法融合,并通過仿真和實際應(yīng)用進行對比驗證,結(jié)果表明該算法明顯優(yōu)于經(jīng)典卡爾曼算法和互補濾波算法,濾波結(jié)果更接近于真實值。
卡爾曼濾波器具有良好的噪聲處理能力。線性卡爾曼濾波器因其計算用時短,內(nèi)存占用小等優(yōu)點,常被用于嵌入式系統(tǒng)中的傳感器濾波和數(shù)據(jù)融合。其主要分為2部分,如式(1)~式(5)所示:
預(yù)測階段:
(1)
(2)
更新階段:
(3)
(4)
Pk|k=(I-KkHk)Pk|k-1
(5)
通過調(diào)整部分參數(shù)將卡爾曼濾波器用于MEMS降噪,其卡爾曼濾波算法設(shè)計如下:
(6)
pk|k-1=pk-1|k-1+Q
(7)
Kk=pk|k-1(pk|k-1+R)-1
(8)
(9)
pk|k=(1-Kk)pk|k-1
(10)
系統(tǒng)噪聲Q和測量噪聲R直接影響卡爾曼增益,當系統(tǒng)收斂時,卡爾曼濾波相當于一階低通濾波器,由一階低通濾波器的原理可知:越小的卡爾曼增益,波形越穩(wěn)定,越大的卡爾曼增益,波形波動越大,而越穩(wěn)定的波形帶來的是靈敏度的損失。因此需要找到一個適中的卡爾曼增益。通過式(8)可以看到卡爾曼增益是pk|k-1和R的關(guān)系式,其中R為定值,將pk|k-1用pk-1|k-1替換,并展開到m處,如下:
(11)
隨著迭代,卡爾曼增益終收斂于某一固定值,設(shè)為K,代入化簡得:
pk|k-1=(1-K)mpk-m-1|k-m-1+K-1[(1-(1-K)m]Q
(12)
卡爾曼增益取值范圍為(0~1),由式(12)可解出:
(13)
從式(13)可以看出卡爾曼增益最終收斂值僅與R/Q值有關(guān),圖1為R/Q比值與卡爾曼增益K的關(guān)系曲線。從圖1可以看出當R/Q比值越大,卡爾曼增益受到R/Q影響將減小,當R/Q比值大于50時,R/Q比值對卡爾曼增益影響將越來越小,因此對于收斂后的卡爾曼濾波器的影響也將會減小,所以調(diào)整R/Q比值不易過小,可根據(jù)該關(guān)系進行調(diào)整。
圖1 卡爾曼增益K與R/Q的關(guān)系圖
為了更好地分析R/Q比值對濾波效果的影響,通過設(shè)置不同R/Q比值對存在白噪聲的傳感器波形進行濾波,圖2和圖3為不同R/Q值下,當數(shù)據(jù)變化時和數(shù)據(jù)穩(wěn)定時的仿真圖。
圖2 數(shù)據(jù)變化處的放大圖
圖3 數(shù)據(jù)穩(wěn)定處的放大圖
從圖2和圖3可以得出,在收斂期R/Q比值越大,卡爾曼濾波效果越好,但其靈敏度越低,在傳感器數(shù)據(jù)變化時,跟蹤效果越差。
通過分析得到如下結(jié)論:R/Q值越大,收斂期濾波效果越好,其靈敏度越低。因此為了提高其靈敏度和精度,提出一種將EMA算法和卡爾曼濾波融合的算法。EMA算法又稱指數(shù)移動平均,常與時間序列使用,消除短期波動,突出趨勢變化。EMA是簡單移動平均通過加權(quán)得到。其又分為一階指數(shù)平滑、二階指數(shù)平滑、三階指數(shù)平滑。因傳感器數(shù)據(jù)存在著平穩(wěn)期和變化期,選用二階指數(shù)平滑,其平滑公式如下:
Lk=axk+(1-a)(Lk-1+Bk-1)
(14)
Bk=b(Kk-Lk-1)+(1-b)Bk-1
(15)
式中:a和b為加權(quán)因子。
改進算法流程圖如圖4所示。圖4中,M為窗口中歷史數(shù)據(jù)的數(shù)量,Lk為最終輸出的濾波結(jié)果,T為歷史迭代次數(shù)計數(shù)器。
圖4 改進算法流程圖
為了驗證改進算法的可行性,通過仿真分別計算收斂前、后的均方跟誤差(RMSE)和數(shù)據(jù)變化期間的平均RMSE。RMSE是衡量預(yù)測值與真實值之間的偏差,其更能反應(yīng)出濾波的效果。為了便于比較,選取R/Q為50、100和R/Q為50時的改進算法。圖5~圖8為RMSE的仿真圖。
圖5 收斂前的RMSE圖
圖6 收斂前的RMSE局部放大圖
圖7 收斂后的RMSE圖
圖8 收斂后的RMSE局部放大圖
從圖5和圖7可以得到如下結(jié)論:在同一初始參數(shù)的情況下,改進算法的RMSE均在經(jīng)典算法之下;在收斂前,不同的R/Q對濾波效果無明顯作用,而改進算法的效果顯著。表1為不同情況下RMSE的平均值。
表1 仿真數(shù)據(jù)表
綜上所述及參考表1數(shù)據(jù),改進算法在同一參數(shù)的情況下,相比于經(jīng)典卡爾曼濾波算法,收斂前期的RMSE提升約13%,收斂后期的RMSE提升約10%,數(shù)據(jù)變化期的RMSE提升約9%。因此可以得到如下結(jié)論:改進算法較經(jīng)典算法的濾波效果和靈敏度都有著明顯的改善。
為了驗證改進算法在實際應(yīng)用時濾波效果,采用MPU6050作為傳感器,采集其數(shù)據(jù)分別采用經(jīng)典卡爾曼濾波、互補濾波和改進算法,并進行姿態(tài)解算,將單軸的姿態(tài)數(shù)據(jù)通過串口每10 ms輸出1次。為了更好地展示出算法的效果,將實驗設(shè)備放置在水平平面,待數(shù)據(jù)平穩(wěn),將傳感器一角放在另一平面,使得其中一姿態(tài)發(fā)生變化,待數(shù)據(jù)平穩(wěn),再將其放平穩(wěn),如此往復,增加拿起和放下的速度,觀測器串口數(shù)據(jù)波形如圖9~圖11所示。以此可觀察到數(shù)據(jù)在變化時的波動情況和濾波算法在跟蹤時存在的問題。
圖9 各算法的應(yīng)用的數(shù)據(jù)圖
圖10 位置1的放大圖
圖11 位置2的放大圖
從圖10可以看出:在平穩(wěn)階段,改進算法穩(wěn)定性較好,濾波效果較好。從圖11可以看出:當數(shù)據(jù)發(fā)生變化時,改進算法的靈敏度和濾波效果都優(yōu)于其余2種算法。因此可以得出以下結(jié)論:改進算法的濾波效果優(yōu)于互補濾波和經(jīng)典卡爾曼濾波。
因不同的初始參數(shù)導致卡爾曼濾波器的濾波靈敏度和精度變化的問題,本文采用將EMA算法同卡爾曼濾波融合的自適應(yīng)的方法對高靈敏度傳感器進行降噪處理。仿真對比了不同時期、不同參數(shù)的經(jīng)典卡爾曼濾波和改進算法的RMSE,在實際應(yīng)用中進行姿態(tài)角解算,與互補濾波和經(jīng)典卡爾曼濾波相比,改進的算法去噪效果明顯,且能夠有效提升高靈敏度傳感器采集數(shù)據(jù)的真實性和靈敏度,體現(xiàn)出所提方法的有效性和可行性。