基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)評(píng)語:考勤10分守紀(jì)10分過程30分設(shè)計(jì)報(bào)告30分答辯20分總成績(100分)專 業(yè): 自動(dòng)控制 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 基于單片機(jī)的模糊控制算法溫度控制系統(tǒng)設(shè)計(jì)摘要:隨著電子產(chǎn)品向智能化和微型化的不斷發(fā)展,單片機(jī)已成為電子產(chǎn)品研制和開發(fā)中首選的控制器。為了更好地推廣單片機(jī)在實(shí)際生活和生產(chǎn)中的應(yīng)用,本文介紹一種應(yīng)用AT89C51單片機(jī)設(shè)計(jì)的模糊控制的溫度控制系統(tǒng),該溫度系統(tǒng)采用溫度傳感器DS18B20獲得當(dāng)前溫度,利用AT89C51單片機(jī)實(shí)現(xiàn)對溫度的控制,系統(tǒng)能夠?qū)崟r(shí)顯示當(dāng)前的溫度值,并可以通過按鍵設(shè)定將要控制的溫度值。當(dāng)檢測到當(dāng)前溫度時(shí),單片機(jī)計(jì)算

2、出誤差和誤差變化率,通過查詢根據(jù)模糊控制規(guī)則得出的控制表,找出正確有效的控制量代碼,再按照對應(yīng)的控制方法發(fā)出控制信號(hào),根據(jù)實(shí)際溫度與控制溫度的的差值及差值變化率,找到最佳的控制量,控制電熱絲和電風(fēng)扇執(zhí)行相應(yīng)的動(dòng)作。在本文中采用模塊化結(jié)構(gòu),主要模塊有:鍵盤設(shè)定模塊、LED顯示模塊、雙向晶閘管加溫控制模塊、風(fēng)扇降溫模塊。本模糊控制的溫度控制系統(tǒng)具有體積小、操作靈活、可靠性高、實(shí)用、成本低等特點(diǎn),適合住宅和各類溫室溫度的控制具有一定的實(shí)用意義。關(guān)鍵詞:AT89C51DS18B20模糊控制雙向晶體管 1設(shè)計(jì)目的這套模糊溫度控制系統(tǒng)可以方便地實(shí)現(xiàn)溫度測量、溫度顯示及控制等功能,并通過與單片機(jī)連接的鍵盤可

3、以實(shí)時(shí)設(shè)定要測控溫度,還可以連接相應(yīng)的外圍電路,在收到單片機(jī)發(fā)出的指令后對環(huán)境進(jìn)行檢測,再通過控溫裝置控制溫度的升降。2設(shè)計(jì)方案及原理該溫度控制系統(tǒng)的總體設(shè)計(jì)框圖如圖所示,主要由單片機(jī)、數(shù)字溫度傳感器DS18B20、七段數(shù)碼顯示管、鍵盤等組成。當(dāng)傳感器監(jiān)測到溫度信息后傳輸給單片機(jī),單片機(jī)對接收到的數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)實(shí)時(shí)顯示到共陰極的七段數(shù)碼管顯示器上,系統(tǒng)設(shè)置了所要控制的溫度值,當(dāng)現(xiàn)場溫度超過或低于這個(gè)設(shè)定值時(shí),系統(tǒng)就會(huì)控制電阻絲升溫或風(fēng)扇降溫。系統(tǒng)框圖如圖1所示。圖1 系統(tǒng)組成框圖3 硬件設(shè)計(jì)3.1 鍵盤設(shè)定模塊本設(shè)計(jì)的鍵盤設(shè)定模塊采用獨(dú)立式鍵盤,設(shè)三個(gè)按鈕,分別為設(shè)定/顯示器/顯示器,十

