基于卡尔曼滤波方法的BDS动态伪距差分定位算法研究
2019-06-26孙茂军李霞赵利江
孙茂军,李霞,赵利江
(1.青海省基础测绘院,青海 西宁 810000; 2.青海省地理国情监测院, 青海 西宁 810000)
0 引 言
北斗卫星导航系统(BDS)是中国自行研制的全球卫星导航系统.是继美国全球定位系统(GPS)、俄罗斯格洛纳斯卫星导航系统(GLONASS)之后第三个成熟的卫星导航系统[1].BDS和GPS、GLONASS、Galileo是联合国卫星导航委员会已认定的供应商.截至2018年11月20日,我国已成功发射19颗北斗三号卫星,完成全球组网,并计划于2020年向全球提供高精度定位服务.
目前伪距差分定位普遍采用最小二乘算法,其具有解算速度快、数学模型简单等特点.但最小二乘在动态定位中历元间的信息不发生关联,导致在动态定位过程中定位结果不准确[2].卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法[3-4],由于观测数据中包括系统噪声和干扰的影响,所以最优估计也可看作是滤波过程.卡尔曼滤波由斯坦利·施密特首先实现,目前广泛应用于导航及高精度卫星定位领域.2000年,高星伟等[5]提出了一种GPS/GLONASS伪距差分的数据处理方法.2016年,唐卫明等[2]提出了一种基于卡尔曼滤波方法的BDS伪距单点定位算法,相对于最小二乘方法定位精度与稳定性有所提高.本文介绍了BDS最小二乘与卡尔曼滤波两种伪距差分定位方法,并采用C++语言进行算法实现.
1 伪距差分定位原理
1.1 BDS最小二乘伪距差分原理
伪距差分是目前应用较为广泛的一种差分定位技术,其原理为在已知坐标点位上架设基准站,通过已知坐标求出基准站与卫星间的真实距离,将求出的真实距离与观测的伪距做差,得到伪距改正,发送给用户对伪距进行修正[6].
站星间的真实距离Rj可表示为
Rj=[(Xj-X0)2+(Yj-Y0)2+(Zj-
(1)
式中:(X0,Y0,Z0)为基准站已知坐标;Rj为第j颗卫星到基准站的真实距离;(Xj,Yj,Zj)为第j颗卫星的地心坐标.则伪距改正数Δρj可表示为
(2)
伪距改正数变化率可表示为
(3)
用户对测出的伪距ρj加以改正,则改正后的伪距可表示为
(4)
令常数项:
(5)
假设在某一时刻t观测了l颗北斗卫星,其定位的法方程形式为
AδX=L,
(6)
式中:
δX=(ATPA)-1ATPL.
(7)
求出δX以后加上近似点的坐标(X0,Y0,Z0)即可求出接收机单点定位的坐标(X,Y,Z).
1.2 BDS卡尔曼滤波伪距差分原理
卡尔曼滤波利用合理的参数估计方法过滤掉信号中无用的成分,并且将相邻历元间的位置信息相联系,它相较于最小二乘方法得到的结果更平滑、精确,作为一种递推模型,非常适合在计算机上实现[8].
令状态向量Xk=[x,y,z,Vt,vX,vY,vZ,dVtR]T,(x,y,z)表示接收机的三维位置,Vt表示钟差,dVtR表示接收机钟差速率,卡尔曼滤波预测模型可表示为
Xk=Φk,k-1Xk-1+Wk-1,
(8)
式中:Φ为转移矩阵;W为过程噪声向量;1为四维单位矩阵;a为加速度.
在某历元k,误差方程可表示为
Vk=Bδrk-l,
(9)
式中:Vk表示误差改正数;δrk=[δVtRδxkδykδzk]表示接收机钟差与坐标近似值改正数.
(10)
(11)
将式(2)中求得的伪距差分改正量带入到C中进行滤波处理.
2 实测数据分析
2.1 静态数据分析
采用天宝R9多系统GNSS接收机采集一小时的静态数据,观测时段为2018年10月9日9:00—10:00,采样率为1 Hz,截止卫星高度角为15° 接收QHCORS 西宁站同时段一小时的静态观测数据,以西宁站为基准站,对实测数据进行后处理解算,利用GAMIT软件单基线后处理坐标为真值对两种方法的结果进行对比分析.
图1、图2分别为卡尔曼滤波、最小二乘两种伪距差分方法东、北、高三方向的外符合误差序列图,基于卡尔曼滤波伪距差分方法在平面精度优于1 m,高程精度优于2 m,最小二乘方法无论在平面还是高程精度方面均不及卡尔曼滤波方法,在高方向上有1.5 m左右明显的系统性偏差,且震荡剧烈,表1示出了静态条件下两种方法的外符合RMS值.
图1 卡尔曼滤波方法伪距差分误差
图2 最小二乘方法伪距差分误差
数据处理方法E方向/mN方向/mU方向/m卡尔曼滤波0.310.391.14最小二乘0.480.481.69
2.2 人行慢动态测试分析
采用天宝R8 GNSS接收机作为流动站接入QHCORS进行网络实时动态(RTK)定位,并同时记录原始观测数据,将记录下的原始观测数据利用自编软件进行卡尔曼滤波与最小二乘两种伪距差分方法处理,采样率为1 Hz,截止卫星高度角为15°.观测时段为2018年10月9日15:00—15:06.图3、图4、图5分别表示网络RTK、卡尔曼滤波伪距差分、 最小二乘伪距差分三种定位方式的轨迹图.RTK的定位精度较高,可以达到厘米级所以将网络RTK结果所生成的轨迹作为真值.将图4、图5与图3对比不难发现相比最小二乘伪距差分,卡尔曼滤波伪距差分的定位轨迹要更平滑,且跳点较少.图6、图7分别为两种差分方法的外符合误差序列图,表2示出了人行慢动态条件下两种方法的外符合RMS值.与静态相比在人行慢动态条件下,卡尔曼滤波方法的精度损失不大,而最小二乘方法的精度明显降低,这是因为最小二乘方法采用单历元解算时没有利用之前的历元信息,而卡尔曼滤波方法采用预测-更新的模式充分利用之前的历元信息对现有历元位置进行修正,从而达到提高精度的目的.
图3 RTK定位轨迹
图4 卡尔曼滤波伪距差分轨迹
图5 最小二乘伪距差分轨迹
图6 卡尔曼滤波伪距差分人行慢动态误差
图7 最小二乘伪距差分人行慢动态误差
数据处理方法E方向/mN方向/mU方向/m卡尔曼滤波0.320.411.84最小二乘0.550.612.46
3 结束语
本文分别介绍了最小二乘与卡尔曼滤波BDS伪距差分数学模型,并分别进行了静态及人行慢动态实测数据解算分析,通过对比两种模式的实测数据结果发现基于卡尔曼滤波方法的伪距差分定位模型定位结果更平滑、可靠性更高.