一种基于延迟启动的无线传感器网络局部区域覆盖方法转让专利

申请号 : CN200810236424.2

文献号 : CN101547451B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 桂小林何欣李小勇张文东徐显椋

申请人 : 西安交通大学

摘要 :

本发明提出一种基于延迟启动的无线传感器网络局部区域覆盖算法,在活跃节点集的选取时机上,采用分轮机制,在每轮开始时动态选择活跃节点集;其次,在活跃节点集的选取方式上,利用圆交叉点覆盖判测算法,保证了区域的全覆盖、避免出现覆盖漏洞现象;最后,利用延时启动机制,减少每轮的活跃节点数量,减少“蚕食”现象的发生,延长了网络生命周期;该方法的运用,能够减少“蚕食”现象的出现,使得每轮的活跃节点数相对减少,最终在满足用户指定覆盖需求的同时,延长了网络的整体生存时间,具有较好的科学性和更高的应用价值。

权利要求 :

1.一种基于延迟启动的无线传感器网络局部区域覆盖方法,其特征在于:在活跃节点集的选取时机上,采用分轮机制,在每轮开始时动态选择活跃节点集,其中,在活跃节点集的选取方式上,采用基于圆交叉点覆盖决策方式,各节点被随机唤醒,唤醒后的节点根据延迟启动机制首先判断是否发生延时,延时出现时,该唤醒后的节点重新休眠;否则的话,基于圆交叉点覆盖判测规则,判断自身将要转换的状态:活跃状态、或休眠状态;

具体过程如下:采用分轮机制,将网络的整个运行阶段划分成M个时间段,每个时间段为一“轮”,其中,M有最小值K,K代表区域内所有节点可以划分的最大节点集数,每个节点集均可以覆盖整个区域,当M取最小值K时,每轮的长度为单个节点的生存时间,M值越大,各轮初始的活跃节点集选取造成的开销就越多,因此,需要在网络节点能量均衡与总开销之间寻求合适的M值,在每轮初始阶段,选取能够联合覆盖整个区域的节点组成一个活跃节点集,其他的节点则处于休眠状态,该初始阶段称为活跃节点集选取阶段,活跃节点在该轮的剩余时间内执行数据监测、通信工作,该阶段称为工作阶段,工作阶段的时间远大于活跃节点集选取阶段,每轮进行一次活跃节点集的选取,使区域内节点能量分布尽量均匀,充分利用所有节点。

2.根据权利要求1所述的基于延迟启动的无线传感器网络局部区域覆盖方法,其特征在于,所说的活跃节点集选取方式采用基于圆交叉点覆盖决策方式,节点首先接收活跃邻居节点发送的状态信息,然后利用圆交叉点覆盖判测规则,判断自身感知区域是否被已有的活跃邻居节点覆盖,未被完全覆盖时,将自身状态设置为活跃状态;否则,该节点可被其邻居节点代替,不需工作,将进入休眠状态。

说明书 :

一种基于延迟启动的无线传感器网络局部区域覆盖方法

技术领域

[0001] 本发明属于无线传感器网络覆盖控制技术领域,具体涉及一种基于延迟启动的无线传感器网络局部区域覆盖方法。

背景技术

