一种基于直线扫描事件及移动锚节点的定位算法
【技术领域】
[0001]本发明属于无线传感器网络(Wireless Sensor Network,WSN)研究中的定位技术领域,具体涉及一种基于直线扫描事件及移动锚节点的定位算法。
【背景技术】
[0002]无线传感器网络(WSN)作为当今信息领域新的研究热点,有非常多的关键技术有待发现和研究,定位技术就是其关键技术之一。位置信息是传感器节点采集数据中不可缺少的部分,没有位置信息的监测消息通常毫无意义。为了提供有效的位置信息,传感器节点必须能够在部署后确定自身的位置,但是由于传感器节点的能量有限及通信易受周围环境的影响,就要求定位机制必须满足自组织性,健壮性,能量高效,分布式计算等要求。
[0003]在无线传感器网络中,所谓节点定位,是指在无线传感器网络中,借助少量位置已知的锚节点,结合一定的计算策略来计算网络中其他位置未知的节点的位置。
[0004]定位算法可以有多种分类方法。根据定位过程中是否需要测量节点间的欧式距离,可将定位算法分为:基于距离的(range-based)定位算法和距离无关的(range-free)定位算法;根据节点定位的先后次序不同,可将定位算法分为:递增式的(incremental)定位算法和并发式的(concurrent)定位算法;根据节点定位过程中是否需要借助于销节点,可将定位算法分为:基于销节点的(anchor-based)定位算法和无销节点的(anchor-free)定位算法。
[0005]其中,根据定位过程中是否需要测量节点间距离的定位算法被学者们使用的最多,在此基础上,根据定位过程中是否需要使用外部事件,可将定位算法分为:事件驱动(event-driven)的定位算法和事件无关(event-free)的定位算法。
[0006]距离无关定位算法的定位思路有很多,其中有一种是通过一定的策略来确定节点所处的一块区域,称为目标区域,然后通过一定的方法来不断缩小节点的目标区域,当目标区域足够小时再利用一定的策略(如质心法)从该区域中选择一点作为节点的最终位置。基于事件的定位算法作为一种新的定位途径,也经历了一个不断求精、不断优化的过程,该文献将基于无控事件的定位算法确定为第三代基于事件的定位算法,并定义了前两代定位算法,以下对第一、二代基于事件的定位算法作简略的介绍。
[0007]第一代基于事件的定位算法要求产生极其精确的外部事件,并且对于事件的传播和扩散也要求有精确的控制,所以又称为基于精确控制事件的定位算法
[0008]第二代基于事件的定位算法对于事件的产生与控制要求都宽松了许多,更多的是通过建立数学模型来提高定位精度和定位效率,因此这一代算法又被称为基于半控制事件的定位算法。
【发明内容】
[0009]针对基于无控事件的定位算法在同一锚节点分布条件下总是存在事件冗余的情况,使得定位的效率较低。为了解决事件冗余的问题,本发明提出了一种基于直线扫描事件及移动锚节点的定位算法。
[0010]本发明的目的是这样实现的:
[0011]基于直线扫描事件及移动锚节点的定位算法,包括:
[0012](1)每轮定位产生两个事件,两个事件的光束扫描角度相差90度,分别对两个事件进行一次定位,A、B、C为锚节点,M、P、Q为网络中的未知节点;
[0013](2)按照感知到光束的先后顺序将所有节点的ID排成一个序列称为节点序列,从节点序列中提取出锚节点序列;
[0014](3)根据锚节点序列估计出光束扫描的角度范围Θ ;
[0015](4)将整个网络区域划分成网格,确定网格内的未知节点P的区域范围;依次判断未知节点P与连续的两个锚节点构成的角与光束扫描角度是否有重叠部分;从而确定出未知节点P可能的区域范围;
[0016](5)经过一轮定位后,如果定位轮数没有达到指定值,随机移动锚节点;
[0017](6)重复⑴、⑵、(3)、(4)、(5)五个步骤直到定位轮数达到指定值;
[0018](7)未知节点将每个事件得到的位置区域取交集,对得到的交集区域用质心法求未知节点的位置坐标,定位结束。
[0019]所述步骤(1)随机产生一个角度,然后沿着该角度扫描,另一个光束与前一个光束成90度角即可;所述步骤(3)取锚节点序列中连续的三个锚结节点组成估计单元,共n-2个,两个估计单元都是按同一个角度和方向扫描得到的序列,所有估计单元所确定的扫描角度范围之间都进行交运算而取重叠部分,不断的减小扫描角度的估计范围,最后的重叠范围就是要估计的真实扫描角度的可能范围。
[0020]所述步骤(4)中将整个区域划分成X个小区域,过锚节点序列中连续的两个锚节点画一条直线,再过其他锚节点作该直线的平行线,取所有连续的锚节点对重复上述过程即完成划分。
[0021]所述步骤(7)中根据每个事件得到的位置区域取交集部分,再用质心算法最终定位节点坐标,进一步提高定位精度。
[0022]本发明具有的有益效果:
[0023]本发明引入了移动锚节点的思想,要求两次移动之间只取两个事件,且这两个事件的扫描角度相差π/2。从总体上看,LLSEMA是利用少量的外部代价换取了更加高效,更加精确的定位结果。所以LLSEMA算法相对于LLSE算法总体性能上更优。
【附图说明】
[0024]图1为本发明基于直线扫描事件及移动锚节点的定位算法的流程图。
[0025]图2(a)为本发明基于直线扫描事件及移动锚节点的定位算法光束垂直向下扫描区域。
[0026]图2(b)为本发明基于直线扫描事件及移动锚节点的定位算法由图2(a)得到的扫描角度范围。
[0027]图3(a)为本发明基于直线扫描事件及移动锚节点的定位算法的锚节点组成的两个估计单元分别确定的扫描角度。
[0028]图3(b)为本发明基于直线扫描事件及移动锚节点的定位算法图3 (a)组成的两个估计单元确定的扫描角度的交集。
[0029]图4(a)为本发明基于直线扫描事件及移动锚节点的定位算法的区域划分示意图。
[0030]图4(b)为本发明基于直线扫描事件及移动锚节点的定位算法区域划分后未知节点的目标区域。
[0031]图5(a)为本发明基于直线扫描事件及移动锚节点的定位算法的光束垂直向下扫描时未知节点3的目标区域。
[0032]图5(b)为本发明基于直线扫描事件及移动锚节点的定位算法的光束水平向右扫描时未知节点3的目标区域。
[0033]图5(c)为本发明基于直线扫描事件及移动锚节点的定位算法由图5(a)和图5(b)中得到的未知节点3的目标区域的交集。
[0034]图6为本发明基于直线扫描事件及移动锚节点的定位算法的定位精度与锚节点数量关系。
[0035]图7为本发明基于直线扫描事件及移动锚节点的定位算法的定位精度与事件数量的关系。
[0036]图8为本发明基于直线扫描事件及移动锚节点的定位算法的定位精度与事件数量的关系。
【具体实施方式】
[0037]下面结合附图对本发明做进一步描述。
[0038]本发明提供了一种基于直线扫描事件及移动锚节点的定位算法(LLSEMA)。LLSEMA算法是在LLSE定位算法基础上引入移动锚节点思想,按轮次进行定位,同一轮次内锚节点固定不动,产生两个事件,第一个事件随机产生,亦即用随机方向和随机扫描角度的光束对传感器网络区域扫描,第二个事件光束扫描角度与第一个事件中光束扫描角度相差90度,对两个事件分别进行一次定位,本算法将这两次定位称为一轮定位。首先,获取节点序列,即各个节点根据自身感知到光束的时间顺序排成一个序列,这里假设光束可以扫描到所有节点;其次,根据得到的节点序列,取序列中任意三个锚节点组成不同的估计单元,所有估计单元确定扫描角度范围的重叠区域就是要估计的真实扫描角度的可能范围;再次,将无线传感器网络区域划分成网格,根据估计出来的光束扫描角度范围,估计在网格内每个未知节点的位置区域;最后对估计出的未知节点区域使用质心法得到未知节点的位置坐标。
[0039]—种基于直线扫描事件及移动锚节点的定位算法,对节点序列差异度的分析可知,各事件所得到的节点序列差异越大,LLSEMA算法的定位效率越尚,经过实验发现使广生的事件的扫描角度之间相差尽量接近90度角时可以取得最大的节点序列差异,同时在未知节点数量一定时,节点序列差异度总体上随着锚节点数量的增加呈上升趋势。我们可以将无线传感器网络节点定位描述如下。
[0040]步骤1:将A,B,C定义为无线传感器网络区域内的锚节点,1,2,3,4,5,6,7,8为无线传感器网络区域内的未知节点,用一束随机的光束扫描无线传感器网络区域;
[0041]步骤2:按照感知到的时间顺序得到节点序列和锚节点序列。并且假设扫描得到的节点序列为3A1648C2B75,锚节点序列为ACB ;
[0042]步骤3