郝高峰,付 莊,鄭 輝
(上海交通大學(xué)機(jī)械系統(tǒng)與振動國家重點實驗室,上海 200240)
轉(zhuǎn)鼓試驗是汽車開發(fā)過程中一個很重要的環(huán)節(jié)。進(jìn)行試驗時,汽車行駛在室內(nèi)試驗臺上來模擬路面行駛,試驗臺根據(jù)車型模擬相應(yīng)的路面阻力。然后使用相應(yīng)的設(shè)備來檢測汽車的動力性、排放、油耗、噪聲、安全性和舒適性等多項指標(biāo)。傳統(tǒng)的轉(zhuǎn)鼓試驗由人工駕駛,人工駕駛具有效率低、可重復(fù)性差、精度低、不適合碰撞試驗或長時間試驗等不足,自動駕駛機(jī)器人為解決這些問題提供了可能。自動駕駛機(jī)器人研發(fā)的難點之一是如何精確地控制車速跟蹤目標(biāo)車速[1]。行駛速度曲線一般由監(jiān)管部門統(tǒng)一制定,如全球統(tǒng)一輕型車輛測試循環(huán)(WLTC)、新歐洲測試循環(huán)(NEDC)等。在國內(nèi),國標(biāo)GB 18352.6—2016制定了詳細(xì)的試驗標(biāo)準(zhǔn)[2]。
近年來各種各樣應(yīng)用于車速跟蹤控制的方法被提出。陳剛等[3-4]提出了一種基于模糊邏輯理論的分級協(xié)調(diào)控制方法,以實現(xiàn)各種條件下的轉(zhuǎn)鼓試驗循環(huán)的協(xié)調(diào)控制和精確的速度跟蹤,但該方法過于依賴專家的經(jīng)驗,并且試驗結(jié)果的精度難以達(dá)到要求。為解決換擋對車速的影響,Mizutani等[5]修正了目標(biāo)速度曲線,使修正后的速度曲線與實際目標(biāo)速度曲線的差值正好抵消掉換擋的影響,但該方法構(gòu)建的控制器只能針對特定的目標(biāo)速度曲線。本實驗室朱宇豪等[6]基于分段PID構(gòu)建了一套速度跟蹤算法,并通過故障診斷方法對參數(shù)進(jìn)行精細(xì)調(diào)節(jié),但該方法對于每輛車的調(diào)參過程過于復(fù)雜和耗時。
自動駕駛機(jī)器人速度跟蹤控制的主要難點來自汽車模型的復(fù)雜性:傳動系統(tǒng)的復(fù)雜性、踏板的死區(qū)特性和延遲特性。而深度神經(jīng)網(wǎng)絡(luò)的強(qiáng)大之處正是其對于復(fù)雜模型的近似能力,故可以將深度強(qiáng)化學(xué)習(xí)應(yīng)用到車速跟蹤控制中。本文構(gòu)建了一種基于DQN的控制方法,并基于馬爾可夫性設(shè)計了狀態(tài)空間、動作空間,根據(jù)超差規(guī)則設(shè)計了獎賞函數(shù)。
強(qiáng)化學(xué)習(xí)所解決的問題使用馬爾可夫決策過程來進(jìn)行描述[7],它包含4個要素(St,At,p,r)。其中,St表示描述環(huán)境全部信息的狀態(tài)空間,At表示智能體可以采取的動作空間,rt=r(st,at,at+1)表示每個時刻環(huán)境反饋的獎賞,p(st+1|st,at)表示環(huán)境狀態(tài)轉(zhuǎn)移函數(shù),任意時刻的環(huán)境at狀態(tài)都只和上一時刻的狀態(tài)和動作有關(guān)。
1.1.1 狀態(tài)空間
環(huán)境狀態(tài)和環(huán)境固有特性應(yīng)該被區(qū)分出來。對于車速跟蹤控制,計算車速和加速度依賴于上一時刻的車速、加速度、踏板開度,以及車重、風(fēng)阻系數(shù)、傳動摩擦阻力系數(shù)、汽車排量等。但算法是針對同一輛車,除車速、踏板開度等之外的參數(shù)都是環(huán)境的固有特性,可以被當(dāng)作未知的常量。將環(huán)境固有特性加入狀態(tài)空間,不會導(dǎo)致算法不工作,但會增加神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的負(fù)擔(dān)。另外,考慮到未來很遠(yuǎn)的目標(biāo)車速影響很小,所以狀態(tài)S可以近似為
St=〈踏板開度,實際車速,實際加速度,
目標(biāo)車速,0.5 s后目標(biāo)車速,…,3 s
后目標(biāo)車速〉
(1)
1.1.2 動作空間
機(jī)器人重裝之后位置不固定,而算法需要環(huán)境模型在訓(xùn)練完之后是不變的,所以在每次安裝機(jī)器人之后先進(jìn)行標(biāo)定工作。將踏板開度與機(jī)械腳掌位置的關(guān)系測量出并記錄到表中,然后在程序中進(jìn)行查表和插值轉(zhuǎn)換。這樣就可以將踏板開度與機(jī)械腳掌位置關(guān)系排除在算法之外,使用踏板開度直接作為算法的動作空間。出于安全考慮,限制同一時刻只允許踩油門和剎車中的1個踏板。所以可以使用參數(shù)o同時表示2個踏板開度,負(fù)值表示剎車踏板開度,正值表示油門踏板開度。即動作空間表示為
At=〈o〉
(2)
1.1.3 獎賞函數(shù)
國標(biāo)GB 18352.6—2016制定了目標(biāo)速度曲線的上下界。實際車速超出界限范圍稱作超差,超差應(yīng)少于10次,并且每次持續(xù)時間小于1 s,否則記為試驗失敗。獎賞函數(shù)的基本思想是:懲罰和速度差成正比,但懲罰系數(shù)隨著速度差增大而增大,從而使網(wǎng)絡(luò)快速訓(xùn)練到最優(yōu)解附近,然后再精細(xì)訓(xùn)練逼近最優(yōu)解。
(3)
智能體與環(huán)境進(jìn)行交互,它的目標(biāo)是選擇最優(yōu)動作,即最大化累計獎賞。累計獎賞可以量化地定義為
(4)
γ為折扣系數(shù),γ∈[0,1]。智能體的控制策略表示為π,即任意狀態(tài)st下選擇動作at的概率為π(at|st)。在策略π下,以任意狀態(tài)為起點并且選取動作a的累計獎賞期望值叫做動作價值函數(shù)Qπ(st,a),即
Qπ(st,a)=Eπ[Gt|st,a]=
(5)
強(qiáng)化學(xué)習(xí)的目標(biāo)等價于找到一個最佳策略,使得其動作價值函數(shù)總是所有策略中最大的,記作Q*(st,a)。此時,只要總是選取動作為
(6)
則累計獎賞期望總是最大的。
圖1 基于DQN的車速跟蹤控制架構(gòu)
基于Q-learning[8]的方法記錄一個映射Q(st,a)(使用表或使用神經(jīng)網(wǎng)絡(luò)來近似),然后通過訓(xùn)練使得Q(st,a)逐漸逼近Q*(st,a),基于貝爾曼公式[9]的更新公式為
Q(st,a)←Q(st,a)+
(7)
α為學(xué)習(xí)率,α∈[0,1]。Q-learning方法的精妙之處在于,它使用maxQ(st,a)來估計下個時刻的累計獎賞值和選擇下個時刻的動作。但使用神經(jīng)網(wǎng)絡(luò)的問題是在復(fù)雜任務(wù)中網(wǎng)絡(luò)不易收斂。Mnih等[10-11]使用經(jīng)驗回放策略和雙神經(jīng)網(wǎng)絡(luò)策略成功地解決了這個問題。
如圖1所示,神經(jīng)網(wǎng)絡(luò)接受環(huán)境狀態(tài)并輸出動作價值,環(huán)境狀態(tài)包括車輛狀態(tài)和目標(biāo)速度,價值最大的動作通過探索函數(shù)、限制函數(shù)及駕駛機(jī)器人反饋給車輛。神經(jīng)網(wǎng)絡(luò)的隱層數(shù)為2,隱層節(jié)點數(shù)分別為30、20,隱層激活函數(shù)為ReLU函數(shù),輸出層激活函數(shù)為Tanh函數(shù)。
Q(st,a)網(wǎng)絡(luò)被分化為當(dāng)前的Qeval(st,a)和過時的Qtarget(st,a)。Qeval(st,a)用于網(wǎng)絡(luò)更新和計算輸出動作值,Qtarget(st,a)用于估計下一步的動作價值。更新公式為:
Loss(θQeval)=E[(y-Qeval(st,a))2]
(8)
(9)
δθQeval=τ·Loss(θQeval)
(10)
另外,為了使神經(jīng)網(wǎng)絡(luò)充分探索動作空間,避免陷入局部最優(yōu),網(wǎng)絡(luò)輸出動作值增加一個高斯分布,即
at←N(at,σ)
(11)
隨著訓(xùn)練的進(jìn)行,探索空間逐漸縮小,方差逐漸衰減。
試驗使用的自動駕駛機(jī)器人由泛亞汽車技術(shù)中心有限公司與上海交通大學(xué)機(jī)器人實驗室聯(lián)合研制,如圖2a所示。轉(zhuǎn)鼓試驗倉如圖2b所示。試驗車輛包括雪佛蘭、別克、凱迪拉克,排量包括帶渦輪增壓和不帶渦輪增壓的1.3 L、1.5 L、2.0 L、4.0 L。
進(jìn)行轉(zhuǎn)鼓試驗時,轉(zhuǎn)鼓通過調(diào)節(jié)自身轉(zhuǎn)動慣量來模擬不同的車輛模型,出風(fēng)口根據(jù)車速來調(diào)節(jié)風(fēng)速進(jìn)而模擬風(fēng)阻,駕駛機(jī)器人安裝在司機(jī)座椅與踏板之間,車身被固定在地面。車速和踏板開度等數(shù)據(jù)通過CAN總線從車輛DLC接口讀取。
圖2 試驗環(huán)境
強(qiáng)化學(xué)習(xí)算法基于TensorFlow搭建,控制軟件的界面和后端業(yè)務(wù)邏輯使用Python和PyQt開發(fā),數(shù)據(jù)分析用到了NumPy、Matplotlib等。此外,系統(tǒng)底層部分還包括機(jī)器人控制服務(wù)器、機(jī)器人控制下位機(jī)等。
2.3.1 WLTC曲線試驗
試驗的目標(biāo)速度曲線為WLTC曲線,如圖3所示。WLTC曲線持續(xù)1 800 s,共3 600個周期。為
圖3 全球統(tǒng)一輕型車輛測試循環(huán)(WLTC)
了便于分析,每200個周期記為1段。
試驗顯示,從零開始只需4~5輪訓(xùn)練,就可以有效地控制車速跟蹤目標(biāo)速度,并且滿足超差數(shù)小于10的要求。圖4為雪佛蘭1.5 t車型的4輪訓(xùn)練的速度曲線片段(600~850 s,WLTC中相對較復(fù)雜的一段)。在第1輪時,神經(jīng)網(wǎng)絡(luò)參數(shù)基本還是隨機(jī)數(shù),實際速度和目標(biāo)速度有著較大偏差,但得益于踏板開度的限制環(huán)節(jié),速度曲線的基本趨勢是正確的。第2、3輪時,網(wǎng)絡(luò)已經(jīng)基本學(xué)到了踏板的控制策略,但細(xì)節(jié)處還有很多波動和偏差,比如起步停車段。第4輪之后,基本上在整段WLTC曲線中,實際速度和目標(biāo)速度都有著很好的貼合。
圖4 WLTC曲線4輪訓(xùn)練速度曲線片段
圖5為訓(xùn)練過程平均獎賞值和平均動作價值收斂曲線。在初始階段,獎賞值和Q值都有著比較大的波動,但訓(xùn)練到一定程度后它們就趨于穩(wěn)定并且收斂。
圖5 平均獎賞曲線和平均Q值曲線
2.3.2 超參數(shù)
為了使神經(jīng)網(wǎng)絡(luò)盡可能全面地學(xué)習(xí)環(huán)境模型,在訓(xùn)練時輸出動作會加一個高斯分布的探索空間。高斯分布的方差σ決定了探索空間的大小。隨著訓(xùn)練的進(jìn)行,網(wǎng)絡(luò)逐漸學(xué)到環(huán)境模型,探索空間逐漸減小,網(wǎng)絡(luò)逐漸在更小的范圍內(nèi)更精確學(xué)習(xí),所以將每步訓(xùn)練后σ減小ε個百分點,即衰減率。衰減率影響著網(wǎng)絡(luò)的穩(wěn)定性,隨著衰減率的增大,平均獎賞的收斂曲線如圖6所示??梢钥吹?,ε在0.999 00~0.999 90的范圍內(nèi),網(wǎng)絡(luò)有著很好的穩(wěn)定性。
圖6 不同衰減率下的平均獎賞值收斂曲線
在強(qiáng)化學(xué)習(xí)中,獎賞函數(shù)對算法具有很大的影響。盡管一些關(guān)于歸一化的技術(shù)可以減小不同單位和不同尺度獎賞值帶來的影響[12],但試驗仍是研究它的最直觀方法。如圖7所示,隨著從0.02增大到100.00,平均獎賞收斂曲線的變化很小,這說明網(wǎng)絡(luò)對于λ的取值有著很高的包容性。
圖7 不同獎賞系數(shù)下的平均獎賞值收斂曲線
本文基于DQN算法,構(gòu)建了一種自動駕駛機(jī)器人速度跟蹤控制方法。試驗結(jié)果表明,該算法可以使駕駛機(jī)器人在轉(zhuǎn)鼓試驗中滿足高精度速度跟蹤要求,并解決了不同類型轉(zhuǎn)鼓試驗、不同車輛試驗的自適應(yīng)性問題,避免了傳統(tǒng)控制方法的復(fù)雜調(diào)參過程。任意能提供訓(xùn)練環(huán)境的自動控制問題,都可以使用強(qiáng)化學(xué)習(xí)方法,本文研究為其提供了一個參考案例。后期將針對各特定轉(zhuǎn)鼓試驗進(jìn)行獎賞函數(shù)優(yōu)化,以及解決訓(xùn)練開始階段車輛抖動嚴(yán)重的問題。