基于伪距误差重建的多星故障检测方法
张鑫, 崔晓伟, 冯振明
清华大学 电子工程系, 北京 100084
崔晓伟, 副教授, E-mail:cxw2005@tsinghua.edu.cn

作者简介: 张鑫(1987-), 男(汉), 北京, 博士研究生。

摘要

传统的接收机自主完好性监测(RAIM)方法使用定位解算方程的残差来进行故障识别,在单卫星故障下具有较好的性能。随着全球卫星导航系统的建设,用户观测到的卫星数目显著增加,使用多颗卫星定位可以提高定位精度。但多颗卫星同时发生故障的概率将会增大, RAIM方法需要进行改进以应对多星故障。该文首先对RAIM方法的原理进行了深入分析,推导出了误差向量和残差向量之间的投影关系。然后,通过实例论证了误差向量和残差向量在投影变换时会带来信息损失,从而使故障难以检测。最终,给出了一种新的RAIM方法。通过引入约束条件,利用残差向量重构出误差向量。根据误差向量大小,实现多星故障检测。仿真表明该方法在多星故障模式下,具有较好的检测性能。

关键词: 卫星导航系统; 接收机自主完好性监测; 投影矩阵; 残差; 误差重构
中图分类号:TN967.1 文献标志码:A 文章编号:1000-0054(2014)04-0425-07
Multiple failure detection based on reconstruction of the pseudorange error
Xin ZHANG, Xiaowei CUI, Zhenming FENG
Department of Electronic Engineering, Tsinghua University, Beijing 100084, China
Abstract

The traditional RAIM algorithm uses the residuals of the positioning equation for failure detection and gives better detection when only one fault exists. The global navigation satellite system gives users many more ranging sources with better positioning thanks to the increased number of visible satellites. However, the probability of simultaneous failures also increase which requires improves to the traditional RAIM algorithm to address multiple failures. The RAIM design was analyzed to deduce a relationship between the residuals and the error vector. Examples then show that some information is lost when projecting from the error vector to the residuals, which limits failure detection. A modified RAIM algorithm with additional constraints that enable the error vector to be recovered from the residuals so that multiple failures can be detected monitoring the error vector. Simulations show the ability of this method for multiple failures.

Keyword: satellite navigation system; receiver autonomous integrity monitoring (RAIM); projection matrix; residual; error reconstruction

在民用航空领域,接收机自主完好性监测(RAIM)技术被广泛应用。在单星故障假设条件下, RAIM技术能够在非精密进近阶段对定位结果提供有效保障[1,2,3]。随着卫星导航系统的飞速发展,可用卫星的数目迅速增加,导航应用也逐渐增多。尤其是各种生命安全类应用引入后, RAIM技术亟需进行拓展,以应对更为复杂的使用场景和更为严格的可靠性要求[4,5,6,7,8,9]。因此有必要对RAIM算法的本质进行仔细研究,探索多星故障下的故障检测方法[10,11,12,13]。目前RAIM方法的基本思路是在观测信息存在冗余时,利用冗余信息进行一致性检验,判断观测信息中是否存在异常值。当检测到异常观测量后,对其进行剔除并重新完成定位[1,2]

传统RAIM方法对单星故障进行检测,利用定位方程最小二乘解的残差来构造检验统计量,进行故障判决与检测。在这种方法中,最小二乘解的残差是由伪距误差经过非满秩的投影矩阵映射得到的,这种变换会带来信息的损失,有可能造成虚警和漏检,带来可靠性风险。而且这种方法在多星故障模式下,无法对故障进行有效检测。文[8]中提出了多星故障检测方法,通过在不同时刻采样获取附加信息,利用残差向量重构误差向量。但重构矩阵的病态性很强,对误差非常敏感,而且需要假定两个采样时刻间的故障大小不变。

本文提出一种基于约束条件的误差向量重构方法,利用残差向量和约束条件,在当前时刻重构误差向量,恢复出所有卫星的伪距误差值。这种方法去除了伪距误差大小保持恒定的假设,算法更加简单稳定。

1 残差RAIM方法的投影分析
1.1 定位解算方程

