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:如何根据路线成本和代理选择创建每小时到达率计划?
如何将 Main 中的参数提供给 Anylogic 中的代理