4、位增加鍵和個(gè)位增加鍵,在設(shè)定控制溫度的值時(shí),可以通過按下設(shè)定/顯示按鍵,再按下十位增加與個(gè)位增加按鍵進(jìn)行設(shè)置,設(shè)置完成后即可松開設(shè)定/顯示按鍵,LED顯示實(shí)時(shí)的溫度值,如要查看設(shè)定溫度值,則可以直接按下設(shè)定/顯示按鍵,LED顯示設(shè)定值,這樣的設(shè)計(jì)不僅可以減少LED的成本,還可以電路變得簡單,更適合操作。3.2 LED顯示模塊考慮到本系統(tǒng)的顯示內(nèi)容比較簡單,而且亮度要求比較高,對顯示器件的耐用性要求也比價(jià)高,所以本設(shè)計(jì)選用七段數(shù)碼管來完成顯示功能。系統(tǒng)通過軟件的設(shè)計(jì)使得設(shè)定值與實(shí)際值可在同一數(shù)碼管上顯示,所以只用六位即可,大大節(jié)約了成本,也縮小了硬件體積。實(shí)時(shí)顯示可以顯示-55C128C的溫度范

5、圍,最后一位數(shù)碼管顯示符號(hào)C。設(shè)定顯示時(shí)顯示“SET/控制溫度值”,其中控制溫度值為兩位,可知該系統(tǒng)的溫度控制范圍是0C99C。本設(shè)計(jì)選用共陰數(shù)碼管,單片機(jī)P2口實(shí)現(xiàn)動(dòng)態(tài)顯示的位選功能,P0口實(shí)現(xiàn)段選功能,由于單片機(jī)I/O口的輸出電流難以點(diǎn)亮數(shù)碼管,所以在P0輸出口需要串聯(lián)74LS245來增加驅(qū)動(dòng)能力。3.3雙向晶閘管加溫控制模塊本設(shè)計(jì)的加溫功能是采用交流調(diào)功電路實(shí)現(xiàn),交流調(diào)功電路時(shí)將負(fù)載與交流電源接通幾個(gè)整周波,再斷開幾個(gè)整周波,通過改變接通周波數(shù)與斷開周波數(shù)的比值來調(diào)節(jié)負(fù)載所消耗的平均功率。這種電路常用于電爐的溫度控制,因?yàn)橄駵囟冗@樣的控制對象,其時(shí)間常數(shù)往往很大,所以只要以周波數(shù)為單位進(jìn)

6、行控制就足夠了。通??刂凭чl管導(dǎo)通的時(shí)候都是在電源電壓過零的時(shí)候,這樣,在交流電源接通期間,負(fù)載電壓電流都是正弦波,不對電網(wǎng)電壓電流造成通常意義的諧波污染。本設(shè)計(jì)采用過零觸發(fā)芯片MOC3041實(shí)現(xiàn)對雙向晶閘管的過零觸發(fā),從而控制晶閘管環(huán)路中負(fù)載電熱絲RL的功率,電路見附圖6所示,3.3風(fēng)扇降溫模塊當(dāng)加溫電路產(chǎn)生超調(diào),或者外界溫度太高的時(shí)候,系統(tǒng)必須采取降溫措施,以達(dá)到設(shè)定溫度值??紤]到本系統(tǒng)的實(shí)際意義,僅采取風(fēng)扇降溫和自然降溫相結(jié)合的方法即可,該電路采用光電耦合器,PNP晶體管以及繼電器相互配合實(shí)現(xiàn)風(fēng)扇的控制,當(dāng)光電耦合器輸入端輸入低電平信號(hào)時(shí),4,6腳導(dǎo)通,此時(shí)晶體管Q1也導(dǎo)通,致使繼電器線

7、圈有足夠大的電流流過,使其吸合,從而導(dǎo)通直流電動(dòng)機(jī)環(huán)路,使其工作。其中R1起到限流作用,保護(hù)光電耦合器,光電耦合器又將單片機(jī)的工作電壓5V電源與繼電器以及直流電動(dòng)機(jī)的驅(qū)動(dòng)電源進(jìn)行了有效的隔離,這樣既可以防止強(qiáng)電流流入弱電流電器件將器件損壞,又可以避免一定的干擾。電阻R2,R3同樣起到限流保護(hù)的作用,電路見附圖5所示。4 模糊控制算法4.1 模糊控制的基本原理模糊控制結(jié)構(gòu)圖如圖2所示圖2 模糊控制結(jié)構(gòu)圖4.2 模糊控制程序的設(shè)計(jì)思想本系統(tǒng)所用的模糊控制器由單片機(jī)AT89C51的程序?qū)崿F(xiàn),用單片機(jī)實(shí)現(xiàn)具體過程如下:1 求系統(tǒng)給定值與反饋值得誤差e,單片機(jī)通過采樣獲得系統(tǒng)被控量的精確值,然后將其與給

