單片機(jī)溫度控制_第1頁(yè)
單片機(jī)溫度控制_第2頁(yè)
單片機(jī)溫度控制_第3頁(yè)
單片機(jī)溫度控制_第4頁(yè)
單片機(jī)溫度控制_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 引 言22 系統(tǒng)方案論證32.1 設(shè)計(jì)方案32.2 方案的論證33 系統(tǒng)硬件電路設(shè)計(jì)43.1 電路總體原理框圖43.2 單片機(jī)的選擇43.3 溫度采集電路的設(shè)計(jì)53.4 鍵盤接口電路的設(shè)計(jì)63.5 顯示接口電路的設(shè)計(jì)63.6 加熱控制電路的設(shè)計(jì)73.7 電源及報(bào)警指示電路的設(shè)計(jì)73.8 總電路的設(shè)計(jì)84 軟件系統(tǒng)的設(shè)計(jì)104.1 主程序模塊104.2 功能實(shí)現(xiàn)模塊124.3 運(yùn)算控制模塊12標(biāo)度轉(zhuǎn)換124.3.2 模糊控制算法12控制算法子程序135 系統(tǒng)性能測(cè)試及分析145.1 設(shè)計(jì)所達(dá)到的性能指標(biāo)14 溫控系統(tǒng)的控制精度14 溫度工作波形圖145.2 結(jié)果分析論述155.3 設(shè)計(jì)方案評(píng)

2、價(jià)16優(yōu)點(diǎn)165.3.2 缺點(diǎn)166 結(jié)論17附 錄 118附 錄 2261 引 言隨著國(guó)民經(jīng)濟(jì)的發(fā)展,溫度控制是工業(yè)生產(chǎn)過(guò)程中經(jīng)常遇到的過(guò)程控制,人們需要對(duì)各種加熱爐、熱處理爐、反應(yīng)爐和鍋爐中溫度進(jìn)行監(jiān)測(cè)和控制。特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價(jià)值的。工業(yè)生產(chǎn)中溫度控制具有單向性、時(shí)滯性、大慣性和時(shí)變性的特征,同時(shí)要實(shí)現(xiàn)溫度控制的快速性和準(zhǔn)確性,對(duì)于提高產(chǎn)品質(zhì)量具有很重要的現(xiàn)實(shí)意義。對(duì)于不同場(chǎng)所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測(cè)溫元件、測(cè)溫方法以及對(duì)溫度

3、的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時(shí)效不同,則對(duì)數(shù)據(jù)采集的精度和采用的控制算法也不同。因而,對(duì)溫度的測(cè)控方法要多種多樣。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測(cè)量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機(jī)對(duì)溫度進(jìn)行測(cè)控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來(lái)越顯示出其優(yōu)越性。然而現(xiàn)有的溫度傳感元件大多為模擬器件(熱電耦)體積大、應(yīng)用復(fù)雜、而且不容易實(shí)現(xiàn)數(shù)字化等缺點(diǎn),阻礙了應(yīng)用領(lǐng)域的擴(kuò)展。 實(shí)現(xiàn)恒溫控制的方法有很多,傳統(tǒng)的有利用PLC自適應(yīng)控制加熱絲實(shí)現(xiàn)恒溫控制,還有利用模擬PID調(diào)節(jié)的恒溫控制,其算法需要查表轉(zhuǎn)換。而基于單片機(jī)的控制系統(tǒng),為閉環(huán)系統(tǒng),工作穩(wěn)

4、定性高,控制精度高,利用模糊控制算法1使超調(diào)量大大降低。軟件采用模塊化結(jié)構(gòu),提高了通用性。本設(shè)計(jì)的目的不僅僅使溫度控制本身,主要提供了單片機(jī)外圍電路及軟件包括控制算法設(shè)計(jì)的思想,應(yīng)該說(shuō),這種思想比控制系統(tǒng)本身更為重要。因此本設(shè)計(jì)從實(shí)際應(yīng)用出發(fā)選取了體積小、精度相對(duì)高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機(jī)STC89C52作為主控芯片,液晶顯示屏1602作為顯示輸出,實(shí)現(xiàn)了對(duì)溫度的實(shí)時(shí)測(cè)量與恒定控制。2 系統(tǒng)方案論證對(duì)于溫度的檢測(cè)通常是采用熱敏電阻在通過(guò)A/D(模/數(shù))轉(zhuǎn)換得到數(shù)字信號(hào),但由于信號(hào)的采集對(duì)整個(gè)系統(tǒng)的影響很大,如果采樣精度不高,會(huì)使這個(gè)系統(tǒng)準(zhǔn)確性下降。2.1 設(shè)計(jì)方

