溫度的PID控制及程序示例_第1頁
溫度的PID控制及程序示例_第2頁
溫度的PID控制及程序示例_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、溫度的PID控制一溫度檢測(cè)部分首先要OK.二、PID調(diào)節(jié)作用PID控制時(shí)域的公式),(f) = Kp(e(t) +e(t) + Td 罟)分解開來:(1) 比例調(diào)節(jié)器V(t) = Kp * e(t)e(k)為當(dāng)前的溫差(設(shè)定值與檢測(cè)值的插值)y(k)為當(dāng)前輸出的控制信號(hào)(需要轉(zhuǎn)化為PWM形式)#輸出與輸入偏差成正比。只要偏差出現(xiàn),就能及時(shí)地產(chǎn)生與之成比例的調(diào)節(jié) 作用,使被控量朝著減小偏差的方向變化,具有調(diào)節(jié)及時(shí)的特點(diǎn)。但是,Kp過 大會(huì)導(dǎo)致動(dòng)態(tài)品質(zhì)變壞,其至使系統(tǒng)不穩(wěn)定。比例調(diào)節(jié)器的特性曲線.(2) 積分調(diào)節(jié)器y(t) = Ki* f(e(t)dt Ki = Kp/TiTi 為積分時(shí)間#TI是

2、積分時(shí)間常數(shù),它表示積分速度的大小,Ti越大,積分速度越慢,積分作 用越弱。只要偏差不為零就會(huì)產(chǎn)生對(duì)應(yīng)的控制量并依此影響被控量。增大Ti會(huì) 減小積分作用,即減慢消除靜差的過程,減小超調(diào),提高穩(wěn)定性。(3) 微分調(diào)節(jié)器y(t) = Kd*d(e(t)/dt Kd = Kp*Td Td 為微分時(shí)間#微分分量對(duì)偏差的任何變化都會(huì)產(chǎn)生控制作用,以調(diào)整系統(tǒng)輸出,阻止偏差變 化。偏差變化越快,則產(chǎn)生的阻止作用越大。從分析看出,微分作用的特點(diǎn)是: 加入微分調(diào)節(jié)將有助于減小超調(diào)量,克服震蕩,使系統(tǒng)趨于穩(wěn)定。他加快了系統(tǒng) 的動(dòng)作速度,減小調(diào)整的時(shí)間,從而改善了系統(tǒng)的動(dòng)態(tài)性能。三. PLD算法:由時(shí)域的公式離散化

3、后町得如卞公式:y(k) = y(k-1 )+(Kp+Ki+Kd)*e(k)-(Kp +2*Kd)*e(k-l) + Kd*e(k-2)y(k)為當(dāng)前輸出的控制信號(hào)(需要轉(zhuǎn)化為PWM形式) y(k-l)為前一次輸出的控制信號(hào)e(k)為當(dāng)前的溫差(設(shè)定值與檢測(cè)值的插值)e(k-l)為一次前的溫差e(k-2)為二次前的溫差Kp為比例系數(shù)Ki = Kp*T/Ti T為釆樣周期Kd = Kp*Td/T四.PLD參數(shù)整定(確定Kp,Ts,Ti,Td):溫度控制適合衰減曲線法,需要根據(jù)多次采樣的數(shù)據(jù)畫出響應(yīng)曲線。 所以需要通過串口將采樣時(shí)間t,輸出y(t)記錄下來,方便分析。1) 、不加入算法,系統(tǒng)全速加

4、熱,從常溫加熱到較高的溫度的時(shí)間為Tk, 則釆樣時(shí)間一般設(shè)為T = Tk/10o2) 、置調(diào)節(jié)器積分時(shí)間TI二8,微分時(shí)間TD二0,即只加比例算法:y (k) = y(kl)+Kp*e (k)比例帶6置于較大的值。將系統(tǒng)投入運(yùn)行。(6 = 1/Kp)3) 、待系統(tǒng)工作穩(wěn)定后,對(duì)設(shè)定值作階躍擾動(dòng),然后觀察系統(tǒng)的響應(yīng)。若響 應(yīng)振蕩衰減太快,就減小比例帶;反之,則增大比例帶。如此反復(fù),直到出現(xiàn)如 圖所示的衰減比為4: 1的振蕩過程時(shí),記錄此時(shí)的6值(設(shè)為8S),以及TS 的值(如圖中所示)。當(dāng)釆用衰減比為10: 1振蕩過程時(shí),應(yīng)用上升時(shí)間Tr替代振蕩周期TS計(jì)算。系統(tǒng)衰減振蕩曲線圖中,TS為衰減振蕩

5、周期,Tr為響應(yīng)上升時(shí)間。 據(jù)表中所給的經(jīng)驗(yàn)公式計(jì)算6、TI及TD的參數(shù)。表衰減曲線法整定計(jì)算公式衰減率0整定參數(shù) 調(diào)節(jié)規(guī)律6(1/Kp)T :T D0. 75P6sPI1.2 o50. 5T 5PID0.8 os0. 3T 50. IT s0.9P6sPI1.2 os2T rPID0.8 os1.2T r0. 4T r人致計(jì)算出KpJVTd后代入公式,然后完善算法。讓系統(tǒng)運(yùn)作多測(cè)試幾次。直到滿意 為止。以下是網(wǎng)上找的一個(gè)示例程序# iiiclude<reg51 .h>#inc lude<iiitrms.h>#define NO 40536define nop() _n

