一种基于能量消耗的无线传感器网络路由优化算法的制作方法

文档序号:7890121阅读:517来源:国知局
专利名称:一种基于能量消耗的无线传感器网络路由优化算法的制作方法
技术领域
本发明属于无线传感器网络技术领域,涉及一种基于能量消耗的无线传感器网络路由优化算法。
背景技术
无线传感器网络的路由协议分为平面路由协议和分簇路由协议。平面路由协议的特点是算法简单,易于实现,节点间是对等的,原则上不存在瓶颈,健壮性较好,但一般需要牺牲存储空间维持大量的路由表,还需要有控制信息维护路由,并且可扩充性差,大量增加通信负担,造成信息冗余及拥塞,使得能量损耗大、延迟长,不适合大规模传感器网络的应用。分簇路由的基本思想是通过簇头对簇内节点间的相关信息融合及转发机制减少数据的传输量和距离,进而降低通信能量,达到网络节能的目的。低能量自适应分群分层(Low Energy Adaptive Clustering Hierarchy, LEACH)算法是比较成熟且常用的分簇路由算法。它是第一个在无线传感器网络中提出的层次式路由协议,其后的大部分层次式路由协议都是在它的基础上发展而来的。在LEACH算法中,更多的通信都是局限在簇的内部,只有少数簇头节点才和远处的基站进行远距离通信,而且簇头节点是随机选择并且定期更换,在一定程序上实现了节点的负载平衡,延长了网络的生命周期,由于计算所需能耗要远远小于通信能耗,因此这项技术可以大大节约能量。但是LEACH算法也有它的不足之处,主要体现在(I)每轮都要先确定簇头节点,然后建立簇,期间用于建立簇的通信开销较大,而且LEACH算法的簇头选举机制没有考虑到具体地理位置,这使得簇头节点不能保证均匀地分布在整个网络中,无法做到最优。(2)簇头的选举是等概率产生的,没有考虑到不同节点之间能量的差异。如果能量低的节点被选作簇头,很容易导致能量耗尽而死亡,那么在这一轮中,整个簇无法通信,既不利于整个网络的健壮性,也不利于网络整体生命的延长。(3) LEACH的传输距离较远,并且数据融合相对较少,这就要求传输更多的数据到更远的距离,从而加大了能量消耗。某些离基站很远的簇头节点能量消耗更快,这将影响网络的覆盖范围和生存时间。

