我在参数研究中使用非标量参数:
*.server.serviceTime = ${B=exponential(20ms), exponential(35ms)}
但是,与其他标量参数相比,B
参数未显示在结果的浏览数据部分中,我目前使用该部分导出结果参数研究:
如何记录我正在使用的指数分布(B
)的参数?
serviceTime
在.ned
中声明如下:
volatile double serviceTime @unit(s);
答案 0 :(得分:1)
如果我没弄错,你想记录指数分布的平均值。以下是PureAlohaExperiment示例如何执行此操作的示例:
[Config PureAlohaExperiment]
...
Aloha.numHosts = ${numHosts=10,15,20}
Aloha.host[*].iaTime = exponential(${mean=1,2,3,4,5..9 step 2}s)
即。将交互变量置于指数函数内。
答案 1 :(得分:0)
您可以在NED模块中放入一个名为B的参数。然后,在omnetpp.ini中执行以下操作:
**.B = ${B=exponential(20ms), exponential(35ms)}
最后,在finish()函数中记录B NED参数:
recordScalar("B", par("B"));
答案 2 :(得分:0)
有一个选项param-record-as-scalar
用于将参数保存为标量。使用它的一个例子:
*.server.serviceTime.param-record-as-scalar = true
但是,它不适用于易失性参数(在完成模拟期间出现错误)。似乎有意避免注册“无意义”的随机值。
如果你真的需要当前的volatile参数随机值,你应该在读取之后将其记录为新的标量,例如:
double serviceTime = par("serviceTime").doubleValue();
recordScalar("serviceTime 1", serviceTime);
// ... later
serviceTime = par("serviceTime").doubleValue();
recordScalar("serviceTime 2", serviceTime);