✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
概述
LEACH(低能耗自适应集群层次路由)和 DEEC(分布式能量高效集群)是两种用于无线传感器网络的层次路由算法。它们都旨在通过在网络中形成簇来减少能量消耗,从而延长网络的寿命。
LEACH 算法
LEACH 算法是一种基于轮换的簇头选举算法。在每轮选举中,每个节点都有可能被选为簇头。簇头负责收集簇内节点的数据并将其发送到汇聚节点。汇聚节点负责将数据发送到网络的最终目的地。
LEACH 算法的流程如下:
-
簇头选举:每个节点都会生成一个随机数。如果随机数小于某个阈值,则该节点被选为簇头。
-
簇形成:簇头向其周围的节点广播一个消息,通知它们加入簇。节点收到簇头消息后,会选择一个信号最强的簇头加入。
-
数据收集:簇头负责收集簇内节点的数据。簇内节点将数据发送到簇头,簇头将数据聚合后发送到汇聚节点。
-
数据传输:汇聚节点负责将数据发送到网络的最终目的地。
DEEC 算法
DEEC 算法是一种基于能量的簇头选举算法。在每轮选举中,能量最高的节点被选为簇头。簇头负责收集簇内节点的数据并将其发送到汇聚节点。汇聚节点负责将数据发送到网络的最终目的地。
DEEC 算法的流程如下:
-
簇头选举:每个节点都会计算自己的能量。能量最高的节点被选为簇头。
-
簇形成:簇头向其周围的节点广播一个消息,通知它们加入簇。节点收到簇头消息后,会选择一个能量最高的簇头加入。
-
数据收集:簇头负责收集簇内节点的数据。簇内节点将数据发送到簇头,簇头将数据聚合后发送到汇聚节点。
-
数据传输:汇聚节点负责将数据发送到网络的最终目的地。
📣 部分代码
clearclose all%1.初始参数设定模块%.传感器节点区域界限(单位 M)xm=100;ym=100;%(1)汇聚节坐标给定sink.x=0.5*xm;sink.y=0.5*ym;%区域内传器节数n=100%簇头优化比例(当选簇头的概率)p=0.1;%能量模型(单位 焦)%初始化能量模型Eo=0.5;%Eelec=Etx=ErxETX=50*0.000000001;ERX=50*0.000000001;%Transmit Amplifier typesEfs=10*0.000000000001;Emp=0.0013*0.000000000001;%Data Aggregation EnergyEDA=5*0.000000001;%高能量节点超出一节点能量的百分比a=1;%最大循环次数rmax=5000%算出参数 dodo=sqrt(Efs/Emp);%2.无线传感器网络模型产生模块%构建无线传感器网络,在区域内均匀投放100个节点,并画出图形for i=1:1:nS(i).xd=rand(1,1)*xm;XR(i)=S(i).xd;S(i).yd=rand(1,1)*ym;YR(i)=S(i).yd;S(i).G=0;S(i).E=Eo*(1+rand*a);%initially there are no cluster heads only nodesS(i).type='N';endS(n+1).xd=sink.x;S(n+1).yd=sink.y;%3.网络运行模块%簇头节点数countCHs=0;cluster=1;%此定义的目的仅仅是给定一个1开始的下标参数,真正的簇头数应该还减去1flag_first_dead=0;flag_teenth_dead=0;flag_all_dead=0;%死亡节点数dead=0;first_dead=0;teenth_dead=0;all_dead=0;%活动节点数allive=n;%counter for bit transmitted to Bases Station and to Cluster Headspackets_TO_BS=0;packets_TO_CH=0;%(1)循环模式设定for r=0:1:rmax %该 for 循环将下面的所有程序包括在内,直到最后一 end 才结束循环r%每过一个轮转周期(本程序为10次)使各节点的S(i).G参数(该参数用于后面的簇选举,在该轮转周期内已当选过簇头的节点不能再当选)恢复为零if(mod(r, round(1/p) )==0)for i=1:1:nS(i).G=0;S(i).cl=0;endend%(2)死亡节点检查模块dead=0;for i=1:1:n%检查有无死亡节点if (S(i).E<=0)dead=dead+1;%(3)第一个死亡节点的产生时间(用轮次表示)%第一个节点死亡时间if (dead==1)if(flag_first_dead==0)first_dead=r;flag_first_dead=1;endend%10%的节点死亡时间if(dead==0.1*n)if(flag_teenth_dead==0)teenth_dead=r;flag_teenth_dead=1;endendif(dead==n)if(flag_all_dead==0)all_dead=r;flag_all_dead=1;endendendif S(i).E>0
⛳️ 运行结果



LEACH 和 DEEC 算法的比较
LEACH 和 DEEC 算法都是用于无线传感器网络的层次路由算法。它们都旨在通过在网络中形成簇来减少能量消耗,从而延长网络的寿命。
LEACH 算法是一种基于轮换的簇头选举算法,而 DEEC 算法是一种基于能量的簇头选举算法。LEACH 算法的优点是简单易实现,但缺点是簇头选举的随机性可能会导致某些节点成为簇头过于频繁,从而导致这些节点的能量消耗过快。DEEC 算法的优点是能够选择能量最高的节点作为簇头,从而避免了 LEACH 算法的缺点,但缺点是簇头选举的复杂度较高。
结论
LEACH 和 DEEC 算法都是用于无线传感器网络的层次路由算法。它们都旨在通过在网络中形成簇来减少能量消耗,从而延长网络的寿命。LEACH 算法简单易实现,但缺点是簇头选举的随机性可能会导致某些节点成为簇头过于频繁,从而导致这些节点的能量消耗过快。DEEC 算法能够选择能量最高的节点作为簇头,从而避免了 LEACH 算法的缺点,但缺点是簇头选举的复杂度较高。
本文对比了LEACH和DEEC两种层次路由算法,阐述了它们在节能和延长网络寿命方面的原理,以及LEACH的轮换选举机制与DEEC的基于能量的选举机制的差异和各自的优缺点。
889

被折叠的 条评论
为什么被折叠?