接收机完成对导航卫星信号的捕获、跟踪、解调后,得到卫星信号的发射时间,根据发射时间和接收机本地时间计算出卫星到用户的伪距,由发射时间和解调的星历信息计算出卫星位置。当完成对4颗或以上的卫星进行观测后,构造如下非线性方程组:

y=h(x)+e.(1)

其中: e为误差向量,向量 y的第 i行表示第 i颗卫星到用户的伪距观测值, h( x)的第 i行表示第 i颗卫星到用户的伪距计算值。

hi(x)=xsati-xu2+ysati-yu2+zsati-zu2+bu.2

X( k) = xu,yu,zu,bu为待求解向量,分别表示用户的三维位置和钟差。对式(1)进行线性化,将 h( x)在初始位置 X0处展开,则有:

h(x)=h(X0)+HX0(x-X0).(3)

通过迭代进行求解,估计器 P用来计算每次迭代过程中的增量。

ΔX=Xn+1-Xn=Py-hXn.(4)

当迭代收敛后,也就是式(4)中Δ X的值小于一定的门限,则最终的线性化方程为

ΔY(k)=H(k)ΔX(k)+E(k).(5)

其中: Δ Y( k)为定位解算后的残差; H( k)为最终的线性化矩阵,也称为几何矩阵; E( k)为误差项。在迭代过程中, H( k)在不断变化,每一次迭代都需要按照式(4)求解增量Δ X P的选择有很多种,在导航领域常用的是加权最小二乘估计,即:

P=HTR-1H-1HTR-1.(6)

其中, R=cov E(k)为误差的协方差矩阵。

1.2 残差RAIM方法

式(5)所示的线性方程组为RAIM领域研究的基本模型,反映了定位解算中星座结构、误差和残差之间的关系。 E( k)是无法直接观测到的。在正常情况下, E( k)应服从零均值Gauss分布,方差的大小表示了伪距的测量精度,最终会影响到定位结果的精度。一旦导航信号在传输或接收处理过程中发生异常如卫星时钟发生故障、受到干扰、发生严重多径等,会造成 E( k)中某项或某几项的误差分布不再是零均值,而出现一定的误差。这个误差可能是阶跃的,也可能是斜升的,或者是其他形式。无论怎样,误差的存在将给定位带来风险,使得定位结果有可能发生错误,如何去检测并剔除发生异常的观测值,是RAIM研究的核心问题。

虽然 E( k)直接反映了每颗卫星观测信息的误差大小,但由于其不能直接通过计算得到,传统RAIM方法没有使用 E( k)进行故障判断,而是使用解算后直接得到的Δ Y( k)来进行故障检测。当用于定位的卫星数目较多时,Δ Y( k)指示了各个观测信息之间的相合性。因此对于估计出来的用户位置,各个卫星到其的理论距离(由卫星位置与用户位置计算)与观测距离(伪距)之间的误差都趋近于零,Δ Y( k)的范数趋近于零。定义检验统计量:

SSE(k)=ΔY(k)TΔY(k)=ΔY(k)22.(7)

式(7)中使用 l2范数测量距离,当然也可以用其他形式如无穷范数进行定义,将对应着不同的故障度量方式,此处不作讨论。将式(7)所定义的检验统计量与一个预定的门限进行比较,当超过门限时则认为伪距之间的相合性不满足,观测量中存在异常值,需要进行进一步的处理。传统RAIM方法利用卫星数目上的冗余来解算残差,对伪距之间的相合性检测进行故障判别。这种方法假定了‖ E( k)‖的增加将导致‖Δ Y( k)‖的增加。而事实上,从 E( k)到 ΔY(k)的映射过程中存在信息损失,使得 ΔY( k)不能完全表征卫星伪距的测量误差。仅利用Δ Y( k)进行故障检测,有可能会带来虚警和漏检。

1.3 投影矩阵分析

残差向量可表示为

ΔY=Y-Y^=Y-HX^=(I-HP)Y=(I-HP)(HX+E)=(I-HP)E.(8)

