1

我想在 AnyLogic 个人学习版中设置预热期。我在AnyLogic中搜索了热身期的地方,但是我找不到任何关于热身期的东西。

Anylogic是否有热身期或类似的东西?

4

2 回答 2

1

没有默认的预热设置,因为考虑到工具和用户需求的巨大灵活性,它没有意义。

但是,您自己设置它很容易。像往常一样,有很多不同的选择,这里有一个:

  1. 在 Main 上创建一个变量 v_WarmupDuration,将其设置为您需要的任何时间单位
  2. 您只想在预热期之后记录的任何数据对象,确保它仅在time() > v_WarmupDuration.

事件可以有一个自定义的初始时间,您可以使用 v_WarmupDuration。记录数据的函数只有在 等情况下才能这样做time() > v_WarmupDuration

或者,照常记录所有数据,但为其添加时间戳。那么你也能

于 2019-01-31T09:02:23.877 回答
0

创建预热变量适用于您自己创建的指标。

但是,如果您想使用内置功能,例如从 Anylogic 中的 timeMeasureStart 和 timeMeasureEnd 块创建的直方图,您还需要添加一个额外的选择选项,例如假设您将 v_WarmupDuration 设置为 60 分钟,那么您需要一个带有决定的选择块在 false 上直接进入 sink 块或 timeMeasureEnd 之后的下一个元素。

条件如果为真:时间(分钟)> v_warmupDuration

这样,预热时间不会累积到 timeMeasureEnd 的数据集中。

如果您想将此设置为实验的参数,那么...

  1. 将变量添加到屏幕外的实验页面,例如 v_warmupMins
  2. 在实验页面上添加一个类似滑块的控件并链接到变量 v_warmupMins
  3. 添加一个参数来保存主画布中的预热时间,例如 p_warmupMins
  4. 在实验属性上,设置参数 p_warmupMins = v_warmupMins
  5. 要以编程方式将此时间添加到 StopTime,请将其添加到 Before Simulation Runs getEngine().setStopTime( getEngine().getStopTime(MINUTE) + v_warmupMins );

现在,当我将滑块设置为 60 分钟运行实验时,它会在停止时间上增加 60 分钟并运行实验而不累积指标,直到该时间过去。

希望有帮助。

于 2022-03-03T11:09:21.187 回答