馬一鳴, 陳 帥, 王國棟, 張 琨, 程 玉
(1.南京理工大學(xué),南京 210000; 2.北京航天控制儀器研究所,北京 100000)
慣性導(dǎo)航是一種獨(dú)立性強(qiáng)、短時精度高、環(huán)境適應(yīng)能力強(qiáng)的導(dǎo)航方法,通常與衛(wèi)星導(dǎo)航結(jié)合構(gòu)成組合導(dǎo)航系統(tǒng),主要用于保證衛(wèi)星拒止情況下的導(dǎo)航精度[1]。隨著微機(jī)電技術(shù)的發(fā)展,微慣性測量單元(Miniature Inertial Measurement Unit,MIMU)因其低成本、小體積、低功耗、高可靠性、較強(qiáng)抗沖擊性的特點(diǎn)在穿戴設(shè)備、智能汽車、小型無人機(jī)以及智能彈藥等領(lǐng)域快速占據(jù)了市場[2]。由于MIMU自身存在系統(tǒng)性誤差與隨機(jī)誤差,并且系統(tǒng)性誤差占總誤差的90%以上,因此研究如何補(bǔ)償系統(tǒng)性誤差以提高M(jìn)IMU實(shí)際使用精度極其重要[3]。
由于計(jì)算位置、姿態(tài)與速度時需要對MIMU輸出進(jìn)行積分,因此,系統(tǒng)性誤差對慣性導(dǎo)航系統(tǒng)的整體性能影響顯著。通過MIMU的標(biāo)定對其系統(tǒng)性誤差進(jìn)行補(bǔ)償是使用MIMU必不可少的步驟。傳統(tǒng)的標(biāo)定方法是使用轉(zhuǎn)臺設(shè)備提供的角速度以及不同位置的重力加速度作為基準(zhǔn),利用測量數(shù)據(jù)與基準(zhǔn)進(jìn)行線性擬合,建立標(biāo)定模型以達(dá)到補(bǔ)償確定性誤差的目的。然而,MIMU大多數(shù)時候在低轉(zhuǎn)速區(qū)間工作,低轉(zhuǎn)速區(qū)間陀螺儀輸出具有強(qiáng)非線性,傳統(tǒng)方法的補(bǔ)償效果差[4]。當(dāng)MIMU三軸同時存在角運(yùn)動時,三軸加速度計(jì)與三軸陀螺儀不可避免存在耦合誤差,傳統(tǒng)的標(biāo)定方法難以學(xué)習(xí)慣性器件復(fù)雜的誤差特征,無法對誤差進(jìn)行有效、精確的補(bǔ)償[5]。針對陀螺輸出非線性問題,程章等[4]提出了使用BP神經(jīng)網(wǎng)絡(luò)對MEMS陀螺的輸出進(jìn)行補(bǔ)償,設(shè)計(jì)了基于優(yōu)先數(shù)的速率實(shí)驗(yàn),但該方法忽略了加速度對陀螺的影響;文獻(xiàn)[5-6]分別使用BP和徑向基神經(jīng)網(wǎng)絡(luò)(RBFNN)補(bǔ)償三軸加速度和角速度,但實(shí)驗(yàn)沒有考慮到位置動態(tài)變化的連續(xù)性以及三軸角運(yùn)動;李榮冰等[7]采用長短時記憶(LSTM)深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)了MIMU標(biāo)定方法,考慮了慣性數(shù)據(jù)的時序性以及多維要素影響,提高了誤差模型精度;文獻(xiàn)[8-9]利用BP神經(jīng)網(wǎng)絡(luò)方法對陀螺儀的溫度漂移進(jìn)行補(bǔ)償,提高了陀螺儀的溫度適應(yīng)性。
神經(jīng)網(wǎng)絡(luò)具有極強(qiáng)的非線性映射能力以及泛化能力[10]。本文分別采用兩種深度循環(huán)神經(jīng)網(wǎng)絡(luò)和兩種淺層神經(jīng)網(wǎng)絡(luò)建立動態(tài)誤差標(biāo)定模型。設(shè)計(jì)轉(zhuǎn)臺內(nèi)、中、外3軸角運(yùn)動實(shí)驗(yàn)方法,對三軸加速度計(jì)與陀螺儀施加連續(xù)動態(tài)激勵以及溫度激勵。最后,通過實(shí)驗(yàn)對比不同模型下的補(bǔ)償效果,結(jié)果表明,門控循環(huán)單元(GRU)深度循環(huán)神經(jīng)網(wǎng)絡(luò)考慮了MIMU數(shù)據(jù)的時序性,從而達(dá)到了更好的誤差補(bǔ)償效果,并且相對于LSTM需要訓(xùn)練更少的參數(shù)。
考慮到陀螺儀與加速度計(jì)的零偏誤差、標(biāo)度因數(shù)誤差、安裝誤差以及隨機(jī)誤差,建立如下誤差模型
(1)
(2)
廣義回歸神經(jīng)網(wǎng)絡(luò)(GRNN)是一種基于樣本的神經(jīng)網(wǎng)絡(luò)模型,樣本數(shù)據(jù)直接用于神經(jīng)網(wǎng)絡(luò)的計(jì)算,模型訓(xùn)練的負(fù)擔(dān)小。通過樣本在特征空間的映射,在訓(xùn)練數(shù)據(jù)較少的情況下也具有很好的學(xué)習(xí)能力與擬合能力。GRNN結(jié)構(gòu)如圖1所示,其中包含輸入層、模式層、求和層以及輸出層[11]。
圖1 GRNN結(jié)構(gòu)圖Fig.1 Structure diagram of GRNN
模式層神經(jīng)元表達(dá)式為
(3)
式中:X代表輸入向量;Xi代表樣本的輸入向量;n是樣本數(shù)目;σ是平滑因子,控制著樣本空間距離縮放程度,當(dāng)σ趨于零時,Pi趨于零,輸出只依賴于完全相同的樣本,當(dāng)σ趨于無窮時,Pi趨于1,輸出依賴于所有樣本的平均,所以需要適當(dāng)?shù)剡x取σ以達(dá)到考慮相似樣本的目的。
求和層神經(jīng)元表達(dá)式為
(4)
(5)
其中:SD為對模式層進(jìn)行權(quán)值為1的求和;Sj為對模式層的加權(quán)求和;yj i代表樣本i輸出向量的第j個元素;N代表輸出向量的維度。
輸出層神經(jīng)元的表達(dá)式為
(6)
GRNN的本質(zhì)是對輸入與樣本之間的空間距離進(jìn)行計(jì)算,并根據(jù)空間距離進(jìn)行加權(quán)變換,從而得到輸出。其中,通過將輸入特征映射到高維的模式層能夠更好地捕捉多維輸入與多維輸出之間的映射關(guān)系。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是針對時序問題提出的深度神經(jīng)網(wǎng)絡(luò),但是當(dāng)訓(xùn)練的時間序列較長時,在誤差反向傳播中會出現(xiàn)梯度消失與梯度爆炸的問題。為了解決這個問題,1997年HOCHREITER等提出了LSTM[12],之后,2014年CHO等提出了GRU[13]。相對于LSTM,GRU需要訓(xùn)練的參數(shù)較少,并且在非語言建模任務(wù)中可以達(dá)到優(yōu)于LSTM的效果[14]。
GRU神經(jīng)元結(jié)構(gòu)示意圖見圖2,其中包含了重置門與更新門,重置門用于決定是否忽略上一時刻的隱含層狀態(tài),更新門用來決定隱含層狀態(tài)的更新。門控結(jié)構(gòu)控制著隱含層狀態(tài)對之前信息的記憶與遺忘。GRU的前向傳播表達(dá)式為
圖2 GRU神經(jīng)元結(jié)構(gòu)示意圖Fig.2 Schematic diagram of GRU neurons structure
rt=σ(Wrxt+Urht-1)
(7)
zt=σ(W′zxt+Uzht-1)
(8)
(9)
(10)
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)需要根據(jù)學(xué)習(xí)的對象確定,尤其是輸入層與輸出層的選擇。根據(jù)傳統(tǒng)標(biāo)定模型可知MIMU的測量輸出與實(shí)際輸出存在一定的映射關(guān)系??紤]到加速度計(jì)與陀螺儀輸出之間的耦合誤差和與溫度有關(guān)的溫度漂移誤差,此處應(yīng)存在MIMU測量輸出、溫度和MIMU實(shí)際輸出之間的映射關(guān)系。因此,本文選擇神經(jīng)網(wǎng)絡(luò)的輸入為三軸陀螺儀測量的角速度Wx,Wy,Wz,三軸加速度計(jì)測量的加速度Ax,Ay,Az及溫度T。神經(jīng)網(wǎng)絡(luò)的輸出為三軸實(shí)際的角速度ωx,ωy,ωz和三軸實(shí)際的加速度ax,ay,az。其中,三軸實(shí)際角速度由轉(zhuǎn)臺的角速度轉(zhuǎn)換得到,三軸實(shí)際的加速度由轉(zhuǎn)臺的角位置轉(zhuǎn)換得到。神經(jīng)網(wǎng)絡(luò)整體工作結(jié)構(gòu)如圖3所示。
圖3 整體工作結(jié)構(gòu)示意圖Fig.3 Schematic diagram of overall working structure
由于GRNN與RBFNN的層級結(jié)構(gòu)是確定的,所以只需要確定合適的平滑因子和目標(biāo)精度。通過多次實(shí)驗(yàn)選擇在測試集上達(dá)到最優(yōu)效果的平滑因子與目標(biāo)精度即可。
深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)決定了其對復(fù)雜問題的學(xué)習(xí)能力,隱含層數(shù)越多,網(wǎng)絡(luò)的特征學(xué)習(xí)能力越強(qiáng),同時網(wǎng)絡(luò)的復(fù)雜度也會增加、需要訓(xùn)練的參數(shù)增加、網(wǎng)絡(luò)的訓(xùn)練速度下降。因此,需要針對具體問題選擇合適的神經(jīng)網(wǎng)絡(luò)層數(shù)、神經(jīng)元數(shù)目,損失函數(shù)、優(yōu)化器、激活函數(shù)等。
本文針對的是回歸問題,因此應(yīng)該選擇解決回歸問題的損失函數(shù),如均方誤差、平均絕對誤差等。為了避免循環(huán)神經(jīng)網(wǎng)絡(luò)中梯度消失與梯度爆炸問題,GRU與LSTM神經(jīng)元的激活函數(shù)通常選擇輸出范圍是[-1,1]的sigmoid函數(shù)和tanh函數(shù)。神經(jīng)網(wǎng)絡(luò)的層數(shù)、神經(jīng)元數(shù)目、優(yōu)化器通常需要進(jìn)行多次實(shí)驗(yàn),通過觀察模型是否過擬合和測試集擬合精度,選擇適合的參數(shù)。
由于傳統(tǒng)的標(biāo)定實(shí)驗(yàn)采用的多位置翻轉(zhuǎn)與角速率實(shí)驗(yàn)方法,無法充分地激勵MIMU的誤差特征,并且實(shí)際使用中MIMU的運(yùn)動通常是動態(tài)連續(xù)的。因此本文設(shè)計(jì)了MIMU的整體動態(tài)標(biāo)定實(shí)驗(yàn)方法。
實(shí)驗(yàn)設(shè)備采用TBL-3302-CT三軸帶溫箱位置速率轉(zhuǎn)臺。實(shí)驗(yàn)流程如下。
首先,通過轉(zhuǎn)接工裝將MIMU固定在內(nèi)環(huán)轉(zhuǎn)臺上,使用直流穩(wěn)壓電源對MIMU供電,預(yù)熱10 min。
然后,控制轉(zhuǎn)臺內(nèi)環(huán)以0.01 (°)/s2的角加速度在1 (°)/s到-1 (°)/s之間均勻變化,控制轉(zhuǎn)臺中環(huán)以0.1 (°)/s2的角加速度轉(zhuǎn)動,在10 (°)/s到-10 (°)/s之間變化,控制轉(zhuǎn)臺外環(huán)以1 (°)/s2的角加速度在100 (°)/s到-100 (°)/s之間均勻變化,同時控制溫箱溫度在-25℃~40℃之間變化。
最后,重復(fù)上述轉(zhuǎn)動與溫箱控制,采集三軸帶溫箱轉(zhuǎn)臺與MIMU的數(shù)據(jù)并保存。
上述實(shí)驗(yàn)達(dá)到了對三軸陀螺儀與三軸加速度計(jì)的動態(tài)連續(xù)激勵,有利于激發(fā)出MIMU的誤差特征,包括加速度與角速度的耦合誤差、溫度誤差、安裝誤差等。
實(shí)驗(yàn)使用自主研發(fā)的微慣性測量單元,其中集成了三軸陀螺儀、三軸加速度計(jì)和溫度傳感器,數(shù)據(jù)采集頻率為200 Hz。
為了驗(yàn)證神經(jīng)網(wǎng)絡(luò)模型補(bǔ)償效果進(jìn)行對比,對MIMU進(jìn)行24位置翻轉(zhuǎn)實(shí)驗(yàn),采集3 min的輸出數(shù)據(jù),進(jìn)行角速率實(shí)驗(yàn),對每個軸采集200~-200 (°)/s轉(zhuǎn)速區(qū)間22個速率點(diǎn)的整周數(shù)據(jù),使用傳統(tǒng)的標(biāo)定模型對其進(jìn)行擬合。
傳統(tǒng)模型擬合參數(shù)如表1和表2所示。
表1 加速度計(jì)標(biāo)定系數(shù)Table 1 Calibration coefficients of accelerometer
表2 陀螺儀標(biāo)定系數(shù)Table 2 Calibration coefficients of gyroscope
根據(jù)動態(tài)標(biāo)定實(shí)驗(yàn)采集到的數(shù)據(jù)建立訓(xùn)練集與測試集,使用訓(xùn)練集對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。通過測試集對訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)性能進(jìn)行測試,根據(jù)測試結(jié)果對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)進(jìn)行調(diào)整優(yōu)化。
為了充分地進(jìn)行對比,本文使用了RBFNN,GRNN,GRU,LSTM多種神經(jīng)網(wǎng)絡(luò)進(jìn)行建模與補(bǔ)償。通過多次測試優(yōu)化,確定GRNN的平滑因子為0.07,目標(biāo)精度為1E-4; RBF神經(jīng)網(wǎng)絡(luò)平滑因子為60,最大神經(jīng)元為30,目標(biāo)精度為1E-5。根據(jù)經(jīng)驗(yàn),通常3層循環(huán)神經(jīng)網(wǎng)絡(luò)隱含層即可解決大多數(shù)問題。通過測試對比,確定GRU隱含層神經(jīng)元數(shù)目為60,損失函數(shù)為均方差,優(yōu)化器為Nadma,訓(xùn)練步數(shù)為4000,隱含層激活函數(shù)為tanh,循環(huán)步的激活函數(shù)為Sigmoid。LSTM神經(jīng)網(wǎng)絡(luò)的設(shè)置與GRU相同,同樣的條件下GRU需要訓(xùn)練的參數(shù)較LSTM下降24%。不同模型補(bǔ)償后殘差對比見表3。
表3 不同模型補(bǔ)償后殘差對比Table 3 Comparison of residuals after compensation of different models
通過表3可知,從殘差平均值與標(biāo)準(zhǔn)差兩方面而言,傳統(tǒng)標(biāo)定模型對誤差的補(bǔ)償效果有限,綜合殘差均值減少9.2%,標(biāo)準(zhǔn)差減少4.7%。淺層神經(jīng)網(wǎng)絡(luò)相較于傳統(tǒng)標(biāo)定模型而言補(bǔ)償效果有一定提升,綜合殘差均值減少30%,標(biāo)準(zhǔn)差減少33%。其中,GRNN模型相對于RBF模型補(bǔ)償效果更好,因?yàn)镚RNN模型通過樣本建立的高維模式層在樣本量較少時能夠達(dá)到更好的效果。循環(huán)深度神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)精確的誤差補(bǔ)償,綜合殘差均值減少55%,標(biāo)準(zhǔn)差減少38%。其中,GRU神經(jīng)網(wǎng)絡(luò)與LSTM神經(jīng)網(wǎng)絡(luò)補(bǔ)償效果相近,GRU相對于LSTM的訓(xùn)練參數(shù)少,進(jìn)而訓(xùn)練速度更快,計(jì)算量少。
圖4和圖5分別為X軸陀螺儀和X軸加速度計(jì)輸出補(bǔ)償后的殘差對比。
圖4 X軸陀螺儀輸出補(bǔ)償后殘差對比圖Fig.4 Comparison of residual after X-axis gyroscope output compensation
圖5 X軸加速度計(jì)輸出補(bǔ)償后殘差對比圖Fig.5 Comparison of residual after X-axis accelerometer output compensation
通過圖4和圖5可知,深度循環(huán)神經(jīng)網(wǎng)絡(luò)可以較好地補(bǔ)償誤差,但是LSTM模型補(bǔ)償后殘差相對于GRU模型存在較多的毛刺,因此LSTM補(bǔ)償后的殘差標(biāo)準(zhǔn)差較大。
綜上所述,淺層神經(jīng)網(wǎng)絡(luò)(RBFNN,GRNN)可以實(shí)現(xiàn)對多因素影響的MIMU誤差特征建模與補(bǔ)償,深度循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU,LSTM)可以在此基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)在時序特征上的誤差補(bǔ)償,其中,GRU模型相對于LSTM模型補(bǔ)償后殘差的標(biāo)準(zhǔn)差小,訓(xùn)練參數(shù)少,計(jì)算負(fù)擔(dān)小。
本文提出了MIMU測量輸出與實(shí)際輸出之間的神經(jīng)網(wǎng)絡(luò)模型,設(shè)計(jì)了動態(tài)標(biāo)定實(shí)驗(yàn)流程,構(gòu)建了多種神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行測試。相較于傳統(tǒng)的標(biāo)定模型而言,淺層神經(jīng)網(wǎng)絡(luò)由于考慮了多種因素在MIMU誤差中的相互影響,誤差補(bǔ)償效果有所提升,深度循環(huán)神經(jīng)網(wǎng)絡(luò)通過對時序特征的學(xué)習(xí),誤差補(bǔ)償效果進(jìn)一步提高。實(shí)驗(yàn)結(jié)果表明,GRU模型可以實(shí)現(xiàn)對MIMU誤差的深度補(bǔ)償,不僅可以補(bǔ)償確定性誤差,對于具有時序性的隨機(jī)誤差也有一定補(bǔ)償效果。隨著半導(dǎo)體芯片算力的不斷增強(qiáng),本文方法在MIMU誤差補(bǔ)償領(lǐng)域中具有廣闊的應(yīng)用前景。