哈尔滨工业大学学报  2020, Vol. 52 Issue (2): 186-192  DOI: 10.11918/201903219
0

引用本文 

朱震曙, 蒋长辉, 薄煜明, 吴盘龙. 磷虾群优化的改进粒子滤波算法[J]. 哈尔滨工业大学学报, 2020, 52(2): 186-192. DOI: 10.11918/201903219.
ZHU Zhenshu, JIANG Changhui, BO Yuming, WU Panlong. Improved particle filter algorithm optimized by krill herd[J]. Journal of Harbin Institute of Technology, 2020, 52(2): 186-192. DOI: 10.11918/201903219.

基金项目

国家自然科学基金(61473153);航空科学基金(2016ZC59006)

作者简介

朱震曙(1987—), 男, 博士研究生;
薄煜明(1965—), 男, 研究员, 博士生导师

通信作者

薄煜明, byming@njust.edu.cn

文章历史

收稿日期: 2019-03-31
磷虾群优化的改进粒子滤波算法
朱震曙, 蒋长辉, 薄煜明, 吴盘龙     
南京理工大学 自动化学院,南京 210094
摘要: 标准的粒子滤波存在着权值退化问题,重采样可以解决权值退化问题,但也会带来样本贫化现象.为解决样本贫化问题,提出了一种利用磷虾群优化的改进粒子滤波算法.该算法结合粒子滤波的求解过程,以磷虾个体的诱导、觅食和随机扩散运动引导粒子向高似然区域移动.首先,将粒子滤波中粒子的状态值作为磷虾群的个体位置,从而将粒子的状态估计转化为磷虾群的寻优;其次,针对粒子滤波的特点,分析了磷虾算法中可以改进的参数,对磷虾算法中个体诱导、觅食运动的权值设计了新的动态更新策略,保证算法前期全局快速寻优后期局部精确寻优,同时为保持粒子的多样性,对磷虾个体进行遗传算法中的交叉操作,并设计了新的交叉概率更新公式;最后,在标准磷虾算法的基础上分析了改进算法的收敛性, 并选用一种单静态非增长模型进行仿真试验.仿真结果表明, 所提出的算法与标准粒子滤波以及粒子群、蝙蝠算法优化的粒子滤波相比具有更高的状态估计精度和更小的均方根误差,粒子的分布更合理.
关键词: 磷虾算法    粒子滤波    样本贫化    非线性    交叉    多样性    
Improved particle filter algorithm optimized by krill herd
ZHU Zhenshu, JIANG Changhui, BO Yuming, WU Panlong     
School of Automation, Nanjing University of Science and Technology, Nanjing 210094, China
Abstract: The common problem with standard particle filters is weight degradation. Resampling can solve this problem, but it causes another noted hindrance—sample impoverishment. To overcome sample impoverishment, an improved particle filter algorithm based on krill herd optimization is proposed. The algorithm combines the solving process of particle filters and guides the particles to move to the high likelihood area by the induced motion, foraging motion, and physical diffusion of krill individuals. Firstly, the state values of particles were regarded as the individual positions of the krill herd. Thus the state estimation of particles was transformed into the optimization of krill herd. Secondly, according to the characteristics of the particle filter, parameters that can be improved in the krill herd algorithm were analyzed. A new dynamic updating strategy was designed for the weights of the individual induced motion and foraging motion to ensure fast global optimization in the early stage and accurate local optimization in the later stage. At the same time, to maintain the diversity of particles, the crossover operation in the genetic algorithm was carried out on krill individuals, and a new crossover probability updating formula was designed for krill individuals. Then, the convergence of the improved algorithm was analyzed based on the standard krill herd algorithm. A single static non-growth model was selected for simulation. The simulation results show that the proposed algorithm has a higher accuracy of state estimation, smaller root mean square error, and more reasonable particle distribution compared with standard particle filters, particle swarm optimization algorithm optimized particle filters (PSO-PF), and bat algorithm optimized particle filters (BA-PF).
Keywords: krill herd algorithm    particle filter    sample impoverishment    nolinear    crossover    diversity    

在实际工程应用中,非线性系统无处不在.在这种应用背景下,基于卡尔曼滤波理论的滤波算法性能大大降低.

粒子滤波是一种基于蒙特卡罗方法和贝叶斯估计的统计滤波算法,利用大量带权值的随机样本来逼近状态.相对于传统的状态估计方法,粒子滤波没有状态函数、观测函数非线性和非高斯的限制,因此在非线性和非高斯的系统估计中有着广泛应用

