什么是PID控制?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、前言
在智能車(chē)競(jìng)賽中,有很多環(huán)節(jié)需要通過(guò)軟件進(jìn)行對(duì)車(chē)模運(yùn)動(dòng)進(jìn)行精確控制。比如,車(chē)模與引導(dǎo)線之間的位置,就需要進(jìn)行精確控制,放置車(chē)模走失。車(chē)模通過(guò)攝像頭檢測(cè)到黑色引導(dǎo)線在視野中的位置,距離設(shè)定的視野中心點(diǎn)之間,具有一定偏差。這個(gè)偏差可以通過(guò)車(chē)模兩個(gè)前輪之間的速度差來(lái)進(jìn)行修正,也可以通過(guò)修改后輪的左右旋轉(zhuǎn)來(lái)進(jìn)行修正。因此這里就會(huì)引入一個(gè)重要的控制思路,那就是反饋控制。也就是利用偏差來(lái)修正車(chē)模的運(yùn)動(dòng)參數(shù)進(jìn)而減少偏差。今天給大家介紹的一個(gè)最經(jīng)典的反饋控制方法,那就是 PID 反饋控制。通過(guò)理解它,便于大家理解給定的參考例程軟件,并進(jìn)一步優(yōu)化。

二、反饋調(diào)節(jié)
以車(chē)模與引導(dǎo)線之間的偏差調(diào)節(jié)為例,說(shuō)明PID反饋控制的概念。這里的車(chē)模,就是我們控制的對(duì)象系統(tǒng)。它有輸入和輸出信號(hào)。對(duì)于位置控制來(lái)說(shuō),兩個(gè)前輪的速度差,就是車(chē)模位置的輸入信號(hào)。?引導(dǎo)線在車(chē)模攝像頭視野中心的偏差,就是系統(tǒng)的輸出信號(hào)。為了確保車(chē)模始終沿著引導(dǎo)線前行,通常設(shè)定這個(gè)偏差為 0。利用比較圖像中測(cè)量到的偏差與設(shè)定值之間的差別,通過(guò)某種算法來(lái)修正兩個(gè)前輪的差速,進(jìn)而使得偏差恢復(fù)到與設(shè)定值相同。也就是無(wú)偏差。PID 就是一種常見(jiàn)到的調(diào)節(jié)方法。

為了說(shuō)明負(fù)反饋調(diào)節(jié)的概念,這里先舉一個(gè)乒乓控制的策略。如果發(fā)現(xiàn)車(chē)模偏差大于0,表示靠左,則提高車(chē)模左輪的轉(zhuǎn)速,降低右輪的轉(zhuǎn)速,使得差速為大于0的一個(gè)常數(shù),車(chē)模便會(huì)往右轉(zhuǎn)向。當(dāng)車(chē)模往右轉(zhuǎn)向使得偏差小于0,表示偏向右方了。則將差速設(shè)定為小于 0 的 一個(gè)常數(shù)。此時(shí)車(chē)模便會(huì)往左旋轉(zhuǎn),進(jìn)而減小偏差。這個(gè)乒乓控制策略比較簡(jiǎn)單,但是最大的一個(gè)問(wèn)題,就是車(chē)模在行進(jìn)的過(guò)程中會(huì)左右搖擺,嚴(yán)重影響行進(jìn)的速度。那么,是否可以改變控制策略能夠使得這個(gè)過(guò)程變得平滑,并且最終誤差趨于 0 嗎?這就需要引入經(jīng)典的 PID控制。

三、PID控制
關(guān)于PID 控制的說(shuō)明,在網(wǎng)絡(luò)上有很多資料,大家可以通過(guò)網(wǎng)絡(luò)自行學(xué)習(xí),?這里給出他的一些基本概念。PID實(shí)際上是比例、積分、和微分的英文首字母的縮寫(xiě)詞,?它表示,對(duì)系統(tǒng)的反饋誤差信號(hào),分別通過(guò)比例放大、 積分、以及微分運(yùn)算之后,然后在通過(guò)一個(gè)加權(quán)系數(shù)將它們合并在一起,形成車(chē)模轉(zhuǎn)向的控制量,進(jìn)而去消除誤差。
相比與乒乓控制,通過(guò)將誤差乘以一個(gè)比例系數(shù)作為控制量,可以避免車(chē)模左右劇烈搖擺。將誤差進(jìn)行積分,可以有效消除殘存的車(chē)模偏移。微分則可以有效抑制調(diào)節(jié)的過(guò)沖,它是犧牲一部分快速響應(yīng)來(lái)獲得穩(wěn)定的效果。對(duì)于車(chē)模方向控制,由于方向本身就是對(duì)差速的積分,所以,通過(guò)左右輪進(jìn)行差速控制的時(shí)候,常常只需使用比例和微分就可以了。不需要再引入積分,否則就有可能使得方向控制產(chǎn)生劇烈的過(guò)沖。

四、效果演示
為了更加直觀的展示 PID 控制規(guī)律,這里通過(guò) CSDN 上的一個(gè)博文中的動(dòng)圖來(lái)說(shuō)明 PID 各個(gè)參數(shù)的作用。在這個(gè)直立的木板上,最左邊的旋鈕是一個(gè)設(shè)定位置的電位器,緊接著右邊也是一個(gè)電位器,它的位置是由上面電機(jī)的輸出軸帶動(dòng)。反應(yīng)了電機(jī)的輸出軸的角度。電機(jī)的旋轉(zhuǎn)電壓是通過(guò)對(duì)比設(shè)定電位器與檢測(cè)電位器之間的電壓差值經(jīng)過(guò) PID 調(diào)節(jié)來(lái)決定的。右邊三個(gè)電位器分別可成設(shè)定 PID 的三個(gè)加權(quán)系數(shù)的大小。由于控制電機(jī)的電壓決定了電機(jī)的轉(zhuǎn)速,對(duì)應(yīng)的位置是對(duì)轉(zhuǎn)速的積分,這一點(diǎn)與智能車(chē)的兩個(gè)前輪的差速,經(jīng)過(guò)積分之后,轉(zhuǎn)變成方向的偏差是一樣的?,F(xiàn)在只是進(jìn)行 比例調(diào)節(jié),可以看到電機(jī)的角度跟隨設(shè)定旋鈕的變化,效果是非常良好的。
接下來(lái),增加了積分部分,此時(shí),明顯可以看到電機(jī)的輸出角度跟隨設(shè)定電位器的速度增加,但也出現(xiàn)了明顯的震蕩。這是因?yàn)檎`差的積分,再疊加上電機(jī)角度對(duì)轉(zhuǎn)速的積分,使得反饋出現(xiàn)了過(guò)沖。如果此時(shí),增加 微分系數(shù),可以看到它降低了電機(jī)角度跟隨設(shè)定電位器的速度,但是明顯抑制了震蕩現(xiàn)象,提高了控制的穩(wěn)定性。這一點(diǎn),對(duì)于車(chē)模方向控制也是非常重要的。

※ 總 結(jié) ※
本文結(jié)合智能車(chē)方向控制,介紹了 PID 控制的基本概念,這個(gè)調(diào)節(jié)概念也可以應(yīng)用于速度、位置等其它運(yùn)動(dòng)量的控制。利用動(dòng)圖演示了 PID 三個(gè)參數(shù)在具有積分特性的控制對(duì)象上所產(chǎn)生的效果?;诖耍蠹铱梢赃M(jìn)一步優(yōu)化智能車(chē)控制程序。
