微观交通仿真若干重要问题思考与探讨
微观仿真想解决和能解决的问题
01
引言
微观交通仿真已经成为现代交通研究的一个重要方法,也是工程实践方案验证的有效工具。微观交通仿真的起源可以认为是跟驰模型(Car Following Models)的研究,即通过描述个体车辆在车队中的加减速行为引起的交通流状态变化,早期的道路主要为双向单车道或单向单车道,所以重点研究同一车道上前后车辆的运动状态关系。主流文献认为最早研究车辆跟驰模型的是Reuschel(1950)和Pipes(1953),此后几十年发展出了各式各样的跟驰模型,部分经典模型被各个微观交通仿真软件所采用,比如AIMSUN软件最初采用的Gipps(1981)模型、PARAMICS软件加速度计算采用的心理-生理学模型(Fritzsche,1994)、VISSIM软件中的Wiedemann(1974)模型等。另一方面,广义的元胞自动机模型早在1940年前后就出现了,一般认为Nagel和Schreckenberg在1992年发表的论文中最早使用了元胞自动机进行交通流模拟,元胞自动机模型也属于微观交通仿真模型,利用离散化的道路网格和网格状态的变化来模拟交通流的变化规律。
微观交通仿真理论和技术的发展离不开计算机技术的发展。冯诺依曼架构和ENIAC计算机都在1945年诞生,到1954年左右就有研究人员开始尝试用计算机进行交通模拟。其中包括英国道路研究实验室(Road Research Laboratory,也即后来的Transport Research Laboratory公司),当时的项目组成员包括大家熟知的交通流分配平衡原理的提出者J.D.Wardrop。在美国,主要包括加州大学洛杉矶分校和密歇根大学的研究团队。微观交通仿真在1950年代迈出了第一步,接下来的20年是微观交通仿真软件研发的开荒期和试验期,多个国家开发了早期的微观仿真软件,有的甚至都没听说过,也有得以流传下来的,比如由美国联邦公路局开发的NETSIM(Network Simulation)和FRESIM(Freeway Simulation)最终合并到CORSIM(CORridor SIMulation)软件中。
现代微观交通仿真软件真正开始商业化发展,应该是1990年左右,此后,微观仿真软件可以说是百花齐放。德国PTV公司1993年发布的商业化微观仿真软件VISSIM,至今已经有30年历史,目前在全球和国内的市占率都非常高。在1986到1990年期间,SIAS公司开发了交通微观仿真器MICSIM,1993年和爱丁堡大学合作研发PARAMICS-MP,也就是最早的PARAMICS软件(Parallel Microscopic Simulation,并行微观交通仿真),1998年左右合作结束,各自进行不同版本(Q-Paramics/S-Paramics)的开发和推广。在1992年之前,西班牙加泰罗尼亚理工大学的研究人员就开始了AIMSUN(Advanced Interactive Microscopic Simulator for Urban and Non-Urban Networks)软件的开发,主要为了解决巴塞罗那奥运会期间的交通问题,在1997年成立公司进行正式商业化运营。此外,不得不提的一款微观交通仿真软件是由德国宇航中心(DLR)开发的SUMO(Simulation of Urban MObility),该项目开始于2000年,是目前开源微观交通仿真软件中的佼佼者,在学术界和工业界被广泛使用。
国内早期的微观交通仿真研究主要集中在跟驰、换道、元胞自动机等模型的改进,以及利用微观仿真软件在不同场景下进行各种研究。研究和工程应用都主要依赖国外的微观仿真软件,据笔者了解,同济大学李克平教授在2000年左右首次将PTV VISSIM软件引入国内,对我国在微观交通仿真方面的认知学习和研究应用起到了极大的推动作用。部分高校和研究机构也进行了微观交通仿真软件的研发,但多数属于尝试性研究,没有持续研发。值得庆幸的是,同济大学孙剑教授团队经过十多年的钻研打磨,2015年对自研的TESS仿真系统进行了全新升级形成TESS NG微观交通仿真软件,2019年正式推出,成为我国第一款商业化微观交通仿真软件,打破了多年来被国外仿真软件垄断的局面。
近年来,行业的微观交通仿真整体水平的提升和相关示范项目的成功有一定关系,随着数字孪生、虚拟现实、元宇宙等概念的提出和应用,微观交通仿真的受重视程度有所提高。另外,自动驾驶技术的一个重要环节是通过虚拟仿真技术加速相应算法和应用场景的测试,微观交通仿真因能够为其提供丰富的背景交通流开始受到相关厂商的关注。目前,已经有了一定规模的应用,部分自动驾驶仿真软件和微观交通仿真软件打通了联合仿真接口,在一定程度上推动了微观交通仿真的进一步发展,同时也扩展了应用场景。
本文后续将讨论微观交通仿真模型相关的几个重要问题,主要包括:微观仿真的价值和局限、仿真路网差异、参数校准、软件实现、交通安全问题研究以及当前微观仿真模型所面临的问题。需要说明,后续讨论某些问题可能会涉及相关软件的举例说明,但并不是对软件的评测和对比,只是为了便于理解和将问题具体化。
02
微观仿真想解决和能解决的问题
从应用场景看,微观交通仿真的研究类型大致可以分为以下6类:敏感性分析、方案对比评估、反馈决策预测、有限的安全分析、环境研究、智能网联场景应用。这也是微观交通仿真想要解决的几类问题,实际上,这些问题往往并不互斥,且很可能高度重合。
敏感性分析是为了回答“what if”问题,分析当一个或多个输入参数在一定范围内变动时,这些变动如何影响一个特定模型的输出。比如,改变交通需求或背景交通量,交通系统将会怎么样变化,对各种指标的影响程度是多少?此外,还可以用于探索参数的设置对模型自身的影响,比如改变模型的最大前视车辆数、静止安全距离、最小车间距等参数对车辆行为和仿真结果的影响分析。
很多实际交通问题的方案验证,可能需要较高的经济成本或时间成本,有些问题甚至无法进行真实的测试,因为有可能一旦实施就会造成不可估计的不良后果。用微观交通仿真软件可以进行相应的方案对比评估,可以覆盖交通管理和交通工程相关的大多数问题。主要基于基准方案的多次迭代来获取最佳运行条件和策略(如限速、配时、匝道合流分流等),包括几何设计变化,比如展宽、减少车道、调整上下匝道加/减速车道长度等。
可以通过微观交通仿真对发生交通事件或拥堵时的反馈决策进行预测评估,比如高速公路上事故发生时短时间内驾驶员如何反应,遇到施工区驾驶员如何改变驾驶习惯,这些研究可以用于提前制定预案,辅助可变限速、信息发布、路径诱导以及应急疏散等策略的实施。
基于历史统计数据的安全研究很大程度上受限于数据的可获得性和完整性,基于微观仿真可以进行代理安全研究,比如美国联邦公路局开发的SSAM软件(Surrogate Safety Assessment Model),将全量的车辆轨迹作为输入,通过估计相应的碰撞可能性和严重程度,分析多个移动对象之间的临近冲突。
利用微观交通仿真进行环境研究则是将排放作为车辆的各类速度和加速度模式等指标的函数,比如MOVES、COPERT、IVE、MOBILE等模型,也有部分研究直接估算二氧化碳、氮氧化物的排放量,不同国家地区的排放标准和模型参数可能会有较大差异。
随着自动驾驶、车联网等技术的快速发展,微观交通仿真有了新的应用场景。微观交通仿真通过模拟个体车辆的行为,结合相关技术研究车辆与环境、车辆之间在实时交互情形下的各种应用。在自动驾驶方面,微观仿真可以帮助评估不同自动驾驶策略(如跟车、变道、避障等)对交通流的影响。对于车联网技术,仿真能够模拟车辆与交通基础设施、其他车辆的通信,分析其对交通拥堵、排放和能耗的潜在优化作用,还可以结合通讯模拟软件进行通讯机制和网络协议的研究。
简言之,微观交通仿真是利用计算机技术对现实交通问题在个体出行者级别进行时间和空间维度较为精细化的再现和预演,在智能网联这个级别的微观交通仿真还需要加上一个信息维度。以上是微观交通仿真想要解决的问题,但并非在每个细分问题上都能完美解决。一方面,解决这些复杂问题受限于微观交通仿真模型的精细程度。另一方面,当前的微观交通仿真的底层逻辑是还原论(Reductionism),还原论认为复杂的系统、事务、现象可以通过将其拆解成各部分来加以理解和描述,但实际上交通这个高度非线性的复杂系统包含了太多因素,并不能全部都进行规则拆分和建模描述,起码从精细程度上是不太可能达到的,也就是现实本身就无法还原。
所以,微观交通仿真只能在某种程度对现实交通问题进行局部地还原,我们应该利用好当前微观交通仿真的“有限能力”去解决相关交通问题,在有些场景下,得到一个趋势明显的判断就足够了,而非一味追求对现实的还原程度和华丽的渲染效果。
03
路网模型是微观仿真的天花板
路网描述是微观仿真的基础和承载物,所有车辆和交通相关对象都在这个路网空间上,所有的行为和结果都在这个空间上产生。一款微观交通仿真软件的天花板可能就是其路网模型,虽然这样说有些夸张,但确实很多功能很大程度上受到路网模型的限制。主要分析以PTV VISSIM为代表的link-connector模型和以SUMO为代表的node-link模型。
VISSIM中link通常称为路段,connector称为路段连接器,connector是link的补充,都是实体对象,都可以附加其他路网对象。SUMO中的路段edge(node-link模型中的link)两端是节点node对象(路网构建完成后称为junction),其路网构建内部逻辑是必须先确定好节点对象再创建路段,需要说明,SUMO的中node元素和VISSIM中的节点评价Node不是等价的意义。
比较了解微观交通仿真的朋友应该知道这两种路网模型的差异,在描述复杂道路方面link-connector模型有天然的优势。连接器connector可以表达任意的道路几何形状,connector的另一个优势是其起终点可以是link上除端点外的任意位置。比如要添加一个渠化右转,只需要在开始link和结束link之间创建一个connector,如果没有车道数变化就根本不需要去打断link。而node-link这种路网模型表达能力有限,比较死板。在SUMO中,如果要设置渠化右转,无论是否有车道变化都需要把开始link和结束link打断(新增2个node),在这2个新增node之间创建一条link,如图1.b所示,这样会增加路网的复杂度和路径计算成本(尤其是大规模路网),而且基于静态路径的需求输入数据也需要进行批量修改。
图1 SUMO仿真软件非渠化和渠化右转建模示意图
再举个例子,比如我国很多城市都在用的左弯待转区,在VISSIM中不需要修改基础路网,加上信号灯头就能轻松实现,因为VISSIM中的信号灯头可以在link和connector上随意拖动摆放。但SUMO中的连接器并不能算是实体对象,信号灯头只能固定在车道末端,左弯待转区是通过内部节点(interal junction)路权规则来实现。
在SUMO中,路段edges之间用类型为internal的edge来表示,是一种抽象的表达,通过其内部规则来自动计算,这个规则较为复杂。对于node元素,主要涉及交叉口面域几何、转向连接、路权规则(多种节点类型)的计算,需要特别注意其中的交叉口面域几何计算,因为这会自动修正节点位置来调整几何形状,通常使得在路网XML文件中定义的路段长度和其计算后的长度不一致,如果差值较大,将导致仿真过程中车辆长度被拉伸或缩放(不仅仅是动画可视化界面),严重影响各种统计指标的准确性,或许这就是SUMO路网模型的那个“天花板”。
所以,笔者认为一个仿真模型或者一款仿真软件最核心的能力在于其道路网络模型,也就是路网数据结构的设计,如果一开始设计不好,将来为了扩展功能和应用新场景只能不断地打补丁,这样天花板很快就会到来,要么牺牲仿真实验的精度和能力;要么就要推倒重来,重构路网模型的底层数据结构,将面临多方面的挑战。
04
仿真“真不真”看模型参数校准
微观交通仿真不仅是使用软件简单画个路网、输入数据、跑个动画、描述一下仿真结果数据,虽然这个流程是正确的,但怎么保证仿真结果的真实性和可靠性?首先,应该清楚微观交通仿真模型验证的含义,简言之,模型验证就是找到合适的模型参数组合,使微观交通仿真结果与实际情况的差距可接受,可接受的程度可能因具体场景和项目需求而不同。仿真模型的参数直接决定了模型输出结果的准确性,校准后可以使模型结果接近现实交通状况,增强模型的预测能力和可复用性,为不同情景下的管理或设计组织方案评价提供参考,为交通管理提供更可靠的依据。
接下来,需要弄清楚哪些模型参数是可以校准的。本节所说微观交通仿真模型不是指具体的某个跟驰或换道等模型,而是一个微观仿真交通系统,具体而言就是一款微观交通仿真软件,包含除通用模型外的其他模型和建模方法。所以,涉及的模型参数非常多,通常一款微观仿真软件的模型参数有上百个,大致可以分为以下5类:
1) 车辆动力学相关参数,比如:不同车辆类型的最大加/减速度、响应延迟时间、极限车速、自重、功率等;
2) 驾驶行为相关参数,该部分还可以细化到:跟车模型参数、换道模型参数、超车行为参数,还有表现驾驶风格的分类描述参数和比例等,在此不展开说明;
3) 其他交通方式的行为特征参数,早期的微观交通仿真主要集中在机动车的运行规律和行为特征的建模,随后考虑了更多的交通方式,比如行人、非机动车运动和行为模型的描述参数;
4) 道路条件相关参数,比如:路段限速、自由流速度、速度分布、标志/标线/道路交叉处的通行规则与参数、交通信号及其影响范围等;
5) 其他模型参数,不便于归到通用模型中的或基于特定微观仿真软件的自定义模型参数,如仿真运行参数,如时间步长、随机数生成规则和随机种子等。
如何进行参数校准呢?最重要的是明确目标,目标就是最后评价校准效果的验证指标,取决于希望得到什么样的结果,比如流量偏差不超过5%,行程时间偏差不超过多少秒,或者平均排队和最大排队长度是否符合观察情况等,通常是多个目标都要满足,确定目标后就应该准备相应的实测数据用于验证。面对众多的模型参数,不可能对所有的参数进行校准,通常是凭经验或根据一些参数敏感度分析选择出最能影响模型结果的模型参数来校准。
至于校准的方法,严格意义上讲,必须进行大量的实际数据调查,如车流在不同路段的运行速度发布、跟车和停车间距等;简单的参数确定可能根据工程师的经验就可以得到基本满意的结果,如果是复杂的仿真路网和场景,则需要使用优化算法结合仿真软件的接口进行迭代优化,比如最常见的遗传算法、粒子群优化算法等,相关文章也非常多,近年来也有很多使用机器学习和深度学习方法进行参数校准的研究。因为仿真参数校准本质上就是参数拟合或函数逼近,相关的方法和技巧可以千变万化,但最终都是希望微观仿真能真一点。
必须强调一点:不同的模型参数组合可以很容易获得完全相反的仿真结果!
因此,不做模型参数校准的微观交通仿真与单纯的视频动画没有什么区别,也即所谓的仿真就“不真”。或许是国内早期的微观交通仿真相关项目普遍忽略参数校准这个必要步骤,给很多甲方人员留下了微观交通仿真华而不实的印象,微观交通仿真至今在项目中没有太多分量,甲方基本没有什么意愿为微观交通仿真买单。这样就成了一个恶性循环,甲方不重视则乙方更不重视,反正没有钱就索性不做了。不过,近年来这种趋势有所好转,越来越多的专业人员进入微观仿真这个细分领域。
05
相同模型可能产生不同的结果
理论上,通过参数标定和模型验证的相同的仿真模型,应该得到相同的结果,否则仿真就失去了意义。而实际应用中,由于仿真模型及其参数的复杂性,使得基本上不可能获得“真实”的模型,也就导致很多情况下模型“相同”结果“不同”。
VISSIM使用的跟驰模型是基于Wiedemann教授的W74和W99模型,该模型定义的四种后车状态:自由驾驶、接近驾驶,跟随驾驶和紧急刹车,比较接近实际的人工驾驶情况。其实除了跟驰模型本身,VISSIM中驾驶行为的基础跟车行为设置,如:前视距离、后视距离、降速恢复期行为、静态障碍物间距、冲击限制等,严格讲这已经是独立的跟驰模型了,通过合理的参数调整可以模拟多种不同场景。SUMO使用的默认跟驰模型是改进的Krauss模型(基于Stefan Krauß的博士论文中的原始模型KraussOrig1,目前SUMO将改进模型称为Krauss模型),是基于安全距离的模型,假设驾驶员会与前车保持充足安全距离的情形下尽可能地提高车速。SUMO中实现了多种跟驰模型,很多是开源者工作者的贡献,但实现的模型可能良莠不齐或适用于部分场景,有的甚至没有任何说明文档,不便于理解和使用。
虽然SUMO和VISSIM都实现了W74和W99模型,但具体表现肯定是不同的,不仅仅受到具体工程实现影响,还有其他很多因素,笔者曾经基于一个较大规模路网在不同软件之间进行不同模型和参数的测试,各项指标有较大的差异,这一点足以说明问题。另外,笔者研究发现,SUMO在每一仿真步计算安全车速时后车会给前车一个估计的减速度值apparentDecel,一般情形前车的该属性是个定值,也就是说无论后车是什么类型的驾驶风格,对于前车的判断都是一致的,这似乎并不合理,正如其官方文档所描述,这个估计的安全车速是很保守的,与很多情况并不相符。
由此可见,各个微观交通仿真软件系统都支持相同的模型,但各自的软件设计思路和相同模型的实现有一定差别,某些细微的差别在相同输入条件下仿真结果会有较大变差,这是不容忽视的问题。在不同软件系统内的参数校准也可能存在差异,相同模型相同参数的校正值差异较大或许也会得到相近的结果,这也从侧面反应了目前的微观仿真建模没有统一的标准,会导致很多研究的可重复性和一致性较差。
06
当前微观仿真模型存在的问题
第二节说明了微观交通仿真的应用场景,并指出微观交通仿真只能在某种程度下还原现实交通运行规律,本节将具体讨论当前微观交通仿真模型的一些局限和部分可能的解决方案。
第一个要讨论的问题是:用微观交通仿真方法研究交通安全是否真的有效?个人认为大多数情况下是无意义的。首先,微观交通仿真模型研究和软件开发的主要目的是从微观层面模拟交通基本运行规律和效率指标的预测,仿真模型内大多数机制基于明确的规则,加入一些随机数和概率分布参数来描述随机性作为修正,但对不同类型对象的异质性描述仍然不够准确,在不同时空条件下变化频繁且差异较大。其次,对于个体行为和个体间的交互模式的描述相对粗糙,尽管有不断的改进或增强的模型出现,但都侧重于单一模型的效果验证,相同条件不同模型的计算结果偏差较大,缺乏系统性和针对复杂交通场景的建模方法。再者,现有微观仿真模型或软件的道路网络描述精细程度不够,使用一维线性车道方法描述车辆纵向运动,车辆沿固定轨迹线行进,交叉口的转向行为更是与现实情况有很大不同,且无法表现不同驾驶人的驾驶习惯,对横向特性的模拟也十分有限。最重要的是,在微观仿真中,跟驰、换道等模型本身就是有安全速度边界约束的,也就是accident free,即不会发生事故,也不是车辆动力学模拟软件那样的特性模拟。另外,微观交通仿真缺乏对现实环境的描述,比如不同天气下的路面摩擦系数、不同天气的能见度、光照变化等,这些因素和交通安全紧密相关。相关的研究通常采用冲突程度这类代理安全指标,这些指标放在现实中研究没什么问题,如果本身微观仿真的交通安全与现实情况差异较大,那么用些这些指标和方法来评价分析仿真世界的安全就无异于纸上谈兵。
另外一个重要问题是:以车道为基本单元的仿真模型技术与实际交通运行特征存在严重差异。对该问题的阐述主要基于同济大学李克平教授课题组的相关研究成果,部分内容为笔者自身的思考。目前的微观交通仿真模型和软件以车道为基本空间,包括和SUMO的sublane模型类似的细化虚拟子车道,来描述个体车辆运动。这样的一维线形和简化的二维平面运动与实际二维运动自由度不符,对道路空间和交通设施等场景要素的表达是不完整的,造成很多不可用的道路空间,尤其是交叉口附近的区域,如图2.a中交叉口内部的浅灰色块,这些空间是仿真中车辆永远不可能到达的空间,不符合现实的车辆轨迹分布。另外,一些非正常驾驶行为和不遵守交通规则的行为在现有框架下无法模拟,比如不同类型和场景下的逆行、违规换道等。
图2 一维车道建模和二维离散栅格道路建模对比
李教授课题组尝试从底层仿真结构上做出突破,提出基于深度离散栅格仿真思想的交通仿真体系,使用高精度二维离散空间单元构建精细化仿真道路网和场景要素(如图2.b所示),与基于一维车道的仿真方法相比,不存在因底层道路结构而产生的仿真盲区,即实现了道路环境、机动车、非机动车、行人的一体化全域耦仿真合场景的构建。该方法也摆脱了车辆需基于车道行驶的固有设定,使车辆运动在仿真空间中具有完全的二维自由度,可以最大程度逼近真实的车辆驾驶特征。离散栅格交通仿真方法通过可变精度栅格编码设计,在极大简化计算复杂度的同时,还可较为完备地描述交通环境和行为模式。在此路网模型基础上,可以构建更加真实的微观驾驶行为驱动模型,实现任意的交通个体的驱动模型,可以较为真实地模拟不同场景下用路人之间的博弈交互行为特征。该研究初步完成了高精度、高保真、高效率的新微观仿真体系的构建,进行了一定规模的测试,获得较好的效果,能较为完整地再现非规则化的二维运动(轨迹相似度达96%)。据介绍,目前还有部分建模细节和更多场景待测试验证。个人认为,这一研究和突破算得上微观交通仿真的一个里程碑,为下一代超高精度微观交通仿真建模提供了方向指引和重要参考。
07
结语
本文简要回顾了微观交通仿真模型、技术、软件和应用的发展历史和基本现状,并对微观交通仿真的主要应用场景和价值进行分类总结,对比微观仿真现有常用道路网络模型的差异并举例说明相应细节问题,详细阐述了模型参数校准的过程及其重要性,还探讨了不同仿真软件实现相同模型的仿真结果差异,对使用当前微观交通仿真技术进行交通安全研究的局限性进行了说明。最后,受到深度离散栅格微观仿真理论的启发,对当前以车道为基本单元的微观仿真框架存在的问题和不足进行了阐述,并简要介绍了该仿真方法的最新研究进展。
本文探讨了微观交通仿真中几个重要的话题,限于篇幅和时间,不可能事无巨细的探讨所有问题,希望相关问题能够引起领域内研究、开发、应用等相关人员的重视,推动微观交通仿真技术和模型的发展。本文参考的文献和资料不下百篇,无法一一列举,在此对前辈们的贡献和成果一并致敬,但部分内容仅代表个人观点,仅供参考。
作者简介:黄磊、张俊,南京莱斯信息技术股份有限公司
未经许可,任何人不得复制、转载、或以其他方式使用本网站的内容。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明等材料,与我们联系,我们将及时沟通与处理。