陳良 史志才 張翔 李長慶
(上海工程技術(shù)大學(xué),上海 201620)
主題詞:臨界安全距離 預(yù)測模型 粒子群優(yōu)化算法 人工神經(jīng)網(wǎng)絡(luò)
車輛碰撞事故大多是由車速過快或者車與車之間的距離過小等因素導(dǎo)致的。如果駕駛員可以及時(shí)了解車輛的安全距離,并提前采取減速措施,則大多數(shù)交通事故都可避免[1-3]。因此,建立行車動(dòng)力學(xué)系統(tǒng),預(yù)測行車最小安全距離,對(duì)改善交通安全狀況有著十分積極的作用[4]。人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)具有較好的自學(xué)習(xí)和自適應(yīng)能力,可用于建立汽車安全距離預(yù)測模型。但ANN 通常將所有訓(xùn)練數(shù)據(jù)導(dǎo)入網(wǎng)絡(luò),迭代速率不夠高,且通過梯度下降方法修正權(quán)值,結(jié)果很容易陷入局部最優(yōu),所以ANN 方法預(yù)測的安全距離可能不準(zhǔn)確[5]。目前常用遺傳算法(Genetic Algorithm,GA)優(yōu)化ANN的結(jié)構(gòu),訓(xùn)練ANN的參數(shù)和試驗(yàn)數(shù)據(jù),獲取最佳適應(yīng)度。但與粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法相比,GA 的精度低、收斂速度慢,實(shí)現(xiàn)難度大[6]。
為有效解決上述問題,本文使用PSO 優(yōu)化ANN 的權(quán)值和閾值。首先建立汽車防撞的數(shù)學(xué)模型,在此基礎(chǔ)上編寫車輛安全距離仿真軟件,并用其開發(fā)300套訓(xùn)練樣本數(shù)據(jù)用于訓(xùn)練PSO-ANN模型,最后隨機(jī)選取60組樣本數(shù)據(jù)進(jìn)行預(yù)測,將最終預(yù)測結(jié)果與ANN 預(yù)測結(jié)果進(jìn)行比較。
汽車制動(dòng)過程可分成4個(gè)階段,即駕駛員的瞬時(shí)反應(yīng)階段t1、制動(dòng)緩沖階段t2、減速制動(dòng)增長階段t3和制動(dòng)連續(xù)階段t4,汽車制動(dòng)減速度與制動(dòng)時(shí)間的關(guān)系如圖1所示[7]。

圖1 車輛制動(dòng)過程示意
忽略路面摩擦等因素,假設(shè)汽車初始時(shí)刻以速度vt勻速前進(jìn),則在t1~t4時(shí)間段內(nèi),汽車行駛的路程分別為,其中,amax為最大減速度。
一般來說,t3很小,約為0.15~0.30 s,并且amax<10 m/s2,所以s4表達(dá)式的最后一項(xiàng)可忽略,汽車行駛過程中制動(dòng)總距離為:

行駛的兩輛車之間的安全距離必須大于行車的臨界安全距離才能確保車輛交通安全[8],跟車行駛情況如圖2所示。

圖2 跟車行駛示意
假設(shè)后車移動(dòng)速度為v0,前車移動(dòng)速度為v1,則二者的速度差為vr=v0-v1。設(shè)D1、D2分別為后車和前車行駛的距離,d為停車后兩車的預(yù)警距離,則臨界安全距離D為:

由于道路交通問題是由前、后兩車的運(yùn)動(dòng)狀態(tài)共同決定的,而前車的運(yùn)動(dòng)狀態(tài)無法控制,因此本文分為前車靜止、前車勻速行駛和前車勻減速行駛3種情況進(jìn)行分析。
2.2.1 前車處于靜止?fàn)顟B(tài)
前車靜止時(shí),D2=0,此時(shí)后車以初速度v0、減速度a0接近前車,因此,臨界行車安全距離為:

2.2.2 前車處于勻速運(yùn)動(dòng)狀態(tài)
前車勻速行駛時(shí):如果v0≤v1,不會(huì)發(fā)生碰撞;如果v0>v1,在減速制動(dòng)過程中,只要保證在碰撞前將后車速度減低至不超過v1即可確保安全。故此時(shí)臨界行車安全距離為:

