发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种无线传感器网络的节点定位方法,在现有DV-Hop定位方法基础上进行改进,从而具有更高的定位精度以及更小的通信和能量开销。
本发明具体采用以下技术方案解决上述技术问题。
一种无线传感器网络的节点定位方法,所述无线传感器网络所监测区域中部署有多个位置信息已知的锚节点,包括以下步骤:
步骤1、无线传感器网络中的各锚节点和普通节点进行信息交互,使得全网中所有节点均获得所有锚节点的信息;
步骤2、各锚节点利用下式分别计算平均每跳距离并将各自的计算结果广播给网络中所有节点:
式中,表示锚节点计算的平均每跳距离,为锚节点和锚节点间的跳数,为锚节点、间的实际距离;
步骤3、未知节点利用下式计算自身的平均每跳距离:
式中,表示未知节点的平均每跳距离,表示锚节点计算的平均每跳距离,表示未知节点获取到信息的锚节点的总个数,锚节点的权值根据下式确定:
其中,表示未知节点距离锚节点的跳数,表示所述个锚节点中的第个距离未知节点的跳数;
步骤4、以与的乘积作为未知节点与锚节点之间的估计距离,利用二维双曲线定位算法估计出未知节点的坐标;
步骤5、使用粒子群优化方法对步骤4中得到的未知节点的坐标进行进一步校正,得到更精确的未知节点的坐标。
进一步地,为了避免随机撒布的锚节点集中出现在某一个区域而导致定位误差增大,本发明技术方案中,所述监测区域的每个顶点位置部署有至少一个锚节点,监测区域的其它位置随机撒布有至少一个锚节点。
相比现有技术,本发明方法在仅需要适当增加一定的计算量的条件下,明显提高了节点定位的精度,改善了方法的稳定性,而且减少了硬件开销。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
本发明的定位方法,具体按照以下步骤:
步骤1、无线传感器网络中的各锚节点和普通节点进行信息交互,使得全网中所有节点均获得所有锚节点的信息。
传统的DV-Hop定位方法中由于锚节点是随机撒布的,锚节点可能会集中出现在某一个区域,利用这种锚节点去估计未知节点坐标就要求网络区域相似度很高,否则会产生较大误差,而且稳定性不好。针对这一问题,本发明在无线传感器网络所监测区域的每个顶点分别部署一个锚节点,其余锚节点随机撒布。
无线传感器网络中的各节点(包括锚节点和普通节点)通过无线通信方式交互信息,获得各锚节点的自身编号、位置坐标、跳数等信息并保存。
步骤2、各锚节点利用下式分别计算平均每跳距离并将各自的计算结果广播给网络中所有节点:
式中,表示锚节点计算的平均每跳距离,为锚节点和锚节点间的跳数,为锚节点、间的实际距离。
传统DV-Hop定位方法中,每个锚节点所计算的平均每跳距离是以该锚节点到其它锚节点的实际距离之和除以该锚节点到其它锚节点的跳数之和,这种计算方法的精确度较低。本发明方法利用实际距离与估算距离的误差来对锚节点的平均每跳距离进行校正。其原理如下:
假设锚节点接收到了其他锚节点j的位置信息,则锚节点计算的平均每跳距离应满足:
其中,是锚节点的编号,为除锚节点以外的其他任一锚节点,为锚节点和锚节点间的跳数,为锚节点、间的实际距离,为用平均每跳距离与跳数的乘积作为实际距离的估算值所引起的误差。合理的应使总误差最小。根据最小二乘法准则,用 作为总误差,则
令,则锚节点计算的平均每跳距离为
。
步骤3、未知节点利用下式计算自身的平均每跳距离:
式中,表示未知节点的平均每跳距离,表示锚节点计算的平均每跳距离,表示未知节点获取到信息的锚节点的总个数,锚节点的权值根据下式确定:
其中,表示未知节点距离锚节点的跳数,表示所述个锚节点中的第个距离未知节点的跳数。
假设未知节点的数据表中共记录了个锚节点所计算的平均每跳距离,将这个平均每跳距离值赋予不同的加权值,的取值满足:
其中,表示未知节点距离锚节点的跳数,表示所述个锚节点中的第个距离未知节点的跳数。
未知节点将计算得到的各锚节点的平均每跳距离的加权值,结合对应的锚节点的平均每跳距离,即可计算得到未知节点自身的平均每跳距离:
。
通过上述加权处理,未知节点的平均每跳距离能从多个锚节点的平均每跳距离中得到反映,使其更接近于网络的实际平均每跳距离。
步骤4、以与的乘积作为未知节点与锚节点之间的估计距离,利用二维双曲线定位算法估计出未知节点的坐标。
在传统DV-Hop定位方法中,根据未知节点与三个或以上锚节点之间的估计距离(即未知节点的平均每跳距离与跳数的乘积),通过三边或多边定位方法来获得未知节点的坐标。此种方法由于对测距误差敏感而容易产生定位结果的误差较大,为此,本发明利用二维双曲线定位算法进行未知节点的坐标估计,具体如下:
假设为锚节点的坐标,为未知节点u的坐标。那么,未知节点u到锚节点的距离为:
令
可得
令
,,,
则有:
利用最小二乘法解得:
这样可得到未知节点u的坐标为:
。
利用上述方法,以与的乘积作为未知节点与锚节点之间的估计距离(即),即可获得未知节点的坐标。
步骤5、使用粒子群优化方法对步骤4中得到的未知节点的坐标进行进一步校正,得到更精确的未知节点的坐标。
为了进一步提高定位精度,本发明还采用粒子群优化方法对步骤4中得到的坐标进行进一步地求精,其基本原理如下:
粒子群化根据下面两式来更新自己的下降速度和位置。将未知节点u的位置看作粒子,用二维向量表示,令,下降速度 ,则有:
其中:是粒子u在第k次迭代中的下降速度;是粒子u在第k次迭代中的位置;是粒子u在第k次迭代中得到的局部最优解;是全局最优解;为初始权重;为最终权重;为最大迭代次数,k为当前迭代次数;、是加速系数,分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长;、为随机数。
用下式所示的适应度函数来评价粒子的适应值,当达到设置的迭代次数后停止计算,以当前找到的最优解作为未知节点的最终估算位置坐标。
其中,是未知节点u估计位置,是锚节点的位置,与未知节点到第个锚节点的跳数成反比。
关于利用粒子群优化方法进行估算位置求精,更详细的内容可参见文献[Gao Y,Zhao WS,Jing C,Ren WZ. WSN Node Localization Algorithm Based on Adaptive Particle Swarm Optimization [J]. Applied Mechanics and Materials,Vols,143-144(2012) :302-306.]。
为了验证本发明方法的效果,使用matlab2009a对DV-Hop方法、本发明方法进行实验,并对相关结果进行分析。实验环境设定如下:
(1)网络节点随机分布在100m*100m区域内,监测区域每个顶点分别部署一个锚节点,其他锚节点和未知节点随机撒布。
(2)粒子群参数==2.05,=0.9,=0.4,最大迭代次数为20次,粒子数位20。最大步长与无线传感器网络节点布设区域的跨度有关,在实验中取最大步长为最大跨度的1/10,即=10m,实验发现该取值时方法收敛速度较快,并可有效避免陷入局部最优。
(3)每次仿真实验的网络区域、节点总数、锚节点总数、节点通信半径等网络环境参数设置相同。
(4)定位误差、定位误差的均方差分别作为方法的定位精度和方法稳定性的衡量标准。每次仿真实验都随机进行100次,然后取其整体定位误差的平均值及均方差,其公式分别如下:
其中,m是未知节点的个数,是未知节点的实际位置,r是节点的通信半径。
图1、图2是在网络区域内随机部署了200个节点,节点通信半径为22m,锚节点数分别为5,8,10,15,20,25,30,35,40个时,本发明方法和传统DV-Hop定位方法的性能比较。从图中可以看出,在节点总数和通信半径保持不变的情况下,随着锚节点比例增加,本方法明显优于传统方法,节点的平均定位误差比传统DV-Hop方法降低了大约13%,定位误差均方差对应的大约降低了7%。而且要达到传统DV-Hop方法在锚节点数为40个时的定位误差,本方法仅仅需要5个锚节点。
图3、图4是在网络区域内随机撒布不同数量的节点,设定锚节点数占总节点数的比例不变,均为10%,通信半径为22m,总节点数分别为80,100,150,200,250,300,350,400时,本方法和传统DV-Hop定位方法的性能比较。从图中可以看出,在节点总数和通信半径保持不变的情况下,随着锚节点比例增加,本方法明显优于传统方法。节点的平均定位误差比传统DV-Hop方法降低了大约14%,定位误差均方差对应的大约降低了6%。
图5、图6是在网络区域内随机撒布200个节点,设定锚节点数占总节点数的比例不变,均为10%,通信半径分别为15m,20m,25m,30m,35m,40m时,本方法和传统DV-Hop定位方法的性能比较。从图中可以看出,在节点总数和锚节点数量保持不变的情况下,随着锚节点比例增加,本方法明显优于传统DV-Hop方法。节点的平均定位误差比传统DV-Hop方法降低了大约11%,定位误差均方差对应的大约降低了5%。
从上述实验可以看出,本发明方法在仅适当增加一定的计算量的条件下,节点定位的精度和定位方法的稳定性得到了明显的提高,而且降低了通信开销和硬件开销,具有良好的应用前景。