仿真一:在100*100的区域内随机生成100个节点
(matlab仿真代码: clear;
xm=100;%x轴范围
ym=100;%y轴范围
sink.x=0.5*xm;%基站x轴 50
sink.y=0.5*ym;%基站y轴 50
n=100;
E0=0.02;
for i=1:1:n
S(i).xd=rand(1,1)*xm;
S(i).yd=rand(1,1)*ym;
S(i).G=0;%每一周期结束此变量为0
S(i).E=E0;%设置初始能量为E0
S(i).type='N';%节点类型为普通
plot(S(i).xd,S(i).yd,'o');
hold on;
end
%设置SINK节点的坐标
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
plot(S(n+1).xd,S(n+1).yd,'*');%绘制基站节点
仿真结果图片: (‘O’代表随机散布的节点,‘*’代表SINK节点)
10090807060504030201000102030405060708090100
仿真二:LEACH分簇效果图(matlab代码见附件)
仿真结果:(p=0.1)
1、簇头个数14.
10090807060504030201000102030405060708090100
2、簇头个数:11
10090807060504030201000102030405060708090100
3、簇头个数:12
10090807060504030201000102030405060708090100
4、簇头个数:10
10090807060504030201000102030405060708090100
(p=0.05)
1、簇头=6
10090807060504030201000102030405060708090100
2、簇头=7
10090807060504030201000102030405060708090100
3、簇头=12
10090807060504030201000102030405060708090100
4、簇头=8
10090807060504030201000102030405060708090100
5、
LEACH分簇算法成簇效果图1009080706050403020100SINK节点y簇头普通节点01020304050x60708090100
仿真三:LEACH分簇算法第一个节点死亡的轮数
10090807060504030201000102030405060708090100
10090807060504030201000102030405060708090100
第一死亡节点出现的分布及轮数10090807060504030201000102030405060708090100簇头节点SINK节点普通节点死亡节点
第一死亡节点出现的分布及轮数100908070605040302010001020304050x60708090100SINK节点y死亡节点
第一死亡节点出现的分布及轮数1009080706050403020100010死亡节点SINK节点y20304050x60708090100
经过matlab仿真,LEACH分簇算法在第一个节点死亡时,已经运行的轮数分别为:
122、143、125、149、122、72.
仿真四:20%的节点死亡时分布及轮数
1、
20%的节点死亡时分布及轮数100908070605040302010001020304050x60708090100死亡节点y簇头节点普通节点SINK节点
2、
100908070605040302010001020304050x60708090100y
100908070605040302010001020304050x60708090100y
轮数:196、207、205、181.
因篇幅问题不能全部显示,请点此查看更多更全内容