淺談PID控制及其調試_第1頁
淺談PID控制及其調試_第2頁
淺談PID控制及其調試_第3頁
淺談PID控制及其調試_第4頁
淺談PID控制及其調試_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、淺談PID控制及其調試作者:袁偉明 日期:2015年5月18日一、前言寫這篇文章首先是對學習PID的總結,同事也是方便于參加飛思卡爾同學和這方面愛好者對PID的理解。此文章中參考和引用了百度知道、CSDN博客、新浪博客、百度貼吧等多方網站資料,并加入了自己一些理解與體會,希望能給大家帶來幫助。若有不妥或錯誤之處,歡迎指正。二、控制系統分類控制系統有很多的種類,但是這里只是介紹常用開環控制系統與閉環控制系統的相關理論知識。1.開環控制開環控制系統(open-loop control system)是指被控對象的輸出(被控制量)對控制器(controller)的輸出沒有影響。在這種控制系統中,不依

2、賴將被控量反送回來以形成任何閉環回路。2.閉環控制閉環控制系統(closed-loop control system)的特點是系統被控對象的輸出(被控制量)會反送回來影響控制器的輸出,形成一個或多個閉環。閉環控制系統有正反饋和負反饋,若反饋信號與系 統給定值信號相反,則稱為負反饋(Negative Feedback),若極性相同,則稱為正反饋,一般閉環控制系統均采用負反饋,又稱負反饋控制系統。閉環控制系統的例子很多。比如人就是一個具有負反饋 的閉環控制系統,眼睛便是傳感器,充當反饋,人體系統能通過不斷的修正最后作出各種正確的動作。如果沒有眼睛,就沒有了反饋回路,也就成了一個開環控制系 統。另例

3、,當一臺真正的全自動洗衣機具有能連續檢查衣物是否洗凈,并在洗凈之后能自動切斷電源,它就是一個閉環控制系統。開環控制系統與閉環控制系統的簡單圖形示例:3.小結開環與閉環控制系統最大的區別就是:前者的控制量不依賴控制對象返回的信號,后者輸出的控制量則會依賴于控制信號返回。例如:控制一個電機的轉速,如果是開環的控制系統,那么輸出會一直處于最大功率直到電機達到設定速度;如果是閉環控制系統,控制器的輸出可能一開始是最大功率輸出,但是越接近設定速度,輸出的功率會慢慢減少。這個控制對象的過程是個累加的過程,后面會在增量式PID的算法中講到;上述的情況用開環控制系統,最后會使電機的轉速遠遠地超過設定速度,因為

4、有個滯后性;而用閉環控制系統就可以很好的控制最終電機的速度接近設定值。這就是閉環控制系統與開環控制系統的最大區別與好處。三、PID原理和特點在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節。PID控制器問世至今已有近70年歷史,它 以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。當被控對象的結構和參數不能完全掌握,或得不到精確的數學模型時,控制理論的 其它技術難以采用時,系統控制器的結構和參數必須依靠經驗和現場調試來確定,這時應用PID控制技術最為方便。即當我們不完全了解一個系統和被控對象,或 不能通過有效的測量手段來獲得

5、系統參數時,最適合用PID控制技術。PID控制,實際中也有PI和PD控制。PID控制器就是根據系統的誤差,利用比例、 積分、微分計算出控制量進行控制的。1.比例(P)控制比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。當僅有比例控制時系統輸出存在穩態誤差(Steady-state error)。2.積分(I)控制在積分控制中,控制器的輸出與輸入誤差信號的積分成正比關系。對一個自動控制系統,如果在進入穩態后存在穩態誤差,則稱這個控制系統是有穩態誤差的 或簡稱有差系統(System with Steady-state Error)。為了消除穩態誤差,在控制器中必須引入“積分

6、項”。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積 分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減小,直到接近于零。因此,比例+積分(PI)控制器,可以使系統在進入穩態后幾乎無穩 態誤差。3.微分(D)控制在微分控制中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關系。自動控制系統在克服誤差的調節過程中可能會出現振蕩甚至失穩。其原因是由于存在有較大慣性組件(環節)或有滯后(delay)組件,具有抑制誤差的作用, 其變化總是落后于誤差的變化。解決的辦法是使抑制誤差的作用的變化“超前”,即在誤差接近零時,抑制誤差的作用就應該

