存储模拟结果的最佳实践

Best Practice to Store Simulation Results

亲爱的 Anylogic 社区,

我正在努力寻找存储模拟结果的正确方法。我创建了数据集来跟踪我感兴趣的每个值。它们位于 Main(见下文)

我的目的是做一个参数变化实验。在每个 运行 中,我更改 p_nDrones 的值(见下文)

经过实验,我想把所有的数据集都存储在一个excel sheet.

然而,当我做参数变化实验,然后检查数据集的日志时(datasets_log),改变的值甚至没有显示(2是我在正常设置的值模拟)。

现在我的问题。如果我想跟踪实验中产生的值,是否需要创建另一种类型的数据集?为什么执行实验后不存储?

如果有人可以分享设置此实验结果导出的最佳方法,我将不胜感激。我想存储每个数据集的整个时间序列。

谢谢!

最好的选择是在每个模型的末尾将输出写入某个外部文件 运行。

如果你想使用 Excel,我个人不建议这样做,尽管它有一个很好的 excelFile.writeDataSet() 功能,你可以。

我宁愿将数据写入文本文件,因为您可以更好地控制写入,文件本身,它是 thread-safe,并且可以在比 Microsoft [=49] 多得多的平台上使用=].

请参阅下面的示例:

  1. 在您的模型中设置参数,您将在类型 TextFile 的模型末尾写入数据。这里我使用销毁代码上的模型从数据集中写出数据。

在这里您可以立即看到使用文本文件的好处!您可以在一列中添加我们正在模拟的无人机数量(或场景名称或任何其他参数),而使用 Excel 这会很痛苦...

  1. 现在您可以将特定的文本文件添加到参数变化页面,通过参数将其提供给模型,从而将其传递给模型使用。

你会看到我在Initial Experiment setup部分的文本文件也设置了一些headers,然后在实验的最后,我关闭了After experiment 部分,以便可以使用文本文件。

  1. 如果您只是 right-click 文本文件并在 Excel 中打开它们,结果如下。 (Excel 总是有目的的,即使只是为了打开文本文件 ;-) )