位置式PID的C語言寫法詳解
PID調(diào)節(jié)口訣:
參數(shù)整定找最佳,從小到大順序查
先是比例后積分,最后再把微分加
曲線振蕩很頻繁,比例度盤要放大
曲線漂浮繞大灣,比例度盤往小扳
曲線偏離回復(fù)慢,積分時(shí)間往下降
曲線波動(dòng)周期長,積分時(shí)間再加長
曲線振蕩頻率快,先把微分降下來
動(dòng)差大來波動(dòng)慢,微分時(shí)間應(yīng)加長
理想曲線兩個(gè)波,前高后低4比1
一看二調(diào)多分析,調(diào)節(jié)質(zhì)量不會(huì)低
下面以PID調(diào)節(jié)器為例,具體說明經(jīng)驗(yàn)法的整定步驟:
A.、讓調(diào)節(jié)器參數(shù)積分系數(shù)S0=0,實(shí)際微分系數(shù)k=0,控制系統(tǒng)投入閉環(huán)運(yùn)行,由小到大改變比例系數(shù)S1,讓擾動(dòng)信號作階躍變化,觀察控制過程,直到獲得滿意的控制過程為止。
B、取比例系數(shù)S1為當(dāng)前的值乘以0.83,由小到大增加積分系數(shù)S0,同樣讓擾動(dòng)信號作階躍變化,直至求得滿意的控制過程。
C、積分系數(shù)S0保持不變,改變比例系數(shù)S1,觀察控制過程有無改善,如有改善則繼續(xù)調(diào)整,直到滿意為止。否則,將原比例系數(shù)S1增大一些,再調(diào)整積分系數(shù)S0,力求改善控制過程。如此反復(fù)試湊,直到找到滿意的比例系數(shù)S1和積分系數(shù)S0為止。
D、引入適當(dāng)?shù)膶?shí)際微分系數(shù)k和實(shí)際微分時(shí)間TD,此時(shí)可適當(dāng)增大比例系數(shù)S1和積分系數(shù)S0。和前述步驟相同,微分時(shí)間的整定也需反復(fù)調(diào)整,直到控制過程滿意為止。
PID參數(shù)是根據(jù)控制對象的慣量來確定的。大慣量如:大烘房的溫度控制,一般P可在10以上,I=3-10,D=1左右。小慣量如:一個(gè)小電機(jī)帶一臺水泵進(jìn)行壓力閉環(huán)控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,這些要在現(xiàn)場調(diào)試時(shí)進(jìn)行修正的。
PID參數(shù)的設(shè)置的大小,一方面是要根據(jù)控制對象的具體情況而定;另一方面是經(jīng)驗(yàn)。P是解決幅值震蕩,P大了會(huì)出現(xiàn)幅值震蕩的幅度大,但震蕩頻率小,系統(tǒng)達(dá)到穩(wěn)定時(shí)間長;I是解決動(dòng)作響應(yīng)的速度快慢的,I大了響應(yīng)速度慢,反之則快;D是消除靜態(tài)誤差的,一般D設(shè)置都比較小,而且對系統(tǒng)影響比較小。對于溫度控制系統(tǒng)P在5-10%之間;I在180-240s之間;D在30以下。對于壓力控制系統(tǒng)P在30-60%之間;I在30-90s之間;D在30以下。
這里介紹一種經(jīng)驗(yàn)法。這種方法實(shí)質(zhì)上是一種試湊法,它是在生產(chǎn)實(shí)踐中總結(jié)出來的行之有效的方法,并在現(xiàn)場中得到了廣泛的應(yīng)用。
這種方法的基本程序是先根據(jù)運(yùn)行經(jīng)驗(yàn),確定一組調(diào)節(jié)器參數(shù),并將系統(tǒng)投入閉環(huán)運(yùn)行,然后人為地加入階躍擾動(dòng)(如改變調(diào)節(jié)器的給定值),觀察被調(diào)量或調(diào)節(jié)器輸出的階躍響應(yīng)曲線。若認(rèn)為控制質(zhì)量不滿意,則根據(jù)各整定參數(shù)對控制過程的影響改變調(diào)節(jié)器參數(shù)。這樣反復(fù)試驗(yàn),直到滿意為止。
經(jīng)驗(yàn)法簡單可靠,但需要有一定現(xiàn)場運(yùn)行經(jīng)驗(yàn),整定時(shí)易帶有主觀片面性。當(dāng)采用PID調(diào)節(jié)器時(shí),有多個(gè)整定參數(shù),反復(fù)試湊的次數(shù)增多,不易得到最佳整定參數(shù)。
PID是比例,積分,微分的縮寫。
比例調(diào)節(jié)作用:是按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的 不穩(wěn)定。
積分調(diào)節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因?yàn)橛姓`差,積分調(diào)節(jié)就進(jìn)行,直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強(qiáng)弱取決與積分時(shí)間常數(shù)Ti,Ti越小,積分作用就越強(qiáng)。反之Ti大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成PI調(diào)節(jié)器或PID調(diào)節(jié)器。
微分調(diào)節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化率,具有預(yù)見性,能預(yù)見偏差變化的趨勢,因此能產(chǎn)生超前的控制作用,在偏差還沒有形成之前,已被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動(dòng)態(tài)性能。在微分時(shí)間選擇合適情況下,可以減少超調(diào),減少調(diào)節(jié)時(shí)間。微分作用對噪聲干擾有放大作用,因此過強(qiáng)的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。此外,微分反應(yīng)的是變化率,而當(dāng)輸入沒有變化時(shí),微分作用輸出為零。微分作用不能單獨(dú)使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PD或PID控制器。
位置式PID算法的C語言代碼
typedef struct{
float limit; //輸出限幅
float target; //目標(biāo)量
float feedback; //反饋量
float Kp;
float Ki;
float Kd;
float eSum;
float e0; //當(dāng)前誤差
float e1; //上一次誤差
}PIDType;
#define max(a, b) (a〉b? a:b)
#define min(a, b) (a《b? a:b)
#define range(x, a, b) (min(max(x, a), b))
float pid_pos_update(PIDType *p)
{
float pe, ie, de;
float out=0;
//計(jì)算當(dāng)前誤差
p-〉e0 = p-〉target - p-〉feedback;
//誤差積分
p-〉eSum += p-〉e0;
//誤差微分
de = p-〉e0 - p-〉e1;
pe = p-〉e0;
ie = p-〉eSum;
p-〉e1 = p-〉e0;
out = pe*(p-〉Kp) + ie*(p-〉Ki) + de*(p-〉Kd);
//輸出限幅
out = range(out, -p-〉limit, p-〉limit);
return out;
}
評論
查看更多