ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:373.44KB ,
资源ID:11406963      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-11406963.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WSN小论文 WSN的LEACH算法的分析与改进.doc)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

WSN小论文 WSN的LEACH算法的分析与改进.doc

1、WSN的LEACH算法的分析与改进一、 研究背景1.1 LEACH简介LEACH (Low2Energy Adaptive ClusteringHierarchy)算法是由MIT的Heinzelman等人提出的一种低功耗自适应分簇算法。其基本思想是以循环的方式随机选择簇头节点,将整个网络的能量负载均匀分配到网络中的每个传感器节点,从而达到降低网络能耗,提高网络生存周期的目的。1.2运行原理LEACH在运行过程中不断地循环执行簇的重构。算法操作使用了“轮”的概念,每一轮由初始化和稳定的工作两个阶段组成。在初始化阶段,每个节点产生一个01之间的随机数,如果某个节点产生的随机数小于所设的阈值T(n)

2、,则该节点发布自己是簇头的消息。1.3缺点在LEACH算法中,每一轮循环都要重新构造簇,而构造簇的能量开销比较大。其次,远离汇聚节点的簇头节点可能会由于长距离发送数据而过早耗尽自身能量,造成网络分割。另外,LEACH算法没有考虑簇头节点当前的能量状况,如果能量很低的节点当选为簇头节点,那么将会加速该节点的死亡,影响整个网络的生命周期。二、 LEACH算法分析LEACH的运作以“轮”来实现,每一轮开始是簇头的建立阶段,其次传输数据到基站的稳态阶段。为了尽量减少开销,稳态阶段比簇建立阶段时间长。2.1簇选举阶段簇头选举初始阶段,每个节点根据所建议网络簇头的百分比(事先确定)和节点已经成为簇头的次数

3、来确定自己是否当选为簇头。每个节点产生一个0-1的随机数字,如果该数字小于阈值T(N),节点成为当前轮的簇头。阈值T(n)=其中,P为预期的簇头百分比(例如,p= 0.5),r为当前轮数,G是最近1/p轮里没有成为簇头的节点的集合。使用这个阀值,每个节点会在1/p轮的某一轮成为簇头。在0轮(r = 0),每个节点都有一个成为簇头的概率P。当选为簇头的节点不能在未来的1/ P轮当选为簇头。因此,只有较少的节点有资格当选为簇头节点,剩余节点成为簇头的概率必然增加。1/p-1回合后对任意还没当选为簇头的节点T(n)=1,可见,1/ P的回合后,所有节点都再次有资格成为簇头。以后的工作中,我们会考虑到

4、非均匀能量节点的以能量为基础的阀值。在这种情况下,我们假设所有节点具有相同初始数量的能量,每个簇头也消耗大约相同的能量。非簇头节点必须保持他们的接收器在此选举阶段听到所有的簇头节点的广告。这一阶段完成后,每个非簇头节点决定在本轮中加入哪一个簇头节点。这一决定是基于对广告的接收信号强度。假设是对称的传播信道,收到发送的广告信号强度最大的簇头就是要加入的簇头,与其通信需要的能量最小。稳定之后表示簇头的随机选举完成了。2.2簇建立阶段在每个节点已决定它属于哪个簇之后,它必须告知簇头节点,它将成为该簇的成员节点。每个节点再次使用CSMA MAC协议发送这个信息反馈给簇头。在这个阶段,所有的簇头节点必须

5、保持他们的接收器打开。2.3 时间表的创建簇头节点收到所有想加入该簇的节点的消息。基于这个簇的节点的数量,簇头节点创建一个TDMA时间表告诉所有节点什么时候能开始传输数据。这个时间表广播给所有该簇的成员节点。2.4 数据传输图1.1 LEACH协议的时序图一旦簇创建和TDMA的时间表是固定的,数据传输可以开始了。假设节点有数据要发送,他们在分配给它们的传输时间内发送给簇头。这种传输使用少量的能源(选择基于收到簇头广告的强度)。每个非簇头节点的无线电可以关闭,直到分配给节点的传输时间到来,从而减少在这些节点的能量消耗。簇头节点必须保持其接收机接收到簇内所有节点的所有数据。当所有的数据已经收到,簇

