陶文鵬



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