无线传感器网络能耗均衡覆盖调度及路由跨层设计方法

文档序号:7794517阅读:186来源:国知局
无线传感器网络能耗均衡覆盖调度及路由跨层设计方法
【专利摘要】本发明提供了一种无线传感器网络能耗均衡覆盖调度及路由跨层设计方法。首先利用改进的ECCP冗余节点判定算法,在考虑节点剩余能量的基础上,构造最小节点覆盖集。随后通过节点能耗速率来预测节点寿命,并确定激活的额外节点,使得网络中节点能耗尽可能均衡。本发明提供的覆盖调度算法将节点能耗速率作为调度依据,并以此建立了关联路由协议的直接通道,可实现综合覆盖调度和路由的跨层设计。本发明提供了以定向扩散路由协议为例子的具体结合的方法。仿真结果显示,应用本发明提供的覆盖调度算法能够显著延长网络寿命。
【专利说明】无线传感器网络能耗均衡覆盖调度及路由跨层设计方法

【技术领域】
[0001]本发明属于无线传感器网络应用层的覆盖技术,以及综合路由的跨层设计【技术领域】。

【背景技术】
[0002]无线传感器网络(Wireless Sensor Network, WSN)通常是由大量密集分布的微小传感器节点通过自组织方式构成的。传感器节点采用电池供电,不进行充电和电池更换,因此网络生存期是WSN至关重要的性能指标。影响网络生存期的主要有两个因素,一是节点本身的能耗,二是节点能耗的均衡性。前者是指尽量减少节点的能耗,后者是指网络节点的能耗应尽量平均,不至于部分节点能耗过快,而另外节点能耗较少。若不充分考虑节点能耗的均衡性,甚至可能出现某些节点因能量耗尽导致WSN无法正常工作,而其它节点剩余90%以上能量的情况。
[0003]WSN通常由大量节点密集分布组成,节点布设存在较大的冗余度,对于正常完成网络的应用任务,并不需要所有节点均处于工作状态。因此在满足覆盖要求的情况下,将节点分为若干不相交的节点集合,也叫覆盖集,一个时间段只需要一个节点集合处于工作状态即可。对于多个不同的覆盖集,依据某种规则分别调度使用,称之为覆盖调度。
[0004]覆盖调度有集中式和分布式两种方式。集中式调度的效果较好,但要求了解全网所有节点的位置信息等,对于通常由成千上万个节点组合的大规模WSN而言,缺乏足够的实用意义。分布式调度只需获取邻居节点信息便可局部分布式进行,因此具有很好的扩展性。同时分布式调度减少了调度过程的通信开销,有利于减少网络能耗。从理论上而言,分布式调度的效果相对没有集中式好,减少两者的差别是分布式调度一直努力的目标。
[0005]覆盖调度的本质就是利用WSN节点布设的冗余度,在不同工作时间内更换工作节点,其主要依据就是处于工作状态的节点的剩余能量。在已有的覆盖调度方法中,几乎都是直接以节点剩余能量为调度依据的,当节点最小剩余能量到达某个预定的阈值时,便调度新的覆盖集工作。
[0006]本发明在节点剩余能量的基础上考虑了能耗的速率,对节点剩余能量进行预测,将能耗速率较快的节点更换掉,以更有效地实施节点覆盖的调度,就此提供了一种新的能耗均衡的分布式WSN覆盖调度算法(An Energy-Balance Coverage Configurat1nProtocol,EBCCP).在网络技术中路由选择对节点能耗的影响至关重要,因此本发明通过节点能耗将覆盖调度与路由相结合,提供了综合两者的跨层设计方法,该方法适用于任何已有的WSN路由协议。基于定向扩散路由协议的仿真结果显示,本发明提出的覆盖调度算法可显著延长网络寿命。


【发明内容】