5、案對(duì)于溫度控制的方法也有很多:如單片機(jī)控制、PLC控制、模擬PID調(diào)節(jié)器和數(shù)字PID調(diào)節(jié)器等等。而PID調(diào)節(jié)器的算法復(fù)雜,其成本也相對(duì)較高。方案一:利用單片機(jī)實(shí)現(xiàn)恒溫控制利用單片機(jī)實(shí)現(xiàn)溫度恒定的控制,系統(tǒng)主要包括現(xiàn)場(chǎng)溫度采集、實(shí)時(shí)溫度顯示、加熱控制參數(shù)設(shè)置、加熱電路控制輸出、報(bào)警裝置和系統(tǒng)核心STC89C52單片機(jī)作為微處理器。溫度采集電路以數(shù)字形式將現(xiàn)場(chǎng)溫度傳至單片機(jī),單片機(jī)結(jié)合現(xiàn)場(chǎng)溫度與用戶設(shè)定的目標(biāo)溫度,按照已經(jīng)編程固化的模糊控制算法計(jì)算出實(shí)時(shí)控制量。以此控制量控制場(chǎng)效應(yīng)管開通和關(guān)斷,決定加熱電路的工作狀態(tài),使溫度逐步穩(wěn)定于用戶設(shè)定的目標(biāo)值。在溫度達(dá)到設(shè)定的目標(biāo)溫度后,由于冷卻溫度降低,

6、單片機(jī)通過(guò)檢測(cè)到的溫度與設(shè)置的目標(biāo)溫度比較,作出相應(yīng)的控制開啟加熱片。方案二:利用PLC實(shí)現(xiàn)恒溫控制 這用恒溫控制,采用PLC控制實(shí)現(xiàn)電熱絲加熱全通、間斷導(dǎo)通和全斷加熱的自控式方式,來(lái)達(dá)到溫度的恒定。智能型電偶溫度表將置于被測(cè)對(duì)象中,熱電偶的傳感器信號(hào)與恒定溫度的給定電壓進(jìn)行比較,生成溫差,自適應(yīng)恒溫控制電路根據(jù)差值大小控制電路的斷開。2.2 方案的論證對(duì)于方案二,采用的PLC實(shí)現(xiàn)恒溫控制,由于其PLC成本高,且PLC外圍系統(tǒng)配置復(fù)雜,不利于我們的設(shè)計(jì)。由于數(shù)字調(diào)節(jié)和運(yùn)算量大,相反對(duì)于STC89C52單片機(jī)只要選擇合適的參數(shù)對(duì)于溫度的控制精度往往能達(dá)到比較好的效果。對(duì)于方案一,采用單片機(jī)實(shí)現(xiàn)恒

7、溫控制,該方案成本低,可靠性高,抗干擾性強(qiáng),對(duì)于系統(tǒng)動(dòng)態(tài)性能與穩(wěn)定性要求不是很高的場(chǎng)合時(shí)非常合適的。采用高精度的溫度傳感器:數(shù)字溫度傳感器DS18B20。這種數(shù)字溫度傳感器是DALLAS公司生產(chǎn)的單總線。在這種前提下,通過(guò)單片機(jī)對(duì)偏差進(jìn)行模糊控制運(yùn)算,對(duì)調(diào)節(jié)加熱可達(dá)到控制溫度恒定。綜合各方面的意見(jiàn),本設(shè)計(jì)采用單片機(jī)來(lái)實(shí)現(xiàn)溫度的控制。3 系統(tǒng)硬件電路設(shè)計(jì)3.1 電路總體原理框圖溫度測(cè)量及加熱系統(tǒng)控制的總體結(jié)構(gòu)如圖3-1所示。體統(tǒng)主要包括現(xiàn)場(chǎng)溫度采集、實(shí)時(shí)溫度顯示、加熱控制參數(shù)設(shè)置、加熱電路控制輸出、報(bào)警裝置和系統(tǒng)核心STC89C52單片機(jī)作為微處理器。數(shù)字式溫度傳感器加熱器控制器單片機(jī)顯示器越線

