刘闯,陈桂芬,马威风
(长春理工大学 电子信息工程学院,长春 130022)
无线传感器网络(Wireless Sensor Network,WSN)是一个整体。WSN(无线传感器)主要工作方式:在需要监测区域安放大量的传感器节点,传感器节点能够自动采集所需要信息,传感器网络根据采集到信息做出决策,最终为用户提供服务。无线传感器网络是一种新的数据获取的方式,因此对于传感器的研究备受瞩目[1]。但由于WSN节点成本较高,能量受限后难以后期维护,因此WSN路由协议的一个重要目的就是高效地使用节点能量,最大限度延长网络的生存时间[2,3]。
分簇具有降低网络能耗,拓扑管理非常方便,能量利用率高等点。除以上优点之外,其在数据融合方面也有巨大优势[4]。LEACH[5]首先提出基于多簇结构,部分基于分簇路由算法,例如LEACH-C[6]、EEE-LEACH[7]、EMODLEACH[8]等 都 是 借 鉴LEACH分簇思想发展而来的。簇头的随机选择虽然具有易实现、操作性灵活等优点,但无法合理地确定簇头数目和区域的分布,这样会导致节点能量消耗不均衡,造成整个网络性能变差。研究表明,多跳在数据转发过程中更有利于能量的节约。HEED[9]协议在簇头和BS之间采用多跳的通信方式能更好地节约能量,但容易导致靠近BS的簇头由于需要转发消息到其他簇而消耗更多能量,致整个网络中的各个区域之间能量的不平衡。对于其存在的问题,EEUC[10]算法使用非均匀分簇的方法成簇,根据距离这一变量划分簇,网络被划分为不同的簇,离BS近的簇的规模小,簇头收到成员节点数据后选择剩余能量多且距离自己最近的簇头多跳传输数据,能够平衡整个网络的能量消耗,延长网络使用时间。簇的规模不同,簇间的成员节点数也有所差别,在数据传输阶段离BS较近的簇头,在单位时间内向BS发送数据次数较多,导致全网节点数据难以同步。
综合考虑上述问题。对于算法改进基本思想:一是在簇头选举时考虑节点上一轮的能量消耗和到节点到BS的距离;二在形成簇时,节点选择考虑了簇头规模、能量、簇头与BS距离,构建大小不同规模的簇来均衡区域间的能耗,同时为了解决非均匀分簇簇规模大小不一存在的步调不一致问题,采用不定长帧的结构方式,簇的成员较少的簇的帧时间间隔较大,簇的成员较多的簇的帧时间间隔较小,以此来保证单位时间内不同簇的节点传输的数据次数相同;三是当簇头间距离大于设定值时,簇的内部选择中继节点协助传输数据,数据通过中继节点和相邻簇头多跳传输到BS,进一步延长了网络的生存时间。
研究整个网络分布在一个正方形区域内,随机分布N传感器节点,可以周期性的收集区域内数据,假设:①BS检测区域外围,传感器节点和BS在安放后均不再发生位置移动;②全部节点同构并且能量有限,可以获得本身的剩余能量,每个标识ID对应一个节点;③全部节点都能够一跳到达BS,BS能够与全部节点通信;④数据融合能够减少数据量传输,簇头融合单位数据消耗的能量相同;⑤节点可以通过接收到的信号强度RSSI计算信号发出者到自己的距离,同时节点不具有位置感知能力;⑥忽略外界因素对通信质量的影响,节点能够可靠地进行周期性数据采集任务并始终有数据传输到BS。
采用文献[6]中的无线通信能耗模型,节点发送kbit的数据包到达距离为d的另一个节点,无线信号收发部分和功率放大部分是主要的能量消耗部分。其中,功率放大器的能量消耗与传输环境和距离密不可分,其可由自由空间和多径传输两种模式组成。发射机传输k比特数据所消耗能量计算公式如下式(1)所示:
其中,Eelec为能量消耗,d0为传输距离常数。当传输距离d<d0,则采用自由空间衰落模型εfsd2;若传输距离d≥d0,则采用多径衰落模型εmpd4。式(1)中的 d0=,εfs和εmp分别为射频参数,其值中功率放大器决定。接收器件消耗的能量如式(2):
提出的LEACH-LOMUC协议采用“轮”循环工作方式,主要由簇头选择、簇的形成、簇间多跳路径的构建三部分组成。准备阶段中,BS向全网广播初始化消息(包含最优数目mopt和最优通信半径ropt),节点根据信号强度估算与BS的距离ditoBS。簇的形成阶段产生不同规模的簇,由分簇结果建立簇头间的多跳路径,最后网络便进入稳定的数据传输阶段。图1是协议的基本原理图,簇头与下一跳簇头距离大于传输距离阈值d0时,选择中继节点辅助数据传输,图中的节点连线代表簇间多跳传输路径。
图1LOMUC协议基本原理
BS根据监测区域面积和全网节点数计算最优簇的数目mopt,采用文献[6]中的方法,假设在M×M的区域内均匀部署N传感器节点,运行结束后产生了m簇,m簇的整体能量消耗为ETotal,如式(3)。
对式(3)中的m求导并令导数等于0,求出mopt,然后得到最优通信半径ropt:
针对LEACH协议阈值T(n)的不足,把能量和距离因素考虑进来,对公式Topt(n)进行改进,在此阶段,对于每个传感器点,使其产生一个0~1之间的随机数,对于这个随机数值小于阈值Topt(n),此节点就成为候选簇头。
其中,,p表示簇头所占比例,r为已完成轮数,G是最近1p轮中未被选为过簇头的集合,Erest、Eused、Eavg为上一轮剩余能量、节点在上一轮消耗的能量、簇内节点上一轮平均剩余能量。
候选簇头产生后,各候选簇头以距离常数d0广播最终簇头竞选消息(其中包含剩余能量、到BS距离和一跳邻居节点数)。在d0范围内不包含有其他候选簇头,则该节点为最终簇头;反之,则根据公式(7)进行代价值计算并交换比较,代价值小的候选簇头竞选获胜并广播获胜消息;反之,退出簇头竞选成为普通节点。普通节点依由文献[11]改进的公式(8)选择簇头发送加入请求(含有剩余能量),簇头接收到所有节点消息后,计算出簇间的平均剩余能量并采用TDMA方式向簇的成员节点发送时隙表,随着簇头向簇内所有成员节点广播平均剩余能量和调度时隙表,簇的形成阶段完成。
其中,α表示权重,P1=Eres(CHj)ditoCHj,,Eres(CHj)表示簇头j的剩余能量,ditoCHj表示节点i簇头j的距离,dCHjtoBS表示簇头j到BS的距离,N(CHj)表示簇头j的一跳邻居节点数。
在簇形成后,与BS距离小于d0的簇头直接将数据传送至,距离大于d0的簇头则使用多跳方式传送数据,根据公式(9)计算代价函数Cost(CHi,CHj)值,选择代价值最小的簇头作为下一跳簇头。其中,dCHitoCHj为簇头i与j之间距离,dCHjtoBS为簇头j与BS之间距离,Eres(CHj)为簇头j当前剩余能量。
如果下一跳节点的簇头已确定,若簇头之间距离超过d0,便在距离该下一跳簇头直线距离的中点附近选择一个本簇内能量高且距离下一跳簇头最近的中继节点用于两簇头之间的多跳传输数据。中继节点选举公式如下式(10)。其中,dreltoCHi为中继节点与所在簇的簇头距离,dreltoCHj为中继节点到下一跳簇头的距离,Erel为中继节点的剩余能量。
对于算法验证,通过对MATLAB建立仿真模型,对于LEACH、HEED、EB-LEACH[12]和EEUC与本LEACH-LOMUD算法进行对比。对比方式主要是网络整体能量、网络运行轮数、存活节点数等多项性能进行仿真分析,仿真参数见表1。
算法中簇权值α值的选择十分重要,因为α是控制普通节点加入簇,簇的区域规模大小的变量,参数选择0.1~1进行试验,结果如下图2所示。可以看出,当α=0.5或α=0.6时效果最好,因此选择α=0.6。
表1 网络环境与参数
图2 权值α与轮数的关系
图3 五个协议的两个参数(FND和HND)
由上图3可知(死亡节点出现的轮数),能够看出整个网络情况,对于论数时间比较长的,说明其能量利用率高,比较小的,说明其能量利用率较低,整个网络较差。对于那些轮数较长时间出现的,其即能量利用率就越高。图3参数FND(第一个节点死亡参数)和HND(一半节点死亡参数)相互比较,LEACH算法的死亡节点出现在683轮后开始出现,而LEACH-LOMUC在1323轮后;1287轮之后,LEACH算法节点死亡一半,而LEACH-LOMUC在1672轮才出现这种情况。由此可见,改进算法LEACH-LOMUC不仅显著地延长了网络生存周期,而且死亡节点出现也晚于其他算法,这种现象表明LEACH-LOMUC能够均衡网络中节点的能耗。
图4 生命周期对比
图5 剩余总能量对比
图4与图5是五种算法网络生命周期和剩余总能量的比较,从图中可以看出,LEACH-LOMUC的生命周期最长且剩余能量最多,EEUC第二,LEACH最差。在生命周期方面,LEACH-LOMUC比LEACH延长一半,相较于EEUC,其生命周期延长了约13%,HEED和EB-LEACH的生命周期分别延长了约50%和40%;网络剩余总能量方面,LEACH-LOMUC明显优于LEACH、HEED、EB-LEACH和EEUC。
对于产生上述现象的主要原因如下,LEACH协议簇与汇聚节点之间以单跳方式直接通信,生命周期短并且能量消耗最大;HEED算法与LEACH不同(在竞争机制),对于簇头选择参考剩余能量,能够选出更好的网络分布。但是与EB-LEACH相比,其多次迭代生成的簇消耗过多能量。EB-LEACH算法对于簇头选择加入了能量阈值约束条件,性能较LEACH和HEED有所优势,但缺点也十分明显,其仅仅能均衡簇头区域的能量分布,不能使得整个网络能量消耗平衡。EEUC采用非均匀分簇方法使网络中形成大小不等的簇,解决了热点问题,采用多跳方法,节省能耗,使得其网络生存时间较LEACH、HEED和EB-LEACH明显延长。
LEACH-LOMUC和EEUC一样也采用非均匀分簇和多跳数据传输方式节省网络中通信能量消耗。不同于EEUC的是,LEACH-LOMUC在阈值上引入了上一轮节点的能量消耗因素和距离因素,使得能量大且离BS近的节点有更大的可能成为簇头;节点在选择加入簇头时考虑了簇头的规模和负载问题,节点选择簇内未饱和的簇头加入;在簇间多跳通信时,簇头间距离大于设定值时选择中继节点辅助簇头间数据传输,节省簇头的能量,使得网络每轮剩余能量有所增加,整个网络能量平衡。所以LEACH-LOMUC的生命周期优于其他四种算法。
对于现有无线传感器网络路由算法及其存在的问题,根据非均匀分簇的思想,提出了基于LEACH路由协议的改进协议LEACH-LOMUC。改进协议基本思想是簇头的选举考虑了节点上一轮的能量消耗和到节点到BS的距离;成簇时,考虑簇的规模、能量、簇头与BS之间的距离,同时在时间片中引入休眠过程来解决非均匀分簇簇规模大小不一存在的步调不一致问题;最后对于簇头间通信距离过大时引入中继节点辅助数据传输,数据通过中继节点和相邻簇头传输到BS。通过实验对比结果表明:与LEACH、HEED、EB-LEACH和EEUC算法相较可以发现,算法能量均衡,生命周期延长。
参考文献
[1] 黄庭辉,伊凯,王玉良.基于非均匀分簇的无线传感器网络分层路由协议[J].计算机应用,2017,23(13)20-24.
[2] 石闪,施伟斌,朱蓓.一种针对无线传感器网络LEACH协议的改进算法[J].电子科技,2017,32(10):100-103.
[3] 潘峰.基于能量的无线传感器网络分簇算法研究[J].计算机仿真,2011,28(3):159-162.
[4] 贾云龙.无线传感器网络的非均匀分簇路由协议研究[J].计算机应用,2014,24(7):86-89.
[5] Hzelman WR,Chandrakasan A,Balakrishnan H.Energy-Efficient Communication Protocol for Wireless Microsensor Networks[C].Proceedings of the 2000 IEEE International Conference on System Sciences,2000.
[6] Heinzelman WR,Chandrakasan A,Balakrishnan H.An Application-specific ProtocolArchitecture for Wireless Microsensor Networks[J].IEEE Transactionson WirelessCommunications,2002,1(4):660-670.
[7] Bharti A,Devi C,Bhatia V.Enhanced Energy EfficientLEACH (EEE-LEACH) Algorithm Using MIMO for Wireless Sensor Network[C].IEEE International Conference on Computational Intelligence&Computing Research,2016.
[8] 张涌逸.无线传感器网络中非线性非均匀分簇路由研究[J].无线互联科技,2017,(4):54-57.
[9] 从立刚,杨华民,王杨惠,等.一种DTN网络摆渡点存储分配方案研究[J].长春理工大学学报:自然科学版,2017,40(3):117-122.
[10] 孙超,彭力,唐波等.基于环的能耗均衡分簇路由算法[J].计算机应用研究,2017,15(1):27-36.
[11] 江禹生,李萍,马超.一种能量高效的无线传感器网络拓扑控制算法[J].传感器与微系统,2014,33(2):146-149.