首页 > 解决方案 > 选择输出 5 块以按顺序释放代理,一旦满足批量大小条件

问题描述

我需要在选择输出 5 块中放置条件或操作。 在此处输入图像描述

该模型具有选择 5 个输出块、5 个批处理块和 5 个延迟块。每个延迟块有 105 小时的延迟。我需要控制代理的移动以按顺序填充每个延迟。如果一个延迟变为可用,则选择输出 5 块将释放代理到可用延迟。
例如,选择输出 5 块根据条件控制从每个出口释放代理。条件一将检查批量容量是否已满(见附图)。因此,它将开始从出口 2 释放剂以填充第 1 批。一旦第 1 批容量完成,选择 5 块将开始从出口 2 释放剂以填充第 2 批容量,依此类推。

在此处输入图像描述

我可以使用 select output 5 块执行上述操作吗?

标签: anylogic

解决方案


如果我理解您的问题,您想根据哪些批次有可用空间来选择输出。问题是批次并没有真正满,因为一旦他们得到,比如说,5 个代理,它会立即生成一个批次并将新的批处理代理传递到下一个过程块。所以真的,你应该在延迟块中轮询队列。例如,第一个输出 (into batch) 的退出条件可以是Curing_Drying.size() < Curing_Drying.capacity. 这意味着更多批量代理的延迟有能力,您可以继续沿着这条线发送东西。

这也意味着该batch线路的使用次数将超过,例如,batch4因为只有在所有其他Curing_Drying延迟都已满时才会使用该线路。如果那个已经填满并且其他任何地方都没有空间,您将收到一条错误消息,提示“代理无法离开港口......”。


推荐阅读