一种EKF改进算法探讨
扫描二维码
随时随地手机看文章
引言
GPS就是通过接受卫星信号,进行定位或者导航的终端。而接受信号就必须用到天线。GPS卫星定位解算是根据伪距、伪距增量等测量值,计算接收机的位置P、速度V和时间T等信息的过程。目前GPS实时定位解算中最为常用的两种方法为迭代最小二乘算法(ILS)和扩展卡尔曼滤波(EKF)。为了准确计算接收机的三维位置以及时间未知数的值,解算过程需要至少4颗卫星的测量信息。但是当GPS信号出现遮挡时,接收机只能接收到3颗卫星的测量信息,解算方程就不够4个,ILS不再适用。引入EKF,利用随着时间推移的多组数据进行实时定位解算,但定位精度也很难满足用户的需求。
为了解决上述问题,本文提出了一种改进的EKF算法。利用在垂直地面方向上的位置变化缓慢这一运动特性,建立了改进EKF算法的系统模型,并通过理论分析得到了滤波器参数,最后利用真实的卫星数据进行验证。需要特别指出的是,由于本文提出的改进EKF算法利用的是在垂直地面方向上的位置变化缓慢的特征,故而该算法的适用场合为车载等地面用户的定位解算,不适合在垂直地面方向上高速运动的情形。
1 定位解算的系统模型
卫星定位解算的系统模型包括状态模型和观测模型两部分。令向量yt、xt分别表示系统模型的测量值和系统状态参量:
1.1 测量模型
系统的测量模型描述了系统测量值与系统状态参量之间的关系。伪距与系统状态参量的关系可表示为:
1.2状态模型
系统的状态模型描述了系统状态参量的时间更新过程。更新过程的表达式为:
式(9)中的T为采样时间间隔。
式(8)中的wt表示系统状态转移的噪声模型:
根据第1节中建立的系统模型,系统测量值yt为2参数,系统状态参量xt为8参数,为了得到准确解,故而需要至少4颗有效卫星的测量值。为了能够满足用户需求的定位精度,本文提出利用一般车辆行人等用户在垂直地面方向上的位置变化缓慢这一运动特性,增加如下方程:
式(17)中,R1为从用户在ECEF坐标系下的状态参量xt到用户在NED坐标系下的状态参量mt的转换矩阵,利用坐标系旋转的原理可以求得。A2为用户在NED坐标系下的状态参量mt的一步转移矩阵。它们的表达式如下:
综上所述,得到改进的EKF算法的计算过程如下:
根据理论分析可以得出,改进的EKF相对于普通的EKF来说,增加了一项先验信息,故而使得只有3颗有效卫星时的定位解算有了4个解算方程,因此可以相对准确地解算出4个未知数的值;而在有效卫星数不少于4颗时,增加的方程(15)仍然满足,故而也不会影响定位精度。
3 算法仿真和分析
在本文的算法验证实验中,使用了Leika GPS1200测量型接收机在车载动态下采集的GPS信号的伪距和伪距增量的测量值,其中伪距测量值经过伪距增量测量值的平滑。算法的验证是在PC机上使用Matlab完成的。
在算法验证中,设置采样时间间隔为T=1 s。接收机的运动状态为从静止状态变化到在地面上高速运动最后又逐步静止。测试数据长度为2 500 s。参考轨迹是接收机使用动态实时差分(RTK)方法测定的,方差精确至毫米级。分别在有效卫星不少于4颗和只有3颗的情况下,比较了几种定位解算算法的定位结果。3.1 有效卫星数不少于4颗时的定位结果
以有效卫星数为4颗为例,分别使用ILS、EKF和改进的EKF算法进行定位,得到以ECEF坐标系下XYZ三维坐标表示的定位结果,如图1所示。
由图 1可知,接收机在前400 s时基本保持静止,然后开始运动至1 600 s,最后逐步静止至测试结束。三种解算方法都可以较好地进行定位解算。为了更好地分析定位结果,画出图 1中的XYZ三维坐标上的定位误差的均方根,如图 2所示。
为了更好地比较ILS、普通EKF与改进EKF算法,计算图 2中三种算法在XYZ三个坐标方向上的定位结果的均方根误差的平均值,如表1所示。
从图2和表1可以更清晰地看出,在有效卫星不少于4颗时,三种算法在以ECEF坐标系表示的XYZ方向上的定位误差的均方根均不超过20 m,平均定位误差不超过10 m,定位解算精度都很好。其中改进的EKF与普通EKF定位精度相当,而ILS的定位均方根误差抖动很小。这是因为,每当有新的测量数据时,ILS算法都会经过多次迭代计算直至结果收敛,而EKF与改进的EKF算法均只是利用新息进行一次计算,计算量要远远小于ILS,故而定位结果会稍有抖动。
3.2 有效卫星数只有3颗时的定位结果
在有效卫星数只有3颗时,ILS无法进行定位。分别使用普通EKF和改进的EKF算法进行定位,得到在ECEF坐标系下的XYZ三维坐标上的定位结果,如图 3所示。
为了更好地分析定位结果,画出图 3中的XYZ三维坐标上的定位误差的均方根,如图 4所示。
为了更好地比较普通EKF算法与改进EKF算法,计算图 3中两种算法XYZ三维坐标上的定位结果的均方根误差的平均值,如表 2所示。
由图 3、图 4和表 2可知,在只有3颗有效卫星的情况下,普通EKF的定位结果会出现明显的偏移,而本文提出的改进的EKF算法的定位结果与参考轨迹拟合得很好,各个方向上的平均定位误差均不超过10 m,定位精度很好。这说明本文提出的改进EKF算法在只有3颗有效卫星时,极大地提高了EKF的定位精度。与理论结果吻合。
3.3 有效卫星为3颗时改进EKF与有效卫星为4颗时普通EKF 的定位结果
为了进一步分析改进EKF算法的性能,将改进EKF算法在只有3颗有效卫星时的定位误差与普通EKF算法在有4颗有效卫星时的定位误差进行比较,如图 5所示。
计算图 5中的两种情况下XYZ三维坐标上的平均误差的均方根,如表3所示。
由图 5和表 3可知,在只有3颗有效卫星时,本文提出的改进EKF算法所增加的先验信息与增加一颗卫星的测量信息的效果基本一致。故而说明在出现GPS信号阻塞的情况下,只有3颗有效卫星时,此改进EKF算法的定位解算精度非常好。
综上所述,利用实测的卫星数据进行验证,结果表明:在3颗有效卫星的情况下,在静止状态和车载状态下,改进的EKF算法的定位精度均明显优于普通的EKF,且与4颗有效卫星时EKF的定位精度相当;在不少于4颗有效卫星的情况下,在静止状态和车载状态下,改进EKF算法的定位精度与普通EKF相当。由此说明,本文提出增加的先验信息在已有足够测量信息时,并不会影响定位精度,而只有在3颗有效卫星时,测量信息对于定位精度的改进与一颗有效卫星的测量信息效果基本一致,从而大大提高了EKF算法的鲁棒性。
总结
针对这一问题提出了一种改进的EKF算法。该算法利用在垂直地面方向上的位置变化缓慢这一运动特性,建立了改进EKF算法的系统模型。通过理论分析得到了滤波器参数,最后利用真实的GPS卫星数据进行验证。实验结果表明,在可见卫星数不少于4颗时,此改进的EKF算法定位精度与普通的EKF算法基本相同;在GPS信号阻塞只有3颗可见卫星时,此改进的EKF算法的定位精度明显优于普通的EKF算法。本文提出的改进EKF算法适合车载等地面运用,不适合在垂直地面方向上高速运动的情形。