【问题标题】:Strange behaviour in Road Traffic Library道路交通图书馆的奇怪行为
【发布时间】:2021-11-05 10:03:50
【问题描述】:

我注意到道路交通库中有一些“奇怪”的行为。在我的模型中,我根据车辆在路网上的位置来获取和释放资源。原因不是这里的问题,而是在模型执行中,一些车辆似乎错过了抓住步骤。为了尝试了解正在发生的事情,我创建了一个非常简单的模型,其中包含一个简单的 T 形接头。在垂直腿上注入汽车并将其直接移动到交叉路口的停止线,并指定它必须在该线之前停止,然后才能继续将车辆水平移动到下一个街区,按预期工作。但是,如果我在路口前的垂直道路上放置另一条停止线并添加 carMoveTo 块以首先将汽车移动到此停止线(但将其设置为通过)然后将其移动到路口的停止线(设置为停止之前) 行为变得不一致。 2 车道道路上的外车道按预期工作,但在内车道上,汽车在交叉路口越过停止线,甚至在完成街区之前就进入了交叉路口。

谁能解释为什么 AnyLogic 会这样做以及我如何确保汽车按规定停下来?

编辑

我在公共 AnyLogic 云中创建了一个演示模型,位于 Road Traffic Demo

另请参阅下面的屏幕截图以获取说明 如果没有通过停止线,则车辆以零速度完成第 2 列中的路段(在交叉路口停止)。随着质量通过车辆以约 30 公里/小时的速度完成第 2 列(carMoveTo1)中的块(不会在交叉路口停止) - 我使用从第 2 列中的相关块退出时更新变量“速度”的值car.getSpeed(KPH) 方法。

【问题讨论】:

  • 很可能,停车线之间没有足够的空间,汽车很难按要求进行更换。但是,可能还有很多其他的东西,实际上取决于实际的网络设置。
  • cloud.anylogic.com/model/…我上传了一个演示模型来说明这一点
  • 通过截图更好地改进和澄清您的问题...获得答案的机会更高;)
  • 这似乎是一个错误......除非你在定义东西的方式上有问题,但由于你禁止我们下载模型而无法知道
  • @Felipe。这是我发布到云端的第一个模型,所以我没有“禁止”任何它似乎是默认设置的东西。我现在已经启用了源文件的下载。

标签: anylogic


【解决方案1】:

看来我的问题表述不当,而我认为是不言自明的例子却不是。但是,我认为本杰明实际上在他的第一条评论中回答了这个问题。似乎 AnyLogic 一次计算一个块的车辆物理特性,因此它允许汽车在通过 StopLine 时加速到其首选速度,然后仅在下一个块中确定它需要在下一行停止,因此需要减速。如果通过线太靠近停止线,那么汽车就不能足够快地减速并“越过”停止线。我已经在示例模型中测试了这一点,方法是将直通线移离停止线更远,当距离足够远时,无论有无直通块,汽车都会按预期停止。

【讨论】:

  • 我仍然觉得奇怪的是,右侧车道上的汽车与左侧车道上的汽车表现不同......这对我来说似乎是一个错误......
  • “似乎 AnyLogic 一次计算一个块的车辆物理”。是的,这正是它的作用。 (不是真正的“物理”,而是到达目的地的整套动作。)它需要一个非常复杂的库才能“预测”到后面的块(尤其是如果你想象可以有可选的路由等)。请注意,设置停止线速度限制(设置为 25 公里/小时这样的低值)也可以解决问题,因为在第一个街区它“知道”它必须在停止线处/之前降低到 25 公里/小时。
  • 我同意菲利普的观点,重要的事实是只有左车道的汽车会超车。可能这是一个错误,因为这条车道上的汽车没有理由表现不同;问任何逻辑。 (这可能与它改变车道的愿望与通过十字路口的愿望之间的相互作用有关。)如果你添加源源不断的南北向汽车,你还会看到那些汽车'overshoot' 也可能卡在十字路口的中间,而其他车辆神奇地通过它们。
  • 不幸的是,在道路交通行为中有很多这样的怪癖(请参阅此处的其他问题),但通常您可以通过明智地使用额外的停车线、调整道路布局等来解决这些问题。 (显然你也可以给你的汽车一个更高的最大减速度来解决这个问题。它在最大减速度为 10m/s2 的情况下工作正常。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 2016-02-05
  • 2013-08-09
  • 2013-12-09
相关资源
最近更新 更多