GNSS数据缺失定位算法比较
城市环境下数据缺失定位算法比较
王 勋,崔先强,高天杭
(中南大学 地球科学与信息物理学院,长沙 410083)
摘要:针对在城市峡谷、树木茂盛、隧道等环境下进行全球卫星导航系统(GNSS)动态测量,容易因卫星数量不足而造成常规的最小二乘定位算法无法完成定位解算的问题,对现有的4种GNSS数据缺失定位算法进行比较分析:介绍4种算法的基本原理,并分析其在实际应用中的优缺点;然后使用实测数据对4种算法的性能进行评估。结果表明:在3颗观测卫星的情况下,伪距预报算法在3个方向上的精度都要优于其他3种算法;当观测卫星数少于3颗时,伪距预报和卡尔曼(Kalman)滤波算法的定位精度均会随可见卫星数的减少而降低,但伪距预报算法的定位精度始终优于Kalman滤波算法。
关键词:动态全球卫星导航系统;城市峡谷;伪距预报;卡尔曼滤波;可靠性
0 引言
在城市环境中进行动态全球卫星导航系统(global navigation satellite system,GNSS)测量时,经常会因为遮挡问题而引起观测数据的缺失,导致无法获得连续的定位结果。如何在数据缺失条件下获得连续、可靠的高精度GNSS导航定位服务一直都是研究的热点。随着GNSS的快速发展,各个定位系统不断完善,并且卫星的数目也越来越多,加上对GNSS系统兼容与互操作问题的深入研究,使得多个定位系统进行融合定位成为可能,可为用户提供更高质量的定位、导航、授时(positioning, navigation and time, PNT)服务[1-2]。多系统融合定位,在一定程度上能够改善由于观测卫星数不足而引起的定位问题,但是在遮挡较为严重的地方,数据质量差、精度低,也会出现组合后的可见卫星数不足的情况[3-6]。文献[7]提出3星结合钟差预报算法以及3星结合高程固定算法来解决城市中遇到的一些定位问题,这2种方法可以提高城市定位的连续性,但是只能解决3颗观测卫星时的定位问题,当可见卫星数少于3颗时则不适用。文献[8]提出了伪距预报算法,该算法较好地解决了城市环境下的定位问题,但计算量较大,且计算过程较为繁琐。卡尔曼(Kalman)滤波算法通过物理机制来进行状态的更新,即使没有观测到卫星,也可完成位置参数的求解[9-12]。以上方法都不需要增加额外的装置,就可以改善因为数据缺失而无法定位的情况,实用性较广。
随着惯性导航和组合导航技术的快速发展,很大程度上解决了观测卫星不足时遇到的定位问题,它依据惯性力学的基本原理来进行载体位置的更新,即使没有观测卫星,也可获得当前历元的定位结果[13-17]。文献[18]提出用原子钟和气压测高仪组合来辅助北斗卫星导航系统(BeiDou navigation satellite system, BDS)进行定位,极大地提高了定位的连续性。随着伪卫星技术的发展,数据缺失情况下的定位问题得到了解决,并且精度较高[19]。这些方法都在很大程度上解决了城市峡谷中定位遇到的问题,但是它们需要增加额外的装置来进行辅助,从而提高了观测成本和技术难度。
目前常用钟差预报和高程固定算法来解决3颗观测卫星时的定位问题,伪距预报和Kalman滤波算法可以解决观测卫星数不足4颗时的定位问题,这几种算法不需要增加额外的装置就可以求解缺失历元的位置参数,进而获得连续的导航定位结果。但直到目前,仍未有学者对这4种数据缺失定位算法进行对比分析。基于此,本文将针对不同的数据缺失情况,使用BDS实测数据来分析这4种数据缺失定位算法的性能。
1 数据缺失定位算法
1.1 钟差预报
GNSS完成定位至少需要4颗观测卫星,当观测卫星数降到3颗时,常规的最小二乘定位算法将无法完成定位的解算,此时通过钟差预报算法可以对当前历元的接收机钟差进行预报,3颗卫星的观测方程结合预测得到的接收机钟差,通过最小二乘解算就可以获得唯一的定位解。现有的卫星钟差预报模型主要包括2阶多项式和灰色模型[20-24],它们都能满足导航定位的需求,但是GNSS广播星历中使用的是2阶多项式模型,本文中也将使用2阶多项式模型来预报缺失历元的接收机钟差。
采用钟差预报辅助3星定位,即将接收机钟差当做已知条件来进行处理,这样在采用最小二乘进行参数估计时,待估参数的个数将减少1个,但该算法只能解决3颗观测卫星时的定位问题。另外,对于导航型接收机来说,其内部的石英钟在短时间内,稳定性较高,所以短时内外推计算接收机钟差精度较高,长时间内误差会逐渐累积。同时影响接收机稳定性因素很多,在一些数据质量差,或者缺失严重的路段,采用钟差预报算法,其误差也会较大。
1.2 高程固定
在城市环境中进行动态定位,一般道路较为平坦,在一定精度要求的范围内,可认为载体的高程在短时内不发生变化。当仅有3颗观测卫星时,最小二乘定位算法无法得到可靠的定位结果,利用高程固定算法,就可以在高程方向上增加1个等式约束,结合3颗观测卫星的观测方程,就可以完成定位的解算。
高程固定算法和钟差预报算法类似,同样每次只能提供1个辅助约束条件,仅能解决3颗观测卫星时的定位问题,当观测卫星数少于3颗时,则不适用。高程固定算法通过设定短时间内高程不变的来进行辅助求解。在城市环境中,一般道路较为平坦,这时采用高程固定算法精度较高,但是对于地形起伏较大的地方采用此法时,误差将会变大。
1.3 伪距预报
由于卫星的运动相对来说比较规律,而且在短时间内伪距的变化十分接近线性,在一定精度要求的范围内,可以认为在短时间内伪距的变化率保持不变。因此,可以利用最新几个历元的观测数据进行建模,进而求取当前历元的伪距变化率,根据伪距以及伪距的变化率,就可以对伪距观测值进行预报。
采用该方法时,需要对数据进行预处理,然后对缺失历元的伪距观测值进行预报。为了提高伪距预报算法的精度,将采用移动开窗法,每次都使用最新几个观测历元的伪距来进行建模和预报,并用最新历元的各项误差来代替缺失历元的误差,通过最小二乘定位算法进行求解。该算法是利用前后历元数据的强相关性来进行伪距预报,由于数据连续缺失的历元一般为数个,这样采用最新历元的观测数据来进行预报,精度较高,但是对于数据连续缺失较多的情况,误差也会逐渐累积。
1.4 Kalman滤波
根据数据预处理的结果,判断当前历元数据是否有缺失:若没有数据缺失时,则用最小二乘定位算法求解;若有缺失,则进行Kalman滤波处理,从而得到缺失历元状态参数。
Kalman滤波是通过动力学模型和观测模型来对状态进行更新,即使没有观测到卫星,也可以实现位置参数的求解。但它是1种最佳的线性滤波器,对于车辆的非线性运动来说,短时间内精度很高,长时间内误差则会快速累积。
2 实验与结果分析
本次实验采用Trimble netR9型接收机,天线的型号为TRM55971.00,可同时接收BDS、全球定位系统(global positioning system,GPS)、格洛纳斯卫星导航系统(global navigation satellite system, GLONASS)及伽利略卫星导航系统(Galileo navigation satellite system,Galileo)4个卫星系统的数据。测量的路线如图1所示。基准站架设在中南大学校本部文法楼楼顶,基准站的接收机和天线型号与流动站的型号相同,采样间隔都设置为1 s,测量车如图2所示。本次实验主要分析BDS在城市环境中的定位性能,将GPS和BDS双系统组合实时动态载波相位差分(real time kinematic, RTK)解算的结果作为参考值,对BDS单系统解算的伪距单点定位解进行比较分析。
测量路线
为了分析BDS系统在城市环境下的观测数据缺失情况,对此次实验BDS可用卫星数进行统计,根据图3的统计结果可以发现,前400个历元数据缺失严重,这是因为该时间段车辆在中南大学本部行驶,树木较多,遮挡严重,导致数据缺失较多,之后在西、北二环路上行驶,视野开阔,遮挡较少,观测数据质量较好,但也存在立交桥下行驶时数据缺失较严重的情况。
BDS卫星数量
2.1 3星定位算法比较
对观测数据进行预处理,判断可用卫星数为3颗的历元,采用4种算法进行处理,并统计这4种算法在3个方向的误差,如图4所示。图中的K、P、C、H分别代表Kalman滤波、伪距预报、钟差预报、高程固定4种算法。计算结果如表1所示。
4种数据缺失定位算法误差对比
由计算结果可以看出:
无论在全程路段还是缺失历元情况下,伪距预报算法的精度最高,Kalman滤波算法次之,高程固定和钟差预报算法精度相当。由于接收机钟差在数据缺失严重的地方,稳定性较差,导致在进行参数拟合时,误差较大,使得钟差预报算法的定位精度较低。高程固定算法在道路平坦的情况下表现良好,但对于高程变化稍快的地方误差很大。另一方面,当仅有3颗观测卫星时,如果卫星的观测质量差,采用这2种方法则在进行定位解算时没有多余观测,在一定程度上导致了这2种算法精度的降低,即不具有抗干扰性。Kalman滤波则是根据物理机制来进行载体位置的更新,它是1种最佳的线性滤波器,对于车辆的非线性运动,在短时间内精度较高,这也使得该方法的精度优于高程固定和钟差预报算法。伪距预报算法可以在观测卫星数不足时预测多颗卫星的伪距观测值,不仅在一定程度上改善了卫星的几何结构,而且还存在多余观测,在一定程度上减小了误差,提升了精度,使得该方法的精度要优于其他几种方法。
表1 4种数据缺失定位算法均方根统计表 m
路段 | 实验方法 | 不同方向的均方根 | |||
X方向 | Y方向 | Z方向 | 位置 | ||
全程 路段 | Kalman滤波 | 5.70 | 10.52 | 6.92 | 13.83 |
伪距预报 | 5.15 | 10.12 | 5.54 | 12.64 | |
钟差预报 | 6.25 | 10.48 | 7.15 | 14.15 | |
高程固定 | 6.17 | 10.89 | 6.28 | 14.01 | |
缺失 历元 | Kalman滤波 | 11.08 | 16.67 | 15.94 | 25.59 |
伪距预报 | 9.12 | 14.61 | 7.79 | 18.91 | |
钟差预报 | 14.04 | 22.32 | 16.98 | 31.37 | |
高程固定 | 16.48 | 23.46 | 15.89 | 32.78 |
2.2 其他情况
当可见卫星数低于3颗时,钟差预报和高程固定算法则不适用,而Kalman滤波和伪距预报算法则可以进行载体位置的更新。为了分析这2种算法在该情况下的定位性能,分别在2颗、1颗及没有观测卫星的情况下对2种算法进行对比。
对全程路段处理结果的误差进行统计,误差曲线如图5所示。从图5中可以看出伪距预报算法的稳定性要优于Kalman滤波,在一些连续缺失的情况下,Kalman滤波算法的误差出现了急剧增加的情况,伪距预报算法则较为平稳。对比表1和表2全程路段的统计结果可以发现:当可见卫星数依次从3颗降至0颗时,2种算法的定位精度随可见卫星数的减少而降低;但不论在哪种数据缺失情况下,伪距预报算法在3个方向的精度都要高于Kalman滤波算法。
图5 全程路段误差曲线
表2 全程路段误差均方根统计
m
可见卫星数 | 实验方法 | 不同方向的均方根 | |||
X方向 | Y方向 | Z方向 | 位置 | ||
2颗 卫星 | Kalman | 6.81 | 11.18 | 7.62 | 14.81 |
伪距预报 | 5.16 | 9.95 | 5.43 | 12.46 | |
1颗 卫星 | Kalman | 6.10 | 11.23 | 7.89 | 15.03 |
伪距预报 | 5.19 | 9.98 | 5.44 | 12.50 | |
0颗 卫星 | Kalman | 6.37 | 11.22 | 7.93 | 15.15 |
伪距预报 | 5.21 | 10.00 | 5.46 | 12.53 |
对缺失历元的误差进行统计,统计结果如表3所示,对比表1和表3缺失历元的统计结果可以发现:当可见卫星数依次从3颗降至0颗时,2种算法的定位精度随可见卫星数的减少而降低;但不论在哪种数据缺失情况下,伪距预报算法处理得到的定位精度都要优于Kalman滤波。对比全程路段和缺失历元的统计结果可以看出,当观测质量较好没有数据缺失时,精度较高。
表3 缺失历元误差均方根统计
m
可见 | 实验方法 | 不同方向的均方根 | |||
X方向 | Y方向 | Z方向 | 位置 | ||
2颗 卫星 | Kalman | 12.57 | 15.47 | 16.11 | 25.63 |
伪距预报 | 9.25 | 15.73 | 8.53 | 20.15 | |
1颗 卫星 | Kalman | 12.94 | 14.22 | 17.00 | 25.67 |
伪距预报 | 10.39 | 15.91 | 6.91 | 20.23 | |
0颗 卫星 | Kalman | 19.94 | 5.52 | 15.40 | 25.80 |
伪距预报 | 9.20 | 15.37 | 9.57 | 20.31 |
3 结束语
在城市环境中进行动态定位,经常会因为遮挡问题引起观测数据的缺失,导致无法获得连续的导航定位结果。本文对目前常用的4种数据缺失定位算法在不同数据缺失情况下的定位性能进行了对比分析,并使用BDS实测数据进行验证。计算结果表明,在3颗观测卫星的情况下,伪距预报算法在3个方向上的精度都要优于钟差预报、高程固定和Kalman滤波;当观测卫星数少于3颗时,伪距预报和Kalman滤波算法的定位精度均随可见卫星数的减少而降低,但伪距预报算法定位精度较高。显然,4种数据缺失定位算法中,伪距预报算法的精度最高、效果最好,它不仅提高了城市环境中定位的连续性,而且还改善了定位的精度和可靠性。但是,当数据连续缺失的时间较长时,基于伪距预报的定位误差也会逐渐累积。
参考文献(略)