FPGA的模糊控制交通灯控制方案设计
1 概述
为了解决城市交通拥挤的问题,需要从供求两个方面来采取措施:一是加强城市道路的基础建设,二是要充分利用、提高现有路网的利用效率。目前,国内的城市交通灯大多数都是采用固定的绿信比(一个信号相位的有效绿灯时长与周期时长之比),不能满足交叉路口车辆的时变性要求。
模糊控制技术作为智能控制的重要分支之一,它的最大特点是针对各类具有非线性、强耦合、不确定性、时变的多变量复杂系统,在各个控制领域中得到广泛的应用,并取得良好的控制效果。在城市道路中存在大量的平面交叉路口,交叉路口一般可以分成十字形、X形、T行、Y行和多路交叉形,本文以十字形交叉路口作为研究对象。
在平面交叉路口上某一支或者几支交通流所获得的通行权称为信号权,简称相位。一个周期内有几个信号相位,则称该信号系统为几相位系统。本文以双向6车道4相位系统为例。第1相位东两方向交通流直行,第2相位东西方向交通流左转,第3相位南北方向交通流直行,第4相位南北方向交通流左转,所有右转方向交通流不予控制。其交通运行图如图1所示。
2 模糊控制器的设计
模糊控制器通常包括模糊化接口、数据库、规则库、模糊推理机和解模糊接口5部分,如图2所示。
2.1 隶属度函数
为了完成输入的模糊化,必须知道输入精确值对模糊化的隶属度函数,如取7个,即PL(正大)、PM(正中)、PS(正小)、ZE(零)、NS(负小)、NM(负中)、NL(负大)。在精度要求比较高的情况下可以采用正态分布,一般情况下可取三角形或者梯形,本文采用三角形的隶属度函数。
在红灯期间,取线圈感应取为100 m,车身及车距平均距离取5 m,将测得的车辆排队长度P看作模糊变量。其论域为:
P={1,3,5,7,9,11,13,15,17,19,21}
取7个语言值,其赋值表如表1所列。
当前相位车队长度与下一相位的车队长度之差Q作为绿灯延迟的修正值。其论域为:
Q={-12,-9,-6,3,0,3,6,9,12)
取7个语言值,其赋值表如表2所列。
一般情况下,为了避免车辆来不及通过,绿灯时间不低于20 s;为了避免车辆等待时间太长,绿灯时间不超过60s。绿灯的追加时间看作模糊量g。总的追加时间的论域为:
T={4,8,12,16,20,24,28,32,36}
取7个语言值,其赋值表如表3所列。
2.2 车辆检测器
采用环形线圈式,金属线圈埋在地下,构成LC振荡回路。受车身铁磁材料的影响,电感量发生变化,根据电感不同可知车辆通过时的脉冲,从而推算出车辆通过的频率。
2.3 控制器的设计
本文采用二维模糊控制器,二维指的是模糊控制器的输入变量有两个,而控制器的输出只有一个。这类模糊规则的一般形式为:
IF X1 IS Ai AND X2 IS Bi THEN Y IS Ci
由控制规则得到模糊控制规则表,如表4所列。
3 模糊控制的FPGA实现
3.1 Spartan3A/3AN介绍
FPGA具有性能好、规模大、可重复编程、开发投资小等优点,在现代电子产品中应用得越来越广。使用Xilinx的Spartan3A/3AN FPGA时,ISE是必备的设计工具。它可以完成开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT下载文件、配置和在线调试等。本文采用E-Elements ISE Development Kit开发套件和ISE10.1软件设计工具,建立模糊控制交通灯系统工程,如图3所示。
3.2 系统的整体结构及软件设计
系统生成的RTL如图4所示。该系统主要由数据采集模块、模糊推理模块、分频模块、计数器模块、状态机控的车流量和下一相位的车流量;模糊推理模块对采集到的数据进行计算,并确定当前交叉口的通行情况(包括4个相位的通行与禁止、通行的准确时间);分频模块将系统提供的40 MHz的频率进行分频得到1 Hz;计数器将模糊推理模块得到的具体数据实现减1计数,并通过7段数码管显示。
对于模糊决策部分,其中每一条模糊条件语句都决定一个模糊关系。
例如:if P=P1 and Q=Q2,then T=T2所决定的模糊关系可以按下式计算:
R2=(P1×Q2)T×T2 (1)
此处的T表示将矩阵按行排列成一列向量,通过39个模糊关系的"并"运算,可获取表征总的模糊关系,即:
给定输入,由R按合成推理规则可得模糊输出:
Ri=(Pi×Qj)T×R (3)
根据所有的组合以及按式(2)和式(3)可求得绿灯延时,加上绿灯基本延时最终可确定当前相位的绿灯总时间,然后建立控制查询表,编写VHDL描述语言。
3.3 模糊控制交通灯硬件实现
BIT文件由FPGA综合实现T具产生,用于配置FPGA,JTAG边界扫描链的每一个FPGA需要一个BIT文件。使用电缆下载配置文件到PROM时,主要工作过程是启动iMPACT,在文件模式中用PROM Formatter把BIT文件转为MCS/EXO格式的PROM文件,然后在配置模式中初始化边界扫描链,接着就可以下载配置文件了,如图5所示。
以上设计已经编程完毕并且完成验证,开发板spartan3A/3AN已经可以工作。由7个按键模拟输入,输入数据不同,数码管根据模糊控制判决得出不同的数据显示,状态控制器得出当前状态,并用LED灯来直观显示,如图6所示。
- FPGA技术在汽车电子中的应用(11-26)
- 电源分配结构的三大转变为电源管理技术开创新局面(01-10)
- 利用FPGA协处理器优化汽车信息娱乐和信息通讯系统设计(01-24)
- 如何利用可编程器件设计车用显示系统(08-30)
- 基于SoPC的汽车安全监控系统设计(07-09)
- FPGA在汽车ECU领域大有可为(08-14)