发明内容
针对LEACH算法的不足,提出了一种基于能量消耗的无线传感器网络路由优化算法,主要从以下两个方面对LEACH算法进行优化和改进通过选择优化簇头节点的个数n2和选择最优节点作为簇头来改善网络质量,降低网络能量消耗,提高网络的生命周期。所述簇头节点个数n2的选择依据发送数据消耗的能量、接收数据消耗的能量、簇头节点消耗的能量,以及发送ADV消息所消耗的能量,用公式表示为Μ2χΝχεTI2 = \-α!~—(8)
\2π X (N X Eelec+samp xdaJ其中,M表示区域的宽度,N表示该区域均匀放置的节点数目,ε amp表示向单位面积发送Ibit数据时发射放大电路所消耗的能量,Eelec表示收发电路处理Ibit数据所消耗的能量,dadv表示簇头节点的最远覆盖距离。所述选择最优节点作为簇头依据节点剩余能量、网络平均剩余能量、节点上一轮消耗能量和网络上一轮平均消耗能量,一个节点当选为簇头节点的概率用公式表示 为P'it) =-—(10)
l-Px[i modl/P] Eave Ecomume其中,P表示节点当选为簇头节点的初始概率,R表示之前节点没有当选为簇头节点的轮数,Eremain表示节点剩余的能量,Eave表示网络平均剩余的能量,Econsume表示节点上一轮消耗的能量,Eave cons表示网络上一轮平均消耗的能量。本发明的一种基于能量消耗的无线传感器网络路由优化算法,在一定程度上实现了簇头节点分布平衡,能够有效降低节点的能量消耗,延长网络的生命周期,可广泛适用于无线传感器网络。


下面结合附图和实施例对本发明进一步说明。图I表示LEACH算法簇头节点选取流程图。图2表示通信功耗模型。图3表示P取不同值时LEACH算法的仿真结果。图4是传统LEACH算法和优化后的ILEACH算法网络生命周期的仿真结果比较。图5是LEACH算法和ILEACH算法的网络能耗的仿真结果比较。
具体实施例方式下面利用附图和具体实施方式
对本发明作进一步说明。参照图1,本发明的一种基于能量消耗的无线传感器网络路由优化算法,按以下步骤进行,新一轮开始时,判断节点i是否已做过簇头节点,若做过,则该节点成为普通节点,若没有做过,查询节点i的剩余能量、统计网络的平均剩余能量、计算节点i的能量消耗速度、统计网络的平均能量消耗速度,根据节点i的剩余能量、网络的平均剩余能量、节点i的能量消耗速度和网络的平均能量消耗速度确定阈值τα),生成一个大于ο小于I的随机数,判断随机数是否大于阈值T⑴,若是,则该节点成为普通节点,若否,则成为簇头节点。在研究低功耗的无线通信时,不同的假设模型,不同的通信特征,对算法整体性能的影响很大。在LEACH算法的仿真过程中,使用的硬件能耗模型如附图2所示。假设收发电路处理Ibit数据所消耗的能量Eele。= 50nJ/bit,向单位面积发送Ibit数据时发射放大电路所消耗的能量ε amp = 100pJ/bit/m2,则在发射节点和接收节点的距离为d时处理k比特的信号,发送消耗的总能量为Etx (k,d)。
ETx(k,d) = EelecXk+ ε ^pXkXd2(I)接收时消耗的总能量为EKX(k)。ERx(k) = EelecXk (2)从上面的公式可以看出,能量的消耗不仅与数据量的多少有关,还与通信距离的长短有关,因此为了减少能量的消耗,我们需要从两个方面入手,既要通过数据融合减少所要传输的数据量,还要在设计算法时尽量减少传输的距离。由于ε amp << E+。,近似可认为能量的消耗跟距离成正比,跟传输的数据量关系不太大,可以忽略。在选择簇头个数时,我们既希望在每一次的通信中消耗的总的能量最少,还想在整个网络中均匀的分布所消耗的总能量。基于此,假设有一个MXM的区域,在该区域内较均匀地放置N个节点,在这N个节点中有η个簇头节点,每个簇都将有一个簇头节点和Ν/η-1个成员节点。一个簇头节点一次接收和发送k比特的数据能量Eqi可表示为
eCH =kx Eeiec x (N/ η ~\) + k X EDA X N/ η + k X Eglec +kx εαιηρ X dl smk(3)其中,k表示每次传输的数据量,Eda表示簇头节点进行数据融合及数据压缩所需要消耗的能量,dt0 sink表示簇头节点到基站的距离,一个成员节点在每一次发送数据消耗的能量Emem可表示为Emem= k XEelec+k xsamp xdf0 CH(4)其中,dt0 是成员节点和簇头节点的距离。在我们的假设前提下,簇是平均分布的,每个簇的面积大约为M2/n,那么节点在这个区域的分布密度为P =n/M2,假定每个簇所覆盖的区域近似为一个圆形区域,圆的半径为r = ^M2Zm,于是,整个网络的总能量消耗
Etotal
可表示为Etotal =nx[ECH+(N/n-\)x Emem ]
-2kxEelecxN + kxNxEDA +nxkxsamp xdfosmk +NxkxsampxM2/2m(5)为了使网络消耗的能量最小,可解得簇头节点数量的最优值为W1 = ^Ν/2π X M/dto smk(6)在上面选择最优簇头节点数目时,并没有将簇头节点发送ADV消息的能耗考虑进去,是不全面的。为此需要对上面提到的算法进行一定的改进。仍和上述假定的网络环境一样,那么簇头节点在传输k比特数据所消耗的能量除了上述三种能量外还应该包括发送ADV消息所消耗的能量,网络总能量消耗Ettrtal表示为
Etotal-kx{nsamp X心 + iVX[( + 3)XEdec + εαηιρ xdl smt + Eda + Samp xM2/2皿]}(7)其中,dadv是簇头节点的最远覆盖距离。为了使网络消耗的能量最小,解得改进后的模型簇头节点数量的最优值为
I M2XNXSTi2 = \-,~—(8)
\2π X (N X Eelec+samp xdaJ改进后的最优簇头节点个数既考虑了数据融合的能量消耗,又考虑到距离的远近对能量的消耗,因而比原有的簇头数目更能够降低整体网络的能耗,延长网络的生命周期。在LEACH协议中,节点能否当选为簇头节点主要跟两个因素有关,第一该节点在过去的R轮中是否当过簇头节点;第二该节点随机产生的(0,1)之间的数是否小于阈值T (i)。在第R+1轮中假设节点i被选定为簇头节点的概率为Pi (t),通过设定Pi (t)的值来保证本轮产生的簇头节点数为k,当选的概率表示为
~ P.eG
P^t) = < l-i5x[i modl/JP](9)
[ο其他其中,P表示节点当选为簇头节点的初始概率,G表示在过去Rmod (N/k)轮中没有 担任过簇头节点的节点集合。在原来的LEACH算法中,簇头节点的选择方法并不能保证能量消耗均匀地分布在整个网络中,所以对LEACH的簇头选择方式进行改进,将节点剩余能量、网络平均剩余能量、节点上一轮消耗能量、网络上一轮平均消耗能量四个参数加入到簇头选取的过程中。这样就能将剩余能量比较低的节点去掉,不让那些节点当簇头节点。那么一个节点当选为簇头节点的概率为P'(t) =-厂^——(10)
1 I-P X iimod 1/i5 E E
L/ Javeconsume其中,Eremain表示节点剩余的能量,Eave表示网络平均剩余的能量,Econsume表示节点上一轮消耗的能量,Eave cons表示网络上一轮平均消耗的能量。改进后的最终方案引入了节点剩余能量、网络平均剩余能量、节点上一轮消耗能量、网络上一轮平均消耗能量四个参数。如果网络的平均能量比一个节点的剩余能量高,那么它被选为簇头节点的的概率也将大大降低,反之则大大提高。同时,如果网络平均消耗的能量比一个节点在一轮消耗的能量比要多,那么该节点能成为簇头节点的概率会增大。而且,这个方案还能保证每一轮中选出的簇头节点数符合要求的期望值。为了验证改进算法的可行性,本文用MATLAB仿真平台,把改进的ILEACH算法和LEACH算法做比较。在仿真环境中,无线传感器网络包括I个基站和100个节点,节点随机分布在100X100的范围内,仿真网络中的主要参数值如表I所示。表I网络主要参数
参数描述数值
P群首所占比例Sll~
E0节点初始能量0.25J
Eelec收发电路处理Ibit数据所消耗的能量50nJ/bit
Eba进行数据融合及数据压缩所需要的能量SnJ/lnt
发射放大电路向单位面积发送Ibk数据所消耗的能 in T/U.w 2
famp量10pJ/bit/m图3表示P取不同值时算法的仿真结果,其中横坐标表示整个网络工作的轮数,纵坐标表示每轮结束后,网络中处于存活状态的传感器节点数。从图中可以看出,当P = O. 05时,网络大概在工作600轮时开始出现死亡节点,工作1200轮时,所有节点死亡,网络瘫痪由于其他情况,故本仿真模型中P取O. 05。图4是两种算法网络生命周期的仿真结果。标识为ILEACH的曲线为改进后的LEACH算法。横坐标表示网络工作的轮数,纵坐标表示每一轮结束后,网络中处于死亡状态(即剩余能量等于零)的节点个数。从图中可以看出,采用LEACH算法在第520轮开始出现节点死亡,采用改进后的LEACH算法在610轮出现节点死亡;LEACH算法在1204轮节点全部死亡,ILEACH在1400轮节点全部死亡。可见,改进后的LEACH算法由于考虑了分群数量均衡和簇头节点位置信息,从而使整个网络分簇更加合理,节省了能量有效地延长整个网络的生命周期。图5给出了 LEACH和ILEACH的网络能耗的仿真比较结果。横坐标表示网络工作的轮数,纵坐标表示当前轮总共消耗的能量。采用LEACH算法在第610轮开始出现节点死亡,消耗的能量为19. 7J,而对应的ILEACH算法,此时的能耗只有16. 8J,在这一阶段能耗降低了 14. 7%,可见,改进的LEACH算法,在能量节省方面显示出极大的优越性。
权利要求
1.一种基于能量消耗的无线传感器网络路由优化算法,其特征是通过优化簇头节点的个数H2和优化节点作为簇头节点的概率<(0来改善网络质量,降低网络能量消耗,提高网络的生命周期,所述簇头节点个数n2的选择依据发送数据消耗的能量、接收数据消耗的能量、簇头节点消耗的能量,以及发送ADV消息所消耗的能量,用公式表示为
全文摘要
本发明是一种基于能量消耗的无线传感器网络路由优化算法,其特点是通过选择优化簇头节点的个数和选择最优节点作为簇头来改善网络质量,降低网络能量消耗,提高网络的生命周期,所述簇头节点个数的选择依据发送数据消耗的能量、接收数据消耗的能量、簇头节点消耗的能量,以及发送ADV消息所消耗的能量,所述选择最优节点作为簇头依据节点剩余能量、网络平均剩余能量、节点上一轮消耗能量和网络上一轮平均消耗能量。本发明在一定程度上实现了簇头节点分布平衡,能够有效降低节点的能量消耗,延长网络的生命周期,可广泛适用于无线传感器网络。
文档编号H04W84/18GK102802175SQ20121004319
公开日2012年11月28日 申请日期2012年2月24日 优先权日2012年2月24日
发明者李建坡, 陈晓娟, 曲朝阳, 邬春明, 赵立权, 王青竹, 朱绪宁 申请人:东北电力大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1