基于NiosⅡ的單點(diǎn)自適應控制器設計研究
摘要 為了提高道路交叉口通行能力,設計了一種單點(diǎn)交叉口自適應控制系統。系統采用SOPC方案,利用具有NiosⅡ軟核的FPGA芯片設計了控制器的硬件,井利用遺傳算法建立了信號配時(shí)優(yōu)化模型、VHDL語(yǔ)言進(jìn)行了遺傳算法的硬件化、C語(yǔ)言編寫(xiě)了單點(diǎn)自適應控制器的程序。以成都市溫江區南熏-光華大道路口的實(shí)測數據為例,進(jìn)行軟硬件系統聯(lián)調的仿真實(shí)驗,獲得了交叉路口的信號配時(shí)優(yōu)化方案。仿真結果表明,通過(guò)采用優(yōu)化的方案進(jìn)行交叉口信號配時(shí)后,各進(jìn)口的車(chē)輛排隊為零。驗證了基于NiosⅡ單點(diǎn)在線(xiàn)自適應控制器的設計是有效的。
本文引用地址:http://dyxdggzs.com/article/201610/306764.htm目前,解決城市交通擁堵,提高區域效益的重要手段之一是采用城市交通控制系統。單點(diǎn)交叉口控制是交通信號控制系統的最小單元,也是干線(xiàn)交叉口交通信息協(xié)調控制和區域交通信號控制系統的基礎。單點(diǎn)交叉口的在線(xiàn)式自適應控制能根據前端檢測器得到的實(shí)時(shí)交通信息,自動(dòng)對交通信號控制的關(guān)鍵參數進(jìn)行調整,以達到改善交通通行狀況的目的,該方式將成為信號控制研究的主流?,F代電子系統設計的主要方向之一是采用SOPC(System on a Programmable Chip)實(shí)現,SOPC技術(shù)的實(shí)現方式有3種,其中一種是用含有NiosⅡ軟核的FPGA芯片實(shí)現。因此,本文對基于NiosⅡ的單點(diǎn)自適應控制器設計開(kāi)展了研究。
1 單點(diǎn)自適應控制研究
單交叉路口信號配時(shí)方案的基本內容是信號相位方案和信號基本控制參數,本文側重于對信號相位方案進(jìn)行優(yōu)化。
1.1 自適應信號機控制策略
本文用交叉口飽和度s作為選擇控制策略的參數,將s分為(0,0.8),[0.8,0.9),[0.9,∞),3個(gè)區間,制定本自適應信號機的控制策略。
當車(chē)輛檢測器系統出現故障時(shí)執行固定周期信號控制。若交叉口飽和度s的值為(0,0.8)就執行感應控制。若交叉口飽和度s的值為[0.8,0.9),就執行單點(diǎn)在線(xiàn)的實(shí)時(shí)自適應控制。若交叉口飽和度s為[0.9,∞)時(shí),交叉口已處于飽和,應改善交叉口幾何條件及交通條件。
1.2 系統功能分析與整體設計
設計的信號機控制器模塊是交叉口信號燈控制系統的控制核心,其將控制信號燈控制及驅動(dòng)模塊、人機接口模塊、通信模塊、交通數據采集模塊和數據存儲模塊。
1.3 車(chē)輛檢測器安裝及作用
設計在一個(gè)交叉路口的每個(gè)進(jìn)口車(chē)道安裝基于電磁感應原理的車(chē)輛檢測設備。當有車(chē)經(jīng)過(guò)環(huán)形地感線(xiàn)圈時(shí),線(xiàn)圈的磁通量會(huì )發(fā)生變化,車(chē)輛檢測器將磁通量變化轉化為表示線(xiàn)圈上方有車(chē)存在或通過(guò)的開(kāi)關(guān)信號。每條進(jìn)口車(chē)道埋設兩個(gè)線(xiàn)圈,一個(gè)在停車(chē)線(xiàn)后100 m處,稱(chēng)作上游線(xiàn)圈。另一個(gè)在停車(chē)線(xiàn)前面2~4 m處,稱(chēng)作下游線(xiàn)圈。通過(guò)該方式可采集到交通流量、車(chē)輛的平均到達率和離開(kāi)率等交通數據。
由上游車(chē)輛檢測器得到的車(chē)輛數可計算出一個(gè)信號周期內的車(chē)輛平均到達率,而從下游車(chē)輛檢測器得到的車(chē)輛數可計算出一個(gè)信號周期內的車(chē)輛平均離開(kāi)率。
2 單點(diǎn)實(shí)時(shí)自適應控制器設計
選用Altera的FPGA器件CycloneⅡ系列EP2C35F672C8芯片為核心進(jìn)行了基于NiosⅡ的單點(diǎn)自適應控制器設計研究。使用的軟件有Quartus Ⅱ7.2和NiosⅡ7.2IDE,采用VHDL語(yǔ)言來(lái)實(shí)現遺傳算法的各個(gè)模塊,然后將遺傳算法生成一個(gè)Symbol后,結合Quartus內的SOPC Builder來(lái)產(chǎn)生一個(gè)SOPC,隨后在Nios內搭建一個(gè)軟件系統來(lái)控制遺傳算法、各交通燈和計時(shí)數碼管的工作,并結合實(shí)驗開(kāi)發(fā)板,得到預期結果。
2.1 單點(diǎn)自適應控制信號機硬件構成
一套完整的單點(diǎn)自適應控制信號機應具備電源模塊、交通數據采集模塊、信號機控制器模塊、信號燈控制及驅動(dòng)模塊及通信模塊等,其連接關(guān)系如圖1所示。

