城市交通仿真平台SUMO(4)

2018-12-01 15:29

一个更详细但等价的写法如下:

上面的input部分仅服务于文件目的,没有功能方面的意思。 带有配置文件的SUMO调用是这样的: sumo.exe -c test.sumo.cfg

这意味着我们不用参数,而是仅用参数--configuration-file or -c 给出了配置文件

3.3.1.配置文件命名规范

不同的目标程序有不同的扩展名,强烈建议遵循该规范。GUISIM的仿真配置必须遵循规范,它仅能后缀为“.sumo.cfg”的仿真配置文件。扩展名规范如下:

? *.sumo.cfg: Configuration file for SUMO and GUISIM ? *.netc.cfg: Configuration file for NETCONVERT ? *.netg.cfg: Configuration file for NETGEN ? *.rou.cfg: Configuration file for DUAROUTER ? *.jtr.cfg: Configuration file for JTRROUTER ? *.df.cfg: Configuration file for DFROUTER ? *.od2t.cfg: Configuration file for OD2TRIPS

3.3.2.配置文件和命令行参数

附加配置文件后,命令行参数照样可以使用(GUI程序例外,它需要在配置文件里设置好所有参数)。如果一个参数在配置文件和命令行里同时被设置,那么命令行里的值优先使用。

3.3.3.生成配置文件模板

SUMO包里的程序允许用户生成配置文件模板,可以保存一个空的配置。可以这样来实现(使用netgen命令):--save –template。这种情况下,配置文件包含带有默认值的参数,如果需要更多的参数信息,可以这样实现:--save-template.commented,这将提供更多的参数信息。例如:Netgen --save –template test.sumo.cfg

3.3.4.保存当前配置到文件

可以把当前参数设置保存到配置文件,这样来实现:--save-configuration .

3.4.通用参数

SUMO包里的程序共享一些参数,具体参看下表: 报告参数:

参数

--verbose

--suppress-warnings --print-options --help -? --log-file

不记录警告信息

打印参数,并给出当前参数值 程序帮助信息

所有信息都显示在控制台,并记录进指定的文件

描述

详细报告应用程序正在做什么

随机数参数:

这些参数决定了随机数发生器的种子怎么产生。相同的种子导致产生相同的随机数序列。 但是默认情况下,种子被硬编码为固定值。因此,只要保持配置设置不变,几次仿真运行的结果输出是完全一样的。为了改变这种情况,使用下面的参数:

参数

--srand --abs-rand

描述

给随机数生成器设置指定值。可以使用不同的值以获得不同但可重现的仿真结果 让SUMO自己选择种子。如果可能,种子将给予/dev/urandom的输出,否则会基于当前系统时间。该参数优先于—srand

注意: --abs-rand 的优先权高于 --srand 意味着不能可以在配置文件中设置set --abs-rand ,而在命令行里改写--srand

4.仿真准备

4.1.所需数据

首先,需要让被仿真的交通网络运行起来。由于SUMO仿真大型网络,所以我们主要关注导入交通网络及导入数据中丢失值的计算。因此,没有网络图形编辑器可用。另外,还需要网络中道路的信息,及交通灯的信息。

更进一步,你可能需要交通需求的信息。尽管许多交通仿真使用统计分布,但是SUMO中的每辆汽车知道自己的路径,这里的路径是要通过的边(道路)的列表。

你必须遵循以下步骤来实现一个仿真方案: 1) 创建网络

这一步可以有三种方法实现: 1:使用NETGEN生成抽象网络

2:在XML文件里设置自己的描述,并用NETCONVERT导入

3:使用NETCONVERT导入一个已经存在的网络(可以使用OSM地图) 2) 创建需求

这一步可以有五种方法实现: 1:描述明确的车辆路径

2:仅使用车流和转弯百分比(可以考虑) 3:生成随机路径(不实用) 4:导入OD矩阵(特定格式) 5:导入已存在的路径

3) A:如果需要,计算动态用户分配 4) B:用给定的方法校正仿真

5) 执行仿真,获得你所需要的输出 下图比较形象地表述了这个过程:

4.2.最佳实践

选择正确的方案依赖于所做的调查。如果想让结果容易评估,生成的抽象网络可能是最好的解决方案,抽象网络已经被用来评估C2C-networks的弱点。如果需要研究真实交通,可能会重用已经有的数据。

5.网络构建

5.1.SUMO道路网络

SUMO使用自有的道路网络描述。尽管是可读的,但不意味着SUMO的道路网络要手工编辑。相比之下,应该使用NETCONVERT转换已有的地图,或者使用NETGEN产生简单、抽象的几何道路图形。

NETGEN允许自由地创建网络。对一些重新选择路径的小规模测试,tls-signals等,这可

能是最佳方法。街道的清晰命名使得容易定义自己的路径。但是如果你想仿真真实网络,那么使用NETGEN产生的网络是没有用的。

使用NETCONVERT可以从其他数据源导入道路网络,如VISIM,shape files 和OSM数据库,这也是设置真实世界网络的工具。

然而,多数例子是手工写成的XML文件,和从NETCONVERT转换来的。起初,这些例子很小,手工编写可以比使用NETGEN更好的控制输出。而且使用XML数据定义自己的网络非常灵活。 网络格式:

