PID溫度控制器_第1頁
PID溫度控制器_第2頁
PID溫度控制器_第3頁
PID溫度控制器_第4頁
PID溫度控制器_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄一、設計內容11.1溫度控制11.2設計方案1二、軟件設計02.1主程序流程圖02.2 DS18B20實現溫度轉換和溫度數值讀取流程圖02.3顯示流程圖1三、PID控制23.1PID簡介23.2PID控制算法4四、電路設計64.1功能模塊設計64.2電路連接設計74.2.1溫度檢測電路74.2.2繼電器控溫電路74.2.3外部電路8參考文獻9附錄 PID溫度控制器程序10一、設計內容1.1溫度控制本設計以水為測量對象,溫度測量電路接收傳感器的信號,并將模擬信號通過模/數轉換器轉換為數字信號,送入單片機系統(tǒng),與預設的溫度對比,通過一定的控制算法,控制繼電器的通斷,從而控制加熱器的工作,使得

2、水溫維持在設定的溫度。溫度控制算法精確控制溫度加熱,以溫度最小為優(yōu)化目標。溫度是工業(yè)控制對象的主要的被控參數之一,如冶金,機械,食品,化工各類工業(yè)中廣泛使用的各種加熱爐,熱處理爐,反應爐等。在過去多是采用常規(guī)的模擬調節(jié)器對溫度進行控制,本設計采用了單片微型機對溫度實現自動控制。1.2設計方案溫度控制系統(tǒng)是一種比較常見和典型的過程控制系統(tǒng)。溫度是工業(yè)生產過程中重要的被控參數之一,當今計算機控制技術在這方面的應用,已使溫度控制系統(tǒng)達到自動化、智能化,比過去單純采用電子線路進行PID調節(jié)的控制效果要好得多,可控性方面也有了很大的提高。溫度是一個非線性的對象,具有大慣性的特點,在低溫段慣性較大,在高溫

3、段慣性較小。對于這種溫控對象,一般認為它具有以下的傳遞函數形式:這是傳統(tǒng)的二位式模擬控制方案,其基本思想與方案一相同,但由于采用上下限比較電路,所以控制精度有所提高。這種方法還是模擬控制方式,因此也不能實現復雜的控制算法使控制精度做得較高,而且不能用數碼管顯示,對鍵盤進行設定。采用89C51單片機系統(tǒng)來實現。單片機軟件編程靈活、自由度大,可用軟件編程來實現各種控制算法和邏輯控制。單片機系統(tǒng)可以使用數碼管來顯示水溫的實際值,能用鍵盤輸入設定值。選用了AT89C51芯片,不需要外擴展存儲器,可使系統(tǒng)整體結構更為簡單。采用以單片機為控制核心的控制系統(tǒng),尤其對溫度控制,可達到模擬控制所達不到的效果,并

4、且實現顯示和鍵盤設定功能,大大提高了系統(tǒng)的智能化。這也使得系統(tǒng)所測得結果的精度大大提高。AT89C51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。而在眾多的51系列單片機中,要算 ATMEL 公司的AT89C51更實用,也是一種高效微控制器,因為它不但和8051指令、管腳完全兼容,而且其片內的4K程序存儲器是FLASH工藝的,這種工藝的存儲器,用戶可以用電的方式達到瞬間擦除、改寫。而這種單片機對開發(fā)設備的要求非常低,開發(fā)時間也能大大縮短。DS18B20是一線式數字溫度傳感器,它具有微型化、低功耗、高性能抗干擾能力、強易配處理器等優(yōu)點,特別適合用于

