高文寧,岳富占,徐振興,劉 鵬,李東俊
(北京衛星信息工程研究所,北京 100086)
目前,北斗衛星導航系統已經在導彈等精確制導武器中得到了廣泛應用,與慣性導航結合共同為導彈提供高精度的定位服務。由于衛星信號為無線信號,極易受到外部干擾而引起定位偏差,因此衛星導航系統除了提供定位功能外,還必須具有在系統不能使用時及時向用戶發出告警的能力,這種能力叫作接收機自主完好性監測(Receiver Autonomous Integrity Monitoring,RAIM)[1-2]技術。傳統的衛星信號完好性監測算法都要求可見星數在5顆以上才可以檢測出故障星,6顆以上才可以剔除存在故障的衛星。但是武器型號的衛星導航接收機通常在叢林等復雜環境中使用,北斗衛星由于信號遮掩、易受干擾等因素的影響,量測時常常不能提供足夠的衛星余度信息,不能滿足一般RAIM算法要求,并且單獨的RAIM方法不能對漸變誤差信號進行有效剔除[3]。因此,為了滿足高精度、高可靠性定位的要求,需要利用其他輔助系統增加余度信息,以滿足冗余條件。慣性導航系統是一種獨立的導航系統,具有較高的短期穩定性和抗干擾能力,可與北斗衛星組合實現衛星故障剔除,基于慣性輔助衛星導航實現完好性監測功能[4-5]。
目前,應用于衛星導航接收機完好性監測的方法主要為基于偽距殘差的χ2檢驗法[6],此類方法不需要確定造成故障的原因,缺點是對慢變故障的檢測時間較長,并且不能完成5星以下的故障識別與隔離。多解分離(Multi-Solution Separation,MSS)是將慣性與衛星信息進行數據融合以實現RAIM監測的一種有效方法[7],它以高斯分布的多個Kalman濾波估計的多解分離為基礎進行完好性監測[8]。本文在衛星導航系統的框架下,融合慣性信息設計了一種基于多解分離的組合濾波器結構,每層濾波器不棄用、棄用一組或兩組偽距和偽距率觀測值,利用各層濾波器估計解之間的差異構建檢測統計量,實現對北斗衛星故障的檢測和隔離。
基于慣性輔助的RAIM算法采用Kalman濾波器進行設計[9],系統結構如圖1所示,其中共包含1個主濾波器和N個子濾波器,次濾波器的實際數量為N(N-1)/2。主濾波器記為F0,0,子濾波器記為F0,n,次濾波器記為Fm,n,其中m和n都是從1~N的整數,表示被棄用的可見星標號。通過主濾波器F0,0與各個子濾波器F0,n狀態估計的差值,得到多解分離估計,并根據主/子濾波器多解分離程度與檢測門限的對比結果進行故障檢測,故障隔離則由子濾波器和次濾波器的多解分離進行處理。

圖1 基于Kalman濾波的北斗接收機結構圖Fig.1 Structural chart of BDS receiver based on Kalman filter
衛星導航系統的Kalman濾波器狀態方程建立為
X(k)=Φ(k,k-1)X(k-1)+Γ(k-1)W(k-1)
(1)
式中
X=[δvE,δvN,δvU,δL,δλ,δh,δtu,δtru]T
其中,狀態量X包括速度誤差δvE、δvN、δvU,位置誤差δL、δλ、δh,接收機鐘差δtu和時鐘漂移誤差δtru;Φ為狀態轉移矩陣;Γ為系統噪聲矩陣;W為系統噪聲;k為時間變量。
系統觀測方程建立為
Z(k)=H(k)X(k)+V(k)
(2)

觀測矩陣H表示為
(3)

主濾波器F0,0使用所有可見衛星的觀測量,因而其觀測矢量Z0,0為
(4)
與之相對應的觀測矩陣H0,0即為H
(5)
子濾波器F0,n使用N-1個觀測量,第n個子濾波器F0,n的觀測矢量Z0,n為

(6)
相應的觀測矩陣H0,n為

(7)
同理,次濾波器Fm,n使用N-2個觀測量,第m個子濾波器組內的第n(m≠n)個次濾波器Fm,n的觀測矢量Zm,n及相應的觀測矩陣Hm,n分別為
Zm,n=[zρ,1,…,zρ,m-1,zρ,m+1,…,zρ,n-1,
Hm,n=[hρ,1,…,hρ,m-1,hρ,m+1,…,hρ,n-1,
(8)
經過Kalman濾波得到的主濾波器F0,0、子濾波器F0,n和次濾波器Fm,n的狀態估計量分別為X0,0、X0,n和Xm,n,對應的估計協方差陣分別為P0,0、P0,n和Pm,n,對應的濾波器增益分別為K0,0、K0,n和Km,n。
故障檢測與隔離算法的設計主要是完成檢測統計量和相應檢測門限的構建。在北斗故障檢測過程中,計算每個歷元主濾波器與各子濾波器狀態估計值的多解分離矢量
dX0,n(k)=X0,0(k)-X0,n(k)
(9)
故障隔離過程中,則需要計算每個歷元各子濾波器與其下屬次濾波器狀態估計值的多解分離矢量
dXm,n(k)=X0,m(k)-Xm,n(k)
(10)
故障檢測的統計量可以采用dX0,n的協方差矩陣來描述,即
(11)


(12)

(13)
當給定故障檢測虛警概率PFA后,可根據檢測統計量的分布情況計算每個子濾波器的檢測門限
(14)




在故障隔離完成后,利用未包括故障衛星觀測量的子濾波器對所有濾波器進行重組,即未使用故障衛星觀測量的子濾波器作為新的主濾波器,提供導航解輸出、慣導誤差估計校正以及對北斗接收機捕獲、跟蹤的速率輔助;而原來該子濾波器下屬的次濾波器作為新的子濾波器,然后構造新的次濾波器,繼續對衛星完好性進行監測。

(15)

(16)
進而得到多解分離RAIM的HPL為
(17)
當HPL小于告警門限值時,說明當前時刻多解分離RAIM算法可用[14-16]。


圖2 多解分離RAIM算法仿真驗證流程圖Fig.2 Flow chart of MSS RAIM algorithm simulation
在基于慣導輔助的多解分離故障檢測方案中,首先需要盡量避免在無衛星故障時系統發生誤警,圖3所示為無衛星故障時,子濾波器F0,1~F0,4的檢測統計量值。由圖3可見,各子濾波器的檢測統計量值均小于門限值1。因而,根據無故障假設H0,能夠保證無衛星故障時系統不產生誤警。

圖3 無衛星故障時各子濾波器檢測統計量值Fig.3 Detection statistic of sub-filters in the case of no satellite faults
為了驗證多解分離故障檢測與隔離算法的有效性,在偽距和偽距率觀測值中加入故障數據。假設故障星為第2顆可見星,標號為SAT2。當組合導航濾波器穩定運行270s后,向SAT2的偽距和偽距率觀測數據中分別施加750m、75m/s的階躍故障,5m/s、0.5m/s2的慢速漂移故障和5m/s、0.5m/s2的慢速隨機故障,并在420s處將故障撤除。
圖4所示為SAT2分別存在三種不同類型故障時,子濾波器F0,1~F0,4的檢測統計量值。由圖4可見,在SAT2發生故障期間,子濾波器F0,1~F0,4的檢測統計量值均明顯增大,三種類型故障條件下,最快分別約在271.9s、277.8s和276.1s超過門限值1。因而,根據存在故障假設H1,多解分離故障檢測算法對所設置的階躍、慢速漂移和慢速隨機故障的檢測時間分別為1.9s、7.8s和6.1s。

圖4 SAT2故障時各子濾波器檢測統計量值Fig.4 Detection statistic of sub-filters in the case of SAT2 faults
若要識別并隔離具體的故障衛星,則需要使用次濾波器的檢測結果。圖5所示為SAT2階躍故障條件下,子濾波器F0,1和F0,2下屬次濾波器的檢測統計量值。由圖5可見,除了子濾波器F0,2下屬的次濾波器F2,1、F2,3和F2,4未檢測到故障外,其他3個子濾波器下屬的次濾波器都檢測出故障(圖中僅給出F0,1的情況,F0,3、F0,4與F0,1類似)。因此,根據故障隔離原理,子濾波器F0,2未使用的觀測數據對應的可見星即為故障星,即SAT2。

圖5 SAT2階躍故障時次濾波器檢測統計量值Fig.5 Detection statistic of sub-filters in the case of SAT2 step faults
對于所施加的階躍故障,仿真過程中得出次濾波器F1,2~F1,4的檢測統計量超過門限值的時間分別約為271.7s、273.1s和272.6s,次濾波器F3,1~F3,4分別約為272.7s、271.5s和273.4s,次濾波器F4,1~F4,3分別約為273.2s、271.5s和273.0s,表明子濾波器F0,1的故障檢測時間為1.7s,F0,3為1.5s,F0,4為1.5s。由圖4分析可知,主濾波器F0,0的故障檢測時間為1.9s,而上述過程中只有子濾波器F0,2下屬的次濾波器F2,1~F2,4均未檢測出故障。因此,根據故障隔離原理確定SAT2為故障星所需的時間為1.9s,即對于750m、75m/s的階躍故障,多解分離算法可在檢測的同時完成隔離。
圖6所示為SAT2慢速漂移故障時,子濾波器F0,2和F0,3下屬次濾波器的檢測統計量值(子濾波器F0,1、F0,4與F0,3的情況類似,未給出)。圖7所示為SAT2慢速隨機故障時,子濾波器F0,2和F0,4下屬次濾波器的檢測統計量值(子濾波器F0,1、F0,3與F0,4的情況類似,未給出)。采用與階躍故障相同的分析方法,可以確定多解分離算法對5m/s、0.5m/s2的慢速漂移及隨機故障的隔離時間分別為8.7s和6.4s,與故障檢測時間相比分別延遲了0.9s和0.3s。

圖7 SAT2慢變隨機故障時次濾波器檢測統計量值Fig.7 Detection statistic of sub-filters in the case of SAT2 slow random faults
圖8所示為三種故障條件下主濾波器F0,0與子濾波器F0,2的水平定位結果。由圖8可見,隔離SAT2偽距和偽距率觀測值后,子濾波器F0,2對水平位置誤差(Horizontal Position Error,HPE)校正后的定位結果與真實軌跡基本重合,能夠有效消除故障觀測值對衛星接收機定位精度的影響。

圖8 主濾波器F0,0與次濾波器F0,2的水平定位結果Fig.8 Horizontal positioning results of F0,0 and F0,2 filters
采用多解分離算法對SAT2偽距和偽距率故障的檢測、隔離結果如表1所示。分析可知,對慢速漂移故障的檢測與隔離所需時間最長,且在故障隔離前主濾波器F0,0的HPE最大值已達到67m,因而實際應用過程中慢速漂移故障對深耦合系統性能的影響最為嚴重。故障隔離后,采用子濾波器F0,2作為新的主濾波器,HPE小于4.6m,可用于最終的導航輸出。此外,基于F0,2構建新的MSS濾波器結構,進而繼續實施完好性監測。

表1 SAT2故障檢測與隔離結果
為驗證算法的有效性,本文利用衛星/慣性組合導航模擬器搭建半物理仿真驗證系統,圖9所示為系統組成框圖。

圖9 測試系統組成示意圖Fig.9 Composition diagram of test system
設置組合導航模擬器發出北斗衛星1、2、3、4號共4顆衛星的信號,其中,在仿真進行到300s時,將北斗系統2號星偽距拉偏320m,從而使2號星成為偽距異常的故障星,圖10所示為衛星信號模擬器設置界面。

圖10 衛星模擬信號設置界面Fig.10 Satellite signal setting interface
同時,設置模擬器仿真導彈用的導航級捷聯慣性導航系統,加速度計零偏為50μg,陀螺零偏穩定性為0.01(°)/h。模擬器通過RS422接口與衛星導航接收機進行數據交互。
北斗衛星導航接收機輸出的數據通過臺式計算機中的上位機界面進行觀測。當2號星偽距異常時,衛星導航接收機收星情況如圖11所示, 1、2、3、4號衛星均成功接收到,但北斗系統2號星剔除原因顯示為9(剔除原因為9表示RAIM剔除),說明2號偽距異常衛星已被軟件檢測出并完成剔除。

圖11 測試結果顯示界面Fig.11 Display window of test results
本文針對北斗可見星星數較少及幾何分布較差的情況,設計了一種基于慣性輔助的多解分離北斗接收機完好性監測方案,以消除可見衛星數與幾何分布條件對RAIM可用性的限制。在北斗導航接收機Kalman濾波器結構的基礎上,設計了多級Kalman濾波器及相應的故障檢測與隔離方法。仿真及實驗驗證表明,單星故障時,該方案能夠有效檢測并隔離北斗偽距和偽距率觀測值中的階躍、慢速故障數據,進而可保證北斗接收機不受故障星的影響,實現連續、精確的導航解算。