标准的粒子滤波算法中,会出现权值退化现象[1-3],表现为经过多次递推以后,只有少量粒子的权值较大,其余粒子的权值几乎为零.重采样可以解决权值退化问题,但也会带来样本贫化现象,即高权值粒子被过度复制,有效粒子数减少,导致粒子的整体信息容量降低.针对上述问题,国内外许多学者进行了大量的研究.文献[4]提出一种类电磁机制优化的粒子滤波,将采样粒子看成具有相互吸引和排斥的电荷粒子,通过电磁吸引力引导粒子运动,但是本质上仍然无法完全消除由重采样造成的样本贫化问题.文献[5]提出了基于引力场的粒子滤波算法,通过引力作用将粒子集中于高似然区域;文献[6]提出了一种自适应智能重采样粒子滤波算法,将粒子按权值大小分为两个子集;文献[7]采用了平方根嵌入式容积卡尔曼滤波产生的重要性密度函数,以此来提高滤波精度,这些算法在过程中都存在淘汰部分有效权值粒子的可能性,无法完全解决样本贫化问题.

近年来基于智能算法优化的粒子滤波成为一个重要的研究方向.很多学者将遗传算法、模拟退火算法、粒子群算法等引入到粒子滤波的重采样过程中,利用智能算法寻优引导粒子向高似然区域运动,这样可以提高粒子滤波的效率同时保持粒子的多样性.文献[8]提出一种利用遗传算法中变异、交叉操作的粒子滤波算法,修正权值较小的粒子,仿真表明该算法可以有效地保持粒子的多样性.文献[9]将粒子群算法引入到粒子滤波,文献[10]将蝙蝠算法引入到粒子滤波.文献[11]将一种改进的人工萤火虫算法和粒子滤波成功的结合,有效地提高了预测精度.群智能算法如果不针对粒子滤波的求解过程进行寻优策略的改进,就不能提高算法后期的寻优能力,在迭代过程容易陷入局部最优,如何快速寻找到全局最优解是亟待解决的问题.

磷虾算法[12] (krill herd algorithm,KH)是由Gandomi和Alavi在2012年提出的一种群体智能优化算法.该算法来自于模拟地球南极海洋中的磷虾群体的行为,文献[12]通过仿真实验和常见的智能算法进行了对比.结果表明,磷虾算法具有更好的鲁棒性和全局搜索能力.但是直接将磷虾算法和粒子滤波结合容易出现局部最优现象,影响滤波精度.文献[13]提出了一种磷虾群免疫粒子滤波算法,该算法使用人工免疫算法中的变异操作优化了磷虾个体的分布情况,并将改进的算法用于粒子滤波中.但是根据文献[12]的表述,只使用遗传算法中的交叉操作效果更好.此外,该算法并未对磷虾个体位置变化的过程进行改进,无法在粒子滤波的不同时刻实时调整,影响了算法的性能.文献[14]在每次迭代中检测磷虾个体的运动状态来动态调整惯性权重,减少算法的无效迭代次数,但这种调整并不完全适用于粒子滤波.文献[15]将磷虾种群分为不同的子种群,进行二次寻优,提高了磷虾算法的局部收敛精度,但会降低收敛速度,不适合粒子滤波.

本文结合粒子滤波和磷虾算法的特点,提出了一种改进的磷虾算法优化粒子滤波(improved krill herd algorithm optimized particle filter,IKH-PF),动态地更新磷虾算法中诱导和觅食行为中的权值,并将改进的遗传算法交叉操作引入磷虾个体的更新过程,保证前期快速全局寻优,后期高精度局部寻优,提高了粒子滤波的精度,同时在寻优过程中并未舍弃低权值粒子,保存了全部粒子的信息,有效解决了样本贫化问题.

1 粒子滤波算法

粒子滤波基本思想是采用一组状态空间中的随机样本对条件后验概率密度函数进行近似,利用样本均值代替传统的积分运算,从而获得对非线性系统的状态估计如下:

$ {x_k} = f\left( {{x_{k - 1}},{v_{k - 1}}} \right), $ (1)
$ {y_k} = h\left( {{x_k},{w_k}} \right). $ (2)

式中:xk为状态值;f(·)为状态函数;vk-1为系统噪声;yk为观测值;h(·)为观测函数;wk为量测噪声.

假设状态初始概率密度p(x0|y0)=p(x0),则预测方程为

$ p\left( {{x_k}|{y_{{y_1}:k - 1}}} \right) = \int p \left( {{x_k}|{x_{k - 1}}} \right)p\left( {{x_{k - 1}}|{y_{1:k - 1}}} \right){\rm{d}}{x_{k - 1}}. $