6、头节点进行数据融合。例如,如果簇头收到数据音频或地震信号,簇头节点将这些收到的单个信号融合为一个复合信号。然后将这种复合信号发送到基站。但是由于基站远,这种传输是一种高能量的传输。以上是LEACH协议网络的稳定运行状态。经过一定时间后,下一轮开始,每个节点决定这轮自己是否能成为簇头,然后广播这一消息,2.5多个簇图1.2 LEACH协议过程前面介绍了如何在单个簇头内部之间进行通信的问题。然而,无线电本质上是一种广播媒介。正因为如此,在一个簇中的传输会影响(因此降低)附近的簇通信。为了减少这种干扰,每个集群通信使用不同的CDMA码。因此,当一个节点决定成为簇头,从扩频码的列表中随机选择。它通知在

7、簇的所有节点传输,使用这种扩频码。簇头会过滤所有收到的能源使用扩频码。因此邻近簇的无线电信号将被过滤掉,而不会干扰临近簇的数据传输。即使有一个中央控制中心,可以执行必要的算法,高效的信道分配也是一个棘手的问题。使用CDMA的代码,虽然不一定是带宽最有效的解决方案,但解决了多个分布式的方式接入的问题。三、 Leach协议优缺点LEACH算法是第一个针对无线传感器网络提出的层次型网络拓扑组织算法,与节点直接向BS发送数据的方式相比,在性能上有很大提升,但是该算法在某些方面还是存在一定局限性的。3.1优点LEACH协议是一种层次结构的路由协议,簇首形成高一层的网络,这样簇内成员的功能就变得相对简单,

8、并且不需要维护复杂的路由信息,大大减少路由控制信息的数量。另外,LEACH算法随机选取节点作为簇首,并且簇首是轮换选举的,这样能量的高消耗就平均分配到网络的所有节点上,以此来延长网络生命周期。最后,LEACH协议中簇的组织形式使网络具有很好的扩展性。3.2缺陷LEACH协议中簇首不仅要接收簇内成员节点采集的数据并对其进行融合,而且还要将数据发送给BS,因此消耗能量比普通的成员节点多,很容易失效,从而导致频繁分簇,分簇过程中所消耗的能量对于整个网络中的能耗是一种额外的头开销,如果频繁分簇的话,所产生的头开销就会增加,所以网络节点能量的利用率就会相应降低。另外,LEACH协议只适用于小规模的无线传

9、感器网络。由于簇内成员将原始数据经过单跳直接发送给簇首,簇首将融合后的数据经过单跳再发送给BS,所以簇内成员与簇首、簇首与BS之间必须布置在通信可达的范围内。四、 LEACH的改进协议经典的聚类协议假定所有的节点都配备了相同数量的能量,因此,他们不能充分利用节点异质性的存在。这里考虑一种能够异构感知的SEP协议,该协议可以延长第一个节点的死亡时间(也就是稳定期)。稳定期的延长对于许多应用程序是至关重要的,因为它们从传感器网络的反馈要求必须是可靠的。为了延长稳定期,SEP协议试图维持均衡的能源消耗。直观上,SEP协议高级节点(初始能量高的节点)成为簇头的概率大于普通的节点(初始能量低的节点),这

10、就相当于对于能源消耗的约束。SEP协议假定每个节点知道网络的总能量,然后根据节点的剩余能量计算出成为簇头的最佳概率。开始时先给每个节点分配一个权重对应于最优概率,权重必须等于每个节点的初始能量除以普通节点的初始能量。并且还定义为普通节点加权选举的概率,为高级节点加权选举的概率。 其中a为高级节点的初始能量是普通节点初始能量的倍数,m为高级节点在总节点数中所占比例。普通节点与高级节点成为簇头的阀值分别为和,计算公式如下: 其中r是当前轮数。从而可以保证剩余能量高的节点成为簇头的概率大于剩余能量低的节点。与传统的LEACH相比有如下优势:(1) 不同节点的初始能量的不同,SEP协议选择能量大的为簇

11、头从而延长了第一节点的死亡时间,也就是延长了稳定期。(2) 由于稳定期的延长,SEP协议的吞吐量也高于其他聚类协议。在一个理想的阶段SEP协议的能量均匀的分布在传感器网络中的所有节点上。五、 matlab仿真程序clear;% %Field Dimensions - x and y maximum (in meters)场地尺寸xm=100;ym=100; %x and y Coordinates of the Sink 布局sink.x=0.5*xm;sink.y=0.5*ym; %Number of Nodes in the field 场地节点数n=100 %Optimal Electi

