淺談PID

時間飛逝,不知不覺就到了大二下學期,比起以前大一時的青澀,現在倒是成熟了不少。從一開始目睹學長參加各種比賽,分享自己的經驗,到現在親身經歷這些,確實是很不一樣的感受。。。尤其瑞哥弄了光科這個博客,我本人本來又不太會講話,又是第一次寫這個,寫的不好的還請大家多多包涵。。

今天給大家分享的是PID算法,我將從兩個個方面來介紹PID。

一.什麼是PID

1.PID控制原理

圖片1

 

由圖可以清晰的看出,PID據給定值rin(k)與實際輸出值yout(k)構成控制方案,由比例,積分和微分三個環節來使被控對象輸出目標值。

比例環節:成比例地反映控制系統的偏差信號e(t),偏差一旦產生,控制器立即產生控制作用,以減小偏差。

積分環節:主要用於消除靜差,提高系統的無差度。積分作用的強弱取決於積分時間常數T,T越大,積分作用越弱,反之則越強。

微分環節:反映偏差信號的變化趨勢,並能在偏差信號變得太大之前,在系統中引入一個有效的早期修正信號,從而加快系統的動作速度,減少調節時間。

2.基本公式

常用的有兩種,位置式和增量式,增量式啓示就是位置式推導而來。下面列出位置式PID公式:圖片3

其中圖片2

Ti爲積分時間常數,TD爲微分時間常數,KP爲比例係數。

 

二.怎麼用PID

1.公式的離散化

很顯然,由於積分的作用,公式適用於連續性函數,但在我們實際控制中,例如使用單片機,我們通常有個採樣時間,即當這個時間很小時候,可以將公式離散化,近似看作相等。

高等數學大家都學過,積分效果可以表示面積,將橫座標以T0採樣時間爲間隔劃分,時間很短的時候,可以把誤差面積分成一個一個小長方形,因此上述公式可以化爲:圖片4

而我們常見的形式就是:

圖片5

很顯然Ki=Kp*T0/Ti,Kd=Kp*Td/T0。

 

2.增量式PID

所謂增量式PID,就是將前後兩個位置式u(t)相減。因此得到:

圖片6

3.PID參數的整定

參數整定一般有兩種方法,一種是利用一些算法尋找PID係數最優解,例如SOA,PSO,GA等算法。第二種就是根據經驗和實際效果去調試,這種方法也用的比較多,口訣如下:

       參數整定找最佳,從小到大順序查
先是比例後積分,最後再把微分加
曲線振盪很頻繁,比例度盤要放大
曲線漂浮繞大灣,比例度盤往小扳
曲線偏離回覆慢,積分時間往下降
曲線波動週期長,積分時間再加長
曲線振盪頻率快,先把微分降下來
動差大來波動慢。微分時間應加長
理想曲線兩個波,前高後低4比1
一看二調多分析,調節質量不會低

4.PID的優化方法

(1)積分分離

具體實現的步驟是:

1、根據實際情況,人爲設定閾值ε>0;

2、當∣e (k)∣>ε時,採用PD控制,可避免產生過大的超調,又使系統有較快 的響應;

3、當∣e (k)∣≤ε時,採用PID控制,以保證系統的控制精度。

(2)抗積分飽和

具體實現的步驟是:

在計算u(k)時,首先判斷上一時刻的控制量u(k-1)是否己超出限制範圍。若超出,則只累加負偏差;若未超出,則按普通PID算法進行調節。

(3)梯形積分
在PID控制律中積分項的作用是消除餘差,爲了減小余差,應提高積分項的運算精度,爲此,可將矩形積分改爲梯形積分。

梯形積分的計算公式爲:

圖片7

(4)帶死區的PID

在計算機控制系統中,某些系統爲了避免控制作用過於頻繁,消除由於頻繁動作所引起的振盪,可採用帶死區的PID控制算法,控制算式爲:

圖片8圖片9

 

 

(5)模糊控制

當|error|較大時,不論e_error的趨勢如何,Kp取較大的值使系統快速響應。防止|e_error|瞬間過大,Kd取值小。爲控制超調,Ki取值小。

當|error|中等時,爲控制超調和提高響應速度,則Kp減小,Kd中等,Ki值增大。

當|error|較小時,保證系統的穩定性,加大Kp、Ki的值。爲了避免振盪Kd值根據|e_error|具體而定。

其中,實際速度與期望速度的誤差error 前後兩次error的變化率爲e_error

 

最後,理論和實際是有很大差別的,因此如果你想學好PID或者其他的東西,就得通過實踐來讓自己理解更深刻。

發佈了45 篇原創文章 · 獲贊 46 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章