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.香蕉 木瓜和優質酸奶放在一起打碎,營養豐富而且能夠補充...
請教一下關於高達模型的問題
no no no 不用什麼東西,這個得看你的預算了,模型上色嘛,主要是噴筆,和氣泵,烤箱什麼的,難道你吧abs零件扔進去烤 氣泵嘛,我用的是優速達602嘛,還行吧.加個氣缸,買只s 130噴筆,基本也就900多了.如果手上的預算不夠,龜泵也行,但是注意把油漆調稀點。沒什麼預算還是不建議新手入坑吧。其...
你好,請教一下關於菩薩發願的事
因為阿彌陀佛是西方極樂世界的教主,在我們娑婆世界釋迦牟尼佛當然要讓我們知道阿彌陀佛的無量胸懷,就如同父母告訴我們要好好學習,將來去清華大學跟某某教授好好讀書一樣,同樣地,阿彌陀佛也在極樂世界讚歎釋迦佛能在紛繁迷亂的娑婆世界作度化的事業。他方無數佛陀同樣意念他方眾生,我們娑婆世界的眾生意念東方淨琉璃世...