状态的更新方程为

$ p\left( {{x_k}|{y_{1:k}}} \right) = \frac{{p\left( {{y_k}|{x_k}} \right)p\left( {{x_k}|{y_{1:k - 1}}} \right)}}{{p\left( {{y_k}|{y_{1:k - 1}}} \right)}}, $

其中

$ p\left( {{y_k}|{y_{1:k - 1}}} \right) = \int p \left( {{y_k}|{x_k}} \right)p\left( {{x_k}|{y_{1:k - 1}}} \right){\rm{d}}{x_k}. $

重要性函数q(x0:k|y1:k)可以改写成如下形式:

$ q\left( {{x_{0;k}}|{y_{1;k}}} \right) = q\left( {{x_0}} \right)\prod\limits_{j = 1}^k q \left( {{x_j}|{x_{0:j - 1}},{y_{1:j}}} \right), $

则权值公式如下:

$ {w_k} = \frac{{p\left( {{y_{1:k}}|{x_{0:k}}} \right)p\left( {{x_{0:k}}} \right)}}{{q\left( {{x_k}|{x_{0:k - 1}},{y_{1:k}}} \right)q\left( {{x_{0:k - 1}},{y_{1:k}}} \right)}}. $ (3)

p(xk-1|y1: k-1)中采样N个样本点{xk-1i}i=1N,得到的概率密度函数如下:

$ p\left( {{x_{k - 1}}|{y_{1:k - 1}}} \right) = \sum\limits_{i = 1}^N {w_{k - 1}^i} \delta \left( {{x_{k - 1}} - x_{k - 1}^i} \right), $

式中δ(·)为狄克拉函数,重要性权值更新如下:

$ w_k^i = w_{k - 1}^i\frac{{p\left( {{y_k}|x_k^i} \right)p\left( {x_k^i|x_{k - 1}^i} \right)}}{{q\left( {x_k^i|x_{k - 1}^i,{y_k}} \right)}}. $

当粒子分布不满足贝叶斯滤波理论时,对粒子权值进行补偿和更新为

$ w_k^i = \frac{{p\left( {{x_k} = x_k^i|{y_{1:k - 1}}} \right)p\left( {{y_k}|{x_k} = s_k^i} \right)}}{{q\left( {s_k^i} \right)}}. $ (4)

式中skik时刻的粒子i.

最后进行权值归一化,然后输出估计的状态如下:

$ w_k^i = w_k^i/\sum\limits_{i = 1}^N {w_k^i} , $ (5)
$ \tilde x = \sum\limits_{i = 1}^N {w_k^i} x_k^i. $ (6)
2 磷虾算法

磷虾算法中,磷虾个体的位置变化主要取决于以下3个方面: 1)磷虾个体间的诱导运动;2)磷虾个体的觅食运动;3)磷虾个体的随机扩散运动.

具体公式如下

$ \Delta {\mathit{\boldsymbol{X}}_i} = {N_i} + {\mathit{\boldsymbol{F}}_i} + {D_i}. $ (7)

式中:Δ Xi为第i个磷虾个体的位置变化; Ni为磷虾个体受诱导运动引起的位置变化;Fi为磷虾个体的觅食运动引起的位置变化;Di为个体的随机扩散运动引起的位置变化.

2.1 磷虾个体间的诱导运动

磷虾个体受到其他个体影响的行为可以表示为:

$ N_i^{{\rm{new }}} = {N^{\max }}{\mathit{\boldsymbol{\alpha }}_i} + {w_n}N_i^{{\rm{old}}}, $ (8)
$ {\mathit{\boldsymbol{\alpha }}_i} = \mathit{\boldsymbol{\alpha }}_i^{{\rm{local}}} + \mathit{\boldsymbol{\alpha }}_i^{{\rm{target}}}. $ (9)

式中:Nmax为最大诱导速度;αi为个体游动方向向量;αilocal为该磷虾相邻个体运动影响的矢量和;αitarget为最优个体提供的方向向量;Niold为上次产生的个体位置变化;wn为诱导权值,取值范围为[0, 1].

在磷虾群体中,相邻个体之间的影响定义如下:

$ \mathit{\boldsymbol{\alpha }}_i^{{\rm{local}}} = \sum\limits_{j = 1}^{NN} {{{\hat K}_{ij}}} {{\mathit{\boldsymbol{\hat X}}}_{ij}}, $ (10)
$ {{\hat K}_{ij}} = \frac{{{K_i} - {K_j}}}{{{K^{{\rm{worst}}}} - {K^{{\rm{best}}}}}}, $ (11)
$ {{\mathit{\boldsymbol{\hat X}}}_{ij}} = \frac{{{\mathit{\boldsymbol{X}}_j} - {\mathit{\boldsymbol{X}}_i}}}{{\left\| {{\mathit{\boldsymbol{X}}_j} - {\mathit{\boldsymbol{X}}_i}} \right\| + \varepsilon }}. $ (12)

