水溫自動控制系統(tǒng)_第1頁
水溫自動控制系統(tǒng)_第2頁
水溫自動控制系統(tǒng)_第3頁
水溫自動控制系統(tǒng)_第4頁
水溫自動控制系統(tǒng)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、電子技術綜合設計設計報告設計題目: 水溫自動控制系統(tǒng) 組長姓名: 學 號: 專業(yè)與班級: 工業(yè)自動化14-16班 姓 名: 學 號: 專業(yè)與班級: 工業(yè)自動化14-16班 姓 名: 學 號: 專業(yè)與班級: 工業(yè)自動化14-16班 時 間: 2016 2017 學年第(1)學期 指導教師: 陳燁 成 績: 評閱日期: 一、 課題任務設計并制作一個水溫自動控制系統(tǒng),對1.5L凈水進行加。水溫保持在一定范圍內且由人工設定。細節(jié)要求如下:1.溫度設定范圍為4090 ,最小分辨率為0.1,誤差1。2.可通過LCD顯示屏顯示溫度目標值與實時溫度。3.可以通過鍵盤調整目標溫度的數值。二、 方案比較1. 系統(tǒng)

2、模塊設計為完成任務目標,可以將系統(tǒng)分為如下幾個部分:5V直流電供電模塊、測溫模塊、80C52單片機控制系統(tǒng)、鍵盤控制電路、溫度顯示模塊、繼電器控制模塊、強電加熱電路。通過各模塊之間的相互配合,可以完成水溫檢測、液晶顯示、目標值設置、水溫控制等功能。系統(tǒng)方框圖如下:2. 5V直流電供電模塊方案一:直接用GP品牌的9v電池,然后接通過三端穩(wěn)壓芯片7805穩(wěn)壓成5伏直流電源提供給單片機系統(tǒng)使用,接兩個5伏電源的濾波電容后輸出。方案二:通過變壓器,將220v的市電轉換成9v左右的交流電,變壓器輸出端的9V電壓經橋式整流并電容濾波。要得到一個比較穩(wěn)定的5v電壓,在這里接一個三端穩(wěn)壓器的元件7805。由于

3、需要給繼電器提供穩(wěn)定的5V電壓,而方案一中導致電池的過度損耗,無法穩(wěn)定帶動繼電器持續(xù)工作,所以我們選用能夠提供更加穩(wěn)定5v電源的方案二。3. 測溫模塊經查閱資料,IC式感溫器在市場上應用比較廣泛的有以下幾種:AD590:電流輸出型的測溫組件,溫度每升高1 攝氏度,電流增加1A,溫度測量范圍在-55 150之間。其所采集到的數據需經A/D 轉換,才能得到實際的溫度值。DS18B20:內含AD轉換器,所以除了測量溫度外,它還可以把溫度值以數字的方式(9 B i t ) 送出,因此線路連接十分簡單,它無需其他外加電路,直接輸出數字量,可直接與單片機通信,讀取測溫數據。它能夠達到0.5的固有分辨率,使

4、用讀取溫度暫存寄存器的方法還能達到0.0625以上精度,溫度測量范圍在-55125 之間,應用方便。SMARTEC感溫組件:這是一只3個管腳感溫IC,溫度測量范圍在-45 13,誤差可以保持在0.7 以內。max6225/6626:最大測溫范圍也是-55+125,帶有串行總線接口,測量溫度在可測范圍內的的誤差在4以內,較大,故舍棄該方案。本設計選用DS18B20感溫IC,這是因其性能參數符合設計要求,接口簡單,內部集成了A/D 轉換,測溫更簡便,精度較高,反應速度快,且經過市場考察,該芯片易購買,使用方便。下面是DS18B20感溫IC的實物和接口圖片4. 80C52單片機控制系統(tǒng)AT89C52

