【问题标题】:Is there a way to not start an Anylogic simulation from scratch every time?有没有办法不每次都从头开始进行 Anylogic 模拟?
【发布时间】:2021-01-28 20:46:46
【问题描述】:

美好的一天

我是一个新用户,想用 Anylogic 找到我的。

对以下问题的任何帮助将不胜感激。

  1. 是否可以使用模型中某些块/部分的初始值/数量来启动模型?换句话说,模型不是从 0 开始,而是从给定的值开始。

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    您可以手动运行“预热”期并将其保存为模型快照。在以后的运行中,您可以通过加载该快照从该快照开始。查看模型快照的帮助

    【讨论】:

    • 谢谢本杰明。它还允许我手动插入值以开始模拟吗?
    • 不,你必须自己通过注射来完成
    • 好的,谢谢,注入是anylogic上的一种常见做法,我能找到相关信息吗?
    • 我在正确的轨道上使用这个 sintax? “void inject()”我试图将它插入到传送块的“on enter”操作中。
    • 不,通常您使用“Enter”块并手动为其提供您预先创建的代理(使用“myEnterBlock.take()”方法)
    【解决方案2】:

    这是模型初始化的一般问题(例如,如果您正在对制造设施进行建模,您可能希望在下周一早上 9 点的状态下从设施开始运行)。没有通用的答案:您需要的初始化是 100% 依赖于模型的(这很容易/很难)。

    特别是,流程模型使这变得困难,因为实体(代理)预计会一直流经流程,直到它们“开始”进入。您可以使用额外的仅初始化 Source/Enter 块来“注入” ' 代理进入适当的流程点,但在大多数模型中,这并不容易:您将拥有需要与之保持一致的各种模型状态(例如,流经流程的代理可能具有基于更改的属性到目前为止他们发生了什么,因此必须保持一致)。

    这就是为什么预热期(让模型“从空”运行一段时间,直到它的状态在质量上达到您想要的起点)是一种常见的方法。模型快照可以在这里为您提供帮助(请参阅 Ben 的回答),但它们并不是唯一的方法。 (您也可以在确定预热期结束时“重置”所有指标/输出收集 --- 即,您正在有效地建立一个新的“零时间” --- 但是,再次,准确您需要做的是 100% 取决于模型。)

    【讨论】:

      猜你喜欢
      • 2022-08-13
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多