張 麗, 周 峰, 張 濤
(河南理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,河南 焦作454000)
高度智能化的無人駕駛技術(shù),是智能汽車研究熱點(diǎn)。為了推動(dòng)無人駕駛技術(shù)的發(fā)展,在最新幾屆的智能車競賽中,都提出了雙車追逐系統(tǒng)的設(shè)計(jì)要求。競賽中,要求智能車能自主根據(jù)路況及時(shí)調(diào)整雙車速度及轉(zhuǎn)向,在最短的時(shí)間內(nèi)完成兩車通過終點(diǎn)線,并且兩車通過時(shí)間差較短者為最佳狀態(tài)。
在雙車追逐系統(tǒng)中,距離過近不利于后車的信號(hào)檢測,距離過遠(yuǎn)時(shí)不能達(dá)到賽題的最佳要求。雙車的速度控制是一個(gè)難點(diǎn)問題[1,2],一方面雙車的距離測定在運(yùn)用中無法實(shí)時(shí)準(zhǔn)確的測定,無法完全適應(yīng)不同路徑的距離測定,另一方面兩車距離控制對(duì)象是一個(gè)非線性系統(tǒng),無法準(zhǔn)確對(duì)其進(jìn)行建模。模糊控制算法具有不要求精確的數(shù)學(xué)模型,能夠方便地將專家的經(jīng)驗(yàn)與思考加入到知識(shí)模型中等優(yōu)點(diǎn),十分適合這種時(shí)變的、非線性的、高實(shí)時(shí)響應(yīng)的系統(tǒng)[3]。
綜上,為了解決雙車追逐時(shí)車速與車距的最優(yōu)問題,本文結(jié)合智能車雙車追逐控制的特點(diǎn),硬件設(shè)計(jì)上采用電磁導(dǎo)航方式[4],通過超聲波進(jìn)行距離輔助標(biāo)定,利用編碼器進(jìn)行路程積分,濾波[5]后通過無線發(fā)送方式將前車路程距離發(fā)送至后車,經(jīng)過單片機(jī)處理后計(jì)算出雙車的距離差。最后,通過模糊控制算法和增量式比例—積分—微分(proportion-integration differentiation,PID)[6]算法相結(jié)合對(duì)后車速度進(jìn)行雙閉環(huán)控制,從而使兩車距離達(dá)到最佳狀態(tài)。
本文以恩智浦公司在“全國大學(xué)生智能汽車競賽”中指定的B型車模為研究對(duì)象。該車模參數(shù)為:車長74 cm,車寬25 cm,車高18 cm,車重約963 g,用電感檢測賽道中的銅線電流大小為100 mA,頻率為20 kHz,波形為方波的電流變化,舵機(jī)轉(zhuǎn)向反應(yīng)范圍:左45°,右45°。本文提出的控制策略是基于雙車在保持合適車距的前提下,完成動(dòng)態(tài)實(shí)時(shí)追逐且順利快速超車(即測距條件滿足時(shí)進(jìn)行超聲波距離測定)。雙車追逐示意如圖1所示,距離M為雙車追逐運(yùn)動(dòng)時(shí)前車與后車保持的動(dòng)態(tài)距離。
圖1 雙車車追逐示意圖
在雙車比賽中,賽道類型多樣且復(fù)雜,如有直道、直角彎、十字彎、小s彎等。目前,雙車的測距已被廣泛研究,大多測距方法分為攝像頭測距、超聲波測距、衛(wèi)星測距、激光測距[7~9]等,這些測距方法在實(shí)際應(yīng)用中,特別容易受環(huán)境影響而導(dǎo)致測量不精準(zhǔn)。例如,在超車過程中,特別是當(dāng)雙車行駛在彎道時(shí),由于受超聲波測量角度的限制,會(huì)造成測量存在一定的誤差。如果彎道處一般設(shè)有綠化帶或其它遮擋時(shí),雙車車距的測量將會(huì)受到更大的限制。故本文采用超聲波測距與速度實(shí)時(shí)積分相給合的方法測距,描述為:
1)雙車發(fā)車前(直道,未運(yùn)動(dòng)),采用超聲波對(duì)雙車之間的距離進(jìn)行一次初始檢測與標(biāo)定,標(biāo)定值記為Q,此時(shí),M即為Q,為一固定值。
2)在雙車追逐運(yùn)動(dòng)時(shí),M是動(dòng)態(tài)變化的,為了實(shí)時(shí)檢測M的值,需對(duì)雙車的速度各自進(jìn)行積分,獲得前車和后車已行駛的距離,記為L1(前車已行使距離),L2(后車已行駛距離),同時(shí)將L1發(fā)給后車。
本系統(tǒng)中雙車距離控制是建立在前車選定合適的車速(如中速、高速、超高速)前提下,后車進(jìn)行實(shí)時(shí)追逐,運(yùn)動(dòng)中對(duì)前車進(jìn)行PID閉環(huán)調(diào)節(jié),使前車達(dá)到選定的目標(biāo)速度,同時(shí)發(fā)前車行駛的距離給后車。后車在初始化成功后,一方面根據(jù)雙車距離差對(duì)設(shè)定速度進(jìn)行閉環(huán)調(diào)節(jié),另一方面根據(jù)實(shí)時(shí)速度對(duì)檢測速度進(jìn)行PID閉環(huán)調(diào)節(jié),使檢測速度達(dá)到設(shè)計(jì)的目標(biāo)速度。后車雙閉環(huán)控制流程如圖2所示。
圖2 后車程序流程
在雙車行駛過程中,為保證使后車很好地追逐前車,讓兩車始終保持在一個(gè)合適的距離,從而使雙車能夠以最短的時(shí)間完成比賽,獲得更好的比賽成績。本文提出了一種速度距離雙閉環(huán)方法來實(shí)現(xiàn)車距控制,具體策略如下:
1)采用超聲波測距與速度實(shí)時(shí)積分相給合的方法,實(shí)時(shí)檢測雙車追逐時(shí)的動(dòng)態(tài)車距M(如圖1中所示)。
2)對(duì)于前車,需要在起跑前設(shè)定其安全可靠的目標(biāo)速度,本文采用增量式PID控制算法,得到當(dāng)前速度的真實(shí)值,通過濾波后對(duì)當(dāng)前速度進(jìn)行積分,得到前車已走的距離L1。為了程序簡便,可以通過對(duì)當(dāng)前速度的連加,再除以由編碼器齒輪數(shù)及電機(jī)齒輪確定的常數(shù)N,即∑Vo/N。
3)對(duì)于后車,需要先設(shè)置一個(gè)固定的目標(biāo)距離S,通過將后車速度積分的積分值L2與前車已行駛的距離L1求差,再加上發(fā)車前通過超聲波標(biāo)定的初始距離Q,得到當(dāng)前真實(shí)的路程差M=Q+L1-L2。后車控制流程如圖3所示。本文通過設(shè)計(jì)模糊控制器得到當(dāng)前的速度設(shè)定值Vi,再通過PID控制器調(diào)節(jié)以達(dá)到合適速度,保證雙車以合適的距離進(jìn)行實(shí)時(shí)追逐。
圖3 后車控制流程
4)雙車超車結(jié)束后,由于超車時(shí)后車行駛的路徑受到賽道的影響,因此,需要對(duì)當(dāng)前車距進(jìn)行重新標(biāo)定(采用超聲波),在檢測到當(dāng)前兩車均為直道或滿足超聲波測距的要求情況下使用超聲波對(duì)兩車的距離進(jìn)行重新測定。此時(shí)原先的后車變?yōu)榍败?,原先的前車變?yōu)楹筌?,依舊按照前文提出的控制策略進(jìn)行控制。
1.3.1 模糊控制器設(shè)計(jì)
由于在雙車追逐過程中無法準(zhǔn)確對(duì)雙車之間的距離模型進(jìn)行建模,同時(shí)為了使不同的距離對(duì)應(yīng)不同的速度輸出,故本文采用參數(shù)可自行調(diào)節(jié)的模糊控制器,過程如下:
1)定義輸入輸出語言變量。距離調(diào)節(jié)的偏差即S-M作為偏差E,偏差E的變化率設(shè)為EC,后車速度的目標(biāo)設(shè)定值Vi作為輸出U。
2)定義偏差的論域E,偏差變化率的論域Ec,速度目標(biāo)設(shè)定值的論域U。E=[-3,3],EC=[-6,6],U=[-4,4],對(duì)應(yīng)域上E,Ec和U的隸屬函數(shù)如圖4所示。
圖4 E,Ec和U的隸屬函數(shù)
3)依據(jù)專家系統(tǒng)規(guī)則,結(jié)合本文平時(shí)的調(diào)試經(jīng)驗(yàn),建立模糊規(guī)則表如表1所示。
表1 模糊規(guī)則表
為了更加形象地描述本文設(shè)計(jì)的模糊規(guī)則表,將調(diào)試過后的模糊規(guī)則曲面擬合如圖5所示,在模糊控制曲面中可以看出,距離偏差變化量與距離偏差變化率對(duì)應(yīng)輸出速度的變化曲線,例如當(dāng)兩車距離較大,距離變化量也較大時(shí),模糊控制器輸出較大的速度,當(dāng)兩車距離量較小,距離變化量也較小時(shí)輸出較小的速度。
圖5 模糊控制曲
1.3.2 雙閉環(huán)PID算法
在距離的閉環(huán)控制中
Efuzzy=S-M=S-(Q+L1-L2)
(1)
Ecfuzzy=Efuzzyk-Efuzzyk+1
(2)
(3)
式中μ(|E|fuzzy,|Ec|fuzzy)為隸屬度函數(shù),Kv為不同狀態(tài)下的加權(quán)。
在速度的閉環(huán)控制中,在得出當(dāng)前速度設(shè)定值Vi后,采用增量式PID對(duì)當(dāng)前值進(jìn)行調(diào)節(jié)。設(shè)ΔVo[n]=Vo[n]-Vo[n-1],則有
ΔVo[n]=Kp[e[n]-e[n-1]}+Kie[n]+
Kd{e[n]-2e[n-1]+e[n-2]}
(4)
式中e[n]=Vi[n]-Vo[n]。
智能雙車系統(tǒng)通過控制直流電機(jī)來達(dá)到控制速度的目的,本系統(tǒng)采用直流伺服電機(jī)控制,簡化模型如圖6(a)所示,其傳遞函數(shù)為
控制原理如圖6(b)所示。
圖6 直流電動(dòng)機(jī)等效電路及電機(jī)控制原理
仿真時(shí),在系統(tǒng)中輸入階躍信號(hào),即模擬系統(tǒng)剛上電時(shí)的距離變化情況。仿真中,后車以前車為參照物,具體結(jié)果如圖7所示。
圖7 距離與相對(duì)速度仿真
從仿真中看出:當(dāng)輸入階躍信號(hào)時(shí),輸出的速度目標(biāo)值超調(diào)量較小,且響應(yīng)較快,說明該算法滿足雙車追逐系統(tǒng)設(shè)計(jì)要求,穩(wěn)定性和適合性較強(qiáng)。
實(shí)際測試環(huán)境如圖8所示,賽道全長34.5 m。本文分別測試了兩車在傳統(tǒng)控制方式下和速度雙閉環(huán)控制方式進(jìn)行跟蹤追逐的運(yùn)行結(jié)果。在測試100組數(shù)據(jù)后,結(jié)果如表2、表3所示。
圖8 實(shí)際賽道與雙車追逐情況
控制方法碰撞次數(shù)速度 /(m·s-1)到達(dá)終點(diǎn)時(shí)間差/s傳統(tǒng)控制0.81.981.02雙閉環(huán)控制02.340.56
表3 不同類型賽道測試通過時(shí)間差實(shí)驗(yàn)結(jié)果 s
從實(shí)驗(yàn)數(shù)據(jù)可以看出,通過使用基于模糊控制的速度雙閉環(huán)雙車距離控制算法,比僅僅使用距離傳感器來進(jìn)行雙車控制的方法,運(yùn)行時(shí)間短,而且更加安全可靠,能夠更加有效地適應(yīng)各種不同的復(fù)雜賽道類型,對(duì)智能車控制的性能提升有著很大的作用。
1)本文所采用的距離速度雙閉環(huán)控制方法,可以在彎道(U形彎度較小時(shí))、十字賽道、坡道、以及環(huán)道處進(jìn)行車距測量,該測距方法受周圍環(huán)境的影響較小。
2)在實(shí)驗(yàn)中發(fā)現(xiàn),雙車的距離控制在直道上或彎道角度較小時(shí)兩種方式區(qū)別較小,但在U型彎道角度較大時(shí),測量車距存在一定的誤差,雙車的控制距離將會(huì)略受影響,加大了控制難度。
3)本文采用的速度距離雙閉環(huán)策略,按照比賽的計(jì)時(shí)方式(時(shí)間=兩車通過終點(diǎn)線的時(shí)間+兩車通過終點(diǎn)線時(shí)間差×5),最快速度達(dá)到2.14 m/s(2017年全國智能車大賽國一平均成績?yōu)? m/s),大大提高了比賽成績。
4)該算法也將有助于未來人類在無人駕駛領(lǐng)域中對(duì)雙車甚至多輛車的有效控制。