【问题标题】:How to get n number of vehicles for x sec of simulation using SUMO randomTrips script?如何使用 SUMO randomTrips 脚本在 x 秒的模拟中获得 n 辆汽车?
【发布时间】:2017-07-03 08:54:31
【问题描述】:

我正在使用 Veins 模拟器,用于创建带有路径的汽车,我使用以下命令:

python c:/DLR/Sumo/tools/randomTrips.py -n test.net.xml -e 1200 -l
python c:/DLR/Sumo/tools/randomTrips.py -n test.net.xml -r test.rou.xml -e 1200 -l

此命令为 1200 秒的模拟生成 1200 辆汽车,但我想为 100 秒的模拟生成 1200 辆汽车。我该怎么做?

【问题讨论】:

  • 你应该看看documentation-e 定义结束时间。
  • @JulianHeinovski 谢谢。我忽略了到达率。
  • @JulianHeinovski 我仍然无法满足我的预期要求。 -e 定义结束时间,但我需要说 1200 秒的模拟,只有 100 辆车,每辆车从 0 秒开始。
  • 看这个例子:要让n 车辆在t0t1 之间离开,设置选项-b t0 -e t1 -p ((t1 - t0) / n)。使用randomTrips.py 无法实现更多控制。然后你需要创建一个路由文件。

标签: omnet++ veins sumo


【解决方案1】:

只是为了回答这个问题(主要是改写 Julian Heinovski 在 cmets 中所说的话)

randomTrips.py -n net.net.xml -o passenger.trips.xml -e 100

将产生 100 次行程。如果您想确保所有这些都是可能的(连接到网络中),您可以添加 --validate 但这将删除无效的行程(您最终可能会少于 100 个)。然后你可以简单地玩弄这个数字。

要让它们都从第二个 0 开始,您可以使用正则表达式替换编辑 trips 文件,将所有出发时间替换为 0。在 *nix 上可能会执行以下操作:

sed -i 's/depart="[0-9]*/depart="0/' passenger.trips.xml

现在您可以在您选择的时间段开始相扑

sumo -n net.net.xml -r passenger.trips.xml -e 1200

【讨论】:

  • 嗨,迈克尔,感谢您的评论,但我已经这样做了。但是仍然要运行 100 辆车进行 1200 秒的模拟,没有选择让车辆有更长的路径,几乎所有车辆在模拟中途退出模拟。我无法找到解决方法。
  • 您尝试--min-distance 使用较大的randomTrips.py 值吗?
  • 我试过了。即使是 2 公里的距离,我也会得到 no trips found after 100 tries
【解决方案2】:

可以使用 --begin、--end 和 --period 选项生成在指定时间段内随机分布的车辆数量。

例如要为 100 秒的模拟生成 1200 辆汽车,可以使用以下命令:

python randomTrips.py -n net.net.xml -r net.rou.xml -o net.trip.xml --begin=0 --end=100 --period=0.083333

总之,

number of generated vehicles = (end - begin) / period

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多