1.複製leach_test為leach-c_test,修改裡面的資料夾和輸出檔名。並且手動建立相應的資料夾。
很多教程說只修改檔名,沒提到修改資料夾,如果同時執行兩個協議會覆蓋一部分實驗結果的,而且是並行的就更難分解出是哪個協議的實驗資料了。所以還是分開較好。
2.新增到test檔案最後,後台執行的,需要等待。
3.寫指令碼分析實驗資料。
[plain]view plain
copy
print?
#計算不同時間剩餘節點的數量
begin
if (statenode==1)
totalleft++;
total[countcyl]=totalleft;
} end
#計算不同時間剩餘節點的數量
begin
if (statenode==1)
totalleft++;
total[countcyl]=totalleft;
}end
[plain]view plain
copy
print?
begin
if (simtime==lasttime )
} end
begin
if (simtime==lasttime )
}end
[plain]view plain
copy
print?
begin
if (simtime==lasttime )
else if (nodeenergy>=2.0)
} }
end
begin
if (simtime==lasttime )
else if (nodeenergy>=2.0) }}
end
4.gnuplot來畫圖
[plain]view plain
copy
print?
set multiplot
set origin 0.0,0.5
set size 0.5,0.5
plot 'leach.alive.rst' with linespoint,'leach-c.alive.rst' with linespoint
set origin 0.5,0.5
set size 0.5,0.5
plot 'leach.data.rst' with linespoint,'leach-c.data.rst' with linespoint
set origin 0.33,0.0
set size 0.5,0.5
plot 'leach.energy.rst' with linespoint,'leach-c.energy.rst' with linespoint
set multiplot
set origin 0.0,0.5
set size 0.5,0.5
plot 'leach.alive.rst' with linespoint,'leach-c.alive.rst' with linespoint
set origin 0.5,0.5
set size 0.5,0.5
plot 'leach.data.rst' with linespoint,'leach-c.data.rst' with linespoint
set origin 0.33,0.0
set size 0.5,0.5
plot 'leach.energy.rst' with linespoint,'leach-c.energy.rst' with linespoint
得到如下圖:
明顯實驗結果說明leach-c死亡節點比較早,雖然bs收到資料量大,但是能量消耗是leach協議更關心的問題。
修改bs座標為(0,0),再次計算得到如下結果:
從各方面來說c都比leach更優,有人說若bs在節點區域內部,則leach更優,若在外部則leach-c更優!
想知道為什麼還需要看懂這兩個協議嘍。
接下來**和理論分析。
Leach協議學習(4) Leach協議改進
轉 leach協議學習 4 leach協議改進 收藏 leach協議之後,很多人進一步提出了改進的leach協議,如sep協議,選擇leach協議來學習ns2主要是考慮到leach協議的經典和有趣,同時也認為是ns2學習的乙個很好很有用的開頭,不過,leach協議並不是那麼容易參透,還有很多迷茫的地...
ns2 34移植leach協議
執行出現的警告 1.warning please use channel as shown in tcl ex wireless mitf.tcl 因為高版本的ns2支援多通道配置,因此無線節點設定通道要更改以前的方式,參照檔案wireless mitf.tcl進行設定。或者將節點配置的channe...
效能測試之協議分析
最近在論壇上的一些朋友問指令碼方面的問題,比如用lr的winsock協議錄製的指令碼遇回放過程中遇到如下錯誤 action.c 20 error callconnect can t assign requested address.error code 10049.action.c 20 error...