Anylogic,动态改变资源的容量

Posted

技术标签:

【中文标题】Anylogic,动态改变资源的容量【英文标题】:Anylogic, mutate the capacity of the resource dynamically 【发布时间】:2020-09-17 20:37:10 【问题描述】:

我有一个带有一个队列和两台机器的模型,其中一台用于在这些资源前面的队列过度拥挤的情况下使用。 我的模型有一个简单的队列和延迟块,我尝试使用这样的函数(写在延迟块容量文本字段中)根据先前的队列长度改变延迟容量:

    if (queue.size() > 5) 
      return 2;
    else
      return 1;

但是好像不行……可以根据条件动态改变资源的数量吗?

【问题讨论】:

【参考方案1】:

延迟块中的容量值只是在模拟开始时才考虑的,所以只能认为是初始值...

稍后要更改容量,可以在队列块的进入和退出时放置一些代码:

delay.set_capacity(queue.size() > 5 ? 2 : 1);

类似的东西。

【讨论】:

哇!费利佩你是大师!感谢您的建议 嗨,Felipe,非常感谢您的解决方案。由于我需要更改 PedWait 代理的容量,类似于问题。但是,我想知道如何获得像 PedWait 这样的 Agent 的所有启用方法?当我查看 Anylogic 帮助文档时,我找不到方法set_capacity。这是约定吗?比如set_<parameter_name>(),或者有其他的开发者文档? set_capacity 在 pedwait 的帮助文档中有清楚的显示,仔细看... Ctrl F "capacity"... 你会发现它

以上是关于Anylogic,动态改变资源的容量的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic,如何动态更改生产批次的大小?

AnyLogic中的计算动态延迟

如何在 AnyLogic 7 中从外部源获取资源容量?

AnyLogic - 在仿真时动态创建对象

有没有办法在运行时确定 AnyLogic 中 ResourcePool 的容量?

AnyLogic - 系统动态:如何正确跟踪股票价值?