8、報(bào)警鍵盤 圖3-1 恒溫控制系統(tǒng)設(shè)計(jì)方案框圖溫度采集電路以數(shù)字量形式將現(xiàn)場(chǎng)溫度傳至單片機(jī)。單片機(jī)結(jié)合現(xiàn)場(chǎng)溫度與功能要求設(shè)定的目標(biāo)溫度,按照已經(jīng)編程固化的模糊控制算法計(jì)算出實(shí)時(shí)控制量。以此控制量控制MOS管開通和關(guān)斷,決定加熱電路的工作狀態(tài),使水溫逐步穩(wěn)定于要求設(shè)定的目標(biāo)值。在水溫到達(dá)設(shè)定的目標(biāo)溫度后,由于自然冷卻而使其溫度下降時(shí),單片機(jī)通過(guò)采樣回的溫度與設(shè)置的目標(biāo)溫度比較,作出響應(yīng)的控制,開啟加熱器。系統(tǒng)運(yùn)行過(guò)程中的各種狀態(tài)均可由液晶顯示器1602實(shí)時(shí)顯示。3.2 單片機(jī)的選擇用STC 89C52的單片機(jī)作為控制主機(jī)。 之所以選擇89C52作為主機(jī),是因?yàn)?9C52作為51系列單片機(jī)的一種,其

9、使用性能穩(wěn)定,價(jià)格便宜,完全能夠滿足此次設(shè)計(jì)的需求。而且89C52內(nèi)部集成了程序存儲(chǔ)器,可以裝載用戶程序,方便后續(xù)的課程設(shè)計(jì)需要,不像8031因?yàn)橐饨映绦虼鎯?chǔ)器而是電路相對(duì)麻煩了。其實(shí)物圖如圖3-2:圖3-2 STC89C52實(shí)物圖3.3 溫度采集電路的設(shè)計(jì)由于本設(shè)計(jì)是精確控制系統(tǒng),并且有控制范圍上的要求,所以在選擇傳感器上要著重考慮其精度和測(cè)試范圍。AD590和DS18B20都包含一個(gè)可以精確測(cè)量環(huán)境溫度的片內(nèi)溫度傳感器,但AD590是模擬傳感器,需對(duì)溫度模擬信號(hào)進(jìn)行數(shù)字化處理,在調(diào)理和放大信號(hào)時(shí),又會(huì)帶來(lái)新的誤差,影響精度,而DS18B20包含一個(gè)10位AD轉(zhuǎn)換器,是一個(gè)以0.25的分辨

10、力將溫度數(shù)字化的數(shù)字式溫度傳感器,并且其測(cè)溫理論范圍為-55度到125度,因其精確度高,范圍可選這兩大特點(diǎn),故本設(shè)計(jì)的傳感器選為DS18B20。溫度采集電路模塊如圖3-3所示。DS18B20內(nèi)部結(jié)構(gòu)主要有四個(gè)部分組成:1)64為光刻ROM;2)溫度傳感器;3)非易失性溫度報(bào)警觸發(fā)器TH和TL;4)配置寄存器。其中DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端。器件用如下方式從單線通訊線上汲取能量:在信號(hào)線處于高電平期間把能量存儲(chǔ)在內(nèi)部電容里,在信號(hào)線處于低電平期間消耗電容上的電能工作,直到高電平到來(lái)再給寄生電源(電容)充電。DS18B20也可以用外部5V電源供電。圖3-

11、3 溫度采集電路DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,用12位存儲(chǔ)溫值度,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號(hào)位,負(fù)溫度S=1,正溫度S=0。如下圖3-4為18B20的溫度存儲(chǔ)方式:圖3-4 18B20的溫度存儲(chǔ)方式這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)得的數(shù)值乘以0.0625即可得到實(shí)際溫度。例如:0550H為+85, 0191H為+25.0625, FC90H為-553.4 鍵盤接口電路的設(shè)計(jì)鍵盤采用對(duì)稱排列和外部中斷相結(jié)合的

12、方法,圖3-5中各按鍵的功能定義如下表3-1 。其中設(shè)置鍵RET與單片機(jī)的INT0腳相連,KEY1KEY3接單片機(jī)P2口,REST鍵為硬件復(fù)位鍵,與R、C構(gòu)成復(fù)位電路。模塊電路如下圖3-5:表3-1 按鍵功能按 鍵 鍵 名 功 能RESET 復(fù)位鍵 使系統(tǒng)復(fù)位RET 設(shè)置鍵 使系統(tǒng)產(chǎn)生中斷,進(jìn)入設(shè)置狀態(tài)KEY1KEY3 數(shù)字鍵 設(shè)置用戶需要的溫度OK 確定鍵 設(shè)置溫度后確定圖3-5 按鍵模塊接口電路3.5 顯示接口電路的設(shè)計(jì)顯示電路采用字符型液晶顯示模塊,它是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式的LCD2,本設(shè)計(jì)采用的是SMC1602A LCM,其顯示容量162個(gè)字符。模塊電路如下圖3-6

