請教一下關於pid自整定的引數的計算方法

時間 2021-08-30 09:25:11

1樓:鬼採

給你個step 7寫的pid控制的fc模組。帶"_in"與帶"_out"的變數,如果字首是一樣的,要求連線同一個變數。

function fc1 : void

var_input

run:bool; //true-執行,false-停止

auto:bool; //true-自動,false-手動

isw:bool; //true-積分有效,false-積分無效

dsw:bool; //true-微分有效,false-微分無效

setmv:real; //手動時的開度設定值

svsw:real; //當設定值低於svsw時,開度為零

pv:real; //測量值

sv:real; //設定值

deadband:real; //死區大小

pbw:real; //比例帶大小

iw:real; //積分帶大小

dw:real; //微分帶大小

derr_in:real; //誤差累積

lastpv_in:real; //上一控制週期的測量值

end_var

var_output

mv:real; //輸出開度

derr_out:real; //誤差累積

lastpv_out:real;//上一控制週期的測量值

end_var

varerr:real; //誤差

derr:real; //誤差累積

pbh:real; //比例帶上限

pbl:real; //比例帶下限

pvc:real; //測量值在一個控制週期內的變化率,即測量值變化速率

p:real; //比例項

i:real; //積分項

d:real; //微分項

end_var

if run=1 then

if auto=1 then

if sv>=svsw then

err:=sv-pv;

pbh:=sv+pbw;

pbl:=sv-pbw;

if pvpbh then

mv:=0;

else

p:=(pbh-pv)/(pbh-pbl); //計算比例項

if isw=1 then

derr:=derr_in;

if (pv<(sv-deadband)) or (pv>(sv+deadband)) then

if (derr+err)<(0-iw) then

derr:=0-iw;

elsif (derr+err)>iw then

derr:=iw;

else

derr:=derr+err;

end_if;

end_if;

i:=derr/iw;

derr_out:=derr;

else

i:=0;

end_if;

if dsw=1 then

pvc:=lastpv_in-pv;

d:=pvc/dw;

lastpv_out:=pv;

else

d:=0;

end_if;

if (p+i+d)>1 then

mv:=1;

elsif (p+i+d)<0 then

mv:=0;

else

mv:=p+i+d;

end_if;

end_if;

else

mv:=0;

end_if;

else

mv:=setmv;

end_if;

else

mv:=0;

end_if;

end_function

進行整定時先進行p調節,使i和d作用無效,觀察溫度變化曲線,若變化曲線多次出現波形則應該放大比例(p)引數,若變化曲線非常平緩,則應該縮小比例(p)引數。比例(p)引數設定好後,設定積分(i)引數,積分(i)正好與p引數相反,曲線平緩則需要放大積分(i),出現多次波形則需要縮小積分(i)。比例(p)和積分(i)都設定好以後設定微分(d)引數,微分(d)引數與比例(p)引數的設定方法是一樣的。

當初寫這段程式的就是為了使用調功器來控制爐子的溫度的,已經在我單位的調功器上執行成功了,還有就是我單位的調功器沒有使用微分(d),只是用了比例(p)和積分(i)。

2樓:

step 7寫的pid控制的fc模組。帶"_in"與帶"_out"的變數,如果字首是一樣的,要求連線同一個變數。

function fc1 : void

var_input

run:bool; //true-執行,false-停止

auto:bool; //true-自動,false-手動

isw:bool; //true-積分有效,false-積分無效

dsw:bool; //true-微分有效,false-微分無效

setmv:real; //手動時的開度設定值

svsw:real; //當設定值低於svsw時,開度為零

pv:real; //測量值

sv:real; //設定值

deadband:real; //死區大小

pbw:real; //比例帶大小

iw:real; //積分帶大小

dw:real; //微分帶大小

derr_in:real; //誤差累積

lastpv_in:real; //上一控制週期的測量值

end_var

var_output

mv:real; //輸出開度

derr_out:real; //誤差累積

lastpv_out:real;//上一控制週期的測量值

end_var

varerr:real; //誤差