式(6)中给出了 P的一种形式。对于任何无偏估计器,都需要满足 PH=I,这也是式(8)最后一个等号成立的条件。记式(8)中将误差向量映射成残差向量的投影矩阵为 S,即:

S=I-HP.(9)

容易验证, S为幂等矩阵。 S并不满秩,经过投影变换后,误差向量中的信息将受到损失。事实上,由于 PS=0, S将误差向量映射到了 P的零空间上。残差向量属于 P的零空间,这也是定位解算方程求解过程中进行迭代的收敛条件。对于幂等矩阵,只有0和1两个特征值,且属于不同特征值的特征向量之间相互正交。由于待求解向量 X( k) =[ xu, yu, zu, bu]中包含4个未知数,故 S的特征值0为4重特征值,对应4个线性无关的特征向量。相应地,特征值1为( N-4)重特征值。特征值0所对应的特征空间中的向量不会对残差项有贡献,但是会影响定位结果,因而可能在传统RAIM方法中造成漏检错误。而特征值1所对应的特征空间中的向量将投影到残差项中,不会对定位结果造成影响,理论上会造成虚警错误。也就是说,误差向量在这两个正交

子空间上的投影分别决定了其对定位结果和定位残差的影响,传统RAIM方法只用到了投影到残差项的信息,损失了误差向量的另一部分信息。

1.4 算例分析

使用2013年4月11日的星历文件,设定场景为用户静止,位于北纬40°、东经116°、高度80 m, 周内秒时间为265 473 s, 卫星仰角高于5°为可见。通过计算,共有7颗卫星可见,构造定位解算方程,使用等权值最小二乘法求解,得到

S=0.45220.00850.1737-0.0696-0.44390.0039-0.12480.00850.6223-0.2373-0.02990.03150.0248-0.41970.1737-0.23730.4934-0.39790.0454-0.0445-0.0328-0.0696-0.0299-0.39790.4500-0.19850.04000.2059-0.44390.03150.0454-0.19850.5986-0.0275-0.00550.00390.0248-0.04450.0400-0.02750.0050-0.0017-0.1248-0.4197-0.03280.2059-0.0055-0.00170.3785.

求解 S的特征值与特征向量,结果如表1所示。

表1 投影矩阵的特征值与特征向量

表1中,对应同一个特征值的特征向量已经进行正交化,各个特征向量之间相互正交。为便于比较,分别假定第2、 6和7颗卫星出现30 m的距离误差,即误差向量分别为 e1=[0, 30, 0, 0, 0, 0, 0]、 e2=[0, 0, 0, 0, 0, 30, 0]和 e3=[0, 0, 0, 0, 0, 0, 30],对应的误差模式分别记为E1、 E2和E3。定位解算结果如表2所示。在表2中,定位结果的误差用解算所得结果与用户设定位置在东北天3个方向的误差来表示,检验统计量为按照式(7)计算的结果。

表2 不同误差模式下的解算结果

表2可以看到, E1模式下,虽然定位结果本身的误差并不大,但得到了一个较大的检验统计量。而E2模式下,定位结果误差最大,得到的检验统计量最小。E3模式下得到的结果位于前两者之间。投影矩阵两个特征值对应着两个正交子空间,误差向量在这两个空间上的投影,分别决定了其对定位结果和残差向量的影响。对定位结果影响越大,对残差反而贡献得越小; 反之,误差向量在残差上的投影较大,则实际定位的误差反而较小。因此,残差向量仅仅反映了误差向量的部分信息,用其来进行定位结果是否正确的判别是存在风险的。事实上,只有当误差向量在两个特征空间的投影角度近似相等时,残差向量才能最佳地反映出检验统计量和定位误差之间的关系。但在某些场景下如本文中模拟的E1和E2模式,这个条件无法满足,就可能会导致虚警和漏检。当多颗卫星的观测量同时出现误差时,这种错误的概率更会增加。因而本文希望找到一种方法,能够直接去监测误差向量,进行故障判决,这样将不会像使用残差向量一样受到投影矩阵带来的信息损失,利用完备的信息有助于提高RAIM方法的性能。

2 重构伪距误差算法