[0002] 由于单个节点的感知能力有限,如何有效、合理的组织节点间的协作,实现人们希望的感知需求的技术称为无线传感器网络覆盖技术。它是无线传感器网络的基础技术,直接反映了无线传感器网络对环境的感知服务质量。同时,由于传感器节点的能量有限,提高感知服务质量和延长网络生存时间是无线传感器网络覆盖控制技术设计的关键。
[0003] 针对野外场景,特别是沙漠、战场等特殊环境,人们往往无法实现确定性部署。因此,目前的区域覆盖控制算法往往采用在指定区域随机均匀布撒大量冗余节点的方式进行初始部署。同时,利用休眠调度等节能机制,在保持原有目标区域覆盖度的同时,尽量延长网络的生存时间。按照其实施策略,可分为集中式算法和局部区域覆盖算法。
[0004] 集中式算法的覆盖决策判断往往集中在某个特定的节点(如基站或者某个特殊类型的节点)上进行,由该节点根据全网的拓扑信息,判断哪些节点休眠、那些节点处于活动状态。这就要求该节点必须有较高的计算能力、存储能力和通信能力。同时,网络节点的拓扑变化信息则需在整个网络中传输至特定节点,网络的通信负载较重,不仅影响到正常的数据通信,同时也会导致大量的能量浪费。因此,集中式控制算法不适合大规模网络、不利于网络的扩展。
[0005] 局部区域覆盖算法要求覆盖决策在每个节点上进行,将节点工作周期分为两个阶段:覆盖决策阶段、数据传送阶段(正常工作阶段),这类似于分簇Leach协议的分轮工作机制。覆盖决策阶段在每轮开始时进行,各节点会根据邻居节点提供的拓扑信息,判断自身状态是休眠还是活跃状态,由此完成整个网络的覆盖控制。覆盖决策阶段完成后,开始正常的数据传送。每轮决策的活跃节点集不同,导致了网络拓扑的动态变化。由于协议仅需邻居拓扑信息,通信量少、计算量低,同时,覆盖控制引起的通信仅在节点周围进行,对远处节点无影响。因此,能适用于任何密度、规模的网络,具有较好的可扩展性。
[0006] 由此可看到,局部覆盖决策算法要优于集中式覆盖算法,更能适合实际环境的应用需求,因此,正逐渐引起人们的广泛关注。
[0007] 目前已知局部区域覆盖决策算法,虽然能在保证用户感知需求的情况下延长网络的生命周期。但是,或者仍存在覆盖空洞现象、无法保证区域的全覆盖;或者存在蚕食现象,导致每轮的活跃节点数过多,相对缩短了网络的生命周期。

发明内容

[0008] 本发明的目的在于克服上述现有技术的缺点,提供了一种利用分轮机制与圆交叉点覆盖规则保证区域的全覆盖,利用延迟启动机制减少蚕食现象的发生,以延长网络生命周期的基于延迟启动的无线传感器网络局部区域覆盖方法。
[0009] 为达到上述目的,本发明采用的技术方案是:在活跃节点集的选取时机上,采用分轮机制,在每轮开始时动态选择活跃节点集,节点随机唤醒,首先判断是否发生延时,延时出现时,重新休眠;否则的话,根据基于圆交叉点覆盖判测算法,判断自身将要转换的状态:活跃状态、或休眠状态,再利用延迟启动机制,基于距离阈值实现活跃节点首轮筛选,然后再根据圆交叉点规则进行节点的最终状态确定;
[0010] 其具体过程如下:采用分轮机制,将网络的整个运行阶段划分成M个时间段,每个时间段为一“轮”,其中,M有最小值K,K代表区域内所有节点可以划分的最大节点集数,每个节点集均可以覆盖整个区域,当M取最小值K时,每轮的长度为单个节点的生存时间,M值越大,各轮初始的活跃节点集选取造成的开销就越多,因此,需要在网络节点能量均衡与总开销之间寻求合适的M值。在每轮初始阶段,选取能够联合覆盖整个区域的节点组成一个活跃节点集,其他的节点则处于休眠状态,该初始阶段称为活跃节点集选取阶段,活跃节点在该轮的剩余时间内执行数据监测、通信工作,该阶段称为工作阶段,工作阶段的时间远大于活跃节点集选取阶段,每轮进行一次活跃节点集的选取,使区域内节点能量分布尽量均匀,充分利用所有节点。
[0011] 本发明的活跃节点集选取方式采用基于圆交叉点覆盖决策方式,节点首先接收活跃邻居节点发送的状态信息,然后利用圆交叉点覆盖判测规则,判断自身感知区域是否被已有的活跃邻居节点覆盖,未被完全覆盖时,将自身状态设置为活跃状态;否则,该节点可被其邻居节点代替,不需工作,将进入休眠状态。由于仅接收活跃状态的信息,减少了网内的通信量,同时也再次避免了覆盖空洞现象。
[0012] 已知局部区域覆盖算法为避免因节点同时执行覆盖判断而导致的覆盖空洞问题,往往采用一个随机时钟计数器来使各节点依次唤醒并执行覆盖判断,这容易导致活跃节点分布的“蚕食”现象.通过对“蚕食”现象的研究发现,导致该现象的原因是距离已知活跃节点过近的节点最先唤醒造成的。为此,本发明提出了基于延迟启动的机制来减少蚕食现象的发生,以减少每轮的活跃节点数量,延长网络的生命周期。
[0013] 本发明利用延迟启动机制,基于距离阈值实现活跃节点首轮筛选,然后再根据圆交叉点规则进行节点的最终状态确定。该方法的运用,能够减少“蚕食”现象的出现,使得每轮的活跃节点数相对减少,最终在满足用户指定覆盖需求的同时,延长了网络的整体生存时间,具有较好的科学性和更高的应用价值。