2.2 遺傳算法優(yōu)化模塊設計
本文提出的單點(diǎn)自適應控制是以各路口車(chē)輛滯留數總和最小情況下為各相位配時(shí),基于車(chē)輛檢測器來(lái)測量每個(gè)相位在各自周期的到達車(chē)輛數和離開(kāi)車(chē)輛數,以此來(lái)計算出各相位的到達率和離開(kāi)率,再結合分配的時(shí)間就可預測出下一周期各相位時(shí)間的具體分配,利用遺傳算法來(lái)進(jìn)行配時(shí)方案的最優(yōu)化處理。
2.2.1 遺傳算法配時(shí)優(yōu)化模型
以單個(gè)交叉路口4個(gè)相位配時(shí)時(shí)間t1、t2、t3、t4這4個(gè)變量的優(yōu)化為例,介紹了優(yōu)化模型的建立。
為簡(jiǎn)化問(wèn)題,可將4變量求極小值的問(wèn)題簡(jiǎn)化為3變量求極小值問(wèn)題。即以t1、t2、t3為自變量,將問(wèn)題化為以下3個(gè)變量極小值問(wèn)題

其中,i=1,2,3,4;j=1,2,3,4;k=1,2,3。當i=1時(shí),

為第x-1個(gè)周期、第j個(gè)方向、第k個(gè)車(chē)道、第4相位滯留的車(chē)輛數;ti為交叉路口各相位的配時(shí),T=t1+t2+t3+t4;rijk表示第i個(gè)相位、第j個(gè)方向、第k個(gè)車(chē)道的車(chē)輛到達率;dijk表示在綠燈期間內,放行車(chē)輛在第i個(gè)相位、第j個(gè)方向、第k個(gè)車(chē)道駛離路口的離開(kāi)率;Pijk表示車(chē)輛通行狀態(tài),Pijk=1表示第i相位、第j方向、第k車(chē)道車(chē)輛放行,Pijk=0表示第i相位、第j方向、第k車(chē)道車(chē)輛禁止放行。
采用遺傳算法做最優(yōu)化求解,需將極小值問(wèn)題轉化為極大值問(wèn)題。所以,將目標函數進(jìn)行變換得到適應度函數如下

