仿真问题处理与解析: (不用网上说的zz 直接用leach本身带的 test 和leach_test) (1) 打开cygwin 输入命令 startxwin.bat回车 进入X ~ 环境下。 (2) 进入。。/ns-2.27目录下 (3) 然后 输入命令 ./test ./test后生成许多文件。结果文档同样在mit/uAMPS/sims文件夹下,分别为:wireless.alive, wireless.energy, wireless.data (4)去leach_sims文件夹下面;不要打开LEACH_ALIVE那些文件只是刷新,看那些文件是不是慢幔的在变大 不断的刷新(刷新是为了更直观的看见文件在变化 其实不必非得刷新 它自己一直在变化呢 TDMAschedule.240.txt 文件也在增多 变到TDMAschedule.520.txt 就结束了),直到它不变化了。生成好多 TDMAschedule 文件 大概LEACH_ALIVE文件大小为 47k 时 不在变化 (等待 500秒 ) 具体数字只供参考 最重要的是 直到它不变化 就可以了 (5) 在ns-allinone-2.27/ns-2.27/mit/leach_sims文件夹下,我们新建一个test.awk的文件,然后把以下代码复制进去,利用awk,编写脚本,提取自己需要的信息,提取leach.alive文件中的数据信息。 {在网上搜索到了一个现成的——leach协议剩余节点和时间关系的awk脚本(来自于http://blog.baisi.net/?105639/viewspace-3105)} 注意:printf ( "%f %d/n",time[i],total[i]); 这句%f和%d之间加一个空格! 输入命令: cd mit/leach_sims 进入mit/leach_sims 目录下 然后输入命令 gawk -f test.awk leach.alive>data.gnuplot 该命令就是用AWK文件去处理leach.alive文件,处理结果存入data.gnuplot 。 (7) 接下来就是我的最后一步,用gnuplot来画图!注意:gnuplot画图是startxwin下运行的。 (还是在刚才的目录(ns-allinone-2.27/ns-2.27/mit/leach_sims) 下不变,) 输入命令 gnuplot回车 在gnuplot> 后输入命令plot 'data.gnuplot' with linespoints(w linesp 简写形式) 回车 这时候会生成如下一个图 Leach 仿真图 ok 成功。
解析:
(1)如果我们把init_energy 2 /改为init_energy 10 / 也就是节点的能量翻了5倍!那么,在270秒的时候是绝对没有节点死亡的!因为他们的能量消耗最多的才消耗到2J (2)Data.gnuplot 画出的仿真图像 横坐标代表的是时间,纵坐标代表的是当前节点的总数 (3)我们定义的是一百的节点,在前270秒的时候,节点总数总是100,直到有节点能量损耗完毕,那个红点就会小于100!而你这个图在总体趋势上来看是个下降的走势!是符合我们的推断的!所以你这个仿真是有效的
(4)awk修改的地方 printf ( "%f %d/n",time[i],total[i]); 这句%f和%d之间加了一个空格!
这里需要感谢一个好朋友的帮助,好多结果都是在我们的共同讨论下得出来的。 |
LEACH仿真问题处理与解析(1)
最新推荐文章于 2023-03-16 14:26:39 发布