You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AnyLogic存储系统穿流式货架与异高货架建模问题咨询

问题1:AnyLogic中穿流式(flow through)存储货架的建模方法
  • 核心逻辑:放弃默认RackStore/RackPick的随机/就近存取规则,通过FIFO队列绑定货位的方式实现一端存一端取的逻辑
  • 具体操作步骤:
    1. 提前为货架所有货位按存入端到取出端的顺序编排序号,存入时取当前最小序号的空货位,取出时取当前最小序号的已占用货位,天然匹配穿流式货架的先进先出规则
    2. 用两个自定义ArrayList分别维护空货位集合、已占用货位集合:每次存托盘前从空货位集合弹出第一个元素作为目标货位,存入后将该货位追加到已占用集合末尾;每次取托盘前从已占用集合弹出第一个元素作为取货目标,取出后将该货位追加到空货位集合末尾
    3. 若为跨巷道穿流式货架,需额外给存、取操作分别绑定对应端的存取机服务范围,避免出现存取机跨端作业的逻辑错误
  • 特殊场景适配:如果有批次优先级要求,仅需要在已占用集合弹出前增加批次属性判断,调整弹出顺序即可满足需求
问题2:存储货架不同层高属性的建模方法
  • 实现逻辑:AnyLogic默认Rack对象的层高为全局统一配置,需要通过自定义货位属性+存取前置校验的方式实现差异化层高设置
  • 具体操作步骤:
    1. 为Rack对象新增自定义数组变量levelHeight,按层数顺序存储每一层的高度,比如示例中两层层高180cm、一层次高160cm的三层货架,配置为new double[] {180, 180, 160},注意数组下标要和你设定的货架层号对应
    2. 为托盘代理新增自定义height属性,存储每个托盘的实际高度
    3. 在执行RackStore存托盘前增加筛选逻辑:仅保留所在层高度≥托盘高度的空货位作为可选目标,不符合层高要求的货位直接排除,再从符合条件的货位中选择最终存入位置
    4. 若需要3D可视化展示层高差异,可在Rack的3D属性设置中,自定义每一层隔板的位置,按你设定的层高数值调整即可
  • 简化方案:如果层高差异仅用于属性统计、不需要联动存取规则,可直接为每个货位新增height自定义属性,初始化时批量赋值对应层高即可,不需要修改现有存取逻辑

内容的提问来源于stack exchange,提问作者sljb12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:09:00