式中:Kworst为目前为止磷虾群最差的适应度值;Kbest为目前为止最好的适应度值;Ki为第i个磷虾的适应值;Kj为第j个磷虾个体的适应度值;XiXj为磷虾个体的位置;${\mathit{\boldsymbol{\widehat X}}_{ij}}$为磷虾个体之间的距离,为了避免可能出现的异常,在分母中加入一个微小的整数εNN为相邻个体的数量.

αitarget可表示为:

$ \mathit{\boldsymbol{\alpha }}_i^{{\rm{target}}} = {C^{{\rm{best}}}}{{\hat K}_{i,{\rm{best}}}}{{\mathit{\boldsymbol{\hat X}}}_{i,{\rm{best}}}}, $
$ {C^{{\rm{best}}}} = 2\left( {{\rm{rand}} + \frac{I}{{{I_{\max }}}}} \right). $

式中:rand为0和1之间的随机数;I为当前迭代次数;Imax为最大迭代次数.

2.2 磷虾个体的觅食运动

磷虾个体的觅食行为引起的位置变化可以表示为

$ {\mathit{\boldsymbol{F}}_i} = {V_f}\left( {\mathit{\boldsymbol{\beta }}_i^{{\rm{food}}} + \mathit{\boldsymbol{\beta }}_i^{{\rm{best}}}} \right) + {w_f}\mathit{\boldsymbol{F}}_i^{{\rm{old}}}. $ (13)

式中:Vf为个体觅食速度;wf为觅食权值,取值范围[0, 1];Fiold为前一次的磷虾个体觅食运动向量;βifood为食物位置对第i个磷虾的影响因子,可表示为:

$ \mathit{\boldsymbol{\beta }}_i^{{\rm{food}}} = 2\left( {1 - \frac{I}{{{I_{\max }}}}} \right){{\hat K}_{i,{\rm{food}}}}{{\mathit{\boldsymbol{\hat X}}}_{i,{\rm{food}}}}, $
$ {\mathit{\boldsymbol{X}}_{{\rm{food}}}} = \frac{{\sum\limits_{i = 1}^N {\frac{1}{{{K_i}}}} {\mathit{\boldsymbol{X}}_i}}}{{\sum\limits_{i = 1}^N {\frac{1}{{{K_i}}}} }}. $

式中:${\widehat K_{i, {\rm{food}}}}$${\mathit{\boldsymbol{\widehat X}}_{i, {\rm{food}}}}$可按照式(11)、(12)展开;βibest为第i个磷虾的最优适应度位置对该磷虾的影响因子,可表示为

$ \mathit{\boldsymbol{\beta }}_i^{{\rm{best}}} = {{\hat K}_{i,i{\rm{best}}}}{{\mathit{\boldsymbol{\hat X}}}_{i,i{\rm{best}}}}. $
2.3 磷虾个体随机扩散运动

磷虾个体的物理随机扩散过程可以表示为

$ {D_i} = {D^{\max }}\left( {1 - \frac{I}{{{I_{\max }}}}} \right)\mathit{\boldsymbol{\delta }}. $ (14)

式中:Dmax为最大扩散速度;δ为随机的矢量方向,δ ∈[-1, 1].

3 磷虾算法优化的粒子滤波

在磷虾算法中,将粒子滤波中粒子的状态值作为磷虾群的个体位置,则个体适应度值最好的磷虾相当于权值最高的粒子.由此,粒子滤波的求解过程就可以转化为磷虾群的寻优过程.针对粒子滤波的特点,需要对磷虾算法进行改进,来提高算法的寻优效率和保持粒子多样性.

3.1 诱导权值和觅食权值的改进

根据文献[16]的证明,磷虾个体适应度值可以表示为

$ \begin{array}{*{20}{c}} {f\left( {x_i^{t + 1}} \right) = f\left( {x_i^t} \right) + {{\left[ {\nabla f\left( {x_i^t} \right)} \right]}^{\rm{T}}}\left( {{N^{\max }}\mathit{\boldsymbol{\alpha }}_i^t + {w_n}N_i^t + } \right.}\\ {\left. {{V_f}\mathit{\boldsymbol{\beta }}_i^t + {w_f}\mathit{\boldsymbol{F}}_i^t + D_i^{t + 1}} \right)\Delta t.} \end{array} $

