一种基于能量的无线传感网络簇头继承分簇方法

文档序号:7748283阅读:1101来源:国知局
专利名称:一种基于能量的无线传感网络簇头继承分簇方法
技术领域
本发明属于无线传感器网络通信技术领域,具体是一种能量高效的基于簇头继承 机制的无线传感器网络路由方法,解决资源受限的无线传感器网络高效路由的问题,此方 法适用于分层的传感器网络结构。在无线传感器网络中应用此方法能够减少网络的能量损 耗,平衡网络中各个节点的负载,防止部分节点因能量消耗过快而失效,延长网络的生存时 间。
背景技术
无线传感器网络(Wireless Sensor Networks)是由部署在监测区域内大量的微 型传感器节点通过无线通信形成的一个多跳的自组织网络系统,其目的是协作地感知、采 集和处理网络覆盖区域里被监测对象的信息,并发送给观察者。无线传感器网络是一种无中心节点的全分布系统。通过随机投放的方式,众多传 感器节点被密集部署于监控区域。这些传感器节点集成有传感器,数据处理单元和通信模 块,他们通过无线信道相连,自组织地构成网络系统。传感器节点之间具有良好的协作能 力,通过局部的数据交换来完成全局任务。由于传感器网络的节能要求,多跳,对等通信方 式交织传统的单跳、主从通信方式更适合于无线传感器网络,同时还可有效避免在长距离 无线通信过程中所遇到的衰减和干扰等各种问题。通过网关,传感器网络还可以连接到现 有的网络基础设施上(如Internet,移动通信网络等),从而将采集到的信息传给远程的终 端用户使用。在无线传感网络的研究中,由于节点的能量有限,如何更有效的利用节点能量,均 衡网络负载,以延长网络的生存时间是最重要的问题。对于拥有大量节点的无线传感网 络,分层的拓扑结构在网络管理和可扩展性上具有较多的优势。在这种网络结构中,簇头 (Cluster Head, CH)承担簇内的数据收集和处理工作,收集的数据通过簇头间的路由发送 至Sink节点。分簇算法也是目前的主流路由算法,在众多的分簇算法中,LEACHdowenergy adaptive clustering hierarchy)算法是比较成熟且常用的分簇路由算法,它的成簇方法 贯穿于其后提出的很多层次路由协议中,如PEGASIS,HEED等。LEACH是一种基于簇的低 能耗自适应的路由协议,其操作被分为若干的轮(round),每轮包括簇的建立阶段和稳定阶 段,如图1所示。在簇的建立阶段,节点被选择担任簇头的概率将由一个阈值T(i)确定,网 络中每个节点i将产生一个(Tl之间的随机数,并将其与T(i)进行比较,产生的随机数小 于T(i)的节点将被选择担任簇头,其它节点则作为非簇头节点,选择距离自己最近的簇头 加入。T(i)表示如下 其中k是每轮中的簇头期望个数,N是网络中的节点总数,r表示当前的轮次
0 ≤r < 1/p,G是前r轮数据传输过程中均未担任过簇头的节点的集合;在数据通信阶段,
簇内节点把数据发送给簇头,簇头进行数据融合并将结果发送给Sink节点。LEACH算法能够保证各节点等概率地担任簇头,使得网络中的节点相对均衡地消耗能量。但LEACH算法 也存在许多局限,如需要频繁定期地对簇结构进行重构,采用完全随机的方式选择簇头,未 考虑节点剩余能量等。针对LEACH算法存在的局限,国内外学者提出了许多改进的算法, PEGASIS (Power-Efficient Gathering in Sensor Information System)算法提出 了族 内多跳的概念,通过在簇内建立一条遍历所有簇成员节点的链路,每个节点只与距离自己 最近的节点通信,并且在每一跳均进行数据融合,进一步降低了网络能耗。HEED(Hybrid Energy Efficient Distributed)算法针对LEACH簇头分布不均勻这一问题进行了改进,在 簇头选择中考虑了节点的剩余能量,并以主从关系引入了多个约束条件作用于簇头的选择 过程,能产生分布更加均勻的簇头。2009年,笔者针对LEACH算法中簇头选取机制的不足进 行了改进,提出了基于软阈值的簇头选举方法(STCS,SoftThreshold based Cluster-head Selection Method)。该算法不同于LEACH所采用的硬性阈值策略,而使用一种动态调整阈 值的方式,根据节点在上一轮担任的角色以及簇内节点的数目进行调整,而不是在每次担 任过簇头之后简单地将阈值设为O。软阈值的设置如公式(2)所示同样r表示当前的轮次(0 ≤r < 1/p,ρ是预先设定的节点被选中担任簇头的初始 概率),当r= 0时,T(i)|r=p;当 r>0 时, Grt表示在第r-1轮中被选择担任簇头的节点集合,C(i)表示节点i在第r_l轮 中所属的簇,NUM(C(i))表示该簇C(i)的簇成员数目。ε作为软阈值参数,用于对软阈值 进行调整,它的取值将影响节点在每一轮中成为簇头的概率。前面提到的算法大都是基于轮次(round)进行的,并且主要是从LEACH算法的阈 值设置上进行改进。本发明不同于前面提到的诸多改进算法,它将从一种全新的角度对 LEACH算法进行改进,摒弃了轮次的概念,避免了频繁定期地对簇进行重构,更有效地节省 网络能耗,延长网络的生存时间。

发明内容
本发明主要针对LEACH算法中需要频繁定期地进行簇的重构操作所带来的能耗, 以及LEACH中并未考虑节点的剩余能量,不利于节点能耗均衡的问题进行改进,提出了一种 基于能量的簇头继承分簇方法(ECI,Energy based Cluster-head InheritanceMethod)。该方法摒弃了传统无线传感网络分簇协议中的轮的概念,分簇的过程不必定期的进行,并 且在簇头选择的过程中考虑节点的剩余能量信息。另外,簇头选举将采用继承的方式,由原 簇头节点在簇内挑选剩余能量最多的节点作为继任簇头,从而在簇内自组织地完成簇头更 换的过程。通过减少簇的频繁重构,并且在簇头选择过程中考虑节点的剩余能量因素,能够 更好的均衡网络能耗,延长网络生存时间。本发明的操作过程主要分为三个步骤初始化阶 段,稳定阶段和簇头继承阶段,其操作过程示意图如图2所示。1.初始化阶段 初始化阶段将完成整个算法过程的初始化过程,为后面的算法正常执行建立基 础。网络中的所有传感器节点均同构,并且具有相同的初始能量,因此初始化可以采用与 LEACH相同的构建簇方式,基于随机概率选择初始时的簇头节点。网络中的节点在初始化阶段以相同的初始概率参与簇头选举,该初始概率记为 Pinit,它是网络中簇头节点占网络节点总数比例最优值。同样地,每个节点产生一个介于0 到1之间的随机数,然后将其和Pinit比较,如果随机值小于Pinit,节点被选中担任簇头节点。 作为簇头节点,需要首先为自己设置一个能量阈值E_thresh(比如为节点当前剩余能量的 一半),以决定何时更换簇头,设置好能量阈值后,节点广播ADV_CH消息,通知其他节点自 己担任簇头,ADV_CH消息中包含簇头的ID,之后簇头节点等待来自成员节点的请求加入消 息;如果节点产生的随机数大于或等于Pinit,则作为簇成员节点,等待来自所有其他簇头节 点所广播的ADV_CH消息,然后根据接收到的ADV_CH报文的信号强度选择距离自己最近的 簇头节点,并向该节点发送J0IN_REQ消息请求加入该簇,簇头节点收到簇内节点的J0IN_ REQ消息后,为簇内各个节点分配TDMA时隙,并将该信息通过ADV_SCH报文广播给簇内的节 点,当簇内的节点收到该报文后,算法的初始化阶段结束。各个簇内节点将在自己分配到的 时隙发送DATA报文给簇头节点,其他时间即进入休眠状态以节省能量。2.稳定传输阶段一旦簇的结构在初始化阶段构建好之后,ECI操作步骤进入稳定传输阶段,在这个 阶段中,各个簇内自组织地进行数据传输,簇成员节点将自己在环境中监测到的信息包含 在DATA报文中,同时附带自身当前的剩余能量信息curEnergy,然后,在稳定阶段的每一帧 中TDMA调度表所分配的时隙内将DATA报文发送给簇头节点。当簇内节点将DATA报文发 送给簇头节点之后,并不是像以往算法那样简单地进入休眠状态,然后等待下一次的传输, 而是继续等待一个时隙的时间,监听是否有来自簇头节点的CHG_CH消息,如果收到该消息 的话,节点将进入簇头继承阶段,否则节点进入休眠状态,等待下一帧的数据发送;作为簇 头节点,当收到来自各个簇内的DATA报文之后,提取各个簇内节点的剩余能量信息,并将 其存储于簇内节点剩余能量列表CMEnergyList中,当收集完一帧中所有簇内节点的监测 数据后,簇头将收集到的数据与自身的数据进行一些相应的融合操作,然后发送给Sink节 点,此时即完成了稳定阶段一个帧中的数据传输。在每个帧的末尾,簇头将会判断自己当前 所剩余的能量值是否仍然大于刚开始担任簇头时所设置的能量阈值E_Thresh,若是,簇头 节点将继续下一帧的数据传输,等待接收来自簇内的DATA报文,否则簇头节点进入簇头继 承阶段。3.簇头继承阶段在簇头继承阶段,原簇头节点将会把自己担任的簇头位置移交给同一个簇内的其他节点,也即簇头继承的过程。新簇头节点的选择将依据簇内节点的剩余能量信息来确定。 簇头节点在进入簇头继承阶段后,将根据之前存储的簇内剩余能量列表CMEnergyList选 择剩余能量最多的簇内节点作为继任的簇头节点,然后将继任节点的ID包含在CHG_CH报 文中,然后在下一帧中各个簇内节点发送DATA数据的下一个时隙,将CHG_CH报文分别发送 给簇内的节点。簇内节点收到CHG_CH报文后,首先比较自身的ID是否与CHG_CH报文中包 含的ID相同,若是,则节点得知自己即被选中作为继任簇头节点,将担任新的簇内传输的 簇头,新簇头同样需要设置一个能量阈值E_thresh,然后等待新的簇内成员发送的请求加 入报文;若簇内节点比较自身的ID与CHG_CH报文包含的ID不一样时,知道自己并没有被 选中担任簇头,然后在本地将新的簇头节点ID保存为CHG_CH报文所包含的ID值,并向新 簇头节点发送JOIN_REQ消息请求加入,实际也相当于向新的簇头节点注册的操作。随后的 过程和前面初始阶段描述的相同,当新的簇内节点分配好TDMA调度表后,ECI方法再次进 入稳定阶段。


图ILEACH算法的简要流程图;图2ECI方法的操作过程示意图; 图3ECI方法与LEACH和STCS算法节点存活数随时间的变化曲线图,图3a为场景 1,图3b为场景2。
具体实施例方式具体实施方案可分为初始化阶段,稳定阶段,簇头继承阶段三个部分。初始化阶段首先将节点以一定的密度部署在监测区域,各传感器节点烧录对应 的协议程序。i表示传感器节点的编号,各节点设置簇头选举的初始概率Pinit均设置为 0.05。每个节点产生一个0到1之间的随机数。将该数与初始概率Pinit进行比较,若随机 数小于Pinit,则节点设置自身为当前轮的簇头节点,同时设置一个能量阈值E_thresh为自 身当前剩余能量的1/2,并广播ADV_CH报文通告自身的簇头信息。否则,若随机数大于或等 于Pinit,则节点设置自身为簇成员节点,等待接受来自簇头的ADV_CH消息。当簇成员节点 接收到来自周围各簇头发送的ADV_CH消息之后,将比较接收到各簇头报文的信号强度,然 后选择信号最强的节点作为自己将要加入簇的簇头节点,并向其发送J0IN_REQ消息。簇头 节点接收到簇成员节点发送的J0IN_REQ消息后,将其设置为本簇的簇成员节点,并记录。 如此,距离较近的节点将组成簇,簇头节点为簇内成员分配TDMA调度表并发送至各成员节 点,网络中簇的初始划分过程结束。稳定阶段稳定阶段由若干的帧组成,每一帧完成一次簇成员节点的数据的收集。 在每个帧中,簇成员节点根据簇头节点分配的TDMA时隙,在指定的时间进行数据传输。数 据报文DATA将包括节点自身监测到的数据信息以及节点自身当前的剩余能量curEnergy, 被传给簇头节点,然后簇内节点将等待一个时隙,监测是否有来自簇头节点的CHG_CH报 文,若有,节点进入簇头继承阶段,否则节点进入休眠状态,等待下一帧中的TDMA时隙进行 数据采集传输。簇头节点收到来自所有簇成员的数据之后,提取DATA报文中的数据信息以及发送节点的剩余能量信息,将节点剩余能量存储于簇内节点剩余能量列表CMEnergyList 中,当收集完一帧中所有簇内节点的数据后,簇头节点将对所有簇内节点的数据以及自身 监测的数据进行一定的融合操作,然后将数据传送至Sink节点。这时即完成了一帧的数据 传输,簇头节点将检查自己当前的剩余能量是否低于初始担任簇头时所设置的能量阈值E_ thresh,若是,将触发簇头继承操作,节点进入簇头继承阶段。否则继续等待下一帧的数据传输。簇头继承阶段簇头继承阶段将完成簇头的更换过程,作为簇头节点,当判断自身 的剩余能量低于初始担任簇头时所设置的能量阈值时,它将从前面存储的CMEnergyList 列表中选择剩余能量最多的节点担任继任簇头,然后将继任簇头的ID保存在CHG_CH报文 中,在下一帧时分别给簇内节点发送更换簇头的CHG_CH消息。簇成员节点在发送完DATA之 后,等待一个时隙,收到来自簇头节点发送的CHG_CH报文后,首先判断报文中包含的ID是 否与自己的ID相同,若是,簇内节点得知自己被选中担任继任簇头,然后设置自己为簇头 节点,同时将能量阈值E_thresh设置为当前剩余能量的1/2,之后等待其它节点发送J0IN_ REQ消息向新簇头注册。如果簇内节点发现自己的ID与CHG_CH报文包含的ID不同时,则 保存新簇头节点的ID,并向新的簇头节点发送J0IN_REQ消息进行注册,新簇头也即继任簇 头收集完来自簇头节点的J0IN_REQ消息后,分别为簇内节点分配新的TDMA调度表并广播 通知簇内节点。这样即完成簇头继承操作过程。示范性实例分析网络生存时间(life-time)是衡量无线传感器网络路由协议性能的核心指标。由 于传感器节点能量有限,如何最大限度的利用传感器能量,尽可能地延长网络使用寿命是 诸多协议首要考虑的问题,基于能量的簇头继承分簇方法主要针对以LEACH为代表的传统 分簇协议通常需要频繁定期地进行分簇所带来的能量过快损耗的问题,采用能量阈值触发 簇头更换的方式,能够更有效的均衡网络的能耗,延长网络的生存时间,为了验证ECI方法 的有效性,从传感器节点的平均能量消耗以及存活节点数对所提出的方法进行仿真,并与 笔者之前提出的STCS算法以及经典的LEACH算法进行比较分析。使用的仿真工具是被业 界公认的NS2仿真工具。为了测试网络规模对路由协议的性能影响,设置了两种节点部署场景场景1 将100个节点随机分布在100*100m2的区域内,Sink节点部署在(50,175) 处的位置;场景2 将400个节点随机分布在400*400m2的区域内,Sink节点部署在(200, 500)处的位置;每个传感器节点的初始能量设为2J。基于能量的簇头继承分簇方法ECI与基于软 阈值的簇头选举方法STCS以及LEACH的网络生存时间与节点存活数比较曲线图如图3的 (a)、(b)所示。图3 (a)所示为在场景1下分别仿真LEACH,STCS和ECI方法。从图中我们可以清 晰地看出,ECI在很大程度上提高了网络生存时间不仅在第一个节点失效时间上,而且总 的网络生存时间都远超过LEACH和STCS。STCS算法由于允许节点多次参与簇头选举,虽然 让每一轮簇头选举有了更多的选择,不至于让网络中可以选择担任簇头的范围越来越小, 但是允许节点不止一次的参与簇头选举,导致一些节点可能会在算法初期由于多次担任簇头而过快耗尽了节点的能量,因此STCS的第一个节点失效时间总是早于LEACH算法。而 ECI方法采用基于能量的簇头继承机制,有效地均衡了网络中的节点能耗,延长了网络的生 存周期,并且不存在节点过早失效的问题。图3(a)很好地反映了 ECI方法的性能。另外,为了观察ECI方法在网络规模增大的情况下的性能,我们在场景2下进行仿 真。在监测区域和网络中的节点数目均扩大为原来四倍的较大规模网络场景中,我们同样 分别对ECI,STCS和LEACH三种算法进行仿真,并比较各自的网络存活节点随着时间轴的变 化曲线,如图3(b)所示。从图3(b)可以看出,在较大规模的网络场景下,算法的性能与场景1中的性能有 些许差异,在ECI方法中,第一个节点失效的时间早于其他两种算法,但整个变化曲线较为 平缓,并且在总体上的网络生存时间上仍然超过了 STCS和LEACH两种算法,因此从总体上 来说,ECI在网络规模扩大四倍的情况下性能仍然是最优的,网络生存时间仍然得到了扩展。
综上所述,基于能量的簇头继承分簇方法在平均网络能耗,延长网络生存时间等 方面相较LEACH和STCS而言都表现出了良好的性能,随着网络规模的扩大,本方法仍然能 够表现出较好的性能,显示了良好的可扩展性。符号说明WSN:无线传感器网络Sink:汇聚节点,基站ECI 基于能量的簇头继承分簇方法STCS 基于软阈值的簇头选举算法LEACH 低开销自适应分簇路由算法TDMA 时分多址Pinit 节点被选中担任簇头的初始概率E_thresh 节点能量阈值,决定何时更换簇头CMEnergyList 簇内节点剩余能量列表,保存簇内各节点的剩余能量curEnergy 节点当前剩余能量报文类型ADV_CH 广播通知其它节点自己担任簇头的报文J0IN_REQ 请求加入簇的报文ADV_SCH 分配TDMA调度表的广播报文DATA 传感器监测数据的报文CHG_CH 通知继任簇头的报文
权利要求
一种应用于分簇路由协议的基于能量的簇头继承方法,具体步骤主要包括初始化阶段,稳定阶段和簇头继承阶段;初始化阶段的操作步骤如下步骤1.1设Pinit为初始化阶段各节点被选择担任簇头的概率,各个节点分别设置Pinit=0.05,初始化阶段将完成网络分簇和首次簇头选举的过程;步骤1.2各节点在初始化阶段将分别产生一个0~1之间的随机数,将该随机数与Pinit进行比较,若随机数小于阈值,则节点设置自身为簇头节点,作为簇头节点,首先需要为自己设置一个能量阈值E_thresh,以决定何时更换簇头;设置好能量阈值后,节点广播ADV_CH消息,通知其他节点自己担任簇头,ADV_CH消息中包含簇头的ID,然后簇头节点等待来自簇成员节点的请求加入消息;若节点产生的随机数大于或等于Pinit,节点设置自身为簇成员节点,等待来自所有簇头节点所广播的ADV_CH消息;步骤1.3当簇成员节点接收到来自周围各簇头发送的ADV_CH消息之后,将根据接收到的ADV_CH报文的信号强度选择距离自己最近的簇头节点,并向该节点发送JOIN_REQ消息请求加入该簇;步骤1.4簇头节点收到簇成员节点的JOIN_REQ消息后,为簇成员节点分配TDMA时隙,并将该信息通过ADV_SCH报文广播给簇成员节点,当簇成员节点收到该报文后,网络的分簇及首次簇头选举完成,初始化阶段结束;稳定阶段的操作步骤如下步骤2.1簇成员节点根据簇头节点分配的TDMA时隙,在每一帧指定的时隙内向簇头节点发送DATA报文,报文中捎带簇成员节点自身的当前剩余能量,记为curEnergy;步骤2.2簇成员节点每次发送完DATA报文后,将继续等待一个时隙的时间,监听是否有来自簇头节点的CHG_CH消息,若收到的话,节点进入簇头继承阶段,否则,节点进入休眠状态,等待下一帧的数据传输;步骤2.3簇头节点收到来自簇成员节点的DATA报文后,将提取各个簇成员节点的剩余能量信息,并记录在一个簇内节点剩余能量列表CMEnergyList中,同时将收集到的簇成员节点采集的数据与自身的数据进行相应的融合操作,然后发送给基站(Sink节点);步骤2.4簇头节点在将数据发送给Sink节点之后,判断自身当前所剩余的能量值是否仍然大于初始担任簇头时所设置的能量阈值E_thresh;若是,簇头节点将继续下一帧的数据传输,等待接收来自簇成员节点的DATA报文,否则簇头节点进入簇头继承阶段;簇头继承阶段的操作步骤如下步骤3.1原簇头节点进入簇头继承阶段,将根据CMEnergyList列表选择簇内成员中剩余能量最多的节点担任继承簇头,将继承节点的ID包含在CHG_CH报文中,在下一帧中分别发送给各个成员节点;步骤3.2簇成员节点在等待的时隙中收到来自簇头的CHG_CH报文,进入簇头继承阶段,首先节点判断CHG_CH报文中包含的节点ID是否与自身的ID相同,如果是,节点得知自己被选中担任继任簇头,将自身设置为簇头节点,同时设置能量阈值E_thresh,然后等待其他成员节点的请求加入报文;步骤3.3如果节点判断CHG_CH报文包含的ID与自身ID不同,则将该ID保存为新的簇头节点ID,并向新的簇头节点发送JOIN_RFQ报文请求加入;继任簇头收到簇成员节点发送过来的JOIN_REQ报文后,为簇成员节点分配TDMA调度表,并通过ADV_SCH报文广播给簇成员节点;当簇成员节点收到该报文后,簇头继承操作结束,转到步骤2.1。
全文摘要
本发明公开一种能量高效的基于簇头继承机制的无线传感器网络路由方法,适用于分层的传感器网络结构。本路由方法由初始化,稳定传输和簇头继承三个阶段组成。初始化阶段完成整个网络的初始化分簇过程;稳定传输阶段,各个簇分别对簇内节点的数据进行收集并转发给基站;当簇头节点的剩余能量低于节点在首次担当簇头时所设置的能量阈值时,即进入簇头继承阶段,本阶段将进行簇头继承操作。本路由方法主要针对传统分簇算法需要定期地根据一个随机概率频繁更换簇头所带来的问题进行改进,通过能量阈值参数的设置,使得网络中节点的能耗更加均衡,并且簇头更加自主动态地进行更换,从而更有效地延长网络的生存时间。
文档编号H04L12/56GK101841884SQ20101016728
公开日2010年9月22日 申请日期2010年4月30日 优先权日2010年4月30日
发明者丁嵘, 杨冰 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1