derr:real; //誤差累積

pbh:real; //比例帶上限

pbl:real; //比例帶下限

pvc:real; //測量值在一個控制週期內的變化率,即測量值變化速率

p:real; //比例項

i:real; //積分項

d:real; //微分項

end_var

if run=1 then

if auto=1 then

if sv>=svsw then

err:=sv-pv;

pbh:=sv+pbw;

pbl:=sv-pbw;

if pvpbh then

mv:=0;

else

p:=(pbh-pv)/(pbh-pbl); //計算比例項

if isw=1 then

derr:=derr_in;

if (pv<(sv-deadband)) or (pv>(sv+deadband)) then

if (derr+err)<(0-iw) then

derr:=0-iw;

elsif (derr+err)>iw then

derr:=iw;

else

derr:=derr+err;

end_if;

end_if;

i:=derr/iw;

derr_out:=derr;

else

i:=0;

end_if;

if dsw=1 then

pvc:=lastpv_in-pv;

d:=pvc/dw;

lastpv_out:=pv;

else

d:=0;

end_if;

if (p+i+d)>1 then

mv:=1;

elsif (p+i+d)<0 then

mv:=0;

else

mv:=p+i+d;

end_if;

end_if;

else

mv:=0;

end_if;

else

mv:=setmv;

end_if;

else

mv:=0;

end_if;

end_function

進行整定時先進行p調節,使i和d作用無效,觀察溫度變化曲線,若變化曲線多次出現波形則應該放大比例(p)引數,若變化曲線非常平緩,則應該縮小比例(p)引數。比例(p)引數設定好後,設定積分(i)引數,積分(i)正好與p引數相反,曲線平緩則需要放大積分(i),出現多次波形則需要縮小積分(i)。比例(p)和積分(i)都設定好以後設定微分(d)引數,微分(d)引數與比例(p)引數的設定方法是一樣的。

當初寫這段程式的就是為了使用調功器來控制爐子的溫度的,已經在我單位的調功器上執行成功了,還有就是我單位的調功器沒有使用微分(d),只是用了比例(p)和積分(i)。

如何自整定pid引數

3樓:安菲爾德

確定控制器引數

數字pid控制器控制引數的選擇,可按連續-時間pid引數整定方法進行。

在選擇數字pid引數之前,首先應該確定控制器結構。對允許有靜差(或穩態誤差)的系統,可以適當選擇p或pd控制器,使穩態誤差在允許的範圍內。對必須消除穩態誤差的系統,應選擇包含積分控制的pi或pid控制器。

一般來說,pi、pid和p控制器應用較多。對於有滯後的物件,往往都加入微分控制。

選擇引數

控制器結構確定後,即可開始選擇引數。引數的選擇,要根據受控物件的具體特性和對控制系統的效能要求進行。工程上,一般要求整個閉環系統是穩定的,對給定量的變化能迅速響應並平滑跟蹤,超調量小;在不同干擾作用下,能保證被控量在給定值;當環境引數發生變化時,整個系統能保持穩定,等等。

這些要求,對控制系統自身效能來說,有些是矛盾的。我們必須滿足主要的方面的要求,兼顧其他方面,適當地折衷處理。

pid控制器的引數整定,可以不依賴於受控物件的數學模型。工程上,pid控制器的引數常常是通過實驗來確定,通過試湊,或者通過實驗經驗公式來確定。

常用的方法,取樣週期選擇,

實驗湊試法

實驗湊試法是通過閉環執行或模擬,觀察系統的響應曲線,然後根據各引數對系統的影響,反覆湊試引數,直至出現滿意的響應,從而確定pid控制引數。

整定步驟

實驗湊試法的整定步驟為"先比例,再積分,最後微分"。

(1)整定比例控制

將比例控制作用由小變到大,觀察各次響應,直至得到反應快、超調小的響應曲線。

(2)整定積分環節

若在比例控制下穩態誤差不能滿足要求,需加入積分控制。

