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