基于平方根UKF的伪卫星动态跟踪定位算法

来源:期刊VIP网所属分类:通信发布时间:2021-01-25浏览:

  摘 要: 为了解决传统Kalman滤波在处理非线性系统时的局限性,以及扩展Kalman滤波(EKF)在处理强非线性系统时发散性和精度较差的问题,结合动态导航系统中的目标跟踪定位问题,在不敏Kalman滤波(UKF)算法的基础上,提出了一种基于平方根UKF的动态跟踪定位算法,在递推运算过程中采用协方差矩阵的平方根代替传统算法计算过程中的协方差矩阵。MATLAB仿真结果表明,平方根UKF算法的精度比EKF提升了54.7%,比UKF提升了14.8%。所提出的算法解决了Kalman处理非线性系统的局限性以及传统EKF和UKF算法精度不高的问题,为伪卫星系统的高精度定位研究提供了有力支撑。

  关键词: 算法理论;动态定位跟踪;伪卫星;平方根滤波;卡尔曼滤波算法;非线性

通信论文发表

  為了解决传统卫星星座在某些特定区域(如峡谷、隧道、密林等)受地形遮挡[1]定位授时精度难以达到要求以及信号功率相对较弱容易受到复杂环境影响干扰欺骗的问题,作为一种区域增强系统,伪卫星能有效弥补卫星信号受遮挡的问题,并提供较强的导航信号。近几年,空基伪卫星成为研究热点。相比于陆基伪卫星,空基伪卫星虽有着更加灵活、应用场合更为多样、覆盖区域更广的优势,但也面临着诸多问题[2-4]。

  空基伪卫星这一动态平台的自身位置对整个系统的定位精度有着重要影响。针对动态系统的定位跟踪,常采用Kalman滤波算法及扩展Kalman滤波算法。一般而言,Kalman滤波算法或者在其基础上演变的相关算法,在处理线性或者弱非线性系统方面效果较为理想,但对于较为复杂的非线性系统,其处理结果对于较高精度的动态跟踪定位来说很难达到要求[5-7]。针对上述问题,本文提出一种基于平方根UKF的动态目标跟踪定位算法,并与常见的EKF以及UKF算法进行仿真分析对比。

  1 传统跟踪定位算法

  空基伪卫星动态平台在运动过程中,伪卫星飞行状态之间、状态与观测量之间存在严重的非线性关系,因此需要采用非线性滤波技术得到其状态变量的最优估计值,将滤波算法运用到动目标跟踪定位中,通过引入滤波方法对动目标的行进路线进行预测与估计。常见的用于目标跟踪定位算法的滤波方法有Kalman滤波算法、EKF算法和UKF算法。

  1.1 Kalman滤波算法

  Kalman滤波是根据一定的滤波准则,采用最优化估计方法对观测系统的状态进行估计与预测的一种最优估计或最优滤波。其思路是在估计过程中,用上一次的最优状态估计和最优误差估计计算这一次的先验状态估计和先验误差估计,再用得到的先验误差估计以及量测噪声得到Kalman增益,结合前面所得到的先验估计和Kalman增益得到本次的最优估计,不断重复这个过程,用本次的最优估计来估算下一次的先验估计[8-9]。

  假设动态系统的状态空间模型为

  X(t+1)=ΦX(t)+ΓW(t),

  Y(t)=HX(t)+V(t),

  式中:X(t)为系统在时刻t的状态;Y(t)为对状态的观测值;W(t)为系统噪声,其方差矩阵为Q;V(t)为观测噪声,其方差阵为R;Φ为状态转移矩阵;H为观测矩阵;Γ为系统噪声驱动矩阵。Kalman滤波的计算流程如下。

  计算状态一步预测:

  [AKX^](t+1|t)=Φ[AKX^](t|t);

  计算新息:

  ε(t+1)=Y(t+1)-H[AKX^](t+1|t);

  计算状态估计值:

  [AKX^](k+1|k+1)=[AKX^](k+1|k)+K(k+1)ε(k+1);

  计算Kalman滤波增益:

  K(t+1)=P(t+1|t)HT[HP(t+1|t)HT+R]-1; (1)

  计算一步预测均方误差:

  P(t+1|t)=ΦP(t|t)ΦT+ΓQΓT; (2)

  计算一步预测估计均方误差:

  P(t+1|t+1)=[In-K(t+1)H]P(t+1|t)。 (3)

  为了更形象地说明Kalman滤波原理,图1给出了Kalman滤波的系统模型框图。

  1.2 EKF以及UKF滤波算法

  Kalman滤波在处理线性高斯模型以及弱非线性系统时有着比较理想的效果,误差显著减少,但是在处理较强非线性系统时其滤波效果大部分情况下很难满足要求。而在实际应用场景即空基伪卫星在飞行过程中存在严重的非线性问题,此时常采用EKF以及UKF滤波方法对动目标的行进路线进行预测与估计[7]。

  EKF的基本思路是围绕滤波值将非线性函数f(*)和h(*)展成Taylor级数,将一般的非线性系统处理为一个线性化系统的模型,再使用上述提到的传统Kalman滤波进行滤波处理[10]。但是Kalman滤波存在数值稳定性以及模型偏差等问题,同时又要求系统模型和系统噪声的统计特性精确已知,因此当系统具有较强的非线性或者初始误差较大时,EKF的滤波精度就会明显下降,甚至会出现发散[11]。

  不敏Kalman滤波器(UKF)是针对非线性系统的一种改进型Kalman滤波器,采用Kalman线性滤波框架,对于一步预测方程使用不敏(UT)变换解决协方差以及均值的非线性处理问题。UKF实质上不是对非线性函数进行近似,而是对非线性函数的概率密度分布进行近似,同时也不需要对Jacobian矩阵求导,没有忽略高阶项,这就使得UKF克服了EKF精度低、稳定性差的缺点[11]。

  UT变换与线性化方法的比较如图2所示。

  2 平方根UKF滤波算法

  在传统UKF滤波算法中,需要对每个采样点进行非线性变换,计算量比较大,而且数值计算的误差也比较明显,估计误差协方差矩阵的非负定性和对称性会因此受到影响,从而影响滤波算法的收敛速度以及稳定性[12]。为了提高滤波算法的滤波效率以及滤波精度,在递推运算过程中采用协方差矩阵的平方根来代替传统算法计算过程中的协方差矩阵,这种方法称为平方根不敏Kalman滤波算法[12]。

  由式(1)—式(3)及初始值[AKX^]0=E[X0],P0=E[(X0-[AKX^]0)(X0-[AKX^]0)T],根据定义,在这里Pk及其预测Pk,k-1至少是非负定的,但是在舍去误差的情况下,很难保证这一点。因此,在递推过程中将Pk的递推式改为Pk平方根Sk的递推式,从而建立平方根滤波方程。

  2.1 Pk的平方根递推方程

  根据定义,Pk-1具有对称非负定性,设

  Pk-1=Sk-1STk-1,

  于是

  Pk/k-1=Φk/k-1Pk-1ΦTk/k-1=Φk/k-1Sk-1STk-1ΦTk/k-1=Sk/k-1STk/k-1,

  将式中的Sk/k-1=Φk/k-1Sk-1代入到式(3)中,

  Pk=[I-KkHk]Pk/k-1=Sk/k-1{I-STk/k-1HTk[HkSk/k-1STk/k-1HTk+Rk]-1HkSk/k-1}STk/k-1, (4)

  记Fk=STk/k-1HTk,式(4)可写成

  Pk=Sk/k-1{I-Fk[FTkFk+Rk]-1FTk}STk/k-1=Sk/k-1[I-akFkFTk]STk/k-1,

  式中ak=[FTkFk+Rk]-1。

  2.2 平方根濾波方程

  平方根滤波方差可写为

  [AKX^]k=Φk/k-1[AKX^]k/k-1+Kk[Zk-HkΦk/k-1[AKX^]k-1],

  [AKX^]0=E[X0],

  Kk=akSk/k-1STk/k-1HTk=akSk/k-1Fk,

  Fk=STk/k-1HTk,

  Sk/k-1=Φk/k-1Sk-1, P0=S0ST0,

  Sk=Sk/k-1[I-akrkFkFTk], rk=11±akRk。

  推荐阅读:基于PCO+FFT的B1C导航信号捕获算法

期刊VIP网,您身边的高端学术顾问

文章名称: 基于平方根UKF的伪卫星动态跟踪定位算法

文章地址: http://www.qikanvip.com/tongxin/55311.html