先將步驟(1)中選擇的比例係數減小為原來的50~80%,再將積分時間置一個較大值,觀測響應曲線。然後減小積分時間,加大積分作用,並相應調整比例係數,反覆試湊至得到較滿意的響應,確定比例和積分的引數。

(3)整定微分環節

若經過步驟(2),pi控制只能消除穩態誤差,而動態過程不能令人滿意,則應加入微分控制,構成pid控制。

先置微分時間td=0,逐漸加大td,同時相應地改變比例係數和積分時間,反覆試湊至獲得滿意的控制效果和pid控制引數。

實驗經驗法

擴充臨界比例度法

實驗經驗法調整pid引數的方法中較常用的是擴充臨界比例度法,其最大的優點是,引數的整定不依賴受控物件的數學模型,直接在現場整定、簡單易行。

擴充比例度法適用於有自平衡特性的受控物件,是對連續-時間pid控制器引數整定的臨界比例度法的擴充。

整定步驟

擴充比例度法整定數字pid控制器引數的步驟是:

(1)預選擇一個足夠短的取樣週期ts。一般說ts應小於受控物件純延遲時間的十分之一。

(2)用選定的ts使系統工作。這時去掉積分作用和微分作用,將控制選擇為純比例控制器,構成閉環執行。逐漸減小比例度,即加大比例放大係數kp,直至系統對輸入的階躍訊號的響應出現臨界振盪(穩定邊緣),將這時的比例放大係數記為kr,臨界振盪週期記為tr。

(3)選擇控制度。

控制度,就是以連續-時間pid控制器為基準,將數字pid控制效果與之相比較。

通常採用誤差平方積分

作為控制效果的評價函式。

定義控制度

(3-25)

取樣週期ts的長短會影響取樣-資料控制系統 的品質,同樣是最佳整定,取樣-資料控制系統的控制品質要低於連續-時間控制系統。因而,控制度總是大於1的,而且控制度越大,相應的取樣-資料控制系統的品質越差。控制度的選擇要從所設計的系統的控制品質要求出發。

(4) 查表確定引數。根據所選擇的控制度,查表3一2,得出數字pid中相應的引數ts,kp,ti和td。

(5)執行與修正。將求得的各引數值加入pid控制器,閉環執行,觀察控制效果,並作適當的調整以獲得比較滿意的效果。

想請教一下關於勞動賠償的問題,想請教一下關於勞動賠償的問題

1 保險按法律規定來說,只能要求補繳,因為這個錢是給國家的,所以要求賠償保險錢,這是不會被國家支援的,至少說需要提供什麼證據,只要能證明你是這個公司的員工,然後去社保局查又沒有你的繳納社保的記錄,就可以向社保局投訴要求公司補繳社保。2 無論何種情況下離職,你都能要求公司支付未付的加班費,但首先你得到...

一直想找健身達人請教一下關於胸肌的問題,整體看起來已經有型了,但是胸肌下沿總是看上去軟軟的求解答

q教練 你好朋友我是一名健身教練,很高興回答你的問題 你這個情況,其實就是皮脂有點多的原因,以前會感覺不支,但胸肌練出來後,就會把這部份的脂肪向下推,所以會有這種現象。這種情況,可以通過運動減脂來改善。而不是肌肉練習所以解決的。運動減脂並不是說在某乙個部位立桿見影的,它的機理是全身所有地方一齊減,所...

請教各位一下關於養龜的問題,請教各位大神我家烏龜不知道怎麼了,鼻子上面那一塊沒了 是怎麼回事 會長回來嗎

機械人走路 1緬甸陸龜 2在野外,緬甸陸龜食花 草 野果及真菌 蛞蝓 鼻涕蟲 在人工飼養條件下,喜食瓜果蔬菜及瘦肉類,如菜葉 除大蒜,大蔥,韭菜,辣椒等辛辣食品還包括菠菜不可投喂 蘋果 西瓜 葡萄 番茄 香蕉 瘦肉 蝸牛。不食魚肉 豬肝 牛肉。緬甸陸龜對紅色較白色敏感,喜食紅色的食物,如西紅柿。3壽...