基于嵌入式的智能交通信号控制系统研究
2017-01-03张叶茂
张叶茂
(南宁职业技术学院机电工程学院,广西 南宁 530007)
基于嵌入式的智能交通信号控制系统研究
张叶茂
(南宁职业技术学院机电工程学院,广西 南宁 530007)
文章分析了智能交通信号的模糊控制策略,阐述了模糊控制的具体算法,介绍了基于Cortex_M3内核处理器的控制系统的主要硬件设计方案,并移植Ucos_II实时操作系统对该控制系统进行多任务管理研究与程序流图设计。
嵌入式;交通信号;控制系统;模糊控制
0 引言
城市交通信号控制是现代智能交通系统的重要组成部分。信号灯对调节道路交叉路口及主干路段的交通流起到很重要的作用,如何运用先进的控制技术对交通信号实现合理的时间分配优化,最大限度利用好绿灯通行时间,保障道路交通顺畅,是智能交通研究的重点内容之一。由于交通系统具有很强的非线性、随机性和不确定性等特点,难以建立精确的控制系统模型,模糊控制对那些数学模型难以精确建立的、复杂的和时变的系统具有适应性,被控对象还能具有较强的鲁棒性和抗干扰性[1]。传统的交通信号控制系统采用PLC、51单片机作为信号主机的控制器,难以适应现代智能交通所要求的响应快速、实时性好、性价比高的特点,而采用基于嵌入式的控制系统能够满足现代智能交通信号灯控制系统的要求。
1 信号灯控制系统总体设计
信号灯控制系统主要包括基于嵌入式技术的信号主机系统设计、基于单片机的从机控制系统设计等。信号主机通过以太网接口和远程的工控计算机通讯。从机控制器和信号主机通过RS485进行通讯。每个十字交叉路口分别布置一个信号主机和4个方向的从机控制器。各模块的主要功能如下:
(1)信号主机模块采用32位基于Cortex_M3内核的STM32F103ZET6作为处理器,扩展各硬件接口,主要完成和工控计算机的远程通讯:①把从机采集的信号经过分析处理后传送到工控机显示;②接收工控机的控制方案,对当前各路口车辆信息,经过模糊策略分析后,发送信号给从机进行实时路口管理控制,实现交通路口各相位的智能切换。
(2)从机控制器模块采用8位STC89C52RC系列单片机作为处理器,主要执行主机发来的控制方案直接对交通灯进行驱动控制;计算各信号灯的时长并在LED上显示;采集交通信息并传送给主机进行信号灯故障检测等。
系统的总体结构图如图1所示。
图1 系统总体结构图
2 交通信号的模糊控制策略
设定二维模糊控制器输入变量为路口当前相位等待的车辆数qi,以及当前相位车辆数与下一个相位的车辆数之差Δq,控制器的输出量为当前相位绿灯精确延长时间Δg。当车辆排队长度比较长时,信号灯控制周期相对比较长,但每相绿灯延时时间最大为50s;当车辆排队长度比较短时,信号灯周期相对比较短,但是每相绿灯延时时间最少为15s。设输入输出变量的模糊子集为:
qi,Δq,Δg={NB,NM,NS,ZO,PS,PM,PB}子集元素依次代表负大,负中,负小,零,正小,正中,正大。将输入信号qi模糊化为变量Q,其论域为:Q={1,3,5,7,9,11,13,15,17,19,21}。
从中取七个模糊语言值;将Δq模糊化为变量ΔQ,其论域为{-12,-9,-6,-3,0,3,6,9,12},从中取七个模糊语言值;将Δg模糊化为变量ΔG,其论域为{3,6,9,12,15,18,21,24,27},从中取7个模糊语言值。输入变量qi的隶属度如图2所示。
图2 输入变量qi的隶属度曲线图
系统推理采用Mamdani推理法,由于模糊控制器的输入qi和Δq各有7个子集,可以制定49条规则,模糊规则如表1所示。
表1 模糊规则表
由输入模糊量推导出输出模糊量,比如IFqi为PM,Δq为NM,那么Δg为PM。根据加权平均法可以求出绿灯延时时间。模糊控制的具体算法如下:
(1)初始化各相位参数最短绿灯时间为gmin=15s,最长时间为gmax=50s。最大周期长为Tmax=225s。
(2)指定第i相位作为起始相位,绿灯时间gi=gmin=15s。
(3)在gmin的时间内,计算当前相位车流量qi和下一个相位车流量qi+1。
(4)根据Δq=qi+1-qi,和qi的大小,查模糊规则表,计算绿灯延时时间Δg。
(5)如果当前相位计算结束,返回到第(3)步骤进行下一个相位的计算。
需要注意的是,当gi达到最大值或者Δq大于给定值,控制器直接进行相位切换。
为了检验算法有效性,以通过交叉路口平均车辆延误作为评价指标,本文认为各路段车辆数量均服从泊松分布,所有车辆单位“辆”均为标准小客车当量(PCU),利用软硬件结合的仿真方式对模糊控制方式和定时控制方式进行比较。图3给出了定时控制方法和模糊控制方法对比效果,横坐标表示交通流量,单位长度代表450PCU/h,车流量较小时,两种控制方法得出的车辆平均延误时间差别不大,随着车流量增加,采用模糊控制策略,单位车辆延误时间最大可以减少50%。
图3 定时控制与模糊控制效果比对图
3 硬件电路设计
信号控制系统硬件设计主要包括信号主机设计、从机控制器设计。信号主机电路主要包括电源模块、嵌入式最小系统、人机交互模块、RS485总线模块、以太网接口设计等;从机控制器模块主要包括单片机最小系统、电源模块、信号灯驱动电路、信号检测电路、时间LED显示电路等。信号主机模块和从机模块采用RS485总线通讯。各路口信号主机通过以太网和远程工控计算机实时通讯。嵌入式最小系统采用32位基于Cortex-M3内核的STM32F10ZET6为CPU,扩展电源电路、晶振电路、复位电路、存储器电路、键盘电路等。人机交互界面采用大彩工控串口屏,该串口屏集图片字库存储、RTC显示、TFT显示驱动、GUI操作、音频播放等各种组态控件于一体,串口屏采用CORTEX-M3和高速FPGA处理器为组合运算单元[4]。硬件连接仅需要把串口屏的串口接线端和STM32F10ZET6的串口0连好即可。以下将对系统主要硬件设计进行具体研究。
3.1 信号灯驱动电路
信号灯是用来显示车辆的通行状态,每个路口的机动车信号的转换顺序为绿(绿闪)-黄-红。人行道控制信号为:绿(绿闪)-红。绿灯表示通行;黄灯表示已经驶过安全线的车辆可以继续通行,其它车禁止通行;红灯表示禁止通行[3]。根据模糊控制规则,绿灯可设最短为15s,最长为50s,红灯可设最短时间为20s,最长为55s,黄灯时间为5s。为了有效控制各信号灯的通断,提高系统的抗干扰性,采用MOC3063实现控制器内部电路弱电与灯控输出强电进行有效隔离,同时MOC3063的过零导通功能对强电回路的冲击电流有消弱作用。可控硅是灯控驱动电路的关键器件,选用时首先考虑满足电路的耐压和额定电流指标要求,另外,由于灯控驱动电路频繁开关及冲击电流大的特点,选用额定电流25A耐压600V的NXP公司的三象限高换向性能系列可控硅BTA225B-600B[5]。图4为信号灯驱动电路。电路工作时,单片机的P1.0输出口输出高电平时,经过反相后,MOC3063第2脚为低电平,信号灯电路导通,反之,则断开。信号灯组采用独立的交流电源变压供电,驱动板共设4组12路的信号灯驱动电路,可以分别输出控制行人灯组信号和机动车灯组信号。
图4 信号灯驱动电路图
3.2 车辆信息采集模块
本文采用地感线圈检测器检测车辆,传感器埋设在道路下面,其基本原理是基于电磁感应。工作时,给环形线圈接入工作电流,当车辆通过环形地感线圈或者停在环形线圈上时,以铁为主要材料的车身切割磁感线,引起感应线圈回路电流变化,电感值减少,耦合电路振荡频率增加,而当车辆离开线圈时,感应电流变化引起电感值又增加,振荡频率恢复。车辆检测藕合振荡电路原理图如图5所示,该电路为电容反馈三点式振荡电路,振荡频率在300KHZ左右,元器件序号为D23的两个反向的稳压管使振荡信号被控制在-5V~+5V之间,P6KE12CA用来抵制由静电等产生的瞬间高压,耦合变压器原副边匝数为1∶1。耦合电路输出信号需要经过脉冲整形才可以送入单片机IO口,脉冲信号整形电路如图6所示,耦合电路的输出端OUT输出振荡信号接入LM293整形电路,经过整形输出的脉冲信号送入单片机的P2.0口,启动定时器T2对脉冲信号进行计时,可以计算单位时间所计脉冲值,判断有无车辆经过,同时可以计算得到车辆经过线圈的时间。当有车辆通过时,把车辆信息发送给上位机。这里规定一路环形线圈对应于一个检测通道。
图5 车辆检测藕合振荡电路图
图6 脉冲信号整形电路图
4 系统软件设计
系统的软件设计分为主机的嵌入式系统设计以及从机的单片机软件设计,从机程序主要是将采集到的前端信号发送给主机以及执行主机传送过来的信号,因此从机软件设计主要是命令的执行,比较简单,本文主要阐述主机较为重要的软件部分设计。主机基于Ucos_II进行应用程序的设计,实现信号灯控制器的各种软件控制功能。Ucos_II是一个开放式的基于抢占式的实时操作系统,具有任务调度、任务管理、时间管理、中断管理、任务通信、内存管理等系统功能,被广泛应用在实时性要求极高的控制系统领域中。本文在研究过程中,在STM32上移植Ucos_II操作系统后,首先对Ucos_II及目标板进行初始化,然后根据实际需求调用OSTaskCreate()创建多任务,具体包括启动任务、车流数据采集任务、算法任务、I/O口数据处理任务、串口数据处理任务、信号控制任务、人机交互任务、以太网通讯任务等。系统软件架构图如图7所示。
图7 系统软件架构图
在调用Ucos_II其它任务之前,系统首先调用OSInit()函数初始化所有变量和数据结构,并且建立空闲任务OS_TaskIdle(),将该任务优先级设成最低并总处于就绪状态。建立启动任务TaskStart()之后,创建车流量信号采集等5个任务,通过调用OSStart()启动多任务环境。
4.1 车流数据采集任务
在交叉路口的控制中,需要获取实时的交通流数据,因此,设计车流量采集任务实现前端从机模块与主机通信。采集任务使用STM32F103ZET6的串口2通过RS485与前端从机模块通讯,读取车流量检测器模块脉冲存储数组中的脉冲个数。在该任务中,首先使能APB2总线的串口时钟,然后调用USART_Init()初始化串口、最后需要开启串口响应中断。Task_Uart()任务通过中断触发的方式执行,当Uart2未发生中断时,任务处于挂起等待状态,当从机模块采集完路口车辆信息数据时,通过单片机串口发送信号给主机Uart2,主机串口中断服务程序被执行,向采集任务发送信号量,Task_Uart任务调用接收函数获取车辆流量数据。在任务建立前分配任务优先级和堆栈:
#defineTask_Uart_PRIO10;
#defineTask_uart_StkLength128。
车流量采集任务的流程图如图8所示。
图8 车流量采集任务流程图
4.2 算法任务
Task_alg()任务主要对uart2采集的车流量数据(排队长度)应用模糊控制策略进行解算,得到新的控制参数(绿灯延时长)。Task_alg()任务通过触发的方式执行,平时任务处于挂起等待状态。当一个信号周期完成后,任务获得排队长度数据,通过任务调度执行Alg_Ctl()函数,运算得到新的控制参数。Alg_Ctl()函数根据控制方案初始化中设置的控制模式,运用模糊控制算法计算出控制参数。在任务建立前,分配任务优先级和堆栈如下:
#defineTask_Alg_PRIO11;
#defineTask_Alg_StkLength128。
算法任务的流程图如图9所示。
图9 算法任务流程图
5 结语
本文设计了基于嵌入式智能交通信号控制系统,分析了基于模糊理论的智能控制算法,比对了该算法对传统的定时控制算法的优越性。应用目前主流的32位嵌入式处理器进行了硬件结构的分析,对信号采集和灯光驱动部分给出了电路原理图并进行了详细的分析。移植实时操作系统进行多任务管理,本文给出了系统的软件结构,对车流量信号采集以及算法任务进行了分析。经实验验证,本系统性价比高,具有很大的推广应用价值。
[1]张 磊.车流高峰期交通信号的模糊控制及仿真[J].应用数学与计算数学学报,2011(1):88-88.
[2]王 超.基于物联网的智能交通控制系统与实现[J].长春工业大学学报(自然科学版),2014(5):72-73.
[3]张晓荣.智能交通灯的设计及其FPGA的实现[J].传感器世界,2013(12):65.
[4]张叶茂.基于串口屏和LPC1752的通用工控平台设计[J].轻工科技,2015(12):109-110.
[5]孙 旭.一种脉冲铯灯的驱动电路设计[J].光电技术应用,2014(29):53.
[6]管 珍.信号灯时间控制优化[J].聊城大学学报(自然科学版),2016(2):77.
Research on Intelligent Traffic Signal Control System Based on Embedded System
ZHANG Ye-mao
(School of Electromechanical Engineering,Nanning College for Vocational Technology,Nanning,Guangxi,530007)
This article analyzed the fuzzy control strategy of intelligent traffic signal,described the detailed algorithm of fuzzy control,introduced the main hardware design program of control system based on Cortex_M3 core processor,and transplanted Ucos_II real-time operating system for multitask management study and program flow chart design on this control system.
Embedded;Traffic signal;Control system;Fuzzy control
张叶茂(1983—),硕士研究生,讲师,研究方向:智能控制、嵌入式技术。
2016年度广西壮族自治区中青年教师基础能力提升项目(编号KY2016YB628)
U491.5+
A
10.13282/j.cnki.wccst.2016.12.021
1673-4874(2016)12-0074-06
2016-10-26