基于NiosⅡ的單點(diǎn)自適應(yīng)控制器設(shè)計研究
摘要 為了提高道路交叉口通行能力,設(shè)計了一種單點(diǎn)交叉口自適應(yīng)控制系統(tǒng)。系統(tǒng)采用SOPC方案,利用具有NiosⅡ軟核的FPGA芯片設(shè)計了控制器的硬件,井利用遺傳算法建立了信號配時優(yōu)化模型、VHDL語言進(jìn)行了遺傳算法的硬件化、C語言編寫了單點(diǎn)自適應(yīng)控制器的程序。以成都市溫江區(qū)南熏-光華大道路口的實測數(shù)據(jù)為例,進(jìn)行軟硬件系統(tǒng)聯(lián)調(diào)的仿真實驗,獲得了交叉路口的信號配時優(yōu)化方案。仿真結(jié)果表明,通過采用優(yōu)化的方案進(jìn)行交叉口信號配時后,各進(jìn)口的車輛排隊為零。驗證了基于NiosⅡ單點(diǎn)在線自適應(yīng)控制器的設(shè)計是有效的。
本文引用地址:http://2s4d.com/article/201610/306764.htm目前,解決城市交通擁堵,提高區(qū)域效益的重要手段之一是采用城市交通控制系統(tǒng)。單點(diǎn)交叉口控制是交通信號控制系統(tǒng)的最小單元,也是干線交叉口交通信息協(xié)調(diào)控制和區(qū)域交通信號控制系統(tǒng)的基礎(chǔ)。單點(diǎn)交叉口的在線式自適應(yīng)控制能根據(jù)前端檢測器得到的實時交通信息,自動對交通信號控制的關(guān)鍵參數(shù)進(jìn)行調(diào)整,以達(dá)到改善交通通行狀況的目的,該方式將成為信號控制研究的主流?,F(xiàn)代電子系統(tǒng)設(shè)計的主要方向之一是采用SOPC(System on a Programmable Chip)實現(xiàn),SOPC技術(shù)的實現(xiàn)方式有3種,其中一種是用含有NiosⅡ軟核的FPGA芯片實現(xiàn)。因此,本文對基于NiosⅡ的單點(diǎn)自適應(yīng)控制器設(shè)計開展了研究。
1 單點(diǎn)自適應(yīng)控制研究
單交叉路口信號配時方案的基本內(nèi)容是信號相位方案和信號基本控制參數(shù),本文側(cè)重于對信號相位方案進(jìn)行優(yōu)化。
1.1 自適應(yīng)信號機(jī)控制策略
本文用交叉口飽和度s作為選擇控制策略的參數(shù),將s分為(0,0.8),[0.8,0.9),[0.9,∞),3個區(qū)間,制定本自適應(yīng)信號機(jī)的控制策略。
當(dāng)車輛檢測器系統(tǒng)出現(xiàn)故障時執(zhí)行固定周期信號控制。若交叉口飽和度s的值為(0,0.8)就執(zhí)行感應(yīng)控制。若交叉口飽和度s的值為[0.8,0.9),就執(zhí)行單點(diǎn)在線的實時自適應(yīng)控制。若交叉口飽和度s為[0.9,∞)時,交叉口已處于飽和,應(yīng)改善交叉口幾何條件及交通條件。
1.2 系統(tǒng)功能分析與整體設(shè)計
設(shè)計的信號機(jī)控制器模塊是交叉口信號燈控制系統(tǒng)的控制核心,其將控制信號燈控制及驅(qū)動模塊、人機(jī)接口模塊、通信模塊、交通數(shù)據(jù)采集模塊和數(shù)據(jù)存儲模塊。
1.3 車輛檢測器安裝及作用
設(shè)計在一個交叉路口的每個進(jìn)口車道安裝基于電磁感應(yīng)原理的車輛檢測設(shè)備。當(dāng)有車經(jīng)過環(huán)形地感線圈時,線圈的磁通量會發(fā)生變化,車輛檢測器將磁通量變化轉(zhuǎn)化為表示線圈上方有車存在或通過的開關(guān)信號。每條進(jìn)口車道埋設(shè)兩個線圈,一個在停車線后100 m處,稱作上游線圈。另一個在停車線前面2~4 m處,稱作下游線圈。通過該方式可采集到交通流量、車輛的平均到達(dá)率和離開率等交通數(shù)據(jù)。
由上游車輛檢測器得到的車輛數(shù)可計算出一個信號周期內(nèi)的車輛平均到達(dá)率,而從下游車輛檢測器得到的車輛數(shù)可計算出一個信號周期內(nèi)的車輛平均離開率。
2 單點(diǎn)實時自適應(yīng)控制器設(shè)計
選用Altera的FPGA器件CycloneⅡ系列EP2C35F672C8芯片為核心進(jìn)行了基于NiosⅡ的單點(diǎn)自適應(yīng)控制器設(shè)計研究。使用的軟件有Quartus Ⅱ7.2和NiosⅡ7.2IDE,采用VHDL語言來實現(xiàn)遺傳算法的各個模塊,然后將遺傳算法生成一個Symbol后,結(jié)合Quartus內(nèi)的SOPC Builder來產(chǎn)生一個SOPC,隨后在Nios內(nèi)搭建一個軟件系統(tǒng)來控制遺傳算法、各交通燈和計時數(shù)碼管的工作,并結(jié)合實驗開發(fā)板,得到預(yù)期結(jié)果。
2.1 單點(diǎn)自適應(yīng)控制信號機(jī)硬件構(gòu)成
一套完整的單點(diǎn)自適應(yīng)控制信號機(jī)應(yīng)具備電源模塊、交通數(shù)據(jù)采集模塊、信號機(jī)控制器模塊、信號燈控制及驅(qū)動模塊及通信模塊等,其連接關(guān)系如圖1所示。
2.2 遺傳算法優(yōu)化模塊設(shè)計
本文提出的單點(diǎn)自適應(yīng)控制是以各路口車輛滯留數(shù)總和最小情況下為各相位配時,基于車輛檢測器來測量每個相位在各自周期的到達(dá)車輛數(shù)和離開車輛數(shù),以此來計算出各相位的到達(dá)率和離開率,再結(jié)合分配的時間就可預(yù)測出下一周期各相位時間的具體分配,利用遺傳算法來進(jìn)行配時方案的最優(yōu)化處理。
2.2.1 遺傳算法配時優(yōu)化模型
以單個交叉路口4個相位配時時間t1、t2、t3、t4這4個變量的優(yōu)化為例,介紹了優(yōu)化模型的建立。
為簡化問題,可將4變量求極小值的問題簡化為3變量求極小值問題。即以t1、t2、t3為自變量,將問題化為以下3個變量極小值問題
其中,i=1,2,3,4;j=1,2,3,4;k=1,2,3。當(dāng)i=1時,
為第x-1個周期、第j個方向、第k個車道、第4相位滯留的車輛數(shù);ti為交叉路口各相位的配時,T=t1+t2+t3+t4;rijk表示第i個相位、第j個方向、第k個車道的車輛到達(dá)率;dijk表示在綠燈期間內(nèi),放行車輛在第i個相位、第j個方向、第k個車道駛離路口的離開率;Pijk表示車輛通行狀態(tài),Pijk=1表示第i相位、第j方向、第k車道車輛放行,Pijk=0表示第i相位、第j方向、第k車道車輛禁止放行。
采用遺傳算法做最優(yōu)化求解,需將極小值問題轉(zhuǎn)化為極大值問題。所以,將目標(biāo)函數(shù)進(jìn)行變換得到適應(yīng)度函數(shù)如下
其中,S是滯留路口車輛數(shù)。在求解過程中,需對每個個體進(jìn)行適應(yīng)度計算,其適應(yīng)度值越高則個體越優(yōu)。
2.2.2 遺傳算法優(yōu)化配時程序設(shè)計
遺傳算法的基本步驟包括編碼、產(chǎn)生初始種群、計算適應(yīng)度、選擇、單點(diǎn)交叉和基本位變異等;按此設(shè)計出遺傳算法優(yōu)化配時程序的流程如圖2所示。
2.2.3 遺傳算法硬件化
雖然遺傳算法具有諸多優(yōu)點(diǎn),且在眾多優(yōu)化問題中均有成功應(yīng)用,但基本遺傳算法本身存在著不足。例如局部搜索能力差、存在未成熟收斂和隨機(jī)漫游等現(xiàn)象,導(dǎo)致算法的收斂性能差,需較長時間才能找到最優(yōu)解。尤其是在一些對實時性要求較高的場合,遺傳算法的運(yùn)行時間成為了一個致命的缺點(diǎn)。遺傳算法的運(yùn)行時間受到適應(yīng)度函數(shù)和本質(zhì)是串行計算的計算機(jī)限制。
所以,本質(zhì)是并行運(yùn)行的FPGA在實現(xiàn)遺傳算法時就具有較大優(yōu)勢。遺傳算法的硬件化和遺傳算法的本質(zhì)思想一致,其包含初始化模塊、適應(yīng)度模塊、隨機(jī)數(shù)模塊、選擇模塊、交叉模塊和變異模塊。此外,還添加了存儲個體及個體適應(yīng)度值的存儲模塊,地址產(chǎn)生模塊和控制算法在選擇、交叉、變異循環(huán)執(zhí)行的控制模塊等。利于VHDL語言編寫程序?qū)崿F(xiàn)如下模塊:
(1)初始化模塊。在接收到系統(tǒng)復(fù)位信號結(jié)束后,就初始化個體,產(chǎn)生個體及存儲個體的存儲器地址,本系統(tǒng)里是每次初始化后產(chǎn)生64個個體及相應(yīng)的64個地址。
(2)適應(yīng)度模塊。即計算每個個體的適應(yīng)度值,并輸出到存儲模塊。
(3)存儲模塊。分別為存儲個體的RAM1和存儲適應(yīng)度值的RAM2,RAM的容量為個體的一倍,即128,因為初始化產(chǎn)生的父代為64個,經(jīng)變異后的子代也會有64個,然后通過存儲地址在一定規(guī)律的變化下,新的子代不停替換父代來求得最優(yōu)解。RAM直接調(diào)用QuartusⅡ內(nèi)的IP核。
(4)選擇模塊。為選擇出輸入到選擇模塊中適應(yīng)度較小的個體和其適應(yīng)度,輸入的個體為隨機(jī)產(chǎn)生的地址在RAM中隨機(jī)選擇的個體,輸出的個體按適應(yīng)度的大小來比較后產(chǎn)生并輸出。
(5)交叉模塊。為了將輸入的兩個個體按照產(chǎn)生的隨機(jī)數(shù)來進(jìn)行交叉,如產(chǎn)生的隨機(jī)數(shù)為4,則個體1和個體2的后5位互相交叉,以此來產(chǎn)生新個體。因?qū)嶋H中最大值限制為31,所以每個個體的第7至第5位不進(jìn)行交叉。選擇的概率為0.875,即二進(jìn)制的11100000,當(dāng)小于其就進(jìn)行交叉,否則不交叉。
(6)變異模塊。即將輸入的兩個個體按照設(shè)置好的變異準(zhǔn)則變異,本文的變異規(guī)則為,在小于變異概率0.0703,即00010010,個體的第4位和第1位取反。當(dāng)大于變異概率時則不變異。
(7)地址產(chǎn)生模塊。主要有兩部分:一部分為選擇個體時的地址;另一部分為變異后存儲個體的地址。
(8)隨機(jī)數(shù)模塊。1)產(chǎn)生選擇個體時的隨機(jī)數(shù)地址,隨機(jī)數(shù)模塊;2)產(chǎn)生供選擇模塊、變異模塊的概率及變異位。
(9)輸出模塊。當(dāng)?shù)竭_(dá)進(jìn)化代數(shù)后,輸出最優(yōu)值。
(10)控制模塊。初始化模塊結(jié)束后,產(chǎn)生信號使選擇模塊開始工作,選擇模塊選擇完兩個個體后返回信號至控制模塊,而后選擇模塊停止工作,交叉模塊開始運(yùn)行,當(dāng)交叉完兩個個體后,返回信號給控制模塊,并運(yùn)行變異模塊,變異完兩個個體后返回信號給控制模塊,存儲個體,同時判斷是否為到達(dá)進(jìn)化代數(shù),若沒有,則返回到選擇模塊,若到達(dá)進(jìn)化代數(shù)則停止所有模塊的工作。
最終生成的遺傳算法硬件實時模塊,如圖3所示。
2.3 信號機(jī)控制器模塊搭建
利用QuartusⅡ7.2、SOPC Builder進(jìn)行硬件電路開發(fā),完成CPU軟核配置、接口電路等的搭建,并進(jìn)行編譯,系統(tǒng)電路如圖4所示。
本控制器的軟件主要采用C語言在NiosⅡIDE下編寫和調(diào)試。軟件包括主函數(shù)和11個自定義函數(shù)。
將設(shè)計結(jié)果燒寫到一個NiosⅡ開發(fā)板上的EP2C35P672C8芯片,成功搭建了信號機(jī)控制器模塊硬件,并用具有開關(guān)、按鍵、LED、數(shù)碼管和接口電路等的模塊電路進(jìn)行信號控制的軟硬件實驗驗證。本文設(shè)計的信號機(jī)控制器將遺傳算法硬件化后,完成一次配時方案優(yōu)化的運(yùn)行時間由原有的幾百s減少到了ms級。
3 優(yōu)化效果分析
文中前期對成都市溫江區(qū)主城區(qū)的主要信號交叉口進(jìn)行了大量的交通調(diào)查,并進(jìn)行了數(shù)據(jù)整理與分析。利用這些實測數(shù)據(jù)對本設(shè)計的單點(diǎn)交叉口自適應(yīng)控制器進(jìn)行了仿真模擬運(yùn)行,對幾個重要交叉路口進(jìn)行優(yōu)化后均能得到最優(yōu)配時方案,且可使得這些路口在下一個周期的車輛排隊長度為零。以南熏-光華路口為例,原配時方案為:總周期T=130 s;南北方向:直行綠燈47 s。黃燈3 s,左行27 s,黃燈3 s;東西方向:直行綠燈27 s,黃燈3 s,左行綠燈17 s,黃燈3 s。
對南熏-光華路口高峰時段測得的車流量數(shù)據(jù)和某周期剩余排隊車輛長度的情況結(jié)果統(tǒng)計,如表1所示。
從以上數(shù)據(jù)可得到車輛的平均到達(dá)率和離開率及上一周期滯留車輛數(shù)等信息,進(jìn)行遺傳算法優(yōu)化后得到結(jié)果。相位配時方案:總周期T=112 s;南北方向:直行綠燈20 s,黃燈3 s,左行20 s,黃燈3 s;東西方向:直行綠燈20 s,黃燈3 s,左行綠燈40 s,黃燈3 s。
利用該配時方案進(jìn)行模擬計算得知,在同樣的車輛到達(dá)情況下,各相位的車輛排隊長度均為零。上述結(jié)果表明,單交叉口自適應(yīng)控制程序采用遺傳算法進(jìn)行信號配時方案優(yōu)化的有效性。
4 結(jié)束語
本文研究結(jié)果表明,基于NiosⅡ的單點(diǎn)自適應(yīng)控制器設(shè)計的可行性與有效性。此外,文中實現(xiàn)了SOPC采用基于FPGA的嵌入IP軟核的方式,并利用NiosⅡ?qū)崿F(xiàn)了CPU系統(tǒng)控制VHDL語言的遺傳算法硬件模塊,完成了對交通信號燈的控制。
評論