C語言編寫PID溫度控制程序_第1頁
C語言編寫PID溫度控制程序_第2頁
C語言編寫PID溫度控制程序_第3頁
C語言編寫PID溫度控制程序_第4頁
C語言編寫PID溫度控制程序_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、(* init program *)PIDpara.enable = 1 ;使能端PIDpara.enter = 1 ;當(dāng)enter為1時(shí),檢查參數(shù)并轉(zhuǎn)換為內(nèi)部顯示。 ;當(dāng)enter為0時(shí),忽略輸入?yún)?shù)的改變并存儲(chǔ)計(jì)算時(shí)間。PIDpara.Y_max = 32767 ;PID輸出最大值(032767) PIDpara.Y_min = 0 ;PID輸出最小值(032767)PIDpara.dY_max = 10.0 ;輸出最大容許變化量,操作變量斜坡最大值。為0時(shí)ramp不起作用,不需計(jì)算時(shí)間PIDpara.Kp = 1.0 ;比例PIDpara.Tn = 10.0 ;積分(越小作用越大),為0

2、時(shí)第I part和jolt-free切換不起作用且不需要任何計(jì)算時(shí)間。PIDpara.Tv = 1 ;微分PIDpara.Tf = 1 ;微分濾波時(shí)間。若Tv不為0必須輸入(初值為Tv/10),不應(yīng)少于(1.4*任務(wù)的掃描時(shí)間).PIDpara.Kw = 1 ;比例項(xiàng)衰減系數(shù)。Kw為1時(shí)設(shè)定值不變進(jìn)行比例項(xiàng)計(jì)算,為小于1時(shí),設(shè)定值乘Kw后進(jìn)行比例項(xiàng)計(jì)算(此項(xiàng)不能為零)PIDpara.Kfbk = 1 ;抗積分飽和,終結(jié)阻尼值。Kfbk為0時(shí)終結(jié)保護(hù)無效,不需要計(jì)算時(shí)間PIDpara.fbk_mode = LCPID_FBK_MODE_INTERN ;操作變量的反饋模式:內(nèi)部模式(一般為內(nèi)部模式

3、)PIDpara.d_mode = LCPID_D_MODE_E ;微分模式:對(duì)偏差值進(jìn)行微分計(jì)算(標(biāo)準(zhǔn)PID控制);X模式:對(duì)實(shí)際值進(jìn)行微分計(jì)算(一般選次方式)PIDpara.calc_mode= LCPID_CALC_MODE_EXACT ;計(jì)算模式:精確(所有計(jì)算為雙精度浮點(diǎn)型, 如無舍入錯(cuò)誤和CPU計(jì)算次數(shù)過長)(一般選次方式) PIDpara FUB LCPIDpara() ;調(diào)用PID參數(shù)功能塊 循環(huán)程序中程序如下,此程序只對(duì)P、I、D三個(gè)參數(shù)由變量進(jìn)行輸值,變量可在pid程序運(yùn)行中實(shí)時(shí)修改,如果大家還需要某些參數(shù)實(shí)時(shí)修改,方法相同: (* cyclic program *)PID

4、para.enable = PIDpara.enable PIDpara FUB LCPIDpara() PIDpara.Tv = D_Ctrl ;積分(越小作用越大),為0時(shí)第I part和jolt-free切換不起作用且不需要任何計(jì)算時(shí)間。PIDpara.Kp = P_Ctrl ;比例PIDpara.Tn = I_Ctrll ;微分二、必須調(diào)用一個(gè)LCCounter()功能塊,作為pid的basetime輸入。三、使用LCPID功能塊,使用方法如下:初始化程序 (* init program *)LCCount FUB LCCounter()PID.out_mode= LCPID_OUT_

5、MODE_MAN ;控制器運(yùn)行模式,此處默認(rèn)為手動(dòng)模式,LCPID_OUT_MODE_AUTO: 為自動(dòng)運(yùn)行PID.Y_man=PID.Y_man ;自動(dòng)切換到手動(dòng)模式時(shí),無擾動(dòng)的手動(dòng)輸出值PID.hold_I=0 ;PID.hold_I=1 時(shí),積分項(xiàng)不起作用,保持原值(一般不用)PID.enable = 1PID FUB LCPID() 循環(huán)程序如下 LCCount FUB LCCounter() (* Get time from system*)PID.basetime = LCCount.ms100cnt ;設(shè)定計(jì)算頻率(100msPID進(jìn)行計(jì)算一次,時(shí)間一般與實(shí)際值采集周期相同)PI

6、D.W = setTense ;INT,設(shè)定值PID.X = actTense ;INT,實(shí)際值(* see to task:sensor *)PID FUB LCPID() PID.enable= 1 ;使能PID.ident= PIDpara.ident ;ident來自上面對(duì)應(yīng)LCDPIDpara()的ident.PID.W= setTense ;INT,設(shè)定值PID.X= actTense ;INT,實(shí)際值(* see to task:sensor *)PID.Y_man= 15000 ;手動(dòng)時(shí)輸入值PID.Y_fbk= ;為內(nèi)部模式時(shí)不用PID.hold_I= ;一般不用If y=1 then ;此處為pid手自動(dòng)切換。PID_0.out_mode= LCPID_O

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論