赵秋月,张玲华
(南京邮电大学 通信与信息工程学院,江苏 南京 210023)
无线传感器网络(Wireless Sensor Network,WSN)是由一定区域内随机分布的无线传感器节点组成的自组织网络[1]。传感器节点凭借自组网、自感知等优点被广泛应用到军事、交通、医疗等领域[2]。但由于节点能量有限,一旦能量耗尽将导致整个网络不能正常工作甚至失效。因此,能量决定了整个网络的生存时间,根据该特点达到降低能耗,延长网络生命周期的目的是无线传感器网络研究中的一项重要内容[3]。
为了延长WSN 的生命周期,许多学者提出了网络分簇的概念,即节点集合成群,可以有效减少整个网络的能量消耗。基于此概念,Heinzelman 等人提出了经典分簇路由协议——低功耗自适应集簇分层型协议(Low Energy Adaptive Clustering Hierarchy,LEACH)。该协议因其广泛的适用性以及较好的节能效果而备受青睐[4]。该协议通过簇头采集簇内成员的数据,并转发给基站,避免了节点直接将数据发送给基站从而消耗过多能量的问题。但簇头选举的随机性可能造成节点死亡速度加快,整个网络生命周期减少的情况。文献[5]针对此情况提出了LEACH-C 协议,该协议考虑了节点的剩余能量,优化了簇头的选举,但每个节点要向基站发送自己的剩余能量,频繁信息交互会造成额外的能量损耗。文献[6]提出了新算法O-LEACH 协议,该协议在选取簇头时仅考虑剩余能量大于初始能量10%的节点,但没有考虑其他的影响因素。文献[7]给出了RED-LEACH 协议,该协议在选取簇头时,不仅仅考虑剩余能量,同时考虑节点到基站的远近,减少了能量损耗,延长了网络周期。文献[8]提出了一种基于节点位置和节点剩余能量的簇首节点选取算法,称之为I-LEACH 协议,该协议给出了簇头选举公式,每轮中距离区域中心越远的节点和剩余能量越低的节点被选为簇头的概率越低,减少了能量消耗并延长了网络生命周期。但是该协议没有考虑到簇内成员节点的个数并且对簇头选举函数的修正存在一定问题。
针对以上情况,本文提出了一种基于分区和分簇情况的 LEACH改进协议(LEACH Partition -Clustering,LEACH-PC)。在该算法中,通过将网络划分为两个区域来对簇头选举阈值函数进行修正。同时,普通节点在选择是否加入某簇头的过程中,会对相邻簇头以及基站之间的距离进行计算,当与基站之间的距离小于与簇头之间的距离时,直接与基站进行单跳通信,反之,则与距离最近的簇头进行连接。通过仿真实验表明,LEACH-PC协议与传统LEACH 协议以及I-LEACH[8]协议相比,降低了网络能耗,延长了整个网络的生命周期。
本文对WSN 进行以下设定[9]:
(1)基站能量很大,且具有稳定的能量供应,数据处理能力不限;
(2)每个节点都有与基站进行直接通信的能力,可以通过感知信号的强度,计算出与发送者的距离;
(3)除基站外的普通节点初始能量相同且有限,不能二次充能和替换;
(4)每个节点的ID 固定且唯一,并具有相同的数据转发和融合等能力;
(5)基站位置固定,其他节点经过网络随机部署后不能改变位置。
改进协议中所使用的能耗模型与LEACH 协议相同,都是一阶无线电模型[5],如图1 所示。
图1 无线通信能量消耗模型
假设简单分为发送端和接收端,能量单位为J,从图1 中可以看出发送节点对采集的数据进行放大和传输消耗能量,接收节点在接收数据时消耗能量。数据在节点之间传递时,节点的能耗与发送端和接收端的距离有关,当发送端节点向距离为d 的接收端节点发送k bit数据时,发送端的能耗为:
接收端的能耗为:
其中,Eelec为接收或者发送每bit 时消耗的能量。由阈值d0来判断传输过程中的能耗策略,当传输的距离小于d0时,为自由空间模型,反之为多径衰落模型。εfs和εamp分别代表自由空间模型和多径衰落模型中的能量损耗因子。其中d0的计算公式如下:
LEACH 算法是典型的分簇算法,具有周期性运行过程,整个过程分为簇的建立和数据通信两个阶段。整个网络中的无线传感器节点通过自组织、分布式的方式构成一个网络拓扑结构[10]。LEACH 协议避免了所有节点与基站直接通信,各个节点相对均匀地承担网络能耗,实现了均衡网络能耗,延长网络生命周期的目的。其简要步骤如下:
(1)每个节点生成一个0~1 之间的随机数,如果该随机值小于阈值函数T (n),且该节点在上一轮未当选簇头,则本轮成为簇头,其中阈值函数定义为:
其中,n 为总节点数,p 为节点成为簇头的概率,r 为当前轮数,G 为上一轮未被选为簇头节点的普通节点集合[4]。
(2)节点成为簇头之后向整个网络广播信息,非簇头节点收到多个簇头的消息后,加入距离最近的簇头。
(3)簇头统计簇内成员的数量并分配时隙,簇内成员按照自己相应的时隙向簇头发送数据。簇头接收簇内成员发送的数据,将数据融合后再发送给基站。
LEACH-PC 协议考虑了节点剩余能量、簇内成员的个数以及节点与基站之间单跳通信的情况,同时对阈值函数进行了修正,在不同区域调整各因子的权重,从而达到降低整体能耗、延长网络寿命的目的。
由于WSN 的网络节点随机分布,在一定范围内可能出现节点过于集中或过于稀疏的情况,即会使网络出现极大簇或者极小簇。极大簇与极小簇均会导致网络中簇首节点能耗的增加,降低网络的生命周期。为了解决该问题,本文提出的LEACH-PC 协议对当前簇中成员节点的数目进行了统计,引入了平均成员个数Navge的概念,定义为:
其中,nalive代表当前存活节点数,countCHS 代表当前轮的簇首数目。当簇内成员节点数多于Navge时,节点不再加入距离自己最近的簇,转而直接与基站进行单跳通信。或者,当簇内成员节点个数少于Navge的1/8 时,成员节点不再入簇,直接将数据转发给基站。
传统的LEACH 协议中,非簇头节点不允许与基站直接通信。当簇内的普通节点距离基站的距离比它和簇头的距离小时,这种传统的簇头转发模式会使得网络能耗加剧。因此,LEACH-PC 协议将普通节点与基站的距离设为一个参考值,当普通节点与它最近的簇头的距离大于该参考值时,则节点直接将数据转发给基站而不是选择入簇,反之,该普通节点加入距离最近的簇,通过簇头进行数据转发从而和基站进行通信。
由式(1)可知,簇头传输数据到基站所消耗的能量与簇头到基站的距离成正比,文献[8]将节点位置作为簇头选择的优先条件并对网络区域进行了划分。文献[8]提出,节点与基站的距离小于d0时,簇头的选举由能量因子和距离因子共同决定;大于d0时,簇头选举仅由距离因子所决定,其中,d0由区域的尺寸所决定,由条件式(6)所约束。
文献[8]所采用的簇头选举公式为:
其中,α 是常数,文献[8]中取值为e。由于节点位置以及剩余能量都与簇头选举息息相关,I-LEACH 协议对簇头选举阈值函数的修正并不利于网络能量的均衡。为解决该问题,本文提出的LEACH-PC 协议算法采取新的簇头选举阈值函数,针对不同的区域采用不同的权重去修正函数,如式(8)所示:
其中,α 取值为0.25,n 为总节点数,p 为节点成为簇头的概率,r 为当前轮数,G 为上一轮未被选为簇头节点的普通节点集合。
由式(8)可知,簇头的选举与阈值函数息息相关,同时,考虑到节点的能耗与距离的n 次方成正比,距离基站较近的节点能耗会更少。因此区域内周围节点的能量差距不大,故在近距离区域选择增加距离因子的权重。对于在远距离区域的节点,能耗较大,死亡较早,故适量增加能量因子的权重,从而达到调整阈值函数,降低远距离区域簇头总数的目的。
LEACH-PC 算法流程图如图2 所示,步骤如下:
图2 算法流程图
(1)网络在区域内随机部署节点,同时完成分区并对各节点进行初始赋值。
(2)基站向全网广播消息,各节点根据信号强度计算自己与基站的距离。
(3)基站计算当前轮系统的剩余能量、网络平均能量以及平均成员个数,同时广播消息给其余节点。
(4)所有节点生成一个0~1 之间的随机数,根据自己所在的区域,对应式(8)计算相应的阈值函数,若随机数小于T(n),则当选簇头并广播自己成为簇头的消息,否则为普通节点。
(5)普通节点计算出自己与周围簇头的距离,并与基站的距离进行比较,若距离基站较近,则与基站进行单跳通信。若距离某个簇头较近,则判断簇内成员个数是否满足条件,若满足则入簇,否则将数据转发给基站,不再入簇。
(6)各节点进行数据传输,整个周期完成后,重复簇头选举等步骤,直到所有节点死亡。
本文设定节点全部死亡表示生命周期结束。选取生命周期以及网络能量消耗两个性能指标对协议LEACH、I-LEACH、LEACH-PC 进行了比较和分析。网络参数设置见表1。
表1 网络模型参数设置
本仿真实验假设部署区域为100 m×100 m 的方形区域,节点为100 个,基站坐标为(0,0),所有节点随机分布在区域内,分布图如图3 所示。
图3 节点分布图
网络初始化设置所有的普通节点能量为0.15 J,共100 个普通节点,则网络初始总能量为15 J,基站无能量限制。随着运行轮数的增加,网络剩余能量如图4 所示。由图中数据可知,LEACH协议在第503轮能量耗尽,节点全部死亡,I-LEACH协议在第878轮,而LEACH-PC协议则在第968轮,相对于LEACH和ILEACH协议分别延长了92.4%、10.3%的生命周期。同时,由于LEACH-PC协议限制了簇内成员的个数,易知当节点个数在一定范围内,总数越多,效果越明显。且由仿真得知,当n=200时,LEACH协议、I-LEACH协议、LEACH-PC协议分别在第526轮、第859轮、第977轮节点全部死亡,生命周期延长了85.74%、13.74%;当n=300时,LEACH协议、I-LEACH协议、LEACH-PC协议分别在第525轮、第856轮、第995轮节点全部死亡,生命周期延长了89.5%、16.24%。且由此数据可以看出,随着节点数的增加,LEACH-PC协议相较于I-LEACH协议对LEACH协议的提升更稳定。
图4 网络生命周期
由仿真结果图5 可知,LEACH-PC 协议的网络能耗比LEACH 协议和I-LEACH 协议均有降低,并且由于均衡了能耗,仿真图的趋势较LEACH 和I-LEACH 更为平缓。同时,因为在簇头选举时根据节点所在区域调整了对应的阈值函数并且考虑了节点是否入簇以及节点与基站直接单跳通信的情况,减少了远距离通信的能耗。相较于第400 轮时LEACH 协议的能量基本耗尽,ILEACH 能耗已达80%,LEACH-PC 协议仅耗费66.67%,降低了13.33%。
图5 网络能耗
本文针对 LEACH 和 I -LEACH 提出了改进的LEACH-PC 协议。LEACH-PC 协议在分区的基础上修正了不同区域阈值函数的距离因子、能量因子等因素的权重,同时考虑了簇内成员个数,通过限制簇内普通节点的个数来避免极大簇与极小簇的形成,并且考虑了普通节点与基站直接进行单跳通信的情况。通过仿真实验表明,LEACH-PC 协议在一定程度上降低了网络的整体能耗,延长了网络生命周期。