其中,S是滯留路口車(chē)輛數。在求解過(guò)程中,需對每個(gè)個(gè)體進(jìn)行適應度計算,其適應度值越高則個(gè)體越優(yōu)。
2.2.2 遺傳算法優(yōu)化配時(shí)程序設計
遺傳算法的基本步驟包括編碼、產(chǎn)生初始種群、計算適應度、選擇、單點(diǎn)交叉和基本位變異等;按此設計出遺傳算法優(yōu)化配時(shí)程序的流程如圖2所示。

2.2.3 遺傳算法硬件化
雖然遺傳算法具有諸多優(yōu)點(diǎn),且在眾多優(yōu)化問(wèn)題中均有成功應用,但基本遺傳算法本身存在著(zhù)不足。例如局部搜索能力差、存在未成熟收斂和隨機漫游等現象,導致算法的收斂性能差,需較長(cháng)時(shí)間才能找到最優(yōu)解。尤其是在一些對實(shí)時(shí)性要求較高的場(chǎng)合,遺傳算法的運行時(shí)間成為了一個(gè)致命的缺點(diǎn)。遺傳算法的運行時(shí)間受到適應度函數和本質(zhì)是串行計算的計算機限制。
所以,本質(zhì)是并行運行的FPGA在實(shí)現遺傳算法時(shí)就具有較大優(yōu)勢。遺傳算法的硬件化和遺傳算法的本質(zhì)思想一致,其包含初始化模塊、適應度模塊、隨機數模塊、選擇模塊、交叉模塊和變異模塊。此外,還添加了存儲個(gè)體及個(gè)體適應度值的存儲模塊,地址產(chǎn)生模塊和控制算法在選擇、交叉、變異循環(huán)執行的控制模塊等。利于VHDL語(yǔ)言編寫(xiě)程序實(shí)現如下模塊:
(1)初始化模塊。在接收到系統復位信號結束后,就初始化個(gè)體,產(chǎn)生個(gè)體及存儲個(gè)體的存儲器地址,本系統里是每次初始化后產(chǎn)生64個(gè)個(gè)體及相應的64個(gè)地址。
(2)適應度模塊。即計算每個(gè)個(gè)體的適應度值,并輸出到存儲模塊。
(3)存儲模塊。分別為存儲個(gè)體的RAM1和存儲適應度值的RAM2,RAM的容量為個(gè)體的一倍,即128,因為初始化產(chǎn)生的父代為64個(gè),經(jīng)變異后的子代也會(huì )有64個(gè),然后通過(guò)存儲地址在一定規律的變化下,新的子代不停替換父代來(lái)求得最優(yōu)解。RAM直接調用QuartusⅡ內的IP核。
(4)選擇模塊。為選擇出輸入到選擇模塊中適應度較小的個(gè)體和其適應度,輸入的個(gè)體為隨機產(chǎn)生的地址在RAM中隨機選擇的個(gè)體,輸出的個(gè)體按適應度的大小來(lái)比較后產(chǎn)生并輸出。
(5)交叉模塊。為了將輸入的兩個(gè)個(gè)體按照產(chǎn)生的隨機數來(lái)進(jìn)行交叉,如產(chǎn)生的隨機數為4,則個(gè)體1和個(gè)體2的后5位互相交叉,以此來(lái)產(chǎn)生新個(gè)體。因實(shí)際中最大值限制為31,所以每個(gè)個(gè)體的第7至第5位不進(jìn)行交叉。選擇的概率為0.875,即二進(jìn)制的11100000,當小于其就進(jìn)行交叉,否則不交叉。
(6)變異模塊。即將輸入的兩個(gè)個(gè)體按照設置好的變異準則變異,本文的變異規則為,在小于變異概率0.0703,即00010010,個(gè)體的第4位和第1位取反。當大于變異概率時(shí)則不變異。
(7)地址產(chǎn)生模塊。主要有兩部分:一部分為選擇個(gè)體時(shí)的地址;另一部分為變異后存儲個(gè)體的地址。
(8)隨機數模塊。1)產(chǎn)生選擇個(gè)體時(shí)的隨機數地址,隨機數模塊;2)產(chǎn)生供選擇模塊、變異模塊的概率及變異位。
(9)輸出模塊。當到達進(jìn)化代數后,輸出最優(yōu)值。
(10)控制模塊。初始化模塊結束后,產(chǎn)生信號使選擇模塊開(kāi)始工作,選擇模塊選擇完兩個(gè)個(gè)體后返回信號至控制模塊,而后選擇模塊停止工作,交叉模塊開(kāi)始運行,當交叉完兩個(gè)個(gè)體后,返回信號給控制模塊,并運行變異模塊,變異完兩個(gè)個(gè)體后返回信號給控制模塊,存儲個(gè)體,同時(shí)判斷是否為到達進(jìn)化代數,若沒(méi)有,則返回到選擇模塊,若到達進(jìn)化代數則停止所有模塊的工作。
最終生成的遺傳算法硬件實(shí)時(shí)模塊,如圖3所示。

