(10)申请公布号
(43)申请公布日 (21)申请号 201510580633.9
(22)申请日 2015.09.12
G01S 19/20(2010.01)
(71)申请人北京大学
地址100871 北京市海淀区颐和园路5号
(72)发明人
孙俊忍 谭思远 朱柏承
(54)发明名称
一种卫星导航系统中基于卡尔曼滤波的RAIM
(57)摘要
本发明公开了一种卫星导航中基于卡尔曼滤
波的RAIM 算法。该方法根据导航电文计算卫星位
置、速度。接收机根据遮蔽角,剔除低仰角卫星,同
置速度信息后,切换至卡尔曼滤波,同时卡尔曼滤
收机进行局部检测,并将故障卫星隔离。待故障卫
尔曼滤波器,系统再次进入卡尔曼滤波和监测工
作状态。该发明将RAIM 算法运用到卡尔曼滤波
中,增加了卡尔曼滤波定位的连续性、稳定性和鲁
棒性,同时最小二乘法和卡尔曼滤波相结合,互相
补充,充分发挥了二者的优势。(51)Int.Cl.
(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书5页 附图3页CN 105487088 A 2016.04.13
C N 105487088
A
1.卫星定位导航联合RAIM算法,具体的实施步骤如下:
第一步:提取卫星的信息
根据导航电文得到卫星的轨道参数,计算出卫星的位置,同时从接收机的位置计算出卫星的高度角、方位角,剔除低仰角卫星。
第二步:确定测量关系矩阵
将剔除低仰角卫星和错误数据卫星后的卫星数据与系统的状态向量之间建立关系矩阵,并建立观测方程。
第三步:依次选取若干颗卫星,计算它们的几何精度因子(GDOP)值,GDOP计算公式为:
其中,G是卫星观测矩阵,trace是矩阵的求迹运算。
从P颗卫星中选取N颗,共需要计算次,选取GDOP值最小的一组,相应的卫星作为解算卫星。
第四步:利用最小二乘法估计接收机的首次位置速度信息
采用牛顿迭代法,每次迭代的增量为:
Δx=(G T G)-1G T b
其中,b矢量代表伪距残余。
第五步:切换到卡尔曼滤波方法实时估计位置,速度信息
初始化卡尔曼滤波器的参数,用最小二乘法的解给卡尔曼滤波器赋予初值,卡尔曼滤波器给出定位结果。
第六步:启动RAIM算法进行全局故障的检测
在卡尔曼滤波中,观测量残余定义为:
检测量T:
服从卡方分布,自由度n为接收到正确数据卫星的个数。设置虚警率P fa,可得检测的门
限为如果T没有超过门限值,说明定位结果可靠,跳至第三步进行下一历元的解算。如果T超过了门限值,则进行下一步局部检测。
第七步:监测算法报告故障后,启动局部检测算法,进行故障的识别与隔离
令那么标志量:
作为故障识别量,一个定位时刻中标志量最大的第i颗卫星,发生了故障。其中,e i 是单位矩阵的第i列。将数据出错的卫星数据从数据阵列中剔除,重新整合数据矩阵。
第八步:判断最小二乘法的可用性,利用最小二乘法的解重置卡尔曼滤波器
若卫星数目小于4,则无法实现定位,警告卫星的数目不足。卫星数目大于等于4时,用
最小二乘法进行定位解算,得到定位结果,并将这一结果赋值给重置的卡尔曼滤波器,使卡尔曼滤波器能够快速收敛,得到稳定的定位结果。重置过程中,需要重新计算测量关系矩阵。
一种卫星导航系统中基于卡尔曼滤波的RAIM算法
技术领域
[0001]本发明属于全球卫星定位导航领域,具体来说是一种基于卡尔曼滤波法与最小二乘法的联合RAIM算法。
背景技术
[0002]全球卫星导航系统(Global Navigation Satellite System, GNSS)具有十分广泛的应用:在海、陆、空各层次中进行导航定位,包括船只远洋航行和进港引导、汽车导航以及飞机航路引导、进场降落等;可以为电力、通信等网络授时定时和校频;还可以应用到地理测绘、工程检测、资源勘察等高精度测量领域中。
[0003]接收机自主完好性检测(Receiver Autonomous Integrity Monitoring, RAIM)可将定位误差异常控
制在一定范围和概率之内,及时发现卫星的电子故障、卫星星历与时钟错误、大气延迟错误、多径效应或者接收机自身的故障等等。它使得定位有更好的连续性、准确性和鲁棒性。卫星导航领域的RAIM算法大部分基于最小二乘法中伪距残差展开,例如奇偶矢量法、最小平方残余检测等,但对于卡尔曼滤波的RAIM算法则很少有人提及,主要原因在于卡尔曼滤波相对最小二乘法复杂,RAIM算法比较难以实现,且卡尔曼滤波重置后收敛时间长,这都为RAIM算法在卡尔曼滤波器中的应用带来了一定困难。
[0004]卡尔曼滤波技术是一种动态估计的算法,它能对系统的噪声状态动态更新,进而对系统的目标状态作出最优估计,卡尔曼滤波算法已经成功地运用在卫星导航定位技术领域。卡尔曼滤波算法将接收视为一个离散时间线性系统,对接收机的状态(位置,速度,加速度)信息建模,该系统的系统方程和观测方程如下:
x k=Ax k-1+w k-1
y k=Cx k+v k
其中,x k是系统的状态向量,A是状态转移矩阵,w k-1是第k-1历元系统噪声,C代表观测量和系统状态之间的关系矩阵,v k是第k历元观测噪声。
[0005]卡尔曼滤波过程可以分为两部分,预测部分和校正部分。
[0006]预测部分:
校正部分:
其中,代表第k历元系统状态估计值的预测值,代表第k-1历元系统状态的估计值,代表系统状态均方误差阵,Q表示系统噪声协方差矩阵,R代表观测噪声协方差矩阵,
K k是卡尔曼增益。
[0007]卡尔曼滤波和最小二乘法在导航定位中都有着十分广泛的应用。最小二乘法定位所需的运算量
小,定位快速,可在1个历元中得到定位结果,并且十分稳定。但它的定位结果精度较差,连续若干个历元的定位结果之间不平滑,显得杂乱无序。卡尔曼滤波技术在定位精度上一般优于最小二乘法,因此卡尔曼滤波技术应用更为广泛。但是,卡尔曼滤波启动或重置后往往需要等待几十甚至上百个历元定位才可以收敛,影响首次定位时间。另一方面,实际环境下多种因素都可导致卡尔曼滤波发散,重置之后又需要较长时间才能得到定位结果,这在实际应用中是不能接受的。
发明内容
[0008]本发明的任务是克服上述卡尔曼滤波器的不足,提出一种新机制,是一种在卡尔曼滤波中加入RAIM算法,待故障监测识别并且隔离后重置卡尔曼滤波器,快速收敛实现定位的方法。
[0009]该方法首先根据导航电文计算卫星位置,速度信息,接收机根据遮蔽角,剔除低仰角卫星,同时求得测量关系矩阵。从观测到的卫星中依次组合选取若干颗卫星,计算它们的GDOP值,选择GDOP较好的几颗作为定位卫星。利用最小二乘法估计接收机的首次位置速度信息后,切换至卡尔曼滤波方法,并对接收机的位置速度信息进行实时更新估计。与此同时,卡尔曼滤波架构下的RAIM算法开始工作,实时地对故障进行监测。若监测算法报告故障,则接收机进行局部检测,并且进行故障识别与隔离。待故障剔除之后,利用最小二乘法的定位结果重置卡尔曼滤波器,系统再次进入卡尔曼滤波定位工作状态,同时对故障进行监测。
[0010]为了实现上述目的,具体的实施步骤如下:
第一步:提取卫星的信息
根据导航电文得到卫星的轨道参数,计算出卫星的位置,同时从接收机的位置计算出卫星的高度角、方位角,剔除低仰角卫星。
[0011]第二步:确定测量关系矩阵
将剔除低仰角卫星和错误数据卫星后的卫星数据与系统的状态向量之间建立关系矩阵,并建立观测方程。
[0012]第三步:依次选取若干颗卫星,计算它们的几何精度因子(GDOP)值,GDOP计算公式为:
其中,G是卫星观测矩阵,trace是矩阵的求迹运算。
[0013]从P颗卫星中选取N颗,共需要计算次,选取GDOP值最小的一组,相应的卫星作为解算卫星。
[0014]第四步:利用最小二乘法估计接收机的首次位置速度信息
采用牛顿迭代法,每次迭代的增量为:
Δx=(G T G)-1G T b
其中,b矢量代表伪距残余。