摘要
针对星钟异常跳变引起的星上时间与整网星座时间偏离的问题,设计了一种针对星钟跳变的北斗三号卫星自主时间同步算法。通过引入抗差最小二乘估计,对分布式星座时间同步算法进行改进,使其具有快速检测钟差异常跳变并具有自主时间同步的能力。采用与北斗三号卫星一致的仿真环境,并引入实际在轨测试数据,对算法进行了准确评估。结果表明在60 d内,星座各星时间同步误差不超过3.68 ns,且当卫星产生跳变异常后,该算法可在1 h内恢复时间同步,提高了算法在钟跳下的可靠性。
关键词
Abstract
Aiming at the problem that the time on the satellite deviates from the time of the entire network constellation caused by the abnormal jump of the satellite clock, an autonomous time synchronization algorithm for Beidou-3 satellites for the jump of the satellite clock is designed. By introducing robust least-squares estimation, the time synchronization algorithm of distributed satellite constellations was improved, so that it can quickly detect abnormal clock jumps and have the ability of autonomous time synchronization. Using the same simulation environment as the Beidou-3 satellite and introducing actual on-orbit test data, the algorithm was accurately evaluated. The results show that within 60 d, the time synchronization error of each satellite in the constellation does not exceed 3.68 ns, and when a satellite jumps abnormally, the algorithm can restore time synchronization within 1 h, which improves the reliability of the algorithm under clock jumps.
导航星座各卫星不依赖于地面注入支持信息,仅基于卫星间的相互测距,可实现星座各星的轨道确定及时间同步。该方法最先由Ananda等提出[1],并基于地面仿真模拟数据以及全球定位系统(global positioning system,GPS)BLOCK IIR实测双向测距完成了算法的初步验证[2]。根据算法评估结果表明,考虑星间测距误差为0.75 m、0.5 m和0.2 m,算法可实现2.43 ns、1.75 ns和0.82 ns星间时间同步精度,以及0.73 m、0.53 m和0.24 m轨道定轨精度[3]。
我国自主研发的北斗三号卫星导航系统(BeiDou-3 navigation satellite system,BDS-3)于2020年7月31日正式开通服务,为全球用户提供高质量的定位、导航与授时服务[4]。考虑到测控站仅中国境内部署约束,北斗三号卫星配置了星间链路载荷,实现了星座卫星间的相互测距,进而实现了境外卫星的轨道确定及时间同步[5]。与GPS卫星采用超高频频段的星间链路设计不同,北斗三号卫星采用了Ka频段的星间链路设计[6-9],因而具有更高的测距精度及更强的抗干扰性。根据Zhou、Yang等学者评估,北斗三号卫星Ka星间链路测距精度优于0.1 m[10-11]。因而,引入星间链路的测距观测信息后,境外卫星的轨道确定及时间同步均具有极高的精度,中地球轨道(medium earth orbit,MEO)卫星时间同步精度优于0.86 ns[12]。
基于北斗三号卫星的高精度星间测距能力,北斗三号星座的自主定轨和时间同步算法也被广泛研究。目前学者对于北斗三号星座自主定轨的分析较多,而对于星座自主时间同步的分析较为有限。方琳等[13]基于双向星间链路的分时特性,建立了“集中式”星间自主时间同步比对方法,并分析比较了历元归化误差、初始轨道误差及系统误差对时间同步精度的影响。白燕等[14]针对拓展用户的时间同步问题,利用幂级数插值进行历元归算,建立钟差模型,即使航天器不能提供速度信息,仍可完成运动时延修正及钟差解算。郭熙业等[15]针对任意空间飞行器时间同步问题,在导航星间链路双向测量基础上,考虑了信号多普勒以及钟速导致的时间同步误差,建立钟差观测修正模型,实现了亚ns级的时间同步。钦伟瑾等[16]研究了星上时间加权平均的数学模型,并研究插值、更新频度和取权方式等对星上时间的影响,建议采用较短稳定度的取权方式,对星上自主系统时间的长期稳定性较好。宋小勇等[17]设计了星间观测数据的处理方法,建立了卫星钟差的Kalman滤波方程,主要考虑闪变调频噪声及随机游走调频噪声,并建议当粗差较大时采用抗差Kalman方法。
在当前的导航星座星间自主时间同步算法的研究文献中,所需的星间测距数据均由地面软件仿真模拟生成,误差模型较为简单,与真实数据的误差特性存在较大差异。此外,受电磁辐射及物理老化等影响,在轨卫星会发生星钟异常跳变现象,当前未有文献对该误差进行考虑。一旦卫星星载原子钟发生跳变,卫星星上时间将与整网星座卫星时间产生较大偏离,即使地面参与跳变星钟的钟差解算,其星钟跳变检测时延超过2 h,卫星时间同步恢复更需数天之久,将极大影响星座运行的稳定性。
本文设计了一种针对星钟跳变的北斗三号卫星自主时间同步算法,并搭建了北斗三号卫星模拟仿真环境,将算法运行于该仿真环境之中。基于在轨17颗北斗三号卫星60 d的实测星间链路测距数据对算法进行仿真分析,验证算法的精度、稳定性及星上可用性。
1 星座卫星自主时间同步算法构建
星座卫星自主时间同步算法构建方法为:首先,星座中各卫星利用原子钟模型求解各星钟差预报信息;然后,各卫星获取建链卫星的星间测距信息,并对星间测距信息进行预处理;最后,各星基于处理后的测距信息对钟差预报信息进行滤波修正,得到各卫星钟差信息的更新信息,进而实现整网星座的自主时间同步。
1.1 预报模型构建
在星座卫星自主时间同步算法中,为实现星座各卫星时间信息的同步,需首先建立适当的时间预报模型,以对各卫星的钟差信息进行估计。卫星星钟钟差状态变量Xt-1可由式(1)表示。
(1)
式中,分别为卫星原子钟t-1时刻的相位、钟速、钟漂信息。
卫星星钟时间预报模型X-t可由式(2)计算得到。
(2)
式中,Φt,t-1为t-1时刻到t时刻的状态转移矩阵,其可由式(3)表示。
(3)
式中,Δt为t-1时刻到t时刻的间隔时间。
1.2 观测模型构建
星间链路时间同步算法是以星间双向测距信息作为观测量并构建观测方程。算法观测量及观测方程形成方法如下。
卫星星间双向测距原始信息可表示为
(4)
式中:ρAB、ρBA分别为A、B两星间双向距离测量值;RA、RB为A、B卫星测距位置;c为光行时;aA0、aB0为A、B两星钟差;dErrAB、dErrBA分别为星间双向测量误差值,其包括收发时延误差、天线相位中心偏差、相对论效应误差,以及对流层、电离层延迟误差等,误差均可依据McCarthy提出的误差模型去除[18];εAB、εBA为双向测距噪声信息。
由于测距时刻t1、t2与钟差更新时刻t0不同,需将测距时刻的星间双向测距信息的收发时间均归算到待更新时刻t0,即如式(5)所示形式。其中,、分别为A、B误差修正后的两星星间双向距离测量值;ΔρAB、ΔρBA为测距修正值,其可用式(6)表示。式(6)中,RB(t0)、RA(t0)为卫星B、A在t0时刻的位置信息,、为卫星A、B在t0时刻的钟速信息。
(5)
(6)
将式(5)方程组中两等式相减,可得到如式(7)所述方程。左侧变量可作为算法观测量实时观测得到。
(7)
1.3 滤波更新模型构建
对于星座卫星自主时间同步算法,有两种常用的滤波处理方法,分别为集中式滤波处理方法与分布式滤波处理方法。相比于集中式算法,分布式算法只需传输、处理与本星相关的测距信息,计算量相对较小,便于星上软件实现,因此本文选择的是分布式处理方法。在分布式滤波处理方法中,每颗卫星仅将本星的状态信息和与本星相关的测距信息引入滤波模型进行处理,以实现本星状态信息的迭代解算。
滤波更新模型流程如图1所示。首先,对卫星是否产生钟差跳变误差进行判断,设定钟差理论值与钟差观测值差值阈值为,当按照式(7)计算的噪声ε(观测信息与理论信息差值)小于等于阈值时,判定为卫星时间平稳输出;当按照式(7)计算的噪声ε超出阈值时,判定为卫星星钟产生跳变误差,需对卫星时间进行快速恢复处理。
图1滤波更新模型流程
Fig.1Flow chart of filtering update model
1)当卫星时间平稳输出时,卫星将依据算法滤波更新模型,将星间链路测距信息代入式(8)中,利用Kalman滤波算法对卫星原子钟钟差信息进行更新解算,进而实现星座整网卫星的时间同步。Kalman算法滤波详细模型见参考文献[9]。
(8)
式中,w为过程噪声。
2)当卫星因钟组跳变而导致时间信息输出与星座纸面时产生较大偏离时,设计了基于抗差最小二乘法快速解算卫星跳变后的钟差信息,实现卫星星上时与星座纸面时的快速恢复同步,进而保证星座整网时间的长期稳定,详细算法如第2节所述。
2 星钟跳变快速解算方法
当观测信息与理论信息差值超出阈值时,利用最小二乘法对更新时刻的卫星星钟跳变后的钟差状态变量进行解算,以实现卫星与星座整网时间的快速自主同步。同时,算法利用抗差估计[19]确定各观测信息权重,以对数据中粗差进行有效抑制。具体方法如下所示:
1)设t0时刻A星差值计算结果超过后,卫星首先采集t0~tN时间内A、B两星间双向距离测量信息ρAB(t0),ρBA(t0),ρAB(t1),ρBA(t1),···,ρAB(tN),ρBA(tN),并对双向距离测量信息的观测误差进行处理,得到各时刻误差修正后的双向观测测距信息,,,,···,,,进而得到如式(9)所示卫星钟差状态变量与观测信息的关系。
(9)
2)利用式(10)得到A星钟差跳变后的各钟差状态变量初始估计[ ]T。
(10)
3)将初始估计[ ]T代入式(11)求得各时间点残差向量[e(t0) e(t1)···e(tN)]T。
(11)
4)将残差向量[e(t0) e(t1)···e(tN)]T代入影响函数ρ(·)计算目标优化函数Q。ρ(·)由Huber方法[20]定义,其对残差向量中各分量e(tk)分别代入进行计算,计算方法见式(12),为所述阈值。根据实测钟差数据的误差分析,依据经验选取=20 ns×0.3 m/ns=6 m。
(12)
5)基于式(13)求取最小二乘权重矩阵,并在式(10)中加入该权重矩阵,可得到最终t0时刻钟差更新信息,如式(14)所示。
(13)
(14)
3 仿真验证
3.1 仿真场景设计
在本节中,建立了北斗三号17颗MEO卫星60 d(自2022年1月9日0时至2022年3月9日24时)的仿真运行场景,以实现设计的针对星钟跳变的北斗三号卫星自主时间同步算法的有效分析评估。
在仿真场景中,以2022年1月9日0时0分0秒为起始点的17颗MEO卫星星间链路测距信息取自在轨实际的Ka星间链路测距数据,同时17颗MEO卫星的初始钟差状态变量信息取自各卫星广播星历钟差信息。基于播发的初始钟差状态及实测的星间测距数据,按第2节所述自主时间同步算法,仿真时长为60 d的17颗MEO导航卫星的钟差解算结果,并与全球连续监测评估系统(International GNSS Monitoring &Assessment System,iGMAS)发布的各卫星精密钟差进行比对,基于各卫星钟差解算结果与精密钟差差值评估星座整网卫星时间同步精度。
同时,算法仿真环境按图2所示方式搭建,选用与在轨卫星相同的处理器对算法进行运算,以此验证算法的星上可用性。
图2算法仿真环境
Fig.2Algorithm simulation environment
3.2 仿真精度评估
首先,对各星钟差预报差值进行计算,以评估未进行自主时间同步算法时,星座各星时间同步精度。将获取的各卫星广播星历钟差信息,按式(2)所示钟差预报方法,计算60 d各卫星钟差预报信息,并与精密钟差比对,获得各卫星钟差预报差值。图3为以5 min为周期的各卫星钟差预报精度计算结果。如图所示,60 d各卫星钟差预报差值偏离度较大,即仅基于初始钟差信息预报的各星时间同步精度较差。以sat01星为基准,其他16星相对于sat01星的平均时间同步误差为2 402 ns。并且,sat10星在第36 d星钟产生明显钟差跳变,跳变误差超过200 ns。
图317颗北斗三号MEO卫星钟差预报精度
Fig.3Clock error prediction accuracy of 17 BeiDou-3 MEO satellites
然后,对设计的北斗三号卫星自主时间同步算法进行评估分析(暂不考虑sat10星),以评估各星时间输出平稳时星座整网的时间同步精度。通过将实测的星间测距信息引入星座时间同步算法,以及利用iGMAS发布的精密钟差产品作为基准,保证了星座时间精度评估的准确性及合理性。基于设计的自主时间同步算法,16颗北斗三号卫星钟差偏差趋势整体保持一致,如图4所示。16星的时间同步精度如图5所示,最大偏差不超过3.68 ns。可以看出,通过双向星间测量滤波处理,并不断更新时钟参数,同步精度可以达到4 ns以内。
图416颗北斗三号卫星整体时间偏差趋势
Fig.4Time deviation trend of 16 BeiDou-3 satellites
图516颗北斗三号卫星时间同步精度
Fig.5Time synchronization accuracy of the 16 BeiDou-3 satellites
最后,对存在sat10星的17星星座整网时间同步精度进行分析,以评估设计的针对星钟跳变的自主时间同步方法。如前文所述,由于sat10星第36 d存在钟差跳变误差,跳变误差超过200 ns,超出差值门限,难以直接基于上一时刻预报信息进行滤波更新解算。因而,采用星钟跳变同步策略对sat10星钟差信息进行解算。图6为17颗北斗三号卫星的时间同步结果,将钟差跳变卫星sat10引入算法中,sat10星钟差在跳变后1 h内即自主与星座纸面时同步,验证了算法的可用性及稳定性。改进前的算法时钟恢复如图7所示,相比于改进前算法,第2节设计的算法使时钟恢复时间缩短了32.46%。北斗三号卫星目前利用境内监测站的L波段对境内卫星进行钟差测量并完成时间同步,发生星跳后的时间同步时长与卫星是否在监测区域有很大关系,一般需要数小时的时间进行测量以及同步。第2节设计的算法由于采用星间链路测量值,可直接在星上解算,因此具有快速时间同步的能力。如图8所示,以sat01星为时间基准,除由于星钟钟差跳变与纸面时产生短暂的偏离外,sat10星与sat01星时间同步精度优于2 ns,星座整体时间同步未受影响,也即验证了算法的高精度。
图617颗北斗三号卫星整体时间偏差趋势
Fig.6Time deviation trend of 17 BeiDou-3 satellites
图7改进前相对于sat01星的时间同步精度
Fig.7Time synchronization accuracy relative to sat01 before improvement
图8改进后相对于sat01星的时间同步精度
Fig.8Time synchronization accuracy relative to sat01 after improvement
4 结论
针对在轨卫星星钟由于物理老化、空间电磁辐射引起的异常跳变问题,设计了一种针对星钟跳变的北斗三号卫星自主时间同步算法。一方面,算法基于星间链路的双向测距信息,设计了星座卫星的时间同步算法,实现了整网卫星的高精度时间同步。同时,基于抗差最小二乘法设计了星钟跳变的快速检测及时间同步策略。通过引入北斗三号卫星在轨实测数据,并搭建与在轨卫星一致的仿真模拟环境,算法的精度及稳定性等各项指标被准确评估。基于60 d的仿真评估表明,利用该算法,星座卫星可实现长期稳定的时间同步,精度优于3.68 ns;当星钟跳变使误差与星座纸面时偏离时,可在1 h内快速恢复卫星时间与星座纸面时的同步,同步精度优于2 ns。算法的精度、稳定性、故障恢复的快速性及星上可用性均被有效验证。