一种改进的高斯粒子滤波室内节点跟踪算法研究
2020-11-17阮艺琳王晓军
阮艺琳,王晓军,杨 波,张 媛
(1.山西大学 数学科学学院,山西 太原 030006;2.大秦铁路股份有限公司太原站,山西 太原 030001)
近几十年,无线传感器网络(Wireless Sensor Network,WSN)在各个领域有了越来越广泛的应用,如环境监测、目标跟踪、交通控制等[1]。在很多应用中,传感器节点获取自身位置信息的能力是不可缺少的,因此,获取移动节点实时的高精度位置有重要的现实意义。室内节点的跟踪问题通常是在嘈杂的环境中进行,通常利用状态估计器来减小跟踪误差。近年来流行起来的粒子滤波器(Particle Filter,PF)能够较好地应用在跟踪问题和高度非线性的状态空间模型中。
然而,标准的粒子滤波算法仍然有大量问题待解决,普遍存在的问题是退化现象,很多学者利用启发式优化算法对PF做出了改进[2-4]。把滤波中粒子看作群智能优化中的个体,模仿各种群体的行为。通过粒子间的信息交互,使其分布更为合理,增加了有效采样数量,实现寻优。文献[2]采用了差分进化蝙蝠算法对粒子滤波进行改进;文献[3]提出一种万有引力优化的粒子滤波算法,标准粒子滤波的重采样过程可以抑制退化现象,但是权重较大的粒子经过多次复制,较小的逐渐被舍弃,使得粒子多样性损失,导致较大的估计误差。文献[4]提出一种基于粒子群优化算法的高斯粒子滤波算法( PSO-GPF),但PSO容易陷入局部最优、收敛速度较慢。针对PF重采样的缺陷以及一些优化算法全局寻优能力不足的问题[5],提出了一种新的应用引力搜索算法(Gravitational Search Algorithm,GSA)优化高斯粒子滤波器的目标跟踪算法。GSA是一种模拟在引力影响下物体运动的新型启发式算法,已有研究表明其全局寻优能力优于粒子群等智能优化算法[6]。并且,高斯粒子滤波器(Gaussian Particle Filter,GPF)不需要重采样,采用高斯分布来构造重要性分布函数,计算量小,易于实现。所提出的算法可以在避免重采样缺陷的同时增加有效粒子数。将该算法用于WSN下室内移动节点的轨迹跟踪,结果表明其可以改善退化现象,并且提高状态估计的精度。
1 室内节点跟踪模型
xk=f(xk-1,wk)
(1)
zk=h(xk,vk)
(2)
式中,f(·)为状态xk-1的状态转移函数;h(·)为测量函数;wk、vk为离散噪声。
1.1 运动模型
状态方程可以描述为
xk=Axk-1+Γwk
(3)
1.2 测量模型
基于测距的算法一般包括测距和定位计算2个阶段,这里使用接收信号强度指示(RSSI)的测距和三边加权质心定位[7]技术。基于RSSI测距的方法成本低、易实现、能耗小,很好地满足了无线传感器网络的需求。无线信道模型采用被广泛使用的对数距离路径损耗模型[8],k时刻,未知位置的移动节点收到来自第m个锚节点的RSSI为
zk,m=z0,m-10ηlog10(dk,m/d0,m)+vk,m
(4)
2 引力优化的高斯粒子滤波算法
2.1 高斯粒子滤波算法
GPF是一种免重采样的PF算法,该算法简单稳定,滤波精度高,实时性好,能够克服粒子退化现象[9]。它根据状态方程并利用高斯分布构造重要性密度函数,对每一个粒子由高斯分布生成下一个预测粒子,测量方程调节粒子的权重,最后求粒子加权和得到状态估计值。GPF每次递推都从上一时刻的后验概率密度函数中生成新的粒子集。其权值并不进行迭代, 权值方差不会随迭代次数而增加,因此不会出现由于迭代次数增加而造成的传统PF存在的粒子退化现象。此外,只要GPF的高斯近似是有效的,就不需要进行粒子重采样,重采样的效果有限但计算成本较高,这是GPF相比序贯重要性采样的优点之一。
2.2 引力搜索寻优算法
引力搜索算法是Rashedi et al在牛顿运动定律和万有引力定律基础上提出来的一种新的启发式算法[10]。在GSA中,一组带有质量的粒子相互作用。粒子的质量由适应度函数确定,所有粒子都通过重力相互吸引,这种力是在不同质量的粒子之间传递信息的一种方式,而这种力导致全部粒子朝向质量较大的粒子全局运动。每次迭代都更新粒子的位置,并存储最佳位置及其速度。在指定的迭代次数之后终止算法。相应的粒子位置即为该问题的全局解。
由万有引力定律可知,在第t次迭代中,粒子j对粒子i的引力为
(5)
式中,Ma为主动引力质量;Mp为被动引力质量;xi为粒子的位置状态;Rij为粒子间欧氏距离;ε为很小的常量;万有引力常数G(t)=G0×exp(-αt/Tc),其中,G0为常数初始值,α为G(t)的衰减系数,Tc为优化时的最大迭代次数,t为当前迭代次数。第i个粒子的惯性质量定义为
mi(t)=(fiti(t)-worst(t))/(best(t)-worst(t))
(6)
(7)
式中,randj是从[0,1]中取的随机数,Fi表示粒子i所受引力的合力。通过减少算法中有主动引力的粒子数量,避免收敛于局部最优,这里,考虑使每一个粒子仅受质量最大的前K个粒子的引力作用[11]:K=N+[(1-N)/(T-1)](t-1)。根据牛顿第二定律,粒子的加速度为
ai(t)=Fi(t)/Mii(t)
(8)
式中,Mii为粒子I的惯性质量,与引力质量相等,Mai=Mpi=Mii=Mi。则粒子的速度和位置更新为
(9)
2.3 引力优化的高斯粒子滤波算法
在室内节点跟踪问题中,将引力搜索算法应用在高斯粒子滤波中,得到更加有效的粒子滤波方法。在GPF进行状态估计后,使用GSA优化预测粒子集的分布,使粒子向高似然区域移动,改善其概率分布,由此提高状态估计的精度。算法设计如下:
3 实验与仿真
3.1 仿真分析
为了评估所提出的室内节点跟踪的滤波算法,首先通过Matlab仿真来模拟目标跟踪的效果。在10 m×10 m的二维平面上,3个锚节点的位置分别设置为(0,5),(5,10),(10,0),根据状态方程模拟生成移动节点的真实轨迹,初始位置和速度为x0=[0,1/2,0,1/2],采样周期T=0.5 s,过程噪声协方差矩阵Q=diag([1/2,1,1/2,1])。观测噪声协方差矩阵R=diag([1/4,1/4,1/4])。取GSA的迭代次数Tc=10、引力常数G0=100、衰减系数α=20。将所提算法与常规PF、GPF以及粒子群优化粒子滤波算法进行比较。
图1和图2分别给出了粒子数为100时,PF、GPF、PSO-GPF和GSA-GPF的一次仿真跟踪轨迹和跟踪误差。可以看出,常规粒子滤波器由于发散现象产生了较大的定位误差,GPF在真实轨迹周围有较大的波动,其他2种算法都达到了一定的跟踪精度。从图2可以发现,随着时间步长的推移,4种算法均有不同程度的累计误差,其中PF的累计误差变化更大,这是由于PF的多次重采样过程会造成粒子贫化现象,从而使状态估计的误差逐渐增大,而GSA-GPF的跟踪误差保持在一定且较小的范围内。当目标轨迹发生突变时,PF发散现象更加明显,而其他算法仍旧保持了较好的跟踪效果,都有效地克服了常规PF由于粒子贫化造成的误差,精度更高,鲁棒性更好。与GPF相比,所提出的改进算法采用GSA算法使得粒子进一步优化,更加接近真实后验分布,提高了定位精度。同时,GSA-GPF比PSO-GPF有更小的定位误差,这是因为PSO易陷入局部最优,而GSA可以较好地实现全局最优估计。
图1 一次仿真的目标真实轨迹以及N=100时不同滤波算法的跟踪结果
图2 N=100时仿真实验中不同滤波算法的跟踪误差
为了进一步比较几种算法在跟踪误差方面的性能,在均方根误差(Root Mean Square Error,RMSE)[12]的基础上,引入平均均方根误差作为评价指标
(10)
表1给出了粒子数N=50、100和200时,分别进行50次仿真算法的跟踪位置平均均方根误差。可以看出,所提出算法的跟踪误差均低于其他2种算法。并且,随着粒子数的增加,4种算法的跟踪误差均有所减小,但PF对粒子的依赖程度最高,粒子数目的增加可以降低滤波发散的概率,但同时又会增加计算的复杂性;而GSA-GPF对粒子的依赖程度最低。N=50时,所提出的算法比PSO-GPF的跟踪精度高约16.23%,与GPF相比,提高了约26.12%,与常规PF相比,提高了约64.1%。可以看出,所提出的算法优势在于,能够在少量粒子的情况下仍旧保持较高的跟踪精度,有效提高了高斯粒子滤波器的精度和稳定性;同时与粒子滤波器相比不需要重采样过程,并且较好地解决了粒子滤波的发散问题。
图3 实验场景
表1 不同粒子数下进行50次仿真不同滤波算法的位置平均均方根误差 m
3.2 室内移动节点跟踪系统
在6 m×6 m的室内环境下进行实验,如图3所示。将滤波算法用于基于Zigbee的WSN下室内节点跟踪问题,采取集中式的定位方法,采集来自目标节点的数据之后,由计算机集中处理,并采用滤波算法矫正。
首先,搭建室内WSN,室内节点跟踪系统由3个已知位置的Zigbee节点作为发送端,1个待测位置的Zigbee节点作为接收端和1台服务器计算机组成。用于实验的发送端和接收端都采用完全相同的节点,选择了CC2530芯片,该芯片基于8015微处理器内核,集成了无线通讯模块。将待测节点安装在直流电机小车上,其接收到的来自锚节点的RSSI数据无线传输给计算机。最后,采用给出的测量模型和RSSI测距加权质心算法可以计算得到节点位置的量测值。设置锚节点的坐标为(0,3),(3,6),(6,0),采样周期T=0.5 s,跟踪30个采样位置。初始化目标状态x0=[0,2/5,0,2/5],令过程噪声协方差矩阵为Q=diag([1/2,1,1/2,1])。观测噪声协方差矩阵取值R=diag([3,3,3])。首先对选定实验环境下测距模型的参数使用最小二乘法拟合,得到参考距离d0=1 m下的RSSI为-37.8 dBm,路径损耗指数η=2.3。
图4与图5是对移动节点进行轨迹跟踪的实验结果。图4展示了小车的运行轨迹以及4种算法分别跟踪的轨迹,可以看出PF产生了明显的发散现象,3种GPF的性能均优于PF,图5显示了提出的GSA-GPF跟踪误差更小,更加吻合移动传感器节点的运动轨迹。
图4 节点真实轨迹以及N=100时不同滤波算法的跟踪结果
图5 N=100时跟踪系统中不同滤波算法的跟踪误差
4 结论
针对粒子滤波存在的退化现象以及粒子多样性丧失的问题,提出了一种新的使用引力搜索算法优化的高斯粒子滤波算法,并应用于室内环境下的移动节点轨迹跟踪问题,通过仿真和实验评估了所提出算法的性能。结果表明,所提出的算法有效地克服了常规PF由于发散现象造成的误差,并且能在少量粒子的情况下保持较好的跟踪精度。同时,使用GSA优化了粒子的后验分布,进一步提高了目标跟踪的精度。该算法对粒子滤波算法在实际应用上的优化和运用有一定意义。