12、on Probability of a node%to become cluster head选择为簇头的最佳概率p=0.1; %Energy Model (all values in Joules)能量模型%Initial Energy 初始化能量Eo=0.5;%Eelec=Etx=ErxETX=50*0.000000001;ERX=50*0.000000001;%Transmit Amplifier types 放大器Efs=10*0.000000000001;Emp=0.0013*0.000000000001;%Data Aggregation Energy 数据聚集的能量EDA=5*0

13、.000000001; %Values for Hetereogeneity 异质性值%Percentage of nodes than are advanced 高级节点百分比m=0.1;%a=1; %maximum number of rounds最大轮数rmax=99 % END OF PARAMETERS % %Computation of do do=sqrt(Efs/Emp); %Creation of the random Sensor Network建立随机传感网络figure(1);for i=1:1:nS(i).xd=rand(1,1)*xm;%随机数 XR(i)=S(i)

14、.xd; S(i).yd=rand(1,1)*ym; YR(i)=S(i).yd; S(i).G=0; %initially there are no cluster heads only nodes初始化无簇头只有节点 S(i).type=N; temp_rnd0=i; %Random Election of Normal Nodes随机选择普通节点 if (temp_rnd0=m*n+1) S(i).E=Eo; S(i).ENERGY=0; plot(S(i).xd,S(i).yd,o); hold on; end %Random Election of Advanced Nodes随机选

15、举高级节点 if (temp_rnd0m*n+1) S(i).E=Eo*(1+a) S(i).ENERGY=1; plot(S(i).xd,S(i).yd,+); hold on; endend S(n+1).xd=sink.x;S(n+1).yd=sink.y;plot(S(n+1).xd,S(n+1).yd,x); %First Iteration第一次迭代figure(1); %counter for CHscountCHs=0;%counter for CHs per round计算CH轮数rcountCHs=0;cluster=1; countCHs;rcountCHs=rcount

16、CHs+countCHs;flag_first_dead=0; for r=0:1:rmax r %Operation for epoch 运行期 if(mod(r, round(1/p) )=0) for i=1:1:n S(i).G=0; S(i).cl=0; end end hold off; %Number of dead nodes已死节点dead=0;%Number of dead Advanced Nodes已死的高级节点dead_a=0;%Number of dead Normal Nodes已死普通节点dead_n=0; %counter for bit transmitte

17、d to Bases Station and to ClusterHeads传输到基站和簇头的计数器 packets_TO_BS=0;packets_TO_CH=0;%counter for bit transmitted to Bases Station and to ClusterHeads %per round一轮传输到基站和簇头的比特计数器PACKETS_TO_CH(r+1)=0;PACKETS_TO_BS(r+1)=0; figure(1); for i=1:1:n %checking if there is a dead node 查找已死节点 if (S(i).E0 S(i).t

18、ype=N; if (S(i).ENERGY=0) plot(S(i).xd,S(i).yd,o); end if (S(i).ENERGY=1) plot(S(i).xd,S(i).yd,+); end hold on; endendplot(S(n+1).xd,S(n+1).yd,x); STATISTICS(r+1).DEAD=dead;DEAD(r+1)=dead;DEAD_N(r+1)=dead_n;DEAD_A(r+1)=dead_a; %When the first node dies第一个卡死的节点if (dead=1) if(flag_first_dead=0) first_

19、dead=r flag_first_dead=1; endend countCHs=0;cluster=1;for i=1:1:n if(S(i).E0) temp_rand=rand; if ( (S(i).G)=0) %Election of Cluster Heads选择簇头 if(temp_randdo) S(i).E=S(i).E- ( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance ); end if (distance0 ) if(cluster-1=1) min_dis=sqrt( (S(i).

20、xd-S(n+1).xd)2 + (S(i).yd-S(n+1).yd)2 ); min_dis_cluster=1; for c=1:1:cluster-1 temp=min(min_dis,sqrt( (S(i).xd-C(c).xd)2 + (S(i).yd-C(c).yd)2 ) ); if ( tempdo) S(i).E=S(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis); end if (min_dis0) S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E- ( (ERX + EDA)*4000 ); PACKETS_TO_CH(r+1)=n-dead-cluster+1; end S(i).min_dis=min_dis; S(i).min_dis_cluster=min_dis_cluster; end endendhold on; countCHs;rcountCHs=rcountCHs+countCHs; vx,vy=voronoi(X,Y);plot(X,Y,r*,vx,vy,b-); hold on; voronoi(X,Y); axis(0 xm 0 ym); end六、 程序仿真结果

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报