[0007]本发明的目的是提供基于节点能耗速率的无线传感器网络能耗均衡覆盖调度算法,并与路由技术相结合,提供综合路由和覆盖调度的跨层设计方法。
[0008]为便于说明本发明的内容,首先结合图1给出本发明中涉及的基本概念。
[0009]1..欧拉距离:区域A中的点p(x,y)和节点v(xv,yv)的欧拉距离
[0010]d(p, V) = yj(x -..V,.): + (j; — ν.):
[0011]2.邻居节点集:节点V的邻居节点集
[0012]
Niy) = {/ e ^ I d{vj.) < Rc,v /}
[0013]其中N是监测区域内的节点集,R。是节点V的通信半径,d(v, i)是节点V和i之间的欧拉距离。
[0014]3.节点感知区域:节点V的感知区域
[0015]R(v) = {p e A|d(p, v) <RS}
[0016]其中A(边界为C(A))为监测范围,d(p, v)是点p和节点V之间的欧拉距离。
[0017]4.节点感知圆弧:节点V的感知圆弧
[0018]C (v) = {p e AI d (p, V) =Rj
[0019]5..内部交点集I (V):交点集
[0020]I (V) = {p IP e C (i),P e C (j),p e R (v)}
[0021]为节点V感知区域内的邻居节点的感知圆的交点,其中i,j e N(V),如图1中圆形交点所示。
[0022]6.边界交点集B (V):交点集
[0023]B (v) = {p IP e C(i), p e C(v)}
[0024]为节点V感知区域的边界与V的邻居节点的感知圆的交点,其中,i e N(V),如图1中方形交点所示。
[0025]7.监测区域边界交点集E(V):交点集
[0026]E (V) = {p IP e C (V),P e C(A)}
[0027]为节点V的感知圆与目标区域A的边界的交点,如图1中棱形交点所示。
[0028]8..冗余节点:如果某节点在监测区域内的感知区域被邻居节点的感知区域完全覆盖,则该节点为冗余节点,可以进行休眠,如图1中的节点V所示。
[0029]9.节点状态:
[0030]Ready-on-duty:节点初始状态;
[0031]On-duty:每一轮调度阶段后的活跃节点状态;
[0032]Ready-off-duty:满足冗余节点判断条件的节点,准备进入休眠状态;
[0033]Withdraw:构成最小覆盖集后,所有处在非On-duty状态的节点的状态;
[0034]Off-duty:每一轮调度阶段后的休眠节点状态。
[0035]下面说明本发明的技术方案:
[0036]第一步判定冗余节点
[0037]1.非边界节点的冗余判断的步骤:
[0038](I)对任一个节点V,求出B (V),
[0039]I)如果不存在B(V),则节点V不是冗余节点,不可休眠;
[0040]2)若存在B (V)并且被覆盖,则进入⑵;
[0041]若未被覆盖,则V不是冗余节点。
[0042](2)求I (V),判断I (V)是否被覆盖:
[0043]I)若I (V)被覆盖,则节点V是冗余节点,可以进行休眠;
[0044]2)否则不是冗余节点。
[0045]2.边界节点的冗余判断步骤:
[0046](I)求 E (V),对 E (V)进行判定:
[0047]I)若E (V)被覆盖,进入(2);
[0048]2)否则,V不是冗余节点。
[0049](2)求 B (V),
[0050]I)若不存在B (V),则V不是冗余节点;
[0051]2)若存在,则对在监测区域内部的B(V)判断是否被覆盖:
[0052]若被覆盖,则进入(3);
[0053]否则,V不是冗余节点。
[0054](3)求I (V),对在监测区域内部的I (V)判断是否被覆盖:
[0055]I)若被覆盖,则节点V为冗余节点,可以进行休眠;
[0056]2)否则不是冗余节点。
[0057]第二步能耗均衡覆盖调度
[0058]1.节点对自身到Sink点的跳数进行测量:
[0059](I) Sink点设置自己的跳数为0,并以节点的通信半径R。为半径广播测量消息;
[0060](2)收到测量消息的节点延迟随机时间Λ (t)后,比较收到消息中的跳数h(j为收到的消息编号),设置自己的跳数为min (hj) +1 ;
[0061](3)这些节点再以R。为半径广播消息,直到所有节点都完成了测量。
[0062](4)所有节点的跳数置为Mi=I, 2...η),跳数相同的节点的层数相同。
[0063]2.初始化能耗速率:
[0064](I)节点集V中所有节点初始为Ready-on-duty状态,初始化自身的能耗速率sv=0 (v=l, 2,3...);
[0065](2)在随机时间Tbadttjff后进行邻居发现,包括邻居的ID,位置,剩余能量和所在的层数。
[0066](3)所有节点初始化能耗速率为O。
[0067]3.采用第一步冗余节点判断方法,
[0068](I)满足休眠条件的节点进入Ready-off-duty状态;
[0069](2)不满足的直接进入On-duty状态。
[0070]4.0n-duty状态的节点组成最小节点覆盖集:
[0071](I)所有 Ready-off-duty 状态的节点退避 τν=((1_β) XEv/Em+ β Xrand(I) XTc)时间后,广播Sleep信令,之后进入Withdraw状态。其中Ev是自身的剩余能量,Em是邻居剩余能量的最大值,β是随[0,I]之间的随机因子,Τ。是冗余判定的总时间,rand (I)是[O, I]区间均匀分布的随机数。
[0072](2)若在广播Sleep消息之前收到Sleep消息,则更新邻居节点表,删除Withdraw状态的邻居节点,返回3。
[0073](3)经过多次循环,所有On-duty状态的节点组成最小节点覆盖集C。。
[0074]5.预测能耗速率,激活额外节点:
[0075](I)所有On-duty状态的节点预测自身加入覆盖集后的能耗速率值、..= Σ、'/?,其中V e Ctl, η为与节点V同一层(节点的层数标识见算法第一步)的能耗速率不为O的邻居节点个数(包括节点V自身Xsi为与节点V同一层邻居节点的能耗速率值(包括节点V自身上一轮的能耗速率),且Si ^ O。
[0076](2)如果所有的Si=O,则不执行计算。然后,节点预测自身的生存时间tv=Ev/sv,其中Ev是节点的剩余能量。
[0077]I)如果tv〈tth,则广播Wake信令。Wake信令包含与自身处在同一层且剩余能量最大的邻居节点的ID号。
[0078]2)处于Withdraw状态的节点收到信令后,检查信令中的ID号与自身ID号是否相等:
[0079]若相等,则从Withdraw状态进入On-duty状态;
[0080]若不相等,则进入Off-duty状态。
[0081](3)所有的On-duty状态节点构成非最小节点覆盖集C,并且新加入的额外节点只负责转发数据,不负责收集数据,以节省能量。
[0082]第三步路由协议的结合应用
[0083]1.在第二步所得非最小节点覆盖集上运行路由协议;
[0084]2.当覆盖集中任一个节点的能量消耗完时,所有On-duty状态的节点通过计算更新自身的能耗速率值,所有Off-duty状态的节点把自身的能耗速率值置为0,同时更新V,返回第二步;
[0085]3.循环I和2,直到找不到一组节点能够完全覆盖监测区域时,网络寿命终止。
[0086]本发明的有益效果:本发明提供了一种新的能耗均衡的分布式WSN覆盖调度算法。首先利用改进的ECCP冗余节点判定算法,在考虑节点剩余能量的基础上,构造最小节点覆盖集。随后,通过能耗速率预测来计算节点寿命,同时决定激活的额外节点,使得网络中节点能耗尽可能的均衡。所得的调度算法可以与任何路由协议相结合。仿真结果显示,本发明提供的覆盖调度算法具有较好的性能,显著延长网络寿命。

