LEACH剩余能量图、存活节点图.doc

LEACH剩余能量图、存活节点图.doc

ID:60778619

大小:20.50 KB

页数:4页

时间:2020-12-18

LEACH剩余能量图、存活节点图.doc_第1页
LEACH剩余能量图、存活节点图.doc_第2页
LEACH剩余能量图、存活节点图.doc_第3页
LEACH剩余能量图、存活节点图.doc_第4页
资源描述:

《LEACH剩余能量图、存活节点图.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、clear;xm=100;%设置区域为100*100ym=100;sink.x=0.5*xm;%sink(汇聚)节点坐标sink.y=0.5*ym;n=100%区域内的节点数目p=0.05;%节点成为簇头的概率Eo=0.5;%节点初始能量ETX=50*0.;%发射单位报文损耗能量ERX=50*0.;%接收单位报文损耗能量Efs=10*0.1;%自由空间能量Emp=0.0013*0.1;%衰减空间能量EDA=5*0.;%聚集数据所要消耗的能量rmax=1500%最大的轮数do=sqrt(Efs/Emp);%计

2、算do通信半径。figure(1);%输出图形fori=1:1:n%i为矩阵1到n,间距为1S(i).xd=rand(1,1)*xm;%1行1列矩阵XR(i)=S(i).xd;%随机生成的X轴S(i).yd=rand(1,1)*ym;YR(i)=S(i).yd;%随机生成的Y轴S(i).G=0;S(i).type='N';%节点类型为普通S(i).E=Eo;%设置初始能量为E0S(i).ENERGY=0;%普通节点标志plot(S(i).xd,S(i).yd,'o');%输出节点,用o表示holdon;en

3、dS(n+1).xd=sink.x;%汇聚节点X轴坐标S(n+1).yd=sink.y;%汇聚节点Y轴坐标plot(S(n+1).xd,S(n+1).yd,'x');%输出汇聚节点,用x表示%第一次迭代figure(1);cluster=1;flag_first_dead=0;%第一个节点死亡的标志变量forr=0:1:rmaxrif(mod(r,round(1/p))==0)%如果所有节点都当过簇头,则全部节点清零,回到最初状态fori=1:1:nS(i).G=0;%簇头数目endenddead=0;fi

4、gure(4);fori=1:1:nif(S(i).E<=0)%检查是否有节点死亡plot(S(i).xd,S(i).yd,'red.')%输出节点,用红.表示dead=dead+1;%节点死亡数+1holdon;endif(S(i).E>0)%节点能量大于0S(i).type='N';plot(S(i).xd,S(i).yd,'o');holdon;endendplot(S(n+1).xd,S(n+1).yd,'x');%sinkSTATISTICS_leach(r+1).DEAD=dead;%r轮后死亡

5、节点数DEAD_leach(r+1)=dead;%r轮后死亡节点数if(dead==1)%第一个节点死亡if(flag_first_dead==0)%第一个节点死亡周期first_dead=r%第一个节点死亡轮数flag_first_dead=1;%第一个死亡节点标志endendcountCHs=0;%簇头的个数cluster=1;%簇头的标号,初始值为1fori=1:1:n%i为矩阵1到n,间距为1if(S(i).E>0)%节点剩余能量大于0temp_rand=rand;if((S(i).G)<=0)%没

6、有当过簇头?if(temp_rand<=(p/(1-p*mod(r,round(1/p)))))%对簇头节点进行处理countCHs=countCHs+1;%簇头数+1S(i).type='C';%节点类型为簇头S(i).G=100;%S(i).G=100表示当过簇头C(cluster).xd=S(i).xd;%簇头X轴坐标C(cluster).yd=S(i).yd;%簇头Y轴坐标plot(S(i).xd,S(i).yd,'k*');%输出节点,用黑*表示distance=sqrt((S(i).xd-(S(

7、n+1).xd))^2+(S(i).yd-(S(n+1).yd))^2);%相对应的簇头到sink的距离C(cluster).distance=distance;%距离C(cluster).id=i;%簇头对应的节点编号X(cluster)=S(i).xd;%X轴坐标Y(cluster)=S(i).yd;%Y轴坐标cluster=cluster+1;%簇头标号数+1!!distance;if(distance>do)%距离大于通信半径S(i).E=S(i).E-((ETX+EDA)*(4000)+Emp*4

8、000*(distance*distance*distance*distance));%能量消耗endif(distance<=do)%距离小于通信半径S(i).E=S(i).E-((ETX+EDA)*(4000)+Efs*4000*(distance*distance));%能量消耗endendendendendSTATISTICS(r+1).CLUSTERHEADS=cluster-1;%r轮后簇头数CLUS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。