2.3 信號機控制器模塊搭建
利用QuartusⅡ7.2、SOPC Builder進(jìn)行硬件電路開(kāi)發(fā),完成CPU軟核配置、接口電路等的搭建,并進(jìn)行編譯,系統電路如圖4所示。

本控制器的軟件主要采用C語(yǔ)言在NiosⅡIDE下編寫(xiě)和調試。軟件包括主函數和11個(gè)自定義函數。
將設計結果燒寫(xiě)到一個(gè)NiosⅡ開(kāi)發(fā)板上的EP2C35P672C8芯片,成功搭建了信號機控制器模塊硬件,并用具有開(kāi)關(guān)、按鍵、LED、數碼管和接口電路等的模塊電路進(jìn)行信號控制的軟硬件實(shí)驗驗證。本文設計的信號機控制器將遺傳算法硬件化后,完成一次配時(shí)方案優(yōu)化的運行時(shí)間由原有的幾百s減少到了ms級。
3 優(yōu)化效果分析
文中前期對成都市溫江區主城區的主要信號交叉口進(jìn)行了大量的交通調查,并進(jìn)行了數據整理與分析。利用這些實(shí)測數據對本設計的單點(diǎn)交叉口自適應控制器進(jìn)行了仿真模擬運行,對幾個(gè)重要交叉路口進(jìn)行優(yōu)化后均能得到最優(yōu)配時(shí)方案,且可使得這些路口在下一個(gè)周期的車(chē)輛排隊長(cháng)度為零。以南熏-光華路口為例,原配時(shí)方案為:總周期T=130 s;南北方向:直行綠燈47 s。黃燈3 s,左行27 s,黃燈3 s;東西方向:直行綠燈27 s,黃燈3 s,左行綠燈17 s,黃燈3 s。
對南熏-光華路口高峰時(shí)段測得的車(chē)流量數據和某周期剩余排隊車(chē)輛長(cháng)度的情況結果統計,如表1所示。

從以上數據可得到車(chē)輛的平均到達率和離開(kāi)率及上一周期滯留車(chē)輛數等信息,進(jìn)行遺傳算法優(yōu)化后得到結果。相位配時(shí)方案:總周期T=112 s;南北方向:直行綠燈20 s,黃燈3 s,左行20 s,黃燈3 s;東西方向:直行綠燈20 s,黃燈3 s,左行綠燈40 s,黃燈3 s。
利用該配時(shí)方案進(jìn)行模擬計算得知,在同樣的車(chē)輛到達情況下,各相位的車(chē)輛排隊長(cháng)度均為零。上述結果表明,單交叉口自適應控制程序采用遺傳算法進(jìn)行信號配時(shí)方案優(yōu)化的有效性。
4 結束語(yǔ)
本文研究結果表明,基于NiosⅡ的單點(diǎn)自適應控制器設計的可行性與有效性。此外,文中實(shí)現了SOPC采用基于FPGA的嵌入IP軟核的方式,并利用NiosⅡ實(shí)現了CPU系統控制VHDL語(yǔ)言的遺傳算法硬件模塊,完成了對交通信號燈的控制。
評論