【专利附图】

【附图说明】
[0087]图1是与节点V的内部交点集、边界交点集和监测区域边界交点集;
[0088]图2是冗余节点判断算法伪代码;
[0089]图3是覆盖盲点的广生不意图
[0090]图4是覆盖调度过程的时间关系;
[0091]图5是覆盖调度过程中节点状态转换图;
[0092]图6是综合覆盖调度算法与路由的跨层实现过程。

【具体实施方式】
[0093]第一步判定冗余节点
[0094]1.非边界节点的冗余判断的步骤:
[0095](I)对任一个节点V,求出B(v),如果不存在B(v),则节点V不是冗余节点,不可休眠;若存在B(V)并且被覆盖,则进入(2);若未被覆盖,则V不是冗余节点。
[0096](2)求I (V),判断I (V)是否被覆盖,若I (V)被覆盖,则节点V为冗余节点,可以进行休眠;否则不是冗余节点。
[0097]2.边界节点的冗余判断步骤:
[0098](I)求E(v),对E(V)进行判定,若E(V)被覆盖,进入(2);否则,V不是冗余节点。
[0099](2)求B (V),若不存在B (V),则V不是冗余节点,若存在,则对在监测区域内部的Β(ν)判断是否被覆盖,若被覆盖,则进入(3),否则,V不是冗余节点。
[0100](3)求I (V),对在监测区域内部的I (V)判断是否被覆盖,若被覆盖,则节点V为冗余节点,可以进行休眠;否则不是冗余节点。
[0101]图2给出了上述过程实施的伪代码。
[0102]第二步能耗均衡覆盖调度
[0103]1.节点对自身到Sink点的跳数进行测量:
[0104](I) Sink点设置自己的跳数为0,并以节点的通信半径Re为半径广播测量消息。
[0105](2)收到测量消息的节点延迟随机时间Λ (t)后,比较收到消息中的跳数hj (j为收到的消息编号),设置自己的跳数为min(hp+Ι,这些节点再以R。为半径广播消息,直到所有节点都完成了测量。所有节点的跳数置为hi(i=l,2...η),跳数相同的节点的层数相同。延迟Λ (t)是为了防止相邻节点同时广播消息而产生冲突。
[0106]2.节点集V中所有节点初始为Ready-on-duty状态,初始化自身的能耗速率sv=0 (v=l, 2,3...),在随机时间Tbad5t5ff后进行邻居发现,包括邻居的ID,位置,剩余能量和所在的层数。所有节点初始化能耗速率为O。延后Tbadttjff是为了避免多个节点同时广播导致道冲突和消息丢失。
[0107]3.采用第一步冗余节点判断方法,满足休眠条件的节点进入Ready-off-duty状态。不满足的直接进入On-duty状态。
[0108]4.0n-duty状态的节点组成最小节点覆盖集:
[0109](I)所有 Ready-off-duty 状态的节点退避 τν=((1_β) XEv/Em+ β Xrand(I) XTc)时间后,广播Sleep信令,之后进入Withdraw状态。其中Ev是自身的剩余能量,Em是邻居剩余能量的最大值,β是随[0,I]之间的随机因子,Τ。是冗余判定的总时间,rand (I)是[0,1]区间均匀分布的随机数。引入随机数是为了避免剩余能量相同的节点选择相同的时延。退避τν是为了剩余能量少的节点休眠的机会更大,达到平衡网络内节点能耗的作用。同时也能也保证了邻居节点并发休眠可能出现的覆盖盲区。
[0110]下面结合图3进一步说明。如图3所示,节点I和2均满足冗余覆盖条件,但节点I是以节点2工作为条件的,节点2是以节点I工作为条件的,若两者同时进入休眠状态就会导致覆盖盲点的产生。
[0111](2)若在广播Sleep消息之前收到Sleep消息,则更新邻居节点表,删除Withdraw状态的邻居节点,返回3。
[0112](3)经过多次循环,所有On-duty状态的节点组成最小节点覆盖集C。。
[0113]5.预测能耗速率,激活额外节点:
[0114](I)所有On-duty状态的节点预测自身加入覆盖集后的能耗速率值= Σ '.^,其中V e Ctl, η为与节点V同一层(节点的层数标识见算法第一步)的能耗速率不为O的邻居节点个数(包括节点V自身Xsi为与节点V同一层邻居节点的能耗速率值(包括节点V自身上一轮的能耗速率),且Si ^ O。
[0115](2)如果所有的Si=O,则不执行计算。然后,节点预测自身的生存时间tv=Ev/sv,其中Ev是节点的剩余能量。
[0116]I)如果tv〈tth,则广播Wake信令。Wake信令包含与自身处在同一层且剩余能量最大的邻居节点的ID号。
[0117]2)处于Withdraw状态的节点收到信令后,检查信令中的ID号与自身ID号是否相坐寸,
[0118]若相等,则从Withdraw状态进入On-duty状态;
[0119]若不相等,则进入Off-duty状态。
[0120](3)所有的On-duty状态节点构成非最小节点覆盖集C,并且新加入的额外节点只负责转发数据,不负责收集数据,以节省能量。
[0121]图4进一步提供上述调度过程具体的内容及时间关系。调度阶段包括邻居发现、冗余节点判定和额外节点激活三个子阶段。在邻居发现阶段,节点通过广播Hello消息与邻居节点交换信息获取邻居节点的ID、位置、节点跳数和能量信息,建立邻居节点表。在此基础上,节点判定自身是否满足冗余条件,若不满足冗余条件,则节点在本轮的稳定阶段保持活跃状态,若节点满足冗余条件,则进入更新邻居表和重新判断阶段,最后所有活跃状态的节点依据规则激活额外节点,所有活跃状态的节点负责对目标区域进行感知、监测以及数据传输。所有不满足条件的节点进入休眠状态,直到下一个调度阶段。通常稳定阶段时间Tw远大于调度阶段时间Ts,以降低算法开销。
[0122]图5具体给出了调度过程中节点状态的转换图。
[0123]第三步与路由协议结合应用
[0124]本发明提供的覆盖调度算法可以应用于任意路由协议,原因是路由与覆盖调度的关系是通过节点能耗这一一般性性过程实现的。
[0125]下面以定向扩散(Directed Diffus1n, DD)路由协议为例具体说明。
[0126]1.应用第一步和第二步算法,选出工作组节点。
[0127]2.Sink节点广播Interest,按照DD协议建立路由。
[0128]3.数据收集和数据传输阶段,到达一轮时间后,转入到1,循环执行。
[0129]图6具体给出了调度算法与路由协议具体的结合应用过程。
【权利要求】
1.一种无线传感器网络覆盖中冗余节点的判定方法,其特征是: 1)非边界节点的冗余判断的步骤: (1)对任一个节点V,求出B(V),如果不存在B(V),则节点V不是冗余节点,不可休眠;若存在B (V)并且被覆盖,则进入(2);若未被覆盖,则V不是冗余节点; (2)求I(V),判断I (V)是否被覆盖,若I (V)被覆盖,则节点V是冗余节点,可以进行休眠;否则不是冗余节点; 2)边界节点的冗余判断步骤: (1)求E(V),对E(V)进行判定,若E(V)被覆盖,进入(2);否则,V不是冗余节点; (2)求B(V),若不存在B (V),则V不是冗余节点;若存在,则对在监测区域内部的B (V)判断是否被覆盖,若被覆盖,则进入(3);否则,V不是冗余节点; (3)求I(V),对在监测区域内部的I(V)判断是否被覆盖,若被覆盖,则节点V为冗余节点,可以进行休眠;否则不是冗余节点。
2.基于节点能耗速率的无线传感器网络能耗均衡覆盖调度算法,其特征是: 1)节点对自身到Sink点的跳数进行测量: (1)Sink点设置自己的跳数为O,并以节点的通信半径R。为半径广播测量消息; (2)收到测量消息的节点延迟随机时间Λ(t)后,比较收到消息中的跳数h(j为收到的消息编号),设置自己的跳数为min (hj) +1,这些节点再以R。为半径广播消息,直到所有节点都完成了测量;所有节点的跳数置为hi(i=l,2...η),跳数相同的节点的层数相同; 2)节点集V中所有节点初始为Ready-on-duty状态,初始化自身的能耗速率sv=0 (v=l, 2, 3...);在随机时间Tbaektjff后进打邻居发现,包括邻居的ID,位直,剩余能量和所在的层数;所有节点初始化能耗速率为O ; 3)采用第一步冗余节点判断方法,满足休眠条件的节点进入Ready-off-duty状态;不满足的直接进入On-duty状态; 4)On-duty状态的节点组成最小节点覆盖集: (1)所有Ready-off-duty 状态的节点退避 τ ν=((1-β ) XEv/Em+3 Xrand(I) XTc)时间后,广播Sleep信令,之后进入Withdraw状态;其中Ev是自身的剩余能量,Em是邻居剩余能量的最大值,β是随[O, I]之间的随机因子,Tc是冗余判定的总时间,rand (I)是[O, I]区间均匀分布的随机数; (2)若在广播Sleep消息之前收到Sleep消息,则更新邻居节点表,删除Withdraw状态的邻居节点,返回3); (3)经过多次循环,所有On-duty状态的节点组成最小节点覆盖集C。; 5)预测能耗速率,激活额外节点: (1)所有On-duty状态的节点预测自身加入覆盖集后的能耗速率值\= Σ.、./?,其中V e C0, η为与节点V同一层(节点的层数标识见算法第一步)的能耗速率不为O的邻居节点个数(包括节点V自身Xsi为与节点V同一层邻居节点的能耗速率值(包括节点V自身上一轮的能耗速率),且Si^O; (2)如果所有的Si=O,则不执行计算;然后,节点预测自身的生存时间tv=Ev/sv,其中Ev是节点的剩余能量; 如果tv〈tth,则广播Wake信令;Wake信令包含与自身处在同一层且剩余能量最大的邻居节点的ID号; 处于Withdraw状态的节点收到信令后,检查信令中的ID号与自身ID号是否相等, 若相等,则从Withdraw状态进入On-duty状态; 若不相等,则进入Off-duty状态; (3)所有的On-duty状态节点构成非最小节点覆盖集C,并且新加入的额外节点只负责转发数据,不负责收集数据,以节省能量。
3.结合权利要求1和权利要求2算法的跨层路由设计方法,其特征是: 1)在权利要求1和权利要求2算法所得非最小节点覆盖集上运行路由协议; 2)当覆盖集中任一个节点的能量消耗完时,所有On-duty状态的节点通过计算更新自身的能耗速率值,所有Off-duty状态的节点把自身的能耗速率值置为0,同时更新V,返回第二步; 3)循环执行I)和2),直到找不到一组节点能够完全覆盖监测区域时,网络寿命终止。
【文档编号】H04W52/02GK104168631SQ201410004743
【公开日】2014年11月26日 申请日期:2014年1月6日 优先权日:2014年1月6日
【发明者】熊庆旭, 付寅飞 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1