发明内容
本发明的目的是提供一种对无线传感器网络中节点进行定位的方法,能够在无需测距的情况下实现高精度的无线传感器网络节点定位,减小定位误差,提高定位精确度。
本发明的目的是通过以下技术方案实现的,一种对无线传感器网络中节点进行定位的方法,所述无线传感器网络中的节点包括三个或三个以上已知节点位置信息的信标节点和若干个位置信息待测的未知节点,所述方法包括:
各个信标节点向其邻居节点广播自身位置信息的分组,所述分组具体包括跳数字段和各个信标节点自身的位置信息;
接收到所述分组的节点记录自身到各个信标节点的最小跳数和各个信标节点的位置信息,同时记录邻居节点到各个信标节点的跳数情况,将该跳数的字段数值加1,并转发给所述邻居节点;
各个信标节点根据所记录的其他信标节点的位置信息和相距跳数,以及邻居节点的跳数,并结合当前无线传感器网络的网络参数,估算平均每跳距离,并广播估算结果;
所述未知节点接收到估算的平均每跳距离后,根据所记录的距信标节点的最小跳数和邻居节点距同一信标节点的跳数,并结合自身的网络参数,估算自身到每个信标节点的距离;
所述未知节点根据所估算得到的自身到每个信标节点的距离和所获得的各个信标节点的位置信息,计算获得该未知节点的位置信息。
所述记录邻居节点到各个信标节点的跳数情况,具体包括:
记录邻居节点到各个信标节点存在的最小跳数,以及在每种跳数情况下的节点个数,并定义邻跳系数。
所述网络参数为用来建立邻居节点跳数情况与未知节点和信标节点间距离关系的参数,具体包括:
在所述无线传感器网络进行节点定位前,依据该无线传感器网络的连接情况,对特定连接情况下网络中节点的平均每跳距离进行模拟和统计,从统计的结果中分析得到网络参数,并通过该无线传感器网络的网关发布到所述无线传感器网络的各个节点中。
所述估算平均每跳距离,具体包括:
所述信标节点从其他各邻居信标节点与该信标节点间的跳数情况中提取位置信息,结合所记录的该信标节点到其他信标节点的位置信息和相距跳数估算平均每跳距离。
所述估算自身到每个信标节点的距离,具体包括:
所述未知节点从邻居节点的跳数情况中提取与各个信标节点间的位置信息,得到该未知节点相对于各信标节点下的邻跳系数,再由提取到的跳数值和网络参数得到该未知节点相对于各信标节点的修正系数,并结合所记录的各个信标节点的位置信息和相距最小跳数对自身到所述各个信标节点的距离进行估计。
由上述本发明提供的技术方案可以看出,所述无线传感器网络中的节点包括三个或三个以上已知节点位置信息的信标节点和若干个位置信息待测的未知节点,所述方法包括:各个信标节点向其邻居节点广播自身位置信息的分组,所述分组具体包括跳数字段和各个信标节点自身的位置信息;接收到所述分组的节点记录自身到各个信标节点的最小跳数和各个信标节点的位置信息,同时记录邻居节点到各个信标节点的跳数情况,将该跳数的字段数值加1,并转发给所述邻居节点;各个信标节点根据所记录的其他信标节点的位置信息和相距跳数,以及邻居节点的跳数,并结合当前无线传感器网络的网络参数,估算平均每跳距离,并广播估算结果;所述未知节点接收到估算的平均每跳距离后,根据所记录的距信标节点的最小跳数和邻居节点距同一信标节点的跳数,并结合自身的网络参数,估算自身到每个信标节点的距离;所述未知节点根据所估算得到的自身到每个信标节点的距离和所获得的各个信标节点的位置信息,计算获得该未知节点的位置信息。通过该方法就能够在无需测距的情况下实现高精度的无线传感器网络节点定位,减小定位误差,提高定位精确度。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明所提出的方法是基于经典距离向量-跳段DV-Hop(distance vector-hop)定位机制所作出的改进,该距离向量-跳段定位机制类似于传统网络中的距离向量路由机制,未知节点首先计算与信标节点的最小跳数,然后估计平均每跳的距离,利用最小跳数乘以平均每跳距离,得到未知节点与信标节点之间的估计距离,再利用三边测量法或极大似然估计法计算未知节点的坐标。下面将结合附图对本发明实施例作进一步地详细描述,所述无线传感器网络中的节点包括三个或三个以上已知节点位置信息的信标节点和若干个位置信息待测的未知节点,如图1所示为本发明实施例所提供对无线传感器网络中节点进行定位的方法流程示意图,所述方法包括:
步骤11:各个信标节点向其邻居节点广播自身位置信息的分组,所述分组具体包括跳数字段和各个信标节点自身的位置信息。
步骤12:接收到所述分组的节点记录自身到各个信标节点的最小跳数和各个信标节点的位置信息,同时记录邻居节点到各个信标节点的跳数情况,将该跳数的字段数值加1,并转发给所述邻居节点。
在具体实现中,所述记录邻居节点到各个信标节点的跳数情况具体包括:记录邻居节点到各个信标节点存在的最小跳数,以及在每种跳数情况下的节点个数,具体可以通过以下方法来记录和表示邻居节点到各个信标节点的跳数情况:
1、正常情况下,n跳节点的通信范围内只可能存在n-1跳(若n=1,则n-1=0跳节点指代信标节点)、n跳和n+1跳节点,其中n-1跳节点数至少为1。
2、如附图2所示为节点位置与节点周围其他节点分布关系的示意图,图2中:如果一个n跳节点越接近信标节点,那么在他的通信范围内的n-1跳节点数会相应的增加,而n+1跳节点会相应的减少。如图2中的两个2跳节点,左侧的节点位于2跳节点和3跳节点的边缘,相对更加远离信标节点(图中心),因此有更大的概率靠近更多的3跳节点;而右侧的2跳节点位于1跳节点和2跳节点的边缘,相对更加靠近信标节点,因此有更大的概率靠近更多的1跳节点。左侧2跳节点,在其通信范围内有约14个3跳节点和1个1跳节点;而右侧的2跳节点,在其通信范围内有约1个3跳节点和10个1跳节点。因此,一个节点通信范围内其他节点距信标节点的跳数分布,对这个节点与信标节点之间的距离估计有着一定的指示作用。
3、定义邻跳系数,该邻跳系数是与节点通信范围内不同跳数节点数量的比值相关的,不同的邻跳系数会对距离估计产生影响,邻跳系数越小的节点概率上距离信标节点越远,同时节点间平均每跳距离跟邻跳系数也存在着联系,因此计算出邻跳系数能更准确地估算出节点间的距离,这里:假设节点A距某信标节点S的最短跳数为n,在其通信范围内,存在距相同信标节点S的最短跳数为n+1的节点Nn+1个;最短跳数为n-1的节点Nn-1个,则节点A的邻跳系数ρr为:
ρr=Nn-1/Nn-1 (1)
从而ρr∈[0,+∞),并且定义其指数形式:
从而ρ∈(0,1]。下文中除特别说明外,邻跳系数(ρ)均指代指数形式的邻跳系数。
步骤13:各个信标节点根据所记录的其他信标节点的位置信息和相距跳数,以及邻居节点的跳数,并结合当前无线传感器网络的网络参数,估算平均每跳距离,并广播估算结果。
在具体实现中,上述网络参数为用来建立邻居节点跳数情况与未知节点和信标节点间距离关系的参数,具体包括:
在所述无线传感器网络进行节点定位前,依据该无线传感器网络的连接情况,使用计算机等工具对特定连接情况下网络中节点的平均每跳距离进行模拟和统计,从统计的结果中分析得到网络参数,并通过该无线传感器网络的网关发布到所述无线传感器网络的各个节点中。具体实现中,可以全网络使用统一的网络参数,也可根据局部连接度情况,各节点使用不同的网络参数。
具体来说,所需的网络参数在特定网络连接度、不同的节点跳数条件下,可以通过统计邻跳系数下的平均每跳距离获得;对统计结果使用最小二乘法,对跳数n=2~5的情况,分别求得最佳拟合的直线的斜率KN,n和截距AN,n,其中N代表网络连接度,n代表跳数,这里的斜率KN,n和截距AN,n即是本发明实施例中所述的网络参数。这里的网络参数可以统计到理论上所有可能的跳数,也可以设置未知节点仅利用x跳以内的信标节点进行定位,在这种设置下,还可以通过在洪泛中添加生存周期为x+1,来限制洪泛的范围为x+1跳,从而满足x跳以内节点的相邻节点跳数信息的获得,此时的网络参数只需要包含跳数小于等于x的情况。在具体实现中,跳数的具体限制可以依据实际条件(如网络大小、网络通信流量、定位精度、传感器存储容量、计算复杂度等)而定。
在该步骤中,估算平均每跳距离的方法为:所述信标节点根据其他各信标节点的邻居节点跳数情况提取与该各信标节点的位置信息,得到其他各信标节点相对于所述信标节点的邻跳系数,再由提取到的跳数值和网络参数得到其他各信标节点相对于所述信标节点的修正系数,再结合所记录的该信标节点到其他信标节点的位置信息和相距跳数估算平均每跳距离,具体包括:
1、首先计算对应跳数和邻跳系数的修正系数,修正系数Dij定义如下式(3)。
Dij=KN,n·ρ+AN,n (3)
特别的,对于1跳节点来说,修正系数D随邻跳系数ρ的变化不大,即斜率K近似为1。因此本发明实施例中1跳节点不根据邻跳系数来计算修正系数,而是使用公式(4)近似的计算修正系数:
Dij=AN,1 (4)
2、每个信标节点根据所记录的其他信标节点的位置信息和相距跳数,利用下式估计平均每跳距离:
式中(xi,yi),(xj,yj)是信标节点i,j的坐标,hj是信标节点i与j(i≠j)之间的跳段数,Dji表示信标节点j相对于信标节点i的在邻跳系数下的修正系数。
步骤14:所述未知节点接收到估算的平均每跳距离后,根据所记录的距信标节点的最小跳数和邻居节点距同一信标节点的跳数,并结合自身的网络参数,估算自身到每个信标节点的距离;
在该步骤中,所述估算自身到每个信标节点的距离具体为:所述未知节点从邻居节点的跳数情况中提取与各个信标节点间的位置信息,得到未知节点相对于各信标节点下的邻跳系数,再由提取到的跳数值和网络参数得到该未知节点相对于各信标节点的修正系数,结合所记录的各个信标节点的位置信息和相距最小跳数对自身到所述各个信标节点的距离进行估计,具体可以通过以下方法估算自身到信标节点的距离:
1、首先所述未知节点j收到平均每跳距离后,先利用步骤12中记录的邻居节点对于信标节点i的跳数情况通过公式(3)(4)计算修正系数,再利用步骤12中记录的自身到各个信标节点i的最小跳数,通过公式(6)估算自身相距各个信标节点的距离,未知节点j距信标节点i的估计距离dji为:
dji=HopSizei·hi·Dji (6)
式中hi是节点j与信标节点i之间的跳段数,Dji表示节点j相对于信标节点i的修正系数。
步骤15:所述未知节点根据所估算得到的自身到每个信标节点的距离和所获得的各个信标节点的位置信息,计算获得该未知节点的位置信息。
在该步骤中,所述计算获得该未知节点的位置信息具体可以采用三边测量法,这种方法是最常见的,还可以采用极大似然估计法计算,下面进行详细介绍:
三边测量法:
在所有相关联的信标节点中合理选取三个信标节点A,B,C,其位置坐标为(x1,y1)、(x2,y2)、(x3,y3),以及由上述方法得出的到未知节点D的距离分别为d1、d2、d3,假设未知节点坐标为(x,y),那么可以建立方程如下所示:
由上式得出未知节点D的坐标下所示:
极大似然估计法:
设所有与未知节点D相关联的信标节点坐标分别为(x1,y1),(x2,y2),(x3,y3),……,(xn,yn),以及由上述方法得出的到节点D的距离分别为d1,d2,d3,……,dn,假设节点D坐标分别为(x,y)。那么,得出如下所示:
从第一个方程开始分别减去最后一个方程,得到如下所示:
表示为线性方程方式AX=b,其中,如下所示:
使用标准的最小均方误差估计法可以得到节点D的坐标为
下面以具体的实施例来对本发明所述的方法进行说明,如图3所示为本发明所举具体实例中无线传感器网络定位示例的场景示意图,图3中:
600个传感器节点随机均匀分布在长、宽均为1的正方形区域,设置无线传感器的通信半径为0.1。此示例场景中无线传感器网络的平均连接度约为17.25,600个传感器节点中其中包含540个待测的未知节点,在图中用‘+’符号表示;另外60个节点为位置信息已知的信标节点,我们主要以图中坐标为(0.5,0.5)处‘△’符号表示的参考信标节点为例对本发明所提定位方法进行描述;其余59个信标节点,在图中用‘o’符号表示,无线传感器网络中其他信标节点的工作机制和定位流程与该参考信标节点一致。
本具体实现方案中,为方便描述本方案可设置未知节点仅利用5跳以内的信标节点进行定位,在这种设置下,通过在洪泛中添加生存周期为6,来限制洪泛的范围为6跳,从而满足5跳以内节点的相邻节点跳数信息的获得(当然也可以不添加洪泛消息生存周期,这样就不会对跳数进行限制),此时的网络参数只需要包含跳数小于等于5的情况,如表1所示:
表1
n |
1 |
2 |
3 |
4 |
5 |
斜率K |
--- |
-0.2437 |
-0.1692 |
-0.1346 |
-0.1121 |
截距A |
0.6724 |
0.7550 |
0.7757 |
0.7889 |
0.7984 |
与该参考信标节点相关的定位流程具体如下:
步骤一:各信标节点向其邻居节点广播自身位置信息的分组,其中包括跳数字段(初始值为0)、自身位置信息和洪泛消息生存周期(初始值为6);
步骤二:接收节点记录自身到每个信标节点的最小跳数,并同时记录邻居节点到各个信标节点的跳数情况。随后将跳数值加1,洪泛消息生存周期减1。若洪泛消息生存周期大于0,则转发给邻居节点;
步骤三:参考信标节点接收到了来自附近其他信标节点的位置信息分组。由于有洪泛消息生存周期限制,参考信标节点统计5跳以内其他信标节点(共36个)的位置信息分组。得到如下表2所示记录信息:
表2
在无线传感器网络部署前或定位操作前,使用计算机等计算工具,根据网络平均连接度17.25,统计分析得到该条件下的网络参数。并已经通过无线传感器网络的网关将其发布到网络中的每一个节点。本实例中,网络中的所有节点统一使用如表1所示的网络参数。
计算参考信标节点到上述5跳以内信标节点间的距离,具体使用上述公式(1)(2)计算各信标节点相对于参考信标的邻跳系数,并使用公式(3)通过邻跳系数求得修正系数。所得到的距离、邻跳系数、修正系数以及信标节点与参考信标节点间的跳数如下表3所示:
表3
通过信标节点间距离、跳数和修正系数,使用公式(5)可求得参考信标节点的平均每跳距离为:0.1043。
为更好的说明本发明方法的技术效果,作为对比,我们计算了现有技术下经典距离向量-跳段方法下的平均每跳距离,结果为0.0769。于此同时,网络中的其他信标节点进行同样的运算,得到各自的平均每跳距离,并广播估算的结果。
步骤四:未知节点接收到平均每跳距离后,根据步骤二中记录的距离信标节点的最小跳数和邻居节点距离同一信标节点的跳数情况,结合自身的网络参数,估算自身到该信标节点的距离。
本方法下未知节点对信标节点平均每跳距离的选取方式多样,本示例中参考信标节点5跳之内的未知节点与参考信标节点间的距离估计统一选用参考信标节点的平均每跳距离。
作为示例,我们随机抽取参考信标节点5跳之内的20个未知节点,详细描述他们与参考信标节点间的测距、定位过程:
未知节点首先先利用步骤二中记录的邻居节点对于信标节点i的跳数情况通过公式(3)(4)计算修正系数,再利用步骤二中记录的自身到信标节点i的最小跳数通过公式(6)估算自身相距信标节点的距离,这20个点修正系数、跳数、距离估计的结果及实际距离如下表4所示(作为与现有技术方案的比较,还提供了现有技术中经典距离向量-跳段方法下的节点距离估计结果):
表4
由上表可知,按照本发明实施例所述方法随机选取的20个未知节点的平均距离估计误差为0.0146,而现有技术经典距离向量-跳段方法下的平均距离估计误差为0.0214,以通信距离为单位1,精确度要高于现有技术的方案;进一步的,按照本发明实施例所述方法的参考信标节点5跳之内总共309个未知节点的平均距离估计误差为0.0167,性能也明显优于现有技术经典距离向量-跳段方法的平均距离估计误差0.0247。
更一般的情况,通过对大量随机分布的无线传感器网络进行定位精度的分析,得到的平均距离估计误差如下表5所示:
表5
表中N表示无线传感器网络平均连接度,信标节点的数量均为总节点数的10%。
通过上述的对比结果,证明根据本发明所提方法得到的定位精度较之经典方法有明显的提高。
步骤五:再根据步骤四中求得的自身到该信标节点的距离,计算获得所述未知节点的位置信息。
由于步骤四中的距离估计的精度有了较明显的提高,则该未知节点定位的精度也会随之相应的提高,从而在无需测距的情况下实现了高精度的无线传感器网络节点定位。
综上所述,本发明实施例能够在无需测距的情况下实现高精度的无线传感器网络节点定位,减小定位误差,提高定位精确度。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。