(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语言的遗传算法硬件模块,完成了对交通信号灯的控制。
本文关键字:控制器 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术