粗略地讲,SUMO道路网络是个有向图。节点代表道路交叉口,边代表道路或街道。 边和车道 边的属性有: Id:边的标识

From:起始节点的ID To:终止节点的ID

Priority:道路的重要程度,是一个数值类型 Function:一个抽象边的用途(目的)

对于仿真,我们感兴趣的是”function”这个属性,它描述了边怎么被使用,在真实世界中是否可以找到这样的边,或者它只是一个为实现分配而建的辅助结构。我们定义了以下用途: 1) normal:这类“边”是道路网络中的普通部分,如高速公路或链接两条道路的街道。 2) connector:这类“边”是个微观连接器—并不是真实世界道路网络的一部分。然而

在仿真中,不区分“连接器道路”和“普通道路”,仅GUISIM允许隐藏“连接器道路”。 3) internal:这类“边”是交叉口的一部分(在交叉口内部)。在仿真中它的使用不同于普

通边(normal)。

每个边都需要它所拥有的车道的定义,每个车道的定义如下: ? id: 车道id

? depart(开出):车辆是否可以从该车道正常开出(1可以,2不可以) ? vclasses: 该车道允许或禁止通行的车辆类别列表。 ? maxspeed: 该车道所允许的最高车速 ? length: 该车道的长度

此外,车道有形状属性。尽管网络从(0,0)开始转换,并不一定网络的所有部分的坐标为正。

节点

注意:可能两个不同的节点有相同的位置(怎么解释?)

5.2.坐标系和对齐

这里的网络使用笛卡尔坐标系,最左端的节点在x=0处,最下端的节点在y=0处。这意味着,导入路网时,如果原始网络使用的不是笛卡尔坐标系,NETCONVERT 和 NETGEN将会首先映射网络。然后移动网络到原点(0,0).

这个处理被记录在生成网络的元素位置里。可以找到如下属性: 以下省略。。。

SUMO道路网络向北对齐,当然这取决于用户怎么定义道路网络,但是如果从Open Street Map or shape files导入路网,上指向北方。

现有改动:

警告:如果从0.10.x版升级到24.07.2009版之后,请注意这个更正说明: 22.07.2009版与24.07.2009版之间网络格式发生了重大变化,可被概括为把所有字符数据移动到了属性里面,具体如下:

?“车道形状”不在存储在车道的字符区域部分,而是移到了车道的形状属性里 ? “网络映射、位置、边界描述”不在使用net=offset,conv-boundary>, orig-boundary, and orig-proj等元素,而是引进了“location”元素,这些值被保存到该元素的如下属性里:netOffset, convBoundary, origBoundary, projParameter。

? row-logic的子元素:“关键字,请求大小,车道数”依次转移到row-logic的如下属性里:id, requestSize, and laneNumber

? tl-logic的子元素:“关键字,子关键字,偏移”依次转移到tl-logic元素的如下属性里:id, programID, and offset。元素phaseno被丢弃不用。

? 交叉口的子元素inclanes(进入交叉口的边),intlanes(驶出交叉口的边),shape依次转移到交叉口的如下属性里:incLanes, intLanes, and shape。

? 区域形状不在存储在区域的字符区,而是在区域的形状属性里。 ? 多边形形状不在存储在多边形字符区,而是多边形的形状属性里。

5.3.使用自己的XML描述构建网络

几乎分发包里的所有例子都是手工创建的。这样做,你至少需要两个文件:一个文件存储节点,另一个文件存储节点间的边。注意这里的“节点”和“交叉口”同义,“边”和“街道”同义。除了定义节点和边,你还可以用类型来结合边的属性,设置边和车道的明确关系。以下将描述这四个文件类型是怎么样的。(可以下载这些XML文档的模式描述)

创建这四类XML文件。。。

在生成这些文件后,你至少需要节点文件和边文件(类型和连接文件是可选的),你可以运行NETCONVERT 以构建网络。如果仅用节点和边文件(MyEdges.edg.xml,MyNodes.nod.xml),调用格式如下:

netconvert --xml-node-files=MyNodes.nod.xml --xml-edge-files=MyEdges.edg.xml \\

--output-file=MySUMONet.net.xml

如果还使用了类型和连接文件,则调用格式如下:

netconvert --xml-node-files=MyNodes.nod.xml --xml-edge-files=MyEdges.edg.xml \\ --xml-connection-files=MyConnections.con.xml --xml-type-files=MyTypes.typ.xml \\ --output-file=MySUMONet.net.xml

可能你的边的定义不完整或有错,如果你仍希望导入这个网络,可以试着使用

NETCONVERT的--dismiss-loading-errors参数忽略这些。这样,定义不正确的边将被省略,但是NETCONVERT仍试图构建网络。还可以绕水平轴翻转网络(使用参数--flip-y)。

5.4.节点描述

节点文件一般以“.nod.xml”作为扩展名,每行描述一个节点,如下所示: \\\\

方括号表示该参数可选,每个属性都有特定意义和值域:


城市交通仿真平台SUMO(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重庆高2013级学业质量调研抽测试卷(第二次)数学(文科)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: