基于粒子群优化算法的无迹粒子滤波方法

文档序号:6598993阅读:211来源:国知局
专利名称:基于粒子群优化算法的无迹粒子滤波方法
技术领域
本发明提供的是一种滤波方法,具体涉及运用了粒子群优化算法的无迹粒子滤波方法(PSO-UPF)。

背景技术
非线性系统状态估计问题广泛存在于信号处理以及导航制导、目标跟踪、金融分析、人工智能等相关领域。无迹卡尔曼滤波(UKF)和粒子滤波是近年来研究和应用较为广泛的一种非线性滤波方法。与传统的扩展卡尔曼滤波(EKF)相比,UKF无须将模型进行线性化,直接使用非线性模型,避免了局部线性化引入的误差,避免在强非线性系统中出现发散。但EKF与UKF都是基于高斯假设,所以不适用在工程应用中的很多非高斯模型。弥补上述不足的一种有效方法是以非参数化的蒙特卡罗模拟方法为基础的粒子滤波(PF)。PF方法的核心是利用一些随机样本(粒子)来表示系统随机变量的后验概率密度,能得到基于物理模型的近似最优数值解,而不是对近似模型进行最优滤波。
粒子滤波最常见的问题是粒子退化现象,即经过几次迭代,除一个粒子外,所有粒子都只具有微小的权值,这意味着大量的计算工作都被用来更新那些对后验概率密度的估计几乎没有影响的粒子上。选择合适的重要性分布,可以在一定程度上减少粒子退化现象对算法精度的影响。无迹粒子滤波(UPF)方法是通过UKF产生重要性概率密度,是目前较为常用的一种建议分布产生方法,这种方法引入了当前时刻新的观测值,从而可以得到较高的估计精度。
再采样步骤通过消除小权值粒子在概率估计中的影响,减弱粒子退化现象,但同时也引入了新的负面问题,即样本贫化。样本贫化现象产生于再采样阶段。在这个阶段,虽然每次重新采样后粒子的权值不为零,但由于重新采样将高权值的粒子过多复制,有效的粒子数目在再采样后减少,这样,经过若干次递推计算后,有效粒子被再采样步骤耗尽,直至最后一个权值为1的样本为止,这时,样本的分布实际上演化为一个单点分布,不能反映真实的分布情况。
粒子群优化算法(PSO)是一种进化计算技术,该算法模拟鸟群觅食的行为,通过鸟之间的集体协作使得群体达到最优。与遗传算法(GA)类似,系统初始化为一组随机解,通过迭代搜寻最优值。它也是一种基于群体迭代搜寻最优解的优化工具,但它无需进行交叉和变异操作,而是通过粒子在解空间追随最优的粒子进行搜索。PSO的优势在于结构简单、容易实现并且没有过多的参数需要调整,目前已广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。


发明内容
本发明的目的在于提供一种能在一定程度上解决样本贫化问题,提高每个粒子的作用效果,提高滤波的计算效率的基于粒子群优化算法的UPF滤波方法。
本发明的目的是这样实现的 主要包括如下步骤 第一步,初始时刻,由初始分布p(x0)中得到一组初始粒子,并设置其初始的均值和方差。设置粒子初速度,设置惯性因数w,学习因子c1和c2,求解初始时刻的全局最优解G(0)。
第二步,重要性采样 (5)调整粒子的速度和位置 Vi(t)=w×Vi(t-1)+c2×r2×[G(t-1)-Xi(t-1)]; 其中Vi(t)为第i个粒子在t时刻的速度,Xi(t)为其位置。
(6)根据UKF算法对粒子的状态进行更新,在该时刻的状态估计中引入粒子速度值,即Xi(t)=Xi(t-1)+Vi(t); (7)求粒子集的均值

和方差Pki; (8)从重要性密度函数中抽取粒子。
第三步,权值更新 上式中,wki为粒子对应的权值,p(·|·)为概率密度函数,重要性概率密度函数

