基于单片机模糊控制交通信号灯.docx
《基于单片机模糊控制交通信号灯.docx》由会员分享,可在线阅读,更多相关《基于单片机模糊控制交通信号灯.docx(19页珍藏版)》请在冰点文库上搜索。
基于单片机模糊控制交通信号灯
基于单片机模糊控制交通信号灯
摘要
本系统采用MSC-51系列单片机和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,进行交通路口的管理。
它用简单的硬件电路模拟交通信号灯的交替变换,实现红绿灯循环点亮,用LED数码管作为倒计时指示。
本次设计中增加了车流量检测电路,运用模糊控制算法来自动调整红绿灯时间,实时的控制当前交通灯时间使LED显示器进行倒计时工作并与状态灯保持同步,在保持交通安全的同时最大限度的提高交通能顺畅交替运行,大大提高交通运输的运行效率,还可以减少交通事故,节省能源消耗,具有巨大的现实意义。
关键词:
路口管理;模糊控制;51单片机;车流量检测;交通灯
Abstract
ThissystemusesMSC-51seriesmicrocontrollerand8255Atodesignthetrafficcontrollertomanagethetrafficroad.Itusessimplehardwarecircuittosimulatethealternativetransformationofthetrafficlightsandtorealizethecircularilluminationofthelights.WeusetheLEDasthecountdowninstructions.Inthisproject,weaddthetrafficdetectioncircuit,whichusesthefuzzycontrolalgorithmtochangethetimeofthetrafficlightsautomaticallytocontrolthetrafficlightstime.ThisdesigncanmakesurethattheLEDkeepsthepacewiththestatelamp.Whatismore,whileitcankeepthetrafficsafe,atthesametime,itcanmakethetrafficrunningsmoothly,operationefficient,andalsocanreducethenumberoftrafficaccidents,saveenergyconsumption.Aboveall,thissystemhasgreatrealisticsignification.
Keywords:
Intersectionmanagement;Fuzzylogiccontrol;MCU51;trafficdetection;Trafficlight
一、绪论
1.1交通灯研究的背景和意义
城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
智能化和集成化是城市交通信号控制系统的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口。
把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展[1]。
从长远来看,该研究具有巨大的现实意义。
1.2国内外交通灯研究的发展概况
随着经济的发展,交通问题已经日益成为世界性的难题。
交通系统正是解决这一问题的途径之一。
它对城市交通流进行智能控制,可以使道路畅通,提高交通效率。
合理进行交通控制可以对交通流进行有效的引导和调度,使交通保持在一个平稳的运行状态,从而避免或缓和交通拥挤状况,大大提高交通运输的运行效率,还可以减少交通事故,增加交通安全,降低污染程度,节省能源消耗,本文就是通过对交叉路口交通信号的智能控制,达到优化路口交通流的目的[2]。
交通系统作为一个时变的、具有随机性的复杂系统,传统的人为设定多种方案或是建立各种预测模型均比较困难。
城市交通控制研究的起源比较早。
早在1977年,Pappis等人就将模糊控制运用到交通控制上,通过建立规则库或是专家系统对各种交通状况进行模糊控制,并取得了很好的效果。
虽然模糊控制能有效处理模糊信息,但是产生的规则比较粗糙,利用规则表查表进行控制,运算速度虽然比较快,但没有自学习功能。
而且这些研究有些以相序固定为前提。
不能保证相序与实际交通流状况的一致性,影响了绿灯时间的利用率。
有些研究则提出了可变相序的模糊控制方法,提高了绿灯时间的利用率,弥补了相序固定的缺点,但同时也存在一些不足。
利用模糊控制智能控制技术进行交叉口信号灯控制能取得比定时控制与感应控制更好的效果,是今后单交叉路口信号灯控制的主要研究方向[3]。
二、系统的总体方案设计与分析
2.1交通灯总体设计的描述
本系统设计是基于模糊控制理论的单片机控制交通灯系统。
采用AT89S51单片机作控制器。
根据实际生活中十字路口红绿灯交替变换的特点,本系统的硬件电路主要由单片机控制电路、车流量检测电路以及时间和红绿灯显示电路。
为了使十字路口在最短的时间内达到最大的车流量,即达到最佳的性能和最高的效率,我们采用在各个路口检测过往的车流量,通过车流量来决定红绿灯的点亮时间。
当前比较流行的车流量检测器件就是一种自感式的车辆传感器。
它的工作原理是当车辆经过传感器时,引起其自感的变化。
本系统结合生活实际,主要实现人行道、车辆直行、车辆左转和右转、紧急情况处理、根据车流量自动调整时间等功能。
红灯亮表示车辆、行人禁止通行,绿灯亮表示车辆行人可以通过。
通行倒计时显示采用LED数码管,指示灯用发光二极管,LED显示采用动态扫描。
特殊紧急车辆通行采用实时中断完成。
车流量变大时,可通过模糊控制结果(本系统中采用拨断开关)来改变十字路口的各个方向的通车时间,使交通更顺畅,减少堵塞。
根据以上介绍,得到系统硬件框图如图2.1所示。
图2.1系统硬件框图
2.2交通灯控制系统的工作原理
2.2.1十字路口调度系统模糊控制器的设计
1.模糊控制系统的结构
模糊控制能避开对象的数学模型(微分、状态、传递函数等)。
可以说模糊控制器是一种语言变量的控制器。
模糊控制系统的示意图如图2.2所示,图中,虚线框中为模糊控制器。
其中
为系统设定值,y为系统输出值,它们都是清晰量。
e和
也是清晰量,E和U是模糊量。
从图2.2可看出,模糊控制器的输入是系统的偏差量e,在计算机控制系统中它具有确定值数字量。
经过模糊化处理,用模糊语言E来描述偏差,若以T(E)记作E的语言集合,则有
T(E)=(NB,NM,NS,ZE,PS,PM,PB)上式表示将E分为7段,其中:
NB负大(negativebig)NM负中(negativemedium)
NS负小(negativesmall)ZE零(zero)
PS正小(positive)PM正中(positivemedium)
PB正大(positivebig)
图2.2模糊控制系统结构
(1)模糊化
模糊化是将模糊控制器输入量的确定值转换为相应模糊语言变量值的过程,此相应语言变量值均由对应的隶属度来定义。
(2)模糊推理
模糊推理包括三部分:
大前提、小前提和结论。
大前提是多个多维模糊条件语句,构成规则库;小前提是一个模糊判断句,又称事实。
以已知的规则库和输入变量为依据,基于模糊变换推出新的模糊命题作为结论的过程叫做模糊推理。
(3)清晰化
清晰化是将模糊推理后得到的模糊集转换为用作控制的数字值的过程[4]。
2.2.2路口管理系统模糊控制器
一般情况下,红绿灯设在十字路口或在多干道岔口上,目的是为了调整岔口的交通秩序。
采用定时控制经常造成道口有效时间应用的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
在人工控制时,交通警察不断地观察十字道口两个方向的车辆密度和流速,并由此决定是否切换红绿灯,以保证最佳的道路交通控制状态。
用常规闭环控制技术,在自动红绿灯管理中达到人工控制的最佳状态是十分困难的,这是由于十字路口交通动态模型是很难用数字方式表达的,交警的判断决策过程也难用简单的程序实现,所以我们采用模糊控制来解决自动红绿灯的最佳控制问题。
1.工作原理
根据前面对模糊控制器的介绍,实现红绿灯模糊控制必须解决以下几个问题:
(1)对当前十字道口的交通状况的检测。
(2)输入量的模糊化:
确定每一输入量的论域,模糊子集和从属函数。
(3)输出量及其模糊化:
输出量论域、模糊子集和从属度函数。
(4)设计将输入映照到输出的模糊规则。
决定被激活的模糊规则的组合方式和清晰化处理,生成精确的输出控制信号。
2.系统采集两个输入量
(1)绿灯方向车流量——单位时间通过道口的车辆数量。
(2)红灯方向排队等候车辆数。
为了采集上述数据,在十字道口的四侧共设置了8个传感器。
传感器的设置如图2.3所示。
图2.3传感器的设置
红灯期间排队等候的车辆数量有两部分构成,其一为上次绿灯期间遗留下来的车辆。
返端传感器与道口距离100米,假设车辆平均长度为n,则N内可能滞留的车辆最大数量为N/n,如20辆,因此,变量“红灯方向排队等候车辆数”的论域为(0-20),它将分为三个模糊子集:
少、中、多,其从属度函数设计如图2.4所示。
图2.4红路灯期间车辆数的隶属函数
3.输出及其模糊分类
(1)南北向绿灯时间延时
(2)东西向红灯延时时间
现有红绿交通灯自动系统设定绿灯时间为常值,通常每一秒方向绿灯35秒。
现将每一方向绿灯时间分为两部分,其一为固定的35秒。
作为道口状态参数采集时间,其二为根据当前状态,由模糊逻辑决策的延时,最大延时时间是随着道口交通情况而变化的,上限为20秒,结果每一方向绿灯时间间隔为30-55秒。
由此,绿灯时间延时
、
的论域定义为(0-20),将其分三个模糊子集:
T长、T中、T短。
输入量和输出量的论域、模糊子集、从属度函数的设计关系、整个系统的控制效果与性能,需要根据对整个控制系统的要求,采用试探——修正法设计,与设计者的经验有密切关系。
[6]
4.模糊规则的确定
此系统有两个输入和一个输出。
在没有任何数据资料的情况下,我们只能根据经验设计其模糊规则[7]。
其结构如表2-1所示。
表2-1模糊规则结构表
根据以上得模糊规则图,可以得出9条模糊规则,我们把它记为9种状态,如表2-2所示。
表2-29种模糊状态
2.2.3十字路口车辆通行模式
十字路口交通流在东南西北四个方向上均有左行、直行和右行三个车道车流。
为了确保交通的井然有序,十字路口车辆通行顺序如图2.5所示,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行。
在实际生活中,一般的右行车道总是亮绿灯的,但是为了便于行人过马路,故在一定的时间内会使右转绿灯跳变为红灯,以便于行人过马路。
在本次设计中,我们在直行车辆通过的一段时间内,同时也使行人过马路。
图2.5的S2和S4这两种状态在同一个时间段中四个方向都可以通车,这种状态可以在一定的时间内达到较大的车流量,效率特别高。
图2.5交通灯的四种状态
其中:
S1:
东西方向人行道禁止,南北方向人行道通行;东西方向红灯,南北方向直行绿灯。
S2:
东西方向右转绿灯,南北方向右转绿灯,南北方向左转绿灯。
S3:
南北方向人行道禁止,东西方向人行道通行;南北方向红灯,东西方向直行绿灯。
S4:
南北方向右转绿灯,东西方向右转绿灯,东西方向左转绿灯。
2.2.4交通灯的工作原理
本系统由AT89S51单片机控制,由8051单片机的定时器每秒钟通过P0口向8255A的数据口发送信息,由单片机的P1口和P2口显示红绿灯的点亮情况;由8255A的PC口显示每个灯的点亮时间。
P3.3口接有按钮开关,当有急行车需要通过时,按下此按钮,产生中断,系统使东西方向和南北方向所有灯都为红灯,当急行车通过后,系统恢复正常。
本系统增加了每次绿灯时间车流量检测的功能,由此改变下一周期时的绿灯持续时间,采用手动开关实现,用单片机的P3.0-P3.2来实现三种情况,具体见车辆检测电路部分。
三、系统硬件电路设计
3.1单片机最小系统外围电路
单片机的最小系统包括电源(地),晶振(一般使用11.0592M或者12M),复位电路等,有了以上三块内容,单片机就能够工作了。
3.1.1AT89S51芯片内部结构
1.中央处理器
2.存储器
3.定时计数器
4.并行输入输出(I/O)口
5.可编程全双工串行口
6.中断系统
7.时钟系统
3.1.2AT89S51单片机主要引脚功能
AT89S51单片机采用40Pin封装的双列直接DIP结构,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
其引脚图3.1如图所示。
图3.1AT89S51单片机引脚图
3.1.3看门狗电路
由于单片机控制器自身抗干扰能力较差,尤其在一些条件比较恶劣、噪声比较大的场合,常会出现单片机因受外界干扰,轻者导致系统内部数据出错,重者将严重影响程序的运行而死机,造成系统不能正常工作。
设置看门狗是为了防止单片机死机、提高单片机系统抗干扰性的一种重要途径。
考虑系统可靠性设计,满足苛刻环境下的正常运行,本设计中采用硬件看门狗电路,集成电路U2是一个看门狗定时芯片,此时我们采用型号为DS1232的芯片,其引脚如图3.2所示。
图3.2RS1232引脚逻辑图
它的结构很简单,只有8个引脚。
它的RST管脚与单片机的RST管脚直接相连,这样,单片机的复位被看门狗定时器DS1232掌握着。
DS1232的/ST管脚是看门狗定时器芯片的控制输入,它可与单片机的任意一个I/O口相连。
其连接如图3.3所示。
图3.3单片机系统与看门狗电路
图中的看门狗定时器TC1232的操作很简单:
如果单片机的P1.1没有在看门狗定时器溢出时间之内向/ST管脚输出一个下降沿,看门狗就会发挥作用,向单片机的复位端RST管脚输出一个复位信号使单片机复位。
通过硬件看门狗电路设计,可以有效防止运行程序进入死循环,从而保证系统不受恶劣天气及环境条件造成的干扰[13]。
3.2显示电路
3.2.1时间显示电路的设计
本系统采用8位的静态数码管显示。
LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。
在单片机应用中通常使用的是8段式LED数码管显示器。
8段式数码管分为8段:
A、B、C、D、E、F、G、P,其中P为小数点。
如图3.4所示。
图3.4LED管脚图
用单片机控制驱动LED数码管有很多方法,按显示方式分。
有静态显示和动态显示。
本次设计,我们采用静态显示即。
其公共端直接接地,各段选线分别与I/O接口线相连。
要显示字符,直接在I/O线发送相应的字码段。
常见的数字和字符的共阴极的字段码如表3-2所示。
静态显示结构简单,显示方便,要显图3.4LED管脚图示某个字符,直接在I/O线上发送相应的字段码。
3.2.2红绿灯的显示电路
由于本设计要实现车辆直走,车辆左、右转和行人通过等功能。
故在每一个方向上要设置直走红绿灯,行人红绿灯,左转红绿灯和右转红绿灯,总共四组。
即每个方向上有8个红绿灯,四个路口总共有32个红绿灯。
而十字路口只有两条通道:
东西、南北。
所以需要16个口来控制,此时,我们用单片机的P1口来控制南北方向的16个红绿灯,用P2口控制东西方向的16个红绿灯。
如图3.5所示。
图3.5LED显示电路
3.3车流量检测电路
一个完整的交通控制系统需要有一个准确、可靠的信息采集和监控系统,它将来自底层的实时数据收集起来,准确、迅速地通过高速信息传输网送交后台进行分析和处理。
新的控制决策再重新下载到各控制器中进行交通参数的优化。
交通控制系统的交通信息采集时由车流量检测器来实现的。
车辆检测器有多种,感应式检测器、红外线检测器等。
目前,市面上流行的一种车流量传感器是一种互感式的。
这种传感器实质上是一种振荡器,其谐振电感埋藏在车道中部,当车辆通过时,电感量变化引起振荡频率变化,由此而记录一次,即一辆车通过[15]。
由于条件限制,本毕业设计中将电路简化成手动方式,只用了拨断开关来代替,其基本思想是:
根据车流量,设定三个可选择的时间,即T小、T中、T大,时间分别设定为:
30秒、40秒、55秒。
那么就需要三个拨断开关,我们采用单片机的P3.0、P3.1和P3.2分别与开关K1、K2和K3连接来分别控制上述三种流量的时间。
即按下开关K1,即送出时间30秒。
定义外部开关的有效电平是低电平。
四、系统软件设计
4.1软件总体设计思想
系统软件设计主要思路为根据车流量的动态变化,运用模糊控制算法实现红绿灯时间的自动调整。
其控制程序主要分为以下几个模块:
初始化程序,主程序、模糊控制器程序、定时中断程序、信息显示模块和紧急车辆通行模块等。
主程序主要负责系统初始化和等待中断,定时中断程序主要负责数码管显示刷新和红黄绿灯各种状态切换。
主程序的框图如图4.1所示。
图4.1主程序的框图
4.2软件主要模块程序流程图
4.2.1系统初始化程序
主程序负责系统的初始化,系统初始化包括8051单片机的初始化,定时器、外部中断向量初始化以及设置交通灯工作的初始状态。
由于定时/计数器的各种功能是由软件来确定的,所以在使用它之前,应对其进行编程初始化。
初始化的主要内容是对TCON和TMON来编程,计算和装入定时计数器T0和T1的计数初值。
1.计数器初值计算
定时/计数器工作时,必须要给其送入计数器初值,这个值是送到TH和TL的。
它以加法计数,并能在从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为N和计数初值设定为X,那么可得到如下计算通式:
X=M-N
式中,M为计数模值,该值与计数器的工作方式有关。
在方式0时,M值为8192;在方式1时M为65536;在方式2时,M值为256。
由设计可知,定时器T0的工作方式为2。
2.软件延时
MCS-51的工作频率为2-12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序分析:
DELAY:
MOVR4,#08H延时1秒子程序
DE2:
LCALLDELAY1
DJNZR4,DE2
RET
DELAY1:
MOVR6,#0延时125ms子程序
MOVR5,#0
DE1:
DJNZR5,$
DJNZR6,DE1
RET
MOVRN,#DATA字节数数为2,机器周期数为1
所以此指令的执行时间为2ms
DELAY1为一个双重循环,循环次数为256*256=65536,所以延时时间=65536*2=131072us约为125us。
DELAYR4设置的初值为8主延时程序循环8次,所以125us*8=1秒
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
4.2.2模糊控制器程序
根据前面2.2.2节对此管理系统的模糊控制器设计得到的9种模糊规则和状态可以得到程序框图如图4.2所示。
图中的9种状态对应表2-2的结果。
其中,根据十字路口车辆多少对应的各个方向红绿灯亮的时间分别为T小=30s、T中=40s、T大=55s。
图4.2模糊控制器程序框图
4.2.3系统显示模块程序设计
1.信号灯显示模块
根据前面的介绍,发光二极管与单片机的接法如下表4-1所示。
表4-1发光二极管的接法
信号灯的控制流程如图4.3所示。
图4.3信号灯的显示流程图
4.2.4紧急状态控制模块
紧急情况用外部中断INTO控制,紧急情况结束后,再发一个终端来恢复以前的状态。
其流程图如图4.4所示。
图4.4紧急模块流程图
五、总结与展望
在完成本次毕业的工程中,我学习和了解了智能交通灯控制的原理和实现方式,以及它的发展现状。
了解了智能控制对社会科学的发展和社会生活发展有着强大的推动作用。
在设计过程中,我进一步巩固了单片机控制系统的设计方法,学习了单片机的输入和显示等模块,并能够熟练的设计与应用。
在软件编程的过程中,学会了软件的设计流程,逐步培养了良好的编程习惯以及各种模块的软件调试方法。
在整个系统的设计过程中,我深刻认识到,软硬件相结合的重要性。
同时,这次毕业实习也更锻炼了我的查找错误和分析问题的能力。
由于本人自身能力有限以及时间匆忙,本次设计还有许多地方做的不够完善,需要进一步修改及完善。
具体表现在实物没有做,只是设计和分析在理论阶段。
希望以后能够进一步学习VC的编程,然后将本系统进一步完善。
总之,本次设计的经历,让我受益颇多,培养了发现问题,分析问题和解决问题的能力。
也反映了我在某些方面的不足,希望自己能够在今后的学习中,去弥补自己的不足,不断去完善自己。
我相信此次设计对我今后的学习和工作具有很大的帮助。
设计中的不足及缺漏,希望老师和同学指正。
参考文献
[1]张虔铭.用单片机控制交通灯[J].电子报,2001.
[2]匿名.基于单片机交通灯智能控制系统研究[EB].
[3]李静.单交叉口交通灯信号模糊控制及其仿真[J].微计算机信息,2006,22(7).
[4]边海龙,孙永奎.单片机开发与典型工程项目实例详解[M].北京:
电子工业出版社,2008.
[5]李明.基于微波检测器交通灯智能控制系统的研究与设计[J].西南民族大学学报(自然科学版),2007,33(4).
[6]田海,薛艳春.基于模糊控制的十字路口交通灯控制系统[J].自动化与信息工程,2008,29(4).
[7]汪建,孙开放.一种实用交通灯单片机控制系统的设计[Z].武汉:
汪建,2001.
[8]马鸿文,陈松立.一种新型无线十字路口交通灯智能动态感应控制系统[J].微计算机应用,2009,30(4).
[9]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:
清华技大学出版社,2006.
[10]余锡存,曹国华.单片机原理及接口技术[M].陕西:
西安电子科技大学出版社,2000.7.
[11]李朝青.单片机原理及接口技术(第三版)[M].北京:
北京航空航天大学出版社,2005.
[12]杨欣.51单片机应用从零开始[M].北京:
清华大学出版社,2008.
[13]求是科技.单片机典型模块设计实例导航[M].北京:
人民邮电出版社,2004.
[14]阎石.数字电子技术基础(第三版)[M].北京:
高等教育出版社,1989.
[15]侯媛彬,袁益民.凌阳单片机原理及其毕业设计精选[M].北京:
科学出版社,2006.
[16]馀吉万.城市文通的计算机控制和管理[M].北京:
测绘出版杜,1985.
[17]张辉.8051单片机控制交通信号灯的方法研究[J].邵阳师范高等专科学校学报,2001,23(5).
[18]SJA1000CANControllerProductspecification.PhilipsSemiconductors,2000.
[19]PCA82C250CANControllerInterfaceProductSpecification.PhilipsSemi