转自 王子 空间 http://272387537.qzone.qq.com/
网上太多介绍LEACH仿真的步骤,也出现了很多LEACH和LEACH-C的节点死亡趋势图的对比!把LEACH协议在NS2。27下仿真出来了后,也不晓得怎么去做LEACH-C的仿真,不过经过一天的努力,感觉好象只用把仿真时用的2个脚本文件做相应的修改。因为LEACH-C功能实现的文件在MIT下面也已经存在!下面就简单介绍下2个脚本文件修改的过程!首先 将.test文件打开,(路径:C:/cygwin/home/Administrator/ns-allinone-2.27/ns-2.27 test文件 leach_test 及leach-c_test 都放此路径下)在最后一行中加入./leach-c_test。 。。。。。。。 cd ../../ 这里用到了LEACH-C_TEST,接下来就要写leach-c_test文件了,我是把本身的leach_test文件COPY了一份,然后在它的基础上做修改的。打开该文件,修改的地方如下: 该文件第5行改为 alg=leach-c好象就改这一处! 然后在startxwin.bat下进入路径ns-allinone-2.27/ns-2.27因为在LEACH仿真的时候环境变量和MAKEFILE等文件都已经配置过路径!所以这里不需要配置!OK,直接进行./test。然后等待仿真完毕(等待500秒),观察leach-c.alive文件的大小不在变化。就可以对leach.alive和leach-c.alive进行仿真对比了! 提取数据 画图 cd mit/leach_sims 进入mit/leach_sims 目录下 gawk -f test.awk leach.alive>leach.gnuplot leach 的数据放在leach.gnuplot中 gawk -f test.awk leach-c.alive>leachc.gnuplot leach-c 的数据放在leachc.gnuplot中
gnuplot回车 在gnuplot> 后输入命令plot 'leach.gnuplot' w linesp, 'leachc.gnuplot' w linesp 回车 在一张图上画多条曲线 用逗号(,)隔开 我仿真对比的图片如下所示:
|
LEACH&LEACH-C(绪)
看了一些文章,自己总结了一下!对LEACH和LEACH-C又做了一下仿真,发现LEACH和LEACH-C好象他们的使用效果与BS所处的位置有很大的关系!上一篇文章我们的BS坐标是在bs_x=50 bs_y=175,在这次的仿真过程中,我只做了小小的改动,就是把BS的位置做了一定的变化。bs_x=0 bs_y=0。即BS在坐标原点!其他的步骤不变!仿真出来后发现:废话少说,直接上图。
|
自己对这个仿真的最后关于“陡峭”的问题写点个人的看法吧。我个人是这样理解的,LEACH和LEACH-C所有的节点和每个节点的能量都是一样的,我们从节点存活的走势曲线图来分析,要从2方面来入手。第一,节点走势保持在100的时间越久,协议在该场景条件下越优越。第二,在节点开始有死亡后,曲线走向0的时间越少,也就是越接近垂直线的接近0(所谓陡峭)。那么协议也优越。
在理论上,我们要求我们的节点走势曲线图是 ┑ 这个样子,是最好!因此,我个人认为,在上述仿真过程和场景中LEACH比LEACH-C更符合我总结的这2点,因此它更优越。
不知道分析的对不对,有人如果有新的想法记得留言一起探讨啊!
LEACH&LEACH-C(再绪)
修改 BS放在200,200 bs_x=200 bs_y=200 leach_test leach-c_test 文件 在。./test 经过多次的实验后,我把BS的位置换了很多地方,终于能画出一个图能证明我看的那些资料所说的想法!废话少说,继续上图
这个仿真结果我是把BS放在了200,200的位置,因为在我们的仿真脚本文件中,节点是散布在100X100的范围内,而我们的整个仿真场景是设置的1000X1000,所以BS放在200,200时,BS是处于探测区域外。 所以我也可以得出以下结论,当BS位于探测节点范围内部时,LEACH是比LEACH-C优越的,但是当BS在探测区域之外时,LEACH-C会比LEACH更优越! |