freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電加熱器溫度的數(shù)字pid控制畢業(yè)論文-閱讀頁

2025-07-12 15:32本頁面
  

【正文】 有臨界比較法、反應曲線法和衰減法。但無論采用哪一種方法所得到的控制器參數(shù),都需要在實際運行中進行最后調(diào)整與完善。PID參數(shù)的設定是靠經(jīng)驗及工藝的熟悉,參考測量值跟蹤與設定值曲線,從而調(diào)整P/I/D的大小。,減小積分時間常數(shù)Ti。確定比例增益P時,首先去掉PID的積分項和微分項,一般是令Ti=0、Td=0,使PID為純比例調(diào)節(jié)。比例增益P調(diào)試完成。記錄此時的Ti,設定PID的積分時間常數(shù)Ti為當前值得150%~180%。積分時間常數(shù)Td一般不用設定,為0即可,若要設定,與確定P和Ti的方法相同,取不振蕩時的30%。(1)迅速達到目標值,但是沖擊很大:,致使在未達到設定值前調(diào)節(jié)比例過高;,致使對象反應不敏感;(2)經(jīng)常打不到目標值,小與目標值較多,加速比例不夠;,對恒偏差補償不足; (3)基本上能夠在控制目標上,但上下偏差偏大,經(jīng)常波動,對即時變化反應不夠快,反應措施不力;,使微分反應被鈍化;,調(diào)節(jié)參數(shù)還沒有來得及傳遞出去; (4)受工作環(huán)境影響較大,在稍有變動時就會引起溫度的波動,對即時變化反應不夠快,不能即時反映;,不能及時得到修正;3 軟件設計 PID控制流程將設定值與測量值分別傳送到PID控制器,經(jīng)PID計算處理,計算出控制交流通過脈沖數(shù)的定時器1的定時值,將該定時值送入定時器,溫度值將趨于設定的溫度值。定時器0每半秒鐘會進行一次溫度采樣然后與設定值進行比較,比較出來的值將會決定定時器1控制的光耦器件的通斷時間長短,從而實現(xiàn)對溫度的精確控制。T0,T1初始化開始讀溫度設置值啟動后采集溫度溫度采集標志位置1顯示溫度查詢采集標志是否等于1存控制值PID算法采集標志位置0結(jié)束NY 讀溫度值關T0中斷T0中斷寫T1常數(shù)采集標志置1存溫度值開T0中斷=1啟動T1 關T1中斷T1中斷開T1中斷=0 流程圖4 結(jié)語 本次設計基本上實現(xiàn)了PID算法溫度自動控制的功能,基本完成了設計要求,不足之處是沒有降溫控制系統(tǒng),另外PID的控制也不是很精確。我一定會好好總結(jié)并且銘記在這次畢設中遇到的問題以及得到的經(jīng)驗,從而為以后的學習和工作打下一個扎實的基礎。Sons Inc, 1997 致謝在歷時大約3個月后,在我的導師趙世強教授以及其他各科老師的幫助下,我終于完成了自己的畢業(yè)設計任務。我相信這些美好的品質(zhì)都將伴隨我一生的學習生活中,并且讓我受益無窮。謝謝!附錄本設計程序如下:include include define uchar unsigned char define uint unsigned intsbit DS=P3^7。sbit key1=P2^0。sbit key3=P2^2。void display(uchar wei,uchar duan)。uchar code duma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x9c,0xc6}。 int temp。uchar data1,kp,ki,kd。int e1,e2,e3,duk,uk。 for(a=10。a) for(b=30。b)。 for(a=30。a) for(b=30。b)。_nop_()。_nop_()。}/*延時子程序*/ void delayb(uint count) { uint i。 while(i0) i。 }}/*DS18B20初始化*/void dsreset(void) { uint i。 i=103。 DS=1。 while(i0)i。 bit dat。i++。i++。 dat=DS。while(i0)i。}/*讀一個字節(jié)數(shù)據(jù)*/uchar tmpread(void) { uchar i,j,dat。 for(i=1。i++) { j=tmpreadbit()。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好//一個字節(jié)在DAT里 } return(dat)。 uchar j。 for(j=1。j++) { testb=datamp。 dat=dat1。 i++。 DS=1。while(i0)i。 //寫0部分 i=8。 DS=1。i++。 //初始化DS18B20 delayb(1)。 //跳過序列號命令 tmpwritebyte(0x44)。 uchar a,b。 delayb(1)。 tmpwritebyte(0xbe)。 //連續(xù)讀兩個字節(jié)數(shù)據(jù),讀低8位 b=tmpread()。 temp=8。不懂的看C語言基礎書 temp=temp|a。 //得到真實十進制溫度值, // temp=ftemp*10+。 return temp。 //使用模式1,16位定時器,使用|符號可以在使用多個定時器時不受影響 TH0=(6553650000)/256。 EA=1。 //定時器T0允許中斷 TR0=1。 //使用模式1,16位定時器,使用|符號可以在使用多個定時器時不受影響 TH0=(6553650000)/256。 EA=1。 //定時器T1允許中斷 //TR1=1。 if(key1==0) { while(1) { dis_temp(settemp)。 if(key2==0) break。 if(key3==0) settemp+=10。 if(key4==0) settemp=10。 //段碼 P1=wema[wei]。 int t1。 i=t1%1000/100。 display(0,i)。 i=t1%100/10。 display(1,i)。 display(2,10)。 delay1()。 delay1()。 e1 = 0。 e3 = 0。 ki = 5。 }void pid_ys(){ if(tempsettemp) // 如果實際溫度小于設定值 { /*if(settemptemp20) // 如果相差2度 { gou=0。 duk=(kp*(e1e2)+ki*e1+kd*(e1e2*2+e3))/10。 if(uk100) uk = 100。 if(uk0) { hightime=uk。 } // TR1=1。 e2 = e1。 } if(temp=settemp) // 如果實際溫度大于設定值 { /*if(tempsettemp0) //只要實際溫度與設定值有偏差 { hightime=0。 duk=(kp*(e1e2)+ki*e1+kd*(e1e2*2+e3))/10。 if(uk100) uk = 100。 if(uk0) { hightime=100(uk)。 } e3 = e2。 }*/ gou=1。 init_time1()。 //溫度轉(zhuǎn)換 dis_temp(get_temp())。 pid_ys()。 t0++。 t0=0。 TL0=(6553650000)%256。 t1++。 t1=0。 } TH1=(6553650000)/256。 }
點擊復制文檔內(nèi)容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1