Sumo网络建模经验总结

**

Sumo网络建模经验总结

**
一.实地考察
实地考察需要注意以下几项内容:
1.实地考察必须记录下各个路口车道数,各个道路在一个红绿灯周期内通过的车辆数。
2.方法:在考察时如果全部录像然后再数的话所需要的时间成本较大,不建议使用改方法。建议录取7.30,8.00,8.30,9.00,9.30五个时间车辆,其他时间节点可以直接数。具体方法是,再某一段时间内至少有一个方向是绿灯,那么我们可以数出某一个方向的车辆数,如果在这一段时间内有2个方向同时绿灯那么记录下其中一个即可(也可根据实地情况分析,如果某个方向车辆比较少,那么我们可以同时记下两个方向的车辆数。)这样一般再3,4个周期的时间内即可将所有方向的车辆全部数完,时间大概在9~12分钟之间。通过5个时间节点我们可以调整自己计数的起始时间。从而不会出现少数一个时间节点的情况
二.网络修改
本文使用openstressmap直接道路地图然后对道路属性进行修改,因此在此不对使用节点,路段,连接文件生成网络介绍。
本文使用的是sumo网络中自带的netedit功能对网络中各类属性进行修改。
接下来将分别介绍然后修改节点属性,车道数,车道连接,红绿灯几项参数。(注:红绿灯一般留道最后进行修改,原因在于修改车道数会使得红绿灯恢复系统默认的初始状态)
1.修改节点属性:需要修改节点属性的情况一般包括以下内容:修改为traffic_light(红绿灯),priority(优先级),zipper(压缩,该节点属性用于车道数减少的时候),需要特别强调的是如果像要将其他属性修改为zipper则需要在该节点个车道连接状态未知的情况下修改,如果不是修改完成后道路将不会发生变化,仍然存在未连接的道路,使节点连接清除的方法有:在该节点前或后新建一个节点,或者使改变车道数,(可以两次改变车道数来达到目的)。
注:关于新建一个节点的方法:所谓新建节点也就是在在一段道路中添加一个节点。可以使用鼠标右击所要修改的位置选择split edge here即可。
2.修改车道的方法比较简单,在netedit工具栏中有个放大镜,选择后再选择你需要修改的路段选择左边一栏中的numberlane,对其中的参数进行修改即可。该工具中还可以对车道最大限速,id等内容进行修改。
3.修改车道连接。再每个节点处都有车道连接。如果需要修改需要选择该在这里插入图片描述
模块,选择该模块后点击车道即可选择该车道所需要连接的车道。
4.修改红绿灯。选择该在这里插入图片描述
按钮,切换至修改红绿灯状态模式下,最后的模型如图所示:可以看到,在图在这里插入图片描述
片的左边有g,r,y三种字母组成的红绿灯状态表,数字则表示该状态保持的时间有多长,可以选择替换修改字符,从而改变红绿灯的状态,如将g该为r在右边的连接图中就会有一条连接线的状态被改变。也可以选择右击中的连接线修改红绿灯的状态。选择进入路口的道路则可以修改整个车道的红绿灯状态。(从绿灯到红灯需要黄灯来过度,如果没有黄灯会产生warning)。修改完成之后记得在该栏的最下面save一下。
修改完成红绿等整个路网的信息基本上一九修改完成了,接下来我们对转弯率文件车辆文件进行编辑。
三.对转弯率文件进行编辑
转弯率文件的内容如下:

	<interval begin="0" end="300">		
		<!--六一群众-->
		<fromEdge id="305586862#1">
			<toEdge id="-137396" probability="0.166667"/>
			<toEdge id="502925702" probability="0.208333"/>
			<toEdge id="-137393#0" probability="0.625000"/>
		</fromEdge>
</interval>
<sink edges="221526449"/>
</turn>

可以看到转弯率文件的内容有以下几点:
1.interval节点,interval中需要有参数begin和end,即以下转弯率的开始时间和截至时间,
2.需要有各个路口的的转弯率,fromEdge,以及toEdge节点。这两个节点需要有id(路段名称)以及probability(转弯的概率)的参数,其中转弯率的参数在一个fromEdge中各个probability的参数为1。
3.Sink中所包含的edges为下沉路段值。车辆可以在该路段下沉(即消失)。
4.在设置时,使用的时10分钟为一次的转弯率变化。
四.对车辆文件进行编辑
车辆文件的内容如下:

<flow id="flowliuyijianbin-1" from="431111493.1"   begin="0" end="300" type="type1"    number="73"/>

