周紅進, 宋 輝, 范文良, 王 蘇, 谷東亮
(1. 海軍大連艦艇學院航海系, 遼寧 大連 116018; 2. 國家檢察官學院信息技術部, 北京 102206)
慣性導航系統(inertial navigation system, INS)能夠獨立工作、可在不依賴于任何外部信息的條件下,為載體提供位置、速度、航向和姿態等全量導航信息。INS的這種優越特性使其在軍事領域中得到了廣泛應用。船用INS具有工作時間長、對定位精度要求高的特點,獨立自主工作的INS的定位誤差隨著時間的延長逐漸發散且超出誤差限制。為此,通常將INS與全球衛星導航系統(global navigation satellite system, GNSS)進行組合導航以提高INS的定位精度、延長INS保精度的時間。在GNSS失效時,INS的定位誤差將快速發散。
為了提高慣導獨立工作時的定位精度,傳統的做法是測量陀螺漂移和加速度計零偏并在慣導定位解算過程中加以補償,如陀螺殼體旋轉法、平臺旋轉調制法、H調制法、應用監控陀螺(監控器)法等[1-4],這些方法都是陀螺漂移的自校正方法,需要對INS進行補充硬件設計開發,提高了INS的控制復雜度,也增加了INS的成本。也有利用外部提供的準確位置(GNSS定位信息)和航向信息估計陀螺漂移,從而對INS進行校正的[5-9]方法。在深遠海航行環境下,一旦遭遇GNSS拒止,這種方法難以實現。還有通過零速校正提高INS定位精度的[10]方法,這種方法需要艦船周期性的停車,直至獲得零速才可實施,這對于承擔作戰任務的艦艇而言是不切實際的。
近年來,基于神經網絡的深度學習技術發展迅速,在人工智能等自主學習領域已經展現出巨大的應用前景。神經網絡在慣性導航領域的應用研究也開始增多[11-23]。文獻[11]和文獻[12]率先使用單隱藏層的反向傳播神經網絡(back propagation neural net, BPNN)來預測定位和速度誤差。文獻[13-16]將小波神經網絡和強跟隨器相結合,利用位置信息提出INS誤差補償方法。文獻[17-19]總結了很多基于人工智能的定位誤差抑制算法,提出了自適應模糊神經網絡。這些早期的文獻從理論角度探索了神經網絡在慣性導航領域中的應用。文獻[20]提出將長短時記憶(long short term memory, LSTM)網絡用于訓練微機電系統(micro-electric mechanical system, MEMS)的誤差修正模型,在GNSS失效時將MEMS輸入至訓練得到的模型,得到東向、北向位置增量,從而提高MEMS獨立工作時的定位精度。文獻[21]以當前時間、東北向速度增量、姿態增量為輸入,以東北向位置增量和航姿增量為輸出,構建了基于Bagging的神經網絡,在全球定位系統(global position systern, GPS)失效時,利用訓練得到的神經網絡預測東北向位置增量和航姿增量,進行定位修正。文獻[22]采用BPNN神經網絡直接擬合加速度計脈沖輸出與速度增量間的計算關系,在高超聲速飛行器飛行初始階段存儲INS數據和衛導數據,從中段開始訓練網絡,在衛導中斷的末段啟用神經網絡計算速度增量,開始定位解算。文獻[23]提出改進膨脹卷積神經網絡對慣性測量單元(inertial measurement unit, IMU)的陀螺儀誤差進行標定補償,利用時間卷積神經網絡檢測車輛運動狀態(零速、平面零速、垂向零速),結合二者處理結果,采用不變擴展卡爾曼濾波(invariant extend Kalman filter, IEKF)進行信息融合,估計車輛位置。上述方法訓練網絡的輸出有陀螺漂移、速度增量、位置增量,都需要考慮INS的誤差模型,均存在訓練樣本少、訓練時間長,模型參數相對固定、訓練得到的模型在后續INS獨立工作時保精度時間不明等問題。
本文提出一種改進的BPNN,該神經網絡由輸入層、1個隱藏層和輸出層組成,以INS原始數據作為輸入,以載體位置作為輸出,直接訓練網絡建立INS解算位置的數學模型。采用Bayesian算法動態訓練調整各層間的權重系數和偏差值,以抑制由陀螺儀漂移和加速度計零偏造成的定位誤差,結合理論分析和試驗研究確定了神經元個數、訓練數據集的分配方案。實船測試結果表明,INS獨立工作時,經過神經網絡修正后的定位誤差顯著低于INS自身的定位誤差,且延長了INS保精度的時間。
船用捷聯INS(strap-down INS, SINS)在計算機中建立數學平臺,計算機根據陀螺儀和加速度計的測量輸出解算載體位置、速度、航姿等信息。圖1所示為船用SINS解算導航參數的流程[24]。

