《《計(jì)算機(jī)控制技術(shù)》課程設(shè)計(jì)PWM溫度自動控制系統(tǒng)的設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《《計(jì)算機(jī)控制技術(shù)》課程設(shè)計(jì)PWM溫度自動控制系統(tǒng)的設(shè)計(jì)(8頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)題 目:PWM溫度自動控制系統(tǒng)的設(shè)計(jì)學(xué)生姓名: 學(xué) 號: 專業(yè)班級: 指導(dǎo)教師: 二一年十二月二十五日目 錄1.設(shè) 計(jì) 目 的12.設(shè) 計(jì) 要 求13.PID控制原理14. 帶死區(qū)的PID算法25.系統(tǒng)框圖26.程序流程圖以及程序代碼47.心得體會58.參考目錄5一.設(shè)計(jì)的目的1. 通過課程設(shè)計(jì),來加深對過程控制中自動化控制系統(tǒng)框架的理解2. 通過課程設(shè)計(jì),來加深對PID控制系統(tǒng)的理解3. 利用所學(xué)的理論知識,設(shè)計(jì)一個工業(yè)常用中的溫度控制系統(tǒng),達(dá)到對一個系統(tǒng)的初步設(shè)計(jì)二設(shè)計(jì)要求1. 要求設(shè)計(jì)溫度控制系統(tǒng),設(shè)定溫度為230度,才用電阻絲做為加熱器件,采用PID算法,無余差
2、,超調(diào)小,加熱速度快。2. 硬件采用51系列單片機(jī),采用固態(tài)繼電器作為控制元件3. 采用keil c作為編程語言,采用結(jié)構(gòu)化的設(shè)計(jì)方法三PID控制原理將偏差的比例,積分和微分通過線性組合構(gòu)成控制量,用這一控制對被控對象進(jìn)行控制,這一樣的控制器稱PID控制器1模擬PID控制原理在模擬控制系統(tǒng)中,控制器最常用的控制規(guī)律是PID控制。為了說明控制器的原理,以圖1.1的例子說明。給定輸入信號n0(t)與實(shí)際輸出信號n(t)進(jìn)行比較,其差值e(t)=n0(t)-n(t),經(jīng)過PID控制器調(diào)整輸出控制信號u(t),u(t)對目標(biāo)進(jìn)行作用,使其按照期望運(yùn)行。常規(guī)的模擬PID控制系統(tǒng)原理框圖如同1.2所示。該
3、系統(tǒng)有模擬PID和被控對象組成。圖中r(t)是給定的期望值,y(t)是系統(tǒng)的實(shí)際輸出值,給定值與實(shí)際輸出值,給定值與實(shí)際值構(gòu)成控制偏差e(t): e(t)作為PID控制的輸入,u(t)作為PID控制的輸出和被控對象的輸入。構(gòu)成PID和被控對象的輸入。構(gòu)成PID控制的規(guī)律為: 其中:Kp為控制器的比例系數(shù) Ti為控制器的積分時間,也稱積分系數(shù) Td為控制器的未分時間,也稱微分系數(shù)四帶死區(qū)PID的算法帶死區(qū)的PID控制 作用:消除由于頻繁動作所引起的振蕩計(jì)算機(jī)中帶死區(qū)的PID:五 系統(tǒng)框圖(1)系統(tǒng)框圖帶死區(qū)的PIDPWM波電阻絲 溫度 溫度傳感器AD轉(zhuǎn)化(2) 系統(tǒng)工作過程:溫度傳感器檢測容器內(nèi)
4、部的溫度,把溫度信號傳送給D/A轉(zhuǎn)換芯片進(jìn)行模/數(shù)轉(zhuǎn)化,轉(zhuǎn)化完的數(shù)字信號送入51單片機(jī),再與設(shè)定值進(jìn)行比較,比較完的差值進(jìn)行帶死區(qū)的PID算法運(yùn)算,PID后的U(k)經(jīng)過PWM波比較,輸出占空比隨U(k)調(diào)整的脈沖波形,再通過光電耦合器控制固態(tài)繼電器的通斷時間,達(dá)到對容器內(nèi)溫度加熱的控制,從而能較精確地控制器內(nèi)溫度。六 程序流程圖以及程序代碼 開始(1) .程序流程圖設(shè)定值初始化 AD轉(zhuǎn)化設(shè)定值與轉(zhuǎn)化數(shù)值相減e(k)死區(qū)PID運(yùn)算U(k) PWM()P3_0輸出脈沖波電阻絲對容器加熱(2)程序代碼#include #include /用“include”即可使用其中定義的宏來訪問絕對地址#in
5、clude sbit P3_0=P30;#define kp 10 /假設(shè)的比例系數(shù)設(shè)定值 #define ki 20 /假設(shè)的積分系數(shù)設(shè)定值#define kd 30 /假設(shè)的微分系數(shù)設(shè)定值#define set 90 /容器內(nèi)溫度的設(shè)定值#define k1 5 /誤差在死區(qū)內(nèi)時,系數(shù)的設(shè)定值#define x 3 /死區(qū)范圍的設(shè)定值#define AD_adr XBYTE0x7ff8 /AD芯片的地址int ek,ek_1,uk,sum,b;int PID( ); /死區(qū)PID算法函數(shù)調(diào)用的聲明void AD( ); /進(jìn)行AD轉(zhuǎn)換函數(shù)調(diào)用的聲明PWM(); /產(chǎn)生對應(yīng)占空比的波形的函數(shù)
6、聲明main( ) int a; ek_1=0;sum=0;b=0; while(1) AD( ); /先進(jìn)行溫度的AD轉(zhuǎn)化 a=P0; /讀取AD轉(zhuǎn)化完的值 ek=set-a; /轉(zhuǎn)化數(shù)值與設(shè)定值進(jìn)行比較 uk=PID( ); /比較的差值進(jìn)行PID運(yùn)算 PWM( ); /PID算出的值進(jìn)行D/A轉(zhuǎn)化輸出 void AD( ) AD_adr=1; /啟動轉(zhuǎn)化芯片 while(P3_0=1) /等待轉(zhuǎn)化 ; /轉(zhuǎn)化結(jié)束,數(shù)值送入P0 P0=AD_adr; PWM()ET0=1; /開T0定時器中斷EA=1; /開總中斷TMOD=0X01; /使用T0計(jì)時器,模式1TH0=0X3C;TL0=0X
7、B0; /定時100ms,計(jì)數(shù)器賦初值TR0=1; /開啟計(jì)時 USE() interrupt 1 /T0定時器中斷b+;If(b10) b=0; /10假設(shè)的三角波的峰值else if(ukb) P3_0=0; else P3_0=1; int PID( ) /死區(qū)PID算法函數(shù) int s1,s2,s3,k; sum=sum+ek; s1=kp*ek; s2=ki*sum; s3=kd*(ek-ek_1); ek_1=ek; if(abs(ek)x) /abs()為計(jì)算絕對值 k=s1+s2+s3; else k=k1*(s1+s2+s3) return k; 七. 心得體會在這次課設(shè)上由
8、于很多知識都是以前學(xué)過的不過由于沒有去鞏固所以導(dǎo)致很多地方很生疏,在些不該出問題的小細(xì)節(jié)上出來問題。不過在老師的帶領(lǐng)下,與同學(xué)的討論下,用實(shí)踐的方法把以前學(xué)到的知識鞏固了一遍,我相信這樣的鞏固不是背書能得到的,是對單片機(jī)的理解更加的深入。這次課設(shè)中也對這學(xué)期所學(xué)的知識進(jìn)一步的提高,在查閱資料的工程中也學(xué)習(xí)到了許多課本相關(guān)的知識,這次課設(shè)讓我對實(shí)踐與課本有了新的認(rèn)識。八參考書錄:1網(wǎng)絡(luò)資源2 袁任光可編程序控制器選用手冊M北京:機(jī)械工業(yè)出版社,2002.73 何友華可編程序控制器及常用控制電器M北京:冶金工業(yè)出版社4 萬光毅,嚴(yán)義,邢春香.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M.北京:北京航空航天大學(xué)出版社,2006.45