可以看到车辆文件中有id,from,begin,end,type,以及number等参数,但flow文件中的参数远不止这些,可以在官网中查找到相关内容。接下来简单的介绍其中几个重要的参数。 首先是id,在所有的flow文件中id需要保持不同。我的命名方式是flow+路口中文名称拼音-数字。
接着是begin和end,由于车辆道路发车量存在一定的上线,所以我们可能在进入网络的道路中发现有些车辆数不够的问题。对于该问题,我的解决办法是设置多个发车节点,以及修改发车的车道数。
而type可以来定义车辆的跟车模型等。所以适当的加入一些参数可以使车辆更加真实。Type文件的具体内容可以见type文件简介。
Number则是发车车辆数。一般是根据实地考察的结果来的。Number=一个周期车辆数/一个周期时间*600时间。
五.Cfg文件配置

   <input>
    <net-file value="/home/liu/new/map.net.xml"/>
	<route-files value="/home/liu/new/map.rou.xml"/>     
	<additional-files value="/home/liu/new/addition.add.xml"/> 
    </input>
<output> 
<fcd-outputs value=”fcd.xml”/>
</output>
    <time>
      <begin value="0"/>
      <end value="15000"/>
      <time-to-teleport value="-1"/>
      <seed value="23423"/>
      <route-steps value="-1"/>
    </time>
    <reports>
       <print-options value="false"/>
    </reports>
</configuration>

如果要写cfg文件,可以参照以上的内容,修改文件目录,添加需要输出的文件内容。其他内容可自行上官网查看。
六.Addition文件配置
如下为我设置的addition文件。该参数设置可以在运行cfg文件时,可以输出300到六百时间段各个车道通过的车辆数,其中file的内容为输出文件名。可以改变其中的参数,得到自己需要的时间段。

当然,也可以输入其他格式内容或参数,以产生自己需要的文件,具体可以查看官网内容。
七.Type文件配置
以下为我配置的type文件:

在type文件中加入了accel(加速度),decel(减速度),sigma(车辆跟随模型),length(车辆净长度),maxspeed(最大速度),lcStrategic,lcCooperative,lcTurnAlignmentDistance该三项是车辆跟随模型。
八.对warning的探究
在我们使用命令生成文件时,经常会有这类错误产生:Warning: The route starting at edge ‘305371525#0’ could not be closed.
首先我们对该错误进行一个阐述,我们在turn文件中有设置sink路段,如果车辆没有在sink路段下沉,那么就会出错。我们可以使用–accept-all-destinations该参数设置所有路段可下沉,则不会产生该问题。同时,路由中会产生该类问题的原因是:车辆行驶到某一个路口时,会发现路口中其他的可以进入的路口之前已经全部有行驶记录,则车辆会报错,并直接下沉。
在不使用–accept-all-destinations该选项的情况下,我们可以使用以下几个方法来减少产生错误的概率。
1.在两个主要路口的合并道路上设置一个路段,设置该路段为下沉路段。
2.设置所有出网络路段为下沉路段
3.如果网络较大,可以以主干道为基础,将整个网络分为许多“区域”,所有的区域中从非主干道进入主干道的路段设置为下沉路段。这样可以保证进入区域后车辆不会出该区域,可以减少下沉的概率。
4.在十字路口中,右转车道应当与自行车道在同一个路段内,不提前分离,设置红绿灯时可将其设置为常绿。
九.如何使用matlab简化建模流程
对于一个大型的城市网络建模来说,会有大量的数据需要处理,主要包括转弯率和车道车辆数。
从转弯率的角度来说,不同的时间点内各个路口的转弯率会不同,所以需要将各个时间点的路口转弯率进行设置,同时,由于网络中主要道路的交错路口和主要道路与非主要道路的交叉路口的转弯率都需要设置,所以数据量将比较大。如果人工进行编辑的话整个工程量将增大不小,因此选择一种工具来帮助网络写xml文件将是一个非常好的选择,这里选择使用matlab的主要原因是因为matlab可以对xml文件进行读写以及修改,同时也比较容易上手。当然也可以选择其他的软件。
十.附录:
Sumo官网各个内容所在位置
1.转弯率文件位置:https://sumo.dlr.de/docs/Demand/Routing_by_Turn_Probabilities.html
2.对Openstressmap中的网络进行编辑:https://sumo.dlr.de/docs/Networks/Import/OpenStreetMap.html
3.车辆类型文件的定义:https://sumo.dlr.de/docs/Definition_of_Vehicles%2C_Vehicle_Types%2C_and_Routes.html
4.Netedit的使用:https://sumo.dlr.de/docs/Netedit/elementsDemand.html
5.Sumo-gui的说明:https://sumo.dlr.de/docs/sumo-gui.html
6.Jtrroute命令:https://sumo.dlr.de/docs/jtrrouter.html
以上内容为sumo网络建模的经验分享。如有错误望及时指出。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值