1、2023 年第 5 期仪 表 技 术 与 传 感 器InstrumentTechniqueandSensor2023No 5基金项目:宁 夏 自 然 科 学 基 金 项 目(2021AAC03061,2022AAC03118);国家自然科学基金项目(61863030)收稿日期:20221104基于改进麻雀搜索算法的粒子滤波研究石硬,韩玉兰,薛丽(宁夏大学物理与电子电气工程学院,宁夏银川750021)摘要:针对标准粒子滤波存在的粒子贫化现象提出了一种基于改进麻雀搜索算法的粒子滤波算法(SSAPF)。该算法将粒子状态值看作麻雀个体位置,使粒子滤波的状态估计转变成麻雀种群的觅食寻优。首先,使用 Lo
2、gistictent map 初始化分布;其次,加入比例系数解决当最大迭代次数较小时发现者收敛速度过快的问题,同时受高斯变异与自适应权重的启发提出一种新的发现者更新策略;然后,改进追随者更新公式,使种群分布更契合粒子滤波的求解思想;最后,引入随机游走策略有效帮助算法跳出局部最优。仿真结果证明:SSAPF 的均方根误差更小,粒子的分布更合理,并且减少了状态估计所需样本数量。关键词:粒子滤波;粒子贫化;麻雀搜索算法;重采样;自适应权重;状态估计中图分类号:TP18文献标识码:A文章编号:10021841(2023)05007608esearch on Particle Filter Based o
3、n Improved Sparrow Search AlgorithmSHI Ying,HAN Yu-lan,XUE Li(School of Physics and Electronic-Electrical Engineering,Ningxia University,Yinchuan 750021,China)Abstract:A particle filtering algorithm(SSAPF)based on the improved sparrow search algorithm was proposed to solvethe particle dilution in th
4、e standard particle filtering In this algorithm,the particle state value was regarded as the individual posi-tion of sparrow,and the state estimation of particle filter was transformed into the optimization of sparrow population foragingFirst,the distribution was initialized using Logistic-tent map
5、Secondly,a proportional coefficient was added to solve the problemthat the discoverer convergence rate is too fast when the maximum number of iterations is small,and a new discoverer updatestrategy was proposed inspired by Gaussian variation and adaptive weight Then,the follower update formula was i
6、mproved to makethe population distribution more consistent with the solution idea of particle filter Finally,the random walk strategy was intro-duced to help the algorithm escape from the local optimal Simulation results show that the root mean square error of SSAPF issmaller,the distribution of par
7、ticles is more reasonable,and the number of samples required for state estimation is reducedKeywords:particle filtering;particle impoverishment;sparrow search algorithm;resampling;adaptive weight;state estimation0引言粒子滤波1(particle filter,PF)技术在非线性、非高斯系统问题上表现出来的卓越性与优异性使其被广泛应用于各个领域,如雷达跟踪2、工业领域的机器寿命预测3
8、与电池寿命预测4、交通管制领域的人车追踪56、室内机器人定位78 等。但是粒子滤波存在退化现象9,引入重采样过程在减轻退化的同时又带来了粒子贫化现象10。使用大量样本虽可得到较好的预测结果但需较大的计算量,影响算法运行效率从而降低了算法性能。相关研究学者针对粒子贫化现象进行了大量的研究与改进1113,虽然相关改进算法都针对原有粒子滤波有所改进,但是改进后的算法仍无法完全避免重采样过程。群智能优化算法的提出为改进粒子滤波的状态估计过程提供了新的思路,目前已经有多种群智能优化算法成功应用于粒子滤波1418,但群智能优化算法本身也存在相应的缺点,如易局部收敛、全局搜索能力弱等,如何针对粒子滤波的状态
9、估计过程改进相关寻优策略,快速准确地得到全局最优解成为当前急需解决的问题。麻雀搜索算法19(sparrow search algo-rithm,SSA)是一种提出于 2020 年的新型群智能优化算法,仿真结果证明19 麻雀搜索算法在精度、收敛速度、稳 定 性 和 鲁 棒 性 方 面 均 优 于 灰 狼 优 化 算 法(GWO)、引力搜索算法(GSA)和粒子群优化算法(PSO)等。目前还没有麻雀搜索算法与粒子滤波结合的相关研究,将麻雀搜索算法应用于粒子滤波的状第 5 期石硬等:基于改进麻雀搜索算法的粒子滤波研究77态估计过程有助于群智能优化理论算法与粒子滤波的进一步应用。为了解决粒子滤波重采样导
10、致的粒子贫化问题,本文将麻雀搜索算法引入粒子滤波中,提出了一种基于改进麻雀搜索算法的粒子滤波算法(a particle filte-ring algorithm based on an improved sparrow search algo-rithm,SSAPF)。SSAPF 将粒子状态值看作麻雀个体位置,通过发现者、跟随者、警戒者的迭代寻优更新粒子位置,引导粒子群体逐渐向状态估计的高似然域移动,整个过程保留了所有粒子信息,不需要重采样过程,从根本上解决了粒子贫化问题。并且,为了进一步提高滤波性能,SSAPF 针对麻雀搜索算法直接应用于粒子滤波状态估计时出现的全局搜索能力不足、样本分布不合
11、理等问题综合粒子滤波求解思想进行了相应的改进:使用 Logistic-tent map 初始化分布以提高种群多样性,帮助算法增强后续解的质量;加入比例系数以及使用新的发现者更新策略增强 SSAPF的全局搜索能力,同时引入动态权重协调前期全局大范围搜索与后期局部精确搜索;改进麻雀搜索算法的追随者更新策略,使粒子分布更趋于合理的同时提高样本多样性;引入蚂蚁随机游走策略增大搜索空间,进一步帮助算法跳出局部最优。1传统粒子滤波算法贝叶斯滤波非线性动态过程表示为:xk=f(xk1,uk1)(1)yk=h(xk,vk)(2)式中:xk与 yk分别为 k 时刻对应的状态值与观测值;f()与 h()分别为状态
12、函数与观测函数;uk与 vk分别为过程噪声与测量噪声。为了方便表示,用 Xk=x0 k=x0,x1,xk、Yk=y0 k=y0,y1,yk 分别表示一段时间内的累计状态与观测。贝叶斯滤波的预测阶段由 k1 时刻的后验概率密度 p(xk1Yk1)得到当前时刻状态量的预测概率密度 p(xkYk1),预测方程为p(xkYk1)=p(xkxk1)p(xk1Yk1)dxk1(3)贝叶斯 滤 波 的 更 新 阶 段 由 k 时 刻 的 观 测 量p(ykxk)修正 p(xkYk1)得到 k 时刻的后验概率密度 p(xkYk):p(xkYk)=p(ykxk)p(xkYk1)p(ykxk)p(xkYk1)dx
13、k(4)贝叶斯滤波在在遇到复杂的概率分布形式时很难求出积分的解,常用基于蒙特卡洛原理的粒子滤波,将积分运算转变为样本加权和运算,使用易于采样的重要性分布函数 q(xkYk)的样本加权和来逼近后验概率密度 p(xkYk):p(xkYk)=Ni=1ik(xk xik)(5)式中:xik、ik分别为第 i 个粒子的系统状态和权值,ikp(xkYk)q(xkYk);()为狄拉克函数。最终输出当前时刻状态值:?xk=Ni=1ikxik(6)然后进行重采样过程后开始下一时刻的滤波过程。2麻雀搜索算法分析为了更好地将麻雀搜索算法应用于粒子滤波的状态估计过程,SSAPF 将每个粒子的状态值看作麻雀种群的个体位
14、置,位置越好的麻雀个体相当于权值越高的粒子,其中,位置越好的麻雀个体与真实值越接近,为了评价每个麻雀个体位置的好坏程度,本文结合最新观测信息为 SSAPF 设计了新的适应度函数:f=znewzpred(7)式中:znew为最新的测量值;zpred为预测值。f 值越小代表该麻雀的适应度越高,其表示的粒子与实际位置的观测值越接近。从式(6)可以看出粒子滤波的核心思路之一是利用粒子集合的均值作为滤波器的估计值,因此合理的分布需要粒子很好的“覆盖”真实值,为了得到较好的滤波效果,麻雀群体需要找到最优点的同时合理分布在最优点附近,本节结合该思路对麻雀搜索算法进行分析,指出麻雀搜索算法直接指导粒子更新时存
15、在的问题,以便后续进行相应的改进。麻雀搜索算法中19,假设种群有 n 只麻雀,则种群位置 X 可以表示为X=x11x1dxn1and(8)式中:xij为第 i 只麻雀所处第 j 维中的位置;n 为麻雀种群的数量;d 为向量空间的维度。个体各自对应的适应度函数 F 为F=f(x1),f(x2),f(x3),f(xn)T麻雀搜索算法中的发现者作为位置最好的一部分群体,主要为种群提供寻找食物的方向和大体位置。发现者的位置更新式(6)为78Instrument Technique and SensorMay 2023xt+1i=xtieiNiter_max2STxti+QL2ST(9)式中:xti为第
16、 i 只发现者在第 t 次迭代时的位置,xti=xi1,L,xid;(0,1);Niter_max为最大迭代次数;Q 为服从正态分布的随机数;L 为 1 行 d 列的全 1 矩阵;2为预警值;ST为报警值,ST(0 5,1)。对于发现者更新公式,当 2ST时,表示发现了捕食者,发现者按正态分布飞往安全区域,此时发现者每个维度移动相同的距离进行局部搜索。当 2ST时,表示种群比较安全,发现者能够进行较大区域的搜索,公式为 xt+1i=xtieiNiter_max,为了得到较为准确的最优点,传统群智能算法2021 往往要设置较大的迭代次数,使粒子尽可能收敛,最大迭代次数 Niter_max一般取1 000 次左右,但对于群智能理论算法优化的粒子滤波1418 来说过大的迭代次数会使粒子过于收敛丧失多样性,为保证样本粒子合理分布,群智能算法优化的粒子滤波算法 Niter_max一般取 2050 次。假设发现者数量为 30,令 i=30,每个 i 值重复计算 100 次,观察Niter_max分别为 1 000 与 20 时函数 y=eiNiter_max值的分布情况,MATLAB 仿真结果如图