3. 固定路径车流定义与运行
任务说明
本案例要求通过编写SUMO路由文件(rou.xml),为多辆车手动指定出发时间、行驶路线和速度,从而生成一组完全可控的定制化交通流。完成目标是:在SUMO中加载路网与路由文件后,车辆能够按照预设的时间、路径和速度在路网中行驶,且可通过SUMO-GUI观察验证。
路网与路由文件实现
首先定义一段包含三条可选路径的简单路网(network.net.xml),包含5个节点和4条边,形成两条可选路线。随后编写路由文件,为4辆车分别指定不同的出发时间、路线和最大速度。
<!-- network.net.xml -->
<nodes>
<node id="A" x="0" y="0" type="priority"/>
<node id="B" x="500" y="0" type="priority"/>
<node id="C" x="1000" y="0" type="priority"/>
<node id="D" x="500" y="300" type="priority"/>
<node id="E" x="1000" y="300" type="priority"/>
</nodes>
<edges>
<edge id="AB" from="A" to="B" numLanes="1" speed="13.9"/>
<edge id="BC" from="B" to="C" numLanes="1" speed="13.9"/>
<edge id="BD" from="B" to="D" numLanes="1" speed="11.1"/>
<edge id="DE" from="D" to="E" numLanes="1" speed="11.1"/>
</edges>
<connections>
<connection from="AB" to="BC"/>
<connection from="AB" to="BD"/>
<connection from="BD" to="DE"/>
</connections>
<routes>
<route id="route_upper" edges="AB BC"/>
<route id="route_lower" edges="AB BD DE"/>
</routes>
<vTypes>
<vType id="normal" maxSpeed="13.9"/>
<vType id="slow" maxSpeed="8.0"/>
<vType id="fast" maxSpeed="20.0"/>
</vTypes>
<vehicles>
<vehicle id="v1" type="normal" route="route_upper" depart="0.0"/>
<vehicle id="v2" type="slow" route="route_lower" depart="5.0"/>
<vehicle id="v3" type="fast" route="route_upper" depart="10.0"/>
<vehicle id="v4" type="normal" route="route_lower" depart="15.0"/>
</vehicles>
</routes>
上述network.net.xml中,route_upper为A→B→C的上行路线,route_lower为A→B→D→E的下行路线。车辆v1在0秒出发,走上行路线,速度13.9 m/s;v2在5秒出发,走下路,速度8 m/s;v3在10秒出发,走上路,速度20 m/s;v4在15秒出发,走下路,速度13.9 m/s。
运行与验证
将上述文件保存为network.net.xml,并创建路由文件rou.xml(内容与network.net.xml中的routes部分一致,但需独立成文件)。在命令行中执行以下命令启动SUMO-GUI:
sumo-gui -n network.net.xml -r rou.xml
启动后观察车辆是否按预设时间依次出现,并沿指定路线行驶。验证判定标准:
- 车辆
v1在0秒从A出发,沿AB→BC到达C; - 车辆
v2在5秒从A出发,沿AB→BD→DE到达E,且速度明显慢于其他车辆; - 车辆
v3在10秒出发,沿上行路线快速通过; - 车辆
v4在15秒出发,沿下行路线行驶。
若四辆车均按上述时间和路径行驶,且速度差异符合设定,则案例验证通过。