王爾申,范云飛,龐 濤,張芝賢
(1.沈陽航空航天大學電子信息工程學院,遼寧沈陽110136;2.北京航空航天大學電子信息工程學院,北京100191)
GPS接收機自主完好性監(jiān)測算法硬件仿真
王爾申1,2,范云飛1,龐 濤1,張芝賢1
(1.沈陽航空航天大學電子信息工程學院,遼寧沈陽110136;2.北京航空航天大學電子信息工程學院,北京100191)
針對卡爾曼濾波算法在處理GPS接收機非高斯測量噪聲性能下降的問題,提出了粒子濾波用于接收機自主完好性監(jiān)測的算法,并利用FPGA對算法進行仿真。通過將粒子濾波與似然比結合建立一致性檢驗統(tǒng)計量進而對故障衛(wèi)星檢測與隔離,對算法進行了詳細的理論分析和建模,給出了算法的詳細描述和仿真方法,在FPGA中采用Verilog編程驗證粒子濾波算法用于接收機自主完好性監(jiān)測的模塊設計。結果表明:設計的各個模塊運行結果正確,可與Microblaze軟核配合完成接收機自主完好性監(jiān)測算法的全部功能的設計。
GPS;接收機自主完好性監(jiān)測;粒子濾波;現(xiàn)場可編程邏輯門陣列
衛(wèi)星導航系統(tǒng)的完好性是指當導航系統(tǒng)的誤差超過允許限值不能勝任規(guī)定的導航性能需求時,系統(tǒng)及時告警通知用戶。它是保障飛行安全的導航參數(shù)關鍵指標之一。
完好性監(jiān)測包括系統(tǒng)級和接收機自主完好性監(jiān)測。系統(tǒng)級的完好性監(jiān)測主要是利用地面監(jiān)測站監(jiān)測,通過數(shù)據(jù)鏈路給用戶播發(fā)完好性參數(shù)等信息[1]。接收機自主完好性監(jiān)測(receiver autonomous integrity monitoring,RAIM)是利用接收機內(nèi)部的冗余觀測量進行一致性校驗的技術實現(xiàn)衛(wèi)星故障檢測和故障識別。其中故障檢測是檢測衛(wèi)星是否存在故障,故障隔離是為確定存在故障的衛(wèi)星并在導航解算中將其剔除。由于RAIM不需要外部設備的輔助,因此,RAIM技術受到了廣泛關注和研究。目前,國內(nèi)外對RAIM理論已經(jīng)有了深入的研究,比如距離比較法、最小二乘法、奇偶矢量法。奇偶矢量法和最小二乘法得到的檢測統(tǒng)計量在實際應用中具有等效性[2-3]。但大部分算法考慮GPS接收機測量噪聲為高斯噪聲分布,實際上GPS接收機偽距測量噪聲不是嚴格的高斯噪聲分布[4],關于RAIM的研究主要集中在理論研究上,硬件實現(xiàn)方面研究的較少。
本文針對非高斯測量噪聲的特性,研究粒子濾波算法(Particle Filter,PF)用于RAIM,對算法的FPGA實現(xiàn)進行仿真。
粒子濾波算法又稱為序貫蒙特卡羅方法。當樣本容量較大時,近似于狀態(tài)變量真實的后驗概率密度函數(shù)[5]。粒子濾波對系統(tǒng)的過程噪聲和量測噪聲沒有限制,適用于非線性系統(tǒng),濾波精度可以逼近最優(yōu)估計。粒子濾波的誤差和模型的失配程度是密切相關的,隨著模型失配程度的增大,粒子濾波誤差快速增長[6-7]。
GPS接收機的狀態(tài)空間模型和測量模型可以表示為:
式(1)為系統(tǒng)的狀態(tài)方程,其中,X=[rx,ry,rz,Δδ],Δδ為接收機相對于衛(wèi)星時間的誤差;F為轉移矩陣,在靜止狀態(tài)下為單位矩陣;w為過程噪聲。式(2)中(t)為觀測歷元t由衛(wèi)星Sj到接收機的測碼偽距;c為光速;δti(t)為GPS接收機站鐘的鐘差(t)和(t)分別為觀測歷元t電離層折射和大氣對流云層折射對測碼偽距的影響。其中,為接收機與第i顆衛(wèi)星之間的實際距離[8]。在接收機中,用于定位解算的衛(wèi)星位置坐標、偽距ρi和鐘差Δt可以從原始觀測值中獲得。
文中采用粒子濾波算法和似然比方法相結合來實現(xiàn)對衛(wèi)星故障的檢測和隔離[9]。算法的流程描述為:
根據(jù)接收機所在坐標(rx,ry,rz)產(chǎn)生N個主PF的初始粒子{(i):i=1,2,…,N}和輔助PF的初始粒子(i):i=1,2,…,N}(i)=(i)。
每個時刻k重復以下步驟:
3)計算LLR
5)故障判決 如果βk>τ(τ為判決閾值),故障告警設置為ta=t時刻并跳轉至步驟6);如果βk<τ,則表示沒有故障,跳轉至步驟7)。
6)故障檢測 在k>ta下,取出Q顆衛(wèi)星中累積LLR最大的衛(wèi)星子集。
7)狀態(tài)更新 粒子濾波重采樣得到更新粒子。
由于算法中涉及大量的計算,選用FPGA來仿真粒子濾波和RAIM結合算法。FPGA具有較好的并行執(zhí)行能力,對于粒子濾波中的粒子計算有較大的優(yōu)勢,能大大減少計算時間,提高算法的執(zhí)行效率[10]。同時,考慮到運算中浮點數(shù)的計算,利用FPGA中嵌入的Microblaze軟核進行設計,并與邏輯計算部分通過數(shù)據(jù)總線進行接口。
MicroBlaze軟核內(nèi)部有32個通用寄存器R0~R3、2個特殊寄存器程序指針(PC)和處理器狀態(tài)寄存器(MSR)、1個移位單元和兩級中斷響應單元等基本模塊,還具有3/5級流水線、桶形移位器、內(nèi)存管理/內(nèi)存保護單元,浮點單元(FPU)、高速緩存、異常處理和調(diào)試邏輯等根據(jù)性能需求和邏輯區(qū)域成本任意裁剪的高級特性,極大地擴展了MicroBlaze的應用范圍。MicroBlaze軟核與FPGA邏輯設計部分相結合,能極大地方便算法的設計和實現(xiàn)。粒子濾波RAIM算法實現(xiàn)的整體結構框圖如圖1所示。
圖1 粒子濾波RAIM算法實現(xiàn)整體結構框圖Fig.1 PF RAIM structure block diagram
由于FPGA處理浮點數(shù)以及數(shù)學公式有所限制,設計中采用MicroBlaze軟核實現(xiàn)浮點數(shù)以及數(shù)學公式的運算。
粒子濾波RAIM算法實現(xiàn)包括MicroBlaze軟核部分和邏輯運算部分,其中MicroBlaze軟核部分包括權值計算和對數(shù)似然比計算。在進行權值計算過程中含有指數(shù)運算,對數(shù)似然比計算中含有對數(shù)運算,因此,使用MicroBlaze軟核更能發(fā)揮其運算處理方面的優(yōu)勢,易于實現(xiàn)。算法的邏輯運算部分,包括噪聲產(chǎn)生模塊、粒子狀態(tài)計算模塊、重采樣模塊和故障檢測模塊等,這些模塊涉及到矩陣計算、求和等采用Verilog HDL直接編程實現(xiàn),以發(fā)揮FPGA硬件計算、并行執(zhí)行的優(yōu)勢,進而提高計算效率。
算法運算中的數(shù)據(jù)需要將浮點數(shù)在符合所需的精度下轉化為定點數(shù)計算,邏輯部分對于定點數(shù)的計算有很強的處理能力。整個算法中需要注意MicroBlaze軟核部分和邏輯部分的數(shù)據(jù)處理速率,增加相應的數(shù)據(jù)緩存器來進行數(shù)據(jù)的暫存,以保證數(shù)據(jù)速率上的同步。模塊處理結束的數(shù)據(jù)存儲在隨機存儲器(RAM)中,在RAM中設有共享的RAM空間區(qū)域,用于MicroBlaze軟核和FPGA邏輯部分之間進行數(shù)據(jù)交換。
2.1 重采樣算法模塊的FPGA仿真
在粒子濾波算法中,隨著迭代次數(shù)的增加,粒子的重要性權值的方差會越來越大。大部分粒子的權值會變得非常小直到變?yōu)?,而僅有少量的粒子權值會變得較大,產(chǎn)生粒子退化現(xiàn)象。這不僅會浪費計算時間,還會使得粒子集不能有效地表示當前的后驗概率密度分布。重采樣的思想是去除權值小的粒子,保留并復制那些權值較大的粒子來代替它們,重采樣方法能有效地抑制粒子退化問題[11]。重采樣算法流程如圖2所示。
從圖2可以看出,重采樣方法描述為:設重采樣的粒子數(shù)為N,包括兩個循環(huán),內(nèi)外循環(huán)次數(shù)都為N。算法執(zhí)行時,隨機選取一個介于0和1之間的隨機數(shù)g,同時將權值和Sum歸零。然后,會進入內(nèi)層循環(huán),每循環(huán)一次,對應的粒子權值和進行累加,并與g進行比較。若Sum<g,說明當前的粒子權值較小,此時的粒子可以舍去,繼續(xù)判斷內(nèi)循環(huán)的次數(shù),確定是否繼續(xù)內(nèi)循環(huán)還是進入下一個的外循環(huán);若Sum≥g,說明當前的粒子權值較大,取出當前的采樣粒子,進行外循環(huán)次數(shù)判斷是繼續(xù)下一次循環(huán)采樣或重采樣完成,最后存儲粒子。重采樣完成的粒子權值歸一化為1/N。粒子濾波重采樣模塊的FPGA仿真結果如圖3所示。
圖2 粒子濾波的重采樣方法流程Fig.2 PF resampling flow chart
圖3 重采樣模塊的FPGA仿真結果Fig.3 FPGA simulation result of resampling module
在圖3中,pout為重采樣模塊輸出端,為計算之后得到的重采樣粒子。為將重采樣之后的粒子存儲到RAM中,需要對RAM指定使能端信號和寫入的地址,enparticle為RAM的寫使能信號,addrparticles為對應的RAM地址信號端。同時存儲到RAM中的還有重采樣之后的粒子所對應的權值,addrweight為對應的寫入地址信號。clk和rst分別為時鐘信號和復位信號端,u[9:0]為算法流程圖中所選用的隨機數(shù)g,為篩選出權值較大的粒子的參考數(shù)。
2.2 重采樣粒子均值計算模塊的FPGA仿真
均值計算模塊是指在每一時刻將重采樣之后的N個粒子,利用粒子值和粒子權值進行加權平均計算,得出當前時刻狀態(tài)的最優(yōu)估計值。均值計算模塊的FPGA仿真結果如圖4所示。
圖4 重采樣粒子均值計算的FPGA結果Fig.4 Meau value of resampling partical frlter by FPGA
在圖4中,meanout為均值計算模塊輸出端,計算輸出每個時刻粒子的狀態(tài)估計值。clk和rst分別為時鐘信號和復位信號。addr為RAM的讀地址信號。cnt、cnt1、sum和xpart為模塊內(nèi)部信號:cnt1根據(jù)模塊間的時序關系進行延時操作,時鐘沿觸發(fā)本模塊工作;cnt為內(nèi)部計數(shù)器,判斷當前粒子是否滿足仍在當前時刻,當cnt=N時,則進入下一時刻;sum為內(nèi)部求和運算,為最后的均值輸出求和平均;xpart為前一次的重采樣粒子值,用于sum求和運算中。仿真結果看出,輸出的粒子均值正確,表明FPGA設計的重采樣粒子均值計算模塊是正確的。
在GPS接收機非高斯量測噪聲環(huán)境下,提出了粒子濾波算法與對數(shù)似然比有機結合用于GPS接收機自主完好性監(jiān)測的算法。給出了粒子濾波RAIM部分功能的設計和仿真結果,在Xilinx的FPGA開發(fā)環(huán)境ISE下用Verilog HDL編程進行了仿真,結果表明各模塊設計合理,結果正確。設計中在FPGA實現(xiàn)粒子濾波RAIM的邏輯部分功能,在其軟核Microblaze中實現(xiàn)運算部分功能,結合了FPGA并行處理和運算方面的優(yōu)勢,為粒子濾波RAIM算法嵌入到GPS接收機中提供了支撐。本文對粒子濾波RAIM算法的硬件實現(xiàn)具有一定的參考價值。
[1]徐肖豪,楊傳森,劉瑞華.GNSS用戶端自主完好性監(jiān)測研究綜述[J].航空學報,2013,34(3):451-463.
[2]孫國良,孫明菡,陳金平.時-集綜合的接收機自主完好性監(jiān)測方法研究[J].航宇學報,2006,27(6):1171-1175.
[3]楊靜,張洪鉞.衛(wèi)星故障診斷的最優(yōu)奇偶向量法[J].航空學報,2002,23(2):183-188.
[4]Sayim I,Pervan B,Pullen S,et al.Experimental and theoretical results on the LAASsigma overbound[C]//Institute of Navigation:Proceedings of ION GPS-2002.Manassas,ION,2002.
[5]朱志宇.粒子濾波算法及其應用[M].北京:科學出版社,2010.
[6]VASWANI N.Bound on errors in particle filtering with incorrect model assumptions and its implication for change detection[C]//Proceedings of IEEE International Conference on Acoustics,Speech and signal processing.Canada:Institute of Electrical and Electronics Engineers Inc,2004:729-732.
[7]Li P,Kadirkamanathan V.Particle filtering based likelihood ratio approach to fault diagnosis in nonlinear stochastic systems[J].Systems,Man,and Cybernetics,Part C:Applications and Reviews,IEEE Transactions on.2001,31(3):37-43.
[8]Kaplan E,Hegarty C.Understanding GPS:Principles and Applications[M].Second Edition.USA:Artech House,Inc,2006:239-264.
[9]Rosihan,Arif I,Sebum C,et al.Particle Filtering Approach to Fault Detection and Isolation for GPS Integrity Monitoring[C]//Proceedings of ION GNSS 19th International Technical Meeting of the Satellite Division.USA:ION, 2006:873-881.
[10]Akshay A,Miodrag B,Sangiin H,et al.Generic Hardware Architectures for Sampling and Resampling in Particle Filters[J].EURASIP Journal on Applied Signal Processing,2005,17:2888-2902.
[11]李善姬,禹愛蘭.一種改進重采樣的粒子濾波算法[J].電訊技術,2011,51(9):35-42.
Research on Hardware Simulation of GPS RAIM Algorithm
WANG Ershen1,2,F(xiàn)AN Yunfei1,PANG Tao1,ZHANG Zhixian1
(1.School of Electronic and Information Engineering,Shenyang Aerospace University,Shenyang 110136,China;2.School of Electronic and Information Engineering,Beihang University,Beiiing 100191,China;)
In order to overcome the degeneracy phenomenon of Kalman in processing non—Gaussian measurement noise of GPS receiver,the particle filter algorithm was applied into the receiver autonomous integrity monitor algorithm.Simulation was carried out and implemented by FPGA.The fault satellite was detected and isolated by combining log—likelihood ratio with the particle filter,and the algorithm was analyzed and modeled.The algorithm was described in detail,and each module of the algorithm was implemented by Verilog HDL in FPGA.The simulation results showed tha each designed module were effective,and could complete the full functionality of the algorithm by Microblaze soft core and FPGA in hardware design.
global positioning system(GPS);receiver autonomous integrity monitoring(RAIM);particle filter;field programmable gate array(FPGA)
TN967.1
A
1008-1194(2015)04-0062-04
2015-04-27
國家自然科學基金(61101161);航空科學基金(2011ZC54010);遼寧省自然科學基金聯(lián)合基金(2013024003)
王爾申(1980—),男,遼寧遼陽人,博士,副教授,研究方向:衛(wèi)星導航、GPS接收機信號處理算法。E-mail:wes2016@126.com。