APP下载

基于VHDL的交通绿波带控制系统设计

2019-10-21薛开伍湖南师范大学410081

新生代 2019年9期
关键词:绿波交通灯信号灯

薛开伍 湖南师范大学 410081

解决城市主干道拥堵问题,行之有效的方法是搭建交通绿波带,让车辆尽快通过,从而提高单位时间内车辆通行效率。对此,需要先设计出各个路口合适的交通灯模式,测算和获取设计所需的交通参数和信号灯参数,测算出最人性化的行人绿灯时间,选择合适的交通灯变换周期。本文选择某城市WY大道上的三个路口,利用VHDL硬件描述语言进行绿波带交通灯系统设计,具有很强的移植性,稍作改编,可用于更大更复杂的交通绿波带设计。

1 参数的获取与处理

在设计一条在主干线上的交通绿波带时,主要原则利用优化算法对各种参数进行处理,从而确定出一条延误时间最短的干线绿波带。有很多参数需要实地考察或者建模计算来确定。

1、 路段长度及车速:

路段选择以WY大道牌楼口为起点A,其与WY大道桃子湖路口B相距476米,而B与WY大道新民路口C相距924米。从起点A到终点C总长达1.4公里。

经实地考察,南北走向车辆速度一般为60Km/h,而东西走向直行都是行人和非机动车,东西左转的车流量较小。

2、 周期时长

为了干线上的各交叉口的信号灯能协调统一,各个信号灯的周期必须相同。一般情况下,信号灯周期不能小于一分钟,否则会出现车辆和行人无法及时通过路口以致交叉路口堵塞。周期也不能太长,因为A路口到B路口的距离只有四百多米,在车流速度平均为50-60Km/h的情况下,只需半分钟车辆就可以穿过,若周期时长大于三分钟,就会造成较长放入延误时间,甚至会导致延误放入车辆由第一个路口延伸到下一路口。本文将A、B、C三个路口的信号灯周期都定为180秒。

3、 绿信比

绿信比定义为:在一个周期下,一个路口的绿灯时长与总周期时长的比率。绿信比是调节其所在路口的通行能力的重要参数。在交叉路口中,一个方向的绿信比增加必须是以减少另一方向的绿信比为代价,所以在确定绿信比时一定要如实反映路口的车流量,以达到各个方向的通行能力一致。

4、 相位及相位差

一个路口的交通灯相位设置要兼顾各个方向车辆通行的需求,不合理的相位设置会导致交通混乱及交通堵塞。

本文所实现的交通绿波带主要靠调节相位差,使相位差的时间刚好是车流通过这些交叉口的时间差。这样,当车辆从路口出发到达下一路口时,刚好是绿灯。由于三个路口的信号灯周期一致,只要实现第一次信号灯相位差优化成绿波带,接下来每个周期的相位差就固定下来了,从而实现一条持续的绿波带。

在测得各路口的车流速度和路段距离的情况下,可依据公式pn=sn/v求得相位差。

其中pn为相位差,单位是秒,sn为路段的长度,单位是米,v是平均车流速度,单位是m/s。实际中不同方向的平均车速是一个不定值,它会随着上下班高峰期、节假日出城高峰或返程高峰、上下学时间变动。为了工程上的简便,让相位差是整数,取v=57Km/h,s1=476m,s2=924m代入上式,得p1=30s,p2=60s。

2 绿波系统的设计及仿真

2.1 系统框架和程序设计

本文采用双向绿波带模式进行设计,可以全时段地实现干线的上行和下行无滞留调制。对于两个端口,要求当其开放主干线的通行权时,既要作为入口去放行一波将驶入绿波带的车流,同时要作为出口去精准无滞留地放行一波已驶过绿波带的车流。对于路段中间的交叉口,由于上下游的路口距离不同,很难做到每次放行都是刚好囊括两个方向的绿波带,所以其主干线的通行时间较长,同时绿信比增大、效率下降。这是无法避免却可以通过系统设计来优化的问题。

2.1.1 绿波系统框架的设计

在一个周期中A、C路口相位1的通行权时间为80s,其他相位的总通行时间为100s,而B路口的相位1通行时间为140s,其他相位的总通行时间为40s。对于A、C路口,其绿信比是能够忠实反映个方向的车流量的,在对其进行信号灯设计时,按照正常的相位依次转换模式设计即可。而对于B路口,显然其主干线的绿信比过大,留给其他的相位的通行权时间总共只有40s,再采用上述模式是行不通的,需要适当权衡和改变。

假设0s时刻C点交叉口调制出80s主干道的通行权,那么大概在60s的时刻,放行的这一波车流开始通过B点交叉口,大概在90s时刻开始通过A点交叉口。在A点交叉口开放80s通行权时,也有自A至C的车流驶入,这时候反向推算上述绿波即可。A、B、C交叉口的信号周期皆为180s,其中C路口的绿波带从0s开始,B路口的绿波带从60s开始,A路口的绿波带从90s开始。值得注意的是:由于双向绿波带的特性,B路口的相位1的绿信比要大于A、C两路口的,故对其要单独设计。

