PID控制算法是自動控制中的一個非常典型且重要的算法,可以明確的說,對于學(xué)自動控制的朋友來說,不懂PID控制,那就等于沒真正的學(xué)過自動控制。
PID的應(yīng)用其實在我們的生活中是很普遍的,它不止浮現(xiàn)于算法介紹的文獻中,在生活中也是應(yīng)用廣泛的、比如我們?nèi)粘J褂玫暮銣責(zé)崴?、液位穩(wěn)定系統(tǒng),以及平衡車,無人機的飛行姿態(tài)、飛行速度的控制等等。甚至更加高端的領(lǐng)域如自動駕駛等都會涉及到PID的使用。
說到這里,那我們就得要思考幾個問題:什么是PID?為什么需要使用 PID?什么情況下可以使用PID呢?
那我們先舉個例子:比如恒溫?zé)崴畨卮蠹覒?yīng)該都熟悉吧,我想讓熱水壺里面的水可以保持在一個恒定的溫度,那么就需要先將熱水壺里面的水先加熱到目標溫度的位置附近。到達這個水溫之后就一直保持在這個溫度,當水溫低了可以自動調(diào)節(jié)它升高到目標溫度,當水溫高了又能降低到目標溫度。這個過程的實現(xiàn)就需要依靠一種調(diào)節(jié)算法來實現(xiàn),而pid算法就能實現(xiàn)這樣的操作。
1、什么是 PID 呢?
PID算法是一種閉環(huán)控制算法,它由比例(proportional)、積分(integral)、微分(derivative)三部分控制算法單元組成,是一種常見的用于保持目標參數(shù)或者目標對象穩(wěn)定的控制算法。理論說的有點拗口,下面會一步一步解釋的。
首先,我們先來理解一下過程控制的思路。下面是一個簡單的閉環(huán)控制系統(tǒng)的框圖:
上圖中,被控變量是我們希望通過這個控制系統(tǒng)進行控制的對象,而給定值是我們設(shè)定給系統(tǒng)的輸入?yún)?shù),希望通過整個控制系統(tǒng)的作用,在給定值的情況下被控對象達到我們預(yù)期的目標。這是我們理想中要得到的效果。
所以,上圖中的調(diào)節(jié)器部分就是我們?yōu)榱吮豢刈兞窟_到我們預(yù)設(shè)的目標值,而又能穩(wěn)定的維持要采用的控制器(算法),而PID就是其中的一種算法。
上圖中將調(diào)節(jié)器的部分改動一下,改為PID控制器,就變成如下的框圖:
框圖中 e(t) 和 u(t) 的關(guān)系式如下:
將上面的傳遞函數(shù)展開,如下:
然后:
由此可得:
因此,上面的公式中:
Kp:比例時間系數(shù);
Ki:積分時間系數(shù);
Kd:微分時間系數(shù);
e(t):誤差
t:時間
上面的式子中,把公式進行拆解,可以得到三種控制算法,每一種都可以單獨使用,如下:
從上面也可以看的出來,PID算法其實就是三個算法的組合,從數(shù)學(xué)的角度來看也就是三部分算法作用之后的的代數(shù)和!
總結(jié):PID 調(diào)節(jié)器是一種線性調(diào)節(jié)器,它將給定值 r(t)與實際輸出值 c(t)的偏差的比例(P)、積分(I)、微分(D)通過線性組合構(gòu)成控制量,對控制對象進行控制。
2、PID算法的 P、I、D 部分的作用和解釋
(1)P - 比例的作用
比例P的作用:能夠即時成比例的反映控制系統(tǒng)的偏差信號e(t),一旦有偏差的產(chǎn)生,調(diào)節(jié)器能立即產(chǎn)生作用 減少偏差 。
這是什么意思呢?是不是不好理解?
簡單點說:比例部分其實就是對系統(tǒng)設(shè)定值和輸出值的偏差的放大倍數(shù)。
舉個例子:
如果有一個電機的兩端電壓為U,系統(tǒng)采用P控制,P=0.4,設(shè)定的目標值是800,而現(xiàn)在的反饋值實際是1000,那么此時輸出到電機兩端的電壓應(yīng)該變?yōu)?U+0.4*(800-1000),以此來實現(xiàn)調(diào)節(jié)電機速度的目的。
由此也可以看的出來,P越大,電機轉(zhuǎn)速回歸到輸入值的速度就越快,反應(yīng)就越迅速,即調(diào)節(jié)的 靈敏度就越高 。
但是,P也不是越大越好,雖然P大的時候調(diào)節(jié)的靈敏度會變高,但是也容易導(dǎo)致調(diào)節(jié)之后的目標值在預(yù)設(shè)值的附近振蕩,使系統(tǒng)穩(wěn)定性下降,會造成系統(tǒng)不穩(wěn)定。
(2)I - 積分的左右
針對上面提到的振蕩的問題,引入積分是可以解決的。
積分的目的其實就是對預(yù)設(shè)值和反饋值之間的偏差在時間上進行累加,從而消除系統(tǒng)的穩(wěn)態(tài)誤差,提高系統(tǒng)的無差度??偠灾?,只要系統(tǒng)還存在誤差,那么積分環(huán)節(jié)就會進行調(diào)節(jié),直到系統(tǒng)沒有誤差為止。
但是,積分作用也不是越強越好,積分的作用過強的話,會導(dǎo)致系統(tǒng)的調(diào)節(jié)效果出現(xiàn)滯后。
總的來說,積分環(huán)節(jié)的作用就是反應(yīng)系統(tǒng)的累計偏差,使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度,只要有誤差的存在,積分調(diào)節(jié)就會進行,直至無誤差;
(3)D - 微分的作用
還是接著上面的電機的轉(zhuǎn)速來說明,微分的存在其實就是反映電機轉(zhuǎn)速的變化率,能夠通過之前誤差的變化預(yù)測電機轉(zhuǎn)速的誤差變化的趨勢,具有超前調(diào)節(jié)的作用,并且D越大,超前預(yù)測的作用越明顯。
簡單來說,微分的存在是為了預(yù)測偏差的變化趨勢,產(chǎn)生超前的控制作用,在偏差沒有形成之前,就通過微分的調(diào)節(jié)左右消除偏差,改善系統(tǒng)的動態(tài)性能。
關(guān)于PID的知識就先簡單講這么一點點,后期再繼續(xù)學(xué)習(xí)補充。
下面是我在網(wǎng)上找到的一個關(guān)于PID的調(diào)節(jié)的一個演示,很生動的說明了PID調(diào)節(jié)過程中P、I、D三個控制參數(shù)作用到系統(tǒng)的調(diào)節(jié)效果,方便大家理解PID,如下:
從上面的動圖可以看出:
1、Kp越大,越能快速接近目標值1.0
2、只調(diào)整Kp可能會存在穩(wěn)定誤差
3、加入Ki可以減小穩(wěn)定誤差,但同時也使得系統(tǒng)震蕩加劇
4、加入Ki加快了整體的響應(yīng)速度
5、加入Kd可以減小震蕩,但也降低了響應(yīng)速度(可以通過觀察圖像什么時間t首次碰到目標1.0)
-
控制器
+關(guān)注
關(guān)注
112文章
16111瀏覽量
177083 -
PID
+關(guān)注
關(guān)注
35文章
1469瀏覽量
85197 -
自動控制
+關(guān)注
關(guān)注
10文章
708瀏覽量
44094 -
PID控制
+關(guān)注
關(guān)注
10文章
453瀏覽量
40011 -
控制算法
+關(guān)注
關(guān)注
4文章
166瀏覽量
21670
發(fā)布評論請先 登錄
相關(guān)推薦
評論