式中:f(xit+1)为当前的磷虾个体更新后的适应度值;f(xit)为当前磷虾的适应度值;Nmax αit+Vf βit+ Dit+1由磷虾个体运动的规律决定,无法动态调整,只有惯性分量wn Nit+wf Fit可以随时调整.当wnwf取值较大时,适应度值变化较大,算法具有很强的全局寻优能力,但局部寻优精度会降低;当wnwf取值较小时,局部寻优精度很强,但全局寻优能力较弱.在磷虾算法寻优前期由于粒子状态值的分布本身就具有一定的合理性,适当降低局部寻优精度对最终滤波精度影响不是很大;同时,磷虾算法寻优过程中的迭代次数不会太多,前期需要较强的全局寻优能力.在磷虾算法寻优后期,需要增强局部寻优能力来提高最终的滤波精度.

磷虾算法参数调整研究还很少,IKH-PF在求解过程中用到的适应度函数都为单峰值函数,本文主要参考文献[16]对于磷虾算法参数在单峰值函数下的测试结果,对权值wnwf进行动态调整,设计了新的更新策略.当权值wnwf取0.9时,在前几次迭代中,磷虾群就能迅速寻优;当权值wnwf取0.1和0.3之间的值时,磷虾群的寻优结果稳定且准确;当权值采用线性递减时,算法寻优结果平稳,鲁棒性强.综上所述,本文提出线性函数和倒数函数相结合的非线性递减策略,更新公式如下:

$ {w_n} = {w_f} = {w_1}\left( {1 - \frac{I}{{{I_{\max }}}}} \right) + \frac{{{w_2}}}{I} + 0.1. $ (15)

式中:IImax分别为当前迭代次数和最大迭代次数;w1w2为需要设置的参数.

w1=0.2, w2=0.6, Imax=20时,得到的权值变化曲线如图 1所示.

图 1 权值变化曲线 Fig. 1 Variation curve of weight value

从曲线图可以看出,在前5次迭代中,权值迅速减少,后10次迭代权值近似线性递减,符合之前的理论分析.

3.2 磷虾群多样性改进

为了保持磷虾种群的多样性,需要将遗传算法引入磷虾种群寻优中.适用于磷虾算法的遗传算法包括交叉和变异操作,只执行交叉操作的效果更好[12].经典的遗传算法采用固定的交叉概率,但这种策略并不符合粒子滤波过程对于磷虾算法寻优的要求.因此,本文提出一种改进的交叉概率变化公式,提高磷虾群的多样性,最终提高算法的性能并保持粒子的多样性.

交叉概率可以控制磷虾种群新个体产生的速度.针对粒子滤波的应用环境,寻优初期,交叉概率取较大值,提高磷虾种群新个体产生的速度来保持种群的多样性,从而提高算法前期的全局寻优速度;寻优后期,交叉概率取较小值,保存较优的磷虾个体,从而提高局部收敛能力.由此设计的交叉概率更新公式如下:

$ {P_C} = {P_{C0}} \cdot {{\rm{e}}^{ - 2I/{I_{\max }}}}, $ (16)

式中PC0为需要设置的参数.

PC0=0.9,Imax=20时,得到的交叉概率变化曲线如图 2所示.

图 2 交叉概率变化曲线 Fig. 2 Variation curve of crossover probability

图 2可以看出,随着迭代次数的增加,交叉概率逐渐减小,符合粒子滤波求解过程的要求,同时在后期仍然能保持粒子的多样性.

3.3 算法收敛性分析

在磷虾算法中,令d(x(t), x*(t))表示当前磷虾个体位置与全局最优位置之间的距离,简化表示为d(x(t)),当x(t)≠x*(t)时,d(x(t))>0.对于一次迭代的解集X(t)={x(1), x(2), …, x(N)},令d(x(t))=min{d(x(t)), xX},可以得到每次迭代种群间的移动Δd(x(t))=d(x(t+1))-d(x(t)).以此定义迭代终止时间为

$ \tau = \min \{ t:d(x(t)) = 0\} , $

式中τ为第1个磷虾个体到达全局最优位置的时刻.如果E[τ]存在有限值,则算法最终就是全局收敛的.

文献[15]已经证明了标准磷虾算法满足以下两个约束条件,并进一步证明在约束条件下算法是收敛的.

条件1  存在一个规模为m的多项式λ0(m)>0,使得d(x(t))≤λ0(m).

该条件说明每代磷虾个体和全局最优位置之间的距离在一个多项式范围内.

