相信很多做工程的朋友都很熟悉PID的概念,至少會經常聽到這個概念,那麼這個簡稱背後所包含的含義是否已經完全理解了呢?如果你已經深刻的理解了,就麻煩看看本文有哪裡講述不對的地方 ,給予指正。如果你還不太清楚這個背後的含義,那麼就看看這篇文章能否給你一點啟發。
1
老套的含義
小編覺得,所有講述PID的文章必定會提到PID的基礎概念,P是比例調節,I是積分調節,D是微分調節,所以呢,小編不打算花什麼時間在這個上面,因為這些概念並不能幫助大家去理解其真正的含義,我們直接進入下一個環節。
2
P到底如何起作用?
P 比例作用是對偏差瞬間做出反應,偏差一旦產生,立即產生作用,使其控制量朝減少偏差的方向變化,控制作用的強弱取決於比例係數,比例係數越大,控制作用越強。
ok,是不是還是不好理解?
我們通過一個例子給大家進行說明,比如你要給一壺水進行加熱,而加熱的裝置就是你需要使用PID調節的東西,我們來看一下P是如何起作用的,首先大家要明白,PID三個參數都是常量,一旦確定以後就是固定的,比如在一開始對水加熱的時候,水溫是25度的常溫,而期望達到的溫度是60度,此刻溫度的偏差是60-25=45度,所以P給加熱裝置的作用是P乘以這個溫度差值,經過一個周期之後,下次調節的時候,溫度可能到了30度,那溫度的偏差就是60-30=30度,同樣P對加熱裝置起到的作用就是P乘以30,因此越接近目標溫度,P的作用越小。我們再反回一開始加熱的狀態,溫度差值45度,當P為1的時候,起到的作用是45*1,而如果P為2呢,起到的作用就是45*2,是不是P的數值越大,其控制作用越強,這就是我們在一開始給出大家的結論描述。
下面我們在matlab的仿真中看一下兩者的差異
首先我們使用matlab自帶的PID模塊快速的建立一個模型
假設一個溫度加熱的傳遞函數如模型所示
首先我們設置P=1; I=0; =0
仿真結果如下
然後設置P=2; I=0; D=0
仿真結果如下
然後將兩個放在一起做一下對比
藍色的為P=2的結果,黃色的為P=1的結果
通過結果來看,哪個的調節作用更強?
很明顯當P=2的時候的調節作用是強於P=1的時候的。
相信這個概念大家應該理解了吧?如果還有不理解的歡迎留言!
3
為什麼說I是為了解決靜態誤差?
很對朋友不太理解I的作用,我覺得根本原因在於沒有深刻的理解靜態誤差的概念,所以我們首先來說一說靜態誤差。
還是沿著之前的例子往下說,我們需要給一壺水進行加熱,加熱功率的大小就是需要PID調節的東西,大家考慮一下,如果有一個時刻加熱的速度正好等於了水的散熱的速度,那麼水的溫度是不是就不會再升高了,如何理解呢?前面我們說了P的作用是和溫度差有關的,假設當溫度到達了50度,這個時候的溫度差值是60-50=10度,此刻P起到的作用就是P乘以10,而這個時候水的散熱正好需要10乘以P的功率,再沒有I和D的作用的情況下,系統是不是就達到了一個穩態狀態,雖然水壺一直被加熱但是溫度並不會上升,這個時候實際溫度到目標溫度之間的差值就是靜態誤差,我們通過一個仿真結果來說明,還是上面的那個結果
我們看到,當系統處於一個穩定狀態的時候,實際的溫度和目標的溫度之間存在一個穩定的差值,這就是靜態誤差。
I又是如何起作用的呢?前面我們提到了,從數學概念上來說,I就是積分,積誰呢?積溫度偏差的分,只要實際溫度和目標溫度存在偏差就會把這個偏差進行累加,然後把這個積分後的結果作用到加熱設備上。
比如,我們這裡隨便添加一個積分參數,設置PID參數為
P=1; I=1;D=0
仿真結果如下
大家看一下,穩定下來後的靜態偏差是不是幾乎沒有了,我們可以和參數為P=1; I=0; D=0的狀態做一個對比
黃色的為P=1;I=1;D=0的仿真結果
紅色的為P=1;I=0;D=0的仿真結果
是不是很明顯?
同樣基於這個對比圖還可以多理解兩個概念:
積分會增加系統的超調量——可以看到,當I=1的時候,實際的溫度值明顯是要高於I=0的狀態的,因為累計的誤差起作用了嘛,所以產生的超調肯定會多一些。
積分會增加響應時間——從兩條變化曲線是可以看出的,上面的一條到達穩定的時間比下面的一條要長一些,確實是增加了響應時間。
4
D真的可以預測未來嗎?
接下來我們要說一說D的作用,在數學概念裡,D是微分,微分有什麼樣的物理意義?簡單來說,就是微小單元的斜率,斜率代表的就是變化速度,還是按照原來的例子,假設溫度加熱到55度,下一次調節時溫度加熱到了57度,下下一次溫度加熱到了58度,那麼溫度第一次變化了2度,第二次溫度變化了1度,因此溫度的變化速度是下降的,進而產生的結果就是提高D的調節作用。反之,如果在溫度為55度後,下一次調節時溫度調節到了56度,下下次調節時溫度加熱到58度,那麼溫度第一次變化了1度,第二次變化了2度,因此溫度的變化速度是上升的,進而產生的結果是降低D的調節作用。
我們還是仿真一下,設置參數
P=1 ; I =1; D=0.5
仿真結果如下
和之前P=1 ;I=1 ; D=0的仿真結果做一個對比
兩個曲線很明顯,不需要進行說明了吧!
可以看出,當參數D介入作用以後,明顯的遏制了偏差的變化趨勢,沒有使溫度出現明顯的超調,而且使得系統快速的達到了目標穩定態。
總結
所以說,總結一句話
P專注於當下,I總結的是過去,D預測未來!
PS:小編之前困惑於PID好久,一直沒有比較直觀的理解,網上找了一些資料也沒有寫的特別直白的,多數都是理論性的描述,正好最近小編迷戀於Matlab,順便也又研究了一下PID,把自己更深刻一點的理解分享給大家,也附帶上matlab仿真的結果,更加便於理解,如果有哪裡講的不對的地方還希望高手多多指點,共同進步!感謝!
end
點亮
,告訴大家你也在看