周玉媚 汪任 秦晨晨 周又強 王靜
摘要:設(shè)計了一臺自動識別路徑的電磁智能小車,研究如何合理地運用算法從有限的道路信息中提取車身與實際跑道中心的偏差值,從而使小車自主識別路徑。本人根據(jù)現(xiàn)已有的循跡算法進行總結(jié)與融合,構(gòu)建一種能夠較好識別圓環(huán)的算法——分區(qū)算法。
關(guān)鍵詞:電磁式智能車;歸一化算法;PD算法;分區(qū)算法
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)16-0194-03
1 引言
本文是以第十二屆“恩智浦杯”智能車大賽為背景,設(shè)計并制作一輛基于電磁傳感器的自動循跡智能小車。電磁組智能車競賽的賽道中心有一根通有20kHz、100mA可變交流電的載流導(dǎo)線,智能車利用電磁感應(yīng)原理檢測其產(chǎn)生的交變磁場來進行路徑判斷,通過計算前方導(dǎo)線偏離車體中心的距離來做出相應(yīng)的方向控制,進而控制小車沿賽道循線行駛[1]。如圖1所示為此智能車系統(tǒng)的算法流程圖,而本文是在現(xiàn)已有的循跡算法的基礎(chǔ)上,貼合我們自身智能車的實際情況進行算法改進。
2 循跡算法設(shè)計
2.1 歸一化法
歸一化法是對差值法的一種改進方式[2]。差值法是將左右兩個電感的采集值作差,將其差值[ΔE]來反映小車與賽道中心線的偏差量,即:([ADL],[ADR]分別為左右兩邊電感的采集值)
[ΔE=ADL-ADR] (1)
而利用差值法計算得到的偏差量只在一定范圍內(nèi)具有可用度,一旦小車偏離中心線的距離超出這個范圍,此時的偏差量便不再可取,此時小車具有極強的不穩(wěn)定性。
歸一化法在差值法的基礎(chǔ)上,將左右兩個電感的采集值差值除以它們的和值, 將所得的值Error來反映偏差量, 即:
[Error=ADL-ADRADL+ADR] (2)
取經(jīng)過濾波后的電感值隨水平賽道位置x的距離變化曲線,為了方便比較,將[ΔE]縮小到(-1,1),與歸一化之后的Error放在同一坐標系中,如圖2所示。
圖2 [ΔE]、Error值與距離x之間的函數(shù)
結(jié)果分析:經(jīng)過差值法計算得到的偏差量[ΔE],只在一定范圍內(nèi)具有可用度,且波動較大,穩(wěn)定性較差;與差值法相比,歸一化法所得的偏差量Error的可用度取值范圍有一定的增加,波動較差值法雖然略微下降,但是在穩(wěn)定性的改進上也不是太明顯。
2.2 PD算法
PID控制算法,通過計算并調(diào)整其比例項[Kp]、積分項[Ti]、微分項[Td]來使被控對象T很快達到定值和迅速執(zhí)行超調(diào),而且通過其計算公式:
[e(k)=r(k)-c(k)] (3)
[U(k)=Kp{e(k)+TTij=0ke(j)+TDTe(k)-e(k-1)}] (4)
式中[Kp]:比例系數(shù),[Ti]:積分時間常數(shù),[Td]:微分時間常數(shù),T:采樣周期。如圖3所示。
PID 控制算法[3]中各校正環(huán)節(jié)的作用分別為:
比例環(huán)節(jié):比例環(huán)節(jié)的作用是對偏差瞬間做出迅速反應(yīng),及時成比例地反映控制系統(tǒng)的偏差信號,偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用,以減少偏差。比例環(huán)節(jié)控制作用的強弱取決于比例系數(shù)[Kp], [Kp]越大,控制作用越強,則控制過程的靜態(tài)偏差就越小;反之,[Kp]越大,就越容易導(dǎo)致振蕩,從而破壞系統(tǒng)的穩(wěn)定性。因此,[Kp]的選擇必須合適, 才能才能達到靜態(tài)偏差小而又穩(wěn)定的效果。
積分環(huán)節(jié):積分環(huán)節(jié)主要作用是消除靜態(tài)偏差,但同時也會降低系統(tǒng)的反應(yīng)速度。積分作用的強弱取決于積分時間常數(shù)[Ti],[Ti]越大,積分作用越弱,反之則越強。
微分環(huán)節(jié):微分環(huán)節(jié)的作用是阻止偏差的變化。反映偏差信號的變化趨勢(變化速率),并能在該偏差信號變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減小調(diào)節(jié)時間。微分作用的引入,有助于克服振蕩,使系統(tǒng)趨于穩(wěn)定狀態(tài),但微分的作用對輸入信號的噪聲很敏感,所以對那些噪聲較大的系統(tǒng)一般不用微分,或在微分起作用之前先對輸入信號進行濾波處理。
本智能車系統(tǒng)的舵機控制采用的就是基于位置式PID的方向控制算法[4]。通過模擬控制系統(tǒng)PID控制規(guī)律表達式的離散化,可得數(shù)字式 PID 表達式如下:
[U(k)=Kp*e(k)+Ki*i=0ke(i)+Kd*e(k)-e(k-1)] (5)
對于本智能車系統(tǒng),[Uk]即為舵機轉(zhuǎn)角[ek]為車體相對于導(dǎo)線的偏移量。此算法響應(yīng)時間快,穩(wěn)態(tài)誤差低,由于舵機本身就是一個延時較大的環(huán)節(jié),而積分項會導(dǎo)致相應(yīng)更加滯后,所以為了使舵機的響應(yīng)速度加快,只使用 PD 算法。
2.3 分區(qū)算法的構(gòu)建
在第十二屆的恩智浦杯智能車競賽中,新增設(shè)了圓環(huán),環(huán)形賽道是由賽道中心半徑在50厘米至150厘米的圓環(huán)組成。出入環(huán)形賽道的直線賽道夾角在90°至180°之間,直線長度不小于50厘米。對于電磁組賽道上引導(dǎo)線會圓環(huán)兩側(cè)都鋪設(shè)導(dǎo)線,并聯(lián)通過圓環(huán),為了保證環(huán)路兩邊電流大體一致,在兩支線上個子串聯(lián)一個0.5至1歐姆的匹配電阻。而此前電磁類全國參賽隊伍的技術(shù)報告并未詳細提供關(guān)于該種圓環(huán)賽道的循跡方案,故使得采用常規(guī)算法的智能車沿著中線行駛至圓環(huán)時,由于電磁強度的對稱分布而無法正確打角,此時小車可能會沿著圓環(huán)中軸線駛過賽道(圖4左邊),或者是進入圓環(huán)正確打角,但出圓環(huán)時不能正確及時打角,而讓小車沿圓環(huán)再循環(huán)行駛數(shù)次(圖4中間),更甚至于誤判方向,反向打角行駛一個錯誤的圓環(huán)(圖4右邊),可見及時提供一種新型智能車空間位置結(jié)算算法,是能正常進行后續(xù)調(diào)試的前提。
故我們結(jié)合了現(xiàn)已有的算法與自身智能車的實際情況,構(gòu)建了一種可行的融合算法——分區(qū)算法。通過合理的排布電感位置,可以通過三個并排電感當(dāng)前數(shù)據(jù)與相應(yīng)電感過渡值的最大值進行比較,從而將賽道劃分為四個區(qū)域,再結(jié)合前瞻的兩個電感值,對圓環(huán)賽道進一步識別,從而實現(xiàn)智能車的正常行駛。部分程序如下:
if(front-max==0&& (AD[1] <= P-transit[0] - 1)) //偏離0號傳感器
{
p=0;
}
elseif((front-max==0&& (AD[1] > P-transit[0] + 1)) || (front-max==1&& (AD[0] - AD[2]) >1)) //左側(cè)位置 0-1號傳感器之間
{
p=1;
}
elseif((front-max==1&& (AD[2] - AD[0]) >1) || (front-max==2&& (AD[1] > P-transit[1] + 1))) //右側(cè)位置 1-2號傳感器之間
{
p=2;
}
elseif(front-max==2&& (AD[1] <= P-transit[1] - 1)) //偏離3號傳感器
{
p= 3;
}
經(jīng)過了多次實踐調(diào)整,最終采用了五個,前二后三的電感排布方式[5],如圖5(左邊)所示(前瞻電感外八放置,后排三個電感等距垂直放置)。
例如當(dāng)智能車的位置如圖5(右邊)所示放置在長直賽道時,P=2左側(cè)電感值大于右側(cè),當(dāng)智能車放置在圓環(huán)賽道入口時,由于賽車前瞻長度的不斷調(diào)整,讓其P=2時,左右電感值無明顯差距,此外將賽車放置于不同賽道元素,結(jié)合分區(qū)作為輔助判斷,效果較好,且該程序已經(jīng)運用于第十二屆“恩智浦”智能車競賽中,并且取得成績,可操作性強。
我們對歸一化、PD算法和分區(qū)算法分別在直道、彎道和圓環(huán)處進行實驗對比,進行了在同一跑道各進行200次比賽 (正、反跑各100次 ),測出沖出跑道的次數(shù),以此得到一些實驗數(shù)據(jù)并繪制成如下圖6所示。
結(jié)果分析:由圖6可知,歸一化法對賽道不敏感,穩(wěn)定性差;PD算法和分區(qū)算法對直道和彎道都有較強的適應(yīng)性,且穩(wěn)定性佳,但是對圓環(huán)的識別效果區(qū)別明顯,PD算法對圓環(huán)的識別較分區(qū)算法差,由此可知分區(qū)算法對圓環(huán)有很好的適應(yīng)性,且穩(wěn)定性較好。
3 總結(jié)
本文所述的智能車系統(tǒng)循跡算法,通過實驗測試以及參加“恩智浦”杯智能車比賽證明此智能車系統(tǒng)的循跡算法設(shè)計是合理的,也大大提高了小車運行的穩(wěn)定性。但是還有一些需要改進的地方,分區(qū)算法雖然對圓環(huán)識別較好,但是如何讓分區(qū)算法高效穩(wěn)定地適應(yīng)整個賽道是我們下一步將要努力的方向。
參考文獻:
[1]卓晴.學(xué)做智能車:挑戰(zhàn)“飛思卡爾”杯[M]北京:北京航空航天大學(xué)出版社,2007.
[2]張曉峰,鐘一博,李清晨,等.電磁智能車循跡算法[J].計算機系應(yīng)用,2014(12):187-190.
[3]李梅,金力.《智能車PID算法的設(shè)計》實驗綜述[J].電腦知識與術(shù),2013(9):3826-3829.
[4]段力學(xué).PID參數(shù)整定方法分類與概述[J].現(xiàn)代計算機(專業(yè)版),2012(7):23-26.
[5]楊建民,趙玫,楊洪勇,等.電磁導(dǎo)航智能尋跡小車方向控制算法的分析與應(yīng)用[J].科學(xué)技術(shù)與工程,2016(33):71-78