条件2  存在一个规模为m的多项式λ1(m)>0,使得:

$ E[d(x(t)) - d(x(t + 1))|d(x(t))] \ge \frac{1}{{{\lambda _1}(m)}}. $

该条件说明当磷虾个体不断接近全局最优位置时,种群的移动限定在一个多项式倒数的范围内.

满足以上两个条件时,可以给出磷虾算法的时间估计E[τ]为

$ E[\tau |d(x(0)) > 0] \le \lambda (m), $

因此,算法是收敛的.

本文对于诱导和觅食运动中权值更新策略的改进,只是改变了不同时期磷虾个体的运动速度,权值本身的取值仍在基本磷虾算法的范围之内,因此这项改进使算法仍然满足条件1和2;磷虾群多样性改进中对于交叉概率更新的改进,同样只是在不同时期采用不同的交叉概率,以增强群体的多样性,对磷虾群整体的移动没有改变,因此没有改变条件1和条件2.综上所述,本文提出的IKH-PF在迭代过程中,磷虾群是朝着全局最优位置移动的,存在可估的终止时间,算法是收敛的.

3.4 算法实现步骤

改进的磷虾算法优化的粒子滤波具体实现如下:

步骤1  初始化.在k=0时刻采样N个粒子{x0i, i=1, …, N}.重要性密度函数可以采用如下公式表示:

$ x_k^i \sim q\left( {x_k^i|x_{k - 1}^i,{z_k}} \right) = p\left( {x_k^i|x_{k - 1}^i} \right). $

步骤2  预测.利用式(1)的状态函数和式(2)的观测函数计算下一时刻的粒子状态值xki和观测值yki,利用式(3)计算每个粒子的权值wki,将每个粒子的状态值xki作为每个磷虾的位置Xi.

步骤3  更新粒子状态.根据提出的式(15)计算诱导和觅食权值,然后按照式(8)、(13)、(14)计算磷虾个体的诱导、觅食和扩散运动,最后根据式(7)计算每次迭代中磷虾个体的位置变化.

步骤4  按照式(16)计算交叉概率,对磷虾群个体进行交叉操作.

步骤5  设置一个迭代次数,判断是否达到设置的迭代次数,否则执行步骤3.

步骤6  重新计算每个粒子的权值,按照式(4)对粒子权值进行补偿和更新,按照式(5)对权值归一化处理,最后按照式(6)输出每个粒子当前时刻估计的状态值.

步骤7  重复执行步骤2~6,直到k=NK,完成NK个时刻的粒子状态估计.

由于磷虾算法的收敛性强,IKH-PF的终止条件为达到设置的迭代次数,使得磷虾个体向最优区域移动,但避免最终收敛.这样不仅可以保证粒子全部分布于高似然区域附近,保持粒子的多样性,同时也可以降低算法的复杂度.

4 仿真实验和分析

为了分析和验证算法的性能,选取一种单静态非增长模型,仿真环境为Matlab 2016a.

仿真实验中采用的单静态非增长模型的状态方程和观测方程如下:

$ \begin{array}{*{20}{c}} {x(t) = 0.5x(t - 1) + \frac{{25x(t - 1)}}{{1 + {{[x(t - 1)]}^2}}} + }\\ {8\cos [1.2(t - 1)] + \omega (t),}\\ {z(t) = \frac{{x{{(t)}^2}}}{{20}} + v(t).} \end{array} $

式中:ω(t)、v(t)均为零均值高斯白噪声,ω(t)的方差Q在不同仿真中分别设为1和5,v(t)的方差R=1.在磷虾算法中,仅对粒子状态值进行估计,所有参数均没有单位.最大诱导速度Nmax设为0.2,个体觅食速度Vf设为0.1,最大随机扩散速度Dmax设为0.05,最大迭代次数Imax=20,w1w2分别设置为0.2和0.6.

为了进一步验证算法的性能,在仿真实验中同时和标准的粒子滤波、粒子群优化粒子滤波(PSO-PF)和蝙蝠算法优化粒子滤波(BA-PF)进行了对比.

4.1 算法的精度测试

算法的精度测试主要在以下3个条件下进行:

1) 粒子数N=20,Q=1,仿真结果和估计误差绝对值如图 34所示.

图 3 滤波状态估计(N=20,Q=1) Fig. 3 State estimation of different filters(N=20, Q=1)
图 4 估计误差绝对值(N=20,Q=1) Fig. 4 Absolute value of estimation error(N=20, Q=1)

2) 粒子数N=50,Q=1,估计误差绝对值如图 5所示.

