AnyLogic机场模型中PedSelectOutput全条件为假报错的解决方法咨询
AnyLogic登机逻辑模型报错问题解决
问题背景
跟随《AnyLogic三天速成:机场模型创建》第5阶段“定义登机逻辑”操作,按英文版本第233页要求将pedSelectOutput1设为「使用条件」模式:条件1返回布尔值,为真时走第一个流程图,否则走第二个。但运行时报错,报错信息为:
root.pedSelectOutput1: Agent can't leave the port root.pedSelectOutput1.out5: it has no connections.
推测原因是所有条件为假时,智能体默认从第5输出端口(out5)流出,但该端口未连接流程,导致系统阻塞。考虑将第二个流程图连接到out5,但会打乱仅2个流程图的可视化布局,希望确认处理方式或获取更优方案。
解决方案
1. 调整条件逻辑(最优方案,无需改动布局)
直接修改pedSelectOutput1的条件设置,让“否则”的逻辑直接指向第二个输出端口(out2),而非依赖默认的out5:
- 保持条件1为你的判断布尔表达式,其余条件(2-4)设为
false - 在组件设置面板中,找到「默认分支」选项,勾选「使用最后一个已连接端口」,或者直接明确将条件不满足时的分支指向out2
- 这样当条件1为假时,智能体直接走out2连接的第二个流程,不会触发out5的默认行为,从根源避免阻塞
2. 端口重连+布局优化(折中方案)
如果必须遵循原书步骤,可将第二个流程图连接到out5,同时通过AnyLogic的连线调整功能优化布局:
- 连接out5到第二个流程块后,右键点击连线,选择「路由」→「添加点」
- 通过拖动新增的点,将连线调整为折线或绕路样式,让两个流程块保持平行的可视化顺序,避免布局混乱
内容的提问来源于stack exchange,提问作者rainbow
相关产品推荐
相关产品推荐