圖1 船用SINS解算導航參數流程圖Fig.1 Navigation parameters resolution flowchart of ship SINS
對于船用SINS,姿態解算非常關鍵。通常選擇當地地理水平坐標系作為導航坐標系。載體的姿態是指載體坐標系相對導航坐標系的旋轉關系。可以采用方向余弦矩陣算法解算載體姿態。
(1)

(2)

方程式(1)的解可以寫成如下形式:

(3)
由Ck+1即可解算載體姿態。
船用捷聯慣導速度解算方程為
(4)

載體的位置更新方程為
(5)
式中:P為載體在導航坐標系下的位置矢量,ξ為載體線速度到經緯度變化率的轉換矩陣。
式中:RM為卯酉圈半徑;RN為子午圈半徑;h為距離地球表面的高度;φ為載體緯度。
SINS陀螺儀和加速度計的輸出包含常值誤差和隨機誤差。由式(1)、式(4)、式(5)可以得到SINS誤差方程
(6)

船用SINS原始輸出為陀螺儀測量的載體角速度、加速度計測量的載體線加速度。在已知初始位置和速度的情況下,即可根據式(1)、式(4)、式(5)進行位置、速度和姿態解算。INS定位結果與陀螺儀和加速度計的測量量以及時間存在多輸入與多輸出的映射關系。
(λ,φ)=f(Δt,λINS,φINS,vx,vy,Ax,Ay,Az,ωx,ωy,ωz)
(7)
考慮使用一個合適的神經網絡擬合其映射關系f,將INS誤差補償模型包含進神經網絡擬合的映射關系中,網絡直接輸出修正后的經緯度。這種方法既可以降低根據式(6)建立的誤差修正模型帶來的神經網絡復雜度,提高網絡訓練速度,也有助于提高INS定位修正的效率。
BPNN具有強大的非線性映射能力,且具備結構簡單的優點[25],非常適合擬合陀螺儀和加速度計的測量值與INS解算經緯度之間的非線性函數關系。考慮到INS誤差有其自身內在的規律,為了避免過擬合,提高神經網絡的泛化性,將INS解算的經緯度作為第二輸入,這樣就可構建一個輸入為x1=(Δt,λINS,φINS,vx,vy,Ax,Ay,Az,ωx,ωy,ωz)、x2=(λGNSS,φGNSS),輸出為y=(λGNSS,φGNSS)的13輸入2輸出的BPNN結構。根據模型復雜度的需求,建立含有一個隱藏層的網絡進行訓練。如圖2所示為BPNN訓練模型。當GNSS有效時,x2=(λGNSS,φGNSS),當GNSS失效時,x2=(λINS,φINS)。

圖2 BPNN訓練模型Fig.2 BPNN training model
隱藏層激活函數為tansig,輸出層激活函數為purelin,表達式為
(8)
GNSS有效時,INS可以正常獲取GNSS定位信息。因此采用GNSS定位結果與INS定位結果的差值的均方誤差(mean square error, MSE)作為損失函數,以評價網絡訓練效果。MSE的計算公式為
(9)
式中:K為訓練樣本中的數據量;λGNSS,φGNSS為衛星導航經緯度;λy,φy為神經網絡輸出經緯度。
神經網絡的權重直接決定了模型的性能。權重更新算法直接影響模型對輸入輸出關系的擬合能力。常用的L-M(Levenberg-Marquart)算法是牛頓法的改進,能夠避免在雅克比矩陣奇異或病態時發生的不收斂的情況。該算法通過直接計算黑塞矩陣,減少了訓練中的計算量,對于中等規模的BPNN有較快的收斂速度[26]。但L-M算法基于點集合訓練權重參數,是一種根據反向傳播誤差確定性更新權重參數的方法,容易過擬合模型。因此,這種方法對于包含各種隨機噪聲的輸入數據集抑制效果較差,模型泛化能力不足。
考慮到INS誤差周期長,訓練數據集必須足夠長,即至少需要24 h的歷史數據才能訓練出符合INS誤差規律的解算模型。本文采用Bayesian算法進行權重更新。Bayesian權重更新算法不是訓練單個網絡,而是訓練網絡集合,每個網絡的權重來自共享的學習概率分布。Bayesian估計與最大似然估計的區別是Bayesian估計可求出權重參數W的后驗分布P(W|D)(D為輸入數據集),這樣就可以為神經網絡的預測引入不確定性,從而提高神經網絡的泛化能力。