5、是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應用。5. 鍵盤控制電路方案一:四鍵設定,一個十位控制鍵,一個個位控制鍵,一個位控制鍵,一個確認鍵,通過四鍵的配合設定為度,該方案接線和程序簡單,但實際操作不太便捷。方案二:矩陣鍵盤設定,通過按鍵輸入不同數字實現溫度的設定,電路連接比較簡單,程序較方案一復雜,但已經在學習過

6、程中接觸過矩陣鍵盤的編程技巧,有一定的可行性,且操作起來更加符合我們的日常習慣。本次設計暫定采用矩陣鍵盤來作為溫度設定電路的輸入。6. 溫度顯示模塊方案一:使用數碼管顯示,通過數碼管顯示被測溫度和設定溫度。該方案程序簡單,且已學習過其編程技巧,但硬件占用單片機I/O口較多,對于盡量節(jié)約端口,讓線路簡單來說不是好方法,而且顯示也不夠直觀靈活,只能顯示數字,。方案二:使用液晶屏1602顯示。1602可顯示兩行字符及數字,可以用來顯示設定溫度及測量溫度,較之數碼管顯示更加清晰直觀,雖然此前沒有接觸過相關知識,但該器件上手比較容易,可以在短期內學會其使用方法。1602較之數碼管更加符合本次設計要求,因

7、此使用1602作為顯示器件。7. 繼電器控制模塊方案一:采用普通的控制方法,即水溫溫度到達臨界溫度時,控制繼電器開閉。但由于水溫變化快,且慣性大,不易控制精度。 方案二:采用PWM控制加PID算法,通過采用PWM可以產生一個波形,而PWM波形的占空比是通過PID算法調節(jié),這樣就可以通過控制加熱電路的開、斷時間比來控制加熱器功率進而控制溫度的變化,從而使精度提高。此方法中硬件上可以使用固態(tài)繼電器或晶閘管控制加熱器工作。我們選擇方案二。三、 電路設計1. 電源電路整個系統(tǒng)需要使用5V直流電和220V交流電。電源電路采用變壓器與穩(wěn)壓模塊,將工頻電壓降為5V直流電,為系統(tǒng)供電。首先用變壓器模塊20V交