2.2.3 前車處于勻減速運(yùn)動(dòng)狀態(tài)
前車以減速度a1勻減速行駛最容易導(dǎo)致汽車碰撞事故,在此過程中,后車的行駛距離D1與2.2.1 節(jié)中相同。由于前車主動(dòng)制動(dòng),駕駛員的反應(yīng)時(shí)間為0,因此臨界行車安全距離為:

ANN 是一種靈活的非線性近似算法,用于確定所有輸入因子與輸出數(shù)據(jù)之間的關(guān)系。其優(yōu)點(diǎn)在于,能從實(shí)例中自學(xué)習(xí)并獲取數(shù)據(jù)之間的近似關(guān)系,能夠聯(lián)想存儲(chǔ)數(shù)據(jù),能查找數(shù)據(jù)并獲取優(yōu)化解[9]。其基本思路是:首先初始化ANN 的權(quán)值和閾值,并通過各層之間的傳遞函數(shù)進(jìn)行計(jì)算,向后層傳遞并得到相應(yīng)的輸出值;然后計(jì)算輸出值與期望值之間的誤差,并且反向修正層與層之間的權(quán)值和閾值;最后在迭代次數(shù)上限內(nèi),反復(fù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),直到誤差滿足條件為止。其中隱含層節(jié)點(diǎn)j的輸出為:

輸出層節(jié)點(diǎn)o的輸出為:

式中,H和O分別為隱含層和輸出層的節(jié)點(diǎn)個(gè)數(shù);ωji和ωoj分別為輸入層i到隱含層j和隱含層j到輸出層o的權(quán)值;xi和xj分別為輸入層的輸出和隱含層的輸出;bj和bo分別為隱含層和輸出層的閾值;fj和fo分別為隱含層和輸出層的激活函數(shù)。
PSO在搜索空間中隨機(jī)生成粒子,每個(gè)粒子都可能是系統(tǒng)的最優(yōu)解。粒子每次都會(huì)更新出2個(gè)不同的值,即粒子本身找到的最優(yōu)解Pbest和所有群體找到的最優(yōu)解Gbest。設(shè)第i個(gè)粒子位置為Xid={Xi1,Xi2,…,Xin},速度為Vid={Vi1,Vi2,…,Vin},則PSO更新公式為[10]:

式中,c1和c2為學(xué)習(xí)因子;r1和r2為隨機(jī)函數(shù),取值范圍為[0,1]。
本文的目的是利用PSO 優(yōu)化ANN,獲取適應(yīng)度最大的權(quán)值和閾值,并代入ANN得到最優(yōu)輸出值[11-12]。具體操作如下:
初始化ANN 和PSO 結(jié)構(gòu),并確定相關(guān)參數(shù)。權(quán)值和閾值的維數(shù)為L=IH+H+HO+O,其中I為輸入層節(jié)點(diǎn)個(gè)數(shù)。
a.計(jì)算適應(yīng)度f:

式中,M為試驗(yàn)樣本總數(shù);yij和分別為理論和實(shí)際的輸出。
b.比較Pbest和Gbest并選出全局最優(yōu)解。首先計(jì)算所有個(gè)體的適應(yīng)度fi,若fi>Pbest,則fi為個(gè)體最優(yōu)解,使用fi代替Pbest,否則Pbest為個(gè)體最優(yōu)解。然后將fi與全局最優(yōu)解進(jìn)行比較,如果fi>Gbest,則fi為全局最優(yōu)解,否則Gbest為全局最優(yōu)解。
c.根據(jù)式(8)、式(9)更新粒子位置和速度。
d.判斷是否符合終止條件。如果適應(yīng)度值小于設(shè)定誤差或更新次數(shù)達(dá)到上限,則輸出全局最優(yōu)解;否則回到步驟b。
由上述防撞模型可知:行車安全距離主要受前車移動(dòng)速度、后車移動(dòng)速度和前車減速度的影響。本文在此基礎(chǔ)上提出,路面情況也是影響車輛安全距離的主要因素之一。路面情況主要受天氣因素影響,不同的天氣導(dǎo)致輪胎與路面的摩擦力不同,進(jìn)而影響臨界行車安全距離[13]。本文參照文獻(xiàn)[14],將路面情況分成干燥路面、潮濕路面、積雪路面、冰凍路面等4種情況,路面附著系數(shù)分別為0.75、0.50、0.24、0.10。
選取M個(gè)試驗(yàn)數(shù)據(jù)(xi,yi)M,i=1,2,…,M,試驗(yàn)數(shù)據(jù)的輸入為:其中,ρ為路面附著系數(shù)。設(shè)不同路面的平均附著系數(shù)為φ,汽車的最大減速度為amax=φg。以上4 種路面情況的最大減速度分別為0.75g、0.5g、0.24g、0.1g,試驗(yàn)數(shù)據(jù)的輸出為
本文采用MATLAB 2014b作為分析工具,在上述行車安全距離的數(shù)學(xué)模型基礎(chǔ)上,利用Java開發(fā)出行車安全距離預(yù)測的仿真軟件并測得試驗(yàn)數(shù)據(jù)。仿真軟件主界面如圖3所示。

