張葉茂
(南寧職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,廣西 南寧 530007)
基于嵌入式的智能交通信號(hào)控制系統(tǒng)研究
張葉茂
(南寧職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,廣西 南寧 530007)
文章分析了智能交通信號(hào)的模糊控制策略,闡述了模糊控制的具體算法,介紹了基于Cortex_M3內(nèi)核處理器的控制系統(tǒng)的主要硬件設(shè)計(jì)方案,并移植Ucos_II實(shí)時(shí)操作系統(tǒng)對(duì)該控制系統(tǒng)進(jìn)行多任務(wù)管理研究與程序流圖設(shè)計(jì)。
嵌入式;交通信號(hào);控制系統(tǒng);模糊控制
城市交通信號(hào)控制是現(xiàn)代智能交通系統(tǒng)的重要組成部分。信號(hào)燈對(duì)調(diào)節(jié)道路交叉路口及主干路段的交通流起到很重要的作用,如何運(yùn)用先進(jìn)的控制技術(shù)對(duì)交通信號(hào)實(shí)現(xiàn)合理的時(shí)間分配優(yōu)化,最大限度利用好綠燈通行時(shí)間,保障道路交通順暢,是智能交通研究的重點(diǎn)內(nèi)容之一。由于交通系統(tǒng)具有很強(qiáng)的非線性、隨機(jī)性和不確定性等特點(diǎn),難以建立精確的控制系統(tǒng)模型,模糊控制對(duì)那些數(shù)學(xué)模型難以精確建立的、復(fù)雜的和時(shí)變的系統(tǒng)具有適應(yīng)性,被控對(duì)象還能具有較強(qiáng)的魯棒性和抗干擾性[1]。傳統(tǒng)的交通信號(hào)控制系統(tǒng)采用PLC、51單片機(jī)作為信號(hào)主機(jī)的控制器,難以適應(yīng)現(xiàn)代智能交通所要求的響應(yīng)快速、實(shí)時(shí)性好、性價(jià)比高的特點(diǎn),而采用基于嵌入式的控制系統(tǒng)能夠滿足現(xiàn)代智能交通信號(hào)燈控制系統(tǒng)的要求。
信號(hào)燈控制系統(tǒng)主要包括基于嵌入式技術(shù)的信號(hào)主機(jī)系統(tǒng)設(shè)計(jì)、基于單片機(jī)的從機(jī)控制系統(tǒng)設(shè)計(jì)等。信號(hào)主機(jī)通過(guò)以太網(wǎng)接口和遠(yuǎn)程的工控計(jì)算機(jī)通訊。從機(jī)控制器和信號(hào)主機(jī)通過(guò)RS485進(jìn)行通訊。每個(gè)十字交叉路口分別布置一個(gè)信號(hào)主機(jī)和4個(gè)方向的從機(jī)控制器。各模塊的主要功能如下:
(1)信號(hào)主機(jī)模塊采用32位基于Cortex_M3內(nèi)核的STM32F103ZET6作為處理器,擴(kuò)展各硬件接口,主要完成和工控計(jì)算機(jī)的遠(yuǎn)程通訊:①把從機(jī)采集的信號(hào)經(jīng)過(guò)分析處理后傳送到工控機(jī)顯示;②接收工控機(jī)的控制方案,對(duì)當(dāng)前各路口車輛信息,經(jīng)過(guò)模糊策略分析后,發(fā)送信號(hào)給從機(jī)進(jìn)行實(shí)時(shí)路口管理控制,實(shí)現(xiàn)交通路口各相位的智能切換。
(2)從機(jī)控制器模塊采用8位STC89C52RC系列單片機(jī)作為處理器,主要執(zhí)行主機(jī)發(fā)來(lái)的控制方案直接對(duì)交通燈進(jìn)行驅(qū)動(dòng)控制;計(jì)算各信號(hào)燈的時(shí)長(zhǎng)并在LED上顯示;采集交通信息并傳送給主機(jī)進(jìn)行信號(hào)燈故障檢測(cè)等。
系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
設(shè)定二維模糊控制器輸入變量為路口當(dāng)前相位等待的車輛數(shù)qi,以及當(dāng)前相位車輛數(shù)與下一個(gè)相位的車輛數(shù)之差Δq,控制器的輸出量為當(dāng)前相位綠燈精確延長(zhǎng)時(shí)間Δg。當(dāng)車輛排隊(duì)長(zhǎng)度比較長(zhǎng)時(shí),信號(hào)燈控制周期相對(duì)比較長(zhǎng),但每相綠燈延時(shí)時(shí)間最大為50s;當(dāng)車輛排隊(duì)長(zhǎng)度比較短時(shí),信號(hào)燈周期相對(duì)比較短,但是每相綠燈延時(shí)時(shí)間最少為15s。設(shè)輸入輸出變量的模糊子集為:
qi,Δq,Δg={NB,NM,NS,ZO,PS,PM,PB}子集元素依次代表負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大。將輸入信號(hào)qi模糊化為變量Q,其論域?yàn)椋篞={1,3,5,7,9,11,13,15,17,19,21}。
從中取七個(gè)模糊語(yǔ)言值;將Δq模糊化為變量ΔQ,其論域?yàn)閧-12,-9,-6,-3,0,3,6,9,12},從中取七個(gè)模糊語(yǔ)言值;將Δg模糊化為變量ΔG,其論域?yàn)閧3,6,9,12,15,18,21,24,27},從中取7個(gè)模糊語(yǔ)言值。輸入變量qi的隸屬度如圖2所示。
圖2 輸入變量qi的隸屬度曲線圖
系統(tǒng)推理采用Mamdani推理法,由于模糊控制器的輸入qi和Δq各有7個(gè)子集,可以制定49條規(guī)則,模糊規(guī)則如表1所示。
表1 模糊規(guī)則表
由輸入模糊量推導(dǎo)出輸出模糊量,比如IFqi為PM,Δq為NM,那么Δg為PM。根據(jù)加權(quán)平均法可以求出綠燈延時(shí)時(shí)間。模糊控制的具體算法如下:
(1)初始化各相位參數(shù)最短綠燈時(shí)間為gmin=15s,最長(zhǎng)時(shí)間為gmax=50s。最大周期長(zhǎng)為Tmax=225s。
(2)指定第i相位作為起始相位,綠燈時(shí)間gi=gmin=15s。
(3)在gmin的時(shí)間內(nèi),計(jì)算當(dāng)前相位車流量qi和下一個(gè)相位車流量qi+1。
(4)根據(jù)Δq=qi+1-qi,和qi的大小,查模糊規(guī)則表,計(jì)算綠燈延時(shí)時(shí)間Δg。
(5)如果當(dāng)前相位計(jì)算結(jié)束,返回到第(3)步驟進(jìn)行下一個(gè)相位的計(jì)算。
需要注意的是,當(dāng)gi達(dá)到最大值或者Δq大于給定值,控制器直接進(jìn)行相位切換。
為了檢驗(yàn)算法有效性,以通過(guò)交叉路口平均車輛延誤作為評(píng)價(jià)指標(biāo),本文認(rèn)為各路段車輛數(shù)量均服從泊松分布,所有車輛單位“輛”均為標(biāo)準(zhǔn)小客車當(dāng)量(PCU),利用軟硬件結(jié)合的仿真方式對(duì)模糊控制方式和定時(shí)控制方式進(jìn)行比較。圖3給出了定時(shí)控制方法和模糊控制方法對(duì)比效果,橫坐標(biāo)表示交通流量,單位長(zhǎng)度代表450PCU/h,車流量較小時(shí),兩種控制方法得出的車輛平均延誤時(shí)間差別不大,隨著車流量增加,采用模糊控制策略,單位車輛延誤時(shí)間最大可以減少50%。
圖3 定時(shí)控制與模糊控制效果比對(duì)圖
信號(hào)控制系統(tǒng)硬件設(shè)計(jì)主要包括信號(hào)主機(jī)設(shè)計(jì)、從機(jī)控制器設(shè)計(jì)。信號(hào)主機(jī)電路主要包括電源模塊、嵌入式最小系統(tǒng)、人機(jī)交互模塊、RS485總線模塊、以太網(wǎng)接口設(shè)計(jì)等;從機(jī)控制器模塊主要包括單片機(jī)最小系統(tǒng)、電源模塊、信號(hào)燈驅(qū)動(dòng)電路、信號(hào)檢測(cè)電路、時(shí)間LED顯示電路等。信號(hào)主機(jī)模塊和從機(jī)模塊采用RS485總線通訊。各路口信號(hào)主機(jī)通過(guò)以太網(wǎng)和遠(yuǎn)程工控計(jì)算機(jī)實(shí)時(shí)通訊。嵌入式最小系統(tǒng)采用32位基于Cortex-M3內(nèi)核的STM32F10ZET6為CPU,擴(kuò)展電源電路、晶振電路、復(fù)位電路、存儲(chǔ)器電路、鍵盤電路等。人機(jī)交互界面采用大彩工控串口屏,該串口屏集圖片字庫(kù)存儲(chǔ)、RTC顯示、TFT顯示驅(qū)動(dòng)、GUI操作、音頻播放等各種組態(tài)控件于一體,串口屏采用CORTEX-M3和高速FPGA處理器為組合運(yùn)算單元[4]。硬件連接僅需要把串口屏的串口接線端和STM32F10ZET6的串口0連好即可。以下將對(duì)系統(tǒng)主要硬件設(shè)計(jì)進(jìn)行具體研究。
3.1 信號(hào)燈驅(qū)動(dòng)電路
信號(hào)燈是用來(lái)顯示車輛的通行狀態(tài),每個(gè)路口的機(jī)動(dòng)車信號(hào)的轉(zhuǎn)換順序?yàn)榫G(綠閃)-黃-紅。人行道控制信號(hào)為:綠(綠閃)-紅。綠燈表示通行;黃燈表示已經(jīng)駛過(guò)安全線的車輛可以繼續(xù)通行,其它車禁止通行;紅燈表示禁止通行[3]。根據(jù)模糊控制規(guī)則,綠燈可設(shè)最短為15s,最長(zhǎng)為50s,紅燈可設(shè)最短時(shí)間為20s,最長(zhǎng)為55s,黃燈時(shí)間為5s。為了有效控制各信號(hào)燈的通斷,提高系統(tǒng)的抗干擾性,采用MOC3063實(shí)現(xiàn)控制器內(nèi)部電路弱電與燈控輸出強(qiáng)電進(jìn)行有效隔離,同時(shí)MOC3063的過(guò)零導(dǎo)通功能對(duì)強(qiáng)電回路的沖擊電流有消弱作用??煽毓枋菬艨仳?qū)動(dòng)電路的關(guān)鍵器件,選用時(shí)首先考慮滿足電路的耐壓和額定電流指標(biāo)要求,另外,由于燈控驅(qū)動(dòng)電路頻繁開關(guān)及沖擊電流大的特點(diǎn),選用額定電流25A耐壓600V的NXP公司的三象限高換向性能系列可控硅BTA225B-600B[5]。圖4為信號(hào)燈驅(qū)動(dòng)電路。電路工作時(shí),單片機(jī)的P1.0輸出口輸出高電平時(shí),經(jīng)過(guò)反相后,MOC3063第2腳為低電平,信號(hào)燈電路導(dǎo)通,反之,則斷開。信號(hào)燈組采用獨(dú)立的交流電源變壓供電,驅(qū)動(dòng)板共設(shè)4組12路的信號(hào)燈驅(qū)動(dòng)電路,可以分別輸出控制行人燈組信號(hào)和機(jī)動(dòng)車燈組信號(hào)。
圖4 信號(hào)燈驅(qū)動(dòng)電路圖
3.2 車輛信息采集模塊
本文采用地感線圈檢測(cè)器檢測(cè)車輛,傳感器埋設(shè)在道路下面,其基本原理是基于電磁感應(yīng)。工作時(shí),給環(huán)形線圈接入工作電流,當(dāng)車輛通過(guò)環(huán)形地感線圈或者停在環(huán)形線圈上時(shí),以鐵為主要材料的車身切割磁感線,引起感應(yīng)線圈回路電流變化,電感值減少,耦合電路振蕩頻率增加,而當(dāng)車輛離開線圈時(shí),感應(yīng)電流變化引起電感值又增加,振蕩頻率恢復(fù)。車輛檢測(cè)藕合振蕩電路原理圖如圖5所示,該電路為電容反饋三點(diǎn)式振蕩電路,振蕩頻率在300KHZ左右,元器件序號(hào)為D23的兩個(gè)反向的穩(wěn)壓管使振蕩信號(hào)被控制在-5V~+5V之間,P6KE12CA用來(lái)抵制由靜電等產(chǎn)生的瞬間高壓,耦合變壓器原副邊匝數(shù)為1∶1。耦合電路輸出信號(hào)需要經(jīng)過(guò)脈沖整形才可以送入單片機(jī)IO口,脈沖信號(hào)整形電路如圖6所示,耦合電路的輸出端OUT輸出振蕩信號(hào)接入LM293整形電路,經(jīng)過(guò)整形輸出的脈沖信號(hào)送入單片機(jī)的P2.0口,啟動(dòng)定時(shí)器T2對(duì)脈沖信號(hào)進(jìn)行計(jì)時(shí),可以計(jì)算單位時(shí)間所計(jì)脈沖值,判斷有無(wú)車輛經(jīng)過(guò),同時(shí)可以計(jì)算得到車輛經(jīng)過(guò)線圈的時(shí)間。當(dāng)有車輛通過(guò)時(shí),把車輛信息發(fā)送給上位機(jī)。這里規(guī)定一路環(huán)形線圈對(duì)應(yīng)于一個(gè)檢測(cè)通道。
圖5 車輛檢測(cè)藕合振蕩電路圖
圖6 脈沖信號(hào)整形電路圖
系統(tǒng)的軟件設(shè)計(jì)分為主機(jī)的嵌入式系統(tǒng)設(shè)計(jì)以及從機(jī)的單片機(jī)軟件設(shè)計(jì),從機(jī)程序主要是將采集到的前端信號(hào)發(fā)送給主機(jī)以及執(zhí)行主機(jī)傳送過(guò)來(lái)的信號(hào),因此從機(jī)軟件設(shè)計(jì)主要是命令的執(zhí)行,比較簡(jiǎn)單,本文主要闡述主機(jī)較為重要的軟件部分設(shè)計(jì)。主機(jī)基于Ucos_II進(jìn)行應(yīng)用程序的設(shè)計(jì),實(shí)現(xiàn)信號(hào)燈控制器的各種軟件控制功能。Ucos_II是一個(gè)開放式的基于搶占式的實(shí)時(shí)操作系統(tǒng),具有任務(wù)調(diào)度、任務(wù)管理、時(shí)間管理、中斷管理、任務(wù)通信、內(nèi)存管理等系統(tǒng)功能,被廣泛應(yīng)用在實(shí)時(shí)性要求極高的控制系統(tǒng)領(lǐng)域中。本文在研究過(guò)程中,在STM32上移植Ucos_II操作系統(tǒng)后,首先對(duì)Ucos_II及目標(biāo)板進(jìn)行初始化,然后根據(jù)實(shí)際需求調(diào)用OSTaskCreate()創(chuàng)建多任務(wù),具體包括啟動(dòng)任務(wù)、車流數(shù)據(jù)采集任務(wù)、算法任務(wù)、I/O口數(shù)據(jù)處理任務(wù)、串口數(shù)據(jù)處理任務(wù)、信號(hào)控制任務(wù)、人機(jī)交互任務(wù)、以太網(wǎng)通訊任務(wù)等。系統(tǒng)軟件架構(gòu)圖如圖7所示。
圖7 系統(tǒng)軟件架構(gòu)圖
在調(diào)用Ucos_II其它任務(wù)之前,系統(tǒng)首先調(diào)用OSInit()函數(shù)初始化所有變量和數(shù)據(jù)結(jié)構(gòu),并且建立空閑任務(wù)OS_TaskIdle(),將該任務(wù)優(yōu)先級(jí)設(shè)成最低并總處于就緒狀態(tài)。建立啟動(dòng)任務(wù)TaskStart()之后,創(chuàng)建車流量信號(hào)采集等5個(gè)任務(wù),通過(guò)調(diào)用OSStart()啟動(dòng)多任務(wù)環(huán)境。
4.1 車流數(shù)據(jù)采集任務(wù)
在交叉路口的控制中,需要獲取實(shí)時(shí)的交通流數(shù)據(jù),因此,設(shè)計(jì)車流量采集任務(wù)實(shí)現(xiàn)前端從機(jī)模塊與主機(jī)通信。采集任務(wù)使用STM32F103ZET6的串口2通過(guò)RS485與前端從機(jī)模塊通訊,讀取車流量檢測(cè)器模塊脈沖存儲(chǔ)數(shù)組中的脈沖個(gè)數(shù)。在該任務(wù)中,首先使能APB2總線的串口時(shí)鐘,然后調(diào)用USART_Init()初始化串口、最后需要開啟串口響應(yīng)中斷。Task_Uart()任務(wù)通過(guò)中斷觸發(fā)的方式執(zhí)行,當(dāng)Uart2未發(fā)生中斷時(shí),任務(wù)處于掛起等待狀態(tài),當(dāng)從機(jī)模塊采集完路口車輛信息數(shù)據(jù)時(shí),通過(guò)單片機(jī)串口發(fā)送信號(hào)給主機(jī)Uart2,主機(jī)串口中斷服務(wù)程序被執(zhí)行,向采集任務(wù)發(fā)送信號(hào)量,Task_Uart任務(wù)調(diào)用接收函數(shù)獲取車輛流量數(shù)據(jù)。在任務(wù)建立前分配任務(wù)優(yōu)先級(jí)和堆棧:
#defineTask_Uart_PRIO10;
#defineTask_uart_StkLength128。
車流量采集任務(wù)的流程圖如圖8所示。
圖8 車流量采集任務(wù)流程圖
4.2 算法任務(wù)
Task_alg()任務(wù)主要對(duì)uart2采集的車流量數(shù)據(jù)(排隊(duì)長(zhǎng)度)應(yīng)用模糊控制策略進(jìn)行解算,得到新的控制參數(shù)(綠燈延時(shí)長(zhǎng))。Task_alg()任務(wù)通過(guò)觸發(fā)的方式執(zhí)行,平時(shí)任務(wù)處于掛起等待狀態(tài)。當(dāng)一個(gè)信號(hào)周期完成后,任務(wù)獲得排隊(duì)長(zhǎng)度數(shù)據(jù),通過(guò)任務(wù)調(diào)度執(zhí)行Alg_Ctl()函數(shù),運(yùn)算得到新的控制參數(shù)。Alg_Ctl()函數(shù)根據(jù)控制方案初始化中設(shè)置的控制模式,運(yùn)用模糊控制算法計(jì)算出控制參數(shù)。在任務(wù)建立前,分配任務(wù)優(yōu)先級(jí)和堆棧如下:
#defineTask_Alg_PRIO11;
#defineTask_Alg_StkLength128。
算法任務(wù)的流程圖如圖9所示。
圖9 算法任務(wù)流程圖
本文設(shè)計(jì)了基于嵌入式智能交通信號(hào)控制系統(tǒng),分析了基于模糊理論的智能控制算法,比對(duì)了該算法對(duì)傳統(tǒng)的定時(shí)控制算法的優(yōu)越性。應(yīng)用目前主流的32位嵌入式處理器進(jìn)行了硬件結(jié)構(gòu)的分析,對(duì)信號(hào)采集和燈光驅(qū)動(dòng)部分給出了電路原理圖并進(jìn)行了詳細(xì)的分析。移植實(shí)時(shí)操作系統(tǒng)進(jìn)行多任務(wù)管理,本文給出了系統(tǒng)的軟件結(jié)構(gòu),對(duì)車流量信號(hào)采集以及算法任務(wù)進(jìn)行了分析。經(jīng)實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)性價(jià)比高,具有很大的推廣應(yīng)用價(jià)值。
[1]張 磊.車流高峰期交通信號(hào)的模糊控制及仿真[J].應(yīng)用數(shù)學(xué)與計(jì)算數(shù)學(xué)學(xué)報(bào),2011(1):88-88.
[2]王 超.基于物聯(lián)網(wǎng)的智能交通控制系統(tǒng)與實(shí)現(xiàn)[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2014(5):72-73.
[3]張曉榮.智能交通燈的設(shè)計(jì)及其FPGA的實(shí)現(xiàn)[J].傳感器世界,2013(12):65.
[4]張葉茂.基于串口屏和LPC1752的通用工控平臺(tái)設(shè)計(jì)[J].輕工科技,2015(12):109-110.
[5]孫 旭.一種脈沖銫燈的驅(qū)動(dòng)電路設(shè)計(jì)[J].光電技術(shù)應(yīng)用,2014(29):53.
[6]管 珍.信號(hào)燈時(shí)間控制優(yōu)化[J].聊城大學(xué)學(xué)報(bào)(自然科學(xué)版),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—),碩士研究生,講師,研究方向:智能控制、嵌入式技術(shù)。
2016年度廣西壯族自治區(qū)中青年教師基礎(chǔ)能力提升項(xiàng)目(編號(hào)KY2016YB628)
U491.5+
A
10.13282/j.cnki.wccst.2016.12.021
1673-4874(2016)12-0074-06
2016-10-26