附图说明

[0014] 图1是本发明分轮机制示意图;
[0015] 图2是本发明圆交叉点覆盖决策示例图;
[0016] 图3是节点蚕食现象示意图;
[0017] 图4是节点正六边形分布示意图;
[0018] 图5是活跃节点选择阶段延迟启动示意图;
[0019] 图6是节点状态转换图示意图。

具体实施方式

[0020] 下面结合附图对本发明作进一步详细说明。
[0021] 本发明在活跃节点集的选取时机上,采用分轮机制,在每轮开始时动态选择活跃节点集,不需要预先了解网络的整体拓扑结构;其次,在活跃节点集的选取方式上,利用圆交叉点覆盖判测算法,保证了区域的全覆盖、避免出现覆盖漏洞现象;最后,利用延时启动机制,减少了“蚕食”现象的发生,延长了网络生命周期。其关键技术点在于:
[0022] 技术点一:采用分轮机制
[0023] 算法基于分轮机制来实现活跃节点集的选取,将网络的整个运行阶段在时间上分成若干“轮”,如图1所示,每轮又分成两个阶段,活跃节点集选取阶段(ANST)和运行阶段(Work Time)。在活跃节点集选取阶段,各节点利用基于回退的交叉点覆盖判测规则判断自身状态,形成本轮的活跃节点集,并在运行阶段负责数据的监测与传输工作。
[0024] 技术点二:圆交叉点覆盖决策规则。
[0025] 本算法的活跃节点集选取方式采用基于圆交叉点覆盖决策方式:节点首先接收活跃邻居节点发送的状态信息,然后利用圆交叉点覆盖决策规则,判断自身感知区域是否被已有的活跃邻居节点覆盖,未被完全覆盖时,将自身状态设置为活跃状态;否则,说明该节点可被其邻居节点代替,不需工作,将进入休眠状态。由于仅接收活跃状态的信息,减少了网内的通信量,同时也再次避免了覆盖空洞现象。
[0026] 为便于说明圆交叉点覆盖决策规则,作如下定义和定理。
[0027] 定义1:假设节点的感知范围是一个以该节点为圆心的圆盘面,且各节点的感知半径相同,称该节点的感知范围为感知圆。
[0028] 定理1:一个节点的感知圆被其他邻居节点的感知圆覆盖的条件是:在该节点的感知圆内,至少有三个以上的邻居节点的感知圆与之交叠,并且①任意两个邻居节点的感知圆在该节点感知圆内的交点均被第三个邻居节点的感知圆覆盖;②任意一个邻居节点的感知圆与该节点的感知圆的交点均被另一个邻居节点的感知圆覆盖。上述条件同时满足时,该节点的感知圆被其邻居节点的感知圆覆盖。
[0029] 该定理涉及三个以上的邻居节点,当邻居节点个数小于3时,要么无法覆盖该节点的感知圆;要么虽能覆盖,但邻居节点几乎与节点自身重合,无法在实际中应用。定理1的示例如图2,虚线圆1判断其感知圆是否被周围的三个邻居的感知圆(实线圆2、3、4)覆盖,只要看这些邻居圆在虚线圆1内的交点是否被第三个圆覆盖,同时判断邻居圆与虚线圆1的交点是否被第三个圆覆盖即可。例圆3、4在圆1内的交点A被圆2覆盖;圆3与圆1的交点H、E分别被圆4和圆2覆盖;上图中A-K这9个交点均被第三个圆覆盖,因此,圆
1的感知范围被圆2、3、4覆盖。此时,圆1可休眠。
[0030] 定义2:给定一个监视区域A,被分布在其内的传感器节点覆盖的条件是,区域A内的任意一点均至少被一个传感器节点覆盖。当该条件满足时,称该区域A可被分布在其内的传感器节点全覆盖。
[0031] 引理1:一个区域A被分布在其内的传感器节点全覆盖的条件是①任意节点感知圆在该区域A内的交点均被第三个节点的感知圆覆盖;②任意一个节点的感知圆与该区域A的交点均被另一个节点的感知圆覆盖。③区域A边界上至少一点被一个节点的感知圆覆盖。其证明类似定理1。
[0032] 通过引理1,可将区域全覆盖问题转换为圆交叉点覆盖问题。因此,当一个区域被大量的冗余节点全覆盖后,通过定理1的节点覆盖判定规则可以减少大量的活跃节点数量。
[0033] 技术点三:延时启动的活跃节点选取机制;
[0034] 为避免因节点同时执行覆盖判断而导致的覆盖空洞问题,在每轮开始时,已知的局部覆盖决策算法中的节点不是同时执行覆盖判断,而是采用一个随机时钟计数器来使各节点依次唤醒并执行覆盖判断。这种随机唤醒时间选取,以及节点的覆盖判断依据来自于邻居活跃节点发送的状态信息的方式,会导致最先唤醒的节点最先处于活跃状态,从而出现活跃节点分布的“蚕食”现象。如附图3(a)、(b)所示,节点1首先唤醒并根据覆盖规则确认活跃后,节点2(虚线圆表示)也被唤醒并成为活跃状态,然后节点2周围的节点3、4、5依次唤醒并根据覆盖规则确认自身活跃,这种覆盖范围逐渐扩大,类似“蚕食”。由于节点的活跃状态会持续到一轮结束,因此,既使节点2稍后被节点3、4、5覆盖,其仍处于活跃状态。因此,“蚕食”过程导致了大量的活跃节点冗余,而活跃节点越多,表明参与工作的节点越多,必然会导致网络整体生存期缩短。
[0035] 通过对“蚕食”现象的研究发现,导致该现象的原因是距离已知活跃节点过近的节点最先唤醒造成的。如果想要避免这种现象,就要尽量让与已知活跃节点距离相对较远的节点最先唤醒。但是,实际节点的唤醒时间是随机的、不可控的,为此,提出了延时启动机制。
[0036] 该机制主要解决的问题是:
[0037] (1)将距离阈值作为延时启动的标准。即,在每轮开始时,与已知活跃节点距离小于指定距离阈值的节点将推迟覆盖机制判断的时间。
[0038] 设置距离阈值Dth的目的在于避免节点距离过近而造成地蚕食现象,但是,如果阈值设置过大,会导致过量的节点参与回退。为此,本算法利用计算几何理论,如图4所示,认为最佳距离阈值应小于 r表示节点的感知半径。
[0039] (2)延迟启动的方式。即,每轮开始时,各节点被随机唤醒,唤醒后节点根据接收到的邻居活跃节点发送来的状态信息首先判断其与已知的这些活跃节点的距离是否大于一个指定的阈值,如果满足条件,则继续执行节点覆盖决策判断来确定本节点的后续状态;否则,认为该节点与已知的活跃节点距离过近,应执行一次延时,令其继续休眠一段时间后,再重新唤醒,该次唤醒后的节点在重新接收活跃节点的状态信息后,直接执行节点覆盖决策规则,决定本节点的后续状态。
[0040] 延迟启动方式如图5所示,ANST为每轮的活跃节点集选取阶段,在该时间段内得到本轮的活跃节点集。其中,NAT为节点唤醒阶段,在该时间段内,所有节点均唤醒一次,节点唤醒的具体时刻Tawake由随机数决定,如公式1所示,Trs为本轮的开始时刻。节点唤醒后在一定时间段内接收活跃邻居节点发送的状态信息,该时间段称为NRT,即节点信息接收阶段。当节点发现与活跃邻居节点距离小于阈值时,会发生延时现象,将其休眠期延长一个时间段后再重新唤醒,该时间段称为DST(延时启动时间),其值如公式2所示,其中DAT为延时唤醒时间。
[0041] Tawake=Trs+Random()×TNAT (1)
[0042] TDST=TNAT-Tawake+Random()×TDAT (2)
[0043] 算法总体描述如下:
[0044] 算法基于分轮机制来实现活跃节点集的选取,将网络的整个运行阶段在时间上分成若干“轮”,如图1所示,每轮又分成两个阶段,活跃节点集选取阶段(ANST)和运行阶段(Work Time)。在活跃节点集选取阶段,各节点利用基于回退的交叉点覆盖决策规则判断自身状态,形成本轮的活跃节点集,并在运行阶段负责数据的监测与传输工作。
[0045] 活跃节点集的选取阶段如图5所示,当节点唤醒后在将NRT时间段内,接收活跃邻居节点发送的状态信息,该状态信息主要包含<位置、节点当前状态>。如果未出现与活跃邻居节点距离小于阈值的情况,节点将进行覆盖判断,决定后续状态;否则,进行延时,该节点将继续保持睡眠,过DST时间后再唤醒。重新唤醒后的节点将重新接收信息,并进行状态判断。在本算法中,节点最多延时一次,通过延时标记来表示。
[0046] 为避免节点同时唤醒而造成覆盖空洞的现象,在轮开始的NAT(节点唤醒阶段)时间内,各节点随机唤醒。DAT(延时唤醒时间)是当出现延时现象时,发生延时的节点在该时间段内唤醒。ST为同步时间,用以平滑各节点的时间差。
[0047] 节点在轮中的状态转换如图6所示,在每轮开始时,节点随机唤醒,首先判断是否发生延时,延时出现时,重新休眠;否则的话,根据基于圆交叉点覆盖判测算法,判断自身将要转换的状态:活跃状态、或休眠状态。如果是活跃状态,则向周围广播状态信息,以便周围的邻居接收,供其进行覆盖判断决策时使用;如果是休眠状态,则关闭节点、实现休眠。节点仅发生一次延时现象,由延时标记决定。当节点能量耗尽时,节点死亡。
[0048] 基于延时启动局部区域覆盖算法LACDS描述如下。
[0049] Node q表示执行该算法的节点;
[0050] Tawake表示每轮开始后节点的随机唤醒时刻;
[0051] TNRT表示节点接收活跃邻居节点发送的状态信息的时间;
[0052] Node q’表示节点q附近的处于活跃状态的邻居节点;
[0053] Dq表示节点q和活跃邻居节点q’之间的距离;
[0054] Td表示设定的距离回退阈值;
[0055] TDST表示节点q执行一次延时的休眠时间;
[0056] N[]表示节点q已知的活跃邻居节点集;
[0057] Tsleep表示节点q在本轮的剩余休眠时间。
[0058] 为便于表述,此处用一个循环等待来表示时钟计数。
[0059] Algorithm LACDS for each Node q
[0060] Begin
[0061] Do Loop//Round Loop
[0062] //Each round start
[0063] Set Node wait wake time Tawake for Node q;
[0064] DO Loop //Node carry out random sleep time
[0065] Until Tawake is expire;
[0066] Set Awake state for node q;
[0067] Set Node receive message time TNRT for Node q;
[0068] Do Loop
[0069] Receive state message sent by active neighbor Node q’;
[0070] If(Node q has not delayed tag)Then
[0071] Computing the distance Dq from Node q to Node q’;
[0072] If(Dq<Td)Then
[0073] //Node q carry out once delayed
[0074] Set delayed time TDST and Delayed tag For Node q;
[0075] Set Sleep state for node q;
[0076] DO Loop//Node carry out de layed time
[0077] Until TDST is expire;
[0078] ReSet NOde receive message time TNRT for Node q;
[0079] Endif;
[0080] Endif;
[0081] Until TNRT is expire;
[0082] Carry out Circle Intersection point coverage Decision-makingmethod;
[0083] If Node q is covered by active Neighbor Nodes N[]Then[0084] Set sleep time Tsleep and sleep state for Node q;
[0085] Do Loop
[0086] //Node q go to sleep Until current roumd end;
[0087] Until Tsleep is expire;
[0088] Else
[0089] Set Active state to Node q;
[0090] Broadcast ing node q state message;
[0091] Node q on duty until the current Round end;
[0092] Endif
[0093] Until Node q Dead;//Round loop end
[0094] End.
[0095] 本发明主要是针对已知无线传感器网络局部区域覆盖算法或者无法保证区域的全覆盖;或者因蚕食现象而导致的活跃节点数过多,相对缩短网络生命周期的问题,提出了一个基于延迟启动的局部覆盖决策算法。通过仿真验证,与已知覆盖决策算法相比,其每轮的活跃节点数相对较少,最终的网络生命周期相对延长。仿真表明,在保持区域指定覆盖度的情况下,网络整体生存时间比已知算法至少延长一个传感器节点的生存时间。