本發(fā)明涉及磁電子羅盤誤差補(bǔ)償領(lǐng)域。
背景技術(shù):
導(dǎo)航定向在日常生活和軍事領(lǐng)域都起著越來越重要的作用,磁羅盤屬于被動無源導(dǎo)航,隱蔽性好,信號無遮擋,且不存在積累誤差,成為導(dǎo)航定向的核心技術(shù)之一。最近發(fā)展起來的amr磁阻式傳感器體積小、響應(yīng)速度快,成為主流趨勢。但amr磁阻式傳感器不僅存在正交軸效應(yīng),而且敏感元件與后續(xù)調(diào)理電路之間間距小,由集成電路引腳材料引起的磁場畸變問題相對于磁通門傳感器更為突出。這無疑增加了校準(zhǔn)難度,對誤差補(bǔ)償技術(shù)要求更高。
目前流行的做法是通過對誤差產(chǎn)生機(jī)理分析,利用地磁場幅值和方向不變特性,建立顯示誤差模型,再通過不同方法對誤差參數(shù)進(jìn)行估計。比如:橢圓假設(shè)法、分步校準(zhǔn)法、橢球假設(shè)法、幅值約束法、位置翻轉(zhuǎn)法、點積不變法等,通過機(jī)理分析,建立顯式誤差模型(或測量模型),再嘗試不同方法對模型參數(shù)進(jìn)行離線或在線估計。然而由于磁傳感器誤差來源的復(fù)雜性,任何顯式的誤差模型都很難囊括所有誤差因素。研究人員開始嘗試?yán)蒙窠?jīng)網(wǎng)絡(luò)對隱式誤差模型進(jìn)行訓(xùn)練。
專利cn104931028a一種基于深度學(xué)習(xí)的三軸磁電子羅盤誤差補(bǔ)償方法,雖然提出了用深度學(xué)習(xí)訓(xùn)練隱含誤差模型來減少誤差,但是深度學(xué)習(xí)方法需要大量的誤差數(shù)據(jù)來訓(xùn)練,對樣本量要求很高,而且訓(xùn)練時間長,在樣本量小的情況下容易出現(xiàn)過擬合現(xiàn)在,導(dǎo)致模型泛化能力下降。
技術(shù)實現(xiàn)要素:
本發(fā)明是一種可用于磁羅盤非線性誤差補(bǔ)償?shù)姆椒?,一種自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法,對隱式誤差模型進(jìn)行訓(xùn)練,以補(bǔ)償磁羅盤測量存在的非線性誤差,提高磁羅盤定向精度。
一種自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法,包括以下步驟:
s1、建立基于超限學(xué)習(xí)機(jī)的磁羅盤隱式誤差模型;
s2、利用超限學(xué)習(xí)算法確定網(wǎng)絡(luò)參數(shù);
s3、借鑒深度學(xué)習(xí)反向調(diào)優(yōu)機(jī)制,利用網(wǎng)絡(luò)殘差對上述網(wǎng)絡(luò)參數(shù)進(jìn)行反向微調(diào);
s4、利用訓(xùn)練好的誤差模型(神經(jīng)網(wǎng)絡(luò))對磁羅盤誤差進(jìn)行補(bǔ)償。
優(yōu)選的是,所述步驟s1建立磁羅盤隱式誤差模型,并對所述磁羅盤隱式誤差模型進(jìn)行訓(xùn)練,以補(bǔ)償磁羅盤測量存在的非線性誤差,提高磁羅盤定向精度。
在上述任一方案中優(yōu)選的是,所述磁羅盤隱式誤差模型中的
磁羅盤航向角α定義為載體前進(jìn)方向在水平面上的投影與當(dāng)?shù)刈游缇€的夾角,沿順時針旋轉(zhuǎn),取值范圍為0~360°,磁航向角φ通過組成磁羅盤的三軸磁強(qiáng)計和加速度計可計算得到,磁偏角用δ表示,則航向角為
α=φ+δ(1)
在上述任一方案中優(yōu)選的是,所述磁羅盤隱式誤差模型中的
三軸磁強(qiáng)計存在軟磁干擾和正交軸效應(yīng),航向角測量值
在上述任一方案中優(yōu)選的是,所述步驟s3通過網(wǎng)絡(luò)殘差對隨機(jī)初始化的連接權(quán)值進(jìn)行反向微調(diào),實現(xiàn)隱層神經(jīng)元數(shù)自主尋優(yōu)。
在上述任一方案中優(yōu)選的是,所述步驟s4中磁羅盤誤差補(bǔ)償分為兩個步驟:
(s401)誤差模型訓(xùn)練;
(s402)使用過程中的誤差補(bǔ)償;
在上述任一方案中優(yōu)選的是,所述步驟s401中誤差模型訓(xùn)練包括兩個階段:
(s701)隨機(jī)初始化輸入連接權(quán)值wij和bi,根據(jù)公式計算輸出連接權(quán)值βki;
(s702)根據(jù)網(wǎng)絡(luò)殘差,借鑒深度學(xué)習(xí)反向調(diào)優(yōu)對連接權(quán)值進(jìn)行反向微調(diào)。
在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為奇數(shù)時,執(zhí)行第一階段(s701),當(dāng)n為偶數(shù)時,執(zhí)行第二階段(s702)。
在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為奇數(shù)時,執(zhí)行第一階段時,elm網(wǎng)絡(luò)缺少輸出層偏置,而且輸入權(quán)重wij和隱藏層偏置bi隨機(jī)產(chǎn)生不需要調(diào)整,整個網(wǎng)絡(luò)僅剩下輸出權(quán)重βki需要確定;
假設(shè)隱層有l(wèi)個神經(jīng)元,訓(xùn)練集包含n個不同樣本(xi,yi),其中輸入xi=(xi1,xi2…xin)∈rn,輸出yi=(yi1,yi2…yim)∈rm,若采用非線性激勵函數(shù)g(x),可以零誤差逼近來自同一連續(xù)系統(tǒng)的n個輸入樣本,使得
其中,wi=(wi1,wi2…win),xj=(x1j,x2j…xnj)t;(3)式可改寫為
y=hβ(4)
其中
令elm網(wǎng)絡(luò)的輸出等于樣本標(biāo)簽如式(5)所示
t=y(tǒng)=hβ(5)
多數(shù)情況下,隱層神經(jīng)元的個數(shù)遠(yuǎn)遠(yuǎn)小于訓(xùn)練樣本的個數(shù)n,因此(5)式的解為使損失函數(shù)c最小的解
根據(jù)最小范數(shù)解準(zhǔn)則,(6)式存在極小范數(shù)最小二乘解
β=h+t(7)
其中h+為輸出矩陣h的廣義逆。
在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為偶數(shù)時,執(zhí)行第二階段,包括以下子步驟:
(s1001)根據(jù)第一階段得到連接權(quán)值wij、bi和βki,
通過前向傳播得到磁羅盤測量值對應(yīng)的網(wǎng)絡(luò)輸出;
(s1002)計算網(wǎng)絡(luò)輸出與磁羅盤參考值之間偏差,即為網(wǎng)絡(luò)殘差err;
(s1003)假設(shè)網(wǎng)絡(luò)各層的激活值分別為a1、a2和a3,網(wǎng)絡(luò)損失函數(shù)為e;
(s1004)進(jìn)行反向調(diào)優(yōu),減小損失函數(shù)e。
在上述任一方案中優(yōu)選的是,所述步驟(s1004)中,通過求損失函數(shù)對連接權(quán)值的偏導(dǎo)得到最小損失函數(shù)e,包括如下步驟:
(s1101)前向傳播過程中,各層的激活值為:
其中
(s1102)通過反向求導(dǎo)計算所需的第二層和第三層殘差:
(s1103)輸入層和輸出層的梯度為:
(s1104)利用梯度下降法進(jìn)行反向調(diào)優(yōu):
在上述任一方案中優(yōu)選的是,根據(jù)步驟(s1004)反向調(diào)優(yōu)結(jié)果更新網(wǎng)絡(luò)代價函數(shù),若小于期望值,或迭代次數(shù)超過預(yù)定值k,則訓(xùn)練結(jié)束;否則返回到前面步驟繼續(xù)。
在上述任一方案中優(yōu)選的是,所述磁羅盤誤差補(bǔ)償采用基于自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法訓(xùn)練非線性誤差模型,再利用該模型把畸變后的測量磁場逆變回真實磁場值,減小航向角計算誤差,
其中
在上述任一方案中優(yōu)選的是,把磁羅盤安裝在載體內(nèi)部合適的地方,然后把磁羅盤航向角測量值經(jīng)過歸一化處理后,輸入上面訓(xùn)練好的非線性誤差模型,根據(jù)式(12)得到補(bǔ)償后的航向角輸出
本發(fā)明針對磁羅盤存在的非線性誤差,建立隱式誤差模型,提出了自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法,各層初始權(quán)值并非完全隨機(jī)產(chǎn)生,這不僅大大減小了網(wǎng)絡(luò)訓(xùn)練陷入局部最小的概率,也提高了網(wǎng)絡(luò)訓(xùn)練效率;反向自主調(diào)優(yōu)進(jìn)一步解決了如何確定最優(yōu)隱層節(jié)點數(shù)目的問題。
附圖說明
圖1是作為按照本發(fā)明的自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法的一個優(yōu)選實施例的自主反向調(diào)優(yōu)的超限學(xué)習(xí)誤差模型。
圖2是作為按照本發(fā)明的自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法的一個優(yōu)選實施例的基于自主反向調(diào)優(yōu)的超限學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練流程圖。
圖3是作為按照本發(fā)明的自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法的一個優(yōu)選實施例的磁羅盤誤差補(bǔ)償示意圖。
圖4是作為按照本發(fā)明的自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法的一個優(yōu)選實施例的磁羅盤模型示意圖。
圖5是作為按照本發(fā)明的自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法的一個優(yōu)選實施例的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償?shù)膽?yīng)用流程圖。
具體實施方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的器件或具有相同或類似功能的器件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
一種自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法在磁羅盤誤差補(bǔ)償中的應(yīng)用方法,包括以下步驟:
s1、建立基于超限學(xué)習(xí)機(jī)的磁羅盤隱式誤差模型;
s2、利用超限學(xué)習(xí)算法確定網(wǎng)絡(luò)參數(shù);
s3、借鑒深度學(xué)習(xí)反向調(diào)優(yōu)機(jī)制,利用網(wǎng)絡(luò)殘差對上述網(wǎng)絡(luò)參數(shù)進(jìn)行反向微調(diào);
s4、利用訓(xùn)練好的誤差模型(神經(jīng)網(wǎng)絡(luò))對磁羅盤誤差進(jìn)行補(bǔ)償。如圖5所示。
所述步驟s1建立磁羅盤隱式誤差模型,并對所述磁羅盤隱式誤差模型進(jìn)行訓(xùn)練,以補(bǔ)償磁羅盤測量存在的非線性誤差,提高磁羅盤定向精度。
在上述任一方案中優(yōu)選的是,所述磁羅盤隱式誤差模型中的
磁羅盤航向角α定義為載體前進(jìn)方向在水平面上的投影與當(dāng)?shù)刈游缇€的夾角,沿順時針旋轉(zhuǎn),取值范圍為0~360°,磁航向角φ通過組成磁羅盤的三軸磁強(qiáng)計和加速度計可計算得到,磁偏角用δ表示,則航向角為
α=φ+δ(1)
所述磁羅盤隱式誤差模型中的
三軸磁強(qiáng)計存在軟磁干擾和正交軸效應(yīng),航向角測量值
所述步驟s3通過網(wǎng)絡(luò)殘差對隨機(jī)初始化的連接權(quán)值進(jìn)行反向微調(diào),實現(xiàn)隱層神經(jīng)元數(shù)自主尋優(yōu)。圖4中,δ為磁偏角,是地球表面任一點的磁子午線與地理子午線之間的夾角,因為地理北極和磁北極并不完全重合;φ為磁航向角,是載體縱軸和磁北極之間的夾角;α為航向角,是載體縱軸和地球北極之間的夾角,也稱真航向角。三者之間的關(guān)系為:α=φ+δ。
圖1中給出了一種自主反向調(diào)優(yōu)的超限學(xué)習(xí)誤差模型示意圖,將測量航向角輸入到點增量式極限學(xué)習(xí)機(jī)中,輸出參考航向角。點增量式極限學(xué)習(xí)機(jī)可以抽象看做是一個3層網(wǎng)絡(luò)結(jié)構(gòu),分別是輸入層,隱藏層,輸出層。隱藏層節(jié)點個數(shù)對誤差模型訓(xùn)練精度影響較大,最優(yōu)節(jié)點數(shù)一般通過增量的形式迭代查詢,第k+1次迭代所獲得的網(wǎng)絡(luò)(具有k+1個隱層神經(jīng)元)輸出誤差小于第k次迭代所獲得的網(wǎng)絡(luò)輸出誤差,解決了隱層節(jié)點選擇難的問題。但k+1個隱層神經(jīng)元中有很多神經(jīng)元的輸出權(quán)值wij很小,這些神經(jīng)元對最終網(wǎng)絡(luò)輸出起到的影響很小,通過減少這些“無用”的神經(jīng)元大大減小增量型極限學(xué)習(xí)機(jī)的迭代次數(shù),提高學(xué)習(xí)效率,借鑒深度學(xué)習(xí)算法連接權(quán)值反向調(diào)優(yōu)思想,根據(jù)超限學(xué)習(xí)機(jī)網(wǎng)絡(luò)輸出殘差,利用反向求導(dǎo)和梯度下降對連接權(quán)值進(jìn)行反向調(diào)優(yōu)。該方法既減少了迭代次數(shù),又保障了網(wǎng)絡(luò)訓(xùn)練精度。
所述步驟s4中磁羅盤誤差補(bǔ)償分為兩個步驟:
(s401)誤差模型訓(xùn)練;
(s402)使用過程中的誤差補(bǔ)償;
在上述任一方案中優(yōu)選的是,所述步驟s401中誤差模型訓(xùn)練包括兩個階段:
(s701)隨機(jī)初始化輸入連接權(quán)值wij和bi,根據(jù)公式計算輸出連接權(quán)值βki;
(s702)根據(jù)網(wǎng)絡(luò)殘差,借鑒深度學(xué)習(xí)反向調(diào)優(yōu)對連接權(quán)值進(jìn)行反向微調(diào)。在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為奇數(shù)時,執(zhí)行第一階段(s701),當(dāng)n為偶數(shù)時,執(zhí)行第二階段(s702)。
在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為奇數(shù)時,執(zhí)行第一階段時,elm網(wǎng)絡(luò)缺少輸出層偏置,而且輸入權(quán)重wij和隱藏層偏置bi隨機(jī)產(chǎn)生不需要調(diào)整,整個網(wǎng)絡(luò)僅剩下輸出權(quán)重βki需要確定;
假設(shè)隱層有l(wèi)個神經(jīng)元,訓(xùn)練集包含n個不同樣本(xi,yi),其中輸入xi=(xi1,xi2…xin)∈rn,輸出yi=(yi1,yi2…yim)∈rm,若采用非線性激勵函數(shù)g(x),可以零誤差逼近來自同一連續(xù)系統(tǒng)的n個輸入樣本,使得
其中,wi=(wi1,wi2…win),xj=(x1j,x2j…xnj)t;(3)式可改寫為
y=hβ(4)
其中
令elm網(wǎng)絡(luò)的輸出等于樣本標(biāo)簽如式(5)所示
t=y(tǒng)=hβ(5)
多數(shù)情況下,隱層神經(jīng)元的個數(shù)遠(yuǎn)遠(yuǎn)小于訓(xùn)練樣本的個數(shù)n,因此(5)式的解為使損失函數(shù)c最小的解
根據(jù)最小范數(shù)解準(zhǔn)則,(6)式存在極小范數(shù)最小二乘解
β=h+t(7)
其中h+為輸出矩陣h的廣義逆。
在上述任一方案中優(yōu)選的是,所述誤差模型訓(xùn)練,當(dāng)n為偶數(shù)時,執(zhí)行第二階段,包括以下子步驟:
(s1001)根據(jù)第一階段得到連接權(quán)值wij、bi和βki,
通過前向傳播得到磁羅盤測量值對應(yīng)的網(wǎng)絡(luò)輸出;
(s1002)計算網(wǎng)絡(luò)輸出與磁羅盤參考值之間偏差,即為網(wǎng)絡(luò)殘差err;
(s1003)假設(shè)網(wǎng)絡(luò)各層的激活值分別為a1、a2和a3,網(wǎng)絡(luò)損失函數(shù)為e;
(s1004)進(jìn)行反向調(diào)優(yōu),減小損失函數(shù)e。
在上述任一方案中優(yōu)選的是,所述步驟(s1004)中,通過求損失函數(shù)對連接權(quán)值的偏導(dǎo)得到最小損失函數(shù)e,包括如下步驟:
(s1101)前向傳播過程中,各層的激活值為:
其中
(s1102)通過反向求導(dǎo)計算所需的第二層和第三層殘差:
(s1103)輸入層和輸出層的梯度為:
(s1104)利用梯度下降法進(jìn)行反向調(diào)優(yōu):
在上述任一方案中優(yōu)選的是,根據(jù)步驟(s1004)反向調(diào)優(yōu)結(jié)果更新網(wǎng)絡(luò)代價函數(shù),若小于期望值,或迭代次數(shù)超過預(yù)定值k,則訓(xùn)練結(jié)束;否則返回到前面步驟繼續(xù)。
在上述任一方案中優(yōu)選的是,所述磁羅盤誤差補(bǔ)償采用基于自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法訓(xùn)練非線性誤差模型,再利用該模型把畸變后的測量磁場逆變回真實磁場值,減小航向角計算誤差,
其中
在上述任一方案中優(yōu)選的是,把磁羅盤安裝在載體內(nèi)部合適的地方,然后把磁羅盤航向角測量值經(jīng)過歸一化處理后,輸入上面訓(xùn)練好的非線性誤差模型,根據(jù)式(12)得到補(bǔ)償后的航向角輸出
圖2給出了基于自主反向調(diào)優(yōu)的超限學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練流程圖,首先初始化隱藏節(jié)點數(shù)l,損失函數(shù)e,迭代次數(shù)k,然后隨機(jī)初始化輸入權(quán)值w,b,根據(jù)公式7計算輸出權(quán)值,然后神經(jīng)網(wǎng)絡(luò)進(jìn)行前向傳播,根據(jù)w,b,更新網(wǎng)絡(luò)輸出,當(dāng)輸出的損失函數(shù)小于e,或者小于最大迭代次數(shù)k,繼續(xù)訓(xùn)練,否則訓(xùn)練結(jié)束。在繼續(xù)訓(xùn)練的過程中,會有一步判斷,如果節(jié)點數(shù)l為奇數(shù),就根據(jù)公式9和公式10進(jìn)行反向求導(dǎo)和梯度計算,然后根據(jù)公式11對連接權(quán)值w,b和進(jìn)行反向調(diào)優(yōu)。
把磁羅盤安裝在載體內(nèi)部合適的地方,然后把磁羅盤航向角測量值經(jīng)過歸一化處理后,輸入上面訓(xùn)練好的非線性誤差模型,根據(jù)式(12)得到補(bǔ)償后的航向角輸出
第二步:利用同一地點地磁場和重力場矢量不變特性,設(shè)計滑動中值濾波器,對測量數(shù)據(jù)進(jìn)行預(yù)處理;丟棄地磁場矢量和重力場矢量內(nèi)積異常數(shù)據(jù),減小磁強(qiáng)計和加速度計測量噪聲和隨機(jī)誤差干擾,得到質(zhì)量較好的誤差模型訓(xùn)練集x和標(biāo)注t。
第三步:采用最大最小法對原始數(shù)據(jù)進(jìn)行歸一化處理,提高網(wǎng)絡(luò)權(quán)重(即誤差模型)的訓(xùn)練精度。
第四步:隨機(jī)抽取訓(xùn)練集中90%的數(shù)據(jù),初始化隱藏層節(jié)點數(shù)為1,利用超限學(xué)習(xí)算法對網(wǎng)絡(luò)進(jìn)行初步訓(xùn)練;然后通過反向調(diào)優(yōu)對連接權(quán)值進(jìn)行更新;若更新后的網(wǎng)絡(luò)損失函數(shù)或迭代次數(shù)達(dá)到期望值,訓(xùn)練結(jié)束,否則使隱藏層節(jié)點數(shù)和迭代次數(shù)加1,重復(fù)上述步驟。
第五步:剩下的10%數(shù)據(jù)作為測試集,驗證誤差模型的訓(xùn)練效果。根據(jù)驗證結(jié)果改進(jìn)基于自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法,直到獲得滿意的磁羅盤誤差模型補(bǔ)償精度。
針對磁羅盤存在的非線性誤差,建立隱式誤差模型,提出了自主反向調(diào)優(yōu)的超限學(xué)習(xí)算法,各層初始權(quán)值并非完全隨機(jī)產(chǎn)生,這不僅大大減小了網(wǎng)絡(luò)訓(xùn)練陷入局部最小的概率,也提高了網(wǎng)絡(luò)訓(xùn)練效率;反向自主調(diào)優(yōu)進(jìn)一步解決了如何確定最優(yōu)隱層節(jié)點數(shù)目的問題。
以上對本發(fā)明的一個實施例進(jìn)行了詳細(xì)說明,但所述內(nèi)容僅為本發(fā)明的較佳實施例,不能被認(rèn)為用于限定本發(fā)明的實施范圍。凡依本發(fā)明申請范圍所作的均等變化與改進(jìn)等,均應(yīng)仍歸屬于本發(fā)明的專利涵蓋范圍之內(nèi)。