omnet++:官方文档翻译总结(五)
阅读原文时间:2023年07月09日阅读:1

Part 6 - 用IDE将结果可视化

学习翻译自:Visualizing the Results - OMNeT++ Technical Articles

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,使用和之前例子中相同的路由算法。最终我们感兴趣的是节点数量如何影响平均跳数。

为了将整个网络参数化,节点数量将作为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}

我们指定了N为从2到100的步长为2的数列。这将生成50个仿真网络。每个网络都可以在GUI中看到,不过仿真的实际通常是通过cmd接口使用Cmdenv 运行时环境运行。

为了提高仿真准确度,我们需要用不同的随机数运行多次运行相同的仿真。这样的运行称为Repetitions并且在ini文件中加以指定:

repeat = 4

这意味着每个仿真都要被运行4次,每次都有不同的seed。这可以提供更多的样本,使结果更加平均。重复的越多,结果将会越来越变成期望的结果。

现在,我们可以运行仿真了。首先通过Run -> Run Configurations进入运行配置对话框。

在Run Configurations对话框中,通过设置User interface选中运行环境为Cmdenv。

如果我们有一个多核CPU,你可以就可以指定可以同时运行的网络模拟数。

(完)