一种基于改进卡尔曼滤波的GPS/BDS/SINS深组合定位算法
2020-06-03陈柯勋
陈柯勋,邱 伟
(1.太原理工大学 信息与计算机学院,太原 030600;2.北京强度环境研究所,北京 100076)
随着全球卫星导航系统(Global Navigation Satellite System,GNSS)各项技术的不断发展,GNSS定位导航的精度和可靠性不断得到提升,但是在电磁波干扰严重、卫星信号受干扰严重的复杂地貌环境中,由于多普勒频偏、多径效应等问题,现有GNSS接收机的定位精度仍然差强人意,接收机的各项性能有待进一步提升[1]。为了解决该问题,许多研究单位和学者提出了不同的解决思路。例如,改进天线设计,改进接收机基带信号处理算法,GNSS组合定位,GNSS与其他系统组合定位等。其中,多模多频GNSS组合定位和GNSS与其他系统组合定位备受人们关注。因为其可以充分结合不同定位系统的特点,充分利用现有的卫星信号资源和其他定位手段,直接解决了单系统可见卫星数目少、卫星信号几何结构差等问题,大幅度提高接收机的定位精度和可靠性[2-3]。但现有的组合定位方法通常是通过大量的迭代运算(牺牲计算效率)的方式来提高组合定位精度[4]。
为了进一步解决该问题,笔者提出了一种GPS/BDS/SINS深组合定位算法,该算法引入惯导测量值,借助渐消卡尔曼滤波修正定位初值,在提高定位精度的同时不需过多增加计算量。
1 算法总体设计
本文所设计的GPS/BDS/SINS深组合定位算法原理如图1所示。首先,通过捷联惯导系统得到接收机位置信息,将该位置信息与已知的卫星位置信息进行运算,得到惯导系统的伪距和伪距率;其次,设计了一种基于模糊控制的渐消卡尔曼滤波器,并基于该滤波器设计了GPS/BDS/SINS深组合定位算法,该算法中渐消卡尔曼滤波器的输入为惯导系统、GPS和BDS系统的伪距和伪距率,通过对量测噪声和系统噪声进行在线估计,该滤波器可以输出GPS和BDS系统伪距和伪距率的修正值,进而提高GPS和BDS伪距测量值的精度,形成完备的GPS和BDS伪距测量值闭环修正系统;最后,再通过已经被广泛应用的加权最小二乘法[5]组合解算高精度的GPS和BDS伪距测量值,得到高精度的位置信息。
图1 GPS/BDS/SINS深组合定位算法原理框图Fig.1 Principle block diagram of GPS/BDS/INS integrated positioning algorithm
2 渐消自适应卡尔曼滤波
传统卡尔曼滤波计算过程可能由于模型不准确而出现发散[6],因此本文通过引入渐消记忆因子来调整新旧测量向量对滤波估计值的校正效果[7]。
假设,系统的状态和量测模型可表示为:
Xk=Ak,k-1Xk-1+Bk,k-1uk+Gk,k-1wk-1,
(1)
Zk=HkXk+vk.
(2)
(3)
(4)
(5)
根据传统Kalman滤波方法的思想,可得到渐消记忆滤波的方程如(6)-(9)所示:
(6)
(7)
(8)
(9)
(10)
(11)
当λ=1时,判断条件可表示为:
(12)
(13)
当滤波过程稳定时,可用前N个时刻新息的协方差均值作为当前时刻新息的协方差,即
(14)
因此,渐消自适应Kalman滤波的方程为:
(15)
(16)
(17)
(18)
(19)
3 GPS/BDS/SINS深组合定位算法
GPS/BDS/SINS深组合定位算法,其原理是将三个系统的观测误差通过自适应Kalman滤波器联合估计,通过迭代降低定位误差估计值,从而实现高精度定位。针对误差估计过程,需要明确系统误差方程和系统观测方程[8-9]。
3.1 系统误差方程
3.1.1平台误差角方程
在捷联惯性导航系统中,平台相对于惯性空间的转动角速度表示为:
(20)
(21)
平台误差角方程的矩阵表达式如下:
(22)
其中,φE,φN,φU代表ENU坐标系平台误差角,ωie为地球自转角速度。
3.1.2速度误差方程和位置误差方程
速度误差方程矩阵表达式如下:
(23)
(24)
式中:vE,vN,vU代表ENU坐标系速度;∂vE,∂vN为东北EN方向的速度误差;∂L,∂λ分别为维度误差和经度误差;fE,fN,fU代表ENU坐标系的加速度计感受到的比特力。陀螺仪和加速度计在ENU方向上的漂移忽略不计[10]。
忽略天向速度误差和高度误差,GPS/BDS惯导组合导航的状态变量可以设置为:
(25)
系统的噪声向量为:
W=[ωεE,ωεN,ωεU,ωaE,ωaN,0,0,0,
0,0,0,0,0]T.
(26)
式中:ωεE,ωεN,ωεU代表陀螺沿着东北天方向的零线漂移;ωaE,ωaN为加速度计沿东北方向的零线漂移,实际测量漂移可以假设服从高斯分布。
3.2 系统观测方程
捷联惯性导航位置信息观测方程表示为:
(27)
在组合定位过程中,对GPS和BDS的定位结果取加权平均[11],可以得到GPS/BDS组合定位观测方程为:
(28)
式中:Lt,λt,ht为目标真实位置;NNG,NEG,NUG为GPS接收机沿ENU三轴向方向的位置误差;NNB,NEB,NUB为BDS接收机沿ENU三轴向方向的位置误差。则位置矢量的观测方程为:
(29)
由状态方程和观测方程,可以使用前文介绍的自适应卡尔曼滤波算法进行求解。
4 实验仿真分析
为了验证本文所述算法的有效性,基于本算法进行定位解算,其结果通过散点图的形式呈现,如图2所示。从图中可以看出,深组合定位算法在X、Y、Z三轴向均方根误差(RMS)值分别为1.187,1.916,1.208 m;三维位置误差为3.312 m.从仿真图形和解算误差结果来看,不管是单轴向还是三维位置分析,深组合定位算法定位误差较低。
进一步验证本文所述算法的有效性,通过实验仿真,将深组合定位算法、GPS/BDS组合定位算法和GPS单系统定位算法下的定位结果进行对比分析,如图3所示。从图中可以看出,本文所述深组合定位算法的定位精度要远远高于GPS单系统定位算法,略高于GPS/BDS双系统组合定位算法,进一步说明了本文所述算法的有效性。
图2 深组合定位算法定位结果散点图Fig.2 Scatter plot of positioning results of deep combined positioning algorithm
5 结语
本文在GPS/BDS伪距组合定位的基础上引入惯性器件测量值,借助渐消卡尔曼滤波器设计了GPS/BDS/SINS深组合定位算法及算法性能验证实验。实验结果表明,本文所述的深组合定位算法能够进一步提高GNSS组合定位算法的定位精度,实现高精度定位,可以为多模高精度GNSS接收机的设计与实现提供参考,具有一定的理论价值和实际意义。
图3 三种定位解算算法定位结果Fig.3 Positioning results of three algorithm