如何在AnyLogic中调度rackPick块所用卡车资源的到达时间
AnyLogic 卡车资源调度实现方案
AnyLogic 资源池与 rackPick 块本身没有内置的按固定周期调度资源到达的配置项,你可以通过以下三种常用方案实现每天2辆卡车到达的规则:
- 事件动态调整资源池容量
卡车对应的资源池初始容量设置为0,创建一个触发周期为1天的循环事件,每次事件触发时执行代码:truckPool.set_capacity(truckPool.get_capacity() + 2);
若卡车完成任务后不需要留在系统中,可在资源的「释放时(On release)」动作中添加代码truckPool.set_capacity(truckPool.get_capacity() - 1);,避免资源池容量无限上涨。 - 源块生成动态资源
勾选卡车资源池的「资源是动态的(Resources are dynamic)」选项,新增一个Source块,将生成代理类型设置为卡车,到达模式设置为「按速率(Rate)」,速率值填写2,时间单位选择天,最后将Source的输出端口连接到资源池的「添加资源(Add resources)」端口即可。
若需要指定每天固定时间点到达卡车,可将Source到达模式改为「按调用(Call)」,搭配周期事件在指定时间执行source.inject(2)生成当日的2辆卡车。 - 调度表控制资源可用量
新增一个整型的Schedule组件,时间单位设置为天,将每日对应数值设置为2,然后将卡车资源池的「容量(Capacity)」属性绑定为Schedule的值,即可实现资源池每日可用容量自动按调度规则调整。该方案适合卡车循环复用、不需要模拟卡车物理到达离开流程的场景。
上述方案均不需要修改rackPick块的原有配置,rackPick会自动按规则调用可用的卡车资源。
内容的提问来源于stack exchange,提问作者Chhandosee Bhattacharya
相关产品推荐
相关产品推荐

