您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 几种非线性滤波算法的性能分析
龙源期刊网几种非线性滤波算法的性能分析作者:刘丽丽来源:《价值工程》2010年第34期摘要:非线性随机动态系统的滤波问题是一类经常遇到的实际应用问题,本文分析了扩展卡尔曼(EKF)、无迹卡尔曼滤波(UKF)和粒子滤波(PF)这三种非线性滤波算法的基本原理和特点以及适应的条件。并通过一个强非线性系统的实验仿真,验证了各自算法的性能。Abstract:Filteringofnonlinearstochasticdynamicsystemsisaclassofproblemsoftenencounteredinpracticalapplications.Thisarticleanalyzesthebasicprinciples,characteristicsandadaptationconditionsoftheextendedKalmanfilter(EKF),unscentedKalmanfilter(UKF)andparticlefilter(PF).Andalsoitverifiedtheperformanceofthesealgorithmsbyexperimentalsimulationofastronglynonlinearsystem.关键词:非线性滤波;高斯滤波;扩展卡尔曼滤波;无迹卡尔曼滤波;粒子滤波Keywords:nonlinearfiltering;Gaussianfiltering;extendedKalmanfilter;unscentedKalmanfilter;particlefilter中图分类号:TN958文献标识码:A文章编号:1006-4311(2010)34-0190-020引言对线性系统而言,最优滤波的闭合解就是著名的卡尔曼滤波;而对于非线性系统来说,要得到精确的最优滤波解是困难甚至不可能的,因为它需要处理无穷维积分运算。为此人们提出了大量次优的近似非线性滤波。目前,主要的非线性滤波方法可分为两大类:高斯滤波和粒子滤波。1高斯滤波高斯滤波是在贝叶斯框架下,假设p(xz)和p(zx)都服从高斯分布,推导出p(xz)也服从高斯分布,然后根据卡尔曼滤波框架进行迭代更新的一类次优滤波方法。利用最小均方误差估计准则,可通过(1)式计算状态的估计值,=E[xz]=xp(xz)dx(1)具体可通过以下两步实现:龙源期刊网(1)时间更新。假设k-1时刻的概率分布已知p(xz)=N(x;,p)已知,且过程噪声p(v)=N(0,Q),根据Chapman-Komolgorov等式可得k时刻状态的预测值及其协方差p为=E[xz]=E[f(x)z]=f(x)p(xz)dx=f(x)×N(x;,p)dx(2)p=E[(x-)(x-)z]=f(x)f(x)×N(x;,p)dx-T+Q(3)(2)观测更新。假设预测概率分布和噪声分布分别服从p(xz)=N(x;,p)和p(w)=N(0,R),根据贝叶斯状态方程和更新方程=h(x)×N(x;,p)dx(4)p=h(x)h(x)×N(x;,p)dx-T+R(5)p=xh(x)h(x)×N(x;,p)dx-T(6)H=pp=+H(z-)(7)p=p-HpH实现高斯滤波的难点就在于如何求解确定性函数与高斯分布乘积的积分,使用不同的求解方法,国内外学者提出了各种形式的高斯滤波算法,其中最著名的有EKF、UKF等。1.1扩展卡尔曼滤波(EKF)扩展卡尔曼滤波是一种基于函数近似的滤波算法。采用局部线性化技术,能得到问题局部最优解,但它能否收敛于全局最优解,取决于函数的非线性强度以及展开点的选择。定义跟踪问题的非线性状态方程和测量方程如下:X=f(x)+w(8)龙源期刊网=h(x)+v(9)在最近一次状态估计的时刻,对以上两式进行线性化处理,首先构造如下两个矩阵:F(k+1k)=(10)H(k)=(11)将线性化后的状态转移矩阵和观测矩阵代入标准卡尔曼框架中,即得到扩展卡尔曼滤波。EKF因为简单易于实现在近三十年得到了广泛应用,但是它具有如下的局限性:①在线性化过程中引入了模型误差,往往使得状态的估计值产生较大的偏差,不能满足精度的要求,甚至可能导致滤波发散;②EKF在滤波前必须计算非线性模型的Jacobian矩阵,对于高维的复杂模型,过程繁琐且容易出错。针对EKF的缺陷,产生了许多基于EKF的改进滤波算法,如二阶EKF和迭代EKF,但都难以克服EKF的本质局限。1.2无迹卡尔曼滤波算法(UKF)无迹卡尔曼滤波算法是一种基于确定性采样的滤波算法。20世纪90年代,Julier等人提出了UKF算法,用确定性采样的方法解决了EKF的不足。UKF的核心是Unscented变换(UT),它通过在随机变量的周围仔细选择一个最少的采样点的集合,然后将这些采样点代入非线性模型,对于新得到的离散点利用加权和的办法就可以使得后验估计的均值和协方差阵精确到二阶甚至更高阶(对于高斯噪声可以精确到三阶)。假设x具有均值和协方差Px,x通过非线性函数y=f(x)变换后得到n维的随机变量y,利用UT变换得到y的均值和方差的步骤如下:(1)计算2L+1个sigma矢量,通过下式得到:==+,i=1,…,L(12)=-,i=L+1,…,2L其中=α(L+k)-L是一个缩放比例参数(scalingparameter)。是一个比例因子,它控制统计点和均值X之间的距离;α是控制非线性方程f(•)较高阶效应的正向比例因子,决定在周围的sigma点的传播;β是控制第0个统计点权值的参数。α=1,β=0和=2分级情况的最优值。是矩阵第i列的平方根。(比如:下三角的cholcsky分解)。均值的权值w和方差的权值w由下面的式子给定:w=L+w=L++(1-α+β)(13)龙源期刊网=w==1{2(L+)},i=1,…,2L+1(2)通过非线性变换扩散统计点:Y=f()i=0,1,…,2n(14)(3)求解y的均值和方差=wY(15)p=w(Y-)(Y-)(16)将EKF中统计特性传播方式的线性化近似用UT方法代替,就可得到UKF。由于UT变换能够更准确的估计非线性函数的均值和方差,因此UKF的滤波性能通常好于EKF。UKF算法具有如下特点:①对非线性函数的概率密度分布进行近似,而不是对非线性函数进行近似,UKF直接利用非线性模型,避免引入线性化误差,从而提高了滤波精度;②非线性分布统计量的计算精度至少达到二阶,对于采用特殊的采样策略可达到更高阶精度;③不需要求导计算Jacobian矩阵,易于实现;④可处理非加性噪声以及离散系统,扩展了应用范围;⑤UKF在计算量上没有太大增加,计算量与EKF相当。2粒子滤波算法粒子滤波算法是基于随机采样的的算法。粒子滤波(PF)是一种基于MonteCarlo和递推贝叶斯估计的滤波算法,其基本思想是假设能够根据状态的后验概率分布为p(xz)的x中抽取N个随机样本{x},则状态的后验概率分布可近似为(xz)=δ(x-x)(17)式中δ(•)为狄拉克函数。实际中很难得到状态后验概率分布,通常根据一个容易抽样的重要性函数q(xz)来抽取N个随机样本{x},则状态的后验概率分布近似为(xz)=wδ(x-x)(18)式中w=为重要性权值,权值可用迭代算法求得w=w(19)标准粒子滤波算法选取q(xx,z)=p(xx),那么w=wp(zx)(20)龙源期刊网算法步骤如下:Step1初始化。根据先验概率分布p(x)抽取粒子{x},权值为w=1N(i=1,2,…,N)Step2重要性采样。①根据重要性函数p(xx)抽取粒子{x};②根据式(1-28计算k时刻的权值{w},并归一化权值。Step3重采样后得到新粒子为{},其权值均为w=1N(i=1,2,…,N)。Step4状态估计值=为了减轻退化现象,目前常采用2种方法:①选取合适的重要性函数;②进行重采样.PF的一些重要改进算法有马尔可夫链蒙特卡罗(MCMC)改进策略,Unscented粒子滤波器(UPF),辅助粒子滤波器(APF),正则化粒子滤波器(RPF)等。3仿真分析我们用一个经典的非线性例子进行仿真,系统的状态方程和量测方程都是强非线性。模型如下:x=0.5x+25x(1+x)+8cos(1.2(k-1))+vz=x20+w(21)实验参数设定:系统噪声v~N(10,1),观测噪声w~N(0,1)。初始状态x=1,初始方差p=5,时间序列长度为T=50。UKF中参数为,α=1,β=0和κ=2,PF粒子数N=300。本文对各滤波方法进行了M=50次的MonteCarlo仿真,滤波算法每一时刻的均方根误差为RMSE=(-x)图1给出了MonteCarlo仿真50次得到的上述3种非线性滤波算法的状态估计,从图中可以看出,EKF的状态估计大部分时间严重偏离真实状态,UKF算法由于不需要线性化处理,性能比EKF要好,有少部分偏离真实状态.PF不仅能够很快逼近真实结果,收敛速度比UKF和EKF快,而且与真实状态的差距相对前面的两种算法要小得多。图2比较了3种滤波算法的均方根误差,结果表明强非线性条件下,PF优于UKF和EKF,由于EKF在泰勒级数展开时,忽略了高阶项,引入了线性化误差,误差最大。表1给出了各滤波算法均方根误差的均值,运算复杂度以及运算时间,其中运算时间为各滤波算法运行时间归一化对比,从表2可以看出,粒子滤波算法的均值的均方根误差小于传统龙源期刊网算法,由于要对大量的粒子进行采样、分配权值以重采样,它的耗时大。而EKF运算速度很快,但滤波精度不高。4结论本文通过仿真对各滤波算法进行了性能分析,并给出了各算法的复杂度。通过比较,从滤波精度上看,扩展Kalman线性化过程中引入了模型误差,往往使得状态的估计值产生较大的偏差,不能满足精度的要求,甚至可能导致滤波发散,同时需要计算非线性函数的Jacobian矩阵,过程繁琐且容易出错;基于无迹变换的无迹Kalman滤波器能有效处理系统方程非线性强度大的情况,滤波精度和稳定性也好于EKF,但要求噪声是高斯白噪声;粒子滤波器不要求模型是线性的,对任意分布的噪声都适用,并且算法简单,易于编程实现,滤波效果好,适用范围更广。从计算速度上看,EKF具有明显的优势,因此对于工程应用上,在精度要求不太高场合,可以优先考虑采用EKF.从应用环境来看,在非线性非高斯场合选取粒子滤波算法更好一些。参考文献:[1]GORDONN,SALMONDD,SMITHA.NovelApproachtoNonlinear/Non-GaussianBayesianStateEstimation[J].IEEProceedingsonRadar,SonarandNavigation,1993,140(2):107-113.[2]ARULANPALAMMS,MASKELLS,GORDANN,etal.Atutorialonparticlefiltersforonline.onlinear/non-GaussianBayesiantracking[J].IEEETrans.onSignalProcessing,2002,50(2):1742188.
本文标题:几种非线性滤波算法的性能分析
链接地址:https://www.777doc.com/doc-4084670 .html