程向紅,張晶晶
(1. 微慣性儀表與先進導航技術教育部重點實驗室,南京 210096;2. 東南大學 儀器科學與工程學院,南京 210096)
隨著全球衛星導航技術(GNSS)的不斷發展,GNSS已被應用到諸多領域。而接收機是應用層面的核心環節,主要完成衛星信號捕獲、跟蹤和導航解算(PVT)三個重要任務。其中,跟蹤環路通過對本地數控振蕩器(NCO)持續不斷地動態調整,使跟蹤通道保持對已捕獲信號的持續鎖定。穩定跟蹤后,從接收機解調的數據比特中提取的偽距和多普勒頻率等觀測量,是PVT解算模塊的直接信息來源。因此,跟蹤環路是接收機的核心環節,與接收機的性能指標如靈敏度、動態性以及定位精度等密切相關。目前,常用的跟蹤算法多應用在中低動態場景。對高動態載體而言,和衛星之間的相對高速運動使得接收到的衛星信號具有較大的多普勒頻移及其變化率,傳統跟蹤環路極易失鎖。研究如何在高動態環境下實現接收機魯棒而精確地跟蹤是GNSS接收機技術領域的一大難點。
傳統跟蹤環路一般采用鎖頻環(FLL)輔助鎖相環(PLL)的結構,該結構結合了FLL動態應力容忍性能好和PLL跟蹤精度高的優點[1]。隨著信號參數估計理論在信號處理領域的應用,基于卡爾曼濾波的跟蹤環路引起了學者的廣泛關注,它能夠根據環路噪聲統計特性自適應地調節環路增益和帶寬[2],兼具動態性和跟蹤精度,估計出碼相位誤差、載波相位誤差和多普勒頻率等。而鑒別器線性工作區間有限,考慮到高動態場景下引入的非線性噪聲,可采用非線性濾波方法替代標量跟蹤環路中的鑒別器,如擴展卡爾曼濾波(EKF)[3]、無跡卡爾曼濾波(UKF)等。
Spilker提出的矢量跟蹤環路不同于常見的標量跟蹤環路,它耦合了各個跟蹤通道的內在信息,并且把信號跟蹤和PVT過程結合,被認為是高動態場景跟蹤環路的解決方案之一[4]。但在實際應用中,矢量跟蹤環路的初始化仍需要用到標量跟蹤環路的結果,并且矢量跟蹤環路在工作時需要標量跟蹤環路能夠輸出導航電文比特,即標量跟蹤環路穩定[5-7]。因此本文旨在設計一種高動態條件下的標量跟蹤環路,采用精度較高、濾波過程穩定且計算量較少的平方根容積卡爾曼濾波(Square Root Cubature Kalman Filter, SRCKF)[8],并針對高動態場景可能出現的模型失配問題,引入強跟蹤濾波的漸消因子,以提高跟蹤環路的魯棒性[9]。通過試驗驗證該跟蹤環路可為后續PVT解算模塊或矢量跟蹤環路提供可靠信息來源。
本文設計的GNSS信號跟蹤環路如圖1所示。GNSS中頻信號經捕獲后進入跟蹤階段,由捕獲結果初始化載波NCO和碼NCO,中頻信號與本地NCO產生的信號作相關運算,由六路相關器輸出作為強跟蹤平方根容積卡爾曼濾波器(Strong Tracking Square Root Cubature Kalman Filter, STSRCKF)的量測輸入。這里的量測輸入是與傳統跟蹤環路和以卡爾曼濾波為基礎的跟蹤環路所不同的地方,它替代了常用的鑒相器和鑒頻器,由濾波器對碼相位誤差(Δτ)、載波相位誤差(Δθ)、載波頻率誤差(Δf)及其一階導數(Δα)作統一估計,用這些最優估計值在每個濾波周期反饋調整本地NCO。

圖1 GNSS信號跟蹤環路設計框圖Fig.1 Design of tracking loop for GNSS signal
選取信號振幅A、輸入信號與本地信號的碼相位誤差Δτ、載波相位誤差Δθ、載波頻率誤差Δf及其一階導數Δα作為系統的狀態量x,系統模型見式(1)[4]:

其中,β表示碼頻率和載波頻率的比值(對于GPS L1碼來說,β=1/1540),T表示積分時間(即跟蹤環路周期),wk-1表示系統過程噪聲。
這里的量測量為六路相關器的輸出,GNSS中頻信號與同相(I)、正交(Q)兩路本地載波信號經相關器與本地超前(E)、即時(P)和滯后碼(L)相關,經六路積分-清除器后的信號可以表示為[3]:

