APP下载

几种典型非线性滤波算法及性能分析

2019-08-05刘向阳

舰船电子工程 2019年7期
关键词:线性化协方差卡尔曼滤波

刘向阳

(海军工程大学 武汉 430000)

1 引言

在应用卡尔曼滤波[1]方法解决许多实际问题时,状态方程或量测方程常常表现为非线性,即涉及到非线性滤波问题[2~4]。为此,学者们提出了大量次优的近似方法,主要分为两大途径[5]:一是将系统方程中非线性部分线性化,即对泰勒级数展开,对高阶项采用忽略或逼近的方法;二是利用采样的方法,对近似非线性分布和非线性函数进行线性化近似。

在非线性滤波算法中,扩展卡尔曼滤波(ExtendedKalmanFilter,EKF)[6]算法最为常见,但由于EKF算法对非线性状态方程或非线性量测方程进行了线性化处理,忽略了高阶项,在强非线性情况下其跟踪效果往往较差。为了克服这一问题,专家学者提出使用采样方法逼近非线性分布来解决非线性问题,典型的算法是粒子滤波(ParticleFilter,PF)[7]算法。虽然PF取得了很好的滤波效果,但因其计算量大、实时性不高,并没有在工程中广泛应用。近年来,无迹卡尔曼滤波(UnscentedKalmanFilter,UKF)[8]和容积卡尔曼滤波(Cubature KalmanFilter,CKF)[9]得到了广泛关注。UKF 和CKF根据前一时刻的状态估计值选取典型的采样点,经非线性传递后,对这些采样点作加权处理,得到状态估计均值和协方差的近似值,减小了线性化处理带来的误差,且不需要计算Jacobian矩阵。与UKF相比,CKF在高维滤波时估计精度与滤波稳定性都优于UKF,并且其容积点及其权值仅由状态的维数唯一确定,可以提前计算与存储[10]。

目前为止,在动态的非线性估计领域之中,并不存在一种“最好”的算法。任何滤波器的设计,都需要在估计精度、复杂度、数值稳健性及计算量等各种指标之间综合考虑。本文对几种典型的非线性滤波方法的一般原理和滤波步骤进行了介绍,并引用一个经典的非线性例子对各滤波器性能进行了详细对比分析,为解决实际的非线性估计问题的处理提供了参考。

2 非线性滤波方法

2.1 扩展卡尔曼滤波(EKF)

EKF是利用Taylor展开式中的一次项对状态方程和量测方程中非线性函数和进行线性化处理,EKF滤波步骤简述如下[6]:

先计算Jacobian矩阵Fk和 Hk+1:

在标准卡尔曼滤波框架下进行递归滤波,具体的递推步骤如下:

1)状态的一步预测:

2)协方差的一步预测:

3)量测的一步预测:

4)新息协方差:

5)滤波器增益:

6)状态更新:

7)协方差更新:

EKF算法简单,易于实现,是比较常用的非线性滤波算法。利用EKF对目标进行跟踪,只有当系统的动态模型和观测模型都接近线性时,也就是线性化模型误差较小时,EKF才有可能就近于真实值,否则将会产生很大的误差;此外,EKF对初始状态的估计精度较高,如果估计的状态初始值和初始协方差误差较大时,可能导致滤波发散。

2.2 粒子滤波(PF)

PF是一种基于MonteCarlo仿真的最优回归贝叶斯滤波算法,它将状态矢量表示为带有权值的随机样本,并利用样本和权值做状态估计。与EKF相比,粒子滤波不受线性化误差或噪声模型的限制,适用于任何环境下的任何系统模型。PF模型简述如下[7]:

k时刻的后验概率密度可以表示为

权值递推公式如下:

在粒子滤波运算中,经过多次迭代,某些粒子权值会逐渐变小,样本方差逐渐增大,即发生了粒子退化现象。通常采用两种措施避免粒子退化,即重采样和选取好的重要性概率密度函数,后者的衡量标准是使重要性概率密度函数容易采样和使权值的方差最小[11]。

2.3 无迹卡尔曼滤波(UKF)

UKF算法的核心是UT变换,UT是一种计算非线性变换中的随机变量的统计特征的新方法,是UKF的基础。

假设x为一个nx维随机向量,g:Rnx→Rny为一非线性函数且y=g()x,x的均值和协方差分别为 xˉ和 Px,计算UT变换的步骤可简单叙述如下[8]:

1)计算2nx+1个Sigma采样点ξi和对应的权值Wi:

式中,κ是一个尺度参数,可以是满足( )nx+κ ≠0的任何数值,是( )nx+κPx均方根矩阵的第i行或第i列。

2)Sigma采样点ξi经非线性函数传播得到一组新的样本点 yi:

3)用这组带权值的新样本点计算非线性变换后的均值 yˉ和协方差Py:

由于x的均值和方差都精确到二阶,计算得到y的均值和方差也精确到二阶,比线性化模型精度更高。在卡尔曼框架内应用UT技术就得到了UKF算法。

