新型PID控制及其應用(二)

2021-07-10 07:12:36 字數 1116 閱讀 8359

數字pid控制演算法的改進

1.積分分離pid控制演算法:

引入積分項的目的:消除靜態誤差,提高精度,但在開機或者大幅度增減設定值時,系統會有很大的偏差,造成很大的超調量。積分分離作用就是減小

超調量。

程式:

int

index = 0;

if(abs(pid.err)>= 200 ) index = 0;//設定乙個閾值

else

pid.act = pid.p*pid.err + index * pid.i*pid.err_sum + pid.d*pid.err_last;

2.遇限削弱積分pid控制演算法(又稱抗飽和積分):

一開始就積分,進入限制範圍後就停止積分。

這種方法可以避免長時間的停留在飽和區。

程式:

float pid (float set)

}else

if(pid.act < pid.umin)

}else

}pid.err_last = pid.err;

pid.act = pid.p*pid.err + pid.i*pid.err_sum + pid.d*pid.err_last;

return pid.act;

}

3.變積分的pid控制演算法:

以上的控演算法都是基於積分分離的前提,本程式也不例外。

變積分是指在一般的控制過程中,積分增量不變。但是,系統的要求是當系統偏差大時,積分作用應該較小,但系統誤差小時,積分作用應該增大。

積分係數大了會產生超調,小了短時間內不能消除靜差。所以變積分是有效的。

變積分的思想是改變積分項的累加速度。使其偏差越大,積分越慢,偏差越小,積分越快。

float pid (float set)else

pid.act = pid.p*pid.err + index * pid.i*pid.err_sum + pid.d*pid.err_last;

pid.err_last = pid.err

; return pid.act

;}

總結:都是基於積分分離的控制演算法。

2 10 PID控制演算法(二)

關於pid各種整理例程基於stm32,位置式,增量式等 struct t pid2 pid2 void pid2 init float pid2 realize float speed 所謂的積分飽和現象是指如果系統存在乙個方向的偏差,pid 控制器的輸出由於積分作用的不斷累加而加大,從而導致執行機...

數字式PID控制的應用總結

pid控制是乙個二階線性閉環控制器,通過調整比例 積分和微分三項引數,使得大多數的工業控制系統獲得良好的閉環控制效能。pid控制 優點 a.技術成熟,b.易被人們熟悉和掌握,c.不需要建立數學模型,d.控制效果好,e.魯棒性。一.模擬量pid 控制演算法 模擬量pid 控制器的 基本算式為 式中u ...

PID控制器的應用 控制網路爬蟲抓取速度

冬天鄉下人喜歡烤火取暖,常見的情形就是四人圍著麻將桌,桌底放一盆碳火。有人覺得火不夠大,那加點木炭吧,還不夠,再加點。片刻之後,又覺得火太大,腳都快被烤熟了,那就取出一些木碳 直到火盆裡的火剛剛合適。這樣乙個看似簡單的情形中就包括pid控制系統的四個主要過程 設定目標,測量,比較和執行。結合pid控...