其中,R代表自相關函數,d表示中間碼相位與超前碼/滯后碼相位的差值,單位是碼片,nIP、nIE、nIL、nQP、nQE、nQL表示各支路相關噪聲,δφ為相干積分時間內本地載波平均相位誤差,計算公式為:

其中,δφ0、δf0、 Δα0表示相干積分時間內載波初始相位誤差、初始頻率誤差和初始頻率變化率誤差。
SRCKF在CKF的基礎上引入了正交三角分解,在每個濾波周期對協方差矩陣的平方根迭代,避免了CKF直接對協方差矩陣的開方運算,提高了濾波過程中的數值穩定性。SRCKF算法過程如下[10]:

Step2 時間更新:


Step3 構造并經量測方程傳播容積點:

Step4 計算量測預測值、新息協方差和互協方差:


Step5 量測更新:

載體在高動態運動時,可能出現狀態突變的情況,此時系統模型并不準確。可以在濾波過程中借鑒強跟蹤濾波的思想,強迫濾波過程中的殘差序列γ始終保持正交,從而達到對系統狀態實時跟蹤的目的。
強跟蹤濾波和KF/EKF結合時,一般在狀態誤差協方差預測矩陣中引入漸消因子,不影響殘差量,最終改變增益矩陣。而對于UKF/CKF等非線性濾波過程來說,若采用同樣的漸消因子引入方法,涉及到在對狀態作最優估計時,殘差量是否需要隨漸消因子更新。文獻[9]中證明,在UKF中引入強跟蹤時,若在狀態估計中使用未引入漸消因子的殘差量,則無法保證對狀態量作最優估計;若使用隨漸消因子更新后的殘差量,則無法保證殘差序列始終正交。同理,該結論的證明過程也適用于CKF中。因此,本文借鑒文獻[9]在UKF引入漸消因子的方法,給出在SRCKF引入漸消因子的過程,如圖2所示。

圖2 強跟蹤引入SRCKF過程Fig.2 Process of introducing STF into SRCKF
在量測協方差中引入漸消因子后的計算公式和在狀態誤差協方差預測公式的形式類似:

而因為量測協方差和互協方差存在以下關系:

其中,Hk是量測方程在處的雅可比矩陣。將上述關系式代入式(17)中可得:

所以在互協方差中引入漸消因子的計算公式為:

接下來進行漸消因子的計算,根據強跟蹤算法的正交性原理可以推出下面的充分條件[9]:

將式(17)代入式(19)可得:

式(23)中的ρ為遺忘因子,一般取0.95。
本文進行了靜止和動態情況下的仿真試驗,來測試所提出的跟蹤環路的性能。靜止時用中頻數據采集系統采集實際衛星中頻數據,動態情況則使用GNS8330多星座導航信號模擬器輸出衛星信號,用中頻數據采集系統采集衛星模擬信號。動態情況的基本設置為:載體以10000 m為半徑,繞一固定點做勻速圓周運動,速度大小為500 m/s。載體在圓周運動過程中加速度不斷變化,接收到的衛星信號中的多普勒頻率及其變化率也隨之不斷改變。
為了明確SRCKF和STF的作用,本文進行了五個跟蹤環路的對比實驗,仿真試驗中設置跟蹤環路的更新周期均為1 ms。因為信號跟蹤的好壞關系到最終的導航精度,所以比較了五個跟蹤環路的位置誤差和速度誤差。各環路采用的跟蹤方法如下:
環路1:二階FLL輔助三階PLL環路
環路2:基于EKF的跟蹤環路
環路3:基于EKF和強跟蹤的跟蹤環路(STEKF)
環路4:基于SRCKF的跟蹤環路
環路5: 基于SRCKF和強跟蹤的跟蹤環路(STSRCKF)
用軟件接收機處理靜止情況下采集的中頻數據,共收集到了6顆GPS衛星的信號,在完成星歷解調后,解算了約38 s的位置和速度信息。五種跟蹤環路對應的位置誤差絕對值和速度誤差絕對值如圖3所示,統計結果見表1。

圖3 靜止情況位置、速度誤差變化Fig.3 Position and velocity errors in static case