6、op_()#define uchai unsigned char#define umt unsigned mt/*程序中變量數(shù)組定義*/uchai idata table="Real-time Temp:M;/第一行顯示HReal-time Temp:11 uchai idata table 1 5;uchai datal.kp,ki,kd;umt tjughtime,count;占空比調(diào)節(jié)參數(shù)uiiit rltemp,settemp=350;mt el,e2,e3,duk.uk;嚴(yán)引腳定義*/sbit EOC=P2A6;sbit OE=P2A5;sbit START=P2A7;sb

7、it lcden=P3z2;sbit lcdrw=P3T;sbit lcdis=P3z0;sbit pwm=P3A3;嚴(yán)*延時(shí)子程序*/void delay(uint z) uiiit x,y; for(x=z;x>O;x) for(y=29;v>0;y-);LCD忙檢測(cè)bit lcd_busv()bit result;lcdrw = 1;lcdrs = 0;lcden = 1; nopQ;nop();nop();nopO; result = (bit)(P0&0x80);lcden = 0; retuin(iesult);LCD寫命令子程序void wiite_com(u

8、chai- com)wliile(lcd_busv();/ 忙等待 lcdrs = 0;lcdrw = 0;Pl = com;delay(5);lcden = 1;delay(5);lcden = 0;LCD寫數(shù)據(jù)子程序void wiite_data(uchai- date)wliile(lcd_busv(); /忙等待 lcdrs = 1;lcdrw = 0;Pl=date;delay(5);lcden = 1; delay(5);lcden = 0; 嚴(yán)*LCD初始化*/void lcd_iiiit() lcden = 0;write_com(0x3 8); delay(5); wiite

9、_com(0x0f); delay(5);write_com(0x06); delay(5);write_com(0x01); delay(5); write_com(0x80); delay(5);write_com(0x01);嚴(yán)*定時(shí)器初始化*/void time_uiit()EA= 1;ET0= 1;ET1 = 1;TR0 = l;TR1 = 1;TMOD = 0x11;TH0=N0/256;TLO = N0%256;THi =0X3C;TL1 = 0XB0;嚴(yán)*PID算法系數(shù)裝載*/hightmie= 0;輸出的占空比el = 0;/本次的溫度差e2 = 0;前一次的溫度差e3 =

10、0;兩次前的溫度差kp = 10;需要根據(jù)試驗(yàn)確定參數(shù)ki = 5;需要根據(jù)試驗(yàn)確定參數(shù)kd = 5;需要根據(jù)試驗(yàn)確定參數(shù)溫度比較PED算法*/void pid_ys° if(rltemp<settemp) /如果實(shí)際溫度小于設(shè)定溫度值if(settemp-rltenip>20) /如呆相差20度(根據(jù)實(shí)際情況確定是多少)lughtmie=l 00;全速加熱else否則運(yùn)行PID算法進(jìn)行平滑加熱el = settemp-rltemp;duk=(kp*(e 1 -e2)+ki*el+kd*(e 1 -e2*2+e3)/l0;/ 式(1) 因?yàn)?Kp 是 10,輸入放犬了 1

11、0倍,所以duk的輸出結(jié)果需要除以10uk = uk-rduk;嚴(yán)*式(1)與上面提到的公式類似 v(k) = y(k)+(Kp+Ki+Kd)*e(k)(Kp +2*Kd)*e(k-l) + Kd*e(k-2) 可以寫成 y(k)-y(k-1 )=(kp*(e(k)-e(k)+ki*e(k)+kd*(e(k)-e(k-1)*2+e(k-2) 式(1)中 duk 相 當(dāng)于 Ytk)-(k-l)*/if(uk>100)uk=100;設(shè)置飽和控制,else if(uk<-100)i】k = JOO;if(uk<0)lughtime=-uk;elselughtime=uk:if(rl

12、tenip>=settemp) / 如果實(shí)際溫度人于設(shè)定值 if(rltemp-settenip >0) 只要實(shí)際溫度與設(shè)定值不相等 hightmie=0;停止加熱else/el = rltemp-settemp; duk=(kp*(el-e2)+ki*el+kd*(el-e2*2+e3); uk = uk+duk;if(uk>100)i】k= 100;else if(uk<-100)uk = -100;嚴(yán)*主函數(shù)*/void main()uiiit i;tune_init();/定時(shí)器初始化Pid_imtQ; / PID 初始化 lcd_imtO;/ LCD 初始化

13、table l5=0x43;table l4=0xdf;tablel2=0x2e; 小數(shù)點(diǎn) 攝氏度符號(hào)ASCII碼 fbi(i=O;i<15;i+) 帶循壞第一行顯示nReal-tmie Temp:M write_data(tablei);delav(20);while(l)t=data 1*196/100;table 1 3=(t% 100)% 10+0x30;table 1 1 =(t% 100)/104-0x30; tablel0=t/100+0x30;/以上溫度數(shù)據(jù)轉(zhuǎn)化 rltemp = t; 給PLD算法裝載實(shí)際值 wnte_com(0x80+0x45);/寫 LCD 第二行的初地址 for(i=0;i<5;i-H-) 該循壞顯示溫度值write_data(table 1 i); delav(20);pid_ys();運(yùn)行溫度比較PLD算法*II溫度采集轉(zhuǎn)換的定時(shí)中斷0.5s刷新一次數(shù)據(jù)*/void tmier0() mtenupt 1 umt j;J+;珂=20)OE = 0; START = 0;_nop_(); START = 1;_nop_(); START = 0

溫馨提示

  • 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)論