8、定值比較,得到系統(tǒng)誤差。2 計(jì)算誤差變化率ec。這里對誤差求微分,指的是在一個(gè)采樣周期內(nèi)求誤差的變化率e,3 輸入量的模糊化,將e和ec模糊化變成模糊量E,EC。同時(shí),把語言變量E,EC的語言值化為某適當(dāng)論域上的模糊子集。4 控制規(guī)則。他是模糊控制器的核心,控制規(guī)則可能有很多條,那么需要求出總的控制規(guī)則R,作為模糊推理的依據(jù)。5 模糊推理。輸入量模糊化后的語言變量E,EC作為模糊推理部分的輸入,再由E,EC和總的控制規(guī)則R,根據(jù)推理合成規(guī)則進(jìn)行模糊推理得到模糊控制量U.6 逆模糊化。為了對被控對象施加精確地控制,必須將模糊控制量轉(zhuǎn)化為精確u,即逆模糊化。7 建立模糊控制查詢表,以便單片機(jī)快速控

9、制。4.3 模糊控制規(guī)則本系統(tǒng)的模糊控制規(guī)則,采用Mamdani推理法中的一種最常見的形式“if A and B then C”語句來建立。由于誤差語句變量E,誤差變化率語言EC均用了7個(gè)語言值,所以本系統(tǒng)的模糊規(guī)則共用了49條??傻玫侥:刂撇樵儽砣缦卤?:表1 模糊控制查詢表ECUU-5-4-3-2-1012345-1055555543211-955555542211-855555542211-755555542111-655555542111-555555542111-455554432111-355554432111-255444322110-155443211110054332111

10、00014322211000023222111000032221100000042221100000051111100000061111100000071111100000081111100000091111100000010111110000005 軟件設(shè)計(jì)根據(jù)系統(tǒng)硬件結(jié)構(gòu),按如下程序流程進(jìn)行軟件設(shè)計(jì)。圖3 程序設(shè)計(jì)流程6 系統(tǒng)仿真及實(shí)際調(diào)試首先要在Keil軟件編寫源程序,經(jīng)過編譯、調(diào)試生成.HEX文件;然后雙擊Proteus ISIS原理圖中的單片機(jī)AT89C51,選擇好要加載的789.HEX文件;最后進(jìn)行仿真運(yùn)行。其中,紅色方塊代表高電平,藍(lán)色代表低電平,灰色代表懸空。7 總結(jié)本文介紹了

11、基于AT89C51單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì),對整個(gè)硬件電路和軟件程序設(shè)計(jì)做了分析,介紹了溫度控制系統(tǒng)的設(shè)計(jì)方案選擇及原理介紹,并通過仿真軟件proteus 實(shí)現(xiàn)了在一定范圍的溫度顯示控制。在課程設(shè)計(jì)過程中,通過對仿真軟件proteus,keil C,數(shù)字溫度傳感器DS18B20的學(xué)習(xí)使用,掌握了單片機(jī)應(yīng)用系統(tǒng)各主要環(huán)節(jié)的設(shè)計(jì)、調(diào)試方法,初步掌握并具備應(yīng)用單片機(jī)進(jìn)行設(shè)備技術(shù)改造和產(chǎn)品開發(fā)的能力,培養(yǎng)了創(chuàng)新意識(shí),提高了動(dòng)手能力和分析問題、解決問題的能力。參考文獻(xiàn)1 王思明等.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:科學(xué)出版社,2012.2 周潤景,徐宏偉.單片機(jī)電路設(shè)計(jì)、分析與制作M.北京:機(jī)械工業(yè)出

12、版社,2010.53 譚浩強(qiáng).C程序設(shè)計(jì)(第四版).北京:清華大學(xué)出版社,2010.4 諸靜.模糊控制理論與設(shè)計(jì)原理.北京:機(jī)械工業(yè)出版社,2010.附錄一 1.完全電路圖圖4 完全電路圖2. 風(fēng)扇降溫模塊電路圖圖5 風(fēng)扇降溫模塊電路圖3. 雙向晶閘管加溫控制模塊圖6 雙向晶閘管加溫控制模塊附錄二 源程序/包含頭文件,端口定義,程序開始#include#define uchar unsigned char#define uint unsigned intsbit DQ=P14;sbit SET=P10;sbit INT_A=P11;sbit INT_B=P12;sbit temp_inc=P3