(10)
式中:ΕP(W|D)為期望值。
式(10)需要計算在P(W|D)上的所有可能的神經網絡的預測值,但是后驗分布P(W|D)難以直接計算。為了計算P(W|D),可以采用變分的方法,使用一個由一組參數θ控制的分布q(W|θ)逼近真正的后驗分布P(W|D)。比如,可以用高斯分布(μ,σ)近似θ,這樣就把求后驗分布的問題轉化為了求最優θ的問題。這個過程可以通過最小化兩個分布的KL(Kullback-Leibler)散度實現:
(11)
式(11)可以寫成目標函數:
F(D,θ)=DKL[q(W|θ)|P(W)]-Εq(W|θ)[lgP(D|W)]
(12)
式(12)的第一項就是變分后驗和先驗的KL散度,第二項的取值依賴于訓練數據。第一項叫做復雜性代價,第二項叫做似然代價,用于描述對樣本的擬合程度。
對于P(W),可以給出一個混合尺度高斯先驗分布:
(13)
即對于每個權重,其分布的先驗都是兩種相同均值、不同標準差的高斯分布的疊加。
繼續對目標函數式(11)取近似:
(14)
式中:W(i)是處理第i個數據點時的權重采樣。
根據式(14)可以計算式(12),由式(12)可以計算θ的最優分布,進而逼近后驗分布P(W|D)。

對于定位修正模型,輸出為經度、緯度。輸入為不同時刻的INS原始數據和衛導定位結果,包括:時間、東向、北向、天向加速度計測量輸出和陀螺儀測量輸出,INS東向、北向速度,INS經度、緯度,衛導經度、緯度。
輸入序列:x1=(t,λINS,φINS,vx,vy,Ax,Ay,Az,ωx,ωy,ωz)i,x2=(λGNSS,φGNSS)i。輸出序列:y=(λ,φ)i。
訓練流程如圖3所示。當GNSS有效時,利用GNSS定位結果,通過反向傳播的隨機梯度下降法來計算神經網絡參數。當GNSS失效時,采用SINS的數據取代GNSS,神經網絡工作在自主修正模式。

圖3 算法訓練流程Fig.3 Algorithm training flowchart
由于INS定位誤差包含3種分量:舒勒周期誤差、地球周期誤差和傅科周期誤差。舒勒周期誤差調制傅科周期誤差。為了避免訓練出的模型失真,即背離INS解算數學關系,取訓練數據集持續時間約為24 h。
滿足如下條件之一,則停止訓練:
(1) 達到最大迭代周數1 000;
(2) 訓練時間達到最大限制;
(3) 訓練MSE達到0;
(4) 性能梯度低于最小梯度(一般為1e-7)。
神經網絡訓練計算環境為:CPU:i7_6700@3.4GHz,內存16.0 GB,顯卡HD530,操作系統為Windows7。
為了驗證本文提出的INS定位修正方法,實船采集了某型船用SINS的數據和GNSS定位數據。GNSS系統為Trimble MS860接收機。海上采集數據持續時間為24 h,艦船航行軌跡如圖4所示。

圖4 艦船航行軌跡Fig.4 Ship trajectory
SINS數據輸出頻率為1 Hz,GNSS數據輸出頻率為1 Hz。在訓練階段,SINS與GNSS進行組合導航,以修正INS定位結果。在驗證階段,關閉GNSS數據,直接使用神經網絡修正SINS定位結果。
神經元的個數與神經網絡處理的問題的復雜度有關,也直接影響訓練效率和網絡的后續處理能力和泛化能力。根據Kolmogorov定理,神經元個數可計算如下:
Nh=2n+1
(15)
式中:n為輸入層結點個數。另外,還有一種確定神經元個數的計算公式:
(16)
式中:Ns為訓練集樣本數據點數;Ni為輸入層結點個數;No為輸出層結點個數;α=[2 10]。
本文建立的網絡輸入層節點個數為13,輸出層節點個數為2,訓練樣本數據點數約為86 400。根據式(15),神經元個數為27。根據式(16),神經元個數最少為576。本文參考式(15)、式(16)的結果,采用試驗的方法確定使用的神經元個數。
將神經元個數分別設置為30、40、50、60。圖5所示為訓練迭代周數和訓練時間隨神經元個數變化的曲線圖。圖6所示為GNSS關閉后,神經網絡修正后與INS獨立工作定位誤差比對曲線圖。表1為神經網絡修正后與INS獨立工作定位結果。

