1. 首先准备好一个构建的路网(.net.xml)文件
这里我所利用的一个路网构造如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409200834887.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Njg3MDQ2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409200853166.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Njg3MDQ2Ng==,size_16,color_FFFFFF,t_70)
2. 路由文件(.rou.xml)文件
可以在netedit里边对路网个各个道路边缘id长度以及相关参数进行配置,上述路网经过配置,将其各个边设为0、1、2、3、4、5 、6、 7,所以规划路由的时候可以直接指定就好。
- 方法1:单车路由:通过指定车类型,然后再规定其路径,即可完成一个完整的路由规划。
<?xml version="1.0" encoding="utf-8"?>
<routes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<vType id="type1" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="70"/>
<vehicle id="0" type="type1" depart="0" color="1,0,0">
<route edges="7 5 7 5"/>
</vehicle>
</routes>
通过上述方法可实现定义:一辆id为type1的,加速度、减速度、权衡因子、长度以及最大加速度分别进行设置的车型,然后通过指定这辆车的车类型、id号、仿真开始出现的时间以及车辆本身的颜色(R,G,B),最后在车辆类型里边的标签中设置仿真车辆将会通过的路径。设置完毕,sumocfg文件中将.net.xml文件 和 .rou.xml文件放在.sumocfg文件里,最后在sumo.gui中进行仿真。
以下是我的.net.xml文件 和 .rou.xml文件的前缀名称以及存放位置,根据个人不同,可取相对应名称,只要最后引入的时候正确引入即可完成仿真。
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<input>
<net-file value=".\Networks\Base\2kflatTrafficLHD_Traci.net.xml" />
<route-files value=".\Scenarios\Base\2kflatTrafficLHD_Traci.rou.xml" />
</input>
<time>
<begin value="0" />
<end value="2000870" />
<step-length value="0.1" />
</time>
<processing>
<lanechange.duration value="3" />
</processing>
<gui_only>
<gui-settings-file value="2kflatTrafficLHD_Traci.settings.xml" />
</gui_only>
</configuration>
仿真结果过如下:生成了一辆红色(自定义颜色)的车辆。其将绕所指定的路径循环,并最后在指定的仿真时间内结束仿真。
tips:单车路由是还可以通过在后边添加多辆车辆的,比较麻烦。除此之外还可以通过flow车流,以及trip旅途。。。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409224409228.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Njg3MDQ2Ng==,size_16,color_FFFFFF,t_70)
- 方法2:通过flow生成车流(此处通过random的四种属性来演示)
1-通过属性probability(每秒发射一辆车的概率)来随机生成车流:
<?xml version="1.0" encoding="utf-8"?>
<routes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<vType id="type1" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="70"/>
<flow id="f1" color="1,0,0" begin="0.5" end="2000868" probability="0.1" type="type1">
<route edges="2 7 5" />
</flow>
</routes>
通过flow标签生成的车流情况是:0.5秒时开始仿真,2000868s结束,设置probability为0.1,车类型为type1,路径为2 7 5;
以下是仿真效果图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409225856718.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Njg3MDQ2Ng==,size_16,color_FFFFFF,t_70)
后续三种属性分别为
number :等间距的车辆总数
period :在该期间插入等间距的数量
vehsPerHour : 每小时等间隔的车辆数量 即成正比 可应用于上下班高峰期的模拟情况
这里就不一一演示了,读者可自行更改属性进行演示。
只需要根据需求在flow中将属性更改为对应的需求属性,(tips:probability取值范围是0-1,其他建议取整数)。
重点:这四种属性在一个flow中不可重复添加,只能添加其中一个
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)