武 明, 許承東, 黃國限, 孫 睿, 魯智威
(北京理工大學宇航學院, 北京 100081)
隨著北斗衛(wèi)星導航系統(tǒng)的正式開通,全球導航衛(wèi)星系統(tǒng)(global navigation satellite system, GNSS)用戶導航精度得到進一步提升[1-2]。在民用航空領域中,用戶對導航精度要求提升的同時,對與用戶生命財產安全相關的完好性需求也日益增長[3-4]。完好性一般指衛(wèi)星導航系統(tǒng)發(fā)生故障,提供的導航信息無法用于正確導航,系統(tǒng)及時向用戶發(fā)出告警的能力[5-6]。完好性是用戶對導航系統(tǒng)提供信息的置信程度,是保證用戶安全性的重要性能指標。由于GNSS導航系統(tǒng)并不能持續(xù)滿足民航精密進近的完好性需求,因此進一步研究導航系統(tǒng)完好性監(jiān)視算法是非常必要的。
接收機自主完好性監(jiān)測(receiver autonomous integrity monitoring, RAIM)是用戶端完好性監(jiān)測的主要方法。作為經典的快照類RAIM算法,加權最小二乘殘差RAIM (weighted least squares residual RAIM, WLS-RAIM)算法[7-8]在最小二乘殘差RAIM算法基礎上考慮了偽距觀測實際誤差模型,提高了定位估計解精度和故障衛(wèi)星檢測性能。該算法實現(xiàn)簡單,應用廣泛,但實際使用時只能檢測到較大的偽距故障偏差,使用效果受限。
快照類RAIM算法對微小偽距偏差的檢測率不高,原因在于算法無法準確區(qū)分偽距觀測噪聲和微小偽距故障偏差。因此,科研人員嘗試利用多歷元算法提高故障檢測性能及完好性監(jiān)測水平。Kim等[9]提出了一種新的基于卡爾曼濾波的完好性監(jiān)測算法,該算法將故障持續(xù)時間長度視為變量,引入處理多歷元的多個檢驗統(tǒng)計量,降低了航向完好性風險。Ran等[10]設計了一種多變量累計和RAIM算法,將該算法與奇偶矢量RAIM比較,證明了該算法可檢測中等累積故障。
在多星座衛(wèi)星導航系統(tǒng)部署與雙頻技術快速發(fā)展背景下,高級RAIM(advanced RAIM, ARAIM)被廣泛研究。ARAIM相比RAIM算法需要額外的完好性支持信息(integrity support message, ISM)。Blanch等[11-13]從2012年給出了不斷更新的基線ARAIM用戶算法,提供了用戶接收機實現(xiàn)ARAIM的具體方法。Lee等[14]分析了ISM偏差影響ARAIM完好性與可用性的原理,并評估了ARAIM對ISM偏差的敏感性。Joerger等[15]提出了一種用于ARAIM的時序定位和故障檢測方法,量化了衛(wèi)星運動給ARAIM帶來的性能收益。
RAIM還被擴展應用于列車和自動駕駛等智能交通系統(tǒng)。鐵凱博等[16]將多星座組合RAIM算法應用于列車定位領域,獲得了較小的水平保護級和較高的故障檢測率,提高了列車定位精度。Hassan等[17]總結了GNSS、慣性導航系統(tǒng)、里程表和激光雷達導航系統(tǒng)的特點和漏洞,回顧了當前可以在智能交通系統(tǒng),特別是車輛定位中應用的完好性算法。
完好性監(jiān)測的檢驗理論研究多集中于假設檢驗理論[18]與貝葉斯檢驗理論[19-20]。隨著人工智能技術的深入發(fā)展,模式識別概念逐漸引起研究人員的關注。RAIM的故障檢測問題可視為一種模式識別問題。人工神經網絡模式識別因其可在學習過程中自動提取研究對象特征而被廣泛使用。因此,利用人工神經網絡處理故障衛(wèi)星檢測具有一定的可行性。
Kim等[21]為滿足更高的航空可用性與完好性要求,提出了一種利用延時神經網絡檢測衛(wèi)星故障的方法,該方法可更清楚區(qū)分觀測的GNSS信號異常,估計故障特征信息,進而提高RAIM算法對GNSS信號異常的檢測能力。Sun[22]為解決時間序列故障模型中小故障檢測與延遲報警的問題,提出了一種可用于RAIM的深度神經網絡,提高了小故障情況下的檢測率,減少了時間序列故障事件的報警延遲。Zheng等[23]為了提高完好性監(jiān)測的性能,提出了一種基于概率神經網絡(probabilistic neural network, PNN)的RAIM方法。該方法基于方差膨脹模型,利用定位誤差實現(xiàn)了衛(wèi)星的故障檢測,提高了故障衛(wèi)星檢測能力。基于方差膨脹的概率神經網絡RAIM算法,降低了故障衛(wèi)星檢測的最小可檢測偏差,但并未給出平滑參數(shù)λ的取值依據。同時,定位誤差的故障與無故障訓練樣本在擬合分布中由等距采樣方式形成,未考慮分布的概率密度函數(shù),采樣方式不合理。
針對上述問題,本文提出了一種PNN多歷元殘差RAIM(PNN multi-epoch residual RAIM, PMR-RAIM)算法。該算法利用多歷元偽距殘差作為PNN輸入,降低最小可檢測偏差;利用粒子群優(yōu)化(particle swarm optimization, PSO)算法優(yōu)化平滑參數(shù),滿足誤警率要求,提升了算法檢測能力。
WLS-RAIM算法引入與偽距觀測誤差相關的權陣,提高定位估計精度,基于假設檢驗理論,通過殘差與權陣構造檢驗統(tǒng)計量,利用給定誤警率計算檢測門限,通過對比檢驗統(tǒng)計量與檢測門限實現(xiàn)故障衛(wèi)星檢測。
用戶接收機對衛(wèi)星的偽距觀測方程為
b=Gx+ε
(1)
基于加權最小二乘估計,x的定位估計解為
(2)
式中:W表示與每個衛(wèi)星高度角和用戶測距精度有關的加權陣。通常認為可見衛(wèi)星權值互不相關,則有:
(3)
wi可表示為
(4)
偽距殘差向量可表示為
(5)
令S=I-G(GTWG)-1GTW,式(5)可改寫為ω=Sε。S表示偽距觀測噪聲向量到偽距殘差向量的轉移矩陣。無故障情況下,偽距殘差服從的統(tǒng)計模型為
(6)
由式(5),利用殘差構造檢驗統(tǒng)計量:
Tts=ωTWω
(7)
無故障情況下,檢驗統(tǒng)計量Tts滿足:
Tts~χ2(n-4)
(8)
給定誤警率Pfa,檢測門限TD的計算公式為
(9)
對比檢驗統(tǒng)計量Tts與檢測門限TD,若存在Tts>TD,則WLS-RAIM算法檢測到故障。
偽距觀測故障偏差可視為粗差。在誤差理論中,粗差可被理解為隨機模型[24-25]。隨機模型又被稱為方差膨脹模型。觀測量方差能反映觀測量的離散程度。觀測精度越高,可靠性越好,相應方差越小,則該觀測在參數(shù)估計中所占份額應越重??蓪⒑植钣^測值看作與其他無粗差觀測值有相同期望、不同方差的一個子樣,即:
式中:k為方差膨脹因子,且k>1。
基于方差膨脹理論,若衛(wèi)星存在故障,對應偽距殘差服從的統(tǒng)計模型為
(10)
PNN[27]是在徑向基神經網絡的基礎上融合了貝葉斯決策理論的4層前饋神經網絡。PNN具有易于訓練、收斂速度快、徑向基非線性映射函數(shù)容錯性強等特點,適用于處理異常檢測問題,能夠用于故障衛(wèi)星檢測。
用于檢測故障衛(wèi)星的4層PNN結構圖如圖1所示。該PNN可將衛(wèi)星分為故障衛(wèi)星與無故障衛(wèi)星兩類。
圖1 PNN結構圖Fig.1 Structure diagram of PNN
輸入層:輸入某顆可見衛(wèi)星連續(xù)t個歷元的偽距殘差。該層共包括t個神經元。
模式層:計算激活函數(shù)值,該值表示輸入樣本與訓練樣本的相似程度。第i類模式的第j個神經元φij(x)的輸出為
(11)
式中:Xij為第i類第j個訓練樣本;i=1,2,表示分類數(shù),即故障類與無故障類;j=1,2,…,Ni,Ni為第i類訓練樣本的數(shù)目,Ni越大,計算量越大,計算所得相似程度可信度越高;λ為平滑參數(shù)。
訓練樣本從由式(6)和式(10)建立的兩類衛(wèi)星偽距殘差服從的統(tǒng)計模型中按概率密度函數(shù)采集一定數(shù)量的樣本形成。該層共包括N1+N2個神經元。
求和層:用于計算輸入樣本屬于故障類的平均概率v1和屬于無故障類的平均概率v2。該層共包括兩個神經元。
(12)
輸出層:輸出求和層中最大值所對應的類別,實現(xiàn)衛(wèi)星分類。該層由單個神經元實現(xiàn)。
y=arg max(vi)
(13)
式中:arg max(vi)表示取vi最大值所對應的下標;當v1>v2時,認為導航衛(wèi)星存在故障;當v1 PNN中平滑參數(shù)的選擇會直接影響算法的檢測性能[28]。為滿足導航誤警率要求,提升故障檢測效果,采用PSO[29]算法優(yōu)化PMR-RAIM檢測模型的平滑參數(shù)。PSO靠粒子群在搜索空間內迭代計算,評價適應度,獲取最優(yōu)解。 平滑因子優(yōu)化問題是一個一維優(yōu)化問題,即搜索空間為一維。每個粒子是獨立的,有自己的位置和速度。每個位置都是潛在的平滑因子最優(yōu)解,每個速度表示粒子的移動。迭代公式如下所示: (14) 式中:vi,t表示當前時刻第i個粒子的速度;vi,t+1表示下一時刻第i個粒子的速度;xi,t表示當前時刻第i個粒子的位置;xi,t+1表示下一時刻第i個粒子的位置;pi,t表示當前時刻第i個粒子自迭代搜索以來的歷史最佳位置;pg,t表示當前時刻整個粒子群迭代搜索以來的全局最優(yōu)位置;c1,c2表示非負數(shù)學習因子;r1,r2表示給定區(qū)間隨機數(shù)。 適應度函數(shù)用來評估迭代計算位置的適應度值,即評估計算位置是否滿足誤警率要求。設計的適應度函數(shù)如下所示: F(xi)=1/(1+Qfa(xi)) (15) 最優(yōu)解就是適應度值最大的位置。其中, (16) 式中:F(xi)表示粒子xi的適應度函數(shù);Qfa(xi)表示以粒子xi作為平滑參數(shù)的PMR-RAIM算法在無故障情況下,進行1/Pfa次故障衛(wèi)星檢測實驗,檢測結果為“有故障”的次數(shù)。 參數(shù)優(yōu)化過程中,PSO算法本身收斂速度快,但適應度計算需滿足誤警率,蒙特卡羅仿真存在一定耗時。運用PMR-RAIM算法計算Qfa(xi)的過程中需確定殘差標準差σωi,故σωi與優(yōu)化的平滑參數(shù)λ存在對應關系。為便于算法快速使用,建立如表1所示的平滑參數(shù)λ與標準差σωi和誤警率Pfa相對應的插值表。當PMR-RAIM進行建模時,根據輸入的σωi與要求滿足的Pfa選擇與之對應的λ,快速完成PMR-RAIM算法參數(shù)優(yōu)化。 表1 平滑參數(shù)λ插值表 PMR-RAIM算法故障衛(wèi)星檢測流程共包含5步,如圖2所示。 圖2 PMR-RAIM算法故障檢測流程Fig.2 PMR-RAIM algorithm fault detection process 步驟 1用戶接收機接收觀測信息與衛(wèi)星導航信息。 步驟 2利用加權最小二乘估計求得到當前歷元為止連續(xù)t個歷元的定位估計解、偽距殘差和偽距殘差標準差。 步驟 3針對第i顆可見衛(wèi)星構建PMR-RAIM檢測模型(i=1,2,…,n,n表示可見衛(wèi)星數(shù)),該步驟共包括以下2點。 步驟 3.1基于第i顆可見衛(wèi)星殘差標準差σωi構建PNN故障與無故障類訓練樣本。 步驟 3.2基于第i顆可見衛(wèi)星殘差標準差σωi與誤警率Pfa確定平滑參數(shù)λ。 第i顆可見衛(wèi)星在t個歷元中共有t個不同的殘差標準差,短時間內衛(wèi)星幾何構型變化很小[30],由此導致殘差標準差變化量極小,可取t個歷元內任一殘差標準差進行該步驟計算。 步驟 4將第i顆可見衛(wèi)星連續(xù)t個歷元的偽距殘差輸入到PNN,獲取檢測結果。 步驟 5若衛(wèi)星存在故障,則輸出導航系統(tǒng)故障信號。若衛(wèi)星無故障且i=n,則輸出導航系統(tǒng)無故障信號。若衛(wèi)星無故障且i 為驗證所提算法的有效性,分析平滑參數(shù)優(yōu)化效果,采用武漢跟蹤站在2021年4月10日的全球定位系統(tǒng)(global positioning system, GPS)導航數(shù)據進行仿真。模擬接收機位置為(39.9°N, 116.3°E,58 m),遮擋角為8°,誤警率要求1×10-6,采集數(shù)據時間為2021年4月10日14:00:00至2021年4月10日15:59:59,采集頻率為1 Hz,多歷元持續(xù)時間為告警時間(6 s)。仿真初始時刻可見衛(wèi)星天空圖如圖3所示。 圖3 可見衛(wèi)星天空圖Fig.3 Skyplot of visible satellite 偽距觀測誤差包含衛(wèi)星相關誤差、傳播過程誤差與接收機相關誤差3類[12,23,31],3類誤差通常被假設為相互獨立的零均值正態(tài)分布。本文考慮的衛(wèi)星相關誤差為衛(wèi)星星歷誤差、衛(wèi)星時鐘誤差,該部分誤差標準差由導航信息中的用戶測距精度(user range accuracy, URA)給出。傳播過程誤差為對流層誤差,接收機相關誤差為多徑誤差和接收機噪聲,這3部分誤差標準差與接收機到衛(wèi)星的高度角θ相關,具體如表2所示。 表2 偽距誤差標準差 考慮實際發(fā)生的故障次數(shù)較少且故障不會重復,故人為向偽距值添加故障偏差,構造故障數(shù)據,用以檢測算法性能。 3.2.1 單星緩變故障分析 利用所提算法與WLS-RAIM算法和ARAIM算法[32]進行單星緩變故障檢測實驗,驗證所提算法的有效性。取2021年4月10日14:00:00起300個歷元進行實驗。緩變故障斜率取小于等于1 m/s[33]。為不失一般性,在G05衛(wèi)星第51個到第100個歷元間添加斜率為0.3 m/s的緩變故障;在第151個到第200個歷元間添加斜率為0.5 m/s的緩變故障;在第251個到第300個歷元間添加斜率為1 m/s的緩變故障。實驗檢測結果如圖4所示。 圖4 緩變故障檢測結果圖Fig.4 Slowly growing fault detection results 圖4中,WLS-RAIM和ARAIM的檢驗統(tǒng)計量超過檢測門限時,檢測到存在故障衛(wèi)星;PMR-RAIM的檢驗標識為1時,檢測到存在故障衛(wèi)星。對于相同的緩變故障,PMR-RAIM發(fā)出告警的時間最早,告警時間占故障時間比例最高。ARAIM檢測性能略差于PMR-RAIM。WLS-RAIM檢測性能最差。 3.2.2 單星階躍故障分析 同時利用所提算法與WLS-RAIM算法進行單星階躍故障檢測實驗,分析所提算法對階躍故障的檢測效果。仿真實驗中,每顆可見衛(wèi)星都被視為故障衛(wèi)星,分別添加從0 m增加到100 m、步長為5 m的不同階躍故障偏差,在每種偽距偏差下進行1 000個歷元的測試,獲得如圖5所示的故障檢測率曲線。 圖5 PMR-RAIM算法與WLS-RAIM算法的故障檢測率對比圖Fig.5 Comparison of fault detection rate between PMR-RAIM and WLS-RAIM 如圖5所示,PMR-RAIM故障檢測率曲線用帶圓圈的實線繪制,WLS-RAIM故障檢測率曲線用帶三角的虛線繪制,每種顏色代表一顆可見衛(wèi)星,顏色與對應衛(wèi)星的偽隨機噪聲(pseudo random noise, PRN)碼編號如圖5中的圖例所示。 分析圖5可知,圖中相同顏色的兩種曲線,實線全部位于虛線左側,當添加10 m的偽距偏差時,兩種算法對應的故障檢測率如表3所示。對于相同的小偽距偏差,PMR-RAIM算法的檢測正確率明顯更高,檢測能力更強。 表3 偽距偏差為10 m時的故障檢測率 故障檢測過程中,當故障檢測率第一次達到100%時,對應的偽距偏差為最小可檢測偏差。兩種算法對各可見衛(wèi)星的最小可檢測偏差如表4所示。PMR-RAIM算法對各可見衛(wèi)星的最小可檢測偏差均低于WLS-RAIM算法9 m以上。PMR-RAIM算法降低了最小可檢測偏差,提高了小偽距偏差條件下的故障檢測能力。 表4 可見衛(wèi)星最小可檢測偏差 3.2.3 雙星階躍故障分析 為驗證所提算法對雙星故障的檢測可行性,選取G02與G06作為故障衛(wèi)星,同時利用所提算法與WLS-RAIM算法和ARAIM算法進行故障檢測。偽距故障偏差添加方法與第3.2.2節(jié)相同。檢測結果如圖6所示。 如圖6所示,ARAIM算法故障檢測率曲線用帶星形的點劃線表示。PMR-RAIM算法和WLS-RAIM算法的檢測曲線的表示方法與第3.2.2節(jié)一致。由圖6可知,實線全部位于虛線和點畫線左側,所提算法在雙星故障與單星故障情況下的檢測性能均優(yōu)于WLS-RAIM和ARAIM。所提算法檢測雙星故障曲線位于所提算法檢測單星故障曲線右側,所提算法在雙星故障情況下檢測性能變差。WLS-RAIM和ARAIM檢測效果類似,檢測雙星故障曲線與檢測G06單星故障曲線重疊,位于檢測G02單星故障曲線左側,WLS-RAIM和ARAIM在雙星故障情況下檢測性能未有提升。 為分析平滑參數(shù)優(yōu)化效果對PMR-RAIM算法故障檢測的影響,利用未優(yōu)化的平滑參數(shù)進行與第3.2.2節(jié)相同的仿真實驗。未優(yōu)化的平滑參數(shù)通常取一定值。由表1可知,優(yōu)化后平滑參數(shù)位于區(qū)間(2,6)內,取λ=2進行仿真,實驗結果如圖7所示;取λ=6進行仿真,實驗結果如圖8所示。 圖7 λ=2時的PMR-RAIM算法與WLS-RAIM算法 故障檢測率對比圖Fig.7 Comparison of fault detection rate between PMR-RAIM of λ=2 and WLS-RAIM 圖8 λ=6時的PMR-RAIM算法與WLS-RAIM算法 故障檢測率對比圖Fig.8 Comparison of fault detection rate between PMR-RAIM of λ=6 and WLS-RAIM 對比圖5,分析圖7可知,未改變WLS-RAIM算法相關設置,虛線位置基本不變;平滑參數(shù)越小,圖中實線向左偏移,表明平滑參數(shù)越小,PMR-RAIM算法的故障檢測的能力越強。同時,分析偽距偏差為0(即無故障情況)時檢測的局部放大圖可知,較小的平滑參數(shù)會導致PMR-RAIM算法的誤警率變大,無法滿足算法使用中的導航要求。 對比圖5,分析圖8可知,平滑參數(shù)越大,圖中實線向右偏移,且G29與G15對應實線已與其他衛(wèi)星對應虛線產生重疊,表明平滑參數(shù)越大,PMR-RAIM算法故障檢測能力越弱。 優(yōu)化平滑參數(shù)的PMR-RAIM算法滿足了誤警率要求,提升了故障檢測能力。 針對傳統(tǒng)WLS-RAIM在小偽距偏差條件下故障檢測率較低的問題,提出了PNN多歷元殘差RAIM算法。該算法將故障檢測問題視為模式識別問題,基于方差膨脹模型構建PNN中的訓練樣本,通過PSO算法優(yōu)化PNN平滑參數(shù),滿足導航誤警率要求,利用優(yōu)化后PNN處理可見衛(wèi)星多歷元殘差數(shù)據,實現(xiàn)故障檢測。 仿真實驗表明,PSO算法優(yōu)化平滑參數(shù)在保證誤警率的前提下提高了所提算法的故障檢測性能。所提算法檢測單星階躍故障的性能明顯強于WLS-RAIM,且所提算法小故障偏差的故障檢測率更高,最小可檢測偏差更小。所提算法檢測單星緩變故障和雙星階躍故障的能力均強于WLS-RAIM和ARAIM。相比單星故障,所提算法在處理雙星故障時性能出現(xiàn)退化,需進一步研究。2.2 平滑參數(shù)λ的確定
2.3 PMR-RAIM算法故障檢測流程
3 算法性能分析
3.1 仿真數(shù)據
3.2 PMR-RAIM算法性能分析
3.3 平滑參數(shù)λ的優(yōu)化效果分析
4 結束語