伪距误差向量不能通过直接观测或计算得到,需要通过某种方法进行重构。文[8]提出联合使用不同历元时刻的观测信息,利用时间上的冗余来弥补投影矩阵不满秩带来的信息损失。使用这种方法,在理论上可以利用残差完全重构出伪距误差向量,但需要假定在联合使用不同的历元时刻之间伪距误差向量要保持不变,这在实际中较难保证。同时还面临一个矛盾,为了保证伪距误差向量的变化在一定范围内,需要两个历元之间的间距较小,而历元之间的间隔小则对应着可见卫星所组成的几何结构变化小。在进行求解时,由于热噪声的存在,问题的病态性很强,算法并不稳定。

本文仅使用单次观测结果,通过加入约束条件来弥补投影矩阵不满秩带来的信息损失,重构伪距误差向量进行故障监测。这种方法不需要联合不同时刻的观测信息,去除了对伪距误差保持恒定的假设,能够对故障进行快速检测,缩短了告警时间。根据约束条件的不同,也可以完成对单星、多星故障的检测,而且算法复杂度小,稳定性好。

将式(9)代入式(8), 得到:

SE=ΔY.(10)

其中: S和Δ Y为定位解算完成后得到的已知量,伪距误差向量 E为未知数。要重构伪距误差向量,就需要对式(10)进行求解。由于 S不满秩,故式(10)为欠定方程,无法直接得到伪距误差向量(使用 l2范数最小准则得到的极小二乘解在卫星故障监测中往往不具备实际意义)。本文把求解式(10)分成两个步骤: 1) 添加合适的约束条件,在不同的约束分组下对伪距误差进行重构; 2) 从不同的约束分组中筛选出所需的伪距误差重构向量。

2.1 约束条件引入

通过添加约束条件,把非故障星的伪距误差约束为零,而对故障星的伪距误差不做约束。例如有6颗可见卫星,对第1~5颗卫星的伪距误差进行约束,称之为1组约束。该组约束条件下,故障只能出现在第6颗卫星上。为了使故障假设能够包含所有故障模式,则至少需要在6组约束条件下进行求解。如果这样做,在可见星较多尤其是需要考虑多星故障时,需要遍历的约束分组数目迅速增加,计算量较大,不易于实现。

本文提出一种优化的约束分组策略,能够使用较少的约束分组数覆盖所有可能的故障模式。当有 N颗卫星可见时, S的秩为( N-4),故只需要加入4个约束条件就可以构造出满秩矩阵,对式(10)进行求解。利用此思想,可迅速降低约束分组数。

2.1.1 6颗可见星的情况

当可见星有6颗时,最多可检测出一个故障卫星,只能使用单星故障假设。此时共有6种可能的故障形式,即第 i( i=1,2,…,6)颗卫星发生故障。按照表3添加约束条件。

表3 6颗可见星时的约束分组

表3看出,总共需要3次计算,就可以涵盖所有可能的故障形式。

2.1.2 7颗可见星的情况

当可见星有7颗时,最多可检测出2个故障卫星。若使用双星故障假设,此时共有 C72=21 种可能的故障形式。表4给出了一种约束条件添加方法。

表4 7颗可见星时的约束分组

表4中的第一个分组为例,其约束了卫星4、 5、 6、 7的伪距误差,因而故障星可以为卫星1、 2、 3中的任意1颗或任意2颗。其中任意2颗的组合共有卫星1和2、 卫星2和3、 卫星1和3三种形式,即1个分组便包含了3种可能的双星故障。这样按照表4所示的7个组就包含了所有21种双星故障模式。当然,这要求7个分组中的双星故障模式的组合互不相同。容易验证,表4给出的分组满足这一要求。

2.1.3 N颗可见星的情况

当可见星有 N颗时,可以假设存在( N-5)个故障星,此时共有 CNN-5种故障模式组合。按照每次对4颗卫星进行约束,则每次可进行故障识别的卫星数为( N-4)。这( N-4)颗卫星包含的故障组合数共有 CN-4N-5 =N-4,因而至少需要的分组数为