5、構成多點溫度測控系統(tǒng),可直接將溫度轉化成串行數字信號(按9位二進制數字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片。它具有獨特的單總線接口方式,僅需使用1個端口就能實現與單片機的雙向通訊。采用數字信號輸出提高了信號抗干擾能力和溫度測量精度。它的工作電壓使用范圍寬3.05.5 V,可以采用外部供電方式,也可以采用寄生電源方式,即當總線DQ為高電平時,竊取信號能量給DS18B20供電。它還有負壓特性,電源極性接反時,DS18B20不會因接錯線而燒毀,但不能正常工作??梢酝ㄟ^編程而實現912位的溫度轉換精度設置。設定的分辨率越高,所需要的溫度數據轉換時間就越長,在實際應用中要將分辨率和轉換時

6、間權衡考慮。RS-232接口是個人計算機上的通訊接口之一,是1970年由美國電子工業(yè)協會(EIA)聯合貝爾系統(tǒng)、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”。該標準規(guī)定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內容加以規(guī)定,還對各種信號的電平加以規(guī)定。隨著設備的不斷改進,出現了代替DB25的DB9接口。二、軟件設計2.1主程序流程圖系統(tǒng)的主程序流程圖如圖 2-1 所示,當有信號輸入時,主程序啟動,根據內部設定的條件逐步運行,達到設計目的。開始初始化DS18B20溫度

7、讀取模塊溫度值傳送溫度值處理比較設定溫度值與實際溫度值是否小于?PID控制運算模塊繼電器控制模塊YN圖2-1 主程序流程圖2.2 DS18B20實現溫度轉換和溫度數值讀取流程圖圖2-2為DS18B20實現溫度轉換和溫度數值讀取流程圖,用于系統(tǒng)的溫度轉換和溫度數值的讀取。開始初始化DS18B20應答脈沖發(fā)起Skip Rom命令發(fā)起Convert T命令延時1秒等待溫度轉換完成應答脈沖發(fā)起Read Scratchpad命令讀取第1.2字節(jié)即溫度數據YYNN圖2-2 DS18B20實現溫度轉換和溫度數值讀取流程圖2.3顯示流程圖圖2-3為系統(tǒng)的顯示流程圖。主要是通過對傳輸信號進行顯示后,給操作者提供

8、提示。以到達為本系統(tǒng)提供對溫度的顯示和監(jiān)控的目的。串行口初始化向緩沖區(qū)送數據查段碼圖2-3 顯示流程圖開始送顯示結束三、PID控制3.1PID簡介PID控制器是一種線性控制器,它根據給定值廠r(t)與實際輸出值y(t)構成控制偏差e(t): (3.1)將偏差的比例(Proportional)、積分(Integral)和微分(Derivative)通過線性組合構成控制量,對被控對象進行控制,因此稱為PID控制。PID控制系統(tǒng)原理如圖 3-1 所示。圖 3-1 PID 控制系統(tǒng)原理圖其控制規(guī)律為: (3.2)或者寫成傳遞函數的形式為: (3.3)式中 :比例系數:積分時間常數:微分時間常數PID控

9、制器各校正環(huán)節(jié)的作用如下:(1) 比例環(huán)節(jié)即時成比例地反映控制系統(tǒng)的偏差信號,偏差一旦產生,控制器立即產生控制作用,以減少偏差;(2) 積分環(huán)節(jié)主要用于消除靜差,提高系統(tǒng)的無差度。積分作用的強弱取決于積分時間常數,越大,積分作用越弱,反之則越強;(3) 微分環(huán)節(jié)能夠反映偏差信號的變化趨勢(變化速率),并且能在偏差信號值變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減少調節(jié)時間。3.2PID控制算法由于計算機控制是一種采樣控制系統(tǒng),它只能根據采樣時刻的偏差值計算控制量。因此,(3.2)式中的積分和微分項不能直接使用,需要進行離散化處理?,F令為采樣周期,以一系列的采樣時

10、刻點代表連續(xù)時間,以累加求和近似代替積分,以一階后向差分近似代替微分,做如下的近似變換: (3.4) (3.5) (3.6)其中,為采樣周期,為系統(tǒng)第次采樣時刻的偏差值,e()為系統(tǒng)第()次采樣時刻的偏差值,為采樣序號,=0,1,2,。將上面的(3.5)式和(3.6)式代入(3.2)式,則可以得到離散的PID表達式: (3.7)如果采樣周期足夠小,該算式可以很好的逼近模擬PID算式,因而使被控過程與連續(xù)控制過程十分接近。通常把(3.7)式稱為PID的位置式控制算法。若在(3.7)式中,令: (稱為積分系數) (稱為微分系數)則 (3.8)(3.8)式即為離散化的位置式PID控制算法的編程表達式

11、??梢钥闯?,每次輸出與過去的所有狀態(tài)都有關,要想計算,不僅涉及和,且須將歷次相加,計算復雜,浪費內存。下面,推導計算較為簡單的遞推算式。為此,對(3.8)式作如下的變動:考慮到第次采樣時有 (3.9)使(3.8)式兩邊對應減去(3.9)式,得 整理后得 (3.10)其中,(3.10)式就是PID位置式得遞推形式。如果令 則 式中的、同(3.10)式中的一樣。因為在計算機控制中,、都可以事先求出,所以,實際控制時只須獲得、三個有限的偏差值就可以求出控制增量。由于其控制輸出對應執(zhí)行機構的位置的增量,故(3.11)式通常被稱為PID控制的增量式算式。增量式PID控制算法與位置式控制算法比較,有如下的

12、一些優(yōu)點: (1) 位置式算法每次輸出與整個過去狀態(tài)有關,算式中要用到過去偏差的累加值,容易產生較大的累計誤差。而增量式中只須計算增量,算式中不需 要累加,控制增量的確定僅與最近幾次偏差采樣值有關,當存在計算誤差或者精度不足時,對控制量的影響較小,且較容易通過加權處理獲得比較好的控制效果;(2) 由于計算機只輸出控制增量,所以誤動作影響小,而且必要時可以用邏輯判斷的方法去掉,對系統(tǒng)安全運行有利;(3) 手動一自動切換時沖擊比較小。鑒于以上優(yōu)點,本系統(tǒng)的控制算法即采用增量式的PID控制算法。四、電路設計4.1功能模塊設計數字溫度傳感器DS18B20從設備不同的位置采集溫度,并將數字信號送入AT8

13、9C51單片機系統(tǒng),單片機獲取采集的溫度值,經過處理后得到當前環(huán)境中一個比較穩(wěn)定的溫度值,根據當前設定的溫度上下限值,再通過PID控制算法控制繼電器的通斷,從而控制加熱器的工作,使得水溫維持在設定的溫度。當采集的溫度經處理后沒有達到設定的溫度值時,單片機控制繼電器開啟升溫設備(加熱器)。圖4-1 單片機電路圖4.2電路連接設計4.2.1溫度檢測電路溫度檢測用DS18B20溫度傳感器,DS18B20是單線數字式測溫芯片,它能在現場采集溫度數據,并將溫度數據直接轉換成數字量,并將數字信號送入AT89C51單片機系統(tǒng)。圖4-2為溫度檢測電路圖。圖4-2溫度檢測電路圖4.2.2繼電器控溫電路當DS18

14、B20采集到溫度后,會將溫度值傳送到單片機。單片機獲取采集的溫度值,經過處理后得到當前環(huán)境中一個比較穩(wěn)定的溫度值,根據當前設定的溫度上下限值,再通過PID控制算法控制繼電器的通斷,從而控制加熱器的工作,使得水溫維持在設定的溫度。圖4-3繼電器控溫電路圖4.2.3外部電路啟動、復位電路用于系統(tǒng)的開始和重置。圖4-4外部電路圖參考文獻1 余錫存主編單片機原理與接口技術西安電子科技大學出版社,2001,72 劉金琨先進PID控制及其MATLAB仿真M北京:電子工業(yè)出版社,20033 曹巧媛主編單片機原理及應用(第二版)M北京:電子工業(yè)出版社,20024 康華光主編.電子技術基礎M北京:高等教育出版社

15、,1998,121-1425 何立民單片機高級教程應用M北京:北京航空航天大學出版社,2000,3-146 金發(fā)慶等編傳感器技術與應用M北京機械工業(yè)出版社,20027 秦實宏等單片機原理與應用技術M北京:中國水利水電出版社,2005,27-488 陳忠華基于單片機的溫度智能控制系統(tǒng)的設計與實現D大連理工大學碩士學位論文,2006附錄 PID溫度控制器程序#pragma db code#include#include INTRINS.H#define BUSY1 (DQ1=0) /定義busy信號sbit DQ1=P35; /定義18B20單總線引腳void ds_reset_1(void);

16、/聲明18B20復位函數void wr_ds18_1(char dat); /聲明18B20寫入函數void time_delay(unsigned char time); /聲明延時函數int get_temp_1(void); /聲明18B20讀入溫度函數void delay(unsigned int x); /聲明延時函數void read_ROM(void); /聲明18B20讀ROM函數int get_temp_d(void); /聲明獲取溫度函數void ds_init(void); /聲明18B20初始化函數void ds_getT(void); /聲明18B20獲得溫度顯示值函

17、數void hot();/*以下定義各種變量*/unsigned char ResultSignal;int ResultTemperatureLH,ResultTemperatureLL,ResultTemperatureH;unsigned char ROM8;unsigned char idata TMP; unsigned char idata TMP_d; unsigned char f; unsigned char rd_ds18_1();unsigned int TemH,TemL; /溫度的整數部分和小數部分unsigned int count;unsigned int tt1

18、,tt2; /定義小數計算部分void main()ds_init(); /18B20初始化 while(1) ds_getT(); /使用該函數獲得溫度,整數部分存儲到TemH,小數部分存儲到count的低8位if(TMP_dtt1) hot(); /*18B20初始化函數*/void ds_init(void)unsigned int k=0;ds_reset_1();ds_reset_1(); /resetwr_ds18_1(0xcc); /skip rom_nop_();wr_ds18_1(0x7f);ds_reset_1();wr_ds18_1(0xcc);_nop_(); wr_d

19、s18_1(0x44);for(k=0;k11000;k+)time_delay(255); ds_reset_1();void ds_getT(void)wr_ds18_1(0xcc);wr_ds18_1(0xbe);TemH=get_temp_1();TemL=get_temp_d();TemH&=0x00ff;TemL&=0x00ff;count=(TemH*256+TemL)*6.25;/*延時程序,單位us,大于10us*/void time_delay(unsigned char time) time=time-10; time=time/6; while(time!=0)time

20、-;/*/* reset ds18b20 */*/void ds_reset_1(void) unsigned char idata count=0; DQ1=0; time_delay(240);time_delay(240);DQ1=1; return;void check_pre_1(void) while(DQ1); while(DQ1); time_delay(30);void read_ROM(void)int n;ds_reset_1(); check_pre_1(); wr_ds18_1(0x33); for(n=0;n8;n+)ROMn=rd_ds18_1(); /*/* R

21、ead a bit from 1820位讀取 */*/bit tmrbit_1(void) idata char i=0; bit dat; DQ1=0;_nop_(); DQ1=1; _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); dat = DQ1; time_delay(50); return dat;/*/* read a bety from ds18b20 字節(jié)讀取 */*/unsig

22、ned char rd_ds18_1() unsigned char idata i,j,dat=0; for(i=1;i=8;i+) j=tmrbit_1(); dat=(j(i-1)|dat; return dat;/*/* write a bety from ds18b20 寫字節(jié) */*/void wr_ds18_1(char dat) signed char idata i=0; unsigned char idata j; bit testb; for(j=1;j1; if(testb) DQ1=0; _nop_(); _nop_(); DQ1=1; time_delay(60);

23、 else DQ1=0; time_delay(50); DQ1=1; _nop_(); _nop_(); int get_temp_1(void) unsigned char idata a=0,b=0; unsigned char idata i; EA=0; ds_reset_1(); check_pre_1(); wr_ds18_1(0xcc); wr_ds18_1(0x44); while(BUSY1); ds_reset_1(); check_pre_1(); wr_ds18_1(0xcc); wr_ds18_1(0xbe); a=rd_ds18_1(); b=rd_ds18_1(); i=b; /*若b為1則為負溫 */ i=(i4); if(i=0) f=0; TMP=(a4)|(b8)TMP=(TMP+1); else f=1;a=a4; b=b4)

溫馨提示

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

評論

0/150

提交評論