目录
目标:创建有公交站牌的交通路线,公交车和有轨电车遇到站牌会停留一段时间。

创建一个上图所示的路网。

操作步骤:Inspect Mode 单击这条边 -> 左侧栏选中"allow" -> 反选(Disallow all vehicles) -> 选中有轨电车的几项

改完有轨电车路网如下图:

操作步骤:在边上右键 -> edge operations -> Add reverse direction for edge

添加人行道的位置:有轨电车道两侧、下方道路两侧、右方道路两侧
操作步骤:道路右键 -> lane operations -> add restricted lane -> Sidewalk

添加人行道后的路网如下图 (图中标注边id):

操作步骤:选中公交站牌标识 -> 在要添加的道路上单击(注意不是人行道) -> 切换成inspect Mode,按下图修改相应参数

startPos和endPos都是相对于站牌所在的lane而言的。比如上图所示的tram_A0站牌,它位于lane E4_1上,这条路的方向是左上至右下,所以startPos指的是与左上角点的距离为22.33,endPos与左上角点的距离是42.33。
endPos - startPos就是站牌的长度。在本文中设置的有轨电车站牌长度为20,公交车站牌长度为10。如果设置的有轨电车站牌较小,如长度也是10,那么在仿真时会报Warning。
(针对的路口为右下角)
操作步骤:选择规划交通方向的标识 -> 先单击中间edge左边的lane,然后单击右边的lane -> 在左侧栏点击OK,保存修改
这样有轨电车就可以在右下角的路口实现掉头

注意,车站牌属于Additionals,要作为add.xml另外保存。所以一共需要保存两个文件:bus.net.xml和bus.add.xml

在Demand中需要为公交车和有轨电车创建运动路径。本实验采用两种不同的方式,①vehicle+route;②flow来创建运动路径。
这种方式会创建一辆在环路上不停循环跑的公交车。
- <vType id="bus" vClass="bus"/>
-
- <route id="busRoute" edges="E3 E0 E1 E2" repeat="10">
- <stop busStop="stop_A0" duration="20"/>
- <stop busStop="stop_B0" duration="20"/>
- route>
-
- <vehicle id="bus" type="bus" depart="0.0" route="busRoute"/>
内容解释:
vType -> 创建的汽车类型是公交车
route -> 创建一个环形路线。因为是环形的,所以可以重复运行。repeat="10"代表重复10次。
vehicle -> 创建一辆公交车,按照指定的路线行驶(route="busRoute")。depart="0.0"指的是vehicle出现在network上的时间点。
这种方式在指定时间段内,每隔一段时间就会插入一辆有轨电车跑指定路线。
- <vType id="tram" vClass="tram"/>
-
- <flow id="tram1" type="tram" begin="0.00" end="3600.00" period="80">
- <route edges="E4 -E4"/>
- <stop busStop="tram_A0" duration="15"/>
- <stop busStop="tram_A1" duration="15"/>
- flow>
内容解释:
vType -> 创建的汽车类型是有轨电车
flow -> 创建一个汽车流。begin和end指的是这个汽车流执行的时间段。
period="100"是在80秒这个时间段内均匀地在network上插入汽车。像本实验只有一辆有轨电车,那么每80秒就会生成一辆有轨电车跑指定路线。如下方动图在80秒的时候又生成了一辆电车:
route -> 指定路线 (不是环路也可以,只是车会在终点消失)
注:无论是flow还是route里定义的stop,都必须是路线能经过的stop,否则报错。
完整的Demand文件如下所示:(注意别忘了
- <routes>
- <vType id="bus" vClass="bus"/>
- <vType id="tram" vClass="tram"/>
-
- <route id="busRoute" edges="E3 E0 E1 E2" repeat="10">
- <stop busStop="stop_A0" duration="20"/>
- <stop busStop="stop_B0" duration="20"/>
- route>
-
- <vehicle id="bus" type="bus" depart="0.0" route="busRoute"/>
-
- <flow id="tram1" type="tram" begin="0.00" end="3600.00" period="80">
- <route edges="E4 -E4"/>
- <stop busStop="tram_A0" duration="15"/>
- <stop busStop="tram_A1" duration="15"/>
- flow>
- routes>
仿真文件bus.sumocfg如下:
- <configuration>
- <input>
- <net-file value="bus.net.xml"/>
- <route-files value="bus.rou.xml"/>
- <additional-files value="bus.add.xml"/>
- input>
- configuration>
仿真效果动图如下: