《电子技术应用》

无线传感网中的一种能量均衡算法的研究

2017年微型机与应用第7期 作者:傅彬
2017/5/3 21:02:00

  傅彬

  (绍兴职业技术学院,浙江 绍兴 312000)

        摘要:如何能够降低无线传感网中的节点能量消耗一直都是研究的热门。针对基本Leach路由算法存在节点能量消耗大、负载不均衡的缺点,文章一方面在Leach算法的簇头选择中首先进行最优解计算,其次通过遗传算法的染色体编码概念对簇内其他节点能量排序进行优化,得到最优簇头;另一方面在簇间路由中进行最优跳数的确定,引入转发概率函数和最优中间点的选择提高路由效率。在仿真实验中,与基本Leach算法相比,改进算法在节点死亡时间、数据包接收和能量消耗方面都具有明显的改善。

  关键词:无线传感;Leach;簇头;簇间

  中图分类号:TP393文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.07.021

  引用格式:傅彬.无线传感网中的一种能量均衡算法的研究[J].微型机与应用,2017,36(7):70-73,77.

0引言

  如何能够降低无线传感网中的能量消耗一直都是研究的热门方向,这主要是因为无线传感网的数据之间传输逐渐增多,能量消耗也在不断增大。文献[1]提出一种兼顾节点密度的能耗均衡分簇算法,仿真实验表明该算法能够有效地降低节点消耗的能量;文献[2]挑选出最小跳数和能量高的路径传输,可以有效地降低网络的能量消耗,避免节点的负载过大;文献[3]利用节点自身的剩余能量和周围邻居节点的平均剩余能量计算簇头报文发送的标志,进一步降低了无效节点的能量消耗;文献[4]提出了一种能量潜能机会路由算法,取得了比较好的效果;文献[5]提出一种基于能量均衡的WSN路由算法,该算法采用回退机制实现节点的自适应调整,有效地保证节点以较高的几率成为簇首,该算法能够有效延长网络寿命;文献[6]提出将监测区域看成以基站为中心的扇形区域,并将此划分为多个弧形方块并成为簇,采用单跳和多跳相结合来实现簇间通信;文献[7]提出将区域划分为4个大小相同的局部区域,然后选择节点能量方差最小的局部区域作为路由选择区域,采用概率机制选择路径传输节点;文献[8]提出一种能量负载均衡的多跳路由协议,采用遗传模拟退火算法进行分簇,并计算每个簇的聚类中心,在簇间路由阶段,采用最短路径进行多跳路由选择;文献[9]提出采用布尔传感模型确定覆盖率与单位面积内传感器节点密度的函数关系,依靠Prim算法的贪心策略,有效地降低整个网络中的能量消耗。

  本文在以上研究的基础上,从改进Leach算法作为解决能量负载不均衡入手,对算法的簇头进行最优解计算,通过遗传算法中的染色体概念对簇内节点能量排序,同时引入转发概率函数在最优中间点中进行选择,提高了算法性能,并通过实验说明了本文算法具有明显的改善。

1路由算法与能量消耗关系简述

  无线传感网中的路由选择是非常关键的,它主要负责将数据从源节点传送到目的节点。由于其中节点的能量有限,因此能量均衡是路由算法需要考虑的问题。在无线传感网中节点能量有限,路由算法在设计过程中需要将节点权重作为参考权重,使用过滤机制,去除大量冗余的数据,将节点采集的数据进行融合,减少不必要的能量消耗;同时应该保持通信负载的网络平衡,在设计路由算法时增加对路由选择的随机性,避免最优路径节点频繁使用而位置较差的节点使用少而导致节点过早死亡。因此下一跳的节点剩余能量的选择需要结合路由算法来进行考虑。

  Leach协议是一种经典的层次路由协议,其过程是循环更新簇。首先随机选择簇头节点并进行分簇,其他未加入簇的节点选择通信代价最小的簇节点加入;其次是所有节点采集到的数据发给自己所在的簇节点,簇节点将各个成员的节点进行信息处理,通过数据融合将数据传递给基站,通过不断地迭代,将簇节点的能量分摊给簇内每一个节点,降低能量消耗,但其自身存在簇节点选择随机性、负载不均衡性和未考虑簇节点与基站距离等缺点。

