在 Anylogic 中灵活更改模拟持续时间

Posted

技术标签:

【中文标题】在 Anylogic 中灵活更改模拟持续时间【英文标题】:Flexibly change simulation duration in Anylogic 【发布时间】:2020-11-03 14:31:49 【问题描述】:

我有一个只有一个代理的系统动力学模型。我可以设置模拟的持续时间,对于我的情况,一个示例值为 120 个月。如果我想尝试不同的持续时间,例如 24 或 240 个月,我该怎么办?在实验的“模型时间”属性中更改它似乎很麻烦,因为您每次都必须停止实验。

对于其他模型输入,我在开始屏幕上创建了滑块并将它们绑定到模型参数而不是变量。这样我可以移动滑块,使用播放按钮运行模拟,然后使用停止按钮返回开始屏幕并调整值。是否也可以使用结束时间来执行此操作?

该模型是从 Vensim 转换而来的,其中有一个名为 FINAL_TIME 的变量,您可以通过 SyntheSim 模式下的滑块进行交互更改。这是我正在寻找的,除了 SyntheSim 功能在 Anylogic 中不可用。

【问题讨论】:

【参考方案1】:

两种方式..

您可以在模型初始化时使用函数getEngine().setStopTime(tstop);,其中 tstop 是模拟停止的时间参数

或者您可以使用事件并将事件设置为在灵活的时间触发并在操作中使用finishSimulation()。这使您甚至可以随时更改运行时的模拟时间。

【讨论】:

每次按下播放按钮时都会进行模型初始化吗? 我认为我必须在“Java 操作”“->“模拟运行之前”下插入 setStopTime 的代码

以上是关于在 Anylogic 中灵活更改模拟持续时间的主要内容,如果未能解决你的问题,请参考以下文章

AnyLogic - 初学者

如何在anylogic中模拟期间动态更改资源池的班次组大小?

PDDL 持续动作:灵活的持续时间

更改 AnyLogic 中选择代理的主类参数

在 SwiftUI 中动态更改动画的持续时间

时间总和不等于模拟的持续时间