13、0;sbit temp_dec=P30;unsigned char flag,flaga,SET_A=2,SET_B=5,e1=0;unsigned char TCNT,U,set-tempA,set_tempB,realtemp,settemp;uchar code scan8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x40,0x39,0x00,0x79;uchar code ditab16=0x00,0x01,0x

14、01,0x02,0x03,0x03,0x04,0x04,0x04, 0x05, 0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code fuzzy2111=5,5,5,5,5,5,4,3,2,1,1, 5,5,5,5,5,5,4,2,2,1,1, 5,5,5,5,5,5,4,2,2,1,1, 5,5,5,5,5,5,4,2,2,1,1, 5,5,5,5,5,5,4,2,2,1,1, 5,5,5,5,5,5,4,2,2,1,1, 5,5,5,4,4,4,3,2,1,1,1, 5,5,5,4,4,4,3,2,1,1,1, 5,5,4,4,4,3,2,2,1,0,

15、0, 5,5,4,4,3,2,1,1,1,0,0, 4,4,3,3,2,1,1,1,0,0,0, 3,3,2,2,1,1,1,0,0,0,0, 2,2,2,2,1,1,1,0,0,0,0, 2,2,2,1,1,0,0,0,0,0,0, 2,2,2,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,0,0,0;uchar dispbuf8;uchar t

16、emper2;/延時(shí)函數(shù)void delay(unsigned int us)while(us-);/DS18B20復(fù)位函數(shù)void reset(void) uchar x=0;DQ=1;delay(8);DQ=0;delay(80);DQ=1;delay(14);x=DQ;delay(20);/DS18B20讀一個(gè)字節(jié)uchar readbyte(void)uchar i=0;uchar dat=0;for (i=8;i0;i-)DQ=0;dat=1;DQ=1;if(DQ)dat| =0x80;delay(4);return(dat);/DS18B20寫一個(gè)字節(jié)void writebyte(

17、unsigned char dat)uchar i=0;for(i=8;i0;i-)DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat=1;delay(4);/讀取溫度void readtemp(void)uchar a=0,b=0;uint t=0;rest();writebyte(0xCC);writebyte(0xBE0;a=readbyte();b=readbyte();if(b0x0f)a=a+1;if(a=0)b=b+1;else b=b;flag=10;else flag=12;temper0=a&0x0f;a=a4;temper1=b4;temper1=tem

18、per1|a;/掃描顯示函數(shù)void scan_disp(0unsigned char i,value;for(i=0;i8;i+)P2=0xff;value=tabledispbufi;if(i=3)value| =0x80;P0=value;P2=scani;delay(50);/設(shè)定顯示函數(shù)void DISPLAY(0dispbuf5=SET_B;scan_disp();void key_test()if(SET=0)delay(100);while(SET)DISPLAY();if(INC_A=0)delay(100);if(INC_A=0)SET_A+;if(SET_A=10)SET

19、_A=0;while(INC_A=0) DISPLAY();if(inc_b=0)delay(100);if(INC_B=0)SET_B=0;while(inc_b=0) DISPLAY();set_tempA=SET_A;set-tempB=SET_B;/實(shí)時(shí)溫度顯示碼處理函數(shù)void dat_pre()uchar temp;readtemp();temp=temper0;dispbuf4=ditabtemp;dispbuf5=11;temp=temper1;realtemp=temp;dispbuf1=temp/100;dispbuf3=temp%10;temp=temp/10;dispbuf2=temp%10;dispbuf0;/模糊規(guī)則查表函數(shù)void fuzzypre()uchar e,ebuf,i,f,fbuf,j;settemp=set_tempA;settemp=settemp*10;settemp+=set_tempB;realtemp=realtemp%100;e=realtemp-settemp;f=e;ebuf=e;flaga=e; flaga&=0x80; if(flaga=0) e=10)e=10; i=10+e;eslee=e; e+=1; e=10)e=10;i=10-e;f-=e1;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論