7、是零。這就是說,在控制器中僅引入 “比例”項往往是不夠的,比例項的作用僅是放大誤差的幅值,而需要增加的是“微分項”,它能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能 夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或滯后的被控對象,比例+微分(PD)控制器能改善系統在 調節過程中的動態特性。4.小結這部分主要是弄清楚P、I、D三個參數的意思和這三個控制單元在控制過程中分別的作用。P就是比例項,I就是積分項,D就是微分項,也可以說是系數,因為這個是在離散公式中的參數,在PID公式中,可以容易的發現它們分別是比例系數、積分系數、微分系數;如果需要

8、深入理解可以自己將離散化過程好好學習一下,通過畫圖也能夠很好的理解比例、積分(求面積)、微分(求斜率)過程。在對控制單元的選擇上面,就要先了解控制單元的作用,上面可能是對控制單元作用的總體敘述,但是,我在這里說一下我對控制單元的理解:比例就是減少達到目標的時間,積分是消除與設定之間的誤差(穩態誤差(靜差),微分可以判定系統誤差的趨勢,從而起到一個預判的作用;也有人將其比喻為現在、過去、將來,或者大勺、中勺、小勺;個人認為這樣理解也是可以的,但是更為重要的是認真分析公式,了解比例、積分、微分的過程與作用。有人會問為啥只有p、PI、pd、pid而沒有id控制,在這里,據我的理解和查閱資料,理解為:

9、P是控制的主要作用是不可缺少的控制單元,而id為輔助控制單元,因此控制中,P為不可缺單元。選擇控制方案的時候,可以參考如果系統需要得到很精確的值,可以加入I參數;如果系統需要適應動態性能,如:滯后性等,加入D可以有效的避免系統的嚴重超調;如果是PID控制,那么會使得系統更好,但是這些控制方案中調節不好也會出現很大的問題,具體后面會說。四、PID算法PID算法也有很多,在此,就最常見的增量式PID算法與位置式算法作分析,包括其原理與C編程分析。1. PID增量式算法離散化公式:u(k)= u(k)- u(k-1)u(k)=Kpe(k)-e(k-1)+Kie(k)+Kde(k)-2e(k-1)+e

10、(k-2)進一步可以改寫成:u(k)=Ae(k)-Be(k-1)+Ce(k-2)對于增量式算法,可以選擇的功能有:(1) 濾波的選擇可以對輸入加一個前置濾波器,使得進入控制算法的給定值不突變,而是有一定慣性延遲的緩變量。(2) 系統的動態過程加速在增量式算法中,比例項與積分項的符號有以下關系:如果被控量繼續偏離給定值,則這兩項符號相同,而當被控量向給定值方向變化時,則這兩項的符號相反。由于這一性質,當被控量接近給定值的時候,反號的比例作用阻礙了積分作用,因而避免了積分超調以及隨之帶來的振蕩,這顯然是有利于控制的。但如果被控量遠未接近給定值,僅剛開始向給定值變化時,由于比例和積分反向,將會減慢控

11、制過程。為了加快開始的動態過程,我們可以設定一個偏差范圍v,當偏差|e(t)|< 時,即被控量接近給定值時,就按正常規律調節,而當|e(t)|>= 時,則不管比例作用為正或為負,都使它向有利于接近給定值的方向調整,即取其值為|e(t)-e(t-1)|,其符號與積分項一致。利用這樣的算法,可以加快控制的動態過程。(3) PID增量算法的飽和作用及其抑制在PID增量算法中,由于執行元件本身是機械或物理的積分儲存單元,如果給定值發生突變時,由算法的比例部分和微分部分計算出的控制增量可能比較大,如果該值超過了執行元件所允許的最大限度,那么實際上執行的控制增量將時受到限制時的值,多余的部分將

12、丟失,將使系統的動態過程變長,因此,需要采取一定的措施改善這種情況。糾正這種缺陷的方法是采用積累補償法,當超出執行機構的執行能力時,將其多余部分積累起來,而一旦可能時,再補充執行。(4)小結PID增量式算法,是一種對于滯后性很大的系統所用的算法。首先弄清輸入量、輸出量、執行機構、控制對象,舉個例子:比如電機的控制,輸入量為電機當前速度,輸出量為PWM(脈沖數),執行機構為電機。這里輸出量其實就是電機當前狀態的增量,而不是電機的當前狀態;如現在速度為1000r/s,目標為2000r/;輸出PWM為%50(假設500脈沖),那么此時的輸出是不是在原來電機的速度上面增加呢?是不是輸出為電機的增量呢?

13、這樣思考,就可以很容易的理解增量式PID算法,適用一種累加的過程,電機的速度是一個累加的過程,不可能一下就達到目標速度,還有溫度也是同樣的。2. PID位置算法(1).離散公式:u(k)=Kp*e(k) +Ki*+Kd*e(k)-e(k-1)對于位置式算法,可以選擇的功能有:a.濾波:同上為一階慣性濾波b.飽和作用抑制:(2).小結上面先對增量式PID作了說明,現在是位置式PID;我先說最大的卻別:增量式PID輸出為執行機構的增量,位置式PID輸出為執行機構的實際量。這里我準備以閥門作為例子,但是想了一下還是以舵機作為例子吧!其實舵機也可以說是一種閥門,因為如果你給它一個位置信號,舵機(執行機

14、構)馬上就能達到實際位置;有很多人會把控制機構和輸入量混淆,我以飛思卡爾的舵機閉環控制為例子。這里的輸入量是車子的狀態(信號的一個反應),目標量(都希望車子跑中間,一般都設定為0,因為正負可以代表車子左右偏向),輸出量為舵機的占空比(執行機構實際位置量),執行機構為舵機。其中有個問題,就是彎道與直道的目標值會一樣么?這個問題我經過一同學的分析,我發現很會進入常規思考,包括我原來的理解也錯誤了。因為舵機不過是個執行機構,不論舵機怎樣轉,只要整個車身保持在中線上面(或者是信號坐標的目標值為0),因此,設定值不論是彎道直道都是0。3. C語言編程版typedef struct PID int Set

15、Point; /設定目標 Desired Value long SumError; /誤差累計 double Proportion; /比例常數 Proportional Cons double Integral; /積分常數 Integral Const double Derivative; /微分常數 Derivative Const int LastError; /Error-1 int PrevError; /Error-2 PID;/* 函數名稱 : * 函數描述 : 增量式 PID 控制計算* 函數輸入 : int 當前位置* 函數輸出 : 無* 函數返回 : 增量式PID結果*/

16、int IncPIDCalc(int NextPoint) int iError, iIncpid; /當前誤差 iError = sptr->SetPoint - NextPoint; /增量計算 iIncpid = sptr->Proportion * iError /Ek項 - sptr->Integral * sptr->LastError /Ek1項 + sptr->Derivative * sptr->PrevError; /Ek2項 /存儲誤差,用于下次計算 sptr->PrevError = sptr->LastError; sp

17、tr->LastError = iError; /返回增量值 return(iIncpid);/* 函數名稱 : LocPIDCalc* 函數描述 : 位置式 PID 控制計算* 函數輸入 : int 當前位置* 函數輸出 : 無* 函數返回 : 位置式PID結果*/int LocPIDCalc(int NextPoint) int iError,dError; iError = sptr->SetPoint - NextPoint; /偏差 sptr->SumError += iError; /積分 dError = iError - sptr->LastError;

18、 /微分 sptr->LastError = iError; return(sptr->Proportion * iError /比例項 + sptr->Integral * sptr->SumError /積分項 + sptr->Derivative * dError); /微分項以上是控制算法的C語言版,就是用了結構體和一個函數就可以將算法描述出來,這個是數學公式離散公式C語言的過程。分析這個主要看輸入輸出就好了,里面的算法理解就看前面解釋的PID算法,至于C語言語法方面,有問題可以查閱相關C方面資料,這里不作多的介紹;但是我們可以看到位置式PID是每一個狀態

19、都與其輸出有關,但是增量式PID只是用到了最近的三個狀態,因此增量式也可以進行加權處理,計算量也很少。五、PID參數整定1. 一般步驟 a.確定比例增益P 確定比例增益P 時,首先去掉PID的積分項和微分項,一般是令Ti=0、Td=0(具體見PID的參數設定說明),使PID為純比例調節。輸入設定為系統允許的最大值的60%70%,由0逐漸加大比例增益P,直至系統出現振蕩;再反過來,從此時的比例增益P逐漸減小,直至系統振蕩消失,記錄此時的比例增益P,設定PID的比例增益P為當前值的60%70%。比例增益P調試完成。b.確定積分時間常數Ti 比例增益P確定后,設定一個較大的積分時間常數Ti的初值,然后逐漸減小Ti,直至系統出現振蕩,之后在反過來,逐漸加大Ti,直至系統振蕩消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150%180%。積分時間常數Ti調試完成。c.確定微分時間常數Td 積分時間常數Td一般不用設定,為0即可。若要設定,與確定 P和Ti的方法相同,取不振蕩時的30%。 d.系統空載、帶載聯調,再對PID參數進行微調,直至滿足要求。 2PID調試一般原則及口訣

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論