交通信号控制仿真系统开发.docx
《交通信号控制仿真系统开发.docx》由会员分享,可在线阅读,更多相关《交通信号控制仿真系统开发.docx(14页珍藏版)》请在冰豆网上搜索。
交通信号控制仿真系统开发
Preparedon22November2020
交通信号控制仿真系统开发
摘要
随着我国经济的增长,人民的生活越来越好。
汽车作为一种代步工具,得到了许多人的青睐,很多人都买了车,这直接导致了城市的交通压力剧增,城市道路经常会出现交通堵塞的情况。
交通事故的频发时刻在提醒着我们需要一个更加智能的交通控制系统。
随着计算机的普及,各行各业在日常的生产中依赖于计算机的情况越来越普遍。
智能交通也有了一席之地,利用计算机技术来控制交通逐渐演变成了新型的交通控制方式。
在一个交通控制方案正式投入使用之前,需要对其可行性进行精准的可行性分析。
否则,如果这个方案有错误,将会直接带来巨大的经济损失,以及对人民的生命安全带来巨大的威胁。
在这样的前提下,智能交通控制系统的仿真就应运而生了。
智能交通仿真可以在无真人参与的情况下,实际模拟出交通运行的真实情况,极大的方便了交通控制方案的可行性的检验,并且可以节省许多成本。
【关键词】交通压力计算机交通控制仿真
Abstract
WiththedevelopmentofChina’seconomy,people’slifebecomesbetterandbetter.Asatooloftransportation,vehiclesarebecomingmoreandmorepopular.Manypeopleinourcountryhavecarswhichdirectlycausethedramaticincreaseofthetrafficpressureandmanytrafficjamsinourcityeveryday.Manytrafficaccidentsremindusthatweneedamoreintelligenttrafficcontrolsystem.Withthepopularityofcomputers,relyingonusingcomputersinourdiversedailyproductionswillbemoreandmorepervasive.Intelligenttransportationalsocanplayaroleinusingthetechnologyofcomputertocontrolthetransportationwhichisbecominganewwaytocontrolthetraffic.Beforeanewtrafficsolutionisputtingintorealityusing,weneedtodolotsofanalysisaboutitsfeasibilitywhereasifthissolutionisnotcorrect,itwillbringusahugeeconomicloseandatthesametimeitisabigthreattopeople’slife.Inthiscondition,thesimulationsystemoftraffichasbeingcomeupwith.Thesimulationsystemoftrafficcanreallysimulatethetrafficoperationwithouttheparticipationofhumanbeingswhichisnotonlyveryconvenienttotestthefeasibilityofthecontrollingtrafficsolutionbutalsocansavelotsofthecost.
【keywords】trafficpressurecomputercontrolsimulation
前言
随着国人的经济水平不断的增长,人们对生活品质的要求越来越高,越来越多的人选择购买汽车来作为代步工具。
城市汽车的数量不断地变大,城市交通也面临着前所未有的巨大挑战,交通压力的剧增所带来的交通问题正逐渐地引起人们的注意。
许多地区实行交通管制的策略来减轻交通压力,比如一些地区实行的车辆限号,来降低交通流量。
但这种方式并不能从根本上解决交通堵塞的问题,真正需要的还是一个能自动控制城市交通的解决方案。
红绿灯作为交管部门管理城市交通的一种重要工具,在面对今天的交通堵塞问题时,需要具备更多的功能,以及更加智能化的管理方案。
目前许多的红绿灯的参数其实都是预先设置好的,无论车流量有多大,红绿灯的时间并不能根据实际的情况作出相应的调整,还有一些红绿灯的时间只是根据不同的时间段来对亮灯的时间作出调整,但这样的方案也相当于是固定的设置,并不能对实时的车流进行有效的控制,管理起来十分死板,使得城市的交通控制与调节并不能达到最优的效果。
计算机技术的出现解决了许多人力不能解决的难题,计算机在交通控制方面的应用,极大的促进了交通控制的改进。
计算机仿真在交通控制上的应用,有效地提高了对交通控制方案的可行性分析的速度,并且也节约了很多的成本。
智能交通控制成为了城市交通控制系统的主要部分。
本系统主要是对城市交通信号的控制和仿真,依据实时的车流量信息,对十字路口的红绿灯时间进行智能化的分析,并及时作出相应的调整,以解决交通的拥堵状况。
1相关技术介绍
C#介绍
面向对象技术是一种软件开发和程序设计技术。
所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。
封装、继承、多态是面向对象程序的主要特征。
正是这些特征使程序安全、可靠、可重用、易维护。
C#语言是2001年微软公司推出的可以在.NET平台的网络环境中开发软件的新一代面向对象的编程语言。
它采用虚拟机技术使其具有强大的可移植性和安全性,为建立复杂的、可扩展、可移植的WEB应用提供了强有力的支持,被称为一种划时代的程序设计语言。
.NET提供了基于组件的多层体系结构,使得C#应用程序兼有组件技术和多层体系结构的优点,编写十分简单,因为业务逻辑被封装成为可复用的组件,并且.NET服务器以容器的形式为所有组件类型提供后台服务,使开发者将精力集中在业务逻辑的开发中,而不必关心底层细节。
对于最终用户来说,.NET技术的实现将使计算机的功能得到大幅度的提升,而计算机的操作却变得更加简单。
他们将完全摆脱人为的硬件束缚,利用任何设备、通过任何系统、在任何时间、任何地点访问互联网的多维时空,并对其进行跨应用程序的集成。
对于网络开发来说,借助.NET技术所提供的基于XML的松散偶合技术,真正的将应用程序逻辑分发在网络上,实现跨平台访问。
交通仿真
交通仿真是智能交通运输系统的一个重要组成部分,是计算机技术在交通工程领域的一个重要应用,它可以动态地、逼真地仿真交通流和交通事故等各种交通现象,复现交通流的时空变化,深入地分析车辆、和、道路以及交通的特征,有效地进行交通规划、交通组织与管理、交通与物资运输流量合理化等方面的研究。
同时,交通仿真系统通过手段,能够非常直观地表现出路网上车辆的运行情况,对某个位置交通是否拥堵、道路是否畅通、有无出现交通事故、以及出现上述情况时采用什么样的解决方案来疏导交通等,在计算机上经济有效且没有风险的仿真出来。
交通仿真作为仿真科学在交通领域的应用分支,是随着系统仿真的发展而发展起来的,它以、信息技术、系统工程和交通工程领域的基本理论和专业技术为基础,以计算机为主要工具,利用系统仿真模型模拟道路交通系统的运行状态,采用数字方式或方式来描述动态交通系统,以便更好地把握和控制该系统的一门实用技术。
2交通信号控制仿真系统介绍
模块介绍
本系统主要是对交通信号的控制和仿真,一共分为四个模块:
1)控制模块(交通信号灯模拟);
2)车辆模块(车辆行为模拟);
3)优化模块(统计实时车流量,给出相应的优化方案);
4)数据读取模块(接受用户自定义的配置方案)。
各个模块之间的关系见图:
图模块关系
需求分析
根据用户提供的数据(各个路口的红绿灯时间),来控制仿真信号灯的颜色变换,实现红绿灯的交替变化;
根据优化之后的数据,对红绿灯的时间作出实时的调整,以达到交通流的智能控制;
根据不同的交通灯颜色,控制车辆的行进(红灯停,绿灯行)。
模拟车辆在道路上的运行情况,可以移动,在到达路口时可以转向,服从交通灯的控制。
实时统计各条道路上的车流量信息,并根据车流量实时调整交通灯的参数。
能接受用户自定义输入的数据(各个路口的红绿灯的时间信息),判断用户输入信息的合法性,若用户无输入,则采用系统定义的默认时间方案。
3交通信号控制仿真系统概要设计
原理介绍
现代城市交通信号灯大多数采用的都是智能化的控制系统,而智能化的交通控制系统就需要对道路信息进行实时的监控,根据实时的路况信息调整交通信号灯的数据,从而达到灵活的控制车流的效果。
然而现代城市的道路情况十分复杂,对路况信息进行采集的方式主要有两种。
一是采用视屏技术,通过安装在道路上的监控探头发送回来的视屏数据,进而对路面上的车辆信息进行统计和分析。
另一种就是利用传感器技术,在道路上铺设一些传感器,通过这些传感器来检测通过的车辆,然后将信息反馈到中心,中心再将数据进行处理。
最后控制中心将各项数据进行整合,判断是否有交通堵塞或是可能发生堵塞的情况,智能的调节交通信号灯的状态和参数。
在我们的仿真系统中
(1)每一个车都有自己的地理化信息(即仿真车辆在整个图形界面上的坐标);
(2)控制模块通过对车辆模块的扫描可以获取到每一辆车的各项信息,以此判断车辆位于哪条道路,以及统计道路上的车流量的多少;
(3)控制模块将获取到的车流量信息发送给优化模块,优化模块对车流量信息进行计算和处理,然后转换成交通灯的参数,并将其传输到数据读取模块;
(4)数据读取模块再将数据传输到控制模块,以此来改变交通灯的数据;
(5)车辆通过读取交通灯的状态信息,来决定能否运行。
工作流程图
图系统工作流程图
4交通信号控制仿真系统详细设计
设计目的
现代城市的交通灯大多采用智能控制,目的是为了能实时根据道路上的车流量信息调整交通灯的参数信息,以达到智能灵活地控制交通流的效果。
在一套智能的交通解决方案正式投入使用之前,需要对其可行性和准确性进行严密的分析和测试。
这就需要一个能够真实模拟出道路上的情况的仿真系统软件,来在计算机中仿真模拟出该方案的运行效果。
本次设计为交通信号控制仿真系统开发,其总体上就是要模拟出道路上的各种状况,并能智能的调节交通信号灯的参数,以解决道路的交通堵塞问题,检测一套交通解决方案的正确性和可行性。
模块设计
汽车作为一种交通工具,极大地方便了人们的日常出行。
汽车在道路上的行为大致有以下几种:
(1)车辆的行驶;
(2)在路口时可以转向;
(3)在路口时根据交通灯的状态来判定是否能继续行驶;
(4)前方有障碍物时,车辆需要减速;
为了能在软件中模拟出汽车,所以必须对其进行抽象化,将汽车作为一个类来处理。
汽车所必需有的一些属性为:
车速、车当前的位置、车移动的方向。
为了设置以及获取这些属性,就需要对相应的属性设置接口函数。
在设计中采用picturebox控件来模拟表示车辆。
另外还有一点,在道路上的车不能只是一个,需要模拟出多个车载道路上的运行情况就需要一个能够将这些车存储起来的数据结构。
这里选取list作为存储汽车群的数据结构。
因为list在频繁增加或者删除元素方面有很大的优势,恰恰能够使用我们软件中的需求。
(1)产生车辆:
一共有16个点作为车的起始坐标,通过随机数来决定车辆产生在哪个点,在主框架中通过一个定时器来不间断的产生出车辆。
(2)车辆转向:
主干道上的车可以向前直行或者左转,副道上的车可以右转或者直行。
在车辆到达转向点时通过获取0或1两个随机数来决定车辆接下来的行驶方向。
(3)车辆减速:
车辆判定其行驶方向上与前方的车辆之间的距离是否小于安全距离,若是,则车辆将自己的速度置为与前方的车辆一致。
(4)车辆行驶:
根据车辆的方向来决定车辆朝着哪边行驶,若车辆处于转向,则车辆先执行转向动作,然后再继续行驶。
车辆行驶时,根据当前的速度以及方向来将车辆的当前坐标进行加减操作。
图车辆模块流程图
产生车辆:
publicCreateCar(MainFormtheForm)
{
formSize=newSize,;
carPos=bornPos();etDir()==0)
{
if(cars[i].getCarPos().X==/3-20)
{
if(cars[i].getCarPos().Y==/3+10)
{
if(0,2)==0)
{
cars[i].setDir(0);
}
else
{
cars[i].setDir
(2);
}
}
if(cars[i].getCarPos().Y==/3)
{
if(0,2)==0)
{
cars[i].setDir(0);
}
else
{
cars[i].setDir(3);
}
}
...
}
车辆减速:
etCarPos().X-cars[j].getCarPos().X)<=distance&&cars[i].GetLane()==cars[j].GetLane())
{
if(cars[j].getSpeed()>cars[i].getSpeed())
{
cars[j].setSpeed(cars[i].getSpeed());
}
}
elseif(cars[i].getCarPos().Y-cars[j].getCarPos().Y)<=distance&&cars[i].GetLane()==cars[j].GetLane())
{
if(cars[j].getSpeed()>cars[i].getSpeed())
{
cars[j].setSpeed(cars[i].getSpeed());
}
}
}
}
本系统主要是针对交通信号灯的控制,所以参数设置中只涉及关于交通信号灯的设置。
用户可以根据自己拟定的交通信号灯控制方案,对相应的路口的交通灯的参数进行设置。
另外数据设置还可以接受优化模块传递过来的参数进行自动设置,若用户和优化模块都没有传递参数,则采用系统默认的数据。
将信号灯的红灯和绿灯持续的时间参数化,并将其作为信号灯的一个属性,在类中定义修改这些属性的接口。
在主窗口中设计一个按钮,当点击按钮时,弹出一个窗体,用户可以在该窗体中输入自己拟定方案的各项数据。
若在程序运行中需要设置参数,则在调整之后需要重新加载红绿灯的时间参数。
本部分不涉及算法,只是需要在主窗口和各个模块之间传递数据。
具体传递过程见下图:
图数据传输
ackColor=;
lightsA[2].BackColor=;
lightsA[4].BackColor=;
lightsA[6].BackColor=;
}
if(time==RedTimeA+YellowTime)ackColor=;
lightsA[6].BackColor=;
}
if(time==GreenTimeA+RedTimeA)ackColor=;
lightsA[2].BackColor=;
lightsA[4].BackColor=;
lightsA[6].BackColor=;
}
if(time==GreenTimeA+RedTimeA+YellowTime)ackColor=;
lightsA[6].BackColor=;
lightsA[0].BackColor=;
lightsA[2].BackColor=;
}
}
...
5软件运行结果
打开软件开始仿真
打开软件运行程序,点击加载路口图标,将路面信息在窗口之中绘制出来,如图所示:
图加载路口界面
参数设置
点击参数设置按钮,弹出参数设置界面如图所示,用户可以根据自己拟定的交通信号灯参数方案手动设置交通信号灯的参数。
若用户未输入参数,则会提醒用户参数未设置,采用系统默认参数。
若用户输入的参数不合法,则会提醒用户输入参数不合法,需要重新设置参数。
用户还可以只输入A路口的南北向红灯时间,然后点击统一设置,则会将其他的所有参数设置为与A路口南北向红灯时间相同的数据。
图信号灯参数设置
统计信息
统计信息分为两种,一种是对道路上所有车的统计。
会显示所有道路上的车辆总数以及每一条道路上的车辆的总数。
这种统计信息通过点击统计信息按钮来弹出一个窗口,动态的显示道路上的车流量信息。
具体如图所示:
图道路车辆统计
另一种统计信息是统计每个路口的各个相位的车辆总数,这种统计信息通过窗体的状态栏直接显示在界面上,方便用户查看,如图所示:
图各相位车辆信息统计
系统使用帮助
初次使用本软件的用户可以通过点击界面上的帮助信息按钮来获取本软件的使用帮助,以及查看关于本系统的相关信息,如图所示:
图系统帮助信息
系统运行情况
用户在打开本程序之后,需要先点击加载按钮将路面加载到主界面中,然后点击开始按钮进行仿真。
在点击开始按钮之后,车辆会随机在四条道路上生成,并按照指定的方向和速度运行,如图所示:
图系统运行情况
6系统概述
系统基本信息及功能概述
本系统为交通信号控制仿真,以道路上的车辆,交通信号灯为模型,实现在计算机中的模拟。
以实现路面状况在计算机中的仿真模拟。
系统主要功能为模拟车辆移动、转向、停止的动作;模拟交通信号灯:
红灯→绿灯→黄灯→红灯,颜色交替变换的行为;统计道路上的车流,智能调节交通信号灯的参数。
系统开发工具介绍
开发平台:
Windows7;
开发工具:
VisualStudio2012;
开发语言:
C#;
运行环境:
Windows7;
总结
本次毕业设计用时3个月,在老师、同学的指导和帮助以及自身的努力学习之下,到现在总算是圆满地完成了。
回想做此次毕业设计的整个过程,有很多的感想,其中有苦但也有甜,不过人生的乐趣不就在于此吗!
在没有接受毕业设计任务之前,我觉得毕业设计就只是对大学期间所学知识的一个汇总,将所学知识全部融入其中,但是通过此次的毕业设计我发现我的想法有些太过于片面了。
毕业设计并不仅仅是对前面学习知识的一个总结和检验,同时也需要我们去了解和掌握更多的新知识。
通过此次毕业设计,我收获了许多的知识。
首先,我对软件的基本设计流程有了更深一步的了解和认识;其次,对C#这种软件设计语言也有了一定的理解,熟悉了C#中一些常用组件的使用;再次,对交通信号控制也有了一定的认识,拓宽了我的知识面;最后,通过本次的毕业设计,对于我的编程技术又有了进一步的提升,对于以后的工作有很大的帮助。
这次毕业设计对于我的文档整理能力、解决问题的能力也有着相当大的提升。
同时,这次毕业设计也充分显示出了自己在技术层面的不足之处。
具体表现在对框架的运用不熟练,对C#编程语言的掌握不到位,软件开发流程并不熟悉,软件开发经验的缺乏等等。
由于这些原因,直接导致在前期的开发和学习过程中进度缓慢,花了大量的时间却并没有多大的成效。
最终在老师的指导和自己的努力学习之下,才逐渐走上了正轨。
但由于时间有限,以及自己知识的不足,目前只实现了系统的基本核心功能,有很多的地方还需要进一步的完善,期待以后会有足够的时间和充足的基本知识能够将系统做的更加完善。
本次毕业设计既是对之前所学知识的检验,同时也是一个学习掌握新知识新技能的机会。
通过此次的毕业设计,拓宽了自己的知识面,提高了自身的技术,但同时也暴露了许多的不足,这也更坚定了我要学习更多知识的信念。
此次设计由于时间有限,以及自身经验能力的不足,存在着许多有待改善的地方,我相信在接下来的时间里,我会学习到更多的相关知识,在工作中做的更好。
致谢
此次毕业设计,是在许多人的帮助之下才能得以顺利完成的,在此我对那些帮助过我的人们表示衷心的感谢。
首先,我要感谢我的指导老师陈克力老师。
在做毕业设计的这3个多月时间里,由于自身的知识不足以及对软件开发的经验缺少,以至遇到了许多的难题,是老师悉心的指导和平时对我的严格要求,才能让我顺利完成任务。
每次的导师见面会,老师都会对我们遇到的各种问题进行一一解答,并为我们提供更好的建议,让我们学到了许多书本上学习不到的知识。
同时也会针对我们设计中的缺陷和漏洞提出问题,为我们进行改进和修改提供了正确的方向。
在此,对陈克力老师的辛勤工作和悉心教导表示最诚挚的感谢!
其次,我要感谢大学中的同学们,在我遇到困难时,总会有热心的同学为我提供建议和帮助,并且在交流中也给了我许多的灵感,为后期的设计打下了良好的基石。
同时也提高了我在与他人沟通方面的能力。
最后,我要感谢大学里的任课老师们,是你们为我筑起了坚实的理论基础,让我能在实践中更快速高效的解决问题。
感谢你们的辛勤指导和教育,让我能够具备充足的知识和能力,去解决工作和生活中的各种难题。
参考文献
[1].软件工程..2009
[2]隋亚刚.城市智能交通控制理论与应用.中国水利水电出版社.2011
[3]李士勇.智能优化算法原理与应用.哈尔滨工业大学出版社.2013
[5]蒙祖强.C#程序设计教程.清华大学出版社.
[6][美]()..NET开发经典名着·WPF编程宝典:
使用C#2012和.NET(第4版).清华大学出版社.
[7]于泉.城市交通信号控制基础.冶金工业出版社.
[8][美],[美],[美]等.设计模式:
可复用面向对象软件的基础.机械工业出版社.
[9],,.城市区域智能交通控制模型与算法.华南理工大学出版社.
[10][美],,,#本质论(第4版).人民邮电出版社.
[11]廖明宏.数据结构预算法.高等教育出版社.