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

getDistanceTravelled()示例模型查询及叉车仿真数据提取问题咨询

叉车拣选仿真:行驶距离与拣选时间提取方案

一、修复getDistanceTravelled()未定义错误

getDistanceTravelled()是AnyLogic中Forklift代理的内置方法,不能直接在Main主体中调用,必须绑定具体的叉车实例:

  • 若叉车是直接拖拽到Main画布的(比如命名为forklift1),直接通过实例调用:forklift1.getDistanceTravelled()
  • 若叉车由流程模块生成,需提前将实例存入Main的集合变量(比如Collection<Forklift> forklifts),再通过集合遍历获取实例调用方法

二、在Forklift代理内提取单次拣选任务数据

在Forklift代理内通过变量记录单次任务的距离与时间,步骤如下:

  1. 新增3个变量:
    • double currentTripDistance:存储单次拣选行驶距离
    • double currentTripStartTime:记录单次任务开始时间
    • double lastTripTotalDistance:记录上一次任务结束时的累计行驶距离
  2. 拣选任务启动时(比如Move块的on enter事件)初始化变量:
    currentTripStartTime = time();
    lastTripTotalDistance = getDistanceTravelled();
    
  3. 拣选任务完成时(比如最后一个Move块的on exit事件)计算并传递数据到Main:
    currentTripDistance = getDistanceTravelled() - lastTripTotalDistance;
    double currentTripTime = time() - currentTripStartTime;
    // 调用Main的方法存储数据
    main.saveSingleTripData(currentTripDistance, currentTripTime);
    

三、单次/千次运行的数据收集

单次运行

在Main中添加全局变量double totalPickTime、double totalTravelDistance,并在Main的on stop事件中写入:

totalPickTime = time();
totalTravelDistance = forklift1.getDistanceTravelled();
// 控制台输出
traceln("总拣选时间:" + totalPickTime + " 秒");
traceln("总行驶距离:" + totalTravelDistance + " 米");

1000次重复运行

借助AnyLogic的实验功能实现批量数据收集:

  1. 在Main中创建两个Dataset类型变量:datasetPickTimes、datasetTravelDistances
  2. 在Main的on stop事件中,将当前运行数据写入数据集:
    datasetPickTimes.add(time());
    datasetTravelDistances.add(forklift1.getDistanceTravelled());
    
  3. 创建Monte Carlo实验,设置重复次数为1000,运行结束后可直接查看数据集统计,或导出为CSV:
    datasetPickTimes.writeCSV(new File("./pick_times.csv"));
    datasetTravelDistances.writeCSV(new File("./travel_distances.csv"));
    

四、注意事项

  • 单次任务的行驶距离必须通过累计距离增量计算,避免直接使用getDistanceTravelled()的累计值
  • 确保所有调用getDistanceTravelled()的代码都关联到正确的叉车实例
  • 若需统计单任务的拣选时间而非总仿真时间,需在任务开始/结束节点单独记录时间戳

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:53:09