賈 智,趙 巖,張 兵,王立珂
(北方自動控制技術(shù)研究所, 太原 030012)
無人駕駛技術(shù)的研究在公路管理、交通運輸?shù)阮I(lǐng)域有著廣闊的應(yīng)用前景,近年來自適應(yīng)巡航這一概念逐漸應(yīng)用于軍事偵察和作戰(zhàn)領(lǐng)域。在戰(zhàn)場上,指揮車、炮車、偵察車等無人駕駛戰(zhàn)車是以編隊的形式來行進(jìn)和轉(zhuǎn)移陣地,戰(zhàn)車在運動過程中通過車載傳感系統(tǒng)感知道路環(huán)境,由控制系統(tǒng)按照戰(zhàn)術(shù)規(guī)劃確定行車路徑并作出控制決策以實現(xiàn)戰(zhàn)術(shù)編隊在行駛過程中保持一致,所以控制算法是自主巡航技術(shù)實現(xiàn)的關(guān)鍵。
國內(nèi)外對自適應(yīng)巡航技術(shù)的研究取得了顯著的成果,先后提出了基于模糊PID控制以及BP神經(jīng)網(wǎng)絡(luò)與PID控制相結(jié)合的自適應(yīng)算法模型。首先是德國的汽車公司提出了比例反饋和補償?shù)乃枷?,開啟了PID應(yīng)用于無人駕駛技術(shù)的先河[1-2],德克薩斯大學(xué)教授提出了基于在線優(yōu)化和傳感計算的自適應(yīng)巡航算法,將自主導(dǎo)航技術(shù)推向了新的高度[3]。國內(nèi)對于自適應(yīng)巡航技術(shù)的研究也有一定的成果,文獻(xiàn)[4]提出了一種基于并行神經(jīng)網(wǎng)絡(luò)PID模型的巡航控制算法,降低了導(dǎo)航的平均誤差,文獻(xiàn)[6]研究了一種在無人駕駛情況下自動跟隨前方車輛行駛的控制算法,具有較好的魯棒性。
隨著神經(jīng)網(wǎng)絡(luò)理論的發(fā)展,越來越多的新技術(shù)融入到神經(jīng)網(wǎng)絡(luò)中。為了提高自適應(yīng)巡航算法的精度和收斂速度,將小波算法與神經(jīng)網(wǎng)絡(luò)PID相結(jié)合,引入自適應(yīng)學(xué)習(xí)速率法和附加動量法進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,仿真實驗結(jié)果表明,加入小波算法的神經(jīng)網(wǎng)絡(luò)PID自適應(yīng)巡航算法具有更快的收斂速度和更高的精度。
由于小波函數(shù)具有良好的局部化性質(zhì),已經(jīng)滲透到各個領(lǐng)域。小波變換是一種窗口大小固定但其形狀[7-8]、時間窗和頻率窗都可以改變的時頻局部化分析方法,而小波神經(jīng)網(wǎng)絡(luò)正是在近年來小波分析研究取得突破的基礎(chǔ)上提出的一種人工神經(jīng)網(wǎng)絡(luò),它是基于小波分析理論以及小波變換所構(gòu)造的一種分層的、多分辨率的新型人工神經(jīng)網(wǎng)絡(luò)模型,即用非線性小波基取代了通常的非線性sigmoid函數(shù),其信號表述是通過將所選取的小波基進(jìn)行線性疊加,相應(yīng)的輸入層到隱含層的權(quán)值及隱含層的閾值分別由小波函數(shù)的尺度伸縮因子和時間平移因子所代替。
圖1 小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型
在傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)中,存在隱含層單元數(shù)目難以確定的不足[5,9],而小波神經(jīng)網(wǎng)絡(luò)的隱含層單元數(shù)目則可以按如下方法自適應(yīng)地確定:首先取小波神經(jīng)網(wǎng)絡(luò)隱含層單元數(shù)目M為1,學(xué)習(xí)迭代若干次后,若滿足誤差條件則停止迭代,若達(dá)到最大學(xué)習(xí)學(xué)習(xí)次數(shù)后,仍不滿足誤差條件,則M+1;重復(fù)以上步驟直到滿足誤差條件為止,這樣就能克服傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計上的盲目性。
研究中戰(zhàn)車的自主巡航是以上級指揮車通過車載北斗裝置下發(fā)報文解析出的行進(jìn)路線為基準(zhǔn),每隔固定的時間T查詢當(dāng)前行駛方向,并將此狀態(tài)設(shè)定為當(dāng)前狀態(tài),將接收的行軍路徑設(shè)定為目標(biāo)狀態(tài)。在圖2中取兩個點并假設(shè)一個點為車輛的當(dāng)前狀態(tài)(v(t),θ(t)),另一個為目標(biāo)狀態(tài)(v(t+T),θ(t+T))。當(dāng)T足夠小時,車輛在時間T內(nèi)可以視為做勻變速運動,可以用勻變速運動的相關(guān)物理公式推算出對油門和方向盤的偏移控制量。車輛在行駛過程中,主要是方向盤、剎車和油門在起作用,在研究中剎車跟油門可以視為一對相反的控制量放在一起討論。
圖2 車輛形式示意圖
當(dāng)車輛在轉(zhuǎn)向時,由圖2可知,汽車的側(cè)向速度為v(t)cosθ(t),在無限小的時間間隔T后的理想狀態(tài)為v(t+T)cosθ(t+T),此時可以將車輛在無限小的T時間內(nèi)看作在橫向上做勻變速直線運動,則在橫向上的加速度為
(1)
由式(1)可以計算出橫向加速度的大小,而改變其數(shù)值可以通過轉(zhuǎn)動方向盤一定的角度λ來實現(xiàn),在這里本文假定方向盤轉(zhuǎn)角λ與汽車側(cè)向加速度的比例系數(shù)為N,即λ=Nαx,代入公式后可以得到
(2)
將理想狀態(tài)和當(dāng)前行駛狀態(tài)的信息代入式(2),就可以計算出在接下來的T時間內(nèi)方向盤需要轉(zhuǎn)過的期望角λ。這個期望轉(zhuǎn)向角可以保證車輛在時間T后,達(dá)到規(guī)劃路徑中所期望的行駛狀態(tài),并開始新一輪的方向與速度的調(diào)整,如此循環(huán)就實現(xiàn)了車輛在行駛時方向上的自主導(dǎo)航。
在控制車輛的速度時,假設(shè)汽車的縱向車速為v(t)sinθ(t),而在一段時間T后的期望車速為v(t)sin(θ+t)。同理,在無限短的時間T內(nèi),車輛可視為在以一個加速度αy做勻變速直線運動,且
(3)
式中:αy可為正數(shù)也可為負(fù)數(shù),當(dāng)車輛加速時,αy為正,油門踏板的開合度減??;車輛減速時,αy為負(fù),制動踏板的開合度增大。可知要想得到理想的縱向加速度,就是要得到合理的開合角度θ,在本文中假定開合度θ與縱向加速度之間的比例系數(shù)為M,則θ=Mαy,代入到式(3)后,得
(4)
綜上所述,根據(jù)理想情況下的行駛狀態(tài)信息可以推算出在T時間內(nèi),期望的轉(zhuǎn)角和開合度的值,并將結(jié)果傳遞給自動駕駛系統(tǒng)參與控制流程,至此算法中關(guān)于道路決策部分全部分析完畢。
一般的神經(jīng)網(wǎng)絡(luò)PID模型偏向于工程應(yīng)用[11],對控制過程中目標(biāo)值的跟隨控制效果較差,尤其是對于速度變化后產(chǎn)生不可控的誤差波動,原有的算法難以快速處理恢復(fù),且易使控制系統(tǒng)失穩(wěn),難以滿足車輛對設(shè)定路徑的跟蹤及抑制外部干擾的要求。針對上述問題,引入小波神經(jīng)網(wǎng)絡(luò)構(gòu)建了一種新的PID模型,如圖3所示。區(qū)別于之前神經(jīng)網(wǎng)絡(luò)在線修正PID權(quán)值的方法,本模型是直接在使用神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上再次使用PID進(jìn)行誤差消除。
圖3 小波神經(jīng)網(wǎng)絡(luò)PID模型
在該系統(tǒng)中,被控對象由PID控制器直接反饋控制,而小波神經(jīng)網(wǎng)絡(luò)則在通過學(xué)習(xí)后以一種穩(wěn)定的狀態(tài)在線調(diào)整PID控制器的3個參數(shù)kp、ki、kd使系統(tǒng)輸出最優(yōu)解。該神經(jīng)網(wǎng)絡(luò)PID的控制算式為
(5)
式中:kp=NNet*kp0;Ti=NNet*Ti0;Td=NNet*Td0。其中:kp0、Ti0、Td0分別為PID控制器的初始參數(shù);NNet為經(jīng)過學(xué)習(xí)后達(dá)到穩(wěn)定狀態(tài)的小波神經(jīng)網(wǎng)絡(luò)。
車輛的正常行駛很大程度上取決于當(dāng)前的行駛方向和車速,因此,在研究中將車速和方向作為神經(jīng)網(wǎng)絡(luò)的輸入,油門開合度和方向盤的轉(zhuǎn)角作為網(wǎng)絡(luò)的輸出。由于此系統(tǒng)為多輸入多輸出的網(wǎng)絡(luò),且樣本數(shù)據(jù)相對復(fù)雜,呈非線性的狀態(tài),所以選擇多隱含層的結(jié)構(gòu)。大量實驗數(shù)據(jù)表明,雙隱含層神經(jīng)元的網(wǎng)絡(luò)可以模擬任何復(fù)雜的函數(shù)[10],所以選擇四層神經(jīng)網(wǎng)絡(luò),即具有兩層隱含層的結(jié)構(gòu)。經(jīng)過學(xué)習(xí)迭代實驗,得出了滿足誤差條件的隱含層數(shù)目為第一層3個神經(jīng)元,第二層5個神經(jīng)元。然后是確定網(wǎng)絡(luò)中的初始參數(shù),神經(jīng)網(wǎng)絡(luò)權(quán)重初值的選取對于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和收斂起著很重要的作用,網(wǎng)絡(luò)權(quán)重初值決定了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的起點和方向。參考以往的PID控制器的特點以及大量的PID控制經(jīng)驗,設(shè)定輸入層到隱含層的初始權(quán)重為Wij=+1,Wij2=,選擇PID的3個參數(shù)為(0.69,0.1,0.19),即算法中隱含層到輸出層的初始權(quán)值為W10=0.69,W20=0.1,W30=0.19。
對于神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)的獲取,實驗中選擇一款某型號的榴彈炮車作為研究對象,利用Prescan軟件設(shè)計了一套車速、方向、油門踏板開合度和方向盤轉(zhuǎn)角的采集方案。Prescan內(nèi)包含了豐富的動力學(xué)模型庫,根據(jù)輸入的各種設(shè)定參數(shù),該軟件會相應(yīng)的生成所選車輛的動力學(xué)模型,實時記錄模型的運動數(shù)據(jù)。一般來講,訓(xùn)練樣本越多,訓(xùn)練結(jié)果越能正確地反映其內(nèi)在規(guī)律,但是樣本的采集整理往往受到客觀條件的限制。樣本多到一定的程度時,網(wǎng)絡(luò)的精度也很難再提高。在本研究中將訓(xùn)練樣本數(shù)定為80組,將采集到的數(shù)據(jù)一部分作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),一部分用來驗證網(wǎng)絡(luò)的訓(xùn)練效果,最后通過Matlab來進(jìn)行結(jié)果的仿真。將由Prescan采集到的訓(xùn)練樣本數(shù)據(jù)輸入到Matlab神經(jīng)網(wǎng)絡(luò)工具箱中訓(xùn)練[10],訓(xùn)練函數(shù)首先選擇trainlm,為了加速訓(xùn)練過程,在之后的計算中交替使用trainscg和trainrp作為訓(xùn)練函數(shù)。
本次試驗中首先用采集到的訓(xùn)練樣本對傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如圖4所示。當(dāng)期望路線為矩形波時,經(jīng)過訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)輸出在直角轉(zhuǎn)彎時的波動較大,不能很快地收斂于期望曲線,要在期望值上下波動一段時間才能趨于穩(wěn)定。且實際方向與期望之間的最大誤差為 -18.4307°,平均誤差在10°左右。綜上所述,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)雖然可以較好地逼近目標(biāo)曲線,但是誤差曲線波動大,收斂時間較長。
圖4 傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)PID仿真結(jié)果
針對這一不足,采用Morlet小波函數(shù)取代sigmoid函數(shù)作為神經(jīng)網(wǎng)絡(luò)的激勵函數(shù),同時在小波神經(jīng)網(wǎng)絡(luò)的權(quán)值更新階段增加一動量項:ΔW(t)=ηδU+αΔW(t-1),附加動量法反映了以前積累的調(diào)整經(jīng)驗,對于t時刻的調(diào)整起阻尼作用,當(dāng)誤差曲面出現(xiàn)驟然起伏時,可以減小振蕩趨勢,提高訓(xùn)練速度;神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率采用自適應(yīng)調(diào)節(jié)學(xué)習(xí)率,先設(shè)置一個初始的學(xué)習(xí)率,若經(jīng)過一批次權(quán)值調(diào)整后總誤差增大,則本次調(diào)整無效,且學(xué)習(xí)率η=βη(β<1);若經(jīng)過一批次權(quán)值調(diào)整后總誤差減小,則本次調(diào)整有效,且學(xué)習(xí)率η=θη(θ>1)。一共經(jīng)歷了約 1 000步的訓(xùn)練后達(dá)到了預(yù)期的結(jié)果,此時的小波參數(shù)
a=[0.136 4-1.043 90.516 4-3.965 41.552 6-1.911 1]
b=[0.139 4-0.273 80.158 5-1.422 30.014 4-1.252 7]
仿真結(jié)果如圖5所示。經(jīng)過訓(xùn)練后的小波神經(jīng)網(wǎng)絡(luò)將實際方向與期望之間的最大誤差為13.389 6°,平均誤差控制在5°以內(nèi),明顯優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法,且神經(jīng)網(wǎng)絡(luò)輸出的實際行駛方向與目標(biāo)值契合度很高,在車輛經(jīng)歷90°直角轉(zhuǎn)彎時能夠更小的波動和更快的速度逼近期望行駛方向。
圖5 小波神經(jīng)網(wǎng)絡(luò)PID仿真結(jié)果
通過對比分析圖4和圖5的仿真結(jié)果可以得出,傳統(tǒng)的基于小波神經(jīng)網(wǎng)絡(luò)PID的自適應(yīng)巡航算法能夠以較高的精度逼近期望行駛方向,且當(dāng)方向變化時能夠以更快的速度調(diào)整方向以保持與期望路線的一致,可以更好地滿足實際需求。
提出了一種新的基于小波神經(jīng)網(wǎng)絡(luò)PID的模型,對于同樣的學(xué)習(xí)任務(wù),小波神經(jīng)網(wǎng)絡(luò)輸出誤差控制在5度以內(nèi),且能更快地逼近期望值,精度更高,收斂速度更快。實驗結(jié)果表明,能夠滿足使用需求,且誤差較小,瞬態(tài)性能良好,為無人駕駛戰(zhàn)車的戰(zhàn)術(shù)編隊和行進(jìn)提供了新的思路。