杜瑞雪,丁洪伟,梁竹关,保利勇,何 敏
(云南大学 信息学院,云南 昆明 650091)
目前,私家车的拥有量呈爆炸式增长的趋势,造成城市交通拥堵严重。传统意义上的红绿灯控制方式,控制时间固定,导致道路的有效利用时间浪费,影响了通行效率,已经不能满足私家车拥有量日益剧增的需要[1]。为了解决这个问题,智能交通系统(intelligence transportation system,ITS)应运而生[2-3]。智能交通系统将各种先进科学技术综合运用到交通系统上,能极大地缓解实际生活中的交通压力,减少交通事故,提高车辆通行率[4]。
本文提出了一种基于FPGA的门限轮询控制模型的智能交通灯控制系统,基于FPGA硬件平台,以Verilog HDL编程语言设计实现交通灯的智能控制。由车辆检测器检测到通过路口的车辆到达率,根据变化的车流量信息,利用轮询模型计算相对应车辆的平均等待时间,依据交通规则及轮询理论,所得到的平均等待时间即为交通灯的绿灯时间长度。编程结果应用在Quartus II软件平台中,依据所检测到的不同到达率实时调整交通灯的红绿灯时长[5],最终实现交通灯的智能控制。
系统主要实现了以门限轮询控制模型为理论基础的智能交通灯控制。以十字路口的车辆交通状况为依据,实现主支干道的红绿灯状态转换与倒计时设计;依据轮询控制理论,将检测到的车流量作为控制参数,设计实现红绿灯的时长随车辆到达率的变化而智能改变;使用FPGA对模型进行设计实现。
1.1.1交通灯系统控制规则
在十字路口,分为南北和东西方向,要求两个方向各设置一组指示灯(红灯、黄灯和绿灯)。两方向共用一组数码管,数码管采用BCD编码形式以倒计时方式显示红、绿、黄3种灯的显示时间,其中南北方向的红灯显示时间为东西方向的绿灯显示时间和黄灯显示时间之和,东西方向显示时间同理。示意图如图1所示。
图1 交通灯系统控制规则
1.1.2交通灯系统状态
实际生活中,在十字路口,通常会有一方路口车流量较多而另一方车流量较少的情况,车流量较多的路口通常设为主干道,绿灯时长较长;车流量较少的路口通常设为支干道,绿灯时长较短。现设南北方向为主干道。根据交通灯的工作规律,交通灯南北和东西方向状态分配如表1所示。
表1 交通灯南北和东西方向状态分配表
两个方向的工作状态转换顺序分别为:
1)南北方向为绿灯→黄灯→红灯,再转为绿灯,依此循环;
2)东西方向为红灯→绿灯→黄灯,再转为红灯,依此循环;
显示时间规律:南北方向(东西方向)红灯时间=东西方向(南北方向)绿灯时间+东西方向(南北方向)黄灯时间。
1.1.3交通灯的状态转换
在系统设计中,智能交通灯工作状态由有限状态机FSM表示[6],由表1可知,系统主要有4个状态,用state表示,取值为0~3。交通灯系统南北方向的状态转换图如图2所示。
图2 交通灯南北方向状态转换图
图2中,lamp为对应各个状态的输出,lamp=001时表示绿灯亮,lamp=010时表示黄灯亮,lamp=100时表示红灯亮。东西方向的状态转换图同理可得。
图2中,temp为对应状态下显示时间倒计时结束的标志,为0表示倒计时结束,该状态对应的显示时间到。
初始化完成后,系统开始工作。当temp为0时,控制状态转换,系统从状态state=0开始,实现对交通灯的状态显示控制。0状态开始时,lamp=001,南北方向对应绿灯状态,此时东西方向为红灯。0状态完成后,会跳转到下一个状态,每个状态对应一种灯的显示。状态在系统控制下不断跳转,直到回到state=0继续下一次状态的更新。当temp为1时,设置为倒计时显示,当这一方向上的对应灯倒计时结束,状态发生变化,继续下一状态灯的时间倒计时,直到回到state=0开始下一轮的状态转换。
智能交通灯根据检测到的车流量数据得到车辆到达率,通过门限服务轮询系统理论计算得到排队平均等待时间,不同的车辆到达率计算出不同的平均等待时间,即不同的交通灯红绿灯时长,以此不断调整通行时间,实时改变路口的红绿灯时长,提高道路通行效率。
1.2.1系统基本结构
系统由信号源和控制显示模块构成,其基本结构框图如图3所示。信号源模块中包括车流量检测模块、中央控制模块和数据输出模块;控制显示模块由FPGA控制模块和显示模块构成。
图3 系统基本结构
车流量检测模块由环形线圈组成,在十字路口的各个方向上埋放用来感应车辆的环形线圈。车辆通过时,线圈中电路的电感量将发生变化,通过变化的电感量得到车辆通过时的脉冲信息;中央控制模块接收到上传的脉冲信息后进行统计分析,获取车流量数据;数据输出模块将车流量数据输出,得到车辆到达率。轮询系统模型根据车辆到达率通过 MATLAB编程仿真计算出相应的平均等待时间,将平均等待时间所对应的交通灯时间长度导入到FPGA系统中,系统根据得到的数据调整交通灯计时时间,最终在数码管中显示[7]。
1.2.2轮询系统模型
轮询系统模型在排队过程中队列的到达过程和服务时间均是随机过程,它可根据计算机收集处理的数据对十字路口进行建模分析。十字路口分为南北和东西两个路口,则可被认为是一个二相位交叉路口。依据轮询模型,十字路口交通灯控制系统可视为一个双队列单服务器门限服务轮询系统。其中,信号灯为服务器,两相位路口中的车道相当于缓冲队列,车道中的车辆可被视为服务对象,车辆按照作为服务器的信号灯所制定的规则通过路口,路口的车流量即车辆的到达率控制红绿灯等待时长,红绿灯按照服务规则对车辆依次服务[8-9]。
1.2.3双队列单服务器门限服务轮询系统
智能交通灯控制系统可看作是一个双队列单服务器门限服务轮询系统[10],如图4所示。图中,主干道的车辆到达率λ1较高,支干道车辆到达率λ2较低,到达率代表单位时间到达的车辆数目;β为智能交通灯系统的服务率,在本系统中设β为0.5,表示路口每通过一辆车需要2s时间;以黄灯的显示时间作为本交通系统的转换率,设为γ,γ=5表示黄灯显示时间长度为5s。
图4 双队列单服务器门限服务轮询系统模型
1.2.4系统排队模型和操作方式
本智能交通控制系统由一个服务器和两个队列组成,两个队列由服务器依照秩序查询服务。排队服务系统是一个离散时间状态下的求解过程,因此时间轴以时隙τ为单位时间[11-12]。
1)假设。
④队列的空间容量足够大,车辆到达数不会超过排队空间。
tn+1时刻系统的状态变量的概率母函数为:
i=1,2,,N
(1)
2)平均等待时间。
定义gi(j)为在tn时刻第i号队列车辆开始接受服务时,第j号队列到达的车辆数,通过对概率母函数求一阶导数可得:
(2)
定义随机变量xj,xk的联合矩为gij,k,通过对概率母函数求二阶导可得:
定义E(W)为路口平均等待时间,则关系式如下:
式中,ρ=βλ。
1.3.1FPGA控制系统模块设计
在进行车流量检测之后,实时检测数据存储在中央控制器中,存储后的数据利用门限服务轮询模型实时统计处理,然后输入到FPGA系统中进行设计实现。
根据实际情况,控制电路使用秒级单位。因此FPGA系统控制电路部分主要包括分频模块、红绿灯数据处理模块、FIFO模块、控制模块以及显示模块,如图5所示。
图5 FPGA控制系统模块设计
1)分频模块。
设置系统时钟为2MHz,分频模块将输入的2MHz基准信号转换为1Hz,以此为激励时钟作为后续控制模块的时钟源,驱动模块工作。
2)数据处理模块。
将得到的车流量数据利用门限轮询模型进行统计分析,分别得到车辆到达率,计算出红绿灯的等待时长,数据储存到ROM模块中,通过计数器读取。
3)红绿灯FIFO模块。
FIFO模块分为同步FIFO模块和异步FIFO模块,本系统因是同步时钟电路,则使用同步FIFO模块,以此来控制相同时钟下的数据读出。
4)控制模块。
控制模块主要控制南北和东西方向的红绿灯倒计时时间,倒计时结束时输出反馈信号到FIFO模块,当下次信号到来时读取下一个数据。其中主要用到状态机,实现路口交通灯工作顺序的自动切换。
5)显示模块。
采用BCD编码模式,主要为南北和东西方向路口六个灯的状态显示和倒计时时间。
1.3.2MATLAB控制设计与实现
根据前面的理论分析,设置交通灯系统的队列数N=2,服务率β=0.5,交通灯系统的转换率γ=5,交通灯系统的车辆到达率为λ,基于车辆到达率来计算理论平均等待时间,通过MATLAB设计实现,得到结果如表2所示。
表2 到达率与等待时间对应表
从表2可以看出,车辆的到达率越高,等待时间越长,二者之间呈非线性增长。当南北方向的到达率λ=0.91时,对应等待时间为25s,即南北方向的绿灯时长为25s,本系统中转换率设为γ=5,则东西方向等待时长为30s,即红灯时长为30s。
本系统采用QUARTUSII软件进行仿真设计,用VerilogHDL编程,实现智能交通灯的设计。其中,为了更契合实际交通情况,时钟需经过分频,实现秒级单位。系统工作时钟clk1周期为50μs;rst是复位信号,高电平正常工作;clk_out是分频后周期为1s的时钟工作信号源,得到的仿真结果如图6所示。
图6 交通灯控制系统时序仿真图
图6中,green是通过检测得到的车辆到达率,利用轮询模型计算得到的南北方向的绿灯时长,当到达率λ=0.93时,对应的等待时间为32s,即南北方向绿灯时长有32s允许车辆通过,由于系统转换时间γ=5,则与之相对的东西方向的红灯等待时长为37s;当车辆到达率λ=0.9时,相对应的南北方向的绿灯时长就减少为22s,东西向的红灯等待时间相应转变为27s,路口车辆继续智能调节;当到达率λ=0.92时,南北方向车辆通过时长加长到28s,对应的东西方向红灯时间增长到33s。车辆到达率的数据存储在绿灯的ROM存储模块中,通过FIFO模块控制读出到FPGA的控制模块,进入交通灯倒计时和信号显示;ctcn为绿灯的计数时间;red为东西方向的红灯等待时长;ctcn1为红灯的计数时间;lampa和lampb分别为南北方向和东西方向交通灯的红绿黄灯的状态显示,其中状态1代表绿灯,状态2代表黄灯,状态4代表红灯,东西方向同理;counta和countb分别为南北和东西方向三灯的时间倒计时,和上述绿灯红灯时间相一致。当南北方向lampa=1,即南北方向为绿灯,对应到达率λ=0.92时,南北方向车辆通过的绿灯时长为28s,中间转换时间黄灯为5s,此时lampa=2,对应东西方向红灯时长33s倒计时,lampb=4。南北方向的绿灯和黄灯的总时长等于东西方向的红灯时长,与前面理论相一致,交通灯的显示状态与倒计时计数器的工作状态相吻合,符合交通规律。在得到的仿真图中可以看出电路存在延迟,但是不影响设计的实现和结果的分析,本设计要实现的智能交通灯系统的智能调节性能得到验证。
本设计基于FPGA设计平台,主要实现了十字路口交通灯的智能调节设计,以双队列单服务器门限轮询服务模型作为理论基础,将检测到的车流量进行统计分析,得到车辆到达率,按照门限服务规则对红绿灯显示时间进行配时,实现路口车流量多时绿灯时长延长,车流量少时绿灯时长缩短的实时控制状态,最后在QUARTUSII软件平台上,完成对系统功能的编程控制设计。实验证明,在FPGA的系统平台上,采用门限轮询服务模型,交通灯能实现对红绿灯显示时长的智能调节,提高路口车辆通行效率。