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