张彦虎, 鄢丽娟
(广东松山职业技术学院 计算机与信息工程学院, 广东 韶关 512126)
无线传感器网络(Wireless Sensor Network,WSN)是将被监测区域内需要获取的感知对象的信息通过采集、发送、融合简化、处理等一系列相关操作传送给信息采集者的一种能够实现自组织的无线网络[1],传感器节点的能量供应目前主要靠电池供给[2],而定期去更换节点电池又不现实,因此,对无线传感器网络而言,使用怎样的技术能实现在保证通信可靠的前提下,使得整个无线传感器网络的使用寿命更长,成为无线传感器网络领域的研究热点之一。
WSN[4]路由协议分为平面、层次两种路由协议。平面路由协议一般适用于小规模网络;另外一种层次路由协议也称为分簇路由协议,采用以簇头为核心,周边的普通传感器将信息传送至簇头节点,由簇头节点对其所收集的簇成员节点信息进行数据融合,通过一跳或者多跳的方式传送给基站[3]。分簇路由协议最具代表性的一种协议是LEACH协议,在此基础上许多学者对其进行了多方面的优化及改进,如黄利晓等[4]提出的LEACH-improved协议;彭蕾等[5]提出一种适用大规模网络的基于LEACH算法的混合无线传感网络节能路由算法;胡中栋等[6]提出一种基于最优分簇的能量异构无线传感器网络路由协议OCRP。本研究在深入分析LEACH分簇算法基础上提出一种基于平均剩余能量进行簇头选举的分簇路由协议。
LEACH是一种能实现自适应分簇的拓扑算法,该算法是以周期轮回的方式循环重构簇群[7]。该算法的核心关键是减少节点与基站在直接通信过程中产生的能耗,降低网络能量损耗,延长无线网络的生存周期。
在无线网络的成簇阶段中,主要有簇头选举和成员加入两个过程,其中簇头选举是核心[8]。在簇头选举中,各节点在规定的时间片区产生一个[0~1]之间的随机数,若随机数小于阈值T(n),则当选簇头,阈值T(n)的计算过程,如式(1)。
(1)
式中,p表示簇头百分比;r表示当前轮数;G表示在第r轮之前没有做过簇头节点的集合[9]。
簇头选举完成后,簇头节点向周围广播,其他非簇头节点选择所接收到的信号最强的簇头并向其发送入簇请求。
该阶段主要工作是进行数据传输,构建成簇之后,成员节点将所采集的数据传送给簇头,簇头对数据按照一定规则融合后转发给基站,完成数据传输任务;通信时段结束之后,返回1.1进入新一轮次的簇头选举及成簇阶段。
本研究采用与文献[10]所提能耗模型相同的无线通信能量消耗模型,各节点的能耗分为3个部分:发送信息的能耗、接收信息的能耗、数据融合的能耗。该模型,如图1所示。
图1 无线电通信模型
在无线电通信模型下,如果信号的传输间距d小于阈值dt,功率放大器的能耗与传输距离d的平方成线比关系;否则,能耗与间距d的四次方成正比。εfs、εmp为以上两种模型下功率放大器的能量消耗参数。阈值dt的计算过程,如式(2)。
(2)
当传输距离为d,传感器发送大小为kbit的信息,其消耗的能量ET(k,d)的计算式,如式(3)。
(3)
式中,Etx表示传感器发送1 bit信息的能耗;Erx表示其发送同样大小信息的能耗,发送设备传送kbit信息的能量消耗ET-elec=kEtx;ET-amp(k,d)表示如果传输间距为d,功率放大器发送kbit数据的能量消耗。
接收设备接收同样大小kbit信息的能量消耗Erx(k)=kErx,对大小为kbit的数据进行融合所产生的能量消耗E(k)=kEda,其中Eda表示融合1 bit信息的能耗。节点接收kbit信息所需要的能耗,如式(4)。
ER(k)=k*Eelec
(4)
式中,Eelec表示发射电路的能耗;ER(k)表示接受kbit信息消耗的能量。
LEACH及相关的改进算法,从全局的角度来讲,仍然存在能量消耗不均匀的情况,针对这一特点,提出一种基于基站获悉全网络中所有节点剩余能量、位置坐标等信息,并根据全传感器网络当前的实际情况,对网络中的簇头节点进行设置。
全无线传感器网络中所有的簇头节点都由基站的函数F(x)产生,基站确定全无线传感器网络的所有簇头之后,广播给全域网络,全网络节点接收到信息之后核查自己是否被选定为簇头,然后做出相应的设置及操作,以达到进一步均衡全网剩余能量的效果,基于上述描述,提出一种AREB(Average Remaining Energy Based on Whole Network Node,AREB)算法。
为实现上述功能,对AREB算法的网络通信模式进行如下规划,对一个普通节点而言,其生命周期内的运行过程,如图2所示。
图2 网络通信模型
(1) 网络首次组网簇头采用LEACH算法随机产生;
(2) 首次组网之后,在下一次组网周期之前,各簇头收集并计算本簇平均剩余能量ECi,并发送给基站,其中ECi为当前簇内所有节点的平均剩余能量;
(3) 基站运行F(x)函数得到全无线传感器网络下一轮簇头的集Si,并发送给全网络,其中Si为下一轮的簇头集合;
(4) 网络节点接收基站发送的下一轮簇头集合数据包Si,本轮当前簇头接收到Si之后,转发至本簇;所有节点接收到数据包后检查自己是否在Si内,如果在则说明已被选定为下一轮的簇头节点,在下一轮的无线传感器网络组网开始时,将自己设置为簇头节点,否则,设置为普通节点;
(5) 进入新一轮的组网;
(6) 组网完成之后,进入数据传输状态,并继续循环上述(2)至(6)的过程。
本算法中,最核心的部分是簇头的产生机制,该工作由F(x)函数产生,因此对该函数在此展开描述。
2.2.1F(x)函数相关参数
(1) 最小剩余能量阈值EOvall
为了保证所选中簇头节点的剩余能量大于大多数节点的剩余能量,定义其运算过程如下。
① 全网节点平均剩余能量,如式(5)。
(5)
式中,ECi表示节点Si的剩余能量;n表示全网无线传感器节点的数量;EAVall表示全网节点平均剩余能量。
② 能量大于EAVall节点的平均值,如式(6)。
(6)
式中,EAvi表示剩余能量大于全网络平均剩余能量EAvall的节点Sj的剩余能量;M表示全网内剩余能量大于EAvall的节点集合。
(2) 最优簇头数量Kopt
在M*M的区域内,令最优簇头的计算过程,如式(7)。
(7)
式中,N表示全无线网络存活节点的数量;M表示正方形区域的边长;dtoBS表示簇头到基站的距离;εfs、εmp分别表示无线发送器的系数。
(3) 簇头之间的最小间距d0
为了防止簇头过于集中的产生在某一个区域,造成能量消耗的浪费,对簇头与簇头最小间距做限制,定义为d0,计算过程,如式(8)。
(8)
2.2.2F(x)函数的计算过程
基站获取到全网络各节点的剩余能量、各簇平均剩余能量及各节点的地理位置后,根据上述信息运行F(x)算法产生簇头集合C。
(1) 根据式(5)、式(6),计算EOvall;根据式(7)计算Kopt;式(8)计算d0;
(2) 对全网络内所有节点进行遍历,凡是符合剩余能量大于等于EOvall的节点,都加入集合SO。
(3) 对集合SO的所有节点进行遍历,凡是节点到已选定的簇头集合C(初始值为null)的所有已选簇头的最小距离dmin小于d0,则将该节点加入到集合C。
(4) 对下一周期簇头的成员节点数量做限制,为了防止平均剩余能量较低的区域过多的消耗能量,令当前簇CNow平均剩余能量最低簇的簇成员数量不得大于平均值。
(5) 当集合C中节点数量大于等于Kopt时,结束F(x)的运算,得到集合C,即为函数F(x)所选定的簇头节点集合。
为验证本文路由算法效果,使用MATLAB R2016模拟仿真软件分别对LEACH、文献[5]所述算法、本文算法在M*M区域的平面上进行了模拟实验,M为100 m。使用模拟软件在该区域内随机产生100个节点,基站位于平面的中心位置。对各对比算法分别进行100次的实验,每次运行3 000轮,测试环境的参数设置,如图3所示。
参数名参数值初始能量/J0.5数据包/bit2 000控制包/bit100p0.10Etx/nJ/bit50Erx/nJ/bit50Eda/nJ/bit5εfs/pJ/bit/m210εmp/pJ/bit/m40.001 3
(1) 网络生命周期
将各算法各轮次存活节点数进行对比分析,如图4所示。
图4 存活节点对比图
发现本文算法首个死亡节点出现的轮数更晚,首个死亡节点出现在1 607轮,较LEACH算法提升25.74%,较文献[5]提升9.23%,说明使用本文算法能有效提高无线传感器网络的网络生命周期。
(2) 网络吞吐量
将两个算法仿真实验结果的数据传输量进行网络吞吐量情况对比,如图5所示。
图5 网络吞吐量对比
由图5可知本文算法延长无线传感器网络生命周期的同时,增加了基站接收到的数据量,其网络吞吐量更大。
通过仿真实验表明,本研究提出的算法,在网络生存周期、能耗均衡性、网络吞吐量等有更优异的表现。本文算法在基站中产生全无线传感器网络的所有簇头节点,通过设定阈值、最优簇头数、各簇头间最小距离等策略,使簇头的分布更均匀,优化了LEACH路由协议簇头分布不均等缺点,均衡了各节点的能量损耗,延长了网络的生命周期,增加了网络的吞吐量。本研究存在的不足之处是未能实现更细致的为每个簇头指定具体的传感器节点,后期将以该方向为重点开展相关研究。