表1 靜止情況誤差統計Tab.1 Position and velocity errors statistics in static case
由統計結果可以看出,基于卡爾曼濾波的跟蹤環路(即環路2-5)在定位和定速上有更優異的表現。其中環路5精度最高,環路4比環路5效果稍差,但相差不大。這是因為SRCKF的濾波精度較高,并且在靜止情況下狀態突變的情況較少,所以在環路4基礎上引入了強跟蹤算法的環路5在精度上并未有太大提升。而對于環路2和3來說,因為EKF的濾波精度理論上只有一階,所以環路3相較于環路2的提升效果略明顯。環路5的定位、定速精度較環路1提高了11.4%和14%。
用軟件接收機處理載體做勻速圓周運動時采集的衛星模擬信號,共收集到11顆GPS衛星的信號,在完成星歷解調后,解算了約130 s的位置和速度信息。五種跟蹤環路對應的位置誤差絕對值和速度誤差絕對值如圖4所示,統計結果見表2。

圖4 動態位置及速度誤差變化Fig.4 Position and velocity errors in dynamic case

表2 動態情況誤差統計Tab.2 Position and velocity errors statistics in dynamic case
從動態情況的誤差統計結果可以看出,環路5的精度最高,同環路4相比,因為動態實驗中狀態突變的情況增多,所以引入了強跟蹤算法的環路5提升效果明顯。同樣對于環路3來說,其精度提高的效果比靜止情況提升的效果明顯。雖然環路3和環路4的精度大致相同,但他們相比環路2精度提高的原因是不同的:環路3是因為在EKF中引入了強跟蹤算法,以保持對突變狀態的實時跟蹤,而環路4所用的SRCKF則是因為其濾波精度高于EKF,所以環路3和環路4的精度均高于基于EKF的跟蹤環路2。環路5的定位、定速精度較環路1提高了28.2%、26.1%。
靜止仿真所用的數據是真實情況下采集的,動態仿真所用的數據是由模擬器產生的。雖然模擬器在模擬信號的過程中已經添加了一些大氣環境參數,如對流層模型和電離層模型,但相較于實際情況來說,誤差仍是偏小的,所以出現了靜止情況的位置誤差高于動態情況的位置誤差的現象。
因為濾波過程相較傳統跟蹤環路更為復雜,所以基于卡爾曼濾波的跟蹤環路在運算量上有所增加。表3統計了四種基于卡爾曼濾波的跟蹤環路在濾波過程中的浮點數乘法運算量,表中的n代表狀態維數,m代表觀測維數。在統計的過程中已經略去了一部分可以事先計算或存儲的先驗信息,例如EKF算法中雅可比矩陣的表達式不需通過程序調用雅可比函數確定,在每個濾波過程中僅需代入數值計算即可。同時考慮到CKF算法中涉及兩次QR分解,這也會增加環路的運算量,所以在表3中的相應位置標注了QR分解。

表3 濾波過程浮點數運算量統計Tab.3 Statistics of floating-point computation statistics in filtering process
代入實際跟蹤過程中的模型參數,令n= 5,m= 6,四種基于卡爾曼濾波的跟蹤環路的實際運算量見表4。同時對這四種跟蹤環路在相同條件下運行近1000次,表4列出了他們的平均運行時間統計。可以看出,各跟蹤環路所需的時間和他們的運算量是呈正相關的,STSRCKF的運算時間最長,約是EKF的3倍。但是在SRCKF中引入強跟蹤,相較于在EKF中引入強跟蹤,并未在運算時間上增加過多,因為其漸消因子的計算公式更為簡潔。

表4 實際浮點數運算量和運行時間統計Tab.4 Statistics of actual floating-point computation and running time
本文提出了一種基于SRCKF和強跟蹤算法的衛星信號跟蹤環路。SRCKF的引入可以在環路中替代鑒別器,使環路不受鑒別器線性工作區間的限制,同時它的濾波精度較高。而針對高動態情況下容易出現的模型失配問題,引入了強跟蹤算法的漸消因子,提高了跟蹤環路的魯棒性。
通過對靜止和動態兩種情況下的試驗驗證表明,基于STSRCKF算法的跟蹤環路位置和速度誤差估計最小,對比二階FLL輔助三階PLL,位置誤差減小了11.4%和28.2%,速度誤差減小了14.0%和26.1%,并且在動態情況下的提升效果更為顯著。因此本文提出的跟蹤環路可以為后續的PVT解算等模塊提供更為可靠的觀測量,也可為矢量跟蹤環路提供更精準的信息。