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

2021-01-19 李大人在路上

相信很多做工程的朋友都很熟悉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處理Lumerical FDTD的三角納米片電場分布仿真結果
    FDTD原始結果  這裡我們選用三角納米片的電場分布仿真結果進行舉例。FDTD結果導出到MatlabFDTD數據導入到Matlab主要參考Lumerical官網的介紹文檔matlabsave。  可以通過如下腳本實現電場的讀取:E=getresult("z=0","E");E2=getelectric("z=0");E1=sqrt(E2);matlabsave("tri120.mat",E,E1);其中E得到的是一個struct結果:包含以下欄位的 struct:
  • 基於Matlab的均勻平面電磁波的仿真
    ,應用Matlab編程對電磁場的分布和電磁波的傳輸進行仿真,使得抽象的概念直觀化,有助於學生對於電磁場和電磁波教學內容的學習。   Matlab由於其強大的功能、簡單易學的程式語言和可視化的仿真環境,為電磁場與電磁波的教學提供了仿真條件。藉助Matlab模擬和實現結構的可視化,把抽象概念變為清晰,對複雜公式進行計算和繪圖,動態直觀的描述了電磁場的分布和電磁波傳播狀態,幫助學生理解和掌握電磁場與電磁波傳播的規律,有助於學生對這門課程的學習。
  • 哈工大、哈工程被列入「名單」後,又不讓用MATLAB,網友都怒了
    matlab,相信上過研究生,博士的都知道,這個軟體的強大之處,因為寫論文,搞仿真,計算都是用matlab,畢竟這個軟體內置了幾乎所有常見的數學函數,畫圖函數,仿真繪圖十分方便。這是美國MathWorks公司出品的商業數學軟體,不過用途不只限於數學,還可以用於數據分析、建模仿真、數值計算,被稱為理工科神器。如果用c來做仿真計算,非累死人不可,很多函數都得自己編了。
  • 保姆級超詳細攻略 百家號綁定淘寶聯盟pid和京東聯盟pid的步驟
    我是一名新的自媒體人,學做視頻有一段時間了,也在百家號上發了一些自己做的視頻,雖然播放量和粉絲什麼的都還比較少,但我會一直堅持下去的,希望能越來越好。好了,進入正題。今天我像往常一樣,進入自己的百家號後臺,想看看有沒有新增的評論什麼的。我看到了幾條新通知,一條是我的百家號轉正通知,另外兩條分別是成功開通「視頻商品功能」和「圖文商品功能」的通知。
  • matlab矢量函數的可視化
    matlab矢量圖流線圖streamlinestreamline(x,y,u,v,startx,starty)其中startx,starty分別為流線的坐標[x,y]=meshgrid(0:0.1:1,0:0.1:1);u=sin(x);v=-y;figure
  • Matlab:不定積分和定積分
    matlab中使用int()來計算一個積分。不定積分首先,通過符號變量創建一個符號函數,然後調用積分命令來計算函數的積分,示例如下:注意:matlab中計算的不定積分結果中沒有寫上常數C,讀者需要自己在使用的時候記得加上常數部分。通常情況下,matlab會使用默認的變量來做積分。
  • 淘寶聯盟的pid是這樣找到的
    最近,小編發現有很大一部分人都不知道怎樣才能獲得淘寶聯盟的pid(百家號的圖文帶貨活動必須綁定淘寶聯盟),所以小編決定寫一篇關於「怎樣獲得淘寶聯盟pid」的文章(步驟比較詳細,看完需要點耐心)。到這裡,你的淘寶聯盟的pid已經生成了,只需要再返回到推廣位管理頁面,並打開媒體備案管理之後,會發現在你的媒體id的數字下面會出現「推廣位」三個字,這時候點擊「推廣位」。
  • 哈工大被美國禁用matlab,中國開發出同樣的軟體,需要多長時間?
    其實,寫出一套matlab不難,難在兩個問題:一是應用環境怎麼解決,二是面對與現有matlab的巨大差距時,研發人員的心情可能是絕望的。以windows為例看matlab微軟剛開始寫作業系統時,也就是1980年一個程式設計師寫出的Dos系統,但是經過了到現在40年的發展,Windows已經是一個龐然大物,這中間全世界的用戶使用、反饋,都是在幫微軟把產品做得更好。
  • MATLAB2020a自動駕駛工具箱有哪些新特性?
    1、推出了MATLAB Web Appshttps://www.mathworks.com/products/matlab-web-app-server.html這個工具的作用,強行翻譯一下就是:您可以使用App Designer創建應用程式,使用MATLAB Compiler打包應用程式,並使用
  • 如何用Matlab/Python/Stata做簡單回歸分析
    %adjusted R-squared: Ra=1-((1/(N-k))*(e'*e))/((1/(N-1))*(Y-mean(Y))'*(Y-mean(Y))) Matlab導入文件的格式是*.dat文件,而實現回歸的過程其實是基於矩陣的計算:第一段使用的median/mean/corrcoef都是matlab
  • 什麼是 X 參數?如何仿真?
    什麼是 X 參數 - X Parameters 概念在微波射頻電路設計中,S 參數是最被廣泛使用的、描述射頻與微波網絡特性的參量。
  • 【一圖讀懂】《花都區落實廣州市人才綠卡審核事權實施辦法》的解讀
    【一圖讀懂】《花都區落實廣州市人才綠卡審核事權實施辦法》的解讀 2020-09-30 15:21:21
  • 一圖讀懂 | 重點場所防護指南:健身運動場所
    一圖讀懂 | 重點場所防護指南:健身運動場所 2020-07-20 23:17 來源:澎湃新聞·澎湃號·政務
  • matlab下實現FFT信號分析
    利用matlab做頻譜分析前我們需要了解分析過程中的一些基礎知識,matlab中的 fft 函數用法、fftshift 函數的用法函數 1  fft :作用:快速傅立葉變換。
  • 讀懂廣州,更好讀懂中國
    讀懂廣州,更好讀懂中國大洋網  作者:  2020-11-21 會上,3位專家也分別從各自領域出發,解讀為何以廣州作為解讀中國高質量發展的窗口
  • 什麼是刑事附帶民事訴訟?怎麼提起刑事附帶民事訴訟?
    一、什麼是刑事附帶民事訴訟?刑事附帶民事訴訟是指司法機關在刑事訴訟過程中,在解決被告人刑事責任的同時,附帶解決由遭受物質損失的被害人或人民檢察院所提起的由於被告人的犯罪行為引起的物質損失的賠償而進行的訴訟。
  • 中望結構仿真2021正式發布,幫助企業快速完成結構設計驗證
    同時,中望結構仿真軟體的推出,也讓中望形成了涵蓋結構、電磁、網格處理平臺的仿真產品矩陣,進一步增強了中望滿足多學科仿真應用需求的能力。「中望結構仿真是一款集建模與仿真於一體的專業結構仿真分析軟體,可準確快速地模擬產品結構的物理行為。」
  • 沉浸式虛擬仿真系統:為了嫦娥五號奔月,VR/AR都做了什麼?
    沉浸式虛擬仿真系統:為了嫦娥五號奔月,VR/AR都做了什麼?虛擬實境技術起源於航空工業,最早應用於飛行模擬仿真及平視顯示、頭盔顯示等領域。例如醫護專業教學中運用較多的幻境醫護虛擬仿真實訓平臺,就是通過VR創建一個虛擬實訓環境,學生在其中進行實訓練習,更加直觀逼真。而且不受時間空間的限制,也不存在安全隱患,可多次重複練習,大大降低了實訓成本,提高了實訓質量。
  • 百家號轉正後的新手如何申請商品圖文帶貨中的淘寶聯盟pid
    無奈,我一邊利用手機百度搜索,一邊在電腦上進行操作,希望能有百家號前輩的帖子指導,可打開他們的操作視頻看了半天,根本不是視頻介紹淘寶聯盟pid一鍵複製那樣簡單。因為在四月中下旬淘寶聯盟備案升級了,沒有以前那樣一鍵複製了。