13、:圖3-6 顯示接口電路的設(shè)計(jì)液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3-7是1602的內(nèi)部顯示地址。圖3-7 1602的內(nèi)部顯示地址3.6 加熱控制電路的設(shè)計(jì)用于在閉環(huán)控制系統(tǒng)中對(duì)被控對(duì)象實(shí)施控制,被控對(duì)象為加熱片,采用對(duì)加在電熱片兩端的電壓進(jìn)行通斷的方法進(jìn)行控制,以實(shí)現(xiàn)對(duì)水是否加熱的調(diào)整,從而達(dá)到對(duì)水溫控制的目的。對(duì)加熱片通斷的控制采用MOSFET管控制,它的使用非常簡(jiǎn)單,只要在控制端TTL電平,即可實(shí)現(xiàn)對(duì)MOS管的開關(guān),使用時(shí)完全可以用1.5K電阻接成電

14、壓跟隨器的形式驅(qū)動(dòng)。當(dāng)單片機(jī)的P1.5為高電平時(shí),電阻驅(qū)動(dòng)MOS管導(dǎo)通,接通加熱片工作,當(dāng)單片機(jī)的P1.5為低電平時(shí)MOS管不導(dǎo)通關(guān)斷,加熱片停止工作??刂齐娐穲D如下圖3-8:圖3-8 加熱控制電路3.7 電源及報(bào)警指示電路的設(shè)計(jì)在本系統(tǒng)中我設(shè)計(jì)了越線報(bào)警裝置,控制目標(biāo)溫度范圍。當(dāng)設(shè)定的目標(biāo)溫度線達(dá)到時(shí),需用聲音的形式提醒使用者,此時(shí)報(bào)警器開始發(fā)出報(bào)警聲。在本系統(tǒng)中,當(dāng)溫度低于設(shè)置的最低目標(biāo)溫度或高于設(shè)置的最高目標(biāo)溫度時(shí)報(bào)警器為連續(xù)不斷的滴答滴答叫聲。當(dāng)單片機(jī)P1.7輸出高電平時(shí),三極管導(dǎo)通,報(bào)警器工作發(fā)出報(bào)警聲。P1.7為低電平時(shí)三極管關(guān)斷,報(bào)警器不工作。當(dāng)溫度低于設(shè)置的最低溫度時(shí),溫度傳感

15、器檢測(cè)到實(shí)時(shí)溫度,發(fā)送信息給單片機(jī),P0.4低電平有效,D4為加熱片加熱指示燈;同理,當(dāng)溫度加熱到高于設(shè)置的最高溫度時(shí),P0.6低電平有效,D5為降溫指示燈。D1為檢測(cè)到電源和液晶顯示器共同的顯示燈,高電平有效;D6為檢測(cè)到DS18B20的指示燈,低電平有效;指示燈電路如下圖3-9所示:圖3-9 電源指示燈和報(bào)警指示燈電路3.8 總電路的設(shè)計(jì)恒溫控制的總電路圖如圖3-10:圖3-10 總電路圖的設(shè)計(jì)4 軟件系統(tǒng)的設(shè)計(jì)系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實(shí)現(xiàn)模塊和運(yùn)算控制器模塊。4.1 主程序模塊主程序主要完成加熱控制系統(tǒng)各部件的初始化和實(shí)現(xiàn)各功能子程序的調(diào)用,以及實(shí)際測(cè)量中各個(gè)功能模塊的

16、協(xié)調(diào)在無(wú)外部中斷申請(qǐng)時(shí),單片機(jī)通過(guò)循環(huán)對(duì)外部溫度進(jìn)行實(shí)時(shí)顯示。把設(shè)置鍵作為外部中斷0,以便能對(duì)數(shù)字按鍵進(jìn)行相應(yīng)處理。主程序流程圖如下圖4-1:RAM初始化按恢復(fù)鍵LCD初始化調(diào)設(shè)溫模塊對(duì)采集的溫度進(jìn)行數(shù)據(jù)處理開溫控調(diào)液晶顯示子程序是否設(shè)計(jì)溫度處理后的設(shè)溫=實(shí)溫?處理后的設(shè)溫實(shí)溫?處理后的設(shè)溫實(shí)溫?關(guān)加熱器開加熱器亮綠燈設(shè)溫=實(shí)溫報(bào)警提示是否越上限?是否越下線?報(bào)警報(bào)警開溫控調(diào)設(shè)溫模塊對(duì)采集的溫度進(jìn)行數(shù)據(jù)處理調(diào)液晶顯示子程序比較溫度開始YYYNYNNYYNY圖4-1 主程序流程圖4.2 功能實(shí)現(xiàn)模塊以用來(lái)執(zhí)行對(duì)MOSFET及加熱片的控制。功能實(shí)現(xiàn)模塊主要由溫度比較處理子程序、鍵盤處理子程序、顯示

