一种无线传感网节点间的最佳单向通信路径选择和节点定位方法与流程

文档序号:13253557阅读:179来源:国知局
技术领域本发明涉及无线传感器网络技术领域,特别是一种无线传感网节点间的最佳单向通信路径选择和节点定位方法。

背景技术:
目前无线传感器网络节点定位方法分为测距定位方法和非测距定位方法两类。基于测距的定位方法需要利用额外的硬件来测量传感器节点之间的距离或者角度,然后根据三边或者三角测量方法计算待定位节点的位置。该类定位方法的定位精度比较高,但是由于需要额外的硬件,成本消耗比较大,所以该类方法不适合应用在大规模的无线传感器网络中。目前的研究方向主要是基于非测距的定位方法。对于基于非测距的定位方法,定位精度低于基于测距的定位方法,但是不需要额外的辅助设施。该类方法主要基于传感器节点的连通性进行定位。比如:Slobodan等人提出的Bounding-Box方法、DragosNioulescu等人基于节点的跳数关系提出的DV-hop方法、TianHe等人提出的APIT方法。Bounding-Box方法根据未知节点是否收到锚节点的信息进行定位,如果收到多个锚节点的信息,那么该未知节点的可能位置区域位于这些锚节点通信范围的交集之内,然后取这个交集的重心作为该未知节点的最终定位位置。DV-hop方法分为三个过程:1、锚节点广播自己的信息,然后其他节点根据接收到的锚节点的信息,计算该锚节点到自身的最小跳数;2、锚节点根据其他锚节点到自己的距离总数和跳数总数计算该锚节点的平均每跳距离;3、未知节点依据锚节点到自己的跳数和距离自己最近的锚点计算所得的平均每跳距离,估计出各个锚节点到自己的距离,并利用三边或者极大似然估计算出自己的位置。APIT方法的其核心思想是:未知节点任选三个锚点作为顶点,以这三个顶点构建三角形,并判断自身是否在三角形内部,如果自身在三角形内部,则称此三角形包含该未知节点;然后再任选3个锚点进行相同的操作,直到遍历完所有的锚点组合。最后,该未知节点计算所有自身位于其内的三角形相交区域的中心作为自身的定位位置。尽管上述几种方法能够满足部分应用对定位精度的要求,但它们的定位精度毕竟不高,应用范围有限,主要适用于节点均匀分布、每个节点在各个方向的辐射半径相同的网络。而实际网络中的节点分布并不均匀,且每个节点的实际辐射模型差别较大,即节点各方向的辐射半径并不相等,如图2所示。如果将上述的这些基于非测距的定位方法应用于节点分布不均匀的实际网络中,将会出现以下几个问题:1、在非均匀分布网络条件下,针对每个未知节点只计算一个平均跳距并不合适;2、由于实际网络存在节点辐射半径的对称性和非对称性,由此带来节点间通信的非对称性,上述现有的这些算法并未考虑这些因素,应用到实际网络中计算所得的平均跳距和定位位置精度有限;3、定位算法执行过程中的相关信息并未被充分利用。因此,很有必要改进未知节点的平均跳距的计算方法,且未知节点到不同锚点的平均跳距宜分别计算,以利于提升节点的定位精度,扩大非测距定位方法的应用范围。

