陶文鵬
摘 要:本設(shè)計(jì)以攝像頭為傳感器,利用電機(jī)和舵機(jī)來(lái)控制智能車(chē)的方向及速度,旨在研究并實(shí)現(xiàn)PID控制算法。其間設(shè)計(jì)并建立了簡(jiǎn)略的數(shù)學(xué)模型,進(jìn)行相應(yīng)數(shù)學(xué)公式的推導(dǎo),同時(shí)通過(guò)相關(guān)軟件進(jìn)行仿真,結(jié)合實(shí)際參數(shù),研究PID算法的原理。其目的是將PID算法與智能車(chē)車(chē)模相結(jié)合,使智能小車(chē)能夠正常并穩(wěn)定地沿著路徑行駛。
關(guān)鍵詞:智能車(chē);PID算法;路徑循跡;軟件仿真
中圖分類(lèi)號(hào):TP242.6 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2019)19-0030-03
Abstract: This design took camera as sensor, used motor and steering gear to control the direction and speed of intelligent vehicle, aiming at researching and realizing the PID control algorithm. In the meantime, a simple mathematical model was designed and established, and the corresponding mathematical formula was deduced. At the same time, the principle of the PID algorithm was studied by simulation with relevant software and actual parameters. Its purpose is to combine the PID algorithm with the intelligent vehicle model, so that the intelligent car can travel along the path normally and steadily.
Keywords: intelligent vehicle;PID algorithm; path tracking;software simulation
智能車(chē)作為輪式機(jī)器人的一個(gè)分類(lèi),在如今大數(shù)據(jù)與人工智能的時(shí)代背景下,其應(yīng)用較為廣泛,智能化需求日趨強(qiáng)烈,而控制系統(tǒng)是智能車(chē)的“智能”體現(xiàn)之處?;谧詭У挠布c傳感器,智能車(chē)要實(shí)現(xiàn)自動(dòng)控制與行駛的能力,還需要相應(yīng)的控制算法。智能車(chē)控制是一個(gè)既關(guān)鍵又復(fù)雜的問(wèn)題,需要考慮到道路形狀和智能車(chē)自身等各種因素的影響[1]。最基本的控制方式是開(kāi)環(huán)控制,通過(guò)傳感器收集路徑信息,直接控制舵機(jī)進(jìn)行打角,最終控制智能車(chē)的方向。其缺點(diǎn)十分明顯,基于開(kāi)環(huán)控制的智能車(chē)速度是固定不變的,不能隨著路況改變,其穩(wěn)定性在遇到類(lèi)似急轉(zhuǎn)彎的特殊路徑時(shí)不能得到保證。而PID控制算法采用的是閉環(huán)控制方式,通過(guò)反饋方式,調(diào)節(jié)相關(guān)參數(shù),使智能車(chē)能夠穩(wěn)定并以較快的速度進(jìn)行自動(dòng)循跡。
1 PID控制算法原理
PID控制器由以下幾個(gè)單元構(gòu)成,即比例單元(P)、積分單元(I)和微分單元(D)[2]。系統(tǒng)的輸入[e(t)]和輸出[u(t)]的關(guān)系為:
(1)
式中,[KP]為比例系數(shù);[TI]為積分時(shí)間常數(shù);[TD]為微分時(shí)間常數(shù);0和[t]分別為積分的上下限。
分別決定著各個(gè)控制單元的控制能力強(qiáng)弱。對(duì)[u(t)]和[e(t)]進(jìn)行拉普拉斯變換,整理可得,PID調(diào)節(jié)器的傳遞函數(shù)為:
(2)
根據(jù)PID控制器中的各個(gè)單元組成和式(1)、式(2)推導(dǎo),可得原理圖,如圖1所示。圖中,[r(t)]是希望系統(tǒng)輸出的目標(biāo)值,[y(t)]是系統(tǒng)在經(jīng)過(guò)調(diào)節(jié)后產(chǎn)生的輸出。
對(duì)式(1)、式(2)和圖1進(jìn)行分析可知,當(dāng)[r(t)]和[y(t)]的差值[e(t)]越大時(shí),通過(guò)比例系數(shù)[KP]的調(diào)節(jié),其產(chǎn)生的輸出值就越大;同理可知,差值[e(t)]越小,產(chǎn)生的輸出值就越小。所以,比例單元(P)的主要作用就是對(duì)系統(tǒng)誤差快速做出響應(yīng)并產(chǎn)生輸出,從而減少誤差。但是,比例單元并不能夠完全消除誤差,相應(yīng)的[KP]系數(shù)不能太大或太小,否則會(huì)帶來(lái)不穩(wěn)定或者遲滯的弊端。
積分控制單元(I)的作用是用來(lái)消除靜態(tài)誤差。系統(tǒng)的誤差[e(t)]只要不為0,在積分控制單元(I)的作用下就會(huì)不斷積累,并且會(huì)輸出相應(yīng)的控制量用來(lái)消除誤差[e(t)][3]。從時(shí)域上來(lái)看,積分有著類(lèi)似于“滯后”的作用,具有容錯(cuò)的功能,其作用太強(qiáng)會(huì)造成[e(t)]值過(guò)大時(shí)才進(jìn)行調(diào)節(jié),即超調(diào)量太大;其作用太弱會(huì)造成[e(t)]值較小時(shí)就進(jìn)行調(diào)節(jié),容易產(chǎn)生震蕩,所以要根據(jù)系統(tǒng)配置合適的[TI]參數(shù)。
微分控制單元(D)可以通過(guò)[e(t)]的變化率來(lái)判斷系統(tǒng)的趨勢(shì)(是要上升還是要下降),從而提前改變系統(tǒng)的控制量。微分作用能夠降低超調(diào)量較小造成震蕩的可能性,讓系統(tǒng)能夠快速響應(yīng),加快系統(tǒng)趨于穩(wěn)定的速度,使系統(tǒng)有更好的動(dòng)態(tài)性能。
2 基于MATLAB仿真實(shí)現(xiàn)PID算法
通過(guò)分析PID算法中的各個(gè)控制單元可知,各個(gè)單元的不同結(jié)合能夠形成不同的PID調(diào)節(jié)器,可分為比例調(diào)節(jié)器(P)、比例微分調(diào)節(jié)器(PD)、比例積分調(diào)節(jié)器(PI)、比例積分微分調(diào)節(jié)器(PID)。根據(jù)所要控制系統(tǒng)的不同性質(zhì),人們可以選擇不同的PID調(diào)節(jié)器。下面使用MATLAB對(duì)這幾個(gè)PID調(diào)節(jié)器進(jìn)行仿真,從而確定PID算法中各個(gè)單元的作用。
首先,建立簡(jiǎn)單的二階負(fù)反饋控制系統(tǒng),其傳遞函數(shù)為:
(3)
然后,對(duì)不同的PID調(diào)節(jié)器系統(tǒng)進(jìn)行仿真,調(diào)節(jié)參數(shù),繪制對(duì)應(yīng)的單位階躍響應(yīng)曲線。
2.1 比例控制
在進(jìn)行比例控制時(shí),[TD]、[TI]系數(shù)為0,因此系統(tǒng)的輸出與輸入的偏差成比例,則比例控制的傳遞函數(shù)為:
(4)
[KP]分別取0.5,2,5,10,此時(shí)系統(tǒng)的單位階躍響應(yīng)曲線如圖2所示。
2.2 比例微分控制
輸出與輸入偏差的微分成比例,即與偏差的變化速度成比例。所以,比例微分控制的傳遞函數(shù)為:
(5)
[KP]取1和10,[TD]取0,0.4,1,4,對(duì)應(yīng)的單位響應(yīng)曲線如圖3所示。
2.3 比例積分控制
輸出與輸入偏差的積分成比例,即與誤差的積累成比例。此時(shí),微分系數(shù)[TD]為0,因此系統(tǒng)的傳遞函數(shù)為:
(6)
[KP]取0.1和2,[TI]分別取3,6,12,24,對(duì)應(yīng)的單位響應(yīng)曲線如圖4所示。
2.4 比例積分微分控制
比例積分微分控制即為PID控制,傳遞函數(shù)為:
[G(s)=KP(1+1TIs+TD·s)] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7)
取適當(dāng)?shù)腫KP]=100,[TI]=2.2,[TD]=7,繪制系統(tǒng)的單位階躍響應(yīng)曲線,人們可以發(fā)現(xiàn)系統(tǒng)能夠在較短的時(shí)間達(dá)到穩(wěn)定,其單位階躍響應(yīng)曲線如圖5所示。
對(duì)幾個(gè)仿真的公式及圖像結(jié)果進(jìn)行分析,可以歸納出各個(gè)PID調(diào)節(jié)器的特點(diǎn)。
2.4.1 比例控制。P調(diào)節(jié)器控制可以消除擾動(dòng)的影響,能以較快的速度作用于輸出值,但是不能完全消除誤差。[KP]值過(guò)大,易產(chǎn)生波動(dòng);[KP]值太小,響應(yīng)速度太慢。
2.4.2 比例積分控制。PI調(diào)節(jié)器在比例P的基礎(chǔ)上以積分作用消除余差,因?yàn)榉e分的作用效果有一定的遲滯性,所以適用于誤差[e(t)]變化不大且對(duì)被控參數(shù)的精度有較高要求的場(chǎng)合。
2.4.3 比例微分控制。PD調(diào)節(jié)器在微分的作用下有著很好的預(yù)測(cè)性,對(duì)于具有一定容量滯后的控制系統(tǒng),設(shè)置適當(dāng)?shù)腫TD]參數(shù),可以顯著地提高系統(tǒng)的動(dòng)態(tài)性能指標(biāo)。
2.4.4 比例積分微分控制。PID調(diào)節(jié)器是一種較為理想的控制方式,在比例P的基礎(chǔ)上引入微分作用,可以消除余差,再加上微分作用,又能提高系統(tǒng)動(dòng)態(tài)響應(yīng)速度和穩(wěn)定性[4]。由于PID調(diào)節(jié)器存在積分作用,因此PID調(diào)節(jié)器有著一定的時(shí)間滯后,對(duì)于要求響應(yīng)速度較快的系統(tǒng),需要適當(dāng)調(diào)節(jié)[TI]參數(shù),或者只使用PD調(diào)節(jié)器。
3 PID算法的實(shí)現(xiàn)
3.1 智能車(chē)設(shè)計(jì)主要模塊
3.1.1 處理芯片模塊。作為整個(gè)智能小車(chē)的“大腦”,收集來(lái)自傳感器的數(shù)據(jù),處理收集到的信息,結(jié)合PID算法對(duì)電機(jī)和舵機(jī)的輸出進(jìn)行控制。
3.1.2 傳感器模塊。智能小車(chē)使用的是OV7725攝像頭,對(duì)路徑圖像進(jìn)行二值化處理,形成對(duì)應(yīng)的黑白圖像,處理芯片計(jì)算得到路徑中心值,確定小車(chē)方向的偏差值,從而尋找路徑的中線進(jìn)行自動(dòng)循跡。
3.1.3 驅(qū)動(dòng)模塊。小車(chē)具有4個(gè)輪子,后面2個(gè)輪子配有2個(gè)電機(jī),其可以通過(guò)調(diào)節(jié)電機(jī)輸入的PWM波的占空比來(lái)控制智能車(chē)的速度,前面2個(gè)輪子由一個(gè)舵機(jī)控制,舵機(jī)打角來(lái)控制智能車(chē)的方向。
3.1.4 速度檢測(cè)模塊。為了使用閉環(huán)控制,智能小車(chē)的車(chē)模后輪附加了編碼器,后輪的轉(zhuǎn)動(dòng)會(huì)帶動(dòng)編碼器的轉(zhuǎn)動(dòng),從而產(chǎn)生輸出脈沖信號(hào),處理芯片通過(guò)對(duì)脈沖信號(hào)正交解碼對(duì)智能車(chē)進(jìn)行測(cè)速,測(cè)得的速度作為速度調(diào)節(jié)的反饋輸入。
3.2 基于PID算法實(shí)現(xiàn)智能車(chē)的自動(dòng)控制
3.2.1 速度控制。智能小車(chē)自動(dòng)循跡期間存在不同的路況。在直道上行駛,路徑中心與小車(chē)中心的偏差較小,因此可以給智能車(chē)一個(gè)較快的速度,同理在彎道上偏差較大,可以給智能車(chē)一個(gè)較慢的速度。根據(jù)智能車(chē)速度調(diào)節(jié)的特點(diǎn),不同的路段保持速度穩(wěn)定即可,因此人們可以使用PID調(diào)節(jié)器進(jìn)行調(diào)節(jié),通過(guò)調(diào)節(jié)合適的[KP]、[TD]、[TI]參數(shù)進(jìn)行閉環(huán)控制,從而使智能車(chē)以較快速度穩(wěn)定通過(guò)不同的路段。
3.2.2 方向控制。由于舵機(jī)具有較大的滯后性,并且智能車(chē)在轉(zhuǎn)彎時(shí)要求快速響應(yīng),因此采用的是PD調(diào)節(jié)器。利用攝像頭采集到的圖像計(jì)算路徑中心與小車(chē)中心的偏差值,偏差值通過(guò)PD調(diào)節(jié)器產(chǎn)生的輸出控制舵機(jī)進(jìn)行打角,從而控制小車(chē)方向。另外,人們可以根據(jù)不同的偏差值給定不同的[KP]值和[TD]值,通過(guò)試驗(yàn)和測(cè)試確定對(duì)應(yīng)的值,使智能車(chē)在轉(zhuǎn)彎時(shí)快速響應(yīng)并保持較快的速度。
4 結(jié)語(yǔ)
本文以智能小車(chē)為載體,對(duì)PID控制理論中的公式進(jìn)行分析,使用MATLAB軟件,對(duì)不同的PID調(diào)節(jié)器進(jìn)行仿真,修改對(duì)應(yīng)的參數(shù),進(jìn)行橫向比較和縱向比較,確定調(diào)節(jié)器中各個(gè)單元的作用和不同調(diào)節(jié)器的適用范圍。最后結(jié)合智能車(chē)實(shí)際行駛中速度控制和方向控制的要求,確定合適的調(diào)節(jié)器,調(diào)節(jié)參數(shù),將PID算法在智能車(chē)上加以實(shí)現(xiàn),保證了智能車(chē)能夠高速穩(wěn)定自動(dòng)循跡。
參考文獻(xiàn):
[1]肖文健,李永科.基于增量式PID控制算法的智能車(chē)設(shè)計(jì)[J].信息技術(shù),2012(10):125-127.
[2]楊堯.基于MSP430的航空制冷控制專(zhuān)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.
[3]沈言夫.PID控制在乳化炸藥井下裝藥車(chē)上的應(yīng)用[J].世界有色金屬,2018(9):282-283.
[4]胡力剛,許偉明.非線性系統(tǒng)的PID控制器的研究與設(shè)計(jì)[J].計(jì)算機(jī)仿真,2010(12):195-199.