赞
踩
sumo1.7默认安装在c盘eclipse目录下。
用户变量
添加SUMO_HOME
。官网说明
sumo仿真需要两个基本文件net.xml和rou.xml,即路网文件和车辆行为文件,在sumocfg配置文件中指定要用的net.xml文件和rou.xml文件即可运行仿真。路网net.xml文件生成有几种方法:
--ramps.guess
猜测匝道。netconvert --osm-files D:\sumo\3.osm.xml --ramps.guess -o D:\sumo\3.net.xml
清洗
rou文件即交通需求建模,具体有几种方法。
trip
是车辆从一地到另一地,通过设定起始边edge
、终止边edge
和驶离时间。而route可以看作扩大的trip,不值包含车辆经过的第一条边和最后一条,而是包括车辆经过的所有边。route2trips.py
可以将route拆分成trip。
-o
是使用randomtrip脚本生成的是trip文件,参数添加-r
则调用duarouter根据trip转为rou文件。randomTrips.py -n D:\sumo\3.net.xml -o D:\sumo\3.trips.xml -e 3600 --trip-attributes="departLane=\"best\" departSpeed=\"max\" departPos=\"random\"" -r D:\sumo\3.rou.xml
trip
。DUA
达到用户均衡状态DUE
。route
。<additional>
<inductionLoop id="myLoop1" lane="foo_0" pos="42" freq="900" file="out.xml"/>
<inductionLoop id="myLoop2" lane="foo_2" pos="42" freq="900" file="out.xml"/>
....
</additional>
id是给E1线圈起个标识名字,lane和pos是线圈放在何车道何处。freq是收集到的数据累加的频次,file是指定输出结果的文件名。
线圈检测的输出结果为:
<interval begin="''<BEGIN_TIME>''" end="''<END_TIME>''" id="''<DETECTOR_ID>''" \
nVehContrib="''<MEASURED_VEHICLES>''" flow="''<FLOW>''" occupancy="''<OCCUPANCY>''" \
speed="''<MEAN_SPEED>''" harmonicMeanSpeed="''<HARM_MEAN_SPEED>''" length="''<MEAN_LENGTH>''" nVehEntered="''<ENTERED_VEHICLES>''"/>
... further intervals ...
nVehContrib
是仿真时段完全通过检测器的车辆数,而nVehEntered
是所有接触到检测器的车辆数(包括换道未经过、到达或仿真结束时仍在检测器的车辆)。flow
是车辆数换算成辆/小时
,occupancy
是占有率,speed
是时间平均车速,harmonicMeanSpeed
是空间平均车速。
generateTLSE1Detectors.py根据net文件为某个交叉口生成E1检测器。
注意需要把仿真进程停止即关闭sumocfg后感应线圈数据才能输出。
摄像头
,本身具有长度 length或pos,endPos,输出结果可用于测量排队长度。vType
定义车辆属性和跟驰、换道模型参数。注意xml的语法,vType<>属性下子属性的添加时可用将子属性包括其中如<laneChanging-LC2013 …/>,子属性结尾加/
表示子属性结束。<additional>
<vType id="myType" length="5" maxSpeed="27" vClass="passenger" guiShape="passenger"><!-- guiShape="passenger" -->
<carFollowing-Krauss accel="0.8" decel="4.5" sigma="0.5"/>
<laneChanging-LC2013 lcStrategic="0.5" lcCooperative="0.0"/>
</vType>
</additional>
制定一个跟驰模型:
<vType id="idmAlternative" length="5" minGap="2" carFollowModel="IDM" tau="1.0" .../>
对于换道模型:
The parameters are set within the <vType>:
<vType id="myType" lcStrategic="0.5" lcCooperative="0.0"/>
http://sumo.sourceforge.net/userdoc/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html#speed_distributions
speedFactor
指速度超过道路限速值的比例, speedDev
指The deviation of the speedFactor。
speedFactor=“normc(1,0.1,0.2,2)” will result in a speed distribution where 95% of the vehicles drive between 80% and 120% of the legal speed limit
<additional>
<variableSpeedSign id="VSS_ID" lanes="LANE_IDS" file="DEF_FILE">
<step time="<TIME>" speed="<SPEED>"/>
... further entries ...
</variableSpeedSign>
</additional>
time="
<vss>
<step time="<TIME>" speed="<SPEED>"/>
<step time="<TIME>" speed="<SPEED>"/>
... further entries ...
</vss>
latAlignment
: prefered lateral alignment within a lane,latAlignment="compact"时compact: stay close to the neighboring vehicle on the right。附加文件
value可以写多个xml文件。 <input>
<net-file value="net.net.xml"/>
<route-files value="input_routes.rou.xml"/>
<additional-files value="input_additional.add.xml,input_additional2.add.xml"/>
</input>
<time>
<begin value="0"/>
<end value="1000"/>
</time>
应注意的是,仿真停止是在所有生成的车辆都离开路网后才停止仿真,如果仿真时长达到时还有车辆未离开路网,则仿真还会继续运行。
--step-length 0.01
可改为0.01秒,注意步长关系驾驶员反应时间的下界,因此不建议设置步长大于1.python <SUMO_HOME>/tools/averageRuns.py example.sumocfg -n 100
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。