Anylogic问题:一台机器上两个操作时间不同的操作员

Posted

技术标签:

【中文标题】Anylogic问题:一台机器上两个操作时间不同的操作员【英文标题】:Anylogic Problem: two operators with different operation time in one machine 【发布时间】:2020-06-16 04:22:20 【问题描述】:

我正在努力解决 Anylogic 中的模拟问题。

问题: 1.我想让两个在同一台机器上工作的操作员有不同的操作时间(例如,当一个零件到达机器时,worker1花费3分钟,worker2花费5分钟。)我尝试了资源池但被扣押的 2 名工人总是在机器上花费相同的时间。

如何使用流程图块对这个问题进行建模?

【问题讨论】:

【参考方案1】:

只需使用 Seize ---Service---Delay---Release 结构(假设 worker1 在处理开始时花费了 3 分钟)。

Seize/Release 块抓住并释放 worker2。 Service 块代表 worker1 工作 3 分钟。对于已占用的 worker2,Delay 块覆盖了剩余的 2 分钟。

您这样做(而不是使用 2 个服务块,第一个使用 worker1 和 worker2 3 分钟,第二个使用 worker2 2 分钟)因为您想确保 worker2 不会被另一个请求占用第一个服务块结束。 (在某些模型中,这种可能性不会成为问题,因此您可以使用两个 Service 块,但我不会,因为这里的方式明确表明 same worker2 工作人员被保留了整整 5 分钟.

您也可以将所有这些放在一个自定义块中(查看 AnyLogic 帮助),使其成为可重复使用的单个块。

【讨论】:

非常感谢斯图尔特!我按照您的建议使用服务块来代表 worker1,通过这样做,是否可以找到 worker 1 和 2 的使用情况?因为我的最终目标是优化生产线的工人数量。 资源池的utilization函数给出了整个池的利用率。每个单独的资源单元都有函数getUtilization 来获得其“个人”利用率(请参阅帮助中的库参考指南 --> 流程建模库 --> 资源函数),但这需要将资源单元创建为自定义资源(代理)自定义填充(不是默认填充)中的类型,以便您可以在流程之外轻松访问它们。如果这两个工人在不同的资源池中(每个只有 1 个单元),则无需担心第二种方法。

以上是关于Anylogic问题:一台机器上两个操作时间不同的操作员的主要内容,如果未能解决你的问题,请参考以下文章

AnyLogic:具有不同优先级的两个客户类别

Anylogic,动态改变资源的容量

Anylogic仿真 - 模型创建期间的错误

Anylogic,将代理拆分为多种不同的代理类型

是否可以在一台机器上以不同的端口运行多个Zookeeper实例?

如何对 Anylogic 中的表进行动态引用?