2基于改进的能量均衡算法的研究

  针对Leach算法存在的不足,本文假设在以下前提下进行研究:传感器节点已经知道自己的位置,节点之间的传输耗能相同。从簇头选择和簇间路由进行改进。

  2.1Leach簇头选择

  簇头选择在无线传感网中的分簇算法中是非常重要的,它决定了整个网络的性能。如果一个簇头的位置不好或者能量不足就会导致整个网络资源的消耗增加,并且还有可能使网络性能下降,因此如何选择簇头成为解决问题的关键。遗传算法是一种基于自然选择的生物进化算法,通过染色体编码进行优化,从而找到最优解。遗传算法能够自动地控制优化的搜索方向,因此非常适合用于复杂度高的分簇方法。

  2.1.1最优簇头计算

  在无线传感网中,假设有N个节点分布在m×m区域中,分配h个簇,因此每个簇内平均有N/h个节点,其中N/h-1为簇内非簇头节点,设定网络中的簇头节点都是按照多跳传输方式进行发送数据,设定传输距离为D,簇头的能量消耗包括簇内成员的信息、数据融合和数据传送三个部分的能量消耗。因此每个簇头节点的能量消耗为:

  HKLFYXCL@280S{G13(VJ4ZA.png

  式中,k为数据包大小,EDA为数据融合消耗的能量,D是簇头节点发送数据的距离。因此簇内节点与簇头之间通信的能耗为:

  Enon-CH=kEelect+kξfsd2toCH(2)

  其中,dtoCH为成员节点与簇头之间的距离。设定该区域为圆形,簇头位于簇中间位置,则得到:

  R%Q$%H8P(695KIKK{H7G7VT.png

  结合无线传感网中网络节点均匀分布的特点,将式(2)和式(3)结合:

  (48]AXPS48NSSG~((]}7R1F.png

  因此,簇内发送整个一帧数据的能量消耗为:

  JC9$LI1{_7{4LN8)%HK5F49.png

  在覆盖区域中,簇内发送一帧数据的的总能耗为:

  9)RRYQ3Z0HDK~(YC0VIWJ1V.png

  对式(6)求导,取其极小值得到最优簇头数为:

  %[E}14~TKYQ{B8)YXA8NDUR.png

  2.1.2染色体编码

  得到最优簇头数目之后,采用遗传算法中的固定长度的染色体编码,将最优簇头数目设定为染色体长度。编码按照节点剩余能量标准来进行衡量。在整个无线传感网中,剩余能量采用如下方法来获得:

  QO()4PIV_`FU{)97H15%@5B.png

  式中,Eave表示整个无线传感网中的剩余平均能量,将节点剩余能量大于Eave的节点从1到M编号来代替染色体中的0,1编码。

  2.2簇间路由选择

  在无线传感网中,当簇形成之后,簇头节点收到来自簇内成员的数据之后,通过融合,向基站发送数据。当远离基站时,簇头节点就会消耗过多的能量,因此采用传统的多跳方式显然不是很好的解决办法,本文将多跳与单跳方式相结合来降低簇头与基站之间的信号消耗。

  2.2.1最优跳数的确定

  在半径为R的无线传感区域内分布了N个节点,将节点与基站的距离划分为n个区域,半径为r1,r2,…rn。为了简化计算,假设簇头位于区域中间位置,每个区域的宽度为r,大致估算出r1区域簇头半径为r/2,依次类推rn区域簇头的半径为n+(r/2)。当处于r1区域的簇头节点向基站发送数据为k时,每个簇头能量消耗为:

  GCWSRL)WNZOL]%_`49MQJ~K.png

  因此,总体耗能为:

  JQJEPUZRD9O~@Y09I]@}MC0.png

  式(11)中,当簇头与基站的距离小于d0时,使用单跳传输;否则,采用多跳传输。

  2.2.2转发概率函数

  在基站点附近的多跳路由都具有节点能量消耗快的特点,因此造成了靠近基站的节点能量容易过早消耗的现象,虽然本文之前描述了单跳和多跳传输的选择,但仍然存在这样的问题。根据这种情况,本文设定一个转发概率函数来使得簇间的路由在单跳和多跳中进行选择,尽可能地避免因为距离的问题而产生能耗不均匀的问题。转发公式如下:

  Fb=rρ×Elast(12)

  式中,r为簇头与基站之间的距离,Elast为簇头内的剩余能量,ρ为均衡系数。通过概率转发函数可以选择比较好的路由,均衡簇头之间的能量消耗,有效延长簇头寿命。

  2.2.3最优中间节点选择

  簇与簇之间的信息转发都是通过中间节点传输到达基站的,因此中间节点能量消耗也是无线传感网中能耗的重要组成部分。假设中间节点1、中间节点2和基站从左到右依次排列,节点1发送数据到基站必须经过节点2。节点1到节点2的距离为r1,节点2到基站的距离为r2,节点1到基站的距离为r,当节点1向基站发送数据时,节点1到节点2,以及节点2到基站的能量消耗为:

  Enode1=kξfsr21+kEelect(13)

  Enode2=kξfsr22+kEelect(14)

  因此传输的能量总消耗为:

  Etotal=kξfs(r21+r22)+2kEelect(15)

  节点1到基站之间的能量消耗表达如下:

  Etotal=kξfs((r-r2)2+r22)+2kEelect(16)

  通过式(16)得到r2=r/2时,Etotal达到最小,根据这个原理,无线传感网中的簇头节点到基站的距离为d时,最优的跳数为dd0,因此转发距离为:

  0TWP3DY4HE_R{E6P0EKF8YT.png

  综上所述,当簇头节点的坐标为(x,y)时,最优下一步的中间点的坐标为(xopt,yopt),且:

  F(3@U$L(ZTR}[T55%[N)O}T.png

3仿真实验

  3.1仿真环境

  为了进一步说明本文算法在降低能量消耗方面的作用,模拟真实环境,节点数量为1 000个,分布在100 m×100 m的区域中,基站处于区域的中心位置(50 m,50 m),节点之间的最大通信距离为85 m,能量比较高的节点占据总节点数量的10% ,传输能耗ξfs为1×10-11J。 硬件系统CPU采用酷睿i3,内存为4 GB,硬盘容易为500 GB。软件采用Windows 7,仿真环境为MATLAB2010。

  3.2仿真结果分析

  3.2.1节点死亡时间

  图1表示了仿真环境下的节点有效生存时间。从图中可以发现基本Leach算法的第一个节点死亡时间比本文算法的节点死亡时间早,这说明基本Leach算法的网络效率开始下降,当经过一段时间之后,Leach算法仍然有一部分节点存活时间长,这说明Leach算法负载不均衡导致了节点的使用效率低。本文算法的第一个节点死亡时间要晚于基本Leach算法,这是因为本文算法在簇头节点的选择上使用了单跳与多跳相结合的方式来降低网络整体的能量消耗。 在整个网络中,本文算法比基本Leach算法具有更好的曲线倾斜度,这说明整个无线传感网的节点死亡时间更加集中,具有更好的负载性。

001.jpg

  3.2.2数据包接收

 

002.jpg

  图2表示了基站接收数据包的数据量与时间的关系。在算法运行初期,本文算法与基本Leach算法数据包是一致的,经过一段时间后,Leach算法接收的数据包有所下降,主要是因为Leach算法中存在的负载不均衡问题容易导致部分节点能耗过大而失效。而本文算法采用单跳与多跳相结合的方式使得负载均衡,无线传感网络的生命周期有所增长,数据包接收数量较基本Leach算法多。

  3.2.3能量消耗

003.jpg

  图3为能量消耗与时间的关系,与基本的Leach算法相比,本文算法的总体能量消耗趋于平稳,这是因为在算法初期,本文算法采用了多跳路由算法与基站进行通信,一定程度上降低了节点的能耗,经过一段时间之后,由于图3能量消耗与轮数的关系

  大部分节点已经失效,本文算法的覆盖面积要大于基本Leach算法,因此能耗比较大。从整个过程来看,本文算法的网络一直保持比较稳定的能量消耗速度,说明本文算法具有很好的稳定性,这主要是由于簇头节点选择和簇间路由方面都考虑了节点负载的均衡性,达到了在无线传感网中的能量均衡目的。

4结束语

  针对无线传感网中的能量消耗问题,本文在Leach算法的基础上,对其进行改进,提高了算法的有效性能,降低了能耗。仿真实验表明,通过与基本Leach算法在节点死亡时间、数据包接收和能量消耗方面进行对比,本文方法都具有明显的改善。

  参考文献

  [1] 曹立志,陈莹.基于学习自动机的无线传感网能量均衡分簇算法[J].传感技术学报,2013,26(11):1590-1596.

  [2] 樊志平,谢冬青,金政哲.无线传感网络能量有效负载均衡的多路径路由策略[J].小型微型计算机系统,2013,34(2):253-257.

  [3] 陈志.一种能量感知的无线传感网拓扑控制算法[J].传感技术学报,2013,26(3):382-387.

  [4] 田贤忠,肖赟.一种能量捕获无线传感网络机会路由算法[J].计算机科学,2016,41(s1):288-290.

  [5] 李运涛,朱敏,刘昊霖,等.基于能量均衡的无线传感网络路由算法[J].四川大学学报(自然科学版),2012,49(1):69-74.

  [6] 张伟龙,郭成芳.基于能量均衡的无线传感器网络路由算法[J].激光杂志,2014,35(12):96-98.

  [7] 吴三斌,柳强,李成博.基于能量均衡的无线传感器网络路由算法[J].计算机应用研究,2012,29(4):1465-1469.

  [8] 张世伟,张海涛,张士杰.基于固定分簇和能量均衡的无线传感器网络多跳路由算法[J].传感器与微系统,2013,32(8):117-120.

  [9] 邬学军.基于能量控制的无线传感网络最优化算法研究[J].传感技术学报,2011,24(3):436-439.


继续阅读>>