技术实现要素:
本发明的发明目的在于:针对上述存在的问题,提供一种无线传感网节点间的最佳单向通信路径选择和节点定位方法,对未知节点的定位精度高。本发明用到的几个基本概念:定义1、通信辐射不规则度(DOI):表示节点的无线信号在不同方向的辐射范围变化的不规则程度。假设节点存在一个最大和一个最小的辐射半径,在其最大通信辐射范围外的节点一定不能直接收到该节点的消息,在其最小通信辐射范围内的节点一定可以直接收到该节点的消息,在最大和最小辐射范围之间的节点,则不一定能够直接收到该节点的消息。随着DOI的增大,节点通信辐射模型越不规则,特别地,DOI等于0表示节点的辐射模型近似一个圆形,图1中分别表示DOI=0、DOI=0.1以及DOI=0.5时节点的通信辐射模型。定义2、通信对称性和通信非对称性:由于受外界环境或者障碍物的干扰以及节点通信辐射不规则性的影响,节点在不同方向上的信号强度和通信能力不相等,所以两个节点之间的通信有可能并不对称。通信对称性指两个节点之间的沿不同方向的通信路径完全相同。图2以F和G之间的通信举例,在例中,F到G的通信和G到F的通信所经过的最小中继节点集合完全相同,顺序刚好相反。显然,在这种情况下,F到G和G到F所经历的通信跳数一定相等。通信非对称性指两个节点之间的沿不同方向的通信路径不完全相同,因此跳数也不一定相同。图3以A和C之间的通信举例,在例中,A到C的通信和C到A的通信所经过的最小中继节点集合不完全相同。并且,图3中A到C的通信跳数为2,而C到A的通信跳数为3。定义3、相对跳数(r_hop):如果节点A是节点B的直接邻居(即节点B能够直接收到节点A的消息),则节点A到节点B的相对跳数定义如下:其中n取2-4之间的值,为A的所有直接邻居所接收到的A的信号强度的最小值(注:也可设置为节点在A的最大通信辐射边界位置所收到的A的信号强度,或者A当前所收到的返回了接收信号强度的周边节点所接收到的A的实际信号强度的最小值),为节点B所接收到的A的信号强度。如果一个节点不是另一个节点的直接邻居,比如图3所示,节点A不是节点C的直接邻居,则节点A到节点C的相对跳数为从节点A到节点C所经历路径的A到C通信方向的各一跳邻居间的相对跳数总和,即A到B的相对跳数与B到C的相对跳数之和。定义4、最佳单向通信路径:由于节点间通信的非对称性,两个节点间沿不同方向的通信路径可能并不完全相同。本发明方法所称的单向通信路径指沿着该路径能够将消息从一个节点传送到另一个节点,但沿着该路径的相反方向则不一定能够将消息成功返回的通信路径。比如图3所示:A到C的单向通信路径能够将消息从A传到C、但通过该路径却不一定能够将消息从C传到A。这里的“单向”指的是只能确保消息沿一个方向传输成功,而沿相反方向传输则不一定成功。所谓最佳单向通信路径就是指能够将消息从A传到C,且在确保从A到C的通信跳数最少的前提下、从A到C的相对跳数也最少的通信路径。定义5、定位跳数:对于任意两个节点,比如图3所示的A和C,从A到C的最佳单向通信路径所经历的通信跳数和相对跳数,以及从C到A的最佳单向通信路径所经历的通信跳数和相对跳数四者的最小值就是A和C之间的定位跳数。定义6、锚节点:即节点的坐标位置已知的节点,比如节点可通过配备的GPS获知自己的坐标位置。本发明方法中的锚节点表示为Bk,k∈[1,m]。定义7、未知节点(即待定位节点):即节点的坐标位置未知的节点,由于成本的原因,传感网系统中的大部分节点属于未知节点。本发明方法中的未知节点将表示为Ni,i∈[m+1,n]。定义8、节点:本发明方法谈到节点时将包含锚节点和未知节点,即节点可能属于锚节点也可能属于未知节点。在不需要明确指明其为锚节点或者未知节点时,本发明方法中的节点将用A、B、C、D、E、F、G、O、N等大写字母表示。定义9、首发节点:某个特定的测试包、探测包等的发起节点,有时也称为消息源节点。在机场环境下,假设节点(比如:有短程通信能力的机场设备)随机部署在机场区域内,用Bk,k∈[1,m]表示网络中的锚节点集合(即锚节点,通过GPS等方式已知节点的当前位置),用Ni,i∈[m+1,n]表示网络中的未知节点集合(待定位节点,即节点位置未知的节点)。假定所有节点均已知自己的id,比如,把自己的MAC作为自己的id。由于机场设备分布并不均匀,且每个机场设备的通信范围并非标准圆,机场设备的信号辐射半径也可能不相等,因此两个机场设备之间的通信路径具有非对称性,并随网络拓扑的变化而变化。本方案可完成任意两个机场设备之间的机场设备定位。需要特别说明的是,本发明方案也适用于节点均匀分布、节点的辐射范围是规则圆的理想场景。本发明采用的技术方案是这样的:一种无线传感网节点间的最佳单向通信路径选择和节点定位方法,包括以下步骤:第一步、节点广播“相对跳数测试包”,以便自己或者其直接邻居节点计算自己到它们的相对跳数。在此步中,任意节点,如A,首先广播自己的相对跳数测试包测试包含节点A的id号和发射功率强度;该节点A的直接邻居节点都向其返回应答消息,应答消息中包含了该直接邻居节点接收到该测试包的信号强度值节点A将从这些应答消息中找到最小的信号强度值作为自己在一跳范围能够辐射到的最远节点所收到的最小信号强度值并将返回信号强度最小值的节点作为自己的信号能够辐射到的最远节点,并将二者之间的距离作为自己的最远一跳距离;节点在收到应答消息后,依据公式可计算出自己到周边每一个直接邻居节点的相对跳数。第二步、节点广播“最佳单向通信路径探测包”,收到该探测包的节点将能够确定部分其他节点到自己的最小跳数、最佳单向通信路径和相对跳数。第二步的过程包括几个分步骤,具体如下:2.1步,首发节点,如A,首先构建一个“最佳单向通信路径探测包”并进行广播,该包包含节点A以及该探测包途经的每一跳节点的id、坐标位置以及从节点A到探测包接收节点的到达跳数a_hop和相对跳数r_hop等,并且,未知节点的坐标位置设为空,以此表示其为未知节点,初始时,该探测包的到达跳数a_hop和相对跳数r_hop均设置为0;首次收到源自首发节点A的探测包的任意节点,如B,将计算从A到自己,探测包所经历的跳数(上一跳的a_hop+1)、路径(上一跳的路径+自己的ID+自己的坐标位置)和相对跳数(上一跳时的相对跳数+上一跳到自己的相对跳数),并将其作为节点A到自己的最小跳数、最佳单向通信路径和相对跳数;节点B在该探测包中加入自己的id、坐标位置并修改从节点A到自己的到达跳数和相对跳数之后,然后转发;2.2步,当节点B再次收到源自A的探测包时,B亦将首先计算从A到自己,探测包所经历的跳数、路径和相对跳数,然后与自己记录的A到自己的最小跳数相比较;如果B计算新探测包到自己的到达跳数大于自己记录的最小跳数,则舍弃新收到的探测包;如果B计算新探测包到自己的到达跳数小于自己记录的最小跳数,则B将以新探测包所经历的跳数、路径和相对跳数作为A到自己的最小跳数、最佳单向通信路径和相对跳数,并更新记录;如果B计算新探测包到自己的等于自己记录的最小跳数,则B将比较计算新探测包从A到自己的相对跳数与自己记录的从A到自己的相对跳数,并以相对跳数较小者及其对应的通信路径作为A到B的相对跳数和最佳单向通信路径,并更新自己的相关记录;节点B在该探测包中加入自己的id、坐标位置并修改从A到自己的到达跳数和相对跳数之后,然后转发;2.3步,不断重复2.2步,一直到节点B所记录的相对跳数和最佳单向通信路径不再变化。第三步、当节点新增了部分其他节点到自己的最佳单向通信路径信息以后,该节点将发送“最佳单向通信路径通知包”,以告知这些新增节点到自己的最佳单向通信路径信息。第三步的具体过程为:节点,如B,向“最佳单向通信路径探测包”的首发节点,如A,发出的“最佳单向通信路径通知包”中包含A到自己的最佳单向通信路径信息,此后,A将可选择该最佳通信路径向B传送数据和消息。节点B发出的“最佳单向通信路径通知包”中还包含节点B不曾通知过的所有已经知道B到自己的最佳单向通信路径的节点。节点B所发出的“最佳单向通信路径探测包”中还包含A到自己的最小跳数和相对跳数。收到该通知包的节点将知悉自己到达该通知包发送节点的最佳单向通信路径等信息。此后,这些节点将可选择相应的通信路径向该发送节点传送数据和消息。第四步、节点通过“路径探测包请求发送消息”请求特定节点发送“最佳单向通信路径探测包”以获得该特定节点到自己的最佳单向通信路径信息;藉此,任意两个想实现相互通信的节点将相互知道对方到自己和自己到对方的最佳单向通信路径信息。第五步、每个锚节点分别计算自己与其余锚节点之间的定位跳数集合。第五步中,每个锚节点利用第一至四步得到的其余锚节点到自己,以及自己到其余锚节点的最小跳数和相对跳数,取自己与对应锚节点之间的最小跳数和相对跳数的最小值作为自己与对应锚节点之间的定位跳数,从而形成自己与其余锚节点之间的定位跳数集合其中,表示锚节点Bj和Bk之间的定位跳数。第六步、每个未知节点分别计算自己与各锚节点之间的定位跳数集合。第六步中,每个未知节点利用第一至四步得到的其余锚节点到自己,以及自己到其余锚节点的最小跳数和相对跳数,取自己与对应锚节点之间的最小跳数和相对跳数的最小值作为自己与对应锚节点之间的定位跳数,从而形成自己与其余锚节点之间的定位跳数集合其中表示锚节点Bj和未知节点Ni之间的定位跳数。第七步、每个锚节点分别计算自己与其余锚节点之间的平均跳距集合。第七步的具体过程如下:首先,每个锚节点分别计算自己与其余锚点之间的欧氏距离集合其中表示Bj和Bk之间的欧氏距离;其次,每个锚节点据此计算出自己到其余各锚点之间的平均跳距集合其中表示Bj和Bk之间的平均跳距,表示锚节点Bj和未知节点Ni之间的定位跳数。第八步、未知节点向距离自己的定位跳数最少的锚节点请求其平均跳距集合信息,并依据该集合信息估算各锚节点到自己的距离。第八步的具体过程如下:首先,未知节点求出距离自己的定位跳数最小的锚节点并将其视为自己的依托锚节点;接着,未知节点请求该依托锚节点将其平均跳距集合传给自己作为自己的平均跳距集合然后,未知节点从自己与各锚点之间的定位跳数集合中剔除其依托锚节点与自己之间的定位跳数信息,从而得到与集合大小一致的新的定位跳数集合最后,未知节点从自己的平均跳距集合和定位跳数集合中选择部分或全部锚点的信息构成对应的新的和集合,并计算出这些被选择的锚点到自己的估计距离集合E_DNi=H_SizeNiA×HOPNi={e_dNiBj=h_sizeNiBj*hopNiBj,j∈[1,m],j≠k
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1