发明内容
本发明为解决应用卫星导航的局域增强系统中卫星广播星历数据的可用性监测问题,克服上述背景技术的不足,提供了一种实时精密星历检测卫星广播星历数据质量的方法,并将该方法与经典的星历-历书检测方法、新旧星历检测方法相结合构成局域增强系统数据质量监测方法。该方法能有效解决经典方法中存在的预测卫星轨道位置精度低的问题,并能够不依赖于卫星播发信号而对广播星历进行检测,可以有效屏蔽系统本身广播的星历和历书出现人为干扰的问题。
为了实现上述目的,本发明提供一种用于卫星导航系统的局域增强系统数据质量监测方法,该方法包括以下步骤:
(1)对m个基准接收机接收到的同一颗导航卫星的同一份广播星历数据分别进行完整性和有效性检验,获取一组完整、有效的广播星历数据,m≥3;
(2)将检验得到的一组完整、有效的广播星历数据进行循环比对,如果出现过半数星历数据完全相同,则认为这些星历数据一致,进行下一步广播星历数据可用性检测,反之不进行可用性检测;
(3)对通过一致性检验得到的广播星历数据,进行如下实时精密星历检测:
首先,对实时精密星历进行高阶拉格朗日插值,采用在插值中心点附近区间基于滑动数据窗口的拉格朗日插值方法,获取实时精密星历中的卫星精密位置预测;
其次,根据广播星历数据中星历参考时间、卫星轨道参数、钟差改正数以及轨道摄动参数,推算出卫星的在轨位置;
然后,计算卫星的精密在轨位置和推算出的卫星在轨位置的差值,用该差值与设定的门限值进行比较,小于门限值则判定为广播星历数据在实时精密星历检测方法下可用,反之判定为广播星历数据在实时精密星历检测方法下不可用;
最后,分别进行新旧星历检测和星历-历书检测,获取多种检测方法检验所得的广播星历数据可用性结果,生成告警信息和广播星历数据可用性信息;
(4)对导航系统中所有卫星的广播星历,将步骤(3)生成的每一份广播星历数据可用性信息,填入如下的广播星历数据可用性矩阵:
其中,SN为导航系统中卫星数量,PRNk(1≤k≤SN)表示卫星号,PERk(1≤k≤SN)表示实时精密星历检测方法检测结果,EERk(1≤k≤SN)表示新旧星历检测方法检测结果,EARk(1≤k≤SN)表示星历-历书检测方法检测结果,该矩阵中每一行代表应用三种检测方法检测所得的一颗卫星的广播星历可用性,整个矩阵描述了卫星导航系统所有卫星的广播星历的可用性状态,用于局域增强系统完好性监视;
(5)根据步骤(4)的广播星历数据可用性矩阵,从基准接收机接收的导航系统所有卫星的广播星历中,选择出可用的卫星广播星历构成可用广播星历数组,用于计算伪距差分修正量。
本发明与现有技术相比具有如下优点:
1、本发明的步骤(1)和步骤(2)可以排除在接收解析过程中出现广播星历数据错误的基准接收机和相应广播星历;
2、本发明由于设计了一种基于滑动数据窗口的拉格朗日插值方法,实现了实时精密星历中卫星轨道位置的高精度插值;
3、本发明由于采用广播星历数据实时精密星历检测,提高了卫星轨道位置预测的精度,解决了经典方法中精度低的问题,降低了局域增强系统中数据质量监视产生的完好性风险;
4、本发明的实时精密星历检测由于不依赖于卫星播发信号而对广播星历进行检测,可以有效屏蔽系统本身广播的星历和历书出现人为干扰的问题;
5、本发明步骤5)中得到的广播星历数据可用性矩阵可为局域增强系统提供多层次的检测结果,能够满足不同情况下局域增强系统对数据质量监视的要求。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
参照图1,本发明包括以下步骤:
步骤1,广播星历数据完整性和有效性检验。
对m个基准接收机接收到的同一颗导航卫星的同一份广播星历数据分别进行完整性和有效性检验,根据卫星导航系统电文数据格式和广播星历数据内容要求,先对每个基准接收机接收到的包含星历数据的导航电文各个子帧的数据进行检验,该检验包括遥测码检验、转换码检验以及子帧的数据内容检查,如果子帧遥测码检验没有错误、转换码第18位为0且子帧数据没有误码,则判定广播星历数据完整,反之判定广播星历不完整;再对星历循环冗余校验CRC和星历数据龄期IODE进行检验,如果CRC校验通过且IODE正确,则判定该广播星历有效,反之则判定广播星历无效;排除不完整、无效的星历,获取一组正确、有效的星历数据,m≥3。
步骤2,多基准接收机广播星历数据一致性检验。
将检验得到的一组完整、有效的广播星历数据进行循环比对,如果出现过半数星历数据完全相同,则认为这些星历数据一致,并进行下一步广播星历数据可用性检测,反之不进行可用性检测。
步骤3,对通过一致性检验得到的广播星历数据,依次进行实时精密星历检测、新旧星历检测和星历-历书检测。
参照图2,本步骤的具体实现如下:
(3A)实时精密星历检测
(3A1)对实时精密星历进行如下高阶拉格朗日插值:
(3A11)设定已知数据节点集合:P
N={p
0,p
1,p
2,…,p
N-1},对应时间点:T
N={t
0,t
1,t
2,…,t
N-1},数据量为N,所选插值数组长度为n(3<n<N),插值中心点坐标为n
p,插值数组长度的中值为
有n
h≤n
p≤N-n
h;
(3A12)根据插值中心点
将插值中心点两侧各一个插值节点时间段设定为插值区间
根据插值数组长度选择插值数组
(3A13)在插值区间
设插值步长为Δt,得到
上的待插值时刻序列为:
(3A14)将待插值时刻t依次在上述插值时刻序列中取值,并代入如下插值公式进行计算:
(3A15)在nh≤np≤N-nh范围内,取np=nh,np=nh+2,np=nh+4,…,np=N-nh,重复上述步骤(3A12)至(3A14),得到插值结果数组:
…,
(3A16)将步骤(3A15)中所得的插值结果数组进行合并,得到最终插值结果数组
(3A2)根据广播星历参数推算卫星轨道位置,广播星历参数与历书参数如表2所示。
表2广播星历和历书中的参数
根据表2星历参数推算卫星轨道位置的步骤如下:
(3A21)通过下式,得到卫星轨道半长轴a,进而计算卫星在轨道上运行的平均角速度n,推算当前历元时刻t卫星在运动轨道上的偏近点角Mk:
Mk=M0+n×(t-toe),
其中,μ=398600.5×108m3/s2为WGS-84坐标系中的地球引力常数;
(3A22)依据下式,利用迭代方法求解中间参数Ek,推算卫星在运动轨道上的真近点角Vk,计算卫星运动轨道的升交点角距Φk:
Ek=Mk+e×cosEk,
Φk=vk+ω;
(3A23)依据下式,计算经过校正的卫星运动轨道升交点角距uk、卫星矢径rk和卫星轨道倾角ik:
uk=Φk+Cus sin(2Φk)+Cus cos(2Φk),
rk=a(1-ecos Ek)+Crs sin(2Φk)+Crs cos(2Φk),
ik=i0+i×tk+Cis sin(2Φk)+Cis cos(2Φk);
(3A24)依据下式,计算卫星在轨道平面坐标系中的位置(xp,yp):
xp=rk cosuk,
yp=rk sinuk;
(3A25)依据下式,得到从星历参考历元算起的时间tk,从而计算卫星运动轨道经过校正的升交点经度Ωk:
tk=t-toe,
Ωk=Ω0+(Ω-Ωe)(tk)-Ωe toe,
其中,Ωe=7.2921151467×10-5rad/s为地球自转角速度。
(3A26)将步骤(3A24)计算所得(xp,yp)和步骤(3A25)计算所得Ωk,代入下式,计算卫星在地固坐标系中的坐标(xs,ys,zs):
xs=xp cosΩk-yp cosik sinΩk,
ys=xp sinΩk-yp cosik cosΩk,
zs=yp sinik。
(3A3)将通过步骤(3A1)计算的实时精密星历卫星位置和步骤(3A2)推算出的广播星历卫星位置做差,用该差值与设定的门限值进行比较,小于门限值则判定为广播星历数据在实时精密星历检测方法下可用,反之判定为广播星历数据在实时精密星历检测方法下不可用,该门限取值为10米。
3B)新旧星历检测。
根据当前接收到的广播星历推算自星历参考时间起一定时间段的卫星轨道位置,同时根据连续的上一份已通过检测的星历中的卫星轨道参数推算相同时刻的卫星轨道位置,分别,计算二者的差值并将差值设定门限进行比较,小于设定门限值的,则判定广播星历在新旧星历检测方法下可用,反之判定广播星历在新旧星历检测方法下不可用,该门限取值为250米。本步骤中根据广播星历卫星轨道参数推算卫星位置的步骤与步骤(3A2)相同。
3C)星历-历书检测。
根据当前接收到的广播星历推算自星历参考时间起一定时间段的卫星轨道位置,同时根据历书中的卫星轨道参数推算相同时刻的卫星轨道位置,计算二者的差值并将差值与设定门限进行比较,小于设定门限的,则判定广播星历在星历-历书检测方法下可用,反之判定广播星历在星历-历书检测方法下不可用,该门限取值为7000米。本步骤中根据当前接收到的广播星历卫星轨道参数推算卫星位置的步骤与步骤(3A2)相同。
根据表2历书参数推算卫星轨道位置的步骤如下:
(3C1)通过下式,得到卫星轨道半长轴a,进而计算卫星在轨道上运行的平均角速度n,推算当前历元时刻t卫星在运动轨道上的偏近点角Mk:
Mk=M0+n×(t-toa),
其中,μ=398600.5×108m3/s2为WGS-84坐标系中的地球引力常数;
(3C2)依据下式,利用迭代方法求解中间参数Ek,推算卫星在运动轨道上的真近点角Vk,计算卫星运动轨道的升交点角距Φk:
Ek=Mk+e×cos Ek,
Φk=vk+ω;
(3C3)依据下式,计算卫星矢径rk:
rk=a(1-ecosEk);
(3C4)依据下式,计算卫星在轨道平面坐标系中的位置(xp,yp):
xp=rk cosΦk,
yp=rk sinΦk;
(3C5)依据下式,得到从星历参考利用算起的时间tk,从而计算卫星运动轨道经过校正的升交点经度Ωk:
tk=t-toa,Ωk=Ω0+(Ω-Ωe)(tk)-Ωe toe,
其中,Ωe=7.2921151467×10-5rad/s为地球自转角速度;
(3C6)将步骤(3C24)计算所得(xp,yp)和步骤(3C25)计算所得Ωk,代入下式,计算卫星在地固坐标系中的坐标(xs,ys,zs):
xs=xp cosΩk-yp cosi0 sinΩk,
ys=xp sinΩk-yp cosi0 cosΩk,
zs=yp sini0。
3D)根据步骤3A)至3C)检测结果,生成广播星历数据可用性信息,对检测结果为不可用的广播星历,生成星历失效告警信息。
步骤4,广播星历数据可用性矩阵。
将步骤(3D)生成的广播星历数据可用性信息,填入如下的广播星历数据可用性矩阵:
其中,SN为导航系统中卫星数量,PRNk(1≤k≤SN)表示卫星号,PERk(1≤k≤SN)表示实时精密星历检测方法检测结果,EERk(1≤k≤SN)表示新旧星历检测方法检测结果,EARk(1≤k≤SN)表示星历-历书检测方法检测结果,该矩阵中每一行代表应用三种检测方法检测所得的一颗卫星的广播星历可用性,整个矩阵描述了卫星导航系统所有卫星广播星历的可用性状态,用于局域增强系统完好性监视。
步骤5,可用广播星历数组。
根据步骤(4)的广播星历数据可用性矩阵,从基准接收机接收的导航系统所有卫星的广播星历中,选择出可用的卫星广播星历构成可用广播星历数组,用于计算伪距差分修正量。
本发明的效果可由如下实例验证:
采用4台基准接收机对GPS卫星1576周广播星历数据进行检测,以第20号卫星IODE为12和13的两份星历广播星历为例,对实时精密星历检测方法和新旧星历检测方法进行分析比较。首先,分别根据两份广播星历中的数据推算卫星的轨道位置,起始时间为IODE为13的广播星历的星历参考时间,推算的时间间隔为3分钟;然后,根据实时精密星历通过步骤(3A1)中拉格朗日插值方法计算PRN20卫星轨道位置,起始时间为IODE为13的广播星历的星历参考时间,插值数组长度为9,插值步长为3分钟;最后,将实时精密星历计算的卫星轨道位置和广播星历推算的卫星轨道位置对应做差,同时将根据前后两份广播星历参数推算的卫星轨道位置对应做差。
图3给出了起始时刻之后4.5小时内两种差值之间的比较结果,其中,图3A为两种差值在X轴上的分布图,图3B为两种差值在Y轴上的分布图,图3C为两种差值在Z轴上的分布图,图3D为在三维距离上的两种差值的分布图。图示可知,本发明的实时精密星历检测方法中卫星轨道位置的差值在3米以内,而现有的新旧星历检测方法中卫星轨道位置差值已经超过25米。此结果表明使用本方法可以提高卫星轨道位置的计算精度,降低星历故障的误检概率,从而降低局域增强系统中数据质量监视产生的完好性风险。