歡迎您光臨本站 登入註冊首頁

PID控制的概念

admin @ 2014-03-26 , reply:0

概述

   看到很多兄弟姐妹來問關於PID控制器的情況,偶就結合自己的理解,儘可能淺顯的講述一下PID控制的概念和如何設計一個簡單的PID控制器的設計。其目的就是有興趣朋友們可……

    看到很多兄弟姐妹來問關於PID控制器的情況,偶就結合自己的理解,儘可能淺顯的講述一下PID控制的概念和如何設計一個簡單的PID控制器的設計。其目的就是有興趣朋友們可以跟這個設計一個簡單的PID控制器
    所謂的控制首先分有反饋控制和無反饋控制,我們當然討論的PID當然是有反饋控制了。所謂的有反饋控制無非是要根據被控量的情況參與運算來決定操縱量的大小或者方向,那麼到底如何根據被控兩來決定操縱量的大小呢,唉,這就有很多分類了,所謂的高級的控制方式也就是“高級”在這個節骨眼上,有什麼“自適應控制、模糊控制、預測控制、神經網路控制、專家智能控制”等等(至於到底這些控制方式有什麼優點,唉,我只用過PID,別的也說不清楚,去抄書的話也沒有說服力,關鍵是也懶的去抄。那位老弟如果要作論文,可以在這裡發揮一下,資料到處都是)。但是就目前而言,在工業控制領域尤其是控制系統的底層,PID控制演算法仍然獨霸鰲頭,佔領著80%左右的市場份額,當然,這裡所說的PID控制演算法不是俠義上的固定PID,現在不是講究多學科融合嗎?人們在PID控制規律中吸取了其他“高級”的控制規律的優點,出現了諸多的新穎的控制器如自校正PID、專家自適應PID、預估PID、模糊PID、神經網路PID、非線性 PID等新型PID控制器。至於所謂的變種的PID演算法如什麼“遇限削弱微分”微分先行,積分分離“bangbang+PID”等等,已經不算是什麼高級的控制方式了作控制器的廠商大多都會或多等等或少的採取一些,至於是神經網路PID,模糊PID,自適應PID是如何實現的,我所知道的就是利用對應的控制演算法,適時的調節PID的參數。還是舉個例子吧。傳統PID的演算法公式是:
   ?U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]   
     U(n)=?U(n)+U(n-1)
     e(n) ,e(n-1), e(n-2)就是歷史上的三個設定值跟過程值之間的偏差了。
    這是一個增量式的PID算式(如果有誰不明白什麼式增量是算式,呵呵,可能以後會提到,偶的寫作水平有限,不會組織內容,再說我是想到哪,寫道哪,呵呵,見涼)。
所謂的新型PID控制器,就是根據e(n)的不同,利用那些先進的控制規律來適當的調整Kp,Ki,Ke。至於怎麼調整,呵呵,這就太羅嗦了,也不是這篇內容所該介紹的,(關鍵是我也不太清楚,呵呵,見笑),需要這些功能的大俠應該是我的前輩,還請指教喲。
好了,現在正式介紹一下所謂的PID各個參數吧。
所謂的PID大家在大學期間都應該學過,就是比例(P)、積分(I)、微分(D)。
    比例控制:就是對偏差進行控制,偏差一旦產生,控制器立即就發生作用即調節控制輸出,使被控量朝著減小偏差的方向變化,偏差減小的速度取決於比例係數Kp, Kp越大偏差減小的越快,但是很容易引起振蕩,尤其是在遲滯環節比較大的情況下,Kp減小,發生振蕩的可能性減小但是調節速度變慢。但單純的比例控制存在靜差不能消除的缺點。這裡就需要積分控制。
    積分控制:實質上就是對偏差累積進行控制,直至偏差為零。積分控制作用始終施加指向給定值的作用力,有利於消除靜差,其效果不僅與偏差大小有關,而且還與偏差持續的時間有關。簡單來說就是把偏差積累起來,一起算總帳。
    微分控制:它能敏感出誤差的變化趨勢,可在誤差信號出現之前就起到修正誤差的作用,有利於提高輸出響應的快速性,減小被控量的超調和增加系統的穩定性。但微分作用很容易放大高頻雜訊,降低系統的信噪比,從而使系統抑制干擾的能力下降。因此,在實際應用中,應慎用微分控制,尤其是當你開始作實驗時,不防將微分控制項去掉,看看行不行,呵呵,不行啊?還是看看別的地方吧,肯定行的。
    行了,這三個參數說明白了,再來說說怎麼確定這幾個參數的數值吧。這幾個參數的確定比較先進的方式是自整定,但是如果是開始涉及這部分還是先不要講了,按照經驗值吧。估計大家用來控制溫度比較多。大家按照這個規律來選吧。
Kp=100/P
Ki= kp*T/I
Kd= kp*D/T
分別介紹一下各個參數的意義:
T:計算周期,就是各多少時間計算一次
?U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)],單位是秒。一般1秒或者0.5秒甚至5秒都行。
P:比例帶
I:積分時間
D:微分時間
P、I、D跟kp,ki,kd有什麼關係呢?
Kp=100/P,
Ki=kp*T/I
Kd=kp*D/T
然後就可以計算
?U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]   
算出來?U(n)之後再怎麼辦呢?怎麼把這一個數據跟控制輸出聯繫在一起呢?說道這裡我們先說說PID控制方式大體都有那些?
其一為線形連續PID輸出,也就是說,PID運算的結果以模擬電壓,電流或者可控硅導通角的形式按比例輸出。
其二為時間-比例PID輸出,也就是說,事先定一個時間長度,T1,然後PID運算的結果就在控制周期內以ON-OFF的形式輸出出來,比如你控制一個爐子的溫度,用電熱絲來加熱,就可以控制電熱絲的一個控制周期內通電占整個控制周期的比例來實現,電路上可以用繼電器或者過零觸發的方式來切斷或者接通電熱絲供電。
起三為位置比例PID,PID運算的結果主要是對應於調節閥的閥門開度。

    再回到前面,我們以第二種控制方式為例,計算出?U(n)后,一般首先將其歸一化,也就是說除以你所要控制的溫度的量程。
?U(n)0_1=?U(n)/(hh-ll)
而時間比例PID輸出對應的是“位置式PID運算”的結果
所以呢,我們要講結果累積起來,
U(n)0_1+=?U(n)0_1
然後將次結果換算成對應於控制周期的占空比。來輸出 


[admin via 研發互助社區 ] PID控制的概念已經有3654次圍觀

http://cocdig.com/docs/show-post-45149.html