AnyLogic 中的动态障碍

问题描述 投票:0回答:2

我正在 AnyLogic 中进行人群模拟建模,其中人们聚集在及时移动的车辆周围。由于车辆是障碍物,行人不应进入其中。

由于墙壁在 AnyLogic 中被视为障碍物,我决定使用墙壁来定义车辆。

但是问题是墙壁是静态元素,它们的位置无法在运行时更改。那么对于所描述的问题有任何解决方案或可行的替代方案吗?

更新

如果我将车辆建模为行人并使用大直径,行人仍然可以设法进入其中。此外,由于车辆现在是行人的一种,因此其运动不是直线的,并且由于与其他行人碰撞而偏离其路径。

Image attached

simulation anylogic
2个回答
1
投票

如果您使

pedSource
vehicleSource
都流入单个
pedGoTo
,则它们产生的代理将相互反弹,无论其类型如何。


0
投票

解决办法是把行人放在车内(车是方的,行人是圆的,所以需要几块才能覆盖整个车),但他们的速度为零。然后这些行人被放置在延迟块中。当汽车移动时,您以所需的频率触发一个事件,每次都会调用延迟块的 stopdelayAll 函数或类似的函数。然后行人进入 pedEnter 块,您可以在其中设置传入行人的坐标 - 必要的坐标是汽车的坐标。在 pedEnter 块之后,行人进入之前的延迟块,其中行人等待新的事件调用,一切重复。因此,车内行人的速度为零,并且他们不会从其他行人身上“反弹”,并且具有正确频率的事件确保了这些行人根据汽车的行为进行移动,尽管他们的速度为零。

© www.soinside.com 2019 - 2024. All rights reserved.