摘 要: 該智能小車設(shè)計(jì)采用雙輪差速的機(jī)械結(jié)構(gòu),利用紅外反射式光電傳感器采集地面引導(dǎo)黑線信息。針對(duì)車體機(jī)械結(jié)構(gòu)和巡線算法的設(shè)計(jì)與改進(jìn)做出了詳細(xì)的分析與論證。分析了車體的前瞻和車輪間距對(duì)轉(zhuǎn)彎速度的影響,其控制算法采用加權(quán)掃描探尋黑線信息并輔以PID算法反饋控制小車的行進(jìn)方向,使小車按照既定的路線前進(jìn)。
關(guān)鍵詞: 智能小車;機(jī)械結(jié)構(gòu);加權(quán)掃描;PID
0 引言
智能機(jī)器人技術(shù)涉及電子、機(jī)械、傳感器、計(jì)算機(jī)、自動(dòng)化、信息處理等多門學(xué)科[1]。智能小車在倉庫智能管理、高壓線路除冰等領(lǐng)域有著廣闊的應(yīng)用前景[2]。機(jī)械結(jié)構(gòu)作為小車的基礎(chǔ),在行走的穩(wěn)定度、靈敏度等指標(biāo)上起到了舉足輕重的作用。本文將機(jī)械結(jié)構(gòu)、加權(quán)掃描算法與PID算法相結(jié)合,使小車能夠更快速、更穩(wěn)定地按照既定的路線行駛,并且根據(jù)路況信息實(shí)時(shí)控制行進(jìn)的速度與方向。
1 車體結(jié)構(gòu)設(shè)計(jì)
1.1 車體結(jié)構(gòu)簡介
車體基本結(jié)構(gòu)如圖1所示。小車前端為8路單排紅外對(duì)管巡線電路板,可以利用它獲取地面引導(dǎo)黑線的信息;中間為一對(duì)直流減速電機(jī)和車輪,這是整個(gè)小車的動(dòng)力來源,可以通過控制這兩個(gè)車輪的轉(zhuǎn)動(dòng)方向和速度控制小車的前進(jìn)、后退、轉(zhuǎn)向等;車尾為兩個(gè)可自由轉(zhuǎn)動(dòng)的萬向輪,它們的主要作用是支撐小車,使車體穩(wěn)定,由于萬向輪擁有多個(gè)自由度[3],它們不會(huì)對(duì)小車的運(yùn)動(dòng)造成明顯影響。
1.2 影響小車行進(jìn)的因素
在設(shè)計(jì)小車基本結(jié)構(gòu)時(shí),很多人往往只注重功能的實(shí)現(xiàn)和外型的美觀,其實(shí)車體各部分結(jié)構(gòu)分布對(duì)小車運(yùn)行效果的影響是相當(dāng)大的。如果車體各部分布局進(jìn)入誤區(qū),即使后面使用再好的控制方案也很難取得理想的效果;反之,如果車體各部分布局合理,在軟件調(diào)試的過程中將達(dá)到事半功倍的效果。
1.2.1 前瞻D1
如圖1所示,紅外巡線電路板與動(dòng)力車輪的輪軸之間的距離為D1,這個(gè)距離通常被稱為前瞻,它表示小車提前感知引導(dǎo)黑線的距離長度。在控制小車時(shí)控制電路和執(zhí)行設(shè)備都需要相應(yīng)的反應(yīng)處理時(shí)間,適當(dāng)?shù)那罢澳苁笴PU提前獲取導(dǎo)航黑線信息并及時(shí)地做出運(yùn)動(dòng)反應(yīng),從而達(dá)到減小甚至消除反應(yīng)延遲的作用。
假設(shè)車體前瞻D1,電機(jī)最大轉(zhuǎn)速wmax,車輪直徑d。小車全速前進(jìn)時(shí),前瞻留給車體的反應(yīng)時(shí)間T為:
T=D1+[wmax×(d÷2)](1)
由式(1)可見,選擇一個(gè)合適的前瞻D1可以為小車爭取一定的反應(yīng)時(shí)間,使小車循跡效果更好。但是D1值也不能過大,如果D1值過大,小車在轉(zhuǎn)彎時(shí),由于單片機(jī)檢測到路況信息變化過早,小車可能提前轉(zhuǎn)彎從而影響小車的正確行使。
1.2.2 車輪間距D2
在設(shè)計(jì)車體結(jié)構(gòu)時(shí),兩個(gè)驅(qū)動(dòng)車輪的間距也是一個(gè)必須考慮的參數(shù),它將關(guān)系到小車轉(zhuǎn)彎角度的大小。實(shí)驗(yàn)小車采用差速轉(zhuǎn)彎方式實(shí)現(xiàn)小車轉(zhuǎn)彎功能,其具體轉(zhuǎn)動(dòng)的角度可由以下算法得到。
小車差速轉(zhuǎn)彎模型如圖2所示。小車的左輪角速度為w1,右輪角速度為w2,且w1<w2,即差速向左轉(zhuǎn)彎,兩個(gè)驅(qū)動(dòng)車輪的間距為D2(如圖2直線BC的長度),車輪直徑為d。設(shè)小車左輪在Δt時(shí)間內(nèi)走過的路程為S1(如圖2弧線AB的長度),右輪在Δt時(shí)間內(nèi)走過的路程為S2(如圖2弧線CE的長度),在Δt時(shí)間內(nèi)轉(zhuǎn)動(dòng)的角度為Δ(如圖2從A點(diǎn)做BC的平行線交CE于D,AE與AD的夾角即為Δ),L為小車轉(zhuǎn)過的弧度長(如圖2弧線FE的長度)。
當(dāng)Δt→0時(shí),有:
由式(8)可以看出,當(dāng)w1=0時(shí),θ達(dá)到最大,即:
很明顯由式(8)可以得出,在車輪角速度w1、w2和車輪直徑d確定的情況下,小車轉(zhuǎn)彎角度大小由車輪間距D2唯一確定。所以在設(shè)計(jì)車體時(shí),要使小車能夠達(dá)到較好的工作效果,車輪間距是必須考慮的參量。
2 控制算法設(shè)計(jì)
2.1 巡線方式
小車采用8路紅外對(duì)管(ST188反射式紅外對(duì)管)采集路況信息。8路紅外對(duì)管采用最常用的一字型布局,此布局方式簡單,可以很容易地檢測到路面的信息,其布局如圖3所示。
小車通過設(shè)定傳感器閾值來分辨黑、白。設(shè)Ci=0和1分別代表第i個(gè)紅外對(duì)管檢測到白色和黑色。單片機(jī)通過各個(gè)傳感器反饋回來的信息判斷小車的具體位置,并通過PID算法及時(shí)調(diào)整小車的行進(jìn)方向,避免小車偏離黑線過多,超出傳感器檢測的范圍而脫離軌道。具體巡線算法如下:
將8個(gè)傳感器依次加權(quán)Ai(i=1,2…8),表達(dá)式如下:
各權(quán)值大小可根據(jù)控制算法和調(diào)試效果適當(dāng)修改,不一定要為等差分布。設(shè)定小車在既定的正確路線時(shí)的目標(biāo)值goal=0,小車行駛的當(dāng)前值為now,小車當(dāng)前行駛的位置與既定目標(biāo)的偏移量為offset。則小車的當(dāng)前值由以下公式可以算出:
偏移量offset為:
offset=now-goal=now(12)
例如當(dāng)3號(hào)和4號(hào)傳感器檢測到黑線時(shí),由式(11)、(12)可知:
offset=now=3
將計(jì)算出來的偏移量送入PID算法,反饋控制小車的行進(jìn)方向、速度,從而使小車順利地沿著黑線行走。
采用加權(quán)掃描法增強(qiáng)了巡線小車抗環(huán)境干擾的能力。在采用傳統(tǒng)掃描判斷方式時(shí),需要將實(shí)際過程中的各種情況都羅列出來才能保證小車持續(xù)平穩(wěn)運(yùn)行。但是采用這種方式通過簡短的程序就可以讀出所有狀態(tài);同時(shí),采用本方法獲取引導(dǎo)黑線信息時(shí)可以明顯減小干擾信號(hào)的影響,從而增強(qiáng)小車的抗干擾能力。此外,這種方式巡線可以在一定程度上忽略導(dǎo)航黑線的寬度對(duì)小車巡線的影響,使巡線方式更加可靠。
2.2 PID算法簡介
采用加權(quán)掃描法雖然可以增強(qiáng)小車的抗干擾能力,但是如果控制系統(tǒng)中沒有反饋系統(tǒng)時(shí),小車將不知道當(dāng)前行進(jìn)的具體情況。為此,提出了在加權(quán)掃描的基礎(chǔ)上輔以PID算法,根據(jù)傳感器反饋給單片機(jī)的信息及時(shí)地做出相應(yīng)的處理。PID是控制中最經(jīng)典的一種控制算法,又稱為比例-積分-微分控制。PID控制是一個(gè)負(fù)反饋閉環(huán)控制系統(tǒng),也稱為誤差調(diào)節(jié)器。其系統(tǒng)框圖如圖4所示。
數(shù)字式PID控制算法可以分為位置式PID和增量式PID控制算法[4]。采用增量式算法時(shí),計(jì)算機(jī)輸出的控制量Δuk對(duì)應(yīng)的是本次執(zhí)行機(jī)構(gòu)位置的增量,而不是對(duì)應(yīng)執(zhí)行機(jī)構(gòu)的實(shí)際位置,因此要求執(zhí)行機(jī)構(gòu)必須具有對(duì)控制量增量的累積功能,才能完成對(duì)被控對(duì)象的控制操作,所以操作相對(duì)復(fù)雜。考慮到小車實(shí)際情況以及操作的簡便性,本文采用位置式PID控制算法,其算法如下:
其中:k為采樣序號(hào),k=0,1,2,…;uk為第k次采樣時(shí)刻的計(jì)算機(jī)輸出;ek為第k次采樣時(shí)刻輸入的偏差值;ek-1為第k-1次采樣時(shí)刻輸入的偏差;Ti為控制器的積分時(shí)間,也稱積分系數(shù);Td為控制器的微分時(shí)間,也稱微分系數(shù);Kp為控制器的比例系數(shù);Ki為積分系數(shù),Ki=Kp×T/Ti;Kd為微分系數(shù),Kd=Kp×Td/T。
2.3 PID算法在循線小車系統(tǒng)中的應(yīng)用
本文采用PWM脈寬調(diào)制方式控制電機(jī)轉(zhuǎn)速,PID算法實(shí)現(xiàn)公式如下:
其中,PWML為控制左電機(jī)的PWM波脈寬,PWMR為控制右電機(jī)的PWM波脈寬,Xnow為小車當(dāng)前偏移量,Xold為小車上一讀取周期偏移量,X0為目標(biāo)值。P、I、D依次為調(diào)節(jié)的比例、積分、微分系數(shù)。按上述公式可以同時(shí)調(diào)節(jié)左右兩個(gè)電機(jī)的轉(zhuǎn)速,并根據(jù)實(shí)際調(diào)試進(jìn)行微調(diào),可以使小車平穩(wěn)且快速地按照既定的路線行駛。
3 結(jié)束語
本文完成了對(duì)智能小車在機(jī)械結(jié)構(gòu)以及巡線算法兩方面的優(yōu)化設(shè)計(jì)。提出了合適的前瞻以及車輪間距,能提高小車的巡線速度以及穩(wěn)定性,并建立數(shù)學(xué)模型對(duì)其進(jìn)行了理論推導(dǎo),證明其有效性。提出了加權(quán)掃描算法與PID算法相結(jié)合的方式完成小車的巡線功能。經(jīng)實(shí)驗(yàn)證明利用以上機(jī)械結(jié)構(gòu)和算法能使小車平穩(wěn)并迅速地按照既定路線行駛。
參考文獻(xiàn)
[1] 孫麗飛,王法能,王寬仁,等.基于模糊PID控制的智能巡線機(jī)器人的設(shè)計(jì)與研究[J].儀器儀表用戶,2008,15(6):29-30.
[2] 張鍇,李世光,朱曉莉,等.基于STM32的智能巡線小車[J].電子測量技術(shù),2012,35(2):105-107.
[3] 余主正,張力.基于S3C2440+ATmega16的雙核探路小車設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2012,34(8):59-61.
[4] 劉彬,譚建平,黃長征.一種改進(jìn)PID控制算法的研究與應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(16):15-17.