全文预览

无线传感器网络的leach算法及其改进

上传者:业精于勤 |  格式:doc  |  页数:19 |  大小:0KB

文档介绍
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)%没有当过簇头?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(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*4000*(distance*distance*distance*distance));%能量消耗endif(distance<=do)%距离小于通信半径S(i).E=S(i).E-((ETX+EDA)*(4000)+Efs*4000*(distance*distance));%能量消耗

收藏

分享

举报
下载此文档