图 5 估计误差绝对值(N=50,Q=1) Fig. 5 Absolute value of estimation error(N=50, Q=1)

3) 粒子数N=100,Q=1,估计误差绝对值如图 6所示.

图 6 估计误差绝对值(N=100,Q=1) Fig. 6 Absolute value of estimation error(N=100, Q=1)

不同条件下整体误差采用均方根误差为

$ {\delta _{{\rm{RMSE}}}} = \sqrt {\frac{1}{N}\sum\limits_k^N {{{\left( {{x_k} - {{\hat x}_k}} \right)}^2}} } . $

式中:xk为粒子状态真实值,${\widehat x_k}$为估计值.在Q不同的条件下进行50次独立仿真之后对所有的均方根误差取平均值,具体结果见表 1.

表 1 整体误差对比 Tab. 1 Comparison of simulation results

图 3~6可以看出,在相同的粒子数条件下,相对于标准PF、PSO-PF和BA-PF,IKH-PF具有更好的状态估计精度,这是因为磷虾算法迭代寻优之后的粒子分布更加合理,从而提高了粒子滤波的精度.从图 4~6的误差绝对值可以看出,相对于PSO-PF和BA-PF,IKH-PF由于改进了诱导和觅食权值更新策略,在一些容易陷入局部最优的位置,具有更好的收敛精度.从表 1的数据可以看出,当实验次数为50次时,本文提出的IKH-PF相对于其他3种算法,整体误差是最小的;当噪声方差变大时,IKH-PF误差也没有明显变化,体现了该算法的稳定性.由于动态调整了权值和交叉概率,IKH-PF在粒子数为20时的精度已经高于其他算法在粒子数更多情况下的精度,体现了算法的运行效率.

4.2 粒子多样性测试

为测试粒子的多样性,将仿真的最大运行时间步长设置为50,粒子数设置为100.这里选取了运行步数k=8,27,47时的粒子分布情况.粒子分布情况如图 7~9所示.

图 7 k=8时粒子分布 Fig. 7 Particle distribution(k=8)
图 8 k=27时粒子分布 Fig. 8 Particle distribution(k=27)
图 9 k=47时粒子分布 Fig. 9 Particle distribution(k=47)

图 7~9可以看出,在标准的粒子滤波算法中,由于重采样时只采用权值较大的粒子进行状态估计,导致粒子分布于少数状态值上,出现了样本贫化现象,不利于整体状态估计.对于进行了交叉操作的磷虾算法,其优化的粒子大部分处于高似然区附近,也有少部分粒子分布于其他区域,整体保持了粒子的多样性,有效地避免了样本贫化现象.

5 结论

1) 为解决粒子滤波中的样本贫化问题,本文结合粒子滤波和磷虾算法的特点,采用改进的磷虾算法优化粒子滤波.

2) 针对粒子滤波,在磷虾算法中改进了诱导和觅食运动的权值更新策略;同时为了保持粒子的多样性,对磷虾个体进行交叉操作,设计了新的交叉概率更新公式,以磷虾群的寻优引导粒子向高似然区域移动.

3) 仿真结果表明,提出的IKH-PF相对于标准的粒子滤波、PSO-PF和BA-PF具有更高的状态估计精度,同时在运行后期能够保持较好的粒子多样性,避免了样本贫化现象.

