Part 6 - 用IDE將結果可視化
學習翻譯自:Visualizing the Results - OMNeT++ Technical Articles
①將輸出的數值和向量數據可視化(用tictoc15的數據)
OMNET++ IDE支持對結果的分析,包括濾波、處理和展示數值和向量數據,還可以展示直方圖。本節之后的圖都適用IDE的Result Analysis工具創建出來的。
在項目文件夾中的results目錄下包含了.vec和.sca文件,分別存儲結果中的vector和數值數據。vector文件中把數據記錄為時間的函數,而數值數據只是單純在仿真結束時把數據集中起來。
在IDE中直接雙擊打開.vec和.sca文件,就可以進入Result Analysis tool。
Part 7 - Parameter Studies:Tictoc18
學習翻譯自:Parameter Studies - OMNeT++ Technical Articles
①目的
我們想要運行一個有不同數量節點的網絡仿真,並且觀察其中的網絡變化。在OMNET++我們可以用parameters studies一次用不同的parameters值運行多個仿真。
我們可以把中心節點變成一個parameter,使用和之前例子中相同的路由算法。最終我們感興趣的是節點數量如何影響平均跳數。
②使網絡拓撲結構參數化(Making the network topology parametric)
為了將整個網絡參數化,節點數量將作為NED parameter給出,在本例中為numCentralNodes。這個參數說明了在網絡中心環節中有多少個節點——中心節點中不覆蓋邊緣的兩個節點。
包含了邊緣4個節點的網絡總結點數是numCentralNodes+4。默認的numCentralNodes參數是2,這剛好和我們上一步中定義的網絡相匹配。
network TicToc18 { parameters: int numCentralNodes = default(2); types: channel Channel extends ned.DelayChannel{ delay = 100ms; } submodules: tic[numCentralNodes+4] : Txc18;
現在,我們必須說明連入這個網絡的不同數量的節點的信息。首先,一邊的兩個節點與第三個節點連接,另一邊的兩個節點也和另一個第三個節點相連接。網絡中心節點通過一個for循環連接。從第三個節點開始,每個編號為i的節點都要與編號為i+1的節點相連接:
connections: //在一邊將兩個節點連入中心節點 tic[0].gate++ <--> Channel <--> tic[2].gate++; tic[1].gate++ <--> Channel <--> tic[2].gate++; //中心節點間的互聯 for i=2..numCentralNodes+1 { tic[i].gate++ <--> channel <--> tic[i+1].gate++; //在另一邊連接另外兩個節點到中心節點 tic[numCentralNodes+2].gate++ <--> Channel <--> tic[numCentralNodes+1].gate++; tic[numCentralNodes+3].gate++ <--> Channel <--> tic[numCentralNodes+1].gate++;
這里,中心節點數為4(即numCentralNodes = 4)的網絡看起來像下邊這樣:
為了能夠運行由多個不同numCentralNodes的節點的仿真網絡,我們可以在ini文件中指定變量N的值:
*.numCentralNodes = ${N=2..100 step 2}
③配置parameter study
我們指定了N為從2到100的步長為2的數列。這將生成50個仿真網絡。每個網絡都可以在GUI中看到,不過仿真的實際通常是通過cmd接口使用Cmdenv 運行時環境運行。
為了提高仿真准確度,我們需要用不同的隨機數運行多次運行相同的仿真。這樣的運行稱為Repetitions並且在ini文件中加以指定:
repeat = 4
這意味着每個仿真都要被運行4次,每次都有不同的seed。這可以提供更多的樣本,使結果更加平均。重復的越多,結果將會越來越變成期望的結果。
④運行parameter study
現在,我們可以運行仿真了。首先通過Run -> Run Configurations進入運行配置對話框。
在Run Configurations對話框中,通過設置User interface選中運行環境為Cmdenv。
如果我們有一個多核CPU,你可以就可以指定可以同時運行的網絡模擬數。