基于NiosⅡ的单点自适应控制器设计研究
扫描二维码
随时随地手机看文章
摘要 为了提高道路交叉口通行能力,设计了一种单点交叉口自适应控制系统。系统采用SOPC方案,利用具有NiosⅡ软核的FPGA芯片设计了控制器的硬件,井利用遗传算法建立了信号配时优化模型、VHDL语言进行了遗传算法的硬件化、C语言编写了单点自适应控制器的程序。以成都市温江区南熏-光华大道路口的实测数据为例,进行软硬件系统联调的仿真实验,获得了交叉路口的信号配时优化方案。仿真结果表明,通过采用优化的方案进行交叉口信号配时后,各进口的车辆排队为零。验证了基于NiosⅡ单点在线自适应控制器的设计是有效的。
目前,解决城市交通拥堵,提高区域效益的重要手段之一是采用城市交通控制系统。单点交叉口控制是交通信号控制系统的最小单元,也是干线交叉口交通信息协调控制和区域交通信号控制系统的基础。单点交叉口的在线式自适应控制能根据前端检测器得到的实时交通信息,自动对交通信号控制的关键参数进行调整,以达到改善交通通行状况的目的,该方式将成为信号控制研究的主流。现代电子系统设计的主要方向之一是采用SOPC(System on a Programmable Chip)实现,SOPC技术的实现方式有3种,其中一种是用含有NiosⅡ软核的FPGA芯片实现。因此,本文对基于NiosⅡ的单点自适应控制器设计开展了研究。
1 单点自适应控制研究
单交叉路口信号配时方案的基本内容是信号相位方案和信号基本控制参数,本文侧重于对信号相位方案进行优化。
1.1 自适应信号机控制策略
本文用交叉口饱和度s作为选择控制策略的参数,将s分为(0,0.8),[0.8,0.9),[0.9,∞),3个区间,制定本自适应信号机的控制策略。
当车辆检测器系统出现故障时执行固定周期信号控制。若交叉口饱和度s的值为(0,0.8)就执行感应控制。若交叉口饱和度s的值为[0.8,0.9),就执行单点在线的实时自适应控制。若交叉口饱和度s为[0.9,∞)时,交叉口已处于饱和,应改善交叉口几何条件及交通条件。
1.2 系统功能分析与整体设计
设计的信号机控制器模块是交叉口信号灯控制系统的控制核心,其将控制信号灯控制及驱动模块、人机接口模块、通信模块、交通数据采集模块和数据存储模块。
1.3 车辆检测器安装及作用
设计在一个交叉路口的每个进口车道安装基于电磁感应原理的车辆检测设备。当有车经过环形地感线圈时,线圈的磁通量会发生变化,车辆检测器将磁通量变化转化为表示线圈上方有车存在或通过的开关信号。每条进口车道埋设两个线圈,一个在停车线后100 m处,称作上游线圈。另一个在停车线前面2~4 m处,称作下游线圈。通过该方式可采集到交通流量、车辆的平均到达率和离开率等交通数据。
由上游车辆检测器得到的车辆数可计算出一个信号周期内的车辆平均到达率,而从下游车辆检测器得到的车辆数可计算出一个信号周期内的车辆平均离开率。
2 单点实时自适应控制器设计
选用Altera的FPGA器件CycloneⅡ系列EP2C35F672C8芯片为核心进行了基于NiosⅡ的单点自适应控制器设计研究。使用的软件有Quartus Ⅱ7.2和NiosⅡ7.2IDE,采用VHDL语言来实现遗传算法的各个模块,然后将遗传算法生成一个Symbol后,结合Quartus内的SOPC Builder来产生一个SOPC,随后在Nios内搭建一个软件系统来控制遗传算法、各交通灯和计时数码管的工作,并结合实验开发板,得到预期结果。
2.1 单点自适应控制信号机硬件构成
一套完整的单点自适应控制信号机应具备电源模块、交通数据采集模块、信号机控制器模块、信号灯控制及驱动模块及通信模块等,其连接关系如图1所示。
2.2 遗传算法优化模块设计
本文提出的单点自适应控制是以各路口车辆滞留数总和最小情况下为各相位配时,基于车辆检测器来测量每个相位在各自周期的到达车辆数和离开车辆数,以此来计算出各相位的到达率和离开率,再结合分配的时间就可预测出下一周期各相位时间的具体分配,利用遗传算法来进行配时方案的最优化处理。
2.2.1 遗传算法配时优化模型
以单个交叉路口4个相位配时时间t1、t2、t3、t4这4个变量的优化为例,介绍了优化模型的建立。
为简化问题,可将4变量求极小值的问题简化为3变量求极小值问题。即以t1、t2、t3为自变量,将问题化为以下3个变量极小值问题
其中,i=1,2,3,4;j=1,2,3,4;k=1,2,3。当i=1时,
为第x-1个周期、第j个方向、第k个车道、第4相位滞留的车辆数;ti为交叉路口各相位的配时,T=t1+t2+t3+t4;rijk表示第i个相位、第j个方向、第k个车道的车辆到达率;dijk表示在绿灯期间内,放行车辆在第i个相位、第j个方向、第k个车道驶离路口的离开率;Pijk表示车辆通行状态,Pijk=1表示第i相位、第j方向、第k车道车辆放行,Pijk=0表示第i相位、第j方向、第k车道车辆禁止放行。
采用遗传算法做最优化求解,需将极小值问题转化为极大值问题。所以,将目标函数进行变换得到适应度函数如下
其中,S是滞留路口车辆数。在求解过程中,需对每个个体进行适应度计算,其适应度值越高则个体越优。
2.2.2 遗传算法优化配时程序设计
遗传算法的基本步骤包括编码、产生初始种群、计算适应度、选择、单点交叉和基本位变异等;按此设计出遗传算法优化配时程序的流程如图2所示。
2.2.3 遗传算法硬件化
虽然遗传算法具有诸多优点,且在众多优化问题中均有成功应用,但基本遗传算法本身存在着不足。例如局部搜索能力差、存在未成熟收敛和随机漫游等现象,导致算法的收敛性能差,需较长时间才能找到最优解。尤其是在一些对实时性要求较高的场合,遗传算法的运行时间成为了一个致命的缺点。遗传算法的运行时间受到适应度函数和本质是串行计算的计算机限制。
所以,本质是并行运行的FPGA在实现遗传算法时就具有较大优势。遗传算法的硬件化和遗传算法的本质思想一致,其包含初始化模块、适应度模块、随机数模块、选择模块、交叉模块和变异模块。此外,还添加了存储个体及个体适应度值的存储模块,地址产生模块和控制算法在选择、交叉、变异循环执行的控制模块等。利于VHDL语言编写程序实现如下模块:
(1)初始化模块。在接收到系统复位信号结束后,就初始化个体,产生个体及存储个体的存储器地址,本系统里是每次初始化后产生64个个体及相应的64个地址。
(2)适应度模块。即计算每个个体的适应度值,并输出到存储模块。
(3)存储模块。分别为存储个体的RAM1和存储适应度值的RAM2,RAM的容量为个体的一倍,即128,因为初始化产生的父代为64个,经变异后的子代也会有64个,然后通过存储地址在一定规律的变化下,新的子代不停替换父代来求得最优解。RAM直接调用QuartusⅡ内的IP核。
(4)选择模块。为选择出输入到选择模块中适应度较小的个体和其适应度,输入的个体为随机产生的地址在RAM中随机选择的个体,输出的个体按适应度的大小来比较后产生并输出。
(5)交叉模块。为了将输入的两个个体按照产生的随机数来进行交叉,如产生的随机数为4,则个体1和个体2的后5位互相交叉,以此来产生新个体。因实际中最大值限制为31,所以每个个体的第7至第5位不进行交叉。选择的概率为0.875,即二进制的11100000,当小于其就进行交叉,否则不交叉。
(6)变异模块。即将输入的两个个体按照设置好的变异准则变异,本文的变异规则为,在小于变异概率0.0703,即00010010,个体的第4位和第1位取反。当大于变异概率时则不变异。
(7)地址产生模块。主要有两部分:一部分为选择个体时的地址;另一部分为变异后存储个体的地址。
(8)随机数模块。1)产生选择个体时的随机数地址,随机数模块;2)产生供选择模块、变异模块的概率及变异位。
(9)输出模块。当到达进化代数后,输出最优值。
(10)控制模块。初始化模块结束后,产生信号使选择模块开始工作,选择模块选择完两个个体后返回信号至控制模块,而后选择模块停止工作,交叉模块开始运行,当交叉完两个个体后,返回信号给控制模块,并运行变异模块,变异完两个个体后返回信号给控制模块,存储个体,同时判断是否为到达进化代数,若没有,则返回到选择模块,若到达进化代数则停止所有模块的工作。
最终生成的遗传算法硬件实时模块,如图3所示。
2.3 信号机控制器模块搭建
利用QuartusⅡ7.2、SOPC Builder进行硬件电路开发,完成CPU软核配置、接口电路等的搭建,并进行编译,系统电路如图4所示。
本控制器的软件主要采用C语言在NiosⅡIDE下编写和调试。软件包括主函数和11个自定义函数。
将设计结果烧写到一个NiosⅡ开发板上的EP2C35P672C8芯片,成功搭建了信号机控制器模块硬件,并用具有开关、按键、LED、数码管和接口电路等的模块电路进行信号控制的软硬件实验验证。本文设计的信号机控制器将遗传算法硬件化后,完成一次配时方案优化的运行时间由原有的几百s减少到了ms级。
3 优化效果分析
文中前期对成都市温江区主城区的主要信号交叉口进行了大量的交通调查,并进行了数据整理与分析。利用这些实测数据对本设计的单点交叉口自适应控制器进行了仿真模拟运行,对几个重要交叉路口进行优化后均能得到最优配时方案,且可使得这些路口在下一个周期的车辆排队长度为零。以南熏-光华路口为例,原配时方案为:总周期T=130 s;南北方向:直行绿灯47 s。黄灯3 s,左行27 s,黄灯3 s;东西方向:直行绿灯27 s,黄灯3 s,左行绿灯17 s,黄灯3 s。
对南熏-光华路口高峰时段测得的车流量数据和某周期剩余排队车辆长度的情况结果统计,如表1所示。
从以上数据可得到车辆的平均到达率和离开率及上一周期滞留车辆数等信息,进行遗传算法优化后得到结果。相位配时方案:总周期T=112 s;南北方向:直行绿灯20 s,黄灯3 s,左行20 s,黄灯3 s;东西方向:直行绿灯20 s,黄灯3 s,左行绿灯40 s,黄灯3 s。
利用该配时方案进行模拟计算得知,在同样的车辆到达情况下,各相位的车辆排队长度均为零。上述结果表明,单交叉口自适应控制程序采用遗传算法进行信号配时方案优化的有效性。
4 结束语
本文研究结果表明,基于NiosⅡ的单点自适应控制器设计的可行性与有效性。此外,文中实现了SOPC采用基于FPGA的嵌入IP软核的方式,并利用NiosⅡ实现了CPU系统控制VHDL语言的遗传算法硬件模块,完成了对交通信号灯的控制。