表1 INS獨立工作與神經網絡修正后定位誤差Table 1 Position error between independent-working INS and INS with neural networking correction

圖5 訓練周數和時間與神經元個數關系曲線Fig.5 Training epoch and duration vs. number of neuron


圖6 INS獨立工作與神經網絡修正后定位誤差比對曲線Fig.6 Comparison curve of position error between independent-working inertial navigation system and INS with neural networking correction
從圖5可以看出,隨著神經元個數的增加,訓練時間顯著延長,但訓練周數變化微小。這說明隨著神經網絡復雜度的增大,訓練時間成本會顯著增大,對于對實時性要求高的應用,則對硬件資源的要求會顯著提高。
從圖6可以看出,神經網絡修正INS定位的效果并不一定隨著神經元個數的增加而變好。神經元個數為30時,在2 h內,神經網絡修正后定位誤差一致低于INS獨立工作時的定位誤差。當神經元個數為40時,在約3 100 s內,神經網絡修正后的定位誤差小于INS獨立工作時的誤差。在3 100 s之后,神經網絡修正后的定位誤差發散速度顯然要比INS獨立工作時快;6 800 s之后,神經網絡修正后的定位誤差顯著超過INS獨立工作的定位誤差,神經網絡已經不具備誤差修正能力。當神經元個數為50時,在2 h內,神經網絡修正后定位誤差一致明顯低于INS獨立工作的誤差,最小誤差一度為0 m,且誤差隨時間發散速度低于INS獨立工作時的速度。當神經元個數為60時,在約7 200 s內,神經網絡修正后的定位誤差小于INS獨立工作時的誤差,在其之后神經網絡修正后的定位誤差開始加速隨時間發散,且大于INS獨立工作時的誤差。
從表1可以發現,神經元個數為50時,對INS定位修正的效果最好,其中誤差均值為640.9 m、均方根誤差為342.4 m,最大值為1 152.8 m;相比INS獨立工作的原值,誤差均值下降63%,均方根誤差基本不變,最大值下降約50%,最小值為0 m。如圖7所示為修正前后INS定位軌跡與GPS定位軌跡。

圖7 INS獨立工作定位軌跡與修正后軌跡(GPS關閉后2 h)Fig.7 Independent-working INS position trajectory and trajectory with correction (with GPS-off of 2 h)
分析出現上述結果的原因是:當神經元個數不足時,網絡對INS解算位置的數學關系擬合度不夠,導致誤差偏大;當神經元個數過多時,網絡對INS解算位置的數學關系擬合過度,對由于陀螺漂移和加速度計零偏的隨機性引起的誤差修正缺乏彈性。合適的神經元個數,既能實現INS位置解算模型的擬合,也保證了神經網絡具有一定的泛化能力,從而具有更好的誤差修正能力。
確定神經元個數為50,通過試驗比較本文采用的基于Bayesian的權重參數更新方法與傳統的基于L-M算法更新網絡權重參數的方法訓練得到的模型性能。表2列出了兩種方法的訓練時間、占用內存、模型計算時間、修正后的INS定位誤差。其中:訓練持續時間是指利用約24 h的INS和GNSS數據訓練出定位誤差修正模型參數所經歷的時間;占用內存是指訓練模型所需要的內存;模型計算時間是指批量處理GNSS關閉后的2 h內INS獨立定位數據所經歷的時間;修正后的INS定位誤差是指經過神經網絡模型修正INS原始定位結果后與GPS定位結果進行比對而得到的誤差。從表2可以看出,L-M方法的模型訓練迭代周數和訓練時間相比Bayesian方法多約30%,占用內存多90%,模型計算時間接近。L-M修正后INS定位誤差均值為2 941.2 m,誤差均方根為2 190.1 m,最大誤差為16 803.2 m,各項誤差指標遠大于Bayesian方法的修正結果。L-M方法修正后誤差曲線如圖8所示。由圖8可以發現,在前3 000 s,L-M方法對INS定位誤差具有一定效果,在約3 000 s后,L-M算法已經不具備修正INS定位誤差的能力了,且誤差曲線中包含了大量的噪聲。比對試驗結果進一步驗證了L-M算法基于點集合訓練權重參數導致的過擬合問題。

