2010-11-24 wcdj
本文对wireless.energy文件进行分析。wireless.energy的结构为:第一列表示:运行时间,第二列表示:节点ID,第三列表示:节点目前消耗的能量。用awk编写脚本提取自己需要的信息。下面是分析leach协议中,节点目前已消耗能量和时间关系的awk脚本:(可参考如下)
[1] leach_energy.awk (awk代码)
把awk文件放在~/ns-allinone-2.27/ns-2.27/mit/leach_sims目录下:
cd ~/ns-allinone-2.27/ns-2.27/mit/leach_sims
gawk -f leach_energy.awk leach.energy
执行后,会在~/ns-allinone-2.27/ns-2.27/mit/leach_sims目录下生成4个文件名为节点ID的文件。使用gnuplot工具对其中一个文件可生成如下图形:
从图形中可以看出,随着时间(round,轮)节点消耗能量的变化趋势。
修改leach_energy.awk脚本文件,将输出全部重定向到leach_energy.out一个文件中,并画图显示如下:
[2] leach_energy2.awk (awk代码)
从图形中可以看出,随着时间的变化,有些节点消耗的能量并不均匀,即,在某个时间段曲线很陡。(这是LEACH协议有待改进的地方)
PS:LEACH协议是一个负载均衡的协议。它的基本思想是:以循环的方式选择簇首节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。仿真表明,与一般的平面多跳路由协议和静态分层算法相比,LEACH协议可以将网络生命周期延长%15。
注意修改:在leach中,可以从leach.out文件分析可知,一轮20秒,即每20秒重新选举一次簇首节点。上述图中横坐标注释为time更为合适。