PID控制算法的C語言實現(一)
PID算法原理
最近幾天開通了我的博客,想總結一下本身的大學生活,一時間竟不知從何下手,冥想半天,最終決定仍是從PID開始吧,畢竟比較簡單,也是控制的基礎,更是編程的精髓。
在工業應用中,PID及其衍生算法是應用最廣的算法之一,能夠說是當之無愧的萬能算法,若是可以熟練掌握PID算法的設計與實現過程,對於通常的研發人員來說,應該是可以應對最基本的研發問題了;在我目前所接觸到的算法當中,PID算法能夠說是最簡單最能體現反饋思想的控制算法了。咱們先看下PID控制算法的通常形式:

PID 的控制流程簡單到了不能再簡單的程度,經過偏差信號控制被控量,而控制器自己就是比例、積分、微分三個環節的加和。這裏咱們規定(在 t 時刻):
1.輸入量爲 rin(t);
2.輸出量爲 rout(t);
3.誤差量爲 err(t)=rin(t)-rout(t);
pid 的控制規律爲:
理解一下這個公式,主要從下面幾個問題着手,爲了便於理解,把控制環境具體一下:
1.規定這個流程是用來爲直流電機調速的;
2.輸入量 rin(t)爲電機轉速預約值;
3.輸出量 rout(t)爲電機轉速實際值;
4.執行器爲直流電機;
5.傳感器爲光電碼盤,假設碼盤爲 10 線;
6.直流電機採用 PWM 調速 轉速用單位 轉 /min 表示;
由PID算法的控制流程圖及通常公式,能夠得出如下結論:
1.輸入量 rin(t)爲電機轉速預約值(轉/min);
2. 輸出量 rout(t)爲電機轉速實際值(轉/min);
3.誤差量爲預約值和實際值之差(轉/min);
補充說明:
1. 反饋控制的原理:經過上述的PID框圖能夠看出,PID 控制實際上是對誤差量的控制過程;
2. 若是誤差爲 0,則比例環節不起做用,只有存在誤差時,比例環節才起做用。
3. 積分環節主要是用來消除靜差,所謂靜差,就是系統穩定後輸出值和設定值之間的差值,積分環節實際上就是誤差累計的過程,把累計的偏差加到原有系統上以抵消系統形成的靜差。
4. 而微分信號則反應了誤差信號的變化規律,或者說是變化趨勢,根據誤差信號的變化趨勢來進行超前調節,從而增長了系統的快速性。
以上是我對PID控制算法的最基本原理的理解,但願你們可以多多提意見,我必定會盡快改正。
歡迎關注本站公眾號,獲取更多信息