17、子程序、報(bào)警子程序等部分組成。鍵盤顯示及程序流程圖如下圖4-2:保護(hù)存儲(chǔ)內(nèi)容調(diào)鍵掃子程序調(diào)鍵處理子程序開 始調(diào)液晶顯示程序調(diào)溫度處理子程序調(diào)比較子程序按恢復(fù)鍵返回NYNY有鍵按下?按確定鍵?設(shè)置溫度圖4-2 鍵盤、液晶顯示子程序流程圖4.3 運(yùn)算控制模塊該模塊由標(biāo)度轉(zhuǎn)換3、模糊控制算法及其中用到的乘法子程序。4.3.1標(biāo)度轉(zhuǎn)換式中A為二進(jìn)制的溫度值,A0為DS18B20的數(shù)字信號(hào)線送來(lái)的溫度數(shù)據(jù)。單片機(jī)在處理標(biāo)度轉(zhuǎn)換時(shí)是通過(guò)把DS18B20的信號(hào)線送回的16位數(shù)據(jù)右移4位得到二進(jìn)制的溫度值。其小數(shù)部分通過(guò)查小數(shù)表的形式獲取。4.3.2 模糊控制算法目前溫度控制系統(tǒng)中的控制算法多為PID算法,但

18、PID算法由于微分作用導(dǎo)致高頻干擾大,易引起超調(diào),參數(shù)調(diào)整也麻煩,同時(shí)考慮到水溫控制系統(tǒng)本身有一個(gè)大滯后的特點(diǎn),故本系統(tǒng)選用了目前國(guó)際上較流行的從能量控制的觀點(diǎn)出發(fā),引入模糊控制思想而提出的變參數(shù)控制算法控制。 控制系統(tǒng)在其特性或參數(shù)發(fā)生攝動(dòng)時(shí)仍可使品質(zhì)指標(biāo)保持不變的性能。魯棒性是英文robustness一詞的音譯,也可意譯為穩(wěn)健性。魯棒性原是統(tǒng)計(jì)學(xué)中的一個(gè)專門術(shù)語(yǔ),70年代初開始在控制理論的研究中流行起來(lái),用以表征控制系統(tǒng)對(duì)特性或參數(shù)攝動(dòng)的不敏感性。在實(shí)際問(wèn)題中,系統(tǒng)特性或參數(shù)的攝動(dòng)常常是不可避免的。產(chǎn)生攝動(dòng)的原因主要有兩個(gè)方面,一個(gè)是由于測(cè)量的不精確使特性或參數(shù)的實(shí)際值會(huì)偏離它的設(shè)定值(標(biāo)

19、稱值),另一個(gè)是系統(tǒng)運(yùn)行過(guò)程中受環(huán)境因素的影響而引起特性或參數(shù)的緩慢漂移。因此,魯棒性已成為控制理論中的一個(gè)重要的研究課題,也是一切類型的控制系統(tǒng)的設(shè)計(jì)中所必需考慮的一個(gè)基本問(wèn)題。對(duì)魯棒性的研究主要限于線性定??刂葡到y(tǒng),所涉及的領(lǐng)域包括穩(wěn)定性、無(wú)靜差性、適應(yīng)控制等。魯棒性問(wèn)題與控制系統(tǒng)的相對(duì)穩(wěn)定性和不變性原理有著密切的聯(lián)系,內(nèi)模原理的建立則對(duì)魯棒性問(wèn)題的研究起了重要的推動(dòng)作用。模糊控制算法的基本原理可采用解析式描述為:其中,e, c, k為經(jīng)過(guò)量化和模糊化的控制變量,相應(yīng)的論域分別為溫差(當(dāng)前溫度和目標(biāo)溫度的差值),溫差變化率及控制量(當(dāng)前溫度與上一個(gè)時(shí)刻溫度的差值);k為調(diào)整因子。 其基本思

20、想是通過(guò)調(diào)整k的大小,可改變對(duì)差量和差量變化率的不同加權(quán)程度。在實(shí)際系統(tǒng)中,系統(tǒng)在不同的狀態(tài)下,對(duì)控制規(guī)則中的差量e和差量變化率c有不同的要求。如差量較大時(shí),控制系統(tǒng)的主要任務(wù)是減小溫差,此時(shí)對(duì)差量加權(quán)應(yīng)該大些;當(dāng)差量較小時(shí),控制系統(tǒng)的主要任務(wù)是使系統(tǒng)盡快穩(wěn)定,減小超調(diào),此時(shí)要求在控制規(guī)則中差量變化率加權(quán)大些。 基于這個(gè)思想,我提出了模糊溫度控制方法,在規(guī)定的時(shí)間內(nèi),根據(jù)不同的溫差和目標(biāo)溫度來(lái)改變加熱時(shí)間與休息時(shí)間的在控比,從而達(dá)到控制的目的。算法通過(guò)軟件實(shí)現(xiàn),此算法使系統(tǒng)能自行控制加熱程度,使系統(tǒng)具有無(wú)超調(diào)和恒溫精度高,具有穩(wěn)定性好,控制參數(shù)對(duì)系統(tǒng)的依賴性弱等優(yōu)點(diǎn)。4.3.3控制算法子程序該