表2 兩種方法模型性能比較Table 2 Comparison of model performance between two methods

圖8 INS獨立工作與L-M算法修正的定位曲線(神經元個數為60)Fig.8 Position curve of independent-working INS and INS with L-M algorithm correction (60 neurons)
確定神經元個數為50。實驗不同數據分配(即訓練集、驗證集、測試集比例分布)方案對定位修正的影響。
分配方案A:樣本數據個數為76 755,從數據樣本中產生153 510個訓練數據,其中50%的數據(76 754個)用于訓練網絡,25%的數據(38 378個)用于檢測網絡的泛化能力,25%的數據(38 378個)用于獨立評估網絡在訓練中和訓練后的性能。
分配方案B:樣本數據個數為76 755,從數據樣本中產生153 510個訓練數據,其中70%的數據(107 456個)用于訓練網絡,15%的數據(23 027個)用于檢測網絡的泛化能力,15%的數據(23 027個)用于獨立評估網絡在訓練中和訓練后的性能。
分配方案C:樣本數據個數為76 755,從數據樣本中產生153 510個訓練數據,其中90%的數據(138 158個)用于訓練網絡,5%的數據(7 676個)用于檢測網絡的泛化能力,5%的數據(7 676個)用于獨立評估網絡在訓練中和訓練后的性能。
圖9所示為3種不同的數據分配方案訓練得到的網絡,在GNSS關閉后的2 h內對INS定位修正的誤差曲線。

圖9 3種訓練樣本的INS定位誤差修正曲線Fig.9 Error correction curve of INS position among three training samples
表3所示為3種不同分配方案訓練得到的網絡,在GNSS關閉后,對INS定位誤差進行修正后的結果。

表3 3種數據分配方案的INS定位誤差修正結果Table 3 Position error correction results of INS via three data training distribution schemes
從圖9可以看出,用于訓練的數據量過少,神經網絡擬合INS位置解算與慣性元件測量量之間的數學關系不準確,其表現就是神經網絡修正后的INS定位誤差規律偏離其一般規律,這一點隨著時間的延長愈發明顯;訓練的數據量過多,神經網絡擬合INS位置解算與慣性元件測量量之間的數學關系過于精確,對陀螺儀和加速度計隨機誤差引起的定位誤差缺乏平滑能力,其表現是修正能力持續時間縮短,泛化能力變弱。
船用INS工作時間長,隨著時間延長,INS獨立工作時的定位誤差將快速發散并無法使用。為了延長INS獨立工作時保精度的時間,本文使用BPNN模型設計了INS定位預測修正方案,基于Bayesian算法更新網絡權重系數。當GNSS有效時,采用組合導航的方式提高系統定位精度,并同步存儲INS原始輸出數據和GNSS定位結果;當GNSS失效時,利用歷史存儲數據訓練網絡參數,將訓練完畢的模型用于解算INS位置。結合實船測試的分析結果,可以得到如下結論:
(1) 相比采用L-M算法更新網絡權重參數,采用Bayesian算法更新網絡權重參數,在訓練時間、內存占用、模型計算時間等方面都更具優勢,而且能夠加強網絡對陀螺儀和加速度計噪聲的抑制能力,進而提高INS定位修正精度。
(2) 神經元的個數以50為宜,神經元個數過少,容易造成網絡欠擬合;神經元個數過多,將造成網絡過擬合。欠擬合和過擬合都將導致后續網絡修正INS定位的性能下降、持續時間縮短。
(3) 數據集的分配以70%的數據用于訓練、15%的數據用于檢驗網絡的泛化能力、15%的數據用于評估網絡性能為佳。訓練數據偏少將會造成對INS解算的數學模型擬合不足,導致網絡解算INS的定位誤差不符合規律;訓練數據偏多將造成對INS解算的數學模型擬合過于確定,導致網絡對陀螺儀和加速度計噪聲平滑效果下降。
通過采用上述方法,可以延長INS保精度時間至少2 h。相比INS獨立采用實際的數學物理模型解算位置,定位誤差均值下降63%,誤差最大值下降約50%,最小值下降至0 m。