城市汽車保有量的迅猛增加,帶來的交通擁堵問題日益突出。為此需采取有效手段對交通流量進行預(yù)測,幫助出行人提高出行效率?;诖嗽O(shè)計了一個基于.NET框架的交通預(yù)測監(jiān)控系統(tǒng),該系統(tǒng)利用超聲波傳感器實時采集路段車速數(shù)據(jù),通過串口通信實現(xiàn)交通現(xiàn)場與上位機的數(shù)據(jù)傳輸,并利用神經(jīng)網(wǎng)絡(luò)模型對交通數(shù)據(jù)做出預(yù)測。實際運行證明該系統(tǒng)可以準(zhǔn)確預(yù)測交通狀況,幫助行人合理規(guī)劃出行路線。
【關(guān)鍵詞】交通系統(tǒng) 上位機 神經(jīng)網(wǎng)絡(luò) 串口通信
高德地圖發(fā)布的2017年第一季度中國主要城市交通分析報告中稱,同比高德地圖交通大數(shù)據(jù)去年第一季度檢測的60個城市中,超半數(shù)城市的擁堵指數(shù)依然很高。嚴(yán)重的城市交通擁堵不僅影響了居民的正常出行,而且加劇了環(huán)境污染。
為了幫助行人了解出行路段的交通情況,必須對路段交通進行實時分析和預(yù)測。系統(tǒng)利用.NET框架平臺設(shè)計上位機,實時顯示交通當(dāng)前運行情況以及預(yù)測情況。
1 交通數(shù)據(jù)采集發(fā)送原理
1.1 超聲波檢測原理
系統(tǒng)以STC15F2K60S2單片機為控制核心,主要完成的工作有與超聲波通訊、定時器計時、交通數(shù)據(jù)的運算、存儲和與上位機進行串口通訊等。交通數(shù)據(jù)采集部分采用一對40KHz分體式超聲波傳感器T40-16、R40-16作為檢測器。
當(dāng)單片機產(chǎn)生40KHz的方波脈沖信號后,經(jīng)超聲波發(fā)射端T40-16發(fā)射脈沖信號,發(fā)射的脈沖信號如果遇到障礙物將會反彈過來,由超聲波接收端R40-16接受脈沖信號。在程序設(shè)計中,可以利用單片機中定時器確定發(fā)射脈沖和接受脈沖的時間差,從而計算出障礙物與超聲波探頭之間的距離,再利用時差法測速。
為了消除時差測速法導(dǎo)致的測量誤差,系統(tǒng)將5min之內(nèi)通過路段的平均速度作為一個數(shù)據(jù)單位,由單片機計算出具體值并及時存儲,發(fā)送至上位機。
1.2 數(shù)據(jù)傳輸原理
串行通信具有遠距離傳輸成本低的優(yōu)點。STC15F2K60S2單片機內(nèi)部有兩個可編程全雙工串行通信接口。系統(tǒng)中單片機利用串口1完成數(shù)據(jù)幀的發(fā)送,數(shù)據(jù)采集端與上位機接收端通過規(guī)定好的串口通信協(xié)議進行通信,上位機采用自動獲取串口方式,波特率為9600bps,8位數(shù)據(jù)構(gòu)成一幀,在差錯檢驗中數(shù)據(jù)幀采用CRC16循環(huán)冗余校驗法,選取的生成多項式為0XA001,前六位為數(shù)據(jù)位,后兩位為校驗位,確保數(shù)據(jù)正確傳輸。
2 交通流量預(yù)測
2.1 BP神經(jīng)網(wǎng)絡(luò)在交通預(yù)測系統(tǒng)中的實現(xiàn)
為了實現(xiàn)交通流量的準(zhǔn)確預(yù)測,系統(tǒng)采用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)建立數(shù)學(xué)模型。為了提高預(yù)測精度,系統(tǒng)選用某5天的數(shù)據(jù)為輸入變量,第6天的數(shù)據(jù)為輸出變量,第7天的數(shù)據(jù)用于驗證網(wǎng)絡(luò)預(yù)測精度。
這樣輸入層神經(jīng)元個數(shù)為5,輸出層神經(jīng)元個數(shù)為1,通常隱含層節(jié)點數(shù)的選取采用經(jīng)驗公式得為4~13。隱含層神經(jīng)元個數(shù)的最終確定,可通過MATLAB中神經(jīng)網(wǎng)絡(luò)函數(shù)進行仿真確定。
2.2 搭建BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型
在BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型中輸入神經(jīng)元Xm通過與權(quán)值ωmi的累加乘積完成對隱含層神經(jīng)元的刺激,由于輸出值不包含負值,隱含層的激活函數(shù)可采用Log-Sigmoid函數(shù)作為傳遞函數(shù)。隱含層Ki通過與權(quán)值ωin的累加乘積完成對輸出層的刺激,輸出層神經(jīng)元的輸出函數(shù)Yn通常采用線性函數(shù)。
下面利用MATLAB軟件確定其隱含層個數(shù),以及訓(xùn)練函數(shù)。
2.3 MATLAB軟件仿真
對于如何將誤差信號反向傳播,不斷修正權(quán)值,MATLAB提供了很多訓(xùn)練函數(shù)。為了建立有效的預(yù)測模型,假定系統(tǒng)訓(xùn)練次數(shù)為10000次,收斂誤差為0.01,學(xué)習(xí)率為0.3。
先采用訓(xùn)練函數(shù)traingd、traingdx由仿真結(jié)果可知當(dāng)訓(xùn)練次數(shù)達到最大值10000時誤差均不滿足訓(xùn)練要求。最后采用trainlm算法,對系統(tǒng)進行仿真分析,當(dāng)隱含層數(shù)為12時,訓(xùn)練誤差僅為0.00960,訓(xùn)練次數(shù)為79次,訓(xùn)練時長1s,此時訓(xùn)練速度較快,系統(tǒng)誤差滿足設(shè)計要求。這樣系統(tǒng)訓(xùn)練函數(shù)采用trainlm函數(shù),隱含層設(shè)置12個。
3 上位機設(shè)計
為了向出行人提供一種簡潔、直觀的人機交互界面,系統(tǒng)利用微軟用戶界面框架技術(shù)(Windows Presentation Foundation,WPF)技術(shù)設(shè)計出用戶界面。
當(dāng)單擊即將通過的路段坐標(biāo)時可進入具體交通數(shù)據(jù)監(jiān)測畫面,如圖1所示。該界面可以實時顯示道路當(dāng)前的平均車速,和前一個星期的交通數(shù)據(jù)。系統(tǒng)根據(jù)平均車速的大小和交通擁堵指數(shù)定義將當(dāng)前道路運行狀態(tài)進行分類,在出行建議中,告知出行者當(dāng)前交通狀況,并利用C#語言實現(xiàn)MATLAB仿真中確定的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)模型,預(yù)測出5min后通過此路段的平均車速。出行者也可參考歷史交通數(shù)據(jù),做出出行選擇。
4 結(jié)語
本系統(tǒng)根據(jù)出行者對交通認知的需求出發(fā),將傳感器技術(shù)、串口通信、神經(jīng)網(wǎng)絡(luò)算法相結(jié)合,通過上位機平臺實時顯示采集到的大量交通數(shù)據(jù),可有效監(jiān)測當(dāng)前交通狀況并預(yù)測未來交通狀況,系統(tǒng)架構(gòu)完整,應(yīng)用型強。但系統(tǒng)功能較為單一,未能充分利用傳感器技術(shù)和上位機平臺,為出行者提供更多交通信息,這為進一步豐富系統(tǒng)功能,指明了方向。
參考文獻
[1]蘭羽.基于AT89C51的超聲波測速系統(tǒng)設(shè)計[J].電子設(shè)計工程,2013(07):137-139.
[2]曹虹.基于BP神經(jīng)網(wǎng)絡(luò)的交通流量預(yù)測[D].長安大學(xué),2012.
[3]王剛.基于.net的串口示波器開發(fā)[J].電子測試,2016(13):82-83+77.
[4]趙朝鳳.淺析BP神經(jīng)網(wǎng)絡(luò)基本模型的C語言實現(xiàn)[J].通信技術(shù),2013(01):89-91+94.
作者簡介
景鵬(1995-),男,江蘇省鹽城市人。大學(xué)本科學(xué)歷。研究方向為嵌入式開發(fā)。
徐海彬(1995-),男,江蘇省鹽城市人。大學(xué)本科學(xué)歷。研究方向為機電一體化。
杜年茂(1994-),男,江蘇省徐州市人。大學(xué)本科學(xué)歷。研究方向為.NET平臺開發(fā)。
朱鵬(1995-),男,江蘇省鎮(zhèn)江市人。大學(xué)本科學(xué)歷。研究方向為計算機技術(shù)。
作者單位
江蘇科技大學(xué) 江蘇省張家港市 215600endprint