基于GNSS多卫星观测量的快速校时方法
2023-05-05潘小海吴鹏姜果平姚树林张骏丰
潘小海 吴鹏 姜果平 姚树林 张骏丰
(1.湖南卫导信息科技有限公司 湖南省长沙市 410005 2.长沙学院 湖南省长沙市 410022)
随着卫星导航系统的不断发展,在轨卫星数量不断增多[1],用户对卫星导航系统的服务不再单纯满足于精度的提高,对完好性性能的要求也愈加严格[2],在此背景下,卫星导航自主完好性检测的研究已经成为卫星健康管理技术研究的重要内容。
卫星导航完好性监测技术主要有三种:卫星自主完好性监测、利用接收机内部冗余信息的RAIM(接收机自主完好性监测,Reciever Autonomous Integrity Monitoring)和外部辅助增强系统[3]。其中接收机自主完好性监测是在接收机完成定位解算以后,接收到的卫星数量超过了所需的最少四颗的要求,利用这一信息冗余特性,可以进行检测是否有故障,并且识别出故障卫星,但是考虑到不同星座的时间系统之间的偏差,对于多星座需要更多冗余观测量才能进行故障检测,该方法在接收机能够定位之前,也就是收齐星历之前的30s,无法通过这类方法进行检测故障,只能利用各个卫星之间的测距值相互规律进行识别。文献[4-6]提出了针对多系统多故障情况下的完好性监测算法;文献[7]提出了一种基于预 检验RANSAC 算法的接收机自主完好性监测算法,解决了卫星导航系统存在单星故障、多星故障及脉冲型卫星故障的问题;文献[8-9]提出关于GNSS 接收机自主完好性监测的改进方法。
本文提出一种多星粗校时完好性算法并且选取MEO 卫星进行实验,该方法首先通过计算所接收到的各卫星之间的传播时延差值并将卫星按要求分组,随后判断原始观测数据中是否有错误数据,最后通过拥有最大卫星数的组内各卫星传播时延差值来判断正确卫星颗数。最后该算法所得结果表明该算法可用于接收机自主完好性监测当中。
1 背景技术
接收机要实现定位,需要两个条件,一是各颗卫星在空间的准确位置,二是接收机到各颗卫星的精确距离。卫星位置可由电文中的星历参数计算得到,接收机到卫星的距离是由接收机测量得到。如何得到更加准确的距离测量值,是导航定位中关键的一步。
信号接收时间与信号发射时间之差称为卫星信号传播时延,指信号从卫星发射到用户接收的传播时间,它取决于用户与卫星之间的距离,受大气传播延迟和Sagnac 效应等因素的影响,同时接收机在各种复杂应用环境下(例如弱信号、遮挡、旋转、高动态等等),不能保障接收到的信号都是干净、
稳定的,尤其是当信号强度偏低或者有一定干扰时,容易导致观测量出现误差增大甚至错误。由此我们得本地接收机接收时间如下:
Ti= pi+ ti
其中,Ti是本地接收时间, pi是卫星发射时间,ti是信号传播时延。不同类型卫星的轨道高度不一样,所以其传播时延也不一样,比如MEO 卫星的传播时延约70~90ms,GEO 和IGSO 卫星的传播时延约120~140ms。
以MEO 卫星为例,本地接收到的时间为:
Ti=pi+ti=pi+[70,90]
所以可以用已知的 Ti时间,估计本地时间,其本地时间 Ti为:
Ti=[pi+80-10,pi+80+10]
这个是单星粗校时的基本原理。可以按照上述边界范围知道,这种方法可以确定校时精度或者范围在±10ms,即20ms 之内。
接收机冷启动时,接收机时间是未知的,收到卫星信号后,获得一个精确的卫星时间,因与本地接收机存在传播时延其时间不确定范围约在±10ms。传统的自主完好性等方法,是在接收机完成定位解算以后,接收到的卫星数量超过了所需的最少四颗的要求,利用这一信息冗余特性,可以进行检测是否有故障,并且识别出故障卫星。但是在接收机能够定位之前,也就是收齐星历之前的30s,无法通过这类方法进行检测故障,只能利用各个卫星之间的测距值相互规律进行识别。
2 算法原理
当识别出有故障时,利用少数服从多数的原则,相信更多数卫星的一致性,即保持正确可能的卫星数量是多数的,那么离正确卫星比较“远”的卫星即认为是有故障的。
以MEO 卫星为例,MEO 卫星的传播时延约70~90ms,A 区表示小于70ms 的区域,B 区表示70~90ms 的区域,所以在正确区域的传播延时长度为20ms,C 区表示大于90ms 的区域。图1 为MEO 卫星分布图。
图1:MEO 卫星分布图
原点代表每一颗卫星计算得到的本地时间,显然当都分散在中间区间的时候,就是相互合理正确的,但出现明显偏离的时候,则说明有冲突,当各颗卫星传输时延之间的差值和总距离即区域内传播时延最小值到传播时延最大值的差值都小于20ms,才能判断出正确卫星颗数,找出故障卫星。
2.1 步骤1:计算相邻卫星传播时延的差值
假设各颗卫星传播时延为 ti,将ti从小到大排列,并将卫星传播时延最小值定成标准值t0=min(ti)。假设各颗卫星传播时延与标准值的差值为∆ti,则:
∆ti=ti-t0
正常情况下 ∆ti<20ms 恒成立,已知有故障卫星,则存在 ∆ti>20ms。
假设线段长度为各卫星传播延时的长度,且每一格表示2ms。
图2 为各卫星传播时延示意图。
图2:各卫星传播时延示意图
设d 是相邻两颗卫星传播时延的差值,则:
di=∆ti+1-∆ti
图3 为相邻卫星传播时延差值示意图。
图3:相邻卫星传播时延差值示意图
2.2 步骤2:判断原始观测数据中是否有错误数据
收到卫星信号后,获得一个精确的卫星时间,其时间不确定范围在20ms 之内。当di>20ms 时,则定义两颗卫星之间相距“远”,将这两颗卫星分别记入为组a1和a2,即每出现一次di超出不确定范围20ms,则新增一组a。根据图3 可知,d4>20ms,则t0~t3 记入组a1,t4 记入组a2。将d 依次进行判断,比较各组a 中卫星数量,卫星数量最多的组为amax,数量为b。
2.3 步骤3:判断a_max组内卫星是否无故障
因标准值为最小传播时延的卫星,且只判断相邻卫星时延差,仍存在amax中总距离即传播延时最大值与传播延时最小值的差值超出不确定范围20ms 的情况,所以将找到的组amax再次进行判断。假设组amax中传播时延最大值和最小值分别为 tmax和 tmin,则:
Y=tmax-tmin
当Y 没有超过不确定范围时,可以得出正确的卫星颗数b。否则当Y 超过不确定范围20ms 时,则无法判断,给出标识。
3 测试结果
利用GNSS 信号模拟源生成导航信号,进行卫星故障设置,采集某时刻的MEO 卫星数据,使用本文方法进行故障判断,测试数据以及测试结果如表1所示。
表1:测试数据以及测试结果
表中,第二列数据为10 颗卫星的传播时延值,单位为毫秒,第三列预期结果,即实际的正确卫星数量百分比,第四列为使用本文方法进行故障识别后的正确卫星数量百分比,由表可知,三组数据的测试结果与预期结果一致,均能正确识别出故障卫星。因此,本文提出的一种多星粗校时完好性算法,能在接收机能够定位之前,也就是收齐星历之前的30s,利用各个卫星之间的测距值相互规律进行故障星识别。
4 结论
本文提出一种多星粗校时完好性算法并且选取MEO 卫星进行实验,该方法首先通过计算所接收到的各卫星之间的传播时延差值并将卫星按要求分组,随后判断原始观测数据中是否有错误数据,最后通过拥有最大卫星数的组内各卫星传播时延差值来判断正确卫星颗数。最后该算法所得结果表明该算法可用于接收机自主完好性监测当中。可以进行检测是否有故障,并且识别出故障卫星。