Anylogic道路交通库变道错误

Posted

技术标签:

【中文标题】Anylogic道路交通库变道错误【英文标题】:Anylogic Road Traffic Library Lane Change error 【发布时间】:2019-05-01 23:59:13 【问题描述】:

我正在尝试为公路系统建模,但出现此错误:

root.[3]:汽车未能改变车道(这是必要的 继续运动)或路线到指定目的地不能 找到了

完整的错误代码是:

java.lang.RuntimeException: root.[3]: Car failed to 改变车道(这是继续移动所必需的)或路线到 找不到指定的目的地 com.anylogic.engine.Engine.error(未知来源)在 com.anylogic.engine.Agent.error(未知来源)在 com.anylogic.engine.Utilities.error(未知来源)在 com.anylogic.libraries.road.C​​ar_xjal.error(未知来源)在 com.anylogic.libraries.road.C​​ar_xjal.a(未知来源)在 com.anylogic.libraries.road.C​​ar_xjal.a(未知来源)在 com.anylogic.libraries.road.C​​ar_xjal.executeActionOf(未知来源) 在 com.anylogic.engine.TransitionMessage.execute(未知来源) 在 com.anylogic.engine.Engine.c(未知来源) com.anylogic.engine.Engine.gc(未知来源)在 com.anylogic.engine.Engine.a(未知来源)在 com.anylogic.engine.Engine$i.run(Unknown Source)

这是我的设置(有错误的空格标记屏幕截图):

它的设置方式是(逻辑截图):

也就是说,有一个Select Output,用于选择汽车将驶向哪条道路。我相信outWayNotFound 用于汽车代理无法找到它想要移动的路径并且我设置它的方式是如果汽车想要走任何路径但它没有找到它,继续它当前所在的路径。

我不确定这里的错误意味着什么,因为我认为我已经在这里涵盖了我的基础。我错过了什么?任何帮助将不胜感激。

更新 1

发生错误时的 RTL 流程图截图:

【问题讨论】:

@Teekea 您的编辑有什么帮助?请参阅此元问题here。 【参考方案1】:

这是一个有趣的问题,因为当您不熟悉它时,它是与道路交通库相关的常见概念问题之一。

将模型分成多个“carMoveTo”来定义汽车在道路网络中的轨迹几乎总是错误的。

如果可能,您应该始终避免这样做。出现此问题的原因有两个:

    因为您创建的交叉路口被认为是它首先要经过的道路的一部分。 carMoveTo3 开始认为起点是小路的起点,但由于它在不允许移动的车道上,它甚至无法开始移动。 因为当您启动一辆新的 carMoveTo 时,如果车流过多,车辆在交叉路口时无法正确计算其他车辆的位置。这会导致车辆发生碰撞并在交通拥堵时出现异常行为。

如果您愿意,这两个点都可以被视为 AnyLogic 错误,但是创建此道路库时认为应该以完全不同的方式使用它。 (至少我认为是)

那么正确的做法是什么?

嗯..您只需要 1 个 carMoveTo,删除 selectOutput 并定义汽车必须在 carMoveTo 之前或在 carMoveTo 本身中走的路线。

在 carMoveTo 中,您可以定义当路线不可行时要做什么的策略。

这是我制作模型的方法:

在 carMoveTo 中,我会以 50% 的机会选择 road1 或 road2(这是执行您正在使用的 selectOutput 的正确方法)。我不知道你是如何选择要走的路,但你可以在那个地方定义。

【讨论】:

我会尽快将此标记为答案。我只需要实现并尝试一次。 你只需要聪明地选择道路......使用 uniform() 顺便说一句,Anylogic 教程建议了我之前尝试做的事情。 Here 我认为如果road1 的末端也有一个分叉会很困难,因为现在我不知道car 代理在哪条路。 是的,那个教程很好用,这就是为什么我说它几乎总是一个错误......但有时你可以......但是如果我在同一个教程中更改概率和交通量,汽车开始互相碾压……所以你还是要小心【参考方案2】:

最简单的解决方法是让汽车有足够的时间切换到正确的车道,方法是简单地拉伸进入的道路:在上述情况下,只需将道路进一步向南延伸,这样汽车就有足够的时间切换到所需的车道。

https://www.benjamin-schumann.com/blog/2016/5/15/using-the-anylogic-road-traffic-library-for-good

【讨论】:

以上是关于Anylogic道路交通库变道错误的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic GIS实时交通数据

Anylogic个人学习版如何模拟事故

AnyLogic内存错误:如何知道超出阈值多少?

在anylogic中触发红绿灯的方法

Car failed to change the route in anyLogic 错误

道路交通库 - MoveTo 块 - while 循环?