直觀的讀懂什麼是PID(附帶matlab仿真解讀)

2020-12-06 李大人在路上

相信很多做工程的朋友都很熟悉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

點亮

,告訴大家你也在看

相關焦點

  • 三門問題及matlab仿真驗證
    今天看到一個問題——三門問題,感覺挺有趣的,自己也親自上手利用matlab仿真模擬了一下,分享給大家。【三門問題】三門問題出自美國的電視遊戲節目Let's Make a Deal,因為是由一個叫蒙提霍爾的人提出的,所以也叫蒙提霍爾問題。
  • SPWM波控制逆變器雙閉環PID調節器的建模與仿真
    針對UPS單模塊10 kVA單相電壓型SPWM逆變器進行建模仿真。通過仿真,驗證了控制思路的正確性以及存該控制策略下的逆變器所具有的魯棒性強,動態響應快,THD低等優點。並以仿真為先導,將其思想移植到具體開發中,達到預期效果。
  • 基於MATLAB軟體心跳呼吸模型建立與仿真設計
    在生命探測和醫學研究領域,都需要進行心跳呼模型的仿真。MATLAB是MathWorks公司於1982年推出的一款高性能的數值計算和可視化數學軟體。它可以用來求解各類學科問題,包括信號處理、圖象處理、神經網絡、控制系統辨識等。用MATLAB對心跳呼吸進行仿真,可以大大提高仿真工作效率。
  • 基於Matlab的均勻平面電磁波的仿真
    Matlab由於其強大的功能、簡單易學的程式語言和可視化的仿真環境,為電磁場與電磁波的教學提供了仿真條件。藉助Matlab模擬和實現結構的可視化,把抽象概念變為清晰,對複雜公式進行計算和繪圖,動態直觀的描述了電磁場的分布和電磁波傳播狀態,幫助學生理解和掌握電磁場與電磁波傳播的規律,有助於學生對這門課程的學習。
  • 算法工匠MATLAB專訓營:Matlab繪圖,小試牛刀
    作者 | 蔡老師 仿真秀專欄作者首發 | 仿真秀平臺導讀:正文之前,我在此詳細說明一下,因為本文包含的程序太難得,網上肯定找不到這樣的程序。那麼這個程序和網上的順序有什麼差別呢?可以明確的說網上的程序大多就是一個理論仿真,根本不考慮實際環境的因素。那這樣的程序是培養不了大家的算法思維的。而在這個程序裡,關於信號的捕獲、跟蹤、解調、交織解交織、解碼等內容都在程序裡面詳細寫了。大家在網上想找到這方面的程序,幾乎是白日做夢!
  • 基於MATLAB的線性二次型最優控制
    本文針對單級倒立擺系統,完成了具體的系統建模及LQR控制的MATLAB仿真,通過增加系統自身的擾動及改變LQR控制器中加權陣R,對比仿真,得到了良好的控制效果。 pid
  • 靜止無功補償器電壓調節器仿真與實驗研究
    該加權控制策略採用了三部分傳遞函數計算SVC裝置等效電納,並通過電路仿真模型驗證算法並進行諧波分析。通過閉環的物理-數字仿真系統對所設計的電壓調節器進行功能測試和研究。仿真結果表明該方法的有效性。最後通過仿真和實驗研究算法有效性。1 SVC電壓調節器工作原理設計 SVC電壓調節器的主要作用是處理測量到的系統變量,產生一個與補償所需無功功率成正比的輸出信號。電壓調節器可根據SVC的具體應用,採用不同的控制變量和傳遞函數來實現。
  • 基於Matlab GUI的整流電路仿真設計[圖]
    現代計算機仿真技術為電力電子電路的設計和分析提供了嶄新的方法,可以使複雜的電力電子電路、系統的分析和設計變得更加容易和有效。Matlab是一種計算機仿真軟體,它是以矩陣為基礎的交互式程序計算語言。Simulink是基於框圖的仿真平臺,它掛接在Matlab環境上,以Mat lab的強大計算功能為基礎,用直觀的模塊框圖進行仿真和計算。
  • pid算法控制溫度引起供熱不足的原因分析
    pid算法控制溫度引起供熱不足的原因分析 ,「12vugqe」pid算法控制溫度,找無錫冠亞,pid算法控制溫度可以適應負荷變化,寬溫度範圍,-120℃~350℃。蒸汽專用的控制閥,換熱器等,運行可靠,壽命長。
  • 如何使用MATLAB仿真實現數位訊號調製的性能比較和分析
    本次課題針對於二進位的2ASK、2FSK、2PSK進行討論,應用Matlab 矩陣實驗室進行仿真,分析和修改, 通過仿真系統生成一個人機互動界面, 以利於仿真系統的操作。通過對系統的仿真,更加直觀的了解數字調製系統的性能及影響其性能的各種因素,以便於比較,評論和改進。
  • 智能pid溫度控制儀運行時的主要參數分別是什麼意思
    智能pid溫度控制儀運行時的主要參數分別是什麼意思 ,「12vugqe」智能pid溫度控制儀,找無錫冠亞,智能pid溫度控制儀可以適應負荷變化,寬溫度範圍,-120℃~350℃。蒸汽專用的控制閥,換熱器等,運行可靠,壽命長。
  • 基於MATLAB GUI的數位訊號處理仿真平臺的設計
    3.基於MATLAB GUI的數位訊號處理仿真平臺的構建方案採用MATLAB開發平臺,利用圖形用戶界面GUI,設計出結構圖,如圖1所示,系統的主界面一共有七個主要子模塊,分別代表了七個教學內容。通過單擊主界面上子模塊相應的按鈕即可啟動相應的子窗口。
  • 有限元仿真應力、應變解讀
    本文檔主要是對Abaqus後處理的應力、應變進行解讀,並和實際的材料力學、工程力學等結合情況,便於仿真分析工程師在進行後處理時
  • 基於Matlab/Simulink的光伏電池仿真模型研究
    最後,在Matlab/Simulink環境下建立光伏電池的仿真模型,將仿真結果與實測結果進行對比,驗證該模型的準確性。所以實驗室仿真分析成為光伏電池設計與研究的有效手段。本文在Matlah/Simulink的仿真系統中,基於光伏電池輸出特性的基礎上對光伏電池進行建模,仿真結果表明,該數學模型的輸出特性與實際太陽能電池板輸出特性非常接近,驗證了設計的正確性。
  • matlab符號微積分及應用舉例
    上述的方法可以用來解決函數極限相關的問題,一般在研究相關問題時,可以做出函數的圖像,更直觀的反應出極限值。 例、求當x趨於0時,函數y=sin(x^2)exp(x)的值,並會出相應圖像觀察。 exp(x)表示e^x.
  • 科研作圖之光譜圖繪製(matlab版)
    感謝關注matlab愛好者公眾號!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!
  • 單相橋式整流電路在MATLAB中的建模與仿真
    結果,仿真結果和理論分析一致,為單相橋式全控整流電路的研究打下了堅實的基礎。2 單相橋式全控整流電路在MATLAB/Simulink的建模與仿真2.1 單相橋式電路的仿真模型單相橋式全控整流電路主要由交流電源、晶閘管、RLC負載等構成,其在MATLAB/Simulink仿真模型如圖2所示。
  • Matlab:不定積分和定積分
    matlab中使用int()來計算一個積分。不定積分首先,通過符號變量創建一個符號函數,然後調用積分命令來計算函數的積分,示例如下:注意:matlab中計算的不定積分結果中沒有寫上常數C,讀者需要自己在使用的時候記得加上常數部分。
  • pid算法控制溫度節流前液體過冷溫度的確定
    pid算法控制溫度節流前液體過冷溫度的確定 ,「12vugqe」pid算法控制溫度,找無錫冠亞,pid算法控制溫度可以適應負荷變化,寬溫度範圍,-120℃~350℃。