21、系統(tǒng)為一溫度控制系統(tǒng),由于無(wú)法確定電爐的物理模型,因而無(wú)法建立其數(shù)學(xué)模型和傳遞函數(shù)。加熱片為一慣性系統(tǒng),我們采用模糊控制的方法,通過(guò)多次溫度測(cè)量模糊計(jì)算當(dāng)用戶設(shè)定目標(biāo)溫度時(shí)需提前關(guān)斷加熱片的溫度,利用加熱片自身的熱慣性使溫度上升到其設(shè)定溫度。每隔5我們進(jìn)行一次溫度測(cè)量,并當(dāng)達(dá)到其溫度差值時(shí)關(guān)斷加熱片記錄下因加熱片的熱慣性而上升的溫度值。從而可以建立熱慣性的溫度差值表,在程序中利用查表法,查出相應(yīng)設(shè)定溫度對(duì)應(yīng)的關(guān)斷溫度。通過(guò)試驗(yàn)數(shù)據(jù)我們可以看出,當(dāng)水溫從0加熱到50這段溫度區(qū)域,其溫度慣性曲線可近似成線性的直線,水溫從50加熱到100這段溫度慣性曲線可近似成另一條線性的直線段。通過(guò)對(duì)設(shè)置的目標(biāo)溫

22、度與溫控系統(tǒng)監(jiān)測(cè)溫度進(jìn)行差值處理就可近似的求出單片機(jī)的提前關(guān)斷溫度。5 系統(tǒng)性能測(cè)試及分析我們的溫度控制系統(tǒng)是基于STC89C52單片機(jī)的設(shè)計(jì)方案,它能實(shí)現(xiàn)顯示當(dāng)前溫度,并能根據(jù)用戶的要求作出相應(yīng)的控制。此系統(tǒng)工作穩(wěn)定性高,控制精度高,利用模糊控制算法使超調(diào)量大大降低。軟件采用模塊化結(jié)構(gòu),提高了通用性。本設(shè)計(jì)的目的不僅僅使溫度控制本身,主要提供了單片機(jī)外圍電路及軟件包括控制算法設(shè)計(jì)的思想,應(yīng)該說(shuō),這種思想比控制系統(tǒng)本身更為重要。5.1 設(shè)計(jì)所達(dá)到的性能指標(biāo)5.1.1 溫控系統(tǒng)的控制精度我們將溫度計(jì)和溫控系統(tǒng)探頭放入同一容器中,選定若干不同的溫度點(diǎn),記錄下標(biāo)準(zhǔn)溫度計(jì)顯示的溫度和溫控系統(tǒng)顯示的溫度

23、進(jìn)行比較。通過(guò)設(shè)定不同的溫度值,使加熱器加熱,待溫度穩(wěn)定時(shí)記錄各溫度點(diǎn)的溫度計(jì)數(shù)據(jù)和溫控系統(tǒng)的顯示值。其記錄數(shù)據(jù)如下表5-1:表5-1 溫度計(jì)讀數(shù)和溫控系統(tǒng)顯示的溫度溫度計(jì)讀數(shù)和溫控系統(tǒng)顯示的溫度()設(shè)定溫度值0.028.035.045.055.075.087.091.0系統(tǒng)顯示溫度0.527.734.445.154.174.986.191.2差值0.50.3-0.60.1-0.9-0.1-0.90.25.1.2 溫度工作波形圖溫度控制模塊,溫度加熱上升與常數(shù)K存在的線性關(guān)系如表5-2: e=目標(biāo)溫度與當(dāng)前溫度之差;c=當(dāng)前溫度與上一時(shí)刻溫度之差;k為常數(shù)。表5-2 溫度T與常數(shù)k對(duì)應(yīng)的關(guān)系溫