UKF是利用确定的采样来近似状态的后验概率密度,不需要对模型进行线性化,可以有效地解决由系统的非线性加剧而引起的滤波发散问题,但是UKF仍是用高斯分布来逼近系统的后验概率密度,所以在系统的后验概率密度是非高斯情况下,滤波结果将会产生极大的误差。

2.4 容积卡尔曼滤波(CKF)

CKF算法也是依据高斯滤波框架,其核心是采用三阶球面—径向容积规则近似非线性函数传递的后验均值和协方差。与UT变换类似,三阶球面—径向容积规则依据状态的先验均值和协方差,通过容积规则选取容积点,再将这些容积点经非线性函数传递,再用传递后的容积点加权处理来近似状态后验均值和协方差。计算步骤简叙如下[9]:

然后 ηi,k通过非线性函数 fk(·)传播,得到Cubature点的一步预测:

利用一步预测Cubature点及其对应的权值,便得到状态和协方差的一步预测:

已知 x^k+1|k和Pk+1|k,构造量测Cubature点:

根据量测方程,可以得到预测量测Cubature点:

则量测的一步预测及协方差为

如果k+1时刻传感器提供的量测为zk+1,进行状态滤波更新,便可得到k+1时刻的状态估计和协方差。

3 仿真分析

为了比较EKF、UKF、CKF和PF这四种典型滤波算法的性能,这里引用一个经典的非线性例子进行仿真。

系统模型为[12]

式中:

初始参数设定如下:系统噪声vk~N( )0,0.1 ,观测噪声wk~N( )0,1,初始状态x0=0.1,初始方差p0=5,时间序列长度为T=50。

参数设置为 α=1,β=0,k=2。

每次独立仿真实验的均方根误差定义为[13]

在一次独立实验中,目标状态的真实值与不同的非线性滤波算法对系统状态估计如图1~2所示。

图1是一阶EKF、UKF、CKF和PF四种滤波算法在非线性系统、高斯白噪声条件下的50次Monte Carlo仿真估计均值曲线。图2是四种估计算法在高斯噪声条件下做目标跟踪状态估计的均方误差曲线。由图可以看出,在某些时段一阶EKF的状态估计严重偏离目标的真实轨迹,均方误差很大,估计效果很不稳定;UKF的仿真效果比EKF好得多,基本能够跟踪估计出目标的运动轨迹,均方误差比EKF小了很多,估计效果比较稳定;CKF在大多数时刻能够比较准确的估计出运动目标的状态,估计误差保持在较小的状态;PF的估计效果也比较理想,大多数时刻能够比较准确地估计出目标的真实状态,只有少数时刻估计值与真实值有偏差,PF的均方误差保持在较小的状态。

图1 四种典型滤波算法的状态估计曲线

图2 四种典型滤波算法估计值的误差曲线

下面对以上四种非线性滤波算法做综合比较。

表1 四种算法的综合比较

由表1可得,一阶EKF在四种滤波算法中具有最快的计算速度,这在目标跟踪及实时状态估计应用领域具有非常重要的意义。但EKF的估计精度比较低,估计值和真实值间的均方误差比较大,且多次计算的均方误差间的方差比较大,说明多次计算的估计效果浮动很大,估计效果不稳定。CKF的计算速度与EKF同属一个数量级,UKF的计算速度和估计精度两项指标都不如CKF,但稳定性方面好于后者。PF的滤波精度很高,但滤波复杂性提高,滤波速度明显降低。理论上说,随着粒子数的不断增多,PF的滤波精度会不断提升,当粒子数足够高时,状态估计趋近于真实运动状态,但粒子数越大,计算越复杂,滤波速度越慢,这限制了PF的推广和应用。但PF的优势在于它对环境噪声的普遍适应性,EKF、UKF和CKF只适用于高斯噪声环境,PF不仅适用于高斯环境,对于非高斯噪声环境同样适用,这是以上其他滤波方法没有的功能。

综上所述,EKF虽然计算量小,但在精度上不及UKF、CKF、PF;PF虽然精度高,但计算量大,实时性不好;而UKF和CKF具有较高的精度和较强的实时性。

4 结语

本文将四种典型的非线性滤波算法EKF、UKF、CKF和PF进行了对比,并简单阐述各滤波器的滤波算法步骤以及优缺点。最后,通过仿真,将这四种滤波器的性能进行了分析比较。研究结果表明:1)EKF计算量小,但在精度上不及UKF、CKF和PF;2)PF精度高,但计算量大、实时性不好;3)UKF和CKF具有较高的精度和较强的实时性,CKF计算速度和估计精度更高,而UKF稳定性更好。

猜你喜欢

线性化协方差卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
脉冲星方位误差估计的两步卡尔曼滤波算法
一种改进的网格剖分协方差交集融合算法∗
卡尔曼滤波在雷达目标跟踪中的应用
卡尔曼滤波在雷达目标跟踪中的应用
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
投资组合中协方差阵的估计和预测
基于子集重采样的高维资产组合的构建
核心素养背景下一种新的教学设计方法
基于记忆多项式模型的射频功率放大器的线性化研究