N(

Pki)为由均值和方差得到的建议分布。
第四步,得到归一化的权值
第五步,再采样 定义阈值Neff来衡量有效粒子数量 Nthr为有效粒子数,如Neff<Nthr,即对粒子集{

i=1,...,N}重新采样,产生新的集合{xki,i=1,...,N},重新设定粒子的权值为

为粒子数量。
第六步,状态更新
第七步,求解当前时刻的全局最优解G(t)。
本发明针对再采样步骤引起的样本贫化现象,在这一步骤之后引入PSO算法,使得粒子智能地协作起来,可以使粒子集更加优良,并且由于粒子的随机移动,能够在一定程度上减轻样本的贫化现象。
PSO初始化为一群随机粒子,然后计算适配值对每个粒子进行评价,最后通过迭代找到最优解。在每次迭代的过程中,粒子通过跟踪两个极值来更新自己的速度和位置。
PSO算法的基本步骤如下 第一步,随机初始化一群粒子,其中第i个粒子在n维空间的位置表示为Xi=(xi1,xi2,…,xin),速度为Vi=(Vi1,Vi2,…,Vin)。
粒子本身从初始到当前迭代次数搜索产生的最优解,称为个体极值pbest Pi=(Pi1,Pi2,…,Pin);由群体搜索得到的最优解,称为全局极值gbestG=(g1,g2,…,gn)。在找到上面两个最优解之后,每个粒子根据下面两式来更新其速度和位置 Vi=w×Vi+c1×r1×(Pi-Xi)+c2×r2×(G-Xi) X=Xi+Vi 其中,r1和r2是介于(0,1)区间的随机数;c1和c2为正常数,一般称为学习因子或加速因子,一般学习因子c1=c2=2;w称为惯性因数,w较大则算法具有较强的全局搜索能力,w较小则算法倾向于局部搜索。由于惯性因数和学习因子的大小直接关系到搜索范围的大小,所以实际应用中要根据具体的状态方程和观测方程来确定其取值。
第二步,初始化PSO粒子速度Vi(0),粒子位置Xi(0),惯性因数wi(0)。初始化PSO两个极值 Pi(0)=Xi(0);G(0)={P(0)|wj(0)=max{wi(0)},i=1,2,...N} 第三步,评价每个粒子的适应度。适应度函数定义如下 其中Rk是观测噪声方差,yNew是最新的量测值,yPred是预测量测值。
第三步,对每个粒子,将其适应值与其经历过的最好位置Pbest作比较,如果较好,则将其作为当前的个体最优位置。
第四步,对每个粒子,将其适应值与全局所经历的最好位置Gbest作比较,如果较好,则将其作为当前的全局最优位置。
第五步,用PSO进行迭代得到 Vi(t+1)=w×Vi(t)+c1×r1×[Pi(t)-Xi(t)]+c2×r2×[G(t)-Xi(t)] Xi(t+1)=Xi(t)+Vi(t+1) 对粒子的速度和位置进行优化,从而产生新的粒子。
第六步,如果未达到结束条件(结束条件通常是足够好的适应值或某一个约束条件),则返回第三步。
在粒子滤波的步骤中,最为重要的是重要性采样和再采样步骤。在再采样步骤之中加入PSO算法,如果粒子集都分布在真实状态附近,那么粒子群中每个粒子的适应度都很高;反之,如果粒子群中每个粒子的个体最优值以及粒子群的全局最优值都很低,则说明粒子没有分布在真实状态附近。此时粒子集利用粒子群优化算法,不断根据最优值并利用迭代来更新每个粒子的速度与位置,使得粒子不断地向真实状态靠近。
通过移动粒子群向最优粒子pbest靠近,粒子群优化算法实质是驱动所有的粒子向高似然概率区域运动,如图1所示。当粒子群的最优值符合某阈值ε时,说明粒子群已经分布在真实状态附近,那么粒子群将停止优化。此时再对粒子集利用最新观测值进行权值更新并且进行归一化处理。这样,在再采样之后,真实状态附近的粒子权值将会增大。
本发明具有以下优点 第一,通过粒子群优化过程,使得粒子集在权值更新之前更加趋向于高似然区域,从而在一定程度上解决了样本贫化问题。
第二,优化过程使得远离真实状态的粒子趋向真实状态出现概率较大的区域,提高了每个粒子的作用效果。
第三,与其他智能优化算法相比,PSO具有容易实现且没有许多参数需要调整的优势,并且降低了精确估计所需要的粒子数,提高了滤波的计算效率。



图1为基于粒子群优化过程示意图; 图2为PSO-UPF滤波方法流程图; 图3为PF、EKPF与UPF在一次独立实验中的状态估计(N=200); 图4为PF、EKPF与PSO-UPF在一次独立实验中的状态估计(N=200); 图5为PF、EKPF与PSO-UPF在一次独立实验中的状态估计误差。

具体实施例方式 下面结合附图举例对本发明做更详细地描述 本发明PSO-UPF滤波方法的基本步骤如下 第一步,初始时刻,由初始分布p(x0)中得到一组初始粒子,并设置其初始的均值和方差。设置粒子初速度,设置惯性因数w,学习因子c1和c2,求解初始时刻的全局最优解G(0)。
第二步,重要性采样 (1)调整粒子的速度和位置 Vi(t)=w×Vi(t-1)+c2×r2×[G(t-1)-Xi(t-1)] (2)根据UKF算法对粒子的状态进行更新,在该时刻的状态估计中引入粒子速度值,即Xi(t)=Xi(t-1)+Vi(t) (3)求粒子集的均值和方差。
(4)从重要性密度函数中抽取粒子。
第三步,权值更新 上式中的重要性概率密度函数

引入了最新的观测值,因此改善了滤波器的性能。
第四步,得到归一化的权值
第五步,再采样 定义Neff来衡量有效粒子数量 如Neff<Nthr,即对{

i=1,...,N}重新采样,产生新的集合{xki,i=1,...,N},重新设定粒子的权值为
第六步,状态更新
第七步,求解当前时刻的全局最优解G(t)。
至此,算法一个时间步的运算结束,进入下一时间步的运算,转入第二步运行。
实施实例一 利用单变量非稳定增长模型对PSO-UPF滤波方法的性能和其他粒子滤波性能进行比较,该模型是研究比较各种粒子滤波的算法性能的标准验证程序之一,其状态方程和观测方程如下 其中观测噪声vt~N(0,1),系统噪声为如下的高斯和分布 p(ut)=0.8N(u;0,1)+0.2N(u;0,10) 为验证本发明提出的PSO-UPF滤波方法使用较少的粒子,就可以获得相对较高的滤波精度,所以方针分别使用50,100,200个粒子。PSO学习因子c1=c2=2,进行50次独立实验对目标的状态进行估计。
仿真数据在表1中显示,实验表明,当粒子数为50时,使用PSO优化的UPF性能有了明显的改善,误差明显减小,这是因为加入PSO后,粒子的多样性得到增强,精度随之提高。当粒子数为100和200时,PSO-UPF的性能也明显强于其他粒子滤波算法。
表1
实施实例二 利用下面的非线性模型对滤波性能进行验证,其状态方程和观测方程如下 其中过程噪声vt服从Gamma(3,2)分布,量测噪声nk服从高斯分布N(0,10-5)。系统状态的估计为