24、度T() 030 3040 4050 5060 6070 7080 8090常數(shù)K 0.3847 0.4686 0.5289 0.6585 0.7686 1.5767 1.8554溫度工作波形圖如圖5-1: 溫度T時(shí)間t圖5-1 溫度工作波形圖5.2 結(jié)果分析論述我的系統(tǒng)完全滿足設(shè)計(jì)要求,靜態(tài)誤差方面可以達(dá)到0.18的誤差,總體控制精度方面大約0.45,在讀數(shù)正確方面與標(biāo)準(zhǔn)溫度計(jì)的讀數(shù)誤差為1.5%,對(duì)一般的工業(yè)生產(chǎn)完全可以采用我們的設(shè)計(jì)。 該系統(tǒng)具有較小的超調(diào)值,超調(diào)值大約為0.83%左右。雖然超調(diào)為不利結(jié)果,但另一方面卻減小了系統(tǒng)的調(diào)節(jié)時(shí)間。從其數(shù)據(jù)表可以看出該系統(tǒng)為穩(wěn)定系統(tǒng)。5.3 設(shè)計(jì)

25、方案評(píng)價(jià)5.3.1優(yōu)點(diǎn)在硬件方面:本設(shè)計(jì)方案采用了單總線型數(shù)字式的溫度傳感器,提高了溫度的采集精度,節(jié)約了單片機(jī)的口線資源。方案還使用場(chǎng)效應(yīng)管作加熱控制器件,使設(shè)計(jì)簡(jiǎn)單化,且可靠性強(qiáng)。在控制精度方面,本設(shè)計(jì)在不能確定執(zhí)行機(jī)構(gòu)的數(shù)學(xué)模型的情況下,大膽的假設(shè)小心的求證,利用模糊控制的算法來(lái)提高控制精度。在軟件方面:我們采用模塊化編程,思路清晰,使程序簡(jiǎn)潔、可移植性強(qiáng)。5.3.2 缺點(diǎn)本設(shè)計(jì)方案雖然采用了當(dāng)前市場(chǎng)最先進(jìn)的電子器件,使電路設(shè)計(jì)簡(jiǎn)單,但設(shè)計(jì)方案不是最佳。本系統(tǒng)雖然具有較小的超調(diào)量,但加大了調(diào)節(jié)時(shí)間。如果需要更高的控制精度,則我們的模糊控制將不適應(yīng),需要修改程序。設(shè)計(jì)中加熱控制方面存在遺憾

26、,雖采用了場(chǎng)效應(yīng)管控制加熱,但不能使溫度加熱到限制溫度時(shí)截止,需要更好的控制器件。6 結(jié)論本次實(shí)驗(yàn)采用了C語(yǔ)言編程方式,實(shí)現(xiàn)了溫度的測(cè)量與控制,完全達(dá)到了本次實(shí)驗(yàn)的要求,更重要的是該實(shí)驗(yàn)的測(cè)量誤差小于1度,控制精度小于0.45度,已基本實(shí)現(xiàn)本實(shí)驗(yàn)擴(kuò)展部分的要求。它可以廣泛用于溫度測(cè)量精度要求比較高的場(chǎng)面,實(shí)現(xiàn)簡(jiǎn)單,成本低。綜上所示,本系統(tǒng)的方案具有實(shí)用推廣價(jià)值。本系統(tǒng)通過(guò)添加一個(gè)傳感器,還有一個(gè)12V供電的加熱片,使系統(tǒng)能夠?qū)崟r(shí)顯示溫度和快速加熱。若系統(tǒng)開始加熱就使溫度迅速上升,則說(shuō)明杯中水不足,很有可能為干燒,為不安全加熱,用戶請(qǐng)注意,這屬于該系統(tǒng)需要改進(jìn)的地方。附 錄 1 源程序清單如下:

27、/ds18b20 drive program/for 51 mcu with lcd1602 display#include reg52.h#include /*/#define HIGH 1 /高電平#define LOW 0 /低電平#define TRUE 1 /真#define ZERO 0 /假#define MSB 0x80/ds18b20 part#define SkipRom 0xcc#define ConvertTemperature 0x44#define Read Scratchpad 0xbesbit One_Wire_Bus=P16;void One_ Wire_ D

28、elay (unsigned char delay_ time);void One_Wire_Write_Byte (unsigned char oww_dat);unsigned char One_Wire_Read_Byte(void);void Read_18B20(void);void Initize_One_Wire_Bus(void);void delay(void);/*/data unsigned char GetScratchpad2;code unsignedchardecimalH16=00,06,12,18,25,31,37,43,50,56,62,68,75,81,8

29、7,93;code unsigned char decimalL16=00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75;unsigned char Result Temperature H;/經(jīng)過(guò)處理后的溫度整數(shù)部分unsigned char Result Temperature L H, Result Temperature LL;/經(jīng)過(guò)處理后的溫度的小數(shù)部分data unsigned char ResultSignal;/溫度為負(fù)數(shù)標(biāo)志位/*/void Initize_One_Wire_Bus(void)One_Wire_Bus=0; One_

