陈佳俊,张光宇,孙 杰,沈 浩
(1.海军工程大学,武汉 430033;2.解放军91458部队,海南 三亚 572000;3.解放军92956部队,辽宁 大连 116041)
目标跟踪与定位是WSN一个重要的应用领域,国内外学者对它进行了大量研究,也提出了不少有代表性的WSN目标跟踪算法,但是大多都是基于C/S架构(Client/Server,客户机和服务器架构)的WSN提出的,研究表明,在WSN内节点数量较多时,基于MA(Mobile Agent,移动代理)的目标跟踪WSN比C/S架构的WSN在网络负载和节点能量消耗上具有明显的优势[1],因此,迫切需要研究基于移动代理的WSN目标跟踪算法。见文献[2-6]。
上述基于MA架构跟踪算法减少了探测结果数据在WSN中的传递,降低了WSN节点能量消耗,提高了WSN节点生存能力,但是由于参与计算探测结果数据的减少,如何保证移动代理选取误差较小的节点探测数据,保持较高的跟踪精度,是基于移动代理的WSN目标跟踪算法设计的一个难题。本文以典型的声学传感器构成的WSN为对象,设计一种利用移动代理选择最优当前节点探测结果,并进行融合计算获取目标位置信息的目标跟踪算法。
目标进入声学传感器WSN覆盖范围后,WSN部分节点(与目标距离小于节点最大探测距离)会接收到目标发出的声音信号,并将接收到信号强度信息存储在节点传感器中,Sink节点需要派遣MA访问合适的探测节点,采集探测节点和它邻近节点收集的目标信号强度信息,并利用合适的算法对采集到的信号强度信息进行处理,计算目标的位置信息和运动状态信息,当目标离开WSN分布区域后,MA携带计算得到的目标运动状态信息返回Sink节点。图1给出了基于移动代理的目标跟踪问题示意图。
根据上述跟踪过程的分析,在构建跟踪算法之前,先对WSN节点探测模型、探测目标运动模型、MA采集数据模型和能量消耗模型进行定义。
根据声学理论,声音信号在传播过程中,其强度的大小与传播的距离成反比[7]。因此,WSN节点传感器探测目标的信号强度也与目标的距离成反比。假设在时刻t,目标的位置为xt,传感器si的位置为xi(各个传感器的位置在目标跟踪过程中假设是不变的),当目标位于节点探测范围之内时,时刻t传感器si探测到的来自目标的信号强度为[8]:
在WSN中,MA通过在节点之间迁移,采集节点的数据。MA在两个节点之间的迁移,需要满足一定的条件,首先迁移的起始节点si和终止节点sj之间的距离必须小于WSN节点通信距离上限Rc,其次起始节点和终止节点之间的能量足以保证完成本次迁移,具体的能量消耗模型会在下一节中进行定义。MA在跟踪过程中访问节点序列用L表示,。
MA迁移至WSN中的某个节点时,可以采集相应节点数据,在目标跟踪问题中就是采集节点探测到的目标信号强度。MA在迁移过程中既可以采集当前所在节点的数据,也可以采集邻近节点的数据,当然MA在某个节点也可以选择不采集任何数据。MA在时刻t节点sk采集的节点数据集合用集合Yk表示,。
对于其他绝大多数探测设备的跟踪算法设计而言,不需要考虑跟踪过程中设备的能量消耗问题,但是对于能量十分有限的WSN而言,这是一个十分重要问题,必须在基于移动代理的WSN跟踪算法中予以考虑。WSN中节点能量消耗基本可以分为3类,节点开机能量消耗,节点处理能量消耗和节点通信能量消耗。下面分别对这3类能量消耗进行建模。
2.3.1 节点开机能量消耗模型
WSN节点需要维持其正常的探测、通信和处理功能,必须处于工作状态,节点的工作能量消耗只取决于WSN节点开机时间的长短,定义节点工作单位时间能量消耗为erun,则节点工作时间trun后的总能量消耗。节点在关机时不支持任何功能,当然也不产生任何能量消耗。
当然,在某些WSN中,除了开机和关机状态外,节点在不执行任务时,可以进入休眠状态,这种状态下的节点能量消耗会比开机能量消耗低很多,但它依然是与休眠状态持续时间相关的,可采用与上面相似的方法进行定义,节点休眠时间tsleep后能量消耗。
2.3.2 节点处理能量消耗模型
在目标跟踪过程中,节点处理能量消耗主要来自MA对采集信息融合计算消耗,可以认为MA在各个节点采集的目标信号数据大小都是相等的,大小为b,MA对单位大小的数据进行处理时消耗的能量为ef,则MA在各节点处理数据的能量消耗为是MA在当前节点采集数据集合Yk中的元素个数。在整个跟踪过程中,节点处理能量消耗等于MA访问节点集合L中所有单个节点处理能量消耗之和。
2.3.3 节点通信能量消耗
在目标跟踪过程中,节点通信能量消耗主要来自两个方面,一方面是MA迁移过程中,MA自身代码段和数据段在节点之间传输会造成一定的能量消耗,另一方面是MA采集邻近节点信息时,邻近节点向MA所在节点发送数据造成的能量消耗。根据文献[9]给出的MA节点间发送数据能量消耗模型,假设MA自身的数据大小为bMA,MA在节点间迁移的能量消耗EM可由下式计算。
d表示MA迁移节点之间的空间距离,εelec是传感器节点发射固定消耗,εamp是传输增益,r是传输损耗因子,εelec、εamp和r是由WSN传感器的本身物理属性决定的,一般在整个WSN生命周期中不发生变化。同理,邻近节点向MA所在节点发送采集数据的能量消耗En可由下式计算。
整个跟踪过程中的节点通信能量消耗等于MA访问的节点集合L中每两个节点之间MA迁移能量消耗之和,加上L中各个节点的邻近节点向它们发送采集数据能量消耗之和。
在进行基于最优探测的移动代理WSN的目标跟踪算法(ODMA)设计之前,必须先对WSN基本情况进行一些必要的假设,具体如下:
1)WSN中节点的分布足够稠密,不存在无法与任何节点通信的孤立节点(与其他节点的距离d都大于节点通信距离上限Rc);
2)传感器的通信距离Rc大于传感器探测距离Rd两倍以上(Rc≥2Rd),从而保证能够探测到目标的节点间都能够相互通信;
3)WSN节点间的网络带宽足够大,节点处理速度足够快,MA在节点间迁移和采集数据并进行融合计算的时间与目标探测采样周期相比几乎可以忽略不计;
4)MA在跟踪过程之中不需要实时将目标运动信息传送给Sink节点,而只是在跟踪过程结束后才将结果发送给Sink节点;
5)目标运动过程较为平稳,不存在较大机动。
当Sink节点接收到探测到目标信号节点数量超过阈值之后,认为目标已进入WSN探测区域,Sink节点创建MA,MA代码段携带采集节点数据请求代码,数据段携带节点位置信息表,选择信号强度最大的节点作为目的节点,迁移至目的节点,采集目标节点和周边节点数据,利用三边定位法解算目标位置,作为当前时刻目标的观测值,利用卡尔曼滤波算法估计目标运动状态,预测下一时刻目标的位置,选择与目标位置最近且能量足以完成MA迁移和节点采集任务的节点作为MA下一个目的节点,迁移至目的节点,重复采集数据和计算目标运动状态过程。当MA迁移至目的节点,MA所在节点和其邻居节点都没有探测到目标信号时,认为目标已离开WSN探测区域,MA将Sink节点作为目标节点,迁移回到Sink节点,跟踪过程结束。
在算法中,MA始终采集的是WSN中最靠近目标的节点和其邻近节点的目标信号数据,信号强度应该是所有节点中最大的,在噪声强度符合正态分布的条件下,MA采集的节点数据集合Yk,理论上是信噪比最小的节点集合,也就是最优探测结果的集合。因此,基于最优探测的移动代理WSN的单目标跟踪算法,理论上获得的是目标运动状态的最优估计。
明确上述假设条件以后,可对ODMA算法的核心问题进行设计了。
3.3.1 MA访问探测节点的数量
ODMA算法中,在一个采样周期内,MA访问节点的数量是不确定的,MA在访问一个节点后,采集的节点数据如果少于3个,不足以利用三边测量法解算,MA需要继续访问下一个节点,直到采集的节点数据集合Yk中的元素个数大于或等于3。
3.3.2 MA访问节点的选择
ODMA访问节点的判别方法比较简单,在两个采样周期切换时,始终以与下一时刻目标预测位置距离最近的节点作为下一个目的节点,如果目的节点与当前节点位置相同,MA不执行迁移操作继续停留在当前节点。整个跟踪过程结束后,MA以Sink节点作为下一目的节点。当然选择的节点需要具有足够充足的能量,完成MA迁移、采集数据和融合计算。
3.3.3 MA采用的跟踪滤波算法的设计
MA采用的跟踪滤波算法是递推格式的,选择递推格式算法的好处是MA数据段中除了保存结果数据,不必保存过多的过程数据,只需要保存有限的采集节点数据。k时刻,MA在采集的节点数据集合 Yk中挑选信号强度最大的 3 个 yt,1,yt,2,yt,3,根据式(1),3个探测节点到目标的距离可由下式计算。
由于式(4)中噪声vt,k的大小是未知的,只能通过正态分布估计,因此,利用上式求得的距离是带有误差的,用r1,r2,r3表示3个节点到目标的真实距离,Δr1,Δr2,Δr3表示噪声带来的距离误差,三者之间的关系可由下式表示。
根据MA携带的节点信息,获取探测数据集合yt,1,yt,2,yt,3所在探测节点的坐标(x1,y1)、(x2,y2)、(x3,y3),根据三边测量法,得到下式。
式(6)中的方程两两相减,可得:
由于误差的不确定性,上述方程不一定有解,故采用最小二乘解替代方程的解,则关于目标位置的最小二乘估计为:
x=(ATA)-1b
在得到带有误差的目标当前时刻坐标值(xt,yt)后,利用递推形式的卡尔曼滤波求解目标运动状态估计值,标准卡尔曼滤波公式系如下:
3.3.4 跟踪过程起始和终止的判断
ODMA算法中对于目标跟踪起始过程的判断条件是当Sink节点接收到目标信号节点数量超过阈值Pm之后,通常情况下取Pm=3,因为当探测节点的数量少于3个时,无法使用三边测量法对目标位置进行估计,即使开始跟踪过程也没有意义。当然,在某些对虚警概率有着更高要求的目标跟踪应用中,可以适当增加阈值Pm的取值。
目标终止过程的判断主要以目标探测信号的消失为依据,MA根据卡尔曼滤波得到的目标下一时刻位置值,迁移至距离目标下一时刻位置值最近的节点,当下一时刻到来时,如果MA无法在当前所在节点及其邻近节点获取任何目标探测信号数据,表明目标已消失,或者离开WSN的探测范围,认为跟踪过程结束,MA可携带整个目标跟踪过程中获取的目标运动状态值返回Sink节点。
根据上述ODMA算法的核心问题的设计,可以建立ODMA算法的详细计算流程,如下页图2所示。
为了验证本文提出的ODMA算法的基本性能,通过对一个匀速直线运动目标跟踪过程进行仿真,分析ODMA算法的基本性能。仿真条件如下:假定目标跟踪WSN的覆盖范围为50 m*50 m,传感器节点数量为100,位置随机分布,Sink节点位置确定,为(25,25),传感器的通信距离 Rc=30 m,探测距离为 Rd=15 m,εelec=1*10-4J/kB,εamp=3*10-7J/k B/m4,r=2,erun=1*10-6J/s,ef=5*10-5J/kB 传感器采样间隔TN=1 s,目标初始节点位置(0,0),目标匀速直线运动,X方向速度vx=0.44 m/s,Y方向速度vy=0.38 m/s,节点探测结果数据的大小b=0.1 kB,MA代码段大小bMA=0.2 kB,仿真总时间t=100 s。
图3给出了一次仿真过程中MA迁移路径,在跟踪起始阶段,MA从Sink节点出发,选择最优路径至左下角信号最强节点作为跟踪起始节点,根据算法设定的迁移判断标准,始终选择当前具有最优探测结果集合的节点作为下一跳迁移节点(如果当前节点仍然具有最优探测结果集合,则不进行迁移),直至目标信号消失,MA从跟踪终止节点选择最优路径,返回Sink节点。仿真结果显示,提出的算法能保证MA在整个目标跟踪任务中选择合适的节点进行迁移,并完成跟踪任务。
图4给出了一次仿真过程中ODMA算法各时刻目标位置估计误差,从图中可以看出,大部分时刻ODMA算法求得的目标位置与目标真实位置误差较小,个别时刻估计的节点位置存在一定误差,因为目标在该时刻所处的位置周围探测节点不够稠密,在40 s和90 s时Y方向估计误差较大,因为在该时间区间内,目标附近传感器节点与目标位置Y方向距离远大于X方向距离,导致目标Y方向量测值误差较大,所以经卡尔曼滤波得到的Y方向估计值误差也较大。
采用500次Monte Carlo仿真,每次仿真采用相同的目标运动轨迹、随机的系统噪声序列和测量噪声序列。本文提出的ODMA算法在整个跟踪过程重节点平均能量消耗为0.002 47 J,跟踪均方根误差(RMSE)为0.137 m。根据文献[1]给出C/S架构的WSN目标跟踪过程,采用相同仿真条件,仿真得到基于C/S架构的WSN目标跟踪算法节点平均能量消耗为0.002 91 J,跟踪均方根误差(RMSE)为0.152 m。可见本文提出的算法在跟踪精度和能量消耗上明显优于基于C/S架构的WSN目标跟踪算法。
本文在分析基于移动代理的WSN目标跟踪算法设计核心问题的基础上,构建移动代理WSN目标跟踪过程基本模型,提出了利用移动代理采集信号强度最大节点的目标探测数据,并利用卡尔曼滤波算法估计目标下一时刻目标的位置,作为移动代理下一时刻迁移节点选择依据,保证移动代理采集的始终是最优节点探测结果集合。仿真结果显示提出的算法能够有效实现对目标跟踪,且跟踪误差较小,同时能有效降低WSN能量消耗。若要将其应用于实际WSN目标跟踪应用,还需要对更为复杂目标运动条件下的跟踪算法进行研究。