Anylogic:如何根据代理的参数在 ResourcePool 中对设置时间(工具更换)进行建模?

Posted

技术标签:

【中文标题】Anylogic:如何根据代理的参数在 ResourcePool 中对设置时间(工具更换)进行建模?【英文标题】:Anylogic: How to model setup times (tool change) in ResourcePool based on a parameter of the agent? 【发布时间】:2020-10-24 21:10:42 【问题描述】:

由于我在最后一个问题上得到了很大的帮助,但在帮助/教程中没有找到任何有用的提示,我会再试一次 :) 简化的情况是:

生产不同的产品变体(代理Product,参数productID) 4工位生产线(型号为service);每个站有2台机器(建模为ResourcePool) 更改产品变型时,必须重新装备机器。

我的想法是将机器状态记录为变量/参数(MachineStatus)。当一个资源单元被占用时(代码执行“on capture”),然后比较productID = machineStatus。如果它们相等,则不延迟,如果它们不同,则中断一定时间。但是,我有两三个问题:

如何将变量MachineStatus 分配给一个单位的资源池?特别是如果我在资源池中有 2 台机器,因此需要单独的 MachineStatus? 我尝试使用 self.timeout 来模拟中断,但这会导致错误。 或者,一般来说;这种方法是有效的还是我忽略了一些重要的东西?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

也许有人对我如何解决问题感兴趣(与我的想法有点不同):

定义参数MachineStatus和函数“RetoolingTime” 我的服务块DelayTime 的值:

MachineStatus.equals(agent.productID) ? 30 : 30 + RetoolingTime(agent.productID, RetoolingTime)

请注意,30s 是我的正常处理时间,如果我必须重新加工,还有一个额外的重新加工时间,由函数计算。

为了获得retooling-time,我将代码写入函数RetoolingTime的函数体中:

Code of RetoolingTime

【讨论】:

以上是关于Anylogic:如何根据代理的参数在 ResourcePool 中对设置时间(工具更换)进行建模?的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic:如何根据路线成本和代理选择创建每小时到达率计划?

AnyLogic——如何随机选择处于特定状态的代理

Anylogic如何创建新代理并分配属性?

如何将 Main 中的参数提供给 Anylogic 中的代理

anylogic,流程建模库:split.如何设置和引用代理副本的属性?

基于两个参数的 AnyLogic 优先级队列作为 Java 代码