交通仿真 python 交通仿真模型_贴图


以开源软件SUMO(Simulation of Urban Mobility)为基础,介绍交通仿真的模型问题。

首先,SUMO道路网络可以使用自身程序生成,也可以通过导入数字道路地图生成。道路网络导入器允许从其他交通模拟器读取网络,如Vissim或MATsim。 SUMO也兼容常见的地图格式,如Open Street Map(OSM)和模拟器常用的格式,比如openDRIVE。


交通仿真 python 交通仿真模型_建模_02


SUMO可以看作是一种纯粹的微观(microscopic)交通模拟,上图是其GUI的贴图。每辆车给定标识符(名称),出发时间和车辆在道路网络中的路线。而一个宏观(macroscopic)交通模拟器会把整个交通流看成一个单元。SUMO还可以定义出发和到达属性,例如车道,速度或位置。每辆车分配一个类型,该类型描述车辆的物理特性和运动模型的变量。

模拟是时间离散和空间连续的,并且在内部描述每个车辆的位置,即所在的车道和从起点开始的距离。当车辆移动时,使用跟车模型(car-following model)计算车速。除了传统的交通措施外,SUMO还扩展加上了噪声排放和污染物排放/燃料消耗模型。

SUMO交通建模(Traffic Modeler)定义给定区域的交通群体总数并计算该群体的移动性愿望,作为交通模拟器的输入。有些软件也可以考虑一些环境特征,例如天气状况。

模块SUMO-ROUTER读取将要模拟的一组虚拟群体的出发时间,起点和目的地,然后使用Dijkstra路由算法计算在交通网络中的路线。

SUMO的车-驾驶员模型(Car-Driver Model)采用Gipps模型的扩展型。它能够显示交通的主要特征,如自由流和拥挤流。在每个时间步骤,车辆的速度适应于前车的速度,避免在随后的步骤中产生碰撞。该速度称为安全速度,计算以下


交通仿真 python 交通仿真模型_贴图_03


其中vl(t)是前车速度,g(t)是前车的间距,t是司机反应时间(一般1秒),而b是减速度函数。

车辆的“希望”或“期望”速度取下面三个中的最小值:可能的最大速度、车速加上最大加速度,如上计算的安全速度。因此,其期望车速为:


交通仿真 python 交通仿真模型_建模_04


其中a是最大加速度。

如果模拟中认为,驾驶员会犯错没有完全适应期望的速度,这样实际速度就减去随机的“人为错误”:


交通仿真 python 交通仿真模型_开源软件_05


其中e是扰动系数。由于车辆不得向后行驶,所以车辆当前速度是计算的速度和零的最大值。

该模型是无碰撞的,所以模拟中不允许模型的不完整造成的变异(artifact)出现。

SUMO提供V2X的可能,可以耦合外部通信仿真器,如ns2或ns3 。

SUMO给一个完整的交通需求或一组车辆会分配适当路线。其主要任务是对交通参与者选择路线(通过给定道路网络的路径)到目的地的过程建模。由于通过路线图边缘的时间很大程度上取决于使用此边缘的交通参与者数量,因此路线计算是实现大规模交通模拟的关键步骤。在SUMO,这被叫做“用户分配(user assignment)”或“交通分配(traffic assignment)”。

如何使交通灯适应当前交通是微观交通流模拟工作的主要应用之一。SUMO的快速执行时间和与外部应用程序交互的开放式接口使其成为评估新交通控制算法的良好候选者,包括控制单个交叉路口和对全网络的评估。

参考文献

  1. SUMO traffic simulator: https://sumo.dlr.de/index.html
  2. D Krajzewicz,“Traffic Simulation with SUMO - Simulation of Urban Mobility”, Fundamentals of Traffic Simulation, 2010.
  3. S Krauß.“Microscopic Modeling of Traffic Flow: Investigation of Collision Free Vehicle Dynamic”,ISSN 1434-8454,1998