一次独立实验的均方误差为 在实验中,分别采用PF,EKPF以及UPF与本文提出的PSO-UPF方法进行比较。由于UPF和PSO-UPF状态估计曲线较为相近,所以分别将二者与PF、EKPF仿真结果做出比较,这样可以更清晰的反映滤波方法在精度方面的差别。仿真采用的粒子数N为200个,量测时间为T=60,进行100次独立的实验,UPF的UT变换参数为α=1,β=0,κ=2。
图3给出了PF、EKPF与UPF在一次独立实验中的状态估计结果。图4给出了PF、EKPF与PSO-UPF在一次独立实验中的状态估计结果。图5给出了PF、EKPF与PSO-UPF在一次独立实验中的状态估计误差。从以上图中可以看出,对于非线性、非高斯问题,PF算法得到的状态估计在部分时刻会严重偏离真实值,EKPF、PSO-UPF与UPF算法得到的状态估计可以较好的吻合真实状态,而后两种UPF算法的精度又优于EKPF。
通过上述模型将本发明与PF、EKPF和UPF三种粒子滤波方法的性能进行对比。主要对比数据为经过100次运行四种粒子滤波算法的均方根误差(RMSE)、有效粒子数以及平均运算时间。通过对这些性能指标的比较可以得到,在四种滤波算法中,EKPF、UPF和PSO-UPF对于非线性问题的适应性要明显好于PF,本文提出的PSO-UPF算法的精度优于UKF,较为明显的好于EKPF。但由于在重要性采样环节的改进,增大了算法的计算量,使上述三种算法的运算时间相对传统PF算法明显增大。本发明的滤波方法引入了PSO步骤,因此在粒子数相同情况下,运算量大于UPF;但在有效粒子数方面,PSO-UPF的有效样本多于UPF、EKPF和PF,所以可以利用较少的粒子取得较好的滤波精度。综合上述结果,可以得到,PSO-UPF的计算效率优于UPF。
权利要求
1.一种基于粒子群优化算法的无迹粒子滤波方法,其特征是主要包括如下步骤
第一步,初始时刻,由初始分布p(x0)中得到一组初始粒子,并设置其初始的均值和方差,设置粒子初速度,设置惯性因数w,学习因子c1和c2,求解初始时刻的全局最优解G(0);
第二步,重要性采样
(1)调整粒子的速度和位置
Vi(t)=w×Vi(t-1)+c2×r2×[G(t-1)-Xi(t-1)],
其中Vi(t)为第i个粒子在t时刻的速度,Xi(t)为其位置;
(2)根据无迹粒子滤波算法对粒子的状态进行更新,在该时刻的状态估计中引入粒子速度值,即Xi(t)=Xi(t-1)+Vi(t),
(3)求粒子集的均值
和方差Pki,
(4)从重要性密度函数中抽取粒子;
第三步,权值更新
上式中,wki为粒子对应的权值,p(·|·)为概率密度函数,重要性概率密度函数
为由均值和方差得到的建议分布;
第四步,得到归一化的权值
第五步,再采样
定义阈值Neff来衡量有效粒子数量
Nthr为有效粒子数,如Neff<Nthr,即对粒子集
重新采样,产生新的集合{xki,i=1,...,N},重新设定粒子的权值为
N为粒子数;
第六步,状态更新
第七步,求解当前时刻的全局最优解G(t)。
全文摘要
本发明提供的是一种基于粒子群优化算法的无迹粒子滤波方法。第一步,初始时刻,由初始分布p(x0)中得到一组初始粒子,并设置其初始的均值和方差;第二步,重要性采样;第三步,权值更新;第四步,得到归一化的权值;第五步,再采样;第六步,状态更新;第七步,求解当前时刻的全局最优解G(t)。本发明通过粒子群优化过程,使得粒子集在权值更新之前更加趋向于高似然区域,从而在一定程度上解决了样本贫化问题。优化过程使得远离真实状态的粒子趋向真实状态出现概率较大的区域,提高了每个粒子的作用效果。与其他智能优化算法相比,粒子群优化算法具有容易实现且没有许多参数需要调整的优势,并且降低了精确估计所需要的粒子数,提高了滤波的计算效率。
文档编号G06N3/12GK101826852SQ20101012157
公开日2010年9月8日 申请日期2010年3月11日 优先权日2010年3月11日
发明者杨萌, 高伟, 郝燕玲 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1