对于C路口,主干线绿波带从0s开始,持续80s,所以在0-80s,主干线直行绿灯亮,其他方向红灯亮,尔后跳转到其他相位通行;如果选择相位2通行,会造成支干线的红灯大于100s,由于交通灯的计时显示设计大多两位数,产生计时溢出;如果选择相位3通行,就可以完美避免这种问题。所以在80-110s,相位3获得通行权,支干线直行绿灯亮,其他方向红灯亮。在110-150s,相位2获得通行权,主干线左转绿灯亮,其他方向红灯亮。在150-180s,相位4获得通行权,支干线左转绿灯亮,其他方向红灯亮。至此,一个周期完毕,进入下一个周期循环。

对于A路口,其相位1的绿信比与C路口一样,但是其绿波带开始时间要滞后于C路口90s。为了工程简便,A、C路口交通灯设计一样。

B路口的情况要复杂一些,140s的相位1需转换成70s的相位1通行权加上70s的相位1和相位2的通行权。在前70s,自C至A方向的绿波带所带来的车流差不多都通行完毕,而后70s的车流量主要是自A至C方向的车辆,再结合WY大道特殊的T字型路口,这时候主干线的直行和左转(也就是相位1和相位2)一起进行,不会给B路口带来大的交通混乱。所以B路口可以实行以下信号灯模式:从C路口周期时间的60s起,前70s相位1获得通行权,主干线直行绿灯亮,其他方向红灯亮。接下来70s里,相位1和相位2获得通行权,主干线直行和主干线左转绿灯亮,其他方向红灯亮。然后是20s的相位3获得通行权,支干线直行绿灯亮,其他方向红灯亮。最后是20s的相位4获得通行权,支干线左转绿灯亮,其他方向红灯亮。至此一个180s为周期的信号灯设计完毕。

2.1.2 单个交通灯的程序设计

本文只采用红绿两种灯色和两位LED倒计时显示器来设计。根据系统框架所设计的四种相位,状态机也应有四种状态:zz、zl、cz、cl,分别代表相位1、相位2、相位3、相位4。采用TYPE类型(用户自定义的数据类型)来定义这些状态。

type states is (zz,zl,cz,cl);

variable change0,change1,change2:states;

然后再具体的状态下进行减数计时和状态判断转换。

其中要注意存储倒计时的变量是8位二进制,要转换成8为BCD码,以便于显示模块的表达。转换方法是遇到第四位全为0且减数计时上升沿发生时,整个向量减去7,其他情况均是减去1。

设计时钟计时模块时,假设外部时钟源的频率是10MHZ,要利用其生成一个频率为1HZ的一位字,以供减数计时参考。这个模块需要用进程子程序来实现,优势是只要外部时钟源有变动,进程就会顺序执行一次内部命令。

2.1.3 程序设计

VHDL语言IF语句是并行执行的,而三个路口联动需要顺序判断。首先在系统刚开始就让C路口进入工作状态,任一工作状态皆可。如果计时所用存储变量超过正常的数值,就强制其进入周期的开始阶段。

接着是判断C路口的状态从而让B路口适时进入新的周期循环,绿波系统设计指明在C路口开始计数60s后B路口开始新的周期,这就需要if判断语句:

b的作用有两个,一个是起始标记向量,当周期开始条件满足时,b为1,表示B路口交通灯程序已经在运行,b为0时,表示B路口交通灯程序还未开始。另一个是状态机转换标记向量,在程序运行中,要不停的判断是否进行状态转换,b=0时,表示正在转换,b=1时,表示无需转换。

最后是A路口的交通灯联动,A路口的程序设计与B路口类似,只是触发周期条件不同,A路口是在C路口交通灯周期开始后的90s开始循环。

三个交通灯的周期时长都是180s,可以很完美的嵌合循环。

头文件中需引用std_logic_unsigned程序包文件,便于不同的数据类型相互赋值和计算。分别用Process进程语句构建时钟计时模块和交通状态机模块。

2.2 运用QuartusⅡ汇编与仿真

为了方便仿真,将f分配为一组每2ns改变一次电平的方波,选择QuartusⅡ Simulator下的功能仿真。

仿真结果表明,在外部时钟源跳变的开始,C路口就进入了工作状态的相位1并且开始倒数计时,对应的存储倒计时变量zhu0和zhi0一起从10000000开始减数变化,代表着从80s开始倒计时。

在C路口开始工作后的60s之内,B路口的交通灯一直处于待机状态,各种变量持续为0。从60s时起,B路口开启工作状态,进入以180s为周期的交通灯循环。

在C路口的80s倒计时结束时,C路口的交通灯模式便发生了转换。zhu0和zhi0计时寄存器重载数值为30s倒计时,而且led0的数值变为001010,标志着相位2获得通行权。

从90s时起,zhu0和zhi0寄存器数值为00100000,A路口开始进入工作状态,工作模式和运作流程与C路口一样,只是在周期上延迟了90s。结果表明这些波纹图形和数据表明仿真结果与预期一致。

结论

本文通过VHDL语言设计交通绿波带,并通过QuartusⅡ的编译仿真功能来解决WY大道存在的拥堵问题,通过交通灯所需的各种参数分析,比如岔路口形状、相位差、绿信比、平均车速等,根据测算出的数据构建出绿波带系统的框架,然后根据硬件描述语言的特性去编写程序,选择芯片,编译分析与仿真。仿真结果表明本设计能很好地达到预期效果。

猜你喜欢

绿波交通灯信号灯
浮萍
基于遗传算法的智能交通灯控制研究
矿工灯
信号灯为什么选这三个颜色?
为什么交通灯是红黄蓝三种颜色?
安装在路面的交通信号灯
信号灯为什么用
喜欢你的理由