APP下载

十字路口交通道路仿真系统

2017-06-08王婷尧

课程教育研究·学法教法研究 2017年24期
关键词:控制交通

王婷尧

【摘要】十字路口的交通情况相比于普通道路普遍较为复杂,而且在不断地动态变化,所以如何处理十字路口的交通问题一直以来是交通上的重要课题,研究十字路口的交通控制方法对于降低交通事故率,提高人们日常交通效率有着重大意义。

【关键词】十字路口 交通 控制

【中图分类号】TP273.4 【文献标识码】A 【文章编号】2095-3089(2017)24-0295-01

近年来,交通堵塞状况越来越频繁,对于交通流量的监测,对于十字路口的控制,对于交通资源的合理使用成为了二十一世纪一个重要的课题,在科学技术日益发展的今天,交通工具不断大众化,城市公路上的私家车随处可见,造成了十字路口交通拥堵现象,甚至发生交通事故,于此,对于城市道路交通,十字路口交通控制的改善就显得愈发重要。

SUMO是一款开源的,连续的交通道路仿真的软件,由德国宇航中心开发,虽然目前国内使用不多,但是仍然是一款极其适合于交通仿真研究的软件,该软件能够很好的还原城市道路交通情况。

目前的十字路口交通灯控制系统多采用静态的交通灯程序,而且为单一交通灯程序,不具有普遍性,可能导致出现交通资源的浪费,时间的浪费,因此,合理根据情况改变交通灯控制程序就显得刻不容缓,为此,有必要进行对车辆流量的监测,以及根据情况改变交通灯程序,设计出不同的算法,适应不同的环境,本次限于时间和经济原因,只能探索其可能性,并不能真正实现对交通灯系统完全智能动态控制。

一、交通灯程序算法

采取增加绿灯时间的方法来让更繁忙的道路能够充分利用道路资源,而在那些不是很繁忙的路段采用降低绿灯的时间来让更繁忙的道路优先运输,这是基本的思路。

这个思路比较简单易懂,总之就是车多的路段绿灯时间长,反之绿灯时间短,红灯时间长,可以按照流量的比例分配时间,比如如果南北向的流量是东西方向的二倍,那么南北向绿灯时间就可以设定为东西方向的二倍,而红灯时间是二分之一。

因为道路交通状况是时刻改变的,所以不只编写一次程序,要根据道路情况进行程序的切换,所以要准备多种算法不断进行切换。

这种方式属于比较死板的方法,只通过准备一些固定的程序进行切换,为此需要对城市道路交通状况作出各种各样的假设,想到尽可能多的情况,或者说测量到尽可能多的数据,准备尽可能多的程序,并且不断针对可能出现的新情况不断增加新的交通灯程序,执行起来一定是费时费力的,实际上更好的方法就是能灵活地改变交通灯程序本身,利用别的程序调用接口根据情况改变交通灯程序本身,这种情况只凭借SUMO恐怕是很难做到的,毕竟XML不属于执行语言,只是一种描述的方式,可以使用C,C++,JAVA等,这里因为水平有限,无法做到这么灵活,同样无法进行大数据的整理,更不可能去做什么道路车流量监测就是了。

所以只打算做两个交通灯程序进行切换,来表明这种方法是可以实现的,设定两种车辆流,一种是南北方向流量大的,一种是东西方向流量大的,因为我们模拟的场景只是一个十字路口,只存在这两种方向,所以只是设定了这两种车流,至于比例设定的比较极端,这样更加明显,实际应用的时候可以根据实际情况进行调整,然后据此将红绿灯设定,跟前边所讲述的方法一样,该方向车辆比较多的时候就采用绿灯时间增加的方法,该方向车辆比较少的时候,采取减少绿灯延长红灯的方法。

二、编写交通灯程序

算法明确了之后就可以编写交通灯程序了,根据之前的车辆的流定义文件,打算在南北方向编写一个绿灯比较长的程序,交通灯程序同样是一个XML文件,其中一个子元素可以认为是一个相位,一个相位指的是一个交通灯状态,一个交通灯状态的意思是说,在这段时间内,所有交通灯状态按照该相位所描述分布,为了描述方便,可以进行交通灯编号,前边建立地图文件有提及,南北向是5个交通灯,东西方向是4个交通灯,所以一个相位的信号一般是5454,下面介绍交通灯程序各个属性。

写好了交通灯程序之后就是要考虑进行交通灯程序的切换了,很简单,SUMO为我们提供了这样的功能,将交通灯程序和切换程序放在同一个XML文件里面。

三、编写配置文件

仿真要运行,需要编写一个配置文件,仿真既不接受地图文件也不接受车辆模型文件,当然更不接受交通灯程序了,所以实际运行的是一个调用这些文件的配置文件cfg格式,就像C里边的主函数一样,会调用其他文件所定义的各种各样的函数,这里的配置文件就起到这个作用,将所有文件整合出来,调用执行,编写如下配置文件,其中文件路径要根据自己文件的实际路径编写。

四、结论以及展望

根据交通状况适当地切换交通灯程序,从仿真结果来看,没有造成大量车辆堵塞的情况,这说明合理改善交通灯程序有助于交通疏导,缓解交通堵塞,大量汽车滞留现象,这样的方法确实有一定的可行性,但是于此同时也有很多不足,本文中只实现了一次交通灯程序的切换,如果想要将这种方法使用在实际的十字路口,已经各种各样的路口,相信需要非常多的程序进行切换,并且需要实时监测道路上的状况,最好是能通过网络服务器,将道路的状况实时上传的服务器端,然后根据实际的情况执行不同的程序,这样的方式首先大量的交通灯程序需要耗费大量的资源,甚至可能需要数据库来维持,成本很高,并且使用服务器监测需要普及客户端设备,普及设备也是需要耗费巨大成本,现实生活中已经慢慢开始对车辆进行监测,但是仍然不够普及,这方面还需要慢慢发展。

而在本次仿真实验中,没能实现SUMO和网络模拟器NS3的连接,非常遗憾,没能实现本来基于车车通信的目的,实在是迫于时间有限以及资料的缺失,所以只是做出了這样一个切换程序,来实现了对十字路口的一个略微灵活的控制,更进一步的控制必然需要通过其他的方式来完成。

如果能够实现动态的交通灯程序那么是最好的,首先,我们需要监测道路的流量情况,这点在SUMO中使用dfrouter探测器工具便可以实现,并且需要将监测器的数据实时上传服务器端,这点可以使用SUMO连接NS3或者其他网络模拟器,使用TracI协同使用SUMO和NS3,将数据实时上传,就可以做到随时获得最新的数据,然后根据数据编写算法,动态的改变交通灯程序,或者说根据情况编写一个动态的交通灯程序,利用python调用SUMO的api接口然后通过其他可执行语言进行交通灯算法的编写,实现动态交通灯程序,具体方法没有尝试过,如果希望能够做出真正灵活的,动态的,基于车车通信的交通灯控制程序,相信这些都是可以研究的。

并且我们希望能够取代这样的交通灯,通过车车通信,实时发布指令,通过私人终端通信,根据现场情况可以决定是否通过,并且决定优先级,根据优先级决定先后顺序,但是这样的方法一来终端难以普及,二来需要人们的自觉性,出现事故之后责任追究更加复杂,所以未来会如何发展还需要人们不断努力钻研。

猜你喜欢

控制交通
繁忙的交通
新交通 心沟通
小小交通劝导员
交通拯救人、关注人、爱护人
阅读理解三则