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

AnyLogic机场仿真:Pedestrian Agent属性调用异常求助

AnyLogic机场仿真:Pedestrian属性获取问题排查与解决

问题核心拆解

你遇到的agent无法解析、ped.flug取不到值的问题,本质是流程块变量名规则和Agent属性赋值逻辑的问题,和Source连接Excel确实直接相关。

为什么agent用不了?

AnyLogic流程块里的Agent变量名,取决于你用的Agent类型:

  • 如果你用的是系统默认的Pedestrian类,流程块(比如selectOutput)里默认的变量名就是ped,不是agent;
  • 你参考的同类模型大概率用了自定义Agent类(比如自己新建一个Passenger Agent继承Pedestrian),这类自定义Agent在流程块里的默认变量名是agent。所以人家能用agent.flug,你用默认Pedestrian就只能用ped。

ped.flug取不到值的关键原因(和Source连Excel直接相关)

你说Source连接了另一个Excel,这大概率是问题根源:

  1. Excel字段没和Agent属性绑定:
    你虽然在Pedestrian里加了flug属性,但如果Source从Excel导入数据时,没把Excel里的对应列映射到flug属性上,那生成的Pedestrian的flug就是默认值(比如0或者null),自然触发不了time()>=ped.flug的条件。
  2. 属性类型不匹配:
    检查flug的属性类型,必须是数值型(double或int),要和time()的返回类型(默认是double,单位秒)一致,否则比较逻辑会失效。

解决步骤

  1. 检查Source的Agent属性映射
    • 打开Source块的属性面板,切换到「Population」标签;
    • 确认「Agent type」是你添加了flug属性的Pedestrian(别选成系统默认的空Pedestrian);
    • 如果是从Excel导入数据,在「Data source」选中你的Excel表,点击「Mapping」按钮,把Excel中对应“登机剩余秒数”的列,直接拖拽映射到Pedestrian的flug属性上。
  2. 验证属性是否被正确赋值
    • 在Source块的「On exit」动作里加一行代码:trace(ped.flug);;
    • 运行仿真,看控制台输出的数值是否和Excel里的一致。如果输出是0/null,说明映射没做好,回头检查步骤1。
  3. 确认流程块变量名和条件逻辑
    • 保持selectOutput里用ped.flug(因为你用的是默认Pedestrian);
    • 确认time()的单位:AnyLogic默认时间单位是秒,如果你的flug是秒数,直接比较就行;如果flug是分钟,要转成秒:time() >= ped.flug * 60。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:22:28