葉 宇,范超群,陳華晟,桑海浪,鄧小超,潘明章
(1.廣西玉柴機(jī)器股份有限公司,廣西 玉林 537005;2.玉柴芯藍(lán)新能源動(dòng)力科技有限公司,廣西 南寧 530000;3.廣西大學(xué)機(jī)械工程學(xué)院,廣西 南寧 530004)
道路坡度是影響車輛行駛過程中縱向動(dòng)力學(xué)控制的重要參數(shù)之一,對(duì)于重心高的車輛,在車輛控制中不考慮坡度的影響,可能會(huì)造成錯(cuò)誤的車輛控制策略并導(dǎo)致事故發(fā)生[1]。其中,運(yùn)動(dòng)學(xué)方法常用于坡度估計(jì),采用車載GPS 信息及大氣壓力信息可在不增加其余傳感器的情況下對(duì)坡度進(jìn)行估計(jì)[2,3]。
目前,LSTM 模型在車輛速度預(yù)測(cè)、車輛自適應(yīng)巡航控制等方面研究中具有良好的使用效果,其在長(zhǎng)期和短期的預(yù)測(cè)效果中具有一定的可靠性。利用車速和GPS 信息對(duì)坡度進(jìn)行估計(jì),并搭建基于LSTM 的坡度預(yù)測(cè)模型以對(duì)坡度進(jìn)行預(yù)測(cè),最后采用了自然駕駛數(shù)據(jù)對(duì)模型可靠性進(jìn)行了評(píng)估。
根據(jù)CAN 總線收集的車速和GPS 高程信息進(jìn)行坡度計(jì)算,計(jì)算式(1)-(2)。在角度較小時(shí)有:
其中H為GPS 高程,S為車輛實(shí)際行駛路程,L為GPS 高程間直線距離。則坡度可表示為:
其中△t為從高程H1行駛到高程H2所用時(shí)間,v1,v2分別為在高程和處車速。
由式(2)可知,GPS 高程與車速是確定坡度的重要影響因素,在實(shí)際數(shù)據(jù)采集過程中,可能存在數(shù)據(jù)丟失或異常的情況。針對(duì)海拔數(shù)據(jù)缺失或異常的情況,采用如圖1 流程進(jìn)行海拔修復(fù)。對(duì)于車速來說,當(dāng)車輛處于停車狀態(tài)時(shí)(v= 0),其GPS 高程應(yīng)保持不變,故其坡度保持不變,當(dāng)前位置的坡度采用相近的合理值進(jìn)行填充。在車速數(shù)據(jù)異常狀態(tài)下,采用線性插值法進(jìn)行修正。
圖1 GPS 海拔高度修復(fù)流程
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是一種特殊類型的神經(jīng)網(wǎng)絡(luò),對(duì)于處理序列數(shù)具有良好的適應(yīng)效果。其基本原理是該神經(jīng)網(wǎng)絡(luò)會(huì)對(duì)先前的信息進(jìn)行存儲(chǔ),并應(yīng)用在當(dāng)前輸出的計(jì)算中即當(dāng)前神經(jīng)元的輸出不僅來自于當(dāng)前神經(jīng)元的輸入,也包含了來自以往神經(jīng)元的輸出。與一般神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類似,RNN 的結(jié)構(gòu)仍由輸入層、隱藏層和輸出層組成,圖2 展示了RNN 在隱藏層中的各層間的反饋情況。
圖2 RNN 隱藏層示意
在RNN 的學(xué)習(xí)過程中,長(zhǎng)距離信息仍被保留故其學(xué)習(xí)能力會(huì)隨著時(shí)間的推移而下降。在長(zhǎng)短期記憶模型[4](Long short-term memory,LSTM)中,隱藏層采用包括輸入門、輸出門和遺忘門在內(nèi)的存儲(chǔ)模塊使得信息得以更新,從而避免RNN 保留大量的輸入信息。針對(duì)所采用的基于實(shí)時(shí)車速和GPS 海拔高度的坡度計(jì)算方法具有良好的適用性。LSTM 能根據(jù)記憶模塊對(duì)歷史數(shù)據(jù)的訓(xùn)練,綜合誤差能夠有選擇地丟棄或增加信息,形成對(duì)歷史數(shù)據(jù)的長(zhǎng)期記憶,從而獲得數(shù)據(jù)特征,構(gòu)建訓(xùn)練模型。
“門”是LSTM 特有的控制信息選擇性通過的邏輯結(jié)構(gòu),每個(gè)“門”的功能不同,其所采用的計(jì)算式也不同,LSTM 中隱藏層的基本結(jié)構(gòu)如圖3 所示。
圖3 LSTM 隱藏層基本結(jié)構(gòu)
根據(jù)每個(gè)“門”中不同的功能,其計(jì)算方法及傳遞內(nèi)容有:
(1)遺忘門內(nèi)采用式(3)進(jìn)行計(jì)算
其中,xt是當(dāng)前層的輸入值,ht-1是上一層的輸出,Wf是遺忘門的權(quán)重矩陣,σ為sigmoid 函數(shù),bf為偏置項(xiàng)也稱作誤差項(xiàng)。在遺忘門內(nèi)ft的結(jié)果可當(dāng)作是信息被遺忘的概率,并將結(jié)果儲(chǔ)存到遺忘門的結(jié)果xt處。在遺忘門中,主要判斷信息被丟棄的程度。
(2)輸入門內(nèi)采用式(4)~(6)進(jìn)行計(jì)算
該運(yùn)算中將利用Sigmoid 函數(shù)和tanh 函數(shù)共同控制所加入的新信息。tanh 函數(shù)產(chǎn)生一個(gè)新的候選向量,以控制所加入的信息的量。
(3)輸出門采用式(7)-(8)進(jìn)行計(jì)算
該運(yùn)算運(yùn)用Sigmoid 函數(shù)確定輸出信息的總量后再采用tanh 函數(shù)控制輸出的信息中被過濾掉的信息的量,最終得到該層所有的輸出信息。
為了保證預(yù)測(cè)結(jié)果一定的準(zhǔn)確性,采用下述兩個(gè)指標(biāo)來對(duì)坡度預(yù)測(cè)模型進(jìn)行評(píng)價(jià)。
(1)平均絕對(duì)誤差(MAE)
其中,xi為原始數(shù)據(jù)值,下同。pi為利用坡度預(yù)測(cè)模型進(jìn)行預(yù)測(cè)的結(jié)果值,下同。
該指標(biāo)能直觀反應(yīng)預(yù)測(cè)值與實(shí)際值的偏差,其單位與預(yù)測(cè)值或真實(shí)值相同,該數(shù)值越小說明預(yù)測(cè)結(jié)果越準(zhǔn)確。
(2)均方根誤差(RMSE)
該指標(biāo)計(jì)算的是預(yù)測(cè)值和實(shí)際值對(duì)應(yīng)樣本點(diǎn)的誤差的平方和的均值,該數(shù)值越小說明預(yù)測(cè)結(jié)果越準(zhǔn)確。
根據(jù)坡度計(jì)算所采的方法中利用所采集的車速和GPS 海拔高度具有較強(qiáng)的時(shí)序性特征,構(gòu)建基于LSTM 的坡度預(yù)測(cè)模型,該模型的訓(xùn)練具體過程為:
(1)坡度數(shù)據(jù)計(jì)算及預(yù)處理。對(duì)計(jì)算的坡度數(shù)據(jù)進(jìn)行錯(cuò)漏篩查,并采用插值法對(duì)數(shù)據(jù)進(jìn)行更正。
(2)對(duì)原始數(shù)據(jù)進(jìn)行歸一化處理,以此作為L(zhǎng)STM模型訓(xùn)練的輸入。
(3)確定模型結(jié)構(gòu)及參數(shù)。通過預(yù)訓(xùn)練確定模型所含的輸入層、隱藏層和輸出層的數(shù)目。并確定激勵(lì)函數(shù)、神經(jīng)元數(shù)目、損失函數(shù)、批處理數(shù)目、迭代次數(shù)等參數(shù)。
(4)初始化權(quán)重矩陣。采用隨機(jī)數(shù)進(jìn)行初始化。
(5)將完成歸一化的坡度數(shù)據(jù)導(dǎo)入至輸入層,由激活函數(shù)得到該層的輸出結(jié)果。
(6)將(5)的輸出結(jié)果及上一時(shí)刻的神經(jīng)元狀態(tài)值一同輸入至LSTM 模塊,經(jīng)過該模塊后,獲得該隱藏層的輸出結(jié)果,將其作為下一個(gè)隱藏層的輸入之一,并重復(fù)該步驟直到遍歷所有的隱藏層。
(7)將完成(6)的輸出結(jié)果進(jìn)行輸出,該結(jié)果即為該時(shí)刻的坡度預(yù)測(cè)結(jié)果。
(8)將數(shù)據(jù)降至一維后經(jīng)過輸出層,并進(jìn)行反歸一化,得到與原始數(shù)據(jù)數(shù)量級(jí)相同的預(yù)測(cè)值后輸出最終結(jié)果。
利用一半掛車自然行駛數(shù)據(jù)共40379 條作為基于LSTM 坡度預(yù)測(cè)模型的驗(yàn)證數(shù)據(jù)集。在數(shù)據(jù)收集過程中,其海拔信息易于丟失,故在采用線性插值的方法對(duì)GPS 海拔高度進(jìn)行修復(fù),GPS 海拔及計(jì)算坡度數(shù)據(jù)修復(fù)示意如圖4 及圖5 所示。
圖4 GPS 海拔高度修復(fù)示意圖
圖5 坡度修復(fù)示意圖
根據(jù)上述算法,在預(yù)訓(xùn)練過程中考慮到對(duì)數(shù)據(jù)預(yù)測(cè)準(zhǔn)確性的要求,采用1 個(gè)輸入層、1 個(gè)LSTM 和1 個(gè)輸出層的網(wǎng)絡(luò)結(jié)構(gòu)。LSTM 層神經(jīng)元數(shù)目在數(shù)據(jù)上表現(xiàn)為矩陣形式及矩陣維度,其數(shù)目的確定并沒有固定值,通過多次模擬結(jié)果確定為16,同時(shí)確定采用epoch 的數(shù)目為50 既能滿足準(zhǔn)確性要求又能又比較高的訓(xùn)練效率。對(duì)于激活函數(shù),采用sigmoid 函數(shù)和tanh 函數(shù)能夠滿足LSTM 模型中的輸入和輸出的要求。損失函數(shù)采用MSE 函數(shù),不僅能滿足模型輸出的要求也能對(duì)該模型對(duì)交通流預(yù)測(cè)的適用性進(jìn)行評(píng)價(jià)。優(yōu)化函數(shù)采用adam,該函數(shù)是RNN 模型中常用的優(yōu)化函數(shù),LSTM 作為RNN 的一種,采用該函數(shù)能對(duì)梯度下降具有良好的適應(yīng)效果。在模型驗(yàn)證過程中,所采用的訓(xùn)練集和測(cè)試集比例為1∶5。
經(jīng)過模型訓(xùn)練,采用提出的基于LSTM 的坡度預(yù)測(cè)模型,對(duì)測(cè)試集數(shù)據(jù)進(jìn)行驗(yàn)證,如圖6 所示。各個(gè)評(píng)價(jià)指標(biāo)如表所示。采用提出的新模型,其平均絕對(duì)誤差為3.38,均方根誤差為16.71。在預(yù)測(cè)結(jié)果方面具有良好的可靠性。
圖6 LSTM 的坡度預(yù)測(cè)模型預(yù)測(cè)結(jié)果
為了進(jìn)一步驗(yàn)證LSTM 的對(duì)坡度預(yù)測(cè)精度良,本選擇其他神經(jīng)網(wǎng)絡(luò)對(duì)該序列進(jìn)行預(yù)測(cè)。RNN(Recurrent Neural Networks)循環(huán)神經(jīng)網(wǎng)絡(luò)是LSTM的基礎(chǔ)形式,其隱藏層內(nèi)部結(jié)構(gòu)簡(jiǎn)單各單元以長(zhǎng)條狀緊密結(jié)合并按時(shí)間序列發(fā)展方向遞歸最終形成閉環(huán),由于參數(shù)的共享性處理時(shí)間序列數(shù)據(jù)時(shí)體現(xiàn)出一定的優(yōu)勢(shì)但是一旦序列過長(zhǎng)無法避免出現(xiàn)梯度消失或梯度爆炸問題,因此成為其主要缺陷。GRU(Gated Recurrent Unit,GRU)是LSTM 模型的一種變體形式,與LSTM 模型主要區(qū)別在于該模型隱藏層僅有2個(gè)門即更新門和重置門,更新門主要發(fā)揮數(shù)據(jù)輸入功能,控制上一時(shí)刻的信息帶入到下一時(shí)刻的程度。重置門主要發(fā)揮數(shù)據(jù)丟棄功能,控制丟棄上一時(shí)刻的信息的程度。另外,GRU 將不產(chǎn)生表達(dá)內(nèi)部狀態(tài)的候選向量,故該模型計(jì)算過程與LSTM 相比較為簡(jiǎn)單。采用的RNN、GRU 模型與LSTM 模型結(jié)構(gòu)類似,由1 個(gè)輸入層、1 個(gè)隱藏層、1 個(gè)輸出層組成,層間門控循環(huán)單元數(shù)均為16。如圖7 為利用不同神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果。
圖7 不同神經(jīng)網(wǎng)絡(luò)模型坡度預(yù)測(cè)結(jié)果
根據(jù)預(yù)測(cè)結(jié)果計(jì)算對(duì)應(yīng)的平均絕對(duì)誤差及均方根誤差如表1 所示,可以看出,由于GRU 的本質(zhì)是將LSTM 中的遺忘門和輸入門整合為更新門,故其預(yù)測(cè)結(jié)果精度與LSTM 類似。對(duì)于RNN 來說,由于其自身對(duì)長(zhǎng)期依賴的處理過程中的固有缺陷,故其表現(xiàn)不如GRU 或者LSTM。
表1 三種模型預(yù)測(cè)精度對(duì)比
利用車速和GPS 海拔高度信息對(duì)車輛所處行駛環(huán)境的坡度進(jìn)行了估計(jì)。為對(duì)道路坡度進(jìn)行預(yù)測(cè),搭建了基于LSTM 的坡度預(yù)測(cè)模型,并對(duì)坡度進(jìn)行了預(yù)測(cè),預(yù)測(cè)誤差較低。驗(yàn)證了基于LSTM 模型的坡度預(yù)測(cè)的適用性,此外,利用LSTM 的預(yù)測(cè)結(jié)果與GRU、RNN 進(jìn)行對(duì)比,表現(xiàn)為L(zhǎng)STM 在坡度預(yù)測(cè)方面相較于其他神經(jīng)網(wǎng)絡(luò)具有更高的精度。