30、Wire_Delay (80); / /Bus master pulling low 488us One_Wire_Bus=1; One_Wire_Delay (25);/Resister pull up 158us;/*/* ds18b20 */void One_Wire_Delay (unsigned char delay_time) While (delay_time) delay_time-;/Delay time us :=(8+delay_time*6)us;/*/unsigned char One_Wire_Read_Byte (void) bit temp_bit; unsig

31、ned char i,result=0; for (i=0; i8;i+) One_Wire_Bus=0; One_Wire_Bus=1; temp_bit=One_Wire_Bus; One_Wire_Delay (9); /delay 62 us If (temp_bit) result|=0x01i; Return (result);/*/void One_Wire_Write_Byte(unsigned char oww_dat) unsigned char i; for (i=0;i=1; One_Wire_Delay (10);/*/void Read_18B20 (void) u

32、nsigned char tempH,tempL; Initize_One_Wire_Bus (); One_Wire_Write_Byte (SkipRom); _nop_(); One_Wire_Write_Byte (ConvertTemperature); One_Wire_Delay (5); Initize_One_Wire_Bus (); One_Wire_Write_Byte (SkipRom); _nop_(); One_Wire_Write_Byte (ReadScratchpad);GetScratchpad0=One_Wire_Read_Byte(); /從DS18B2

33、0讀出的低8位溫度值GetScratchpad1=One_Wire_Read_Byte(); /從DS18B20讀出的高8位溫度值 One_Wire_Delay (120); tempH=(GetScratchpad14); /溫度的整數(shù)部分 tempL=(GetScratchpad0&0x0f); /溫度的小數(shù)部分 Initize_One_Wire_Bus(); if(tempH&0x80) /判斷溫度的正負(fù)值 tempH=tempH; tempL=tempL+1; ResultSignal=1;/溫度為負(fù)數(shù)標(biāo)志位 Result Temperature H=tempH; /經(jīng)過(guò)處理后的溫度的

34、整數(shù)部分 Result Temperature L=decimalLtempL; /經(jīng)過(guò)處理的溫度的小數(shù)部分十分位Result Temperature LH=decimalHtempL;/經(jīng)過(guò)處理的溫度的小數(shù)部分的百分位 /*/*/lcd part#define LINE1 0#define LINE2 1#define LINE1_HEAD 0x80#define LINE2_HEAD 0xC0#define LCD_DELAY_TIME 40#define DATA_MODE 0x38#define OPEN_SCREEN 0x0C#define DISPLAY_ADDRESS 0x80#

35、define CLEARSCREEN LCD_en_command(0x01)#define COMMAND_SLOT LCD1602_RS=LOW; LCD1602_RW=LOW;LCD1602_EN=LOW#define DATA_SLOT LCD1602_RS=HIGH;LCD1602_RW=LOW;LCD1602_EN=LOW/common part #define HIGH 1 /高電平#define LOW 0 /低電平#define TRUE 1 /真#define ZERO 0 /假#define MSB 0x80/change this part at different b

36、oard#define LCDIO P0sbit LCD1602_RS=P10; /數(shù)據(jù)命令選擇 1 data 0 command sbit LCD1602_RW=P11; /讀寫選擇 1 read 0 write sbit LCD1602_EN=P12; /LCD使能信號(hào)/function define/*/void LCD_delay(void);/lcd 延時(shí)函數(shù)void LCD_en_command(unsigned char command);/寫命令void LCD_en_dat(unsigned char temp);/寫數(shù)據(jù)void LCD_set_xy( unsigned c

37、har x, unsigned char y );/設(shè)置顯示地址void LCD_write_char( unsigned x,unsigned char y,unsigned char dat);/write lcd a character functionvoid LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);/write lcd string functionvoid LCD_init(void);/lcd 初始化./unsigned char code mytab8 = 0x0C,0x12,0x12

38、,0x0C,0x00,0x00,0x00,0x00;/自定義字符/*/* 自定義字符寫入CGRAM */*/void writetab() unsigned char i; LCD_en_command(0x40); for(i=0;iZERO;i-);/be sure lcd reset /*/ void LCD_en_command(unsigned char command) LCDIO=command; COMMAND_SLOT; LCD_delay(); LCD1602_EN=HIGH;/*/void LCD_en_dat(unsigned char dat) LCDIO=dat; DATA_SLOT; LCD_delay(); LCD1602_EN=HIGH;/*/void LCD_set_xy( unsigned char x, unsigned char y ) unsigned char address; if (y = LINE1) address = LINE1_HEAD + x; else address = LINE2_HEAD + x; LCD_en

溫馨提示

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

評(píng)論

0/150

提交評(píng)論