基于Anylogic的道路交通堵塞仿真研究
2018-01-03马生涛
马生涛 余 雷 杨 杰 康 缘
(长安大学电控学院 陕西 西安 710000)
基于Anylogic的道路交通堵塞仿真研究
马生涛 余 雷 杨 杰 康 缘
(长安大学电控学院 陕西 西安 710000)
交通事故的发生会导致交通的正常运行效率降低,发生交通堵塞,甚至造成严重交通瘫痪。为了对交通事故而导致交通堵塞的传播规律进行仿真研究,利用Anylogic仿真软件,运用面向对象的思想对交通事件中车辆的行为和特征进行微观特性描述,针对不同的交通事故类型,分别对交通堵塞的传播规律进行模拟。结果显示,该模型能够较好地模拟出交通堵塞的传播规律,同时能够取得评估交通运行效率的有效参数,为驾驶员的行车路线提供诱导信息。
交通堵塞 建模仿真 传播规律
0 引 言
随着经济的持续快速增长,交通需求也随之增加,无论是城市道路还是高速公路都处于高负荷运行状态,轻微的扰动都有可能诱发交通堵塞,甚至可能导致交通瘫痪[1],从而对人们造成重要的影响,制约我国经济发展[2]。交通事故是导致交通堵塞甚至瘫痪的一个极为重要的方面,且有研究表明,交通事故引起临近路段交通紊乱持续时间比事故自身的时间还要长[3]。因此探索交通事故的传播规律是非常重要的。
国内外有很多学者研究了交通事故传播规律,也运用了很多模型和方法,例如排队模型、交通激波模型等,它们均能反映出事故传播的一些宏观特性,无法体现出系统中个体内以及个体之间的关系。
针对目前智能体在交通控制领域的应用不成熟,采用Anylogic仿真软件对道路交通事故传播规律进行仿真建模,了解对象内以及对象之间的关系,从而更好地体现事故传播的微观特性。
1 多智能体与交通控制
纵观国内外交通堵塞传播规律大多是从宏观层面进行研究,研究方法可以分为排队论模型和高速激波模型等,然而基于微观层面的研究少之又少。元胞自动机模型(CA)的兴起促进了交通流理论在微观特性上的发展,交通领域中的车辆是一个个的离散对象,元胞自动机正好采用离散集来描述对象,因而具有独特的优越性。1983年Wolfram首次提出了184号规则元胞自动机交通模型[4],1992年Nagel等提出了针对一维高速交通流车速大于1且刹车概率不等于0的NS模型[5];1996年Fukui等对NS模型进行简化,提出了FI模型[6];但是由于实际交通的复杂性,用此模型仍然不能描述道路实际情况,针对这种问题,许多学者提出了各种改进的NS模型和FI模型甚至将二者结合;例如:WWH模型[7]、上述均是单车道元胞自动机模型,不允许车辆发生超车行为,王永明[1]针对交通堵塞传播规律中分别运用CA模型、NS模型进行仿真研究,提出了改进的CACF模型(双车道元胞自动机模型);杨泳[8]运用改进型元胞传输模型和动态随机交通流分配理论研究了交通堵塞传播规律,薛万东[9]利用混合交通流元胞自动机对环形交叉口进行建模。元胞自动机从动力学的层面对交通流进行了研究。许多学者也利用一些软件实现交通微观分析,例如杨嘉等[10]采用VISSIM仿真软件对微观交通流程进行仿真和应用。本文采用Anylogic仿真软件通过建立智能体进一步对交通堵塞传播规律的微观特性进行仿真分析。
AnyLogic是一种具有创新性的建模工具,可以虚拟原型环境。该建模语言已经成功应用于对大规模和复杂系统的建模,模型的主要构建模块是智能体。由于其能够更快速地创建可视化的灵活的活动对象,包括Java对象;又可以使用多种方法进行建模;在运行环境中可以直接分析和使用优化工具;并且当实际系统发生变化时,只需通过对模型的有效维护就可以改变系统,从而增加模型的使用周期,Anylogic仿真软件已经被广泛使用[11]。
2 Anylogic仿真建模过程
2.1 系统对象
本文对交通事故导致交通堵塞的传播规律进行仿真研究,并且利用Anylogic仿真软件对整个系统内的对象进行微观体现。系统中车是构成整个交通事件的基本元素,车本身的行为和状态决定车在一定条件下所处的状态和所表现的行为。
2.2 系统对象特性分析
确定系统的对象后,由于车辆本身具有自己的属性和行为,在该系统模型中,每辆车都有三个状态:停止、准备行驶和行驶,车会在一定的条件下做出相应的动作。如果车在行驶的过程中遇到交通事故,首先判断前方是否能够通行,然后根据判断的结果做出一定的行为,或转换状态,或继续保持该状态不变。如果车辆在交通事故中处于停止状态,判断前方车辆或其他车道侧前方车辆是否通行,当条件成熟时,车本身会自动转换状态,从停止转换为准备行驶,进而开始行驶。
2.3 交通堵塞传播规律建模过程
Anylogic是一款面向对象的仿真软件,而对象被封装在类中,类是对象的载体。本系统是对交通事故引起的交通堵塞传播规律的研究,并且是对对象及对象之间进行微观上的体现,根据对象本身具有的属性和行为决定该对象要执行的动作。Anylogic既是一款面向对象的基于Java的仿真软件,又具有可视化界面建模的便利性,因此本系统利用面向对象的思想进行仿真建模。
在对系统的研究思想以及系统中对象明确的条件下,利用面向对象的思想,首先在仿真软件中建立一个Car类[12],用于封装对象车辆。进而对车的属性和行为进行定义,定义Car类实质是画一张设计汽车的图纸。在定义好该类车后,即该类车就具有系统所要求的所有的属性和行为。
本系统中,定义该类车具有三个状态:停止、准备行驶和行驶,并且定义车在某个状态时会接受系统给它发送的信息或到达某一时刻会做出相应的行为。利用Anylogic的面板窗口,拖动一个智能体到图形编辑界面并且命名为Car,在新建的Car智能体中,利用面板窗口中的状态图建立车辆的各个状态及其各自在接受到系统信息或到达某一时刻时的行为变迁。如图1所示。
图1 系统对象状态图
利用面板窗口中的演示在Car类原点处画一个小矩形并命名为car来代替车辆,点击状态图中的“行驶”在属性窗口的“进入行动”中输入:car.setFillColor(white);代表车辆在行驶时显示为白色,同理定义其他两个状态:car.setFillColor(black)代表车辆在停止时显示黑色;carlei.setFillColor(gray)准备行驶时显示灰色。
有研究表明,大部分的交通堵塞是由交通事故引起的,而由交通事故引起的交通事件有两种传播规律:完全堵塞传播规律、部分堵塞传播规律[13],本文分别对上述两种情况进行仿真研究。(1) 假设车辆发生严重事故,即车辆完全堵塞,也就是说交通事故导致事故点后面的车辆全部停止,当事故撤销时,车辆慢慢疏散;(2) 假设车辆发生轻微事故导致部分堵塞。
本文所述交通事故的严重性是由系统所发信息决定的。当某一对象接收到系统发来的消息:“严重交通事故”或“轻微交通事故”,此时,由于本系统采用面向对象的思想进行仿真研究,又由于该车辆对象本身具有判断识别消息,并具有作出相应行为的功能。即车辆首先会判断所接收消息的类型,决定是否能够变道通行;其次判断事故车辆发生在哪一车道并作出相应的行为动作,该车辆会自动对排在后面的车辆发送同系统给它自身相同类型的消息;最后当该车辆接收到“事故撤销”的消息时,进行状态转换,同时给排在后面的车辆发送消息,从而疏散事故。
上述是对车类的基本属性和行为的定义,在该类车中,还需要几个参数来存储模型的仿真结果,或者用于描述某个随着时间不断变化的数据单元或对象属性。Anylogic中有一般变量与集变量,通过变量可以建立两个不同对象之间的联系,被连接起来的变量在任意时刻具有相同的值,具体到本模型中[14],建立变量表,如图2所示。
图2 仿真模型参数
假设某一路段为双向三车道,并用在公路上的车辆表示车道,该双向三车道公路段如图3所示。
图3 双向三车道公路段
为方便表示,对该双向三车道进行自上而下命名为车道1~6,车道1~3为车辆自右向左行驶,车道4~6为车辆自左向右行驶。agentLocation1、agentLocation2、agentLocation3分别表示车道1和4、车道2和5、车道3和6的事故发生车道标号。agentStart1、agentStart2、agentStart3分别表示车道1、2、3上从右向左的最后一辆车,即该车及其以后的车都没有进入事故的传播范围之内。同样agentEnd1、agentEnd2、agentEnd3分别表示车道4、5、6上的最后一辆车,即该车及其以后的车也没有进入事故的传播范围之内。参数timeStart、timeEnd、timeOverTake分别表示车从行驶状态转换为停止状态时的起始时刻(假设转换状态没有延迟)、车从停止状态转换为行驶状态时的终止时刻以及车从发生事故导致车辆停止时刻到车辆行驶时所耗费的时间。
面向对象是一种思想,对象封装在类中,而类被主类所调用。在对车类进行系统属性和行为的配置以及仿真模型所需参数定义之后,要对主类进行一定的配置设计。类是用来封装对象的,简言之,类只是一张设计图纸,要在主类中运行就要产生实例对象,本设计在主类中产生300辆车,命名为cars。即假设该路段的容量保持恒定不变,每一辆车是一个对象或实例,每辆车都具有相同的Car类的属性和行为。仿真启动后,系统中的实例cars都处于行驶状态,即图3中显示为白色。本文通过控件给任意一个对象发送信息从而产生事故,并且分别对严重事故导致交通堵塞和轻微事故造成交通拥堵进行仿真研究。事故的持续时间也是通过消息来实现的,事故时事故车辆接收到系统发送的事故撤销消息或变道通行消息时,车辆慢慢疏散行驶。
为实现上述要求,对主类进行了一定的配置如图4所示。
图4 仿真模型参数及数据
其中,行驶车辆数量、停止车辆数量、车辆堵塞时间、堵塞长度分别表示该仿真路段在发生交通事故时行驶车辆 、停止车辆的数量变化、每一辆车堵塞时间以及堵塞时造成堵塞长度。carLocationX、carLocationY表示发生事故时事故车辆的位置。carsNum1、carsNum2分别表示自右向左和自左向右的每辆车的编号。由于本系统假设该路段车容量一定,故对车辆进行编号,采用Anylogic软件面板中的控件给任意车辆发送事故消息。如图5所示。
图5 事故消息控件及车道上车辆编号
图中,左、右半部分别表示从左向右、从右向左行驶车辆是否发生事故及其发生事故车辆的标号选择。最后进行模拟时间设定,在模型中可以选择mintues、hour、day分别便是模型中1秒钟代表实际1分钟、1小时或者1天,本模型中用1秒表示实际的1秒。
3 系统仿真
模型的建立依赖上述建模过程,在搭建好系统模型后,需要对系统仿真结果进行分析,模型中1秒钟也表示实际1秒钟,本系统中的一些数据如下所示:
(1) 假设该路段容纳的车辆数恒定不变为300辆,车辆平均长度为6米,前后车间距均为2米且速度一定平均为50千米/时。
(2) 该路段为双向三车道,在各同向道上无任何出口、匝道以及紧急停靠车道;车辆一旦进入给路段只能跟随前车行驶,不能掉头或逆向驶出。
(3) 刚开始运行模型时,该路段无事故,车辆均处于行驶状态。虽然交通堵塞大多数由于交通事故所引起,但是某一较短路段内连续发生两起及以上不同的交通事故的概率是比较低的。因此,为了仿真事故导致交通堵塞传播规律,可以人为的给系统中某一辆车发送事故消息(严重交通事故和轻微交通事故),此时,其余车辆处于行驶状态。
(4) 如果某一车辆发生交通事故,后车根据事故的严重程度判断是否停止或变道行驶,但是状态的转换不会立刻执行,不同的驾驶员会有不同的响应时间,采用uniform(3,5)函数实现,表示驾驶员的反应时间取3~5 s之间的任意值。
(5) 车辆进入停止状态时,每一辆车会对它后面的车发送同系统事故类型相同的消息。为仿真交通事故撤离传播规律,需要对系统发送事故撤离消息或变道通行消息。据此,驾驶员同样会有一定的反应时间,采用uniform(2,5)实现,使车辆由停止过渡到准备行驶状态而最终行驶或直接进入行驶状态。
下面分两种情况对交通事故导致交通堵塞的传播规律进行分析:
(1) 当车辆发生严重交通事故时:假设第四车道第188辆车发生事故且完全堵塞,又在之后某一时刻交通事故撤销,以下从堵塞车辆数量、堵塞长度以及堵塞时间三个指标对系统进行仿真分析,如图6-图10所示。
图6 第四车道第188辆车事故传播示意
图7 第四车道第188辆车事故撤销传播示意
图8 事故时行驶和停止车辆数量变化曲线
图9 事故时行驶和停止车辆堵塞长度变化曲线
图10 事故时行驶和停止车辆堵塞时间变化曲线
车辆发生严重交通事故造成完全堵塞,图8为车辆堵塞时的停止、行驶车辆数量随时间的变化图。由图知,由于本系统中规定该路段车辆容量一定且为300辆,故车辆在发生堵塞时,停止车辆数量增加,行驶车辆减少。某一时刻,事故撤销,由于堵塞车辆规律还在传播,且事故点车辆开始行驶,在此期间,由图知有一小波动,表示该时间段的传播规律,进而停止车辆减少,行驶车辆增加直至堵塞完全消除。图9为车辆堵塞长度随时间变化图,在车辆堵塞时,堵塞长度急剧增加。某一时刻,当事故撤销时,堵塞长度在微小波动后急剧下降到零。此系统中车辆数一定,且每一车道最后一辆车及其之后车辆在前车发生堵塞时都不进入系统,因此每一车道最后一辆车及其之后车辆不发生堵塞,即堵塞时间为零。由图10知,堵塞时间变化微小且与堵塞的时间先后关系较小。
(2) 当车辆发生轻微交通事故时:亦假设第四车道第188辆车发生事故但有一车道依然可以通行,又在之后某一时刻接收到系统发送的变道通行消息。以下从堵塞车辆数量、堵塞长度以及堵塞时间三个指标对系统进行仿真分析,如图11-图15所示。
图11 第四车道第188辆车事故传播示意图
图12 车辆变道传播示意图
图13 事故时行驶和停止车辆数量变化曲线
图14 事故时行驶和停止车辆堵塞长度变化曲线
图15 事故时行驶和停止车辆堵塞时间变化曲线
车辆发生轻微交通事故造成部分堵塞,图13为车辆堵塞时的停止、行驶车辆数量随时间的变化图,由于车辆可以变道行驶,故造成堵塞的车辆数量波动微小。图14为车辆堵塞长度随时间变化图,在车辆堵塞时,堵塞长度急剧增加,变道通行时,由于驾驶员的反应时间的不同,堵塞长度在微小波动后急剧下降到零。此系统中车辆数一定,且每一车道最后一辆车及其之后车辆在前车发生堵塞时都不进入系统,因此每一车道最后一辆车及其之后车辆不发生堵塞,即堵塞时间为零。由图15知,堵塞时间变化较车辆完全堵塞时的波动大且与堵塞时间先后关系较小。
4 结 语
本文应用Anylogic仿真软件对交通事故导致交通堵塞的传播规律进行仿真,模拟出了不同事故类型下交通堵塞的传播规律,得到了堵塞车辆数量、堵塞长度以及堵塞时间等指标。仿真结果显示该模型能够较好地模拟交通事故的传播规律,同时能够取得一些评估交通运行效率的参数。针对某一无任何出口、匝道且不能掉头路段,通过仿真可以发现,堵塞程度与事故的轻重程度有关,如果事先知道事故的严重程度,驾驶员可以提前驶出路口或掉头。因此,可在其路口安装显示屏提前进行交通诱导,显示前面路段是否有事故,事故的严重程度,车辆堵塞的数量、堵塞长度、堵塞时间及其有无交警正在处理等信息,告诫驾驶员是否驶入该路段,从而提前预防车辆过多堵塞而提高交通运行效率。当然,模型中的假设在一定程度上削弱了模型的真实性,鉴于此,相比实际的交通堵塞传播规律还需要更多更深入的研究。
[1] 王永明.基于元胞自动机的道路交通堵塞仿真研究[J].系统仿真学报,2010,22(9):1-2.
[2] 吴心平,赵清华.我国城市交通堵塞现象浅析[J].交通论坛,2010,10(2):1-3.
[3] Lindley J A. Urban Freeway Congestion:Quantification of the Problem and Effectiveness of Potential Solution[J].ITE Journal (S0162-8178), 1987, 57(1):27-32.
[4] Wolfram S.Theory and Application of Cellular Automata[M]. Singapore: World Scientific, 1986.
[5] Kai N, Schreckenberg M. A cellular automaton model for freeway traffic[J]. Journal De Physique I, 1992, 2(12):2221-2229.
[6] Fukui M, Ishibash Y. Traffic Flow in 1D Cellular Automaton Model Including Cars Moving with High Speed[J].Journal of the Physical Society of Japan, 1999, 65(6):1868-1870.
[7] Wang L, Wang B H, Hu B. Cellular automaton traffic flow model between the Fukui-Ishibashi and Nagel-Schreckenberg models[J]. Physical Review E Statistical Nonlinear & Soft Matter Physics, 2001, 63(5 Pt 2):056117.
[8] 杨泳.城市快速路交通拥堵形成、传播规律及消散控制策略研究[D].成都:西南交通大学,2014.
[9] 薛万东.环形交叉口混合交通流元胞自动机模型研究[D].兰州:兰州理工大学,2014.
[10] 杨嘉,孙剑.微观交通仿真流程及应用[J].城市交通,2010,8(5):79-83.
[11] 魏星,刘影,刘晓明. AnyLogic系统仿真环境[C]//中国航空学会信号与信息处理专业全国第八届学术会议论文集,2004:1-2.
[12] Grigoryev Ilya V.三天掌握多方法仿真建模[M].韩鹏,译.沈阳:东北大学,2013:121-147.
[13] 吴正.高速交通中堵塞形成阶段的交通流模型[J].交通运输工程学报,2003,3(2):1-2.
[14] 王建伟,匡安乐,何倩.基于Anylogic的高速公路服务区停车场规模仿真建模[EB/OL].北京:科技论文在线.[2009-03-23]. http://www.paper.edu.cn/releasepaper/content/200903-830.
SIMULATIONOFROADTRAFFICCONGESTIONBASEDONANYLOGIC
Ma Shengtao Yu Lei Yang Jie Kang Yuan
(CollegeofElectronicandControlEngineering,Chang’anUniversity,Xi’an710000,Shaanxi,China)
The occurrence of traffic accidents leads to the normal operation of the traffic efficiency, traffic congestion, and even causes serious traffic paralysis. In order to simulate the propagation law of traffic congestion caused by traffic accident, Anylogic simulation software was used to describe the behavior and characteristics of vehicles in traffic events by using object-oriented thinking. Aiming at the different traffic accident types, the propagation law of traffic congestion was simulated respectively. The results showed that the model could simulate the propagation law of traffic congestion well, could obtain some parameters to evaluate the efficiency of traffic operation and provided reference for the driving route of the drivers.
Traffic congestion Modeling and simulation Propagation law
2017-03-02。归国留学人员科研启动项目(2013C0320118);中央高校基本科研项目(2014G1321039)。马生涛,硕士生,主研领域:高速诱导。余雷,讲师。杨杰,硕士生。康缘,硕士生。
TP391.9
A
10.3969/j.issn.1000-386x.2017.12.021