参考文献
[1]
MAROULAS V, STINIS P. Improved particle filters for multi-target tracking[J]. Journal of Computational Physics, 2012, 231(2): 602. DOI:10.1016/j.jcp.2011.09.023
[2]
MARCOS N, ANDONI C, OIHANA O, et al. Real-time lane tracking using Rao-Blackwellized particle filter[J]. Journal of Real- Time Image Processing, 2016, 11(1): 179. DOI:10.1007/s11554-012-0315-0
[3]
YIN Shen, ZHU Xiangping. Intelligent particle filter and its application to fault detection of nonlinear system[J]. IEEE Transactions on Industrial Electronics, 2015, 62(6): 3852. DOI:10.1109/TIE.2015.2399396
[4]
陈世明, 袁军锋, 陈小玲, 等. 基于类电磁机制优化的粒子滤波算法[J]. 华中科技大学学报(自然科学版), 2013, 41(12): 81.
CHEN Shiming, YUAN Junfeng, CHEN Xiaolin, et al. Optimizing particle filter algorithm using electromagnetism-like mechanism[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2013, 41(12): 81. DOI:10.13245/j.hust.2013.12.013
[5]
陈世明, 肖娟, 李海英, 等. 基于引力场的粒子滤波算法[J]. 控制与决策, 2017, 32(4): 709.
CHEN Shiming, XIAO Juan, LI Haiying, et al. Particle filter algorithm based on gravitation field[J]. Control and Decision, 2017, 32(4): 709. DOI:10.13195/j.kzyjc.2016.0165
[6]
马成, 朱奕, 伞冶. 一种基于区间估计的粒子滤波算法[J]. 哈尔滨工业大学学报, 2013, 45(11): 8.
MA Cheng, ZHU Yi, SAN Ye. Particle filter algorithm based on interval estimation[J]. Journal of Harbin Institute of Technology, 2013, 45(11): 8. DOI:10.11918/j.issn.0367-6234.2013.11.002
[7]
刘华, 缪晨, 吴文. 平方根嵌入式容积卡尔曼粒子滤波算法[J]. 南京理工大学学报(自然科学版), 2015, 34(4): 471.
LIU Hua, MIAO Chen, WU Wen. Square-root imbedded cubature particle filter[J]. Journal of Nanjing University of Science and Technology (Natural Science Edition), 2015, 34(4): 471. DOI:10.14177/j.cnki.32-1397n.2015.39.04.015
[8]
张民, 贾海涛, 沈震. 基于遗传算法改进的粒子滤波重采样模型[J]. 电子科技大学学报, 2015, 44(3): 344.
ZHANG Min, JIA Haitao, SHEN Zhen. Improved resampling procedure based on genetic algorithm in particle filter[J]. Journal of University of Electronic Science and Technology of China, 2015, 44(3): 344. DOI:10.3969/j.issn.1001-0548.2015.03.005
[9]
王尔申, 曲萍萍, 庞涛, 等. 粒子群优化粒子滤波的接收机自主完好性监测[J]. 北京航空航天大学学报, 2016, 42(12): 2572.
WANG Ershen, QU Pingping, PANG Tao, et al. Receiver autonomous integrity monitoring based on particle swarm optimization particle filter[J]. Journal of Beijing University of Aeronautics and Astronautics, 2016, 42(12): 2572. DOI:10.13700/j.bh.1001-5965.2016.0362
[10]
陈志敏, 田梦楚, 吴盘龙, 等. 基于蝙蝠算法的粒子滤波法研究[J]. 物理学报, 2017, 66(5): 050502.
CHEN Zhimin, TIAN Mengchu, WU Panlong, et al. Intelligent particle filter based on bat algorithm[J]. Acta Physica Sinica, 2017, 66(5): 050502. DOI:10.7498/aps.66.050502
[11]
田梦楚, 薄煜明, 陈志敏, 等. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(1): 89.
TIAN Mengchu, BO Yuming, CHEN Zhimin, et al. Firefly algorithm intelligence optimized particle filter[J]. Acta Automatica Sinica, 2016, 42(1): 89. DOI:10.16383/j.aas.2016.c150221
[12]
GANDOMI A H, ALAVI A H. Krill herd: A new bio-inspired optimization algorithm[J]. Communications in Nonlinear Science & Numerical Simulation, 2012, 17(12): 4831. DOI:10.1016/j.cnsns.2012.05.010
[13]
张智, 姜秋喜, 徐梁昊. 磷虾群免疫粒子滤波的机载单站无源定位算法[J]. 火力与指挥控制, 2015, 40(4): 92.
ZHANG Zhi, JIANG Qiuxi, XU Lianghao. Airborne single observer passive location based on krill herd immune particle filter[J]. Fire Control & Command Control, 2015, 40(4): 92. DOI:10.3969/j.issn.1002-0640.2015.04.023
[14]
郭伟, 高岳林, 刘沛. 一种自适应惯性权重的改进磷虾群算法[J]. 太原理工大学学报, 2016, 47(5): 651.
GUO Wei, GAO Yuelin, LIU Pei. An improved krill herd algorithm with adaptive inertia weight[J]. Journal of Taiyuan University of Technology, 2016, 47(5): 651. DOI:10.16355/j.cnki.issn1007-9432tyut.2016.05.017
[15]
刘振, 鲁华杰, 任建存. 协同进化引力磷虾觅食算法[J]. 工程科学与技术, 2018, 50(6): 217.
LIU Zhen, LU Huajie, REN Jiancun. Co-evolutionary gravitational krill herd algorithm[J]. Advanced Engineering Sciences, 2018, 50(6): 217. DOI:10.15961/j.jsuese.201800012
[16]
郭伟.磷虾群优化算法的研究[D].银川: 北方民族大学, 2016
GUO Wei. Research on krill herd optimization algorithm[D]. Yinchuan: North Minzu University, 2016