[CNN-5/(N-4)]=N4-6N3+11N2-6N120.(11)

式(11)给出的是分组数的下界,但实际中很难达到。但是当可见卫星数较多即 N比较大的情况下,一般并不会考虑( N-5)颗卫星同时出故障的情况,仍然会关注只有双星或三星同时故障的模型。此时的分组数将会大为很少,进一步降低运算复杂度。表5给出了不同可见星数目下,几种故障模型的分组数统计。

表5 几种典型情况的约束分组数目统计
2.2 伪距误差向量重构

使用不同的约束条件对应着不同的故障卫星组合,按照如下方式判定哪一种组合才是真正需要的重构伪距误差向量。

1) 设定故障模型,假设有 t个故障星,构造 M个约束分组;

2) 求解式(10), 得到 M个约束分组对应的伪距误差向量 E1, E2,…, EM;

3) 去除向量 Ek中模值最大的 t个元素,得到向量 E˙k;

4) 计算 Qk= E˙k2;

5) 选取 Qk值最小的 Ek作为重构的伪距误差向量。

2.3 算例分析

采用节1 .4中的场景,分别考虑单星故障假设和双星故障假设。在单星故障假设下,使用表4中的前3个约束即可。这3个约束对应的伪距误差向量计算结果如表6所示。

表6 重构伪距误差法计算示意

表6中看到,使用重构伪距误差的方法,能够联合利用残差向量和约束条件恢复出伪距误差信息,这为新的RAIM监测方法提供了思路。但也应当注意到,在E2模式下,由于Q值的区分度较小,正确的识别伪距误差向量是有一定困难的。这是由于星座结构本身的特性造成的,在节1中已经进行了详细分析。使用重构伪距误差向量方法的特点在于得到伪距误差向量后,能够同时完成对所有可见星的故障监测,从而使监测多星故障成为可能。

3 仿真分析

使用2013年4月11日的星历文件,设定场景为用户静止,位于北纬40°、东经116°、高度80 m, 卫星仰角高于5°为可见。仿真过程中,若卫星数少于6颗,不进行伪距误差监测; 卫星数等于6颗时,使用单星故障假设; 卫星数大于6颗时,使用双星故障假设。仿真起始时间为259 201 s(周内秒), 持续时间300 s, 仿真间隔为1 s。在第100 s时,给第2颗卫星加入斜升伪距误差,速度为1 m/s, 持续100 s后速度设为0, 伪距误差保持在100 m。在第150 s时,给第5颗卫星加入斜升伪距误差,速度为2 m/s, 持续30 s后速度设为0, 故第5颗卫星的伪距误差将在仿真开始的180 s后保持在60 m。在220 s处,第5颗星的伪距跳变为正常值。在240 s处,第2颗星的伪距跳变为正常值,即240 s之后,不存在故障观测量。生成伪距的标准差为0.8米。仿真结果如图1所示。

图1中,只有卫星2和5在仿真过程中引入了斜升的伪距误差,其他卫星在仿真过程中没有伪距误差。其中“重建值”曲线表示按照节2所述方法重构得到的伪距误差值。从图1中卫星2和5的重构伪距误差监测曲线可以看到,重构得到的伪距误差与实际伪距误差曲线基本吻合。由此可见,利用约束条件和残差向量重构伪距误差的方法,能够实现对所有卫星伪距误差的监测。当存在多星故障如仿真中第150 到220 s之间,重构的伪距误差能够同时反映出2颗故障星的伪距误差,起到了多星故障监测的作用。也应当注意到,在160~170 s之间,本该在第2颗卫星上的测距误差有一部分被重构到了第4颗卫星上。这是算法本身在噪声环境下的局限性导致的。本文把非故障星的伪距误差约束为零,在噪声存在的情况下这种约束过于严格,可能会导致重构的误差在一定程度上偏离真实误差。但正如图1所示,目前的方法已经能够在一定程度上用重构伪距误差来表示实际的卫星故障情况。未来将考虑把约束条件改为对非故障星的误差分布进行约束,从而进一步提高重构误差向量的准确程度。

4 结 论