8、流電降為9V交流電,接入整流電橋,變?yōu)橹绷麟娸敵?,再使用三端穩(wěn)壓芯片7805穩(wěn)壓為5V。L7805輸出端要聯(lián)上電解電容,濾除交流電干擾,防止損壞單片機系統(tǒng)。LM7805最大可以輸出1A的電流,內部有限流式短路保護,短時間內,例如幾秒鐘的時間,輸出端對地(2腳)短路并不會使7805燒壞。2. 溫度傳感器DS18B20溫度傳感器只有三根外引線:單線數據傳輸總線端口DQ ,外供電源線VDD,共用地線GND。外部供電方式(VDD接+5V,且數據傳輸總線接4.7k的上拉電阻,其接口電路如下圖(外接電源工作方式)所示。3. 單片機最小系統(tǒng)單片機最小系統(tǒng),或者稱為最小應用系統(tǒng),是指用最少的元件組成的單片機可

9、以工作的系統(tǒng).對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路4. 按鍵、顯示電路這部分實際上是一個單片機最小系統(tǒng)的基本電路,鍵盤選用矩陣鍵盤可滿足要求,通過按鍵輸入不同數字實現溫度的設定。在顯示方面選用常用的1602液晶顯示模塊。通過相應的程序,可以實現溫度的實時顯示,電路連接也比較簡單,只需連接數據總線,和三根控制線即可實現數據控制,實現顯示功能。1602顯示電路5. 繼電器溫控單片機驅動繼電器的通斷,從而比較容易的實現對小功率電熱棒的加熱。本系統(tǒng)利用繼電器的吸合與否來實現水溫的自動化控制。本次設計采用型號為JRC-21F的繼電器。其特點有:(1).超小型,低功耗;(

10、2).觸點型式:1H,1Z(1A.AC);(3).觸點負載:2A,120VAC;(4).外型尺寸:15.7X10.4X11.4如圖是驅動較大功率繼電器的接口,當p1.1(連接單片機的輸出口)輸出低電平時,Q1導通,繼電器吸合;當p1.1輸出高電平時,Q1截止,繼電器斷開。由于繼電器吸合時電流比較大,所以在單片機與繼電器之間增加了光電耦合器件作為隔離電路。R3是光電耦合輸出管的限流電阻,R4是驅動管Q1基極泄放電阻。整體硬件電路見附錄四、 程序設計程序結構包括:主程序、傳感器測溫程序、lcd1602顯示程序、鍵盤掃描程序、PID計算程序、PWM波形發(fā)生程序。主程序流程圖如下所示:傳感器測溫程序流

11、程圖:lcd1602顯示程序流程圖:鍵盤掃描程序流程圖:溫度比較與PID計算程序流程圖:PWM波形發(fā)生程序(定時器中斷)流程圖:五、 測試方案1.靜態(tài)測試:室溫狀態(tài)下,分別用溫度計與18B20傳感器檢測水溫,觀察兩者是否有誤差。2.動態(tài)測試:用繼電器控制“熱得快”對1升水加熱,用鍵盤設定需加熱溫度值,觀察、記錄1602顯示屏上實時水溫值的變化過程和每次改變溫度設定值后PID調節(jié)的超調量。多次調試并和修改PID參數來完善該系統(tǒng)。檢驗水溫的穩(wěn)定值是否滿足設計目標的要求。六、 系統(tǒng)調試1.加熱水量與加熱器的功率確定加熱器水量與功率應當構成匹配,加熱水量過多或功率過小會導致加熱時間過長,而加熱水量過少

12、或功率過大會使超調增大,不利于控制。我們選擇1L的容器作為測試對象,預計將20攝氏度的水加熱到100攝氏度需要5分鐘。經過計算這樣的加熱器功率至少為1120w,因此選擇1000w的加熱管。滿足1L的容器很多,但是廣口的盆水位較低,不利于加熱管的安放。經過努力,找到了合適的容器(實物見附件),恰能使得加熱棒處于最為合適的水位深度。2.上下層溫差的優(yōu)化和電動機電源的選擇電動機本不在設計的范圍里面,但是隨著系統(tǒng)調試的進行,發(fā)現容器中的的水很難實現熱均勻。容器中上下層溫差過大,導致溫度傳感器所測數據極不準確,滯后過大,非常不利于控制。所以又添加一個直流減速電機帶動槳葉加速冷熱水對流,從而讓容器里面的水

13、受熱均勻,方便測溫模塊對系統(tǒng)水溫的實時監(jiān)測。這一額外的電動機沒有在事先考慮的器件電氣匹配范圍內,所以當它與加熱模塊一同共用5v的直流電源時,已超出了整流模塊所能提供的最大電流,于是又添加了一個電源給電動機供電。3. PID程序的修改調試當實際水溫與目標值差距過大時,加熱器只需滿功率工作(或完全停止工作)即可滿足要求。此時采用PID控制意義不大,且PID控制范圍很大,參數很難整定,而微分環(huán)節(jié)也容易受到干擾導致加熱器無法滿功率運行。因此,在滿足控制精度的前提下,可將PID控制的范圍縮小到設定溫度的1之內。范圍縮小后,PID參數容易調整,控制效果明顯增強。經過調試后PID參數分別為Proportio

14、n = 10,Integral = 8,Derivative =6。4.PWM波周期的調試PWM波的周期越短,控制的精度越高。但PWM波形的輸出需要單片機中斷程序進行控制,中斷頻率過高會干擾單片機中主程序的運行。測溫模塊18B50對時間的要求非常嚴格,因此測溫模塊讀取數據期間會與中斷程序沖突。若18B20讀數期間允許中斷中斷會導致其溫度輸出出現大量錯誤;若不允許中斷會導致PWM波周期頻繁變化。經過調試,將PWM波周期設為5s。七、 數據測試與處理1.靜態(tài)溫度的測試室溫狀態(tài)下,分別用溫度計與18B20傳感器檢測水溫,得到結果分別為。溫度計顯示17.5,18B20傳感器顯示溫度17.9,在誤差允許

15、的范圍內,滿足要求。2.動態(tài)溫度的測試:令測溫系統(tǒng)工作,對1.5L凈水加熱,設定溫度分別為50,60, 80,每10s記錄一次顯示屏幕上的數據,繪制其溫度變化曲線,并計算溫度控制的超調量,穩(wěn)態(tài)誤差。溫度數據及曲線如下:(1) 目標溫度50度:時間(10s)01234567溫度()303030.130.531.13232.733.5時間(10s)89101112151718溫度()34.535.336.137.138.140.642.343.2時間(10s)1920212324252627溫度()44.14545.847.648.449.149.750.8時間(10s)2829303132333

16、435溫度()51.251.651.851.851.851.851.851.7時間(10s)3639404346515457溫度()51.651.351.150.850.650.550.350.1時間(10s)6063646668697072溫度()5049.849.950.150.550.750.750.7時間(10s)7578818487889091溫度()50.550.450.250.149.949.85050時間(10s)92溫度()50超調量為3.6%(2) 目標溫度60度:時間(10s)01234567溫度()5050.551.151.852.653.554.155時間(10s)8

17、9101112131415溫度()55.856.657.558.358.959.860.361.2時間(10s)1617181920212427溫度()61.561.661.661.661.561.461.160.8時間(10s)3032333436374041溫度()60.460.260.16059.86060.260.3時間(10s)4245474850525354溫度()60.360.2606059.859.960.160.3時間(10s)5657溫度()60.460.3超調量為2.5%(3) 目標溫度80度:時間(10s)01234567溫度()6060.861.462.162.863

18、.764.565.3時間(10s)89101112131516.5溫度()66.166.867.668.369.170.371.372.4時間(10s)1819212223242526溫度()73.574.375.676.47777.778.478.9時間(10s)2728293031323334溫度()79.580.180.380.580.580.380.280.1時間(10s)35363738.539404142溫度()79.879.679.479.379.379.379.479.4時間(10s)4344454647484950溫度()79.579.679.779.879.9808079.

19、9時間(10s)5152535455565758溫度()79.779.679.679.679.779.779.880時間(10s)5960616263溫度()80.180808080超調量為0.6%由以上溫度曲線可以看出,水溫能夠保持在設定溫度上下,控制過程中超調量4%,且穩(wěn)態(tài)時的誤差在為0.3,滿足系統(tǒng)設計要求。八、 設計總結通過本次應用系統(tǒng)設計,在很大程度上提高了我們的獨立思考、分析判斷以及動手實踐能力,也對系統(tǒng)設計過程以及設計過程中應注意的問題有了初步的認識,加深了我們對所學知識的理解。出于對自身知識及可獲取的學習資源的考慮,我組本次電子綜合設計的選題最終定為水溫自動控制系統(tǒng)的設計,該題

20、目為往年電設題目,參考資料較易獲取且基本未超出我們現掌握的知識水平。在參考了書本及網絡上的設計思想之后,我們確定了該系統(tǒng)的設計方案初稿,并討論了設計方案的可行性。討論確定出實驗所需器材以及組員的分工,由一名組員進行程序的編寫,另外兩名組員進行硬件電路的焊接及調試。經過幾次檢查、調試以及修改之后,基本實現了本次設計的部分預期目標:可通過LCD顯示屏顯示溫度目標值與實時溫度,可以通過鍵盤調整目標溫度的數值等功能。在系統(tǒng)調試過程中,遇到一些問題:1.由于一開始沒有估計好器件占用的空間,所購萬用板太小,無法滿足實驗要求,之后又換用了一個較大的萬用板。在最小系統(tǒng)焊接完成后,由于沒有搞清楚按鍵的內部接線,

21、使單片機一直處于復位狀態(tài),無法正常工作,后用萬用表排查出該錯誤。2.在加熱控制器件的選擇上花費了較多精力,開始的設計方案是用光電耦合器配合雙向晶閘管利用PWM波控制加熱功率來實現溫度的穩(wěn)定,但在硬件實驗時發(fā)現控制導通無法實現,且電壓、電流余量有限,不能滿足設計要求。便換用了固態(tài)繼電器配合三極管來實現功率控制。3.在完成基本功能后,發(fā)現由于水溫分布不均勻,溫度傳感器無法及時檢測到水溫變化以改變加熱功率,減小超調量,又在原系統(tǒng)中增加了電機攪拌器以使水溫分布均勻。4. 在PID參數整定中,發(fā)現初始的PID算法過于簡單,造成被控變量誤差與穩(wěn)定性均較差。普通的位置PID算法很難滿足水溫控制系統(tǒng)的要求。查

22、閱資料后,縮小了PID控制的范圍,在滿足控制精度的前提下,溫控范圍縮小到設定溫度的1之內。范圍縮小后,PID參數容易調整,控制效果明顯增強。這些問題的解決幫助我們融合所學的知識,極大提高了我們動手能力。通過對本設計的反思總結,加深了對機械,單片機,自動控制等多方面知識的理解,也激發(fā)了我們對電子設計的極大興趣,這對我們以后的學習生活有著十分重要的作用。 九、 參考文獻1.劉海成.AVR單片機原理及測控工程應用 .北京航空航天大學出版社2.周潤景 劉曉霞.單片機實用系統(tǒng)設計與仿真經典實例.電子工業(yè)出版社3.謝維成 楊加國.單片機原理與應用及C51程序設計.清華大學出版社4.大學生電子設計競賽組委會

23、.第五屆全國電子設計競賽獲獎作品選編.北京理工大學出版社5.黃志偉 全國大學生電子設計競賽系統(tǒng)設計。北京航空航天出版社6.51黑電子論壇 十、 附錄1. 電路原理圖2.程序#include #include#include#include#define uchar unsigned char#define uint unsigned intsbit DQ =P27; /定義端口sbit RS=P25;sbit RW=P24;sbit EN=P23;sbit output=P20;sbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;sbit P0_3=P03;uc

24、har flag;/flag為溫度值的正負號標志單元uchar c2;/18b20的直接輸出量 uint cc,cc2;/變量cc為18b20輸出量的直接計算值,cc2為放大100倍溫度值 float cc1;/cc1為溫度值uchar buff110=Set temp: ;/1602屏顯示uchar buff210=Cur temp: ;/1602屏顯示uchar set_c2=5,0;/用于溫度設置及1602屏顯示uchar buff36=+00.0 ;/1602屏顯示uchar temper,set_temper=50;/temper用于PID的測量值(整數),set_temper用于P

25、ID參考值uint s;/PID的測量值(小數)struct PID unsigned int SetPoint; / 設定目標 unsigned int Proportion; / 比例常數 unsigned int Integral; / 積分常數 unsigned int Derivative; / 微分常數 unsigned int LastError; / Error-1unsigned int PrevError; / Error-2unsigned int SumError; / Sums of Errors;struct PID spid; / 創(chuàng)建PID結構uint rout

26、; / PID Outputuint rin; / PID Inputunsigned char high_time,low_time,count=0;/占空比調節(jié)參數void delay(uint useconds) /延時程序 for(;useconds0;useconds-);uchar ow_reset(void) /復位(18B20) uchar presence; DQ = 0; / DQ 低電平 delay(50); / 480ms DQ = 1; / DQ 高電平 delay(3); / 等待 presence = DQ; / presence 信號 delay(25); re

27、turn(presence); / 0允許, 1禁止 uchar read_byte(void) /從單總線上讀取一個字節(jié)(18B20) uchar i; uchar value = 0; for (i=8;i0;i-) value=1; DQ = 0; DQ = 1; delay(1); if(DQ)value|=0x80; delay(6); return(value);void write_byte(uchar val) /向單總線上寫一個字節(jié)(18B20) uchar i; for (i=8; i0; i-) / 一次寫一位 DQ = 0; DQ = val&0x01; delay(5

28、); DQ = 1; val=val/2; delay(5);void Read_Temperature(void) /讀取溫度(18B20) ow_reset(); write_byte(0xCC); / 跳過 ROM write_byte(0xBE); / 讀 c1=read_byte();/低字節(jié) c0=read_byte();/高字節(jié) ow_reset(); write_byte(0xCC); write_byte(0x44); / 再次開始 cc=c0*256.0+c1;/ 18b20輸出量的直接計算值 if (c00xf8) flag=1;cc=cc+1;else flag=0;

29、cc1=cc*0.0625; /計算出溫度值 cc2=cc1*100;/溫度值放大100倍,放在整型變量中便于取數字c0=(c04; temper=c0|c1;/溫度值整數部分delay(1000);/用于PID的測量溫度值 return;void fbusy()/檢查忙函數(1602)P1 = 0xff;RS = 0;RW = 1;EN = 1;EN = 0;while(P1 & 0x80)EN = 0;EN = 1;void wc51r(uchar j)/寫命令函數(1602) fbusy();EN = 0;RS = 0;RW = 0;EN = 1;P1 = j;EN = 0;void w

30、c51ddr(uchar j)/寫數據函數(1602) fbusy();/讀狀態(tài);EN = 0;RS = 1;RW = 0;EN = 1;P1 = j;EN = 0;void init()/1602初始化wc51r(0x01); /清屏wc51r(0x38); /使用8位數據,顯示兩行,使用5*7的字型wc51r(0x0c); /顯示器開,光標開,字符不閃爍wc51r(0x06); /字符不動,光標自動右移一格void display(void) /1602顯示程序1(初始化顯示)uchar k;delay(10); init();wc51r(0x80); /寫入顯示緩沖區(qū)起始地址為第1行第1

31、列for (k=0;k10;k+)/第一行顯示提示信息Set temp: wc51ddr(buff1k);for (k=0;k2;k+) wc51ddr(set_ck);/顯示設定的溫度wc51r(0xc0); /寫入顯示緩沖區(qū)起始地址為第2行第1列for (k=0;k10;k+) /第二行顯示提示信息Cur temp: wc51ddr(buff2k); buff31=cc2/1000+0x30; if ( buff31=0x30) buff31=0x20;/取出十位,轉換成字符,如果十位是0不顯示。 buff32=cc2/100%10+0x30;/取出個位,轉換成字符 buff34=cc2/

32、10%10+0x30;/取出小數點后一位,轉換成字符 if (flag=1) buff30=-;else buff30=+; for (k=0;k6;k+)/第二行顯示溫度 wc51ddr(buff3k); void display2(void) /1602顯示程序2(循環(huán)顯示)uchar k;delay(10);wc51r(0xca);buff31=cc2/1000+0x30;if ( buff31=0x30) buff31=0x20;/取出十位,轉換成字符,如果十位是0不顯示。 buff32=cc2/100%10+0x30;/取出個位,轉換成字符 buff34=cc2/10%10+0x30

33、;/取出小數點后一位,轉換成字符 if (flag=1) buff30=-;else buff30=+; for (k=0;kSetPoint - NextPoint; / 偏差pp-SumError += Error; / 積分dError = pp-LastError - pp-PrevError; / 當前微分pp-PrevError = pp-LastError;pp-LastError = Error;return (pp-Proportion * Error / 比例項+ pp-Integral * pp-SumError / 積分項+ pp-Derivative * dError); / 微分項compare_temper()/溫度比較處理程序 unsigned char i; if(set_tempertemper) if(set_temper-temper1) high_time=100; low_time=0; else for(i

溫馨提示

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

評論

0/150

提交評論