圖3 仿真軟件主界面
通過仿真軟件訓(xùn)練300 組試驗(yàn)數(shù)據(jù),4 種路況各訓(xùn)練75組,并從中隨機(jī)選取60組數(shù)據(jù)作為預(yù)測模型的輸入,預(yù)測出60 組臨界安全距離。由于輸入數(shù)據(jù)的量綱不同,需要對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行歸一化處理:

式中,x為轉(zhuǎn)換前的參數(shù)值;y為轉(zhuǎn)換后的參數(shù)值;xmin、xmax分別為仿真數(shù)據(jù)的最小值和最大值。
將PSO-ANN 預(yù)測模型設(shè)為4×12×1的網(wǎng)絡(luò)結(jié)構(gòu),c1和c2均設(shè)為1.49,維數(shù)L設(shè)為73個(gè),訓(xùn)練誤差設(shè)為1×10-3,迭代上限設(shè)為200 次,學(xué)習(xí)率設(shè)為5.0×10-4。設(shè)置輸出層函數(shù)為Purelin 函數(shù)。隱含層的激活函數(shù)為Sigmoid函數(shù),表達(dá)式為:

式中,u為二維坐標(biāo)的橫坐標(biāo)取值。
ANN 預(yù)測模型設(shè)置為4×12×1 的結(jié)構(gòu),學(xué)習(xí)率設(shè)置為5.0×10-4。
PSO-ANN 和ANN 的預(yù)測結(jié)果如圖4 所示。由圖4可知:與ANN 方法預(yù)測結(jié)果相比,采用PSO-ANN 方法預(yù)測的臨界安全距離更加接近實(shí)際行車安全距離,其絕對(duì)誤差曲線變化幅度更小,表現(xiàn)更精確。

圖4 實(shí)際安全距離和絕對(duì)誤差對(duì)比結(jié)果
對(duì)于預(yù)測結(jié)果的評(píng)定,當(dāng)下常用的指標(biāo)是絕對(duì)誤差百分比(Absolute Percentage Error,APE)和平均絕對(duì)誤差百分比(Mean Absolute Percentage Error,MAPE):

式中,M為樣本數(shù)量;tm為實(shí)際值;ym為預(yù)測值。
在平均絕對(duì)誤差方面,ANN 與PSO-ANN 預(yù)測結(jié)果的MAPE 分別是13.5%和5.7%,相差7.8 百分點(diǎn),后者表現(xiàn)更穩(wěn)定。其主要原因在于,ANN 在非線性預(yù)測方面的學(xué)習(xí)速率偏低,且采用梯度下降方法修正權(quán)值,很容易陷入局部最優(yōu),而PSO-ANN 可以大幅提高人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速率,減少可調(diào)參數(shù),通過迭代找到全局最優(yōu)解。
本文建立了行車安全距離數(shù)學(xué)模型,針對(duì)ANN 算法的諸多缺點(diǎn),提出用PSO 優(yōu)化ANN 參數(shù),并建立PSO-ANN 的行車安全距離預(yù)測模型,然后編寫仿真軟件,考慮不同路面情況,生成了300組樣本數(shù)據(jù),對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理,并代入所提出的PSO-ANN 模型。仿真結(jié)果表明,本文提出的PSO-ANN 行車安全距離預(yù)測模型預(yù)測結(jié)果的平均絕對(duì)誤差百分比僅為5.7%,相比于目前常用的ANN預(yù)測模型大幅降低。
本文僅預(yù)測了前、后兩車的臨界行車安全距離,在實(shí)際交通場景中往往是多車共行,因此后續(xù)研究重點(diǎn)為多車的臨界行車安全距離預(yù)測。