本文首先分析了传统RAIM方法中投影矩阵带来的信息损失。仅仅使用残差无法对伪距的实际误差进行估计,在进行RAIM判决时有可能造成漏检和虚警。对于传统RAIM方法,利用残差所包含的信息无法对多星故障进行检测。本文提出了利用残差和约束条件重构伪距误差向量的方法。得到重构的伪距误差向量后,可以直接对所有卫星的伪距进行连续监测,实现多星故障检测,这为RAIM方法提供了新的思路。

目前,本文仅提出了重构伪距误差的方法,并做了一定的仿真分析,没有给出具体的性能评估。在从不同的约束分组中选取伪距误差向量时,使用Q值进行判断,这种选取方法的合理性有待进一步研究。同时,得到重构伪距误差向量后,如何对其进行有效利用,这也是今后要研究的问题。

The authors have declared that no competing interests exist.

参考文献
[1] Lee Y C, Dyke K, DeCleene B, et al. Summary of RTCA SC-159 GPS integrity working group activities [J]. Journal of the Institute of Navigation, 1996, 43(3): 307-362. [本文引用:2]
[2] Parkinson B W. Global positioning system: theory and applications[M]. Washington DC, USA: American Institute of Aeronautics and Astronautics, 1996. [本文引用:1]
[3] Walter T, Enge P, Blanch J, et al. Worldwide vertical guidance of aircraft based on modernized GPS and new integrity augmentations[J]. Proceedings of the IEEE, 2008, 96(12): 1918-1935. [本文引用:1] [JCR: 5.466]
[4] Hwang P, Brown R G. From RAIM to NIORAIM: A new integrity approach to integrated multi-GNSS systems[J]. Inside GNSS, 2008, 3(4): 24-33. [本文引用:1]
[5] Blanch J, Walter T, Enge P. RAIM with optimal integrity and continuity allocations under multiple failures[J]. Aerospace and Electronic Systems, IEEE Transactions, 2010, 46(3): 1235-1247. [本文引用:1] [JCR: 1.394]
[6] Milner C D, Ochieng W Y. A Fast and efficient integrity computation for non-precision approach performance assessment[J]. GPS Solutions, 2010, 14(2): 193-205. [本文引用:1] [JCR: 2.202]
[7] Lee Y C. A position domain relative RAIM method[J]. Aerospace and Electronic Systems, IEEE Transactions, 2011, 47(1): 85-97. [本文引用:1] [JCR: 1.394]
[8] Martini I, Hein G W. An integrity monitoring technique for multiple failures detection[J]. Position, Location, And Navigation Symposium, IEEE/ION, 2006: 450-467. [本文引用:1]
[9] Schroth, Georg, Rippl, et al. Enhancements of the range consensus algorithm (RANCO) [C]// Proceedings of the 21st International Technical Meeting of the Satellite Division of the Institute of Navigation. Georgia, USA: Institute of Navigation, 2008: 93-103. [本文引用:1]
[10] Macabiau, Christophe, Gerfault, et al. RAIM performance in presence of multiple range failures [C]// Proceedings of the 2005 National Technical Meeting of the Institute of Navigation. San Diego, USA: Institute of Navigation, 2005: 779-791. [本文引用:1]
[11] Ober P B. Integrity prediction and monitoring of navigation systems: architectures and algorithms[M]. Leiden, Netherlands: Integricom, 2003. [本文引用:1]
[12] 郭婧, 崔晓伟, 陆明泉, . 支持垂直引导进近的多星座RAIM算法[J]. 清华大学学报: 自然科学版, 2011, 51(2): 154-160.
GUO Jing, CUI Xiaowei, LU Mingquan, et al. Multi-constellation RAIM for approach with vertical guidance[J]. Journal of Tsinghua University: Science and Technology, 2011, 51(2): 154-160. (in Chinese) [本文引用:1] [CJCR: 0.609]
[13] Brown R G. Solution of thetwo-failure GPS RAIM problem under worst-case bias conditions[J]. NAVIGATION, Journal of the Institute of Navigation, 1997, 44(4): 425-432. [本文引用:1]