鄭怡晨,劉 洪
(北京信息科技大學(xué)高動態(tài)導(dǎo)航技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101)
MEMS(微機(jī)電系統(tǒng))加速度計廣泛應(yīng)用于航空航天、自動駕駛和機(jī)器人等領(lǐng)域[1-2]。由于MEMS加速度計在長期使用過程中存在測量誤差導(dǎo)致輸出精度較低,這限制了MEMS加速度計在實(shí)際應(yīng)用中的進(jìn)一步推廣和發(fā)展。因此,采用合理的方法對MEMS加速度計的測量誤差進(jìn)行補(bǔ)償,對于提高其測量精度具有重要意義。
MEMS加速度計的測量誤差包括確定性誤差和隨機(jī)性誤差。確定性誤差例如零偏誤差、未正交對準(zhǔn)和比例因子誤差可以通過標(biāo)定補(bǔ)償[3]。由機(jī)械噪聲和電子噪聲等復(fù)雜隨機(jī)干擾引起的隨機(jī)誤差[4-5]無法通過標(biāo)定消除。因此,隨機(jī)誤差是制約MEMS加速度計精度提高的主要因素。用來降低隨機(jī)誤差的網(wǎng)絡(luò)算法主要包括傳統(tǒng)的統(tǒng)計方法和人工智能(AI)方法。
隨著人工智能的快速發(fā)展[8-9],提出了更準(zhǔn)確的基于人工智能算法的隨機(jī)漂移非線性模型。人工智能方法主要包括支持向量機(jī)建模方法[10-12]和神經(jīng)網(wǎng)絡(luò)建模方法[13-14],這類方法將數(shù)據(jù)的建模視為序列預(yù)測問題。由于隨機(jī)誤差中包含隨機(jī)漂移和白噪聲,因此需要通過預(yù)處理,去除隨機(jī)誤差中的白噪聲。預(yù)處理一般采用均值濾波、前向線性預(yù)測濾波和EMD等方法。目前,通過基于人工智能方法構(gòu)建的模型補(bǔ)償隨機(jī)漂移的研究相對較少。
人工智能方法中,采用支持向量機(jī)的補(bǔ)償方法對MEMS加速度計的隨機(jī)漂移進(jìn)行補(bǔ)償?shù)娜秉c(diǎn)在于選取特征向量和模型參數(shù)的過程復(fù)雜。因此,有必要用神經(jīng)網(wǎng)絡(luò)方法構(gòu)建隨機(jī)漂移模型以實(shí)現(xiàn)對隨機(jī)漂移的高精度估計和補(bǔ)償。本文建立了一個基于LSTM深度神經(jīng)網(wǎng)絡(luò)的MEMS加速度計誤差模型,抑制MEMS加速度計的隨機(jī)漂移。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)是輸入為時間序列數(shù)據(jù),在序列的演進(jìn)方向進(jìn)行遞歸且所有節(jié)點(diǎn)按鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò)[15]。圖1為RNN神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖以及展開圖。
圖1 RNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)展開圖
圖1中,xt表示第t步的輸入值,st表示第t步的隱藏值,ot表示第t步的輸出值,U是輸入層到隱藏層的權(quán)重矩陣,V是隱藏層到輸出層的權(quán)重矩陣,W是各時間點(diǎn)隱藏層之間的權(quán)重矩陣。隱藏層的值st與當(dāng)前的輸入值xt和上一隱藏層的值st-1有關(guān)。
LSTM是能夠捕捉長時依賴的特殊時間循環(huán)神經(jīng)網(wǎng)絡(luò),用于解決RNN存在的梯度消失與梯度爆炸問題[16]。LSTM的核心是記憶塊(memory block),主要包含3個門控單元與1個記憶細(xì)胞,3個門控單元分別為:遺忘門、輸入門和輸出門。LSTM的細(xì)胞狀態(tài)可以控制信息傳遞給下一時刻,而通過門控單元可以對細(xì)胞添加或刪除信息。LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
通過門控單元可以有選擇地決定信息是否傳遞,它由1個Sigmoid神經(jīng)網(wǎng)絡(luò)層和1個成對乘法操作組成。該層的輸出是介于0~1的數(shù),表示允許通過信息的多少,0表示不允許通過,1表示允許通過。Sigmoid函數(shù)為
σ(x)=1/[1+e-x]
(1)
門控單元的形式表示為
目前健康管理還沒有一個公認(rèn)和統(tǒng)一的定義。簡單來說,健康管理是以人的健康為中心,長期連續(xù),周而復(fù)始,螺旋上升的全人、全程、全方位的健康服務(wù)。可見,健康管理的目標(biāo)和健康的定義是密切相關(guān)的。世界衛(wèi)生組織(WHO)指出:“健康乃是一種在身體上、精神上的完滿狀態(tài),以及良好的適應(yīng)力,而不僅僅是沒有疾病和衰弱的狀態(tài)”。與健康管理相關(guān)的另外一個重要概念就是管理。目前認(rèn)為,在健康管理中,管理是改善人群健康狀態(tài)以達(dá)到最大健康效應(yīng)的過程。因此,從管理角度而言,健康管理也是以健康為核心的。
g(x)=σ(Wx+b)
(2)
遺忘門、輸入門和輸出門公式分別為:
ft=σ(Wxfxt+Whfht-1+bf)
(3)
it=σ(Wxixt+Whiht-1+bi)
(4)
ot=σ(Wxoxt+Whoht-1+bo)
(5)
式中:ft、it、ot分別為t時刻遺忘門、輸入門和輸出門的輸出值;W和b分別為網(wǎng)絡(luò)的權(quán)重系數(shù)矩陣和偏置值;ht-1為t-1時刻的隱藏層輸出。
當(dāng)前時刻記憶細(xì)胞狀態(tài)值由輸入門和遺忘門決定,公式為
ct=ftct-1+ittanh(Wxcxt+Whcht-1+dc)
(6)
式中ct-1為t-1時刻的記憶細(xì)胞狀態(tài)值。
輸出值ht與輸入值相關(guān),公式為
ht=ottanh(ct)
(7)
本文使用LSTM神經(jīng)網(wǎng)絡(luò)模型,模型確定為單輸入單輸出的系統(tǒng),輸入為MEMS加速度計的實(shí)際輸出值,輸出為預(yù)測的MEMS加速度計的誤差信號。
圖3 LSTM模型建立過程
選用2.1中劃分的訓(xùn)練集對LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。輸入維度為2,時間步數(shù)為1。確定LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和存儲單元數(shù)目。為了訓(xùn)練神經(jīng)網(wǎng)絡(luò),需要定義一個損失函數(shù)來衡量模型預(yù)測值和真實(shí)值之間的誤差,并使用優(yōu)化器更新模型參數(shù),使損失函數(shù)最小化。
使用測試集評估模型性能。LSTM 網(wǎng)絡(luò)模型的預(yù)測能力根據(jù)平均絕對誤差(MAE)、均方誤差(MSE)、均方根誤差(RMSE)這3個評價指標(biāo)來判定[17]:
(8)
(9)
(10)
MAE、MES、RMSE的值越小表示預(yù)測模型的性能越好。
實(shí)驗(yàn)中使用的設(shè)備包括MEMS慣性測量單元 (IMU)MPU6050、USB-TTL模塊和計算機(jī)。IMU首先被校準(zhǔn)并靜態(tài)放置在工作臺上。然后以100 Hz的采樣頻率收集X軸加速度計的輸出,以g為單位。 校準(zhǔn)后,記錄了6320個數(shù)據(jù)點(diǎn)。
在實(shí)驗(yàn)中,將得到的數(shù)據(jù)點(diǎn)通過窗口大小為3的均值濾波器進(jìn)行預(yù)處理,生成的數(shù)據(jù)集分為2部分(50%∶50%)。 圖4顯示了均值濾波前后的信號。
圖4 預(yù)處理均值濾波后與原始數(shù)據(jù)對比圖
選用3160個樣本數(shù)據(jù)集為訓(xùn)練集,3160個樣本為測試集。對每種情況訓(xùn)練200次,觀察網(wǎng)絡(luò)模型的性能指標(biāo)。
本文模型由4個 LSTM 層和2個全連接層組成,其中每個 LSTM 層的輸出都需要返回到下一層的輸入。在這個模型中,第1個 LSTM 層有 50 個神經(jīng)元,其余3個 LSTM 層分別有 100、200 和 300 個神經(jīng)元。每個 LSTM 層都返回序列數(shù)據(jù),直到最后一層,之后將輸出序列數(shù)據(jù)重新形成單個向量,然后經(jīng)過2個全連接層后輸出單個標(biāo)量結(jié)果。
本文模型使用二元交叉熵作為損失函數(shù),ADAM 優(yōu)化器進(jìn)行優(yōu)化,準(zhǔn)確度作為評估指標(biāo)。使用 fit 函數(shù)對模型進(jìn)行訓(xùn)練,將訓(xùn)練數(shù)據(jù)和標(biāo)簽以及訓(xùn)練時每個批次的大小和迭代次數(shù),作為函數(shù)的輸入,然后模型通過反向傳播算法進(jìn)行參數(shù)優(yōu)化,不斷迭代,直到損失函數(shù)達(dá)到預(yù)定的最大迭代次數(shù)為止。最后,通過實(shí)際數(shù)據(jù)對訓(xùn)練好的模型進(jìn)行評估,得到其在應(yīng)用中的表現(xiàn)。
本文采用均值濾波的方法對采集到的數(shù)據(jù)進(jìn)行預(yù)處理,并對LSTM網(wǎng)絡(luò)進(jìn)行了200次迭代訓(xùn)練。將獲得的網(wǎng)絡(luò)參數(shù)存儲,并使用這些參數(shù)對測試數(shù)據(jù)集進(jìn)行測試,以評估LSTM網(wǎng)絡(luò)模型的性能。圖5顯示了LSTM網(wǎng)絡(luò)訓(xùn)練損失隨著迭代次數(shù)的增加的變化情況。結(jié)果表明,LSTM網(wǎng)絡(luò)在經(jīng)過15次訓(xùn)練后,其損失函數(shù)開始保持穩(wěn)定狀態(tài),不再顯著下降。
圖5 LSTM神經(jīng)網(wǎng)絡(luò)的模型損失和迭代次數(shù)的關(guān)系
為了驗(yàn)證本文提出的隨機(jī)漂移補(bǔ)償方法的有效性,設(shè)計了相關(guān)實(shí)驗(yàn),并與傳統(tǒng)ARMA-KF算法進(jìn)行比較,結(jié)果如表1所示。由表1可知LSTM網(wǎng)絡(luò)模型相比于ARMA-KF模型在抑制MEMS加速度計的隨機(jī)漂移方面表現(xiàn)出明顯的優(yōu)越性。圖6 顯示了2種方法的原始觀察結(jié)果和補(bǔ)償結(jié)果。
表1 補(bǔ)償前后加速度計的性能指標(biāo)
圖6 實(shí)驗(yàn)不同方法的補(bǔ)償結(jié)果
通過3次實(shí)驗(yàn)對補(bǔ)償后的模型進(jìn)行了評估,結(jié)果如表2所示,這3次實(shí)驗(yàn)的均方誤差、絕對值均差和均方根誤差變化較小,且整體數(shù)值較小,驗(yàn)證了本文模型具有很高的預(yù)測精度和穩(wěn)定的補(bǔ)償效果。
表2 LSTM網(wǎng)絡(luò)評價指標(biāo)
本文提出了一種將深度學(xué)習(xí)算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合的補(bǔ)償 MEMS 加速度計隨機(jī)漂移的方法。首先,對采樣數(shù)據(jù)進(jìn)行均值濾波和歸一化預(yù)處理,然后利用有限樣本數(shù)據(jù)對LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使網(wǎng)絡(luò)對非線性函數(shù)輸出具有一定的預(yù)測能力,從而實(shí)現(xiàn)對MEMS加速度計隨機(jī)誤差的補(bǔ)償。實(shí)驗(yàn)結(jié)果表明,本文提出的方法降低了MEMS加速度計的噪聲指標(biāo)80%以上,并且在相同的數(shù)據(jù)集上,基于LSTM的降噪方法明顯優(yōu)于傳統(tǒng)的ARMA-KF方法,驗(yàn)證了基于LSTM濾波器的有效性。