付永恒,張麗杰
(內(nèi)蒙古工業(yè)大學(xué)電力學(xué)院,內(nèi)蒙古 呼和浩特 010051)
MEMS陀螺儀在低成本導(dǎo)航領(lǐng)域中應(yīng)用前景廣闊,但是其精度相對較低,因此需要對其隨機(jī)誤差進(jìn)行補(bǔ)償,以保證導(dǎo)航精度。對隨機(jī)誤差進(jìn)行分析和預(yù)測是補(bǔ)償?shù)那疤帷EMS陀螺儀隨機(jī)漂移誤差的分析主要有自相關(guān)函數(shù)法、功率譜密度法、基于時間序列分析的自回歸平滑模型方法和Allan方差法[1-2]。Allan方差法能夠?qū)EMS陀螺儀誤差源統(tǒng)計(jì)特性進(jìn)行有效的識別,而且計(jì)算簡單、分析效果好[3-5],IEEE協(xié)會將其定為分析光纖陀螺儀隨機(jī)誤差的標(biāo)準(zhǔn)方法[4,6]。支持向量機(jī)(SVM)是以統(tǒng)計(jì)學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險最小化建立起來的機(jī)器學(xué)習(xí)方法,在解決小樣本、非線性問題上具有較高的推廣能力和泛化能力,且克服了神經(jīng)網(wǎng)絡(luò)的局部極值、過擬合等問題[7-9]。支持向量回歸(SVR)是在SVM的基礎(chǔ)上發(fā)展而來的,主要用于回歸預(yù)測。文獻(xiàn)[10—11]將SVR算法用于陀螺儀誤差預(yù)測,其預(yù)測精度要高于神經(jīng)網(wǎng)絡(luò)。
本文以ADXRS620 MEMS陀螺儀為試驗(yàn)對象,為了使SVR預(yù)測MEMS陀螺儀隨機(jī)誤差的精度更高,采用基于混合核函數(shù)和粒子群優(yōu)化(PSO)參數(shù)的SVR算法對MEMS陀螺儀誤差進(jìn)行預(yù)測,并通過Allan方差法分析隨機(jī)誤差的效果。
設(shè)采樣間隔為t0,MEMS陀螺儀數(shù)據(jù)共采集了N個,可得陀螺儀數(shù)據(jù)的時間序列為{wt},把采集的N個數(shù)據(jù)分成K組,K=N/M,其中每組包含M個數(shù)據(jù),每組的時間間隔為t=t0M,第k個子集的平均值可以表示為[12]
(1)
對每個不同的平均時間間隔t,Allan方差的定義為
(2)
式中,〈〉表示求平均值。
量化噪聲Q、角度隨機(jī)游走N、零偏不穩(wěn)定性B、角速率隨機(jī)游走K、角速率漂移斜坡R為MEMS陀螺儀常見噪聲。假設(shè)各噪聲源相互獨(dú)立,則MEMS陀螺儀隨機(jī)誤差的Allan方差為各類誤差的方差和,即
(3)
MEMS陀螺儀實(shí)測數(shù)據(jù)繪制得到的Allan方差曲線通過最小二乘法進(jìn)行擬合,可得到Ci,進(jìn)而可計(jì)算得到各誤差系數(shù)
(4)
本文以美國ADI公司的ADXRS620單軸MEMS陀螺儀為試驗(yàn)對象,采用STM32F407ZET6對ADXRS620測量數(shù)據(jù)進(jìn)行采集、處理和上傳。將ADXRS620采集系統(tǒng)水平放置在轉(zhuǎn)臺上,在轉(zhuǎn)臺狀態(tài)處于靜止、轉(zhuǎn)速改變、轉(zhuǎn)速恒定3種狀態(tài)時進(jìn)行數(shù)據(jù)采集,采集頻率為100 Hz,采集的數(shù)據(jù)如圖1所示。
為了避免野點(diǎn)和信號趨勢對隨機(jī)誤差建模的影響,進(jìn)行Allan方差分析前,首先對MEMS陀螺儀靜止?fàn)顟B(tài)的數(shù)據(jù)進(jìn)行去野點(diǎn)處理;對轉(zhuǎn)速改變和轉(zhuǎn)速恒定時的數(shù)據(jù)進(jìn)行去趨勢項(xiàng)處理,之后進(jìn)行去野點(diǎn)處理。MEMS陀螺儀不同狀態(tài)數(shù)據(jù)的預(yù)處理結(jié)果如圖2所示。
對圖2中MEMS陀螺儀不同狀態(tài)下的誤差數(shù)據(jù)進(jìn)行Allan方差分析,結(jié)果見表1。
表1 誤差項(xiàng)系數(shù)
由表1可以看出,角速率漂移斜坡噪聲、角速率隨機(jī)游走噪聲和零偏不穩(wěn)定性噪聲是ADXRS620MEMS陀螺儀的主要噪聲,其中角速率斜坡噪聲影響最大;當(dāng)MEMS陀螺儀處于不同狀態(tài)時,其Allan方差誤差項(xiàng)系數(shù)變動很小,因此可認(rèn)為其噪聲特性相同,因此可采用靜止?fàn)顟B(tài)時的誤差預(yù)測模型去預(yù)測MEMS陀螺儀處于不同狀態(tài)下的隨機(jī)誤差。
SVR根據(jù)給定的訓(xùn)練樣本和訓(xùn)練目標(biāo)求得最優(yōu)輸入輸出模型,并將該最優(yōu)模型用于預(yù)測問題。假設(shè)訓(xùn)練樣本為{xi},訓(xùn)練目標(biāo)為{yi},二者的擬合關(guān)系為[13]
yi=wTφ(xi)+b
(5)
(6)
為了求解式(6)的有約束最優(yōu)化問題,需要引入拉格朗日乘子α、α*,得到其拉格朗日方程式為
(7)
根據(jù)Wolfe對偶定理,可將式(7)轉(zhuǎn)換為拉格朗日對偶問題
(8)
(9)
式中,[φT(xi)φ(xi)]表示高維空間中的內(nèi)積運(yùn)算。用核函數(shù)代替內(nèi)積運(yùn)算不僅可以減少內(nèi)積的運(yùn)算量,而且可以把低維空間中非線性不可預(yù)測問題轉(zhuǎn)化為高維空間中的線性可預(yù)測問題,因此式(9)可進(jìn)一步轉(zhuǎn)換為
(10)
在SVR模型訓(xùn)練過程中,核函數(shù)和模型中的各項(xiàng)參數(shù)對SVR模型的預(yù)測精度影響較大,因此需要對核函數(shù)和參數(shù)進(jìn)行選擇。
常用的核函數(shù)有多項(xiàng)式核函數(shù)(Kpoly)、線性核函數(shù)(Kline)、Sigmoid核函數(shù)(Ksigmoid)和RBF核函數(shù)(Krbf)。Kpoly是一種全局性核函數(shù),泛化能力強(qiáng),但是學(xué)習(xí)能力弱;Kline是一種特殊的多項(xiàng)式核函數(shù),具有多項(xiàng)式核函數(shù)的特性;Ksigmoid常被用作神經(jīng)網(wǎng)絡(luò)的閥值函數(shù);Krbf是一種局部性核函數(shù),學(xué)習(xí)能力強(qiáng),但是泛化能力較弱[14]。
首先,核函數(shù)要滿足Mercer條件,為了使核函數(shù)的學(xué)習(xí)和泛化能力最大化,本文構(gòu)造了由Kline、Krbf和Ksigmoid混合的核函數(shù)
Kmix=m1Kline+m2Krbf+(1-m1-m2)Ksigmoid
(11)
影響本文模型預(yù)測精度有以下4個參數(shù):
(1) 懲罰系數(shù)C。C影響SVR模型的泛化能力和預(yù)測精度。SVR模型的泛化能力隨著C的減小而增強(qiáng),但是SVR預(yù)測的精度會隨著C的減小而變低[15]。
(2) 敏感損失值ε。SVR模型的預(yù)測性能由ε決定,SVR預(yù)測性能隨著ε的增大而降低,但是ε太小容易出現(xiàn)過擬合現(xiàn)象。
(3) 核寬度σ。模型的推廣能力由σ決定,SVR模型的推廣能力隨著σ的增大而增大,但是σ過大會降低預(yù)測精度。
(4) 權(quán)重系數(shù)m1、m2。m1和m2是調(diào)節(jié)Kline、Krbf和Ksigmoid可信度的系數(shù)。
為了提高隨機(jī)誤差預(yù)測精度,本文采用PSO算法對C、ε、σ、m1和m2進(jìn)行尋優(yōu),PSO的適應(yīng)度函數(shù)為訓(xùn)練數(shù)據(jù)三折交叉驗(yàn)證的均方根誤差(RMSE),即當(dāng)交叉驗(yàn)證的RMSE最小時所對應(yīng)的參數(shù)即為最優(yōu)參數(shù)。
在Matlab中建立MEMS陀螺儀隨機(jī)誤差的預(yù)測模型,建立步驟如下:
(1) 將預(yù)處理后的數(shù)據(jù)同時作為訓(xùn)練樣本{xi}和訓(xùn)練目標(biāo){yi},采用式(11)混合核函數(shù)將訓(xùn)練數(shù)據(jù)轉(zhuǎn)化到高維空間中,將非線性不可預(yù)測問題轉(zhuǎn)化為線性可預(yù)測問題。
(2) 通過PSO算法對不敏感損失值ε、懲罰系數(shù)C、核寬度σ,以及核函數(shù)權(quán)重系數(shù)m1、m2進(jìn)行尋優(yōu)。PSO算法的粒子速度函數(shù)和位置函數(shù)為
(12)
式中,ω為慣性權(quán)重;vkd為粒子的速度;xkd為粒子位置;n為迭代尋優(yōu)的次數(shù);r1和r2是0~1之間的隨機(jī)數(shù);c1、c2為學(xué)習(xí)因子;pkd為個體最優(yōu)解;pgd為種群最優(yōu)解??紤]到PSO算法的精度和待尋優(yōu)參數(shù)的數(shù)目,本文設(shè)定c1、c2為2,種群個數(shù)為5,種群規(guī)模為60,種群迭代數(shù)為100,當(dāng)達(dá)到最大迭代次數(shù)時即可得到ε、C、σ、m1、m25個最優(yōu)參數(shù)。
(3) 將PSO算法得到的最優(yōu)參數(shù)ε、C、σ、m1和m2代入SVR訓(xùn)練函數(shù),求解式(8)中的凸二次規(guī)劃問題,求得其最優(yōu)解并將該最優(yōu)解代入式(10),即得到SVR預(yù)測模型。
MEMS陀螺儀靜止?fàn)顟B(tài)時的隨機(jī)誤差預(yù)處理數(shù)據(jù),采用2.3節(jié)所述方法建立SVR預(yù)測模型,并與Kpoly、Kline、Ksigmoid、Krbf等單核核函數(shù)的預(yù)測結(jié)果進(jìn)行比較,參數(shù)尋優(yōu)結(jié)果見表2,預(yù)測結(jié)果如圖3所示,預(yù)測結(jié)果的RMSE見表3。同時分析預(yù)測前后數(shù)據(jù)的Allan方差,誤差項(xiàng)變動幅度見表4。
RBFSigmoidε3.185E-071.0E-061.0E-060.022857.0E-08C17011.82524.5539170180σ0.0632———0.00003m1————0.0001m2————0.9998
表3 靜止?fàn)顟B(tài)預(yù)測結(jié)果的RMSE
表4 不同核函數(shù)預(yù)測結(jié)果ALLAN方差誤差項(xiàng)變動幅度 (%)
由圖3可知,Kpoly、Kline、Ksigmoid、Krbf和Kmix均具有較好的誤差預(yù)測效果。由表3和表4可知,混合核函數(shù)Kmix的Allan方差誤差項(xiàng)系數(shù)變動幅度是最小的,預(yù)測結(jié)果的RMSE較其他單核核函數(shù)小2~6個量級,僅為4.944 122E-11((°)·s-1),因此本文構(gòu)造的混合核函數(shù)SVR對MEMS陀螺儀隨機(jī)誤差預(yù)測效果要優(yōu)于其他單核核函數(shù)。
采用3.1節(jié)中建立的MEMS陀螺儀處于靜態(tài)時誤差模型預(yù)測其轉(zhuǎn)速改變和轉(zhuǎn)速恒定情況下的隨機(jī)誤差,預(yù)測結(jié)果如圖4、圖5所示,預(yù)測結(jié)果的RMSE見表5。同時分析預(yù)測前后數(shù)據(jù)的Allan方差各誤差項(xiàng)變化情況,結(jié)果見表6。
由表5和表6可知,采用陀螺儀靜止?fàn)顟B(tài)時訓(xùn)練得到的預(yù)測模型預(yù)測其在轉(zhuǎn)速改變和轉(zhuǎn)速恒定狀態(tài)下的隨機(jī)誤差,預(yù)測前后的Allan方差誤差項(xiàng)變動幅度很小,總的預(yù)測RMSE不超過1.0E-11((°)·s-1),因此當(dāng)陀螺儀處于不同狀態(tài)下噪聲特性相同時,則可采用統(tǒng)一的SVR預(yù)測模型預(yù)測隨機(jī)誤差,從而說明本文對MEMS陀螺儀處于不同狀態(tài)時的隨機(jī)誤差的Allan方差分析結(jié)果有效。
RMSE/((°)·s-1)4.359299E-114.280525E-11
表6 轉(zhuǎn)速改變和轉(zhuǎn)速恒定誤差項(xiàng)變動幅度 (%)
針對低成本MEMS陀螺儀數(shù)據(jù)精度低的問題,本文提出了一種結(jié)合線性核函數(shù)全局特性、RBF核函數(shù)的局部特性和Sigmoid核函數(shù)的神經(jīng)網(wǎng)絡(luò)特性的混合核函數(shù),并通過PSO算法進(jìn)行參數(shù)尋優(yōu)的SVR隨機(jī)誤差預(yù)測算法,同時使用Allan方差法分析了MEMS陀螺儀SVR預(yù)測前后的隨機(jī)誤差噪聲特性。試驗(yàn)結(jié)果表明,最優(yōu)混合核函數(shù)SVR模型預(yù)測MEMS陀螺儀隨機(jī)誤差較單獨(dú)核函數(shù)精度更高;當(dāng)MEMS陀螺儀所處狀態(tài)不同,但噪聲特性相同時,可采用統(tǒng)一的SVR預(yù)測模型預(yù)測隨機(jī)誤差。本文研究結(jié)果可為SVR預(yù)測算法用于MEMS陀螺儀處于不同狀態(tài)下隨機(jī)誤差實(shí)時補(bǔ)償提供依據(jù)。