




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、溫度是工業生產和生活中常見的參量之一,及時準確地得到溫度信息并對其進行適當控制的智能化溫度控制系統得到了廣泛應用。本水溫控制系統采用STC89C52單片機為核心,利用DS18B20對溫度進行采樣,實現水溫的實時監測與控制,根據單片機輸入溫度值與系統給定溫度值的比較結果,采用mos管控制加熱器進行升溫、降溫控制,并結合數字PID算法,實現溫度的高精度自動控制,系統具有控制方便、簡單、靈活性高的特點。l 設計并制作一個水溫自動控制系統,控制對象為1升水,容器為搪瓷器皿。水溫可以在一定范圍內設定,并能實現在1070量程范圍內對每一點溫度的自動控制,以保持設定的溫度基本保持不變。l 基本要求:l 1)
2、可鍵盤設定控制溫度值,并能用液晶顯示,顯示最小區分度為0.1;l 2)可以測量并顯示水的實際溫度。溫度測量誤差在0.5 內;l 3)水溫控制系統應具有全量程(1070)內的升溫、降溫功能(降溫可用半導體制冷片、升溫用800W以內的電加熱器);l 4)在全量程內任意設定一個溫度值(例如起始溫度15內),控制系統可以實現該給定溫度的恒值自動控制。控制的最大動態誤差4,靜態誤差1,系統達到穩態的時間15min(最少兩個波動周期)。水溫控制系統以STC89C52單片機作為控制核心,采用開關控制和PID控制算法相結合,通過控制單位時間內加熱時間所占的比例(即控制波形的占空比)來控制水的加熱速度,實現對1
3、L水的全量程(1070)內的升溫、降溫功能的自動控制。根據設計要求系統可劃分為控制模塊、溫度測量模塊、水溫調節模塊、鍵盤輸入模塊、顯示電路模塊等。系統原理框圖如圖12-1所示:圖12-1 水溫控制系統原理框圖STC 89C52首先寫命令給DS18B20, DS18B20開始轉換數據,將轉換后的溫度數據送入89C52進行處理,處理后在液晶屏上實時顯示。并將實際測量溫度值與鍵盤設定值進行比較,根據比較結果進行溫度調節,當溫差比較大時采用開關量調節,既全速加熱和制冷,當溫差小時采用PID算法進行調節,最終達到溫度得穩定控制。其中,加熱采用內置(水中)電阻絲實現,熱量直接與水傳遞,加熱效果好,控溫方便
4、;降溫采用半導體制冷片實現。其體積小,安裝簡單,易于控制,價格便宜,可短時間內反復啟動。但其制冷速率不高,所以設計中配套散熱風扇以達到快速降溫的目的。l 實際溫度控制系統,常采用開關控制或數字PID控制方式。開關控制的特點是可以使系統以最快的速度向平衡點靠近,但在實際應用卻很容易造成系統在平衡點附近振蕩,精度不高;而數字PID控制具有穩態誤差小特點,實用性廣泛的特點,但誤差較大時,系統容易出現積分飽和,從而份致系統出現很大的超調量,甚至出現失控現象。因此,本設計將開關控制,防積分飽和、防參數突變微分飽和等方法溶入PID控制算法組成復合式數字PID控制方法,集各種控制策略的優點,既改善了常規控制
5、的動態過程又保持了常規控制的穩態特性。l 控制算法的確定l 溫度控制過程為:當水溫溫差大時,采用開關控制方式迅速減小溫差,以縮短調節時間;當溫差小于某一值后采用PID控制方式,以使系統快速穩定并保持系統無靜態誤差。在這種控制方法中, PID控制在較小溫差時開始進入,這樣可有效避免數字積分器的飽和。PID參數和被控制對象關系密切,要精確得到被控對象模型比較困難,為此,采用離線模糊整定的方法來確定PID參數,即給出一組PID參數的初值,測得相應的數據,按使這個量減小的方向調節PID參數,用整定后的參數控制該系統,并根據輸出的調節時間、超調量及穩態誤差,調節PID參數,如此反復,求得一組使系統性能最
6、優的PID參數。復合PID控制系統方框圖如圖12-2所示。根據設計要求,系統對1L凈水進行加熱或降溫處理,根據水的對象特性,會出現慣性溫度誤差問題,原因如下:溫度控制器采用發熱絲對水進行加熱。發熱絲通電加熱時,內部溫度很高。當容器內水溫升高至設定溫度時,溫度控制器發出信號停止加熱。但這時發熱絲的溫度會高于設定溫度,發熱絲還將繼續對對水進行加熱,導致水的溫度還會繼續上升幾度,然后才開始下降。當水溫下降到設定溫度的下限時,溫度控制器又發出加熱信號,開始加熱,但發熱絲要把溫度傳遞到被加熱器件需要一定的時間,導致水溫會繼續下降幾度。所以,為了對水溫實現精確控制,使溫度測量誤差在0.5 內,必須采用PI
7、D模糊控制算法,通過Pvar、Ivar、Dvar(比例、積分、微分)三方面的結合形成一個模糊控制來解決慣性溫度誤差問題。利用數值逼近方法,在采樣時刻t=iT(T為采樣周期,i為正整數)時,PID調節規律可通過下式近似計算。則增量式PID算法的輸出量為:式中,ei、ei-1、ei-2分別為第n次、n-1次和n-2次的偏差值,Kp、Ti、Td分別為比例系數、積分系數和微分系數,T為采樣周期。單片機每隔固定時間 T將現場溫度與用戶設定目標溫度的差值帶入增量式PID算法公式,由公式輸出量決定PWM方波的占空比,后續加熱電路根據此PWM方波的占空比決定加熱功率。現場溫度與目標溫度的偏差大則占空比大,加熱
8、電路加熱功率增大,使溫度的實測值與設定值的偏差迅速減少;反之,二者的偏差小則占空比減小,加熱電路加熱功率減少,直至目標值與實測值相等,達到自動控制的目的。 PID參數的選擇是設計成敗的關鍵,它決定了溫度控制的準確度。由于溫度系統是一個具有較大滯后性的系統,所以本系統的采樣周期定為10秒,加熱周期定為1秒鐘,根據一些文獻提供的經驗值,初步確定Kp=2,Ti=2,Td=0.5,根據公式Ki= Kp*T/ TI ;Kd = Kp * TD /T;計算得出Ki=1,Kd=1;然后,由按鍵對系統設定一個溫度值,在線應用工程整定法中的經驗法對P,I,D各參數進行調整,經驗法是一種湊試法,它通過模擬或閉環運
9、行,觀察調節過程的響應曲線,如果曲線不夠理想,則按某種程序將參數反復湊試,直到調節質量滿意為止。湊試程序通常是先比例后積分,最后加入微分。湊試法整定PID參數的步驟是:1)首先進行P整定。將參數Kp由小而大慢慢變化,直至得到反應快,超調小的響應曲線。若無靜差或靜差在允許范圍內且響應曲線滿意,整定結束,否則繼續下步。2)進行PI整定。略小于Kp值,將Ti由大而小緩慢變化,在保持系統動態性能良好的前提下,消除靜差或是靜差允許范圍內。反復改變Kp,Ti值以求得較好效果,若效果滿意,則整定結束,否則繼續下去。3)進行PID整定。略改變Kp,Ti的值,使Td由小而大緩慢變化,以求得較好的響應曲線和較小的
10、靜差。逐步反復的試湊,直至獲得滿意效果為止。 對于一定的系統,合理的參數組并不唯一,根據一些文獻的實踐經驗,在具體實施PID參數整定時,以下幾個結論比較實用:1)比例系數Kp是PID調節中最關鍵的一個參數,Kp增大,系統穩定性增加,但調節靈敏度減弱,一般曲線振蕩頻繁時,要增大Kp,而曲線飄浮繞大彎時,要減小Kp.2)積分時間常數Ti主要起消除靜差的作用,減小Ti,消除靜差快,但穩定性減小,一般曲線偏離恢復慢時,減小Ti,而曲線波動周期長時,再增大Ki。3)微分時間常數Td是加速過程的有力調節,在加速過渡過程,應增加Td,Td不宜過小,也不宜太大,Td一般選Ti的四分之一為最佳。根據以上調節的步
11、驟及調節的方法及經驗,經過反復的試驗做后得到最終的P,I,D的參數為Kp=30,Ki=5,Kd=0.水溫控制系統的硬件電路主要包括:主控電路、溫度采集電路、溫控電路和顯示電路等,下面依次對各部分進行設計。12.4.1 主控電路主控電路采用STC89C52單片機作為系統控制器,結合數字PID算法完成對溫度測量信號的接收、處理,控制加熱器和制冷片,使水溫控制達到設計要求。主控電路包括STC89C52最小系統和鍵盤電路兩部分,STC89C52最小系統在上一章中已介紹,這里不再贅述。本設計鍵盤采用RF-X1開發板上的6個獨立按鍵中的4個,各按鍵經上拉電阻分別接到單片機的P3.2、P3.3、P3.4、P
12、3.5口上,起到確認、選擇、上調和下調的作用,每按上調或下調鍵一次,設定溫度值加1或減1。電路圖如圖12-3所示。EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1STC89C52S4S1S2S3S19D94001C222pFC322PfC110uFY112MHZR110K+5
13、VR6110K6210KR6310KR6510K+5VP32P33P34P3612.4.2 溫度采集電路本系統采用DS18B20單總線可編程溫度傳感器來實現溫度的采集和轉換,溫度以912位數字量讀出,可以直接與單片機進行連接,無需外部器件和電源,大大簡化了電路的復雜度。DS18B20應用廣泛,測溫范圍為-55+125oC,溫度數字量轉換快,性能可以滿足題目的設計要求。DS18B20的測溫電路如圖12-4所示。圖12-4 DS18B20溫度采集電路12.4.3 溫度控制電路溫度控制電路采用加熱器和制冷片對1L水實現加熱和降溫,具體電路如圖12-5所示。當實測溫度高于設定溫度時,單片機P0.2腳輸
14、出低電平,光耦管導通輸出高電平,進入LM393管腳比較整形,濾除高次諧波,輸出高電平,進入Q3和Q4組成的推挽電路,Q3導通Q4截止,輸出低電平,晶閘管導通,驅動制冷片降溫。當實測溫度低于設定溫度時,P0.3腳輸出低電平,驅動加熱器對水溫進行加熱,工作原理與降溫驅動相同,這里不再贅述。GND1GND3DQ2U2DS18B20R574.7K+5VP35圖12-5 加熱和制冷驅動電路12.4.4 顯示電路顯示電路采用LCD12864液晶模塊顯示系統的設定溫度和實測溫度。LCD12864液晶共有20個引腳,管腳名稱及功能如表12-1所示。本系統選用單片機P1口作為數據輸出端與LCD12864的數據端
15、(DB0DB7)相連,進行水溫數據傳輸;P20接串并行模式方式位RS;P21接并行的讀寫方式位R/W;P22接并行使能端口E;P23接并/串行接口選擇位PSB;P24接復位端口RST。具體電路圖如圖12-6所示。R41KR810KR510KR71KR104.7KR134.7KR1120KR1220KR31KR21KU3U4D1D2R910KR610K1234D3BRIDGE1M2RF470M1RF470Q1MPS8050Q3MPS8050Q4MPS8550Q2MPS855032184U1ALM39332184U2ALM39321CON2電熱絲500W+5V+5V+5V+12V+12V+12V
16、150WSGND220V/50HzP02P03引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VCC-模塊的電源正端3V0-LCD驅動電壓輸入端4RS(CS)H/L并行的指令/數據選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數據口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數據08DB1H/L數據19DB2H/L數據210DB3H/L數據311DB4H/L數據412DB5H/L數據513DB6H/L數據614DB7H/L數據715PSBH/L并/串行接口選擇:H-并行;L-串行16NC 空腳17/RETH/L復位 低電平有效18NC 空腳19
17、LED_A-背光源正極(LED+5V)20LED_K-背光源負極(LED-0V)表12-1 CA12864K引腳分布圖12-6 LCD12864液晶顯示電路系統的軟件設計應用C語言,采用模塊化對單片機進行編程實現各項功能。主要包括:PID控制程序、按鍵子程序、溫度采集子程序、溫度比較子程序和液晶顯示程序。12.5.1 主程序設計系統上電初始化后,首先進行按鍵掃描,若有按鍵按下,則讀取按鍵值,更新設定溫度。將實測溫度與設定溫度進行比較,若實測溫度與設定溫度差值大于2C,則對水進行全速加熱或降溫;若實測溫度與設定溫度差值小于2C,則調用PID子程序,對水溫進行微調,達到設計要求。系統主程序流程圖如
18、圖12-7所示。12.5.2 PID控制程序PID控制就是按設定值與測量值之間偏差的比例、偏差的積累和偏差變化的趨勢進行控制。它根據采樣時刻的偏差值計算輸出控制量的增量,調節控制信號的導通時間來控制加熱電路和冷卻電路的工作。當采樣周期相當短時,可以用求和代替積分,用差商代替微分。PID控制子程序如下:/*PID算法*/unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint ) unsigned int dError,Error; Error = pp-SetPoint - NextPoint; / 偏差pp-SumError +
19、= Error; / 積分dError = pp-LastError - pp-PrevError; / 當前微分pp-PrevError = pp-LastError; pp-LastError = Error; return (pp-Proportion * Error/比例+ pp-Integral * pp-SumError /積分項+ pp-Derivative * dError); / 微分項/*/12.5.3 按鍵子程序本系統采用四個按鍵,完成溫度的設定。當選擇鍵K1每按下一次,K1num加1,根據K1num值選擇對溫度值的百位(預留)、十位、個位進行數值調節。每按一次按鍵K2,
20、對應位數值加1,每按一次按鍵K1,對應位數值減1,并將設定溫度值寫到液晶顯示器的相應位置。按鍵子程序如下:/*按鍵子程序*/void sheding()if(k1=0)delay1(10);if(k1=0) /按鍵K1按下while(!k1);/按鍵K1抬起write_com(0 x0f);write_com(0 x94);k1num+;switch(k1num)case 1:write_com(0 x0f);write_com(0 x94);/液晶顯示位置,十位break;case 2: write_com(0 x95);/液晶顯示位置,個位break;case 3: write_com(0
21、 x96);/液晶顯示位置,小數位break;case 4: k1num=0;write_com(0 x0c);/清零break;if(k1num!=0)/返回/溫度值加處理:if(k2=0) /按鍵K2按下delay1(10);if(k2=0) while(!k2);switch(k1num)case 1: shi+;if(shi=10)shi=0;a=shi;/十位加1,到10清零write_com(0 x94);write_date(tableshi);write_com(0 x94);break;case 2: ge+;if(ge=10)ge=0;b=ge;/個位加1,到10清零 wr
22、ite_com(0 x95);write_date(tablege);write_com(0 x95);break;case 3: xs+;if(xs=10)xs=0;c=xs;/小數位加1,到10清零write_com(0 x96);write_date(.);write_date(tablexs);write_com(0 x96);/在液晶對應位置畫點break;/溫度值減處理:if(k3=0) delay1(10);if(k3=0)while(!k3);switch(k1num)case 1:shi-;if(shi=-1)shi=9;a=shi;write_com(0 x94);writ
23、e_date(tableshi);write_com(0 x94);break;case 2:ge-;if(ge=-1)ge=9;b=ge; write_com(0 x95); write_date(tablege);write_com(0 x95);break;case 3:xs-;if(xs=-1)xs=9;c=xs; write_com(0 x96);write_date(.);write_date(tablexs);write_com(0 x96);break;/*/12.5.4 DS18B20溫度采集子程序系統采用DS18B20對1L水的溫度進行采集。首先根據DS18B20的工作時序
24、對其進行初始化,并對DS18B20內部寄存器讀寫操作進行定義。系統工作時,單片機讀取DS18B20內部寄存器的二進制數值,將其轉化為十進制的真實溫度值。DS18B20溫度采集子程序如下:/* DS18B20溫度采集子程序*/void init_DS18B20()/初始化uchar x=0;DS18B20 = 1; /DQ復位delay(8); /稍做延時DS18B20 = 0; /單片機將DQ拉低delay(80); /精確延時 大于 480usDS18B20 = 1; /拉高總線delay(14);x=DS18B20; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗delay(20
25、);uchar read_onechar()/讀一個字節uchar i=0;uchar date = 0;for (i=8;i0;i-)DS18B20 = 0; date=1; /寄存器右移DS18B20 = 1; if(DS18B20)date|=0 x80;delay(4);return(date);void write_onechar(uchar date)/寫一個字節uchar i=0;for (i=8; i0; i-)DS18B20 = 0;DS18B20 = date&0 x01;delay(5);DS18B20 = 1;date=1;uint read_temp()/讀取
26、溫度uchar a=0;uchar b=0;uint t=0;float tt=0;init_DS18B20();write_onechar(0 xcc); / 跳過讀序號列號的操作write_onechar(0 x44); / 啟動溫度轉換init_DS18B20();write_onechar(0 xcc); /跳過讀序號列號的操作write_onechar(0 xbe); /讀取溫度寄存器a=read_onechar(); /連續讀兩個字節數據 /讀低8位 b=read_onechar(); /讀高8位t=b;ttemper) /是否設置的溫度大于實際溫度 if(set_temper-t
27、emper2) /設置的溫度比實際的溫度是否是大于2度 high_time=100; /如果是,則全速加熱low_time=0; else /如果是在0.8到2度范圍,則開始降溫 if(set_temper-temper0.8)high_time=0; low_time=100;else /如果溫差小于0.8度,運行PID計算for(i=0;i10;i+) s=read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time=100) high_
28、time=(unsigned char)(rout/1000); elsehigh_time=100; low_time= (100-high_time); else if(set_temper=temper) /是否設置的溫度小于實際溫度 if(set_temper-temper0) high_time=0; low_time=100; /全速降溫 else /實際溫度大于設定溫度,馬上開啟PID計算 for(i=0;i10;i+) s=read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform
29、 PID Interation if (high_time100) high_time=(unsigned char)(rout/10000); elsehigh_time=0; low_time= (100-high_time); /*/12.5.6 液晶顯示程序液晶顯示器用于顯示水溫的實際溫度和設定溫度。首先對LCD12864進行初始化,并讀取控制器當前狀態,判斷是否準備好(空閑)。然后向液晶模塊寫入指令代碼,進行顯示準備,將要水溫以十六進制代碼的形式送入液晶顯示緩沖區,最后利用讀顯示數據指令控制液晶模塊在相應位置顯示水溫數據。液晶顯示程序如下:/*LCD12864初始化*/void in
30、it_lcd()/lcd_psb=1;write_com(0 x34);/擴充指令集delay1(2);write_com(0 x30);/基本指令集delay1(2);write_com(0 x02);/顯示歸位delay1(2);write_com(0 x01);/清屏顯示delay1(2);write_com(0 x0c);/顯示狀態開關delay1(2);write_com(0 x06);/顯示光標移動設置delay1(2);/*寫數據*/void write_date(uchar date)read_busy();lcd_rs=1;delay(5);lcd_rw=0;delay(5)
31、;lcd_date=date;lcd_en=0;delay(5);lcd_en=1;delay(5);lcd_en=0;delay(5);/*寫指令*/void write_com(uchar com)read_busy();lcd_rs=0;delay(5);lcd_rw=0;delay(5);lcd_date=com;lcd_en=0;delay(5);lcd_en=1;delay(5);lcd_en=0;delay(5);/*判斷忙閑狀態*/uchar read_busy()lcd_date=0 xff;lcd_rs=0;delay(5);lcd_rw=1;delay(5);lcd_en=1;delay(5);while(lcd_date&bus
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預應力混凝土軸心受拉構件
- 統編版(2024)五年級上冊搭石教案及反思
- 語文必修 下冊1.2 齊桓晉文之事教案及反思
- 小學信息技術四年級上冊第13課《即時通信真便捷》教學設計
- 五年級語文下冊 第二單元 5 草船借箭教學設計 新人教版
- 四年級品德與社會上冊 公共場所拒絕危險教學設計 人教新課標版
- 商務中心辦公桌椅采購合同
- 人力行政制度培訓
- 中外合作辦學合同樣本
- 會員卡買賣合同范本
- 泌尿外科護理新進展
- 環衛保潔服務應急預案
- 2025年廣東佛山市高三一模高考政治試卷試題(含答案詳解)
- 2024年中國藏語系高級佛學院招聘考試真題
- 二年級下冊道德與法治第8課《安全地玩》說課稿說課稿(第一課時)
- DBJ33T 1271-2022 建筑施工高處作業吊籃安全技術規程
- 2024年國家公務員考試行測真題附解析答案
- 2023年吉林省松原市中考物理一模試卷
- 學校聘用教師勞動合同書5篇
- 2024年07月山東興業銀行濟南分行濟南管理部招考筆試歷年參考題庫附帶答案詳解
- 創新創業基礎知到智慧樹章節測試課后答案2024年秋哈爾濱理工大學
評論
0/150
提交評論