基于强跟踪平方根容积卡尔曼滤波的GNSS信号跟踪环路设计

2021-03-15 03:07程向红张晶晶
中国惯性技术学报 2021年6期
关键词:环路协方差卡尔曼滤波

程向红,张晶晶

(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解算模块或矢量跟踪环路提供可靠信息来源。

1 跟踪环路设计

本文设计的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

2 跟踪环路系统模型

2.1 状态方程

选取信号振幅A、输入信号与本地信号的码相位误差Δτ、载波相位误差Δθ、载波频率误差Δf及其一阶导数Δα作为系统的状态量x,系统模型见式(1)[4]:

其中,β表示码频率和载波频率的比值(对于GPS L1码来说,β=1/1540),T表示积分时间(即跟踪环路周期),wk-1表示系统过程噪声。

2.2 量测方程

这里的量测量为六路相关器的输出,GNSS中频信号与同相(I)、正交(Q)两路本地载波信号经相关器与本地超前(E)、即时(P)和滞后码(L)相关,经六路积分-清除器后的信号可以表示为[3]:

其中,R代表自相关函数,d表示中间码相位与超前码/滞后码相位的差值,单位是码片,nIP、nIE、nIL、nQP、nQE、nQL表示各支路相关噪声,δφ为相干积分时间内本地载波平均相位误差,计算公式为:

其中,δφ0、δf0、 Δα0表示相干积分时间内载波初始相位误差、初始频率误差和初始频率变化率误差。

3 强跟踪平方根容积卡尔曼滤波

3.1 平方根容积卡尔曼滤波

SRCKF在CKF的基础上引入了正交三角分解,在每个滤波周期对协方差矩阵的平方根迭代,避免了CKF直接对协方差矩阵的开方运算,提高了滤波过程中的数值稳定性。SRCKF算法过程如下[10]:

Step2 时间更新:

Step3 构造并经量测方程传播容积点:

Step4 计算量测预测值、新息协方差和互协方差:

Step5 量测更新:

3.2 强跟踪滤波

载体在高动态运动时,可能出现状态突变的情况,此时系统模型并不准确。可以在滤波过程中借鉴强跟踪滤波的思想,强迫滤波过程中的残差序列γ始终保持正交,从而达到对系统状态实时跟踪的目的。

强跟踪滤波和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。

4 仿真试验及分析

本文进行了静止和动态情况下的仿真试验,来测试所提出的跟踪环路的性能。静止时用中频数据采集系统采集实际卫星中频数据,动态情况则使用GNS8330多星座导航信号模拟器输出卫星信号,用中频数据采集系统采集卫星模拟信号。动态情况的基本设置为:载体以10000 m为半径,绕一固定点做匀速圆周运动,速度大小为500 m/s。载体在圆周运动过程中加速度不断变化,接收到的卫星信号中的多普勒频率及其变化率也随之不断改变。

为了明确SRCKF和STF的作用,本文进行了五个跟踪环路的对比实验,仿真试验中设置跟踪环路的更新周期均为1 ms。因为信号跟踪的好坏关系到最终的导航精度,所以比较了五个跟踪环路的位置误差和速度误差。各环路采用的跟踪方法如下:

环路1:二阶FLL辅助三阶PLL环路

环路2:基于EKF的跟踪环路

环路3:基于EKF和强跟踪的跟踪环路(STEKF)

环路4:基于SRCKF的跟踪环路

环路5: 基于SRCKF和强跟踪的跟踪环路(STSRCKF)

4.1 静止仿真试验结果及分析

用软件接收机处理静止情况下采集的中频数据,共收集到了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%。

4.2 动态仿真试验结果及分析

用软件接收机处理载体做匀速圆周运动时采集的卫星模拟信号,共收集到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%。

静止仿真所用的数据是真实情况下采集的,动态仿真所用的数据是由模拟器产生的。虽然模拟器在模拟信号的过程中已经添加了一些大气环境参数,如对流层模型和电离层模型,但相较于实际情况来说,误差仍是偏小的,所以出现了静止情况的位置误差高于动态情况的位置误差的现象。

4.3 算法代价分析

因为滤波过程相较传统跟踪环路更为复杂,所以基于卡尔曼滤波的跟踪环路在运算量上有所增加。表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

5 结 论

本文提出了一种基于SRCKF和强跟踪算法的卫星信号跟踪环路。SRCKF的引入可以在环路中替代鉴别器,使环路不受鉴别器线性工作区间的限制,同时它的滤波精度较高。而针对高动态情况下容易出现的模型失配问题,引入了强跟踪算法的渐消因子,提高了跟踪环路的鲁棒性。

通过对静止和动态两种情况下的试验验证表明,基于STSRCKF算法的跟踪环路位置和速度误差估计最小,对比二阶FLL辅助三阶PLL,位置误差减小了11.4%和28.2%,速度误差减小了14.0%和26.1%,并且在动态情况下的提升效果更为显著。因此本文提出的跟踪环路可以为后续的PVT解算等模块提供更为可靠的观测量,也可为矢量跟踪环路提供更精准的信息。

猜你喜欢
环路协方差卡尔曼滤波
上海市中环路标线调整研究
用于检验散斑协方差矩阵估计性能的白化度评价方法
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器
基于模糊卡尔曼滤波算法的动力电池SOC估计
基于扩展卡尔曼滤波的PMSM无位置传感器控制
Buck-Boost变换器的环路补偿及仿真
单脉冲雷达导引头角度跟踪环路半实物仿真