基于PID控制算法的熱水器智能控制_第1頁
基于PID控制算法的熱水器智能控制_第2頁
基于PID控制算法的熱水器智能控制_第3頁
基于PID控制算法的熱水器智能控制_第4頁
基于PID控制算法的熱水器智能控制_第5頁
已閱讀5頁,還剩79頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

緒論1.1器智能控制系統(tǒng)設(shè)計的研究意義與目的隨著世界科技的發(fā)展,世界各國對能源問題越來越受重視,熱水器已成為成為我們的生活必不可少的。儲水式電熱水器.以其無污染、儲水量多等特點在眾多替代能源中受到青睞。儲水式工作時候用環(huán)保節(jié)能且功率小,對于各方面的要求也低,所以在我國大部分家庭均可使用。儲水式電熱水器在發(fā)達國家早已經(jīng)普遍了。在我國這個情況并沒有發(fā)生很大改變?nèi)缃穸鄶?shù)人在使用著太陽能熱水器。可是今天隨著我國經(jīng)濟的快速發(fā)展,儲水式熱水器將會在我國大面積的使用??墒怯捎谖覈鞯貐^(qū)的水壓情況的不一樣,以及加熱的不及時。造成了我們所使用熱水器時造成的不好影響比如溫度調(diào)節(jié)不及時,水溫?zé)o法達到,給我們消費者帶了不少麻煩因此本課題將以此為研究對象,通過使用PID控制算法的熱水器智能控制系統(tǒng)設(shè)計,使儲水式熱水器這一問題得到較好的改善。1.2國內(nèi)外熱水器系統(tǒng)控制研究與現(xiàn)狀電熱水器有即熱式,儲水式。而我們大多數(shù)家用使用的是儲水式熱水器,與即熱式熱水器對比有以下特點:1、需預(yù)熱,儲水量大。2、安全性好,一般家庭線路都可負載3、內(nèi)部相對于較為簡單,維修時較為方便4、同樣的容積,價格對比十分低廉。5、預(yù)熱時間長,加熱相對較為慢。熱水器在國外多數(shù)是用豎式,而國內(nèi)大多使用橫式。而豎式則加熱速度快,出水率高,其下層是冷水這樣的設(shè)計能減少冷水對熱水的沖擊,符合國外的一個生活習(xí)慣。相比之下橫式熱水器儲水量大,洗澡時舒適感能得到大大加強。在熱水器的控制上面基于單片機的溫度測控系統(tǒng)在檢測和控制系統(tǒng)中的應(yīng)用也越來越廣泛所以在基礎(chǔ)上國內(nèi)外對對電熱水器的溫度有了基本的測量,自動檢測和但是對于溫度的把控不夠精準。溫度控制技術(shù)機械式:通過多種不同的的組合來實現(xiàn)不同功率的切換擁有顯示溫度和水位功能,但是不是達到溫度水位的自動控制功能。,然后通過調(diào)節(jié)水的流量大小來決定控制溫度,但是由于調(diào)節(jié)的時候有流量以及功率不同的相互內(nèi)在的約束,造成調(diào)節(jié)溫度的方法不簡便,并存此方式一般為手動控制。雖然在有的熱水器產(chǎn)品中添加電加熱輔助裝置,但是在功能和智能上存在了很多的缺陷,給用戶體驗帶來不好的感覺。例如我們經(jīng)常使用熱水器中有設(shè)置2-3個不同功率的加熱管對水進行加熱,在溫度控制的過程中通過對水流量的控制對其進行調(diào)整,但是流量調(diào)節(jié)及溫度調(diào)節(jié)之間存在的影響以及誤差,并且我們在其使用的時候無法在溫度及流量上同時獲得滿足,并且溫度無法做隨流量變化做到微小調(diào)整。因此該技術(shù)存在不足。電子式:與機械式不同之處在于其有完整的控制結(jié)構(gòu),如溫度傳感器,流量傳感器,以及在設(shè)置了幾個不同大功率的加熱體然后通過控制芯片及其相關(guān)軟件來實現(xiàn)對水溫的控制。并且在此方式上解決了流量調(diào)節(jié)及溫度調(diào)節(jié)之間存在的影響以及誤差使流量的改變不會對水溫產(chǎn)生很大的變化,因此完成了對流量和溫度的不同控制。解決了機械方式的缺點,所以在國內(nèi)外市場上被認可使用。PID控制是比例,積分和微分控制,其結(jié)構(gòu)簡單,穩(wěn)定性極佳,可靠且易于配置,通常是無法完全理解和掌握被控制對象的結(jié)構(gòu)和參數(shù),或者無法建立精確的數(shù)學(xué)模型時檢測時獲得的結(jié)果當時,通用控制理論及其計算難以接受,因此,目前使用PID控制技術(shù)最為簡便。當今的底盤溫度控制系統(tǒng)廣泛用于化學(xué),機械工程,機械工程,制藥和其他行業(yè)。在試運行及調(diào)試過程中,化工產(chǎn)品符合生產(chǎn)工藝和生產(chǎn)要求,具有廣闊的應(yīng)用前景。另外,為了控制可行性,對當前溫度值,當前溫度趨勢和總能量進行采樣,以方便控制系統(tǒng)快速識別,提高響應(yīng)速度并減少溫度穩(wěn)定時間。所以根據(jù)以上的優(yōu)缺點選擇使用pid溫度控制系統(tǒng),使水溫穩(wěn)定在一定的設(shè)計誤差內(nèi)并提供合適的熱水器解決方案。本課題將重點研究儲水式電熱水器1.3研究內(nèi)容通過對上面的描述以及對儲水式熱水器優(yōu)缺點以及分析了國內(nèi)的溫度控制情況了解現(xiàn)有儲水式熱水器的一些缺陷,最大的問題就是溫度控制精準性不高,穩(wěn)定性一般,無法快速加熱滿足人們的日常需求。所以通過使用PID控制算法的熱水器溫控系統(tǒng)、控制系統(tǒng)及其相關(guān)影響參數(shù),實現(xiàn)快速升溫以及時刻保證溫度的恒定。后續(xù)會通過對于材料的選擇已經(jīng)對于電路的分析在pid上的一些參數(shù)調(diào)整進一步的使這個溫控系統(tǒng)更加智能化,簡單化。

2熱水器智能控制系統(tǒng)的總體方案設(shè)計2.1實時溫控系統(tǒng)的控制原理能量守恒定律設(shè)置流量傳感器及溫度傳感器放入在儲水熱水器的進水端,隨后用通過單片機去獲取水溫度及流量的值,然后算出一個能量值是溫度提升所需要的數(shù)值,通過公式將這個得出加熱這個溫度時候所需要的功率,在通過單片機的控制引腳將功率轉(zhuǎn)換到加熱器上。Q=Cm△TM=pv(式2.1)表2.1公式的定義C比熱容焦/千克?攝氏度M水的質(zhì)量kg△t水溫變化量°Cp水的密度kg/m3根據(jù)流量的定義可知最后推出P=4200×流量X△T/60(流量單位L/min)(式2.2)系統(tǒng)中將水溫到達所要求的溫度,根據(jù)上述公式計算所需功率大小,以達到所需要的溫度值,而且為了減少程序中單片機的工作量,把事先算好的記升高一攝氏度所需要的能量,然后羅列好各種數(shù)據(jù),當工作的時候單片機檢測到的流量后可以直接得系統(tǒng)需要的基礎(chǔ)功率,然后提供所需的的功率PID控制原理pid控制基本原理介紹比例環(huán)節(jié):基礎(chǔ)比例環(huán)節(jié)缺點為較容易產(chǎn)生穩(wěn)態(tài)的誤差;積分環(huán)節(jié):消除穩(wěn)態(tài)的誤差缺點就是增加了超調(diào)量微分環(huán)節(jié):加大慣性響應(yīng)的速度,減弱超調(diào)的趨勢圖2.1典型的閉環(huán)控制系統(tǒng)閉環(huán)控制系統(tǒng)的傳遞函數(shù)C(S)R在完美的情況下,R(s)和C(s)的傳遞函數(shù)是為1。可是過程的消息的得到的處理都需要一定的時間,這個傳遞函數(shù)為:c(s)RS=2.2總體方案設(shè)計圖2.2結(jié)構(gòu)系統(tǒng)原理圖表2.2系統(tǒng)結(jié)構(gòu)作用1開關(guān)閥門(流量調(diào)節(jié)及關(guān)斷)2安全閥3接地導(dǎo)體4溫度傳感器5流量傳感器6隔離水電阻7加熱絲8加熱罐9高溫保護器10繼電器11控制中心12電流互感器2.2.1加熱控制系統(tǒng)加熱系統(tǒng)由以下單位所組合:溫度傳感器:基于控制精確的溫度以及快速響應(yīng)的特點,不采取集成芯片。使用普通的電阻型塑封NTC即可且成本低廉。鎳金加熱絲:為了使熱交換效率高得以實現(xiàn)。采取體積小。鐐金加熱絲并且其自身的儲備熱能很小可以無視,因此在突發(fā)斷水的情況下不會發(fā)生溫度過沖繼電器:繼電器用于接收控制中心的控制信號,決定是否對加熱絲進行通斷2.2.2水路系統(tǒng)開關(guān)閥設(shè)置在水路系統(tǒng)中,開關(guān)閥在此起著重要的作用。它不僅可以打開和關(guān)閉水路,還可以用作流量調(diào)節(jié)的調(diào)節(jié)器,還可以用作自動觸發(fā)控制中心工作的輸入端口。只要用戶打開此開關(guān),整個機器就會啟動并進入工作狀態(tài),無需任何操作即可獲得預(yù)先設(shè)定的水溫。2.2.3安全系統(tǒng)隔電墻:用于出水進水進隔離水電阻,才能在工作220V降至安全電壓。接地導(dǎo)體:當水中電壓還是存在的適合,用接地導(dǎo)體可以保證電壓為0.保證了安全。防干燒:當溫度過高或者在局部高溫的時候手動控制器將斷開電路起到保護作用防燙傷:設(shè)置溫度傳感器,來檢測是否達到了溫度上限。若是檢測溫度過高停止加熱,保證溫度在需要的范圍內(nèi)。防止溫度過高燙傷。2.2.4加熱技術(shù)圖2.3從左到右為鎧裝、鍍膜、鎳金(1)電熱管加熱(鎧裝式)工作原理:其耐高溫的材質(zhì)放在又合金構(gòu)成的無縫管中均勻的排放這。致密分布的結(jié)晶氧化鎂粉末填充了間隙。施加電流后,電流流經(jīng)電阻線并產(chǎn)生熱量,隨后金屬管的溫度開始升高,熱量通過在其表面加熱,然后熱量轉(zhuǎn)移到水中達到預(yù)想的溫度值。優(yōu)點:能量傳遞效率高,發(fā)熱均勻,生產(chǎn)的工藝不復(fù)雜,成本相對低;缺點:容易產(chǎn)生污垢,管子極易被腐蝕,(2)石英加熱管(鍍膜)工作原理:加熱器采用乳白色石英玻璃管和經(jīng)過特殊處理的耐腐蝕合成材料。由其自身的特點可以進行高效率的轉(zhuǎn)換,吸收和升高管中的溫度會產(chǎn)生純硅-氧鍵的分子振動,從而使95%的可見光和近紅外光轉(zhuǎn)換成熱能并轉(zhuǎn)移到水中以實現(xiàn)加熱。優(yōu)點分析:傳遞能量的效率高,對于物體的增溫均勻,并且生產(chǎn)工藝簡單且成本較低;缺點:耐快速冷卻和耐熱性差,容易破裂,泄漏,耐壓性,長期使用會衰減(3)鎳金加熱工作原理:自身鎳含量極高是普通加熱絲的無法達到的,將其放入水中進行加溫,工作的環(huán)境無隔離層和絕緣層中間。優(yōu)點:可以將能量幾乎達到99以上的傳遞效率,而且不會產(chǎn)生雜質(zhì),適合各種不同的水環(huán)境;劣點:價格過高,且工作的適合需要添加隔電墻以防止強電。2.3本章小結(jié)本章通過對熱水器的加熱方式,安全技術(shù),溫控方面的研究,對熱水器進行了初步的了解,對后面的實驗以及設(shè)計做好鋪墊,特別對于整個的系統(tǒng)以及智能控制做好了準備。

3溫控系統(tǒng)硬件電路設(shè)計圖3.1控制系統(tǒng)總體框架圖溫控系統(tǒng)控制的構(gòu)成為:溫度的檢測模塊,單片機控制系統(tǒng),鍵盤顯示電路和引擎控制單元組成。在本設(shè)計中,以AT89C52單片機為主要控制器,形成熱水器水溫微控制系統(tǒng)。在這設(shè)計中使用該傳感器使用內(nèi)置的單級溫度敏感傳感器DS18B20,該傳感器用于確定水溫并負責(zé)將檢測到的水壓轉(zhuǎn)換為模擬信號。另一方面,它通過LED顯示當前的溫度和水位,而且它與設(shè)定的溫度和水位進行比較和計算,并根據(jù)結(jié)果發(fā)送適當?shù)募訜岷屠鋮s指令。調(diào)節(jié)熱水器的溫度。3.1最小系統(tǒng)應(yīng)用電路圖3.2AT89C52外部管腳排列圖AT89C52包括40個引腳關(guān)于對于AT89C52主要外部管腳排列介紹:VCC:能提供電壓、電流的容器知,如電池,所以也叫電源。gnd:指接地一般為看作為點位為0的導(dǎo)線,通常來說是防止發(fā)生觸電P0:其組成為鎖存器,輸入緩沖器,非門與門各一個,以及切換的開關(guān)。8位漏極開路型雙向I/O口。p0有三個功能:作為數(shù)據(jù)總線,作為地址總線,不擴展的時候可以當作I/O端口,無法上拉電阻。當作為外部外部擴展存儲器的數(shù)據(jù)地址總線時候從p0輸入信號,然后這個信號會通過引腳進入緩沖器從而達到內(nèi)部總線,p0端口工作的時候若是寫入1,則這個時候高電阻會被當作引腳。而當作訪問外部程序和數(shù)據(jù)存儲器時,此時p0則具有上拉電阻P1:結(jié)構(gòu)相對簡單,它僅僅是作為數(shù)據(jù)輸入或者輸出端口作為使用,它與p0端口的主要的不同在于p1端口內(nèi)部的上拉電阻可替換了p0端口的場效應(yīng)管v1。并且內(nèi)部的總線發(fā)出輸出的信息。表3.1P1口部分引腳的第二功能表引腳號第二功能P1.0T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2端口:一共有著8個引腳,其作用可以作為:1.輸出輸入引腳,2外接存儲器,3地址總線高八位。其8個引腳的內(nèi)部電路結(jié)構(gòu)都是一樣的沒有差別。當使用p2作為輸出時候,數(shù)據(jù)會被cpu用內(nèi)部總線送到鎖存器的去。并且會同步的給鎖存器cl送寫信號,然后通過一些列的處理從p2端口引腳輸出.當作為輸入端使用的時候,此時cpu首先會讓p2寫作1。同時關(guān)閉了p2端的輸出電路,隨后讓cpu送一個讀引腳的信號,然后三態(tài)門被打開這個數(shù)據(jù)被送到內(nèi)部總線。P3端口:一共有著8個引腳,其作用可以作為:1.輸出輸入引腳,2。第二功能其8個引腳的內(nèi)部電路結(jié)構(gòu)都是一樣的沒有差別。當p3作為輸出時候cpu開始工作首先給鎖存器的送寫信號,然后內(nèi)部總線來的信息在通過d進入鎖存器然后從q輸出。當作為輸入端口的時候cpu開始工作給鎖儲器寫1,同時關(guān)閉了p3端的輸出電路,隨后讓cpu送一個讀引腳的信號,然后三態(tài)門被打開這個數(shù)據(jù)被送到內(nèi)部總線。.作為第二功能的時候?qū)嶋H也是該端口輸入或輸出信號只不過是一些特殊功能的信號具體見下圖。表3.2P3口引腳第二功能表引腳號第二功能P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器寫選通)RST:RESET信號通常用于帶有CPU的電路中,這意味著復(fù)位和初始化。RESET信號用于在啟動時初始化電路,而RESET信號在電路的工作狀態(tài)異常消失時必須用于重啟電路。ALE/PROG:當單片機需要擴展外部的隨機存儲的內(nèi)存的時候,ale用于控制把用于控制把P0口的輸出低8位地址送鎖存器鎖存器來PSEN:PSEN是讀取外部程序存儲器的門控信號。AT89S52存儲器:a程序存儲器程序存儲器一般來說專門對于程序以及常熟來存放的時候使用的。當把這些程序以及常熟放入的時候系統(tǒng)只能運行并且無法重寫。關(guān)閉系統(tǒng)電源后,程序不會丟失。因此,稱之為只讀存儲器。b數(shù)據(jù)存儲器數(shù)據(jù)存儲的構(gòu)成為讀寫存儲器ram。作用為運行是的中間數(shù)據(jù)結(jié)果等,at89c52的存儲器最大容量擴展到64kb。AT89S52中有6個不同的中斷源:兩個外部中斷(和),定時器有3個用于三個分別得定時中斷和一個串行中斷。讓中斷源有效與無效的方法是可以用位置或者刪除特殊寄存器中的相關(guān)中斷。表3.3功能表關(guān)于中斷允許控制器符號位地址功能EAIE.7中斷總允許控制位。EA=0,中斷總禁止;EA=1,各中斷由各自的控制為設(shè)定—IE.6預(yù)留ET2IE.5定時器2中斷允許控制位ESIE.4串行口中斷允許控制位ET1IE.3定時器1中斷允許控制位EX1IE.2外部中斷1允許控制位ET0IE.1定時器0中斷允許控制位EX0IE.0外部中斷1允許控制位電源和復(fù)位和振蕩電路以及擴展部分等部分組成最小系統(tǒng)。圖3.3最小系統(tǒng)電路圖復(fù)位電路:復(fù)位的功能是重新啟動微控制器,它可以保證當程序出現(xiàn)了混亂失控或崩潰可以讓整個系統(tǒng)進入初始化的狀態(tài),方便后面工作的展開也因此保證了系統(tǒng)的穩(wěn)點所以在電路中,只要按下復(fù)位后整個系統(tǒng)將會重啟,而且恢復(fù)了其本身設(shè)定好的默認值。每個晶振都存在與振蕩電路中,它的作為非常大可以結(jié)合單片機電路產(chǎn)生單片機所需的時鐘頻率,當這個能提供的頻率越高,那么單片機的運行速度也是越迅速。其能得到的一切指令都是由于晶振能提供時鐘頻率晶振存在于振蕩電路單片機系統(tǒng),晶體可以等效于一個電感,并在電容器內(nèi)部形成一個振蕩環(huán)路,能量從電感到電容緩慢,然后從電容器到電感,然后形成振蕩。正半周期是電容器的充電和放電過程,負半周期是電感器的充電和放電過程。圖3.4振蕩電路圖3.2測溫電路在本次設(shè)計中使用DS18B20溫度傳感器,因為其在測量范圍較廣-55+125攝氏度之間合適并且線路簡單而且體積小節(jié)約空間,可以應(yīng)用不同場合的并且改變其外觀。并且精度較為準確可達到0.5℃。它具有一定簡化電路的作用。我們通過讀取DS18B20數(shù)字傳感器數(shù)據(jù)線上的數(shù)據(jù),并通過一定的運算來實現(xiàn)前溫度的讀取。圖3.5測溫電路接線圖3.3顯示屏輸出電路表3.4顯示屏引腳說明引腳號功能第1腳VSS為地電源。第2腳VDD接5V正電源。第3腳VL為液晶顯示器對比度調(diào)整段,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。第6腳E端為使能端,當E端由高電平跳變?yōu)榈碗娖綍r,液晶模塊執(zhí)行命令。第7~14腳D0~D7位8位雙向數(shù)據(jù)線。第15腳背光源正極第16腳背光源負極。圖3.6連接顯示電路3.4按鍵電路按鍵電路用來調(diào)整溫度上下限,圖3.7按鍵電路3.5蜂鳴器報警電路報警器與I/O口P3.3連與一個報警器形成報警電路,通過對I/O輸入高低電平來控制報警器的響鈴。P3.3位低電平時報警。蜂鳴器報警電路如圖3.8(a)、(b)。圖3.8蜂鳴器報警電路(a)圖3.8蜂鳴器報警電路(b)3.6電機升降溫電路其工作機制為當前的溫度高于設(shè)定溫度的峰值時,Moter1降溫電機工作。當前的溫度低于設(shè)定下限時,Moter2升溫電機工作。電機升降溫電路如圖3.9所示。圖3.9電機升降溫電路4基于PID控制算法的溫控系統(tǒng)軟件設(shè)計4.1程序流程設(shè)計圖4.1工作流程首先在編寫程序上先設(shè)定好所需要的溫度上下限定,在其工作的時候開始溫度傳感器開始獲取當前的溫度,隨后把信息傳入單片機中,此時來判斷當前的溫度是否滿足我們所需要的溫度,當不滿足條件的時候分為兩種情況:一超過了預(yù)想溫度最高值,低于預(yù)想溫度最低值,當超過最高值的時候,紅燈亮起,加熱的開關(guān)被斷開。當溫度降低到正常使用范圍內(nèi)結(jié)束工作。二低于設(shè)定溫度的最低值,黃燈亮起,啟用電機升高溫度。達到所需要的溫度。若當溫度滿足所設(shè)定的區(qū)間,則整個流程結(jié)束。 voidmain(){ Init_Display_String(); //初始化顯示 Read_Temperature(); //讀取溫度 MOTOR_control02(); //電機控制 delay1ms(1000); //延時1秒 wr_com(0x01); //LCD清屏 Display_Temperature(); //顯示溫度 Timer0_init(); while(1) { Read_Temperature(); //讀取溫度 Display_Temperature(); //顯示溫度 if(Detect==0)MOTOR_control01(); //電機控制 elseMOTOR_control02(); //電機停止 if(Adjust_TH==0) //調(diào)節(jié)TH。 { if(Key_up==0) { Temperature_H+=10; if(Temperature_H>350)Temperature_H=350; while(Key_up==0)Display_Temperature(); } if(Key_dn==0) { Temperature_H-=10; if(Temperature_H<=250)Temperature_H=250; while(Key_up==0)Display_Temperature(); } } if(Adjust_TL==0) //調(diào)節(jié)TL。 { if(Key_up==0) { Temperature_L+=10; if(Temperature_L>250)Temperature_L=250; while(Key_up==0)Display_Temperature(); } if(Key_dn==0) { Temperature_L-=10; if(Temperature_L<=150)Temperature_H=150; while(Key_up==0)Display_Temperature(); } }voidTimer1()interrupt2{TCON=0X04;IE=0X84;}}4.1.1溫度采集子程序開始初始化命令開始初始化命令跳過ROM命令溫度轉(zhuǎn)換命令初始化命令匹配ROM命令發(fā)送64位序列號讀取溫度值溫度數(shù)據(jù)處理結(jié)束圖4.2溫度采集子程序流程開始對于溫度的采集,因為只有一個dsb18b20,不需要進行匹配rom,若是多個dsb18b20則需要匹配,因為dsb18b20轉(zhuǎn)換后的代買不是實際的溫度值然后開始執(zhí)行溫度轉(zhuǎn)化命令,隨后在進行初始化,重新匹配rom發(fā)出了低字節(jié)8位產(chǎn)品類型標號,對于dsb18b20就是28h,接著48位是指的dsb18b20自身序列號,最后的8位是對前面56的循環(huán)冗余校驗碼,隨后讀取溫度的確切值發(fā),到達數(shù)據(jù)處整個過程結(jié)束。voidDisplay_String(u8*p) //顯示//{ while(*p!='\0') { wr_dat(*p); p++; delay1ms(10); }}voidInit_Display_String() //初始化顯示{ lcd_init(); wr_com(0x80); Display_String("Haveaniceday!"); wr_com(0xc0); Display_String("2020-03=6-25");}4.1.2溫度處理及顯示子程序DS18B20DS18B20測溫子程序讀取溫度的低位值讀取溫度的高位值對溫度值計算顯示溫度準備讀取溫度值返回圖4.3溫度處理及顯示子程序流程圖Ds18b2發(fā)出了低字節(jié)8位產(chǎn)品類型標號,對于dsb18b20就是28h,接著48位是指的dsb18b20自身序列號,最后的8位是對前面56的循環(huán)冗余校驗碼,隨后讀取溫度的確切值發(fā),到達數(shù)據(jù)處整個過程結(jié)束。voiddelay_18B20(u8i) //延時i微秒{ for(;i>0;i--);}voidds1820rst() //*ds1820復(fù)位*/{ u8x=0; DQ=1; //DQ復(fù)位 u8i=0; u8dat=0; for(i=8;i>0;i--) { DQ=0; //給脈沖信號 dat>>=1; DQ=1; //給脈沖信號 if(DQ) dat|=0x80; delay_18B20(10); } return(dat);}voidds1820wr(u8wdata) //*寫數(shù)據(jù)*/{ u8i=0; for(i=8;i>0;i--) { DQ=0; DQ=wdata&0x01; delay_18B20(10); DQ=1; wdata>>=1;}}voidRead_Temperature() //*讀取溫度值并轉(zhuǎn)換*/{ u8a,b; ds1820rst(); ds1820wr(0xcc); //*跳過讀序列號*/ ds1820wr(0x44); //*啟動溫度轉(zhuǎn)換*/ ds1820rst(); ds1820wr(0xcc); //*跳過讀序列號*/ ds1820wr(0xbe); //*讀取溫度*/ a=ds1820rd(); b=ds1820rd(); Temperature=a+b*256; if(Temperature<=0x0fff)Temperature_flag=0; else { Temperature=~Temperature+1; Temperature_flag=1; } Temperature=Temperature*(0.625);//溫度值擴大10倍,以精確到1位小數(shù) }/*******************************************************************/voidDisplay_Temperature()//溫度值顯示{ disdata[0]=Temperature/1000+0x30; //百位數(shù) disdata[1]=Temperature/100%10+0x30; //十位數(shù) disdata[2]=Temperature/10%10+0x30; //個位數(shù) disdata[3]=Temperature%10+0x30; //小數(shù)位 wr_com(0x80); Display_String(str1);; if(Temperature_flag==1)wr_dat(0x2d); //顯示符號位 if(disdata[0]!=0x30)wr_dat(disdata[0]); //顯示百位 wr_dat(disdata[1]); //顯示十位 wr_dat(disdata[2]); //顯示個位 wr_dat(0x2e); //顯示小數(shù)點 wr_dat(disdata[3]); //顯示小數(shù)位 wr_dat('C'); if(Set_Clock==0) { Display_String("CLK:"); wr_dat(Clock_Timer/10+0x30); wr_dat(Clock_Timer%10+0x30); } wr_com(0xc0); Display_String(str2); wr_dat(Temperature_H/100+0x30); wr_dat(Temperature_H/10%10+0x30); wr_dat('C'); Display_String(str3); wr_dat(Temperature_L/100+0x30); wr_dat(Temperature_L/10%10+0x30); wr_dat('C'); }4.1.3升降溫程序及LED顯示子程序調(diào)溫及報警子程序讀取溫度子程序調(diào)溫及報警子程序讀取溫度子程序燈不亮返回返回返回降溫電機工作,紅燈亮升溫電機工作,黃燈亮在設(shè)定范圍內(nèi)嗎?是否大于最大值YesNoNoYes首先讀取了溫度數(shù),然后判定是否在我們設(shè)定的溫度區(qū)間內(nèi),若在溫度區(qū)間內(nèi)(yes)結(jié)束若不在溫度設(shè)定區(qū)間內(nèi)(no)折開始判斷是否大于最大值若是大于最大值的話降溫電機工作,紅燈亮,隨后達到正常的溫度。若是沒有大于最大值的話,升溫電機工作,黃燈亮。隨后溫度到達所需要的范圍內(nèi)。停止工作返回。4.2PID參數(shù)整定KP,KI,KP在pid算法中是最為重要的三個控制參數(shù),在已知系統(tǒng)傳遞函數(shù)時,可以用臨界比例度法整定系統(tǒng)PID參數(shù)。具體過程如下所示:(1)建設(shè)閉環(huán)回路,求出穩(wěn)定極限。(2)根據(jù)公式計算參數(shù)。由本文開環(huán)相應(yīng)曲線,我們可以求出系統(tǒng)的近似傳遞函數(shù),其傳遞函數(shù)如下式所示:(式4.1)表4.1pid控制器特征數(shù)據(jù)控制器類型計算特征數(shù)據(jù)KpTiTdP0.5*KPD0.8*KPI0.45*K0.85*TPID0.6*K0.5*T0.12*T第一步先創(chuàng)建一個閉環(huán)系統(tǒng)用的是采取階躍輸入。然后不適用pid控制如下圖所示:圖4.5系統(tǒng)單閉環(huán)傳遞函數(shù)及響應(yīng)曲線首先將積分系數(shù)和微分系數(shù)設(shè)為0,即僅進行比例控制,調(diào)整P參數(shù),以使系統(tǒng)出現(xiàn)穩(wěn)定的恒定振幅振蕩,此時,可獲得下圖所示的響應(yīng)曲線:4.6系統(tǒng)臨界震蕩響應(yīng)曲線由上圖可知,臨界振蕩增益:K=1.5;臨界振蕩周期T=303.1S,詳細PID計算式參數(shù)如下:(式4.2)輸入相應(yīng)PID參數(shù)得到如下仿真輸出:圖4.7系統(tǒng)PID調(diào)節(jié)響應(yīng)曲線4.2.1控制算法設(shè)計加熱是非線性且隨時間變化的系統(tǒng),所以在本次控制系統(tǒng)的中選擇用智能控制算法pid。該算法將給定溫度與實際溫度之間的比率,然后設(shè)定kpki這三個控制的。。所獲得的算法結(jié)果控制了執(zhí)行器的執(zhí)行狀態(tài),從而可以顯著改善控制系統(tǒng)的控制時間,超調(diào),滯后反應(yīng)和最終穩(wěn)定性。4.3PID參數(shù)整定通常在pid控制算法中,啟到?jīng)Q定性的作用的分別是KP,KI,KP這三個控制參數(shù),在已知系統(tǒng)傳遞函數(shù)時,可以用臨界比例度法整定系統(tǒng)PID參數(shù)。具體過程如下所示:(1)構(gòu)造一個閉環(huán)并確定穩(wěn)定性極限。(2)根據(jù)公式計算控制器參數(shù)。由開環(huán)相應(yīng)曲線,我們可以求出系統(tǒng)的近似傳遞函數(shù),其傳遞函數(shù)如下式所示:(式4.3)原始P決定這個系統(tǒng)的穩(wěn)定性的極限的,一旦這個兩個參數(shù)被確定后,使用下表確定其他參數(shù)。表4.2穩(wěn)點極限計算控制器類型計算特征數(shù)據(jù)KpTiTdP0.5*KPD0.8*KPI0.45*K0.85*TPID0.6*K0.5*T0.12*T第一步是先用用步進輸入建立一個不帶PID控制器的閉環(huán)系統(tǒng)及其仿真輸出,如下圖所示:圖4.8系統(tǒng)單閉環(huán)傳遞函數(shù)及響應(yīng)曲線首先將積分系數(shù)和微分系數(shù)設(shè)為0,即僅進行比例控制,調(diào)整P參數(shù),使系統(tǒng)具有穩(wěn)定的恒定振幅振蕩。那時,獲得如下圖所示的響應(yīng)曲線:圖4.9系統(tǒng)臨界震蕩響應(yīng)曲線由上圖可知,臨界振蕩增益:K=1.5;臨界振蕩周期T=303.1S,詳細PID計算式參數(shù)如下:輸入與之對應(yīng)的PID參數(shù)得到仿真輸出:圖4.10系統(tǒng)PID調(diào)節(jié)響應(yīng)曲線4.3.1PID參數(shù)微調(diào)從圖4-6的輸出結(jié)果可以看出,系統(tǒng)仍然存在一定量的過沖,所以在此基礎(chǔ)上減小了積分系數(shù),并進行了微調(diào)對比例系數(shù)和微分系數(shù),最后得到曲線如下圖所示。。圖4.11系統(tǒng)最有PID響應(yīng)曲線由上面仿真結(jié)果可知系統(tǒng)上升時間為250S,系統(tǒng)在600S左右達到穩(wěn)定,而且超調(diào)量較小,PID調(diào)節(jié)效果較為理想。

5系統(tǒng)調(diào)試5.1調(diào)試過程在本次仿真中使用的是keiluVision仿真器,首先先用匯編語言keil的有的函數(shù)庫和c語言編寫的文件放在一起,然后創(chuàng)建生成文件庫轉(zhuǎn)換為hex的文件,再將其導(dǎo)入寫入的cpu存儲器當中。電路設(shè)計制作完成后,先用keiluVision仿真器進行調(diào)試。(1)、使用菜單“Project/NewProject”出現(xiàn)一個對話框,然后給將要建立的工程取一個名字,單擊保存后會出現(xiàn)另外一個對話框選擇系統(tǒng)所使用的單片機型號,本系統(tǒng)所使用的單片機型號為AT89c52。選中后回到工程窗口的頁面打開“Tatget”的下一層,“SourceGroup1”單機右鍵選中“Addfiletogroup‘SourceGroup1’”,出現(xiàn)對話框,選擇系統(tǒng)所用的源文件即可。(2)單擊“Project/Target1”出現(xiàn)對話框選中“Target”頁面修改單片機的頻率項Xtal(MHz)為12.選中“Output”頁面選中“CreateHEX”選項。(3)編譯連接通過“Project/RebuildallTargetFiles”來實現(xiàn)(4)在Protues上畫出電路圖,并將keil所生成的Hex文件調(diào)入到電路中的單片機內(nèi),點擊運行。5.2調(diào)試結(jié)果圖5.1仿真溫度高于設(shè)定溫度連接好電路圖將程序hex文件植入單片機內(nèi),單片機開始運行,此時我們在ds18b20設(shè)置溫度為32在其最高最低溫度設(shè)為30-20此時系統(tǒng)判定當溫度高于設(shè)定上限時,Moter1降溫電機工作紅燈亮。直到溫度恢復(fù)工作停止。圖5.2仿真溫度低于設(shè)定溫度設(shè)置溫度為32在其最高最低溫度設(shè)為30-20此時系統(tǒng)判定當溫度高于低于下限時,Moter1升溫電機工作黃燈亮。直到溫度恢復(fù)工作停止。

6總結(jié)本次的畢業(yè)設(shè)計花費了三個月,從一開始的迷茫不懂,到最后較為熟練的使用軟件進行操作,這次的溫控系統(tǒng)是一個at89c52單片機為主要的核心,搭配其他的電路以及pid的算法形成的,通過對儲水式熱水器實時溫控系統(tǒng)進行研究。通過分析對當前的技術(shù)方法和軟件系統(tǒng)內(nèi)部結(jié)構(gòu),采用精確控制方法進行系統(tǒng)修正不僅大大簡化了程序控制,而且獲得了更快的系統(tǒng)響應(yīng)速度和精度。在本次課設(shè)上沒有采取式及高深的控制理論,通過用計算機語言去解決了遇到的問題以及人工下無法解決的取得了良好的效果使用ds18b20對于溫度的掌控,溫度的控制利用低功耗單線數(shù)字溫度傳感器DS18B20實現(xiàn)溫度采樣,將采樣的溫度值通過送入單片機處理,然后實現(xiàn)水溫的控制,利用按鍵對水溫的值進行設(shè)置,當溫度高于上限或者低于下限后蜂鳴器報警,使之保持溫度在一定范圍內(nèi)的穩(wěn)定。報警器與I/O口連與一個報警器形成報警電路,通過對I/O輸入高低電平來控制報警器的響鈴。位低電平時報警。系統(tǒng)用led顯示水溫,正常來說我們所需要的水的溫度不超過100因為采取兩位顯示溫度,其范圍0-99在本次的畢業(yè)設(shè)計中不僅學(xué)習(xí)到了知識,更多的是方法技巧。在之前對于調(diào)試仿真畫電路圖很迷惑,浪費了大量時間并且效率還不高,現(xiàn)在通過一系列的學(xué)校提高了效率,在這段期間內(nèi),自己還有老師的幫助解決了工程遇到的困難,提升了自己的意志力也對于這個專業(yè)有了更深的認識,這都都將會為我們在以后的道路打上堅定的基礎(chǔ),積累寶貴的經(jīng)驗。

參考文獻[1]陳和娟.基于STC12C5A60S2的智能循跡小車設(shè)計[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2012(04):14-16.

[2]魏麗芳.淺談超聲波測距儀設(shè)計[J].投資與創(chuàng)業(yè),2012(3):2-2.

[3]姜帥琦.基于大學(xué)生方程式賽車虛擬儀表系統(tǒng)硬件設(shè)計[J].科技視界,2014(11):109-111.

[4]何曉興.基于單片機的正弦信號發(fā)生器[J].電子制作,2015(04):8-10.

[5]杜德銀.基于光電傳感器的路燈控制系統(tǒng)設(shè)計電路分析[J].科技信息,2013(36):138-140.

[6]王會.節(jié)能斷電報警器的設(shè)計[J].當代農(nóng)機,2014(08):71-73.

[7]張博付永平.煤矸石電廠除氧器自動監(jiān)測控制裝置設(shè)計與應(yīng)用[J].機電信息,2014(21):147-148.

[8]馬玉芳.基于AT89S52語音告警電路的設(shè)計[J].電子世界,2014(18):229-229.

[9]任航.簡易低頻信號發(fā)生器的設(shè)計[J].機電信息,2012(06):142-144.

[10]曹嘉瑋.基于單片機控制的步進電機調(diào)速系統(tǒng)[J].電子世界,2011(07):22-26.

[11]王瑞.基于AT89S52單片機的PWM電機控制風(fēng)扇轉(zhuǎn)速系統(tǒng)[J].延安職業(yè)技術(shù)學(xué)院學(xué)報,2012(01):107-109.

[12]朱興喜胡新勇戚仕濤劉云李琳.抗干擾手持式輸液液滴計數(shù)器的研制與開發(fā)[J].醫(yī)療衛(wèi)生裝備,2007(11):29-32.

[13]張糧雨方方.基于51單片機的便攜式α檢測儀顯示電路設(shè)計[J].電子制作,2015(10):12-13.

[14]寧洪軍.基于單片機實際電路板的焊接調(diào)試與Proteus仿真研究[J].科技信息,2011(17):545-545.

[15]楊國榮.GSM通信基站安防及載波監(jiān)控系統(tǒng)設(shè)計[J].新技術(shù)新工藝,2015(06):49-52.

[16]吳漢清.常用的典型單片機資料[J].無線電,2007(11):9-9.

[17]付琛.低功耗、微型化近距離無線通信模塊硬件設(shè)計[J].科技信息(學(xué)術(shù)版),2006(04):244-247.

[18]賈麟.電加熱爐調(diào)溫控制系統(tǒng)[J].才智,2010(31):35-35.

[19]周航宋詩瑤.單片機在七彩霓虹燈設(shè)計中的應(yīng)用[J].遼寧經(jīng)濟職業(yè)技術(shù)學(xué)院(遼寧經(jīng)濟管理干部學(xué)院學(xué)報),2010(01):72-73.

[20]范穎.新型加溫器的研制[J].科技創(chuàng)新與應(yīng)用,2018(22):2-2.

[21]鐘衛(wèi)連.基于單片機的太陽能熱水器控制系統(tǒng)設(shè)計[J].電子世界,2019(12):193-194[22]SuiZhenyou.DesignofIntelligentWaterHeaterControlSystem[J].ACADEMICPUBLISHINGHOUSE,2015,3(2).[23]XinHuiYang.DesignforaS7-200-BasedBoilerTemperatureCascadeControlSystem[J].TransTechPublicationsLtd,2014,3530.[24]WenyiWang,YaoyuLi,FengCao.Extremumseekingcontrolforefficientoperationofanair-sourceheatpumpwaterheaterwithinternalheatexchangercyclevaporinjection[J].ElsevierLtd,2019,99.[25]LiSong.TheCircuitDesignonThermostatControlofSolarWaterHeater'sWaterTemperature[J].TransTechPublicationsLtd,2014,2987.[26]張昌玉.家用智能熱水器控制器的設(shè)計[J].南方農(nóng)機,2019,50(23):243.[27]高超學(xué),尹華,陳志強,陳焱,武昊天.基于“互聯(lián)網(wǎng)+”智能熱水器系統(tǒng)[J].機械工程與自動化,2019(06):172-174.[28]雷祿燕.基于AT89C51的太陽能熱水器智能控制系統(tǒng)設(shè)計[J].科技與創(chuàng)新,2019(12):124-125+127.[29]陳培才,施文振,田敬北,賴宇虹.熱水器遠程智能控制系統(tǒng)設(shè)計[J].科技風(fēng),2018(20):88.[30]張明華.基于單片機的熱水器智能控制系統(tǒng)的設(shè)計[J].電子制作,2015(06):8.[31]劉新.太陽能熱水器自動控制系統(tǒng)的設(shè)計[J].電子技術(shù)與軟件工程,2018(1):108.[32]曾璐琨.需求側(cè)聚合負荷協(xié)同控制策略研究[D].華北電力大學(xué)(北京),2019.

謝辭本論文在韓導(dǎo)師的悉心指導(dǎo)下完成的。導(dǎo)師淵博的專業(yè)知識、嚴謹?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴于律己、寬以待人的崇高風(fēng)范,樸實無法、平易近人的人格魅力對本人影響深遠。不僅使本人樹立了遠大的學(xué)習(xí)目標、掌握了基本的研究方法,還使本人明白了許多為人處事的道理。本次論文從選題到完成,每一步都是在導(dǎo)師的悉心指導(dǎo)下完成的,傾注了導(dǎo)師大量的心血。在此,謹向?qū)煴硎境绺叩木匆夂椭孕牡母兄x!在寫論文的過程中,遇到了很多的問題,在老師的耐心指導(dǎo)下,問題都得以解決。所以在此,再次對老師道一聲:老師,謝謝您!時光匆匆如流水,轉(zhuǎn)眼便是大學(xué)畢業(yè)時節(jié),春夢秋云,聚散真容易。離校日期已日趨漸進,畢業(yè)論文的完成也隨之進入了尾聲。從開始進入課題到論文的順利完成,一直都離不開老師、同學(xué)、朋友給我熱情的幫助,在這里請接受我誠摯的謝意!在此我向北京理工大學(xué)珠海學(xué)院的工業(yè)自動化的老師的感謝,謝謝你們?nèi)甑男燎谠耘?,謝謝你們在教學(xué)的同時更多的是傳授我們做人的道理,謝謝三年里面你們孜孜不倦的教誨!三年寒窗,所收獲的不僅僅是愈加豐厚的知識,更重要的是在閱讀、實踐中所培養(yǎng)的思維方式、表達能力和廣闊視野。很慶幸這三年來我遇到了如此多的良師益友,無論在學(xué)習(xí)上、生活上,還是工作上,都給予了我無私的幫助和熱心的照顧,讓我在一個充滿溫馨的環(huán)境中度過三年的大學(xué)生活。感恩之情難以用言語量度,謹以最樸實的話語致以最崇高的敬意

附錄一材料編號名稱型號單位數(shù)量備注1芯片AT89C52片12液晶顯示器LCD160213輕觸開關(guān)只34晶振12MHz只15電容33pF只36電阻只157電機200V塊28三極管PNP只29三極管NPN只110喇叭1V個111二極管2V只2附錄二程序

#include<AT89X51.H>

#defineu8unsignedchar

#defineu16unsignedint

#defineline010x80

#defineline020xc0

#defineDATA_BUSP0

sbitDQ=P2^7;

//ds18b20與單片機連接口

sbitEN=P2^0;

//lcd1602控制

sbitRS=P2^1;

//lcd1602與單片機控制接口

sbitRW=P2^2;

//lcd1602控制

sbitDetect=P3^2;

//檢測是否有人。

sbitMOTOR1=P2^4;

//電機1控制端

sbitMOTOR2=P2^5;

//電機2控制端

sbitLED0=P1^0;

//電機慢速指示

sbitLED1=P1^1;

//電機快速指示

sbitSet_Clock=P1^5;

//調(diào)定時控制

sbitAdjust_TL=P1^6;

//調(diào)TL控制

sbitAdjust_TH=P1^7;

//調(diào)TH控制

sbitKey_up=P3^6;

//+1操作鍵

sbitKey_dn=P3^7;

//-1操作鍵

u8codestr1[]={"TR:"};

u8codestr2[]={"TH:"};

u8codestr3[]={"

TL:"};

u8disdata[5];

u16Temperature;

//檢測到的溫度(擴大了10倍)

u16Temperature_H=300;

//預(yù)設(shè)的高溫控制溫度(擴大了10倍)

u16Temperature_L=200;

//預(yù)設(shè)的低溫控制溫度(擴大了10倍)

u8Clock_Timer=30;

//預(yù)設(shè)定時為30分鐘;

u8Temperature_flag;

//溫度正負標志

/*************************lcd1602程序**************************/

voiddelay1ms(u16ms)

//非精確延時1毫秒

{

u8i,j;

for(;ms>0;ms--)

for(i=2;i>0;i--)

for(j=250;j>0;j--);

}

voidwr_com(u8com)

//LCD1602寫指令//

{

delay1ms(1);

EN=0;

RS=0;

RW=0;

DATA_BUS=com;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

voidwr_dat(u8dat)

//LCD1602寫數(shù)據(jù)//

{

delay1ms(1);;

RS=1;

RW=0;

EN=0;

DATA_BUS=dat;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

voidlcd_init()

//初始化設(shè)置//

{

delay1ms(15);

wr_com(0x38);delay1ms(5);

wr_com(0x08);delay1ms(5);

wr_com(0x01);delay1ms(5);

wr_com(0x06);delay1ms(5);

wr_com(0x0c);delay1ms(5);

}

voidDisplay_String(u8*p)

//顯示//

{

while(*p!='\0')

{

wr_dat(*p);

p++;

delay1ms(10);

}

}

voidInit_Display_String()

//初始化顯示

{

lcd_init();

wr_com(0x80);

Display_String("Haveaniceday!");

wr_com(0xc0);

Display_String("

2020-03-29

");

}

/******************************ds1820程序***************************************/

voiddelay_18B20(u8i)

//延時i微秒

{

for(;i>0;i--);

}

voidds1820rst()

//*ds1820復(fù)位*/

{

u8x=0;

DQ=1;

//DQ復(fù)位

delay_18B20(4);

//延時

DQ=0;

//DQ拉低

delay_18B20(100);

//精確延時大于480us

DQ=1;

//拉高

delay_18B20(40);

}

u8ds1820rd()

//*讀數(shù)據(jù)*/

{

u8i=0;

u8dat=0;

for(i=8;i>0;i--)

{

DQ=0;

//給脈沖信號

dat>>=1;

DQ=1;

//給脈沖信號

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

voidds1820wr(u8wdata)

//*寫數(shù)據(jù)*/

{

u8i=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=wdata&0x01;

delay_18B20(10);

DQ=1;

wdata>>=1;

}

}

voidRead_Temperature()

//*讀取溫度值并轉(zhuǎn)換*/

{

u8a,b;

ds1820rst();

ds1820wr(0xcc);

//*跳過讀序列號*/

ds1820wr(0x44);

//*啟動溫度轉(zhuǎn)換*/

ds1820rst();

ds1820wr(0xcc);

//*跳過讀序列號*/

ds1820wr(0xbe);

//*讀取溫度*/

a=ds1820rd();

b=ds1820rd();

Temperature=a+b*256;

if(Temperature<=0x0fff)Temperature_flag=0;

else

{

Temperature=~Temperature+1;

Temperature_flag=1;

}

Temperature=Temperature*(0.625);//溫度值擴大10倍,以精確到1位小數(shù)

}

/*******************************************************************/

voidDisplay_Temperature()//溫度值顯示

{

disdata[0]=Temperature/1000+0x30;

//百位數(shù)

disdata[1]=Temperature/100%10+0x30;

//十位數(shù)

disdata[2]=Temperature/10%10+0x30;

//個位數(shù)

disdata[3]=Temperature%10+0x30;

//小數(shù)位

wr_com(0x80);

Display_String(str1);;

if(Temperature_flag==1)wr_dat(0x2d);

//顯示符號位

if(disdata[0]!=0x30)wr_dat(disdata[0]);

//顯示百位

wr_dat(disdata[1]);

//顯示十位

wr_dat(disdata[2]);

//顯示個位

wr_dat(0x2e);

//顯示小數(shù)點

wr_dat(disdata[3]);

//顯示小數(shù)位

wr_dat('C');

if(Set_Clock==0)

{

Display_String("

CLK:");

wr_dat(Clock_Timer/10+0x30);

wr_dat(Clock_Timer%10+0x30);

}

wr_com(0xc0);

Display_String(str2);

wr_dat(Temperature_H/100+0x30);

wr_dat(Temperature_H/10%10+0x30);

wr_dat('C');

Display_String(str3);

wr_dat(Temperature_L/100+0x30);

wr_dat(Temperature_L/10%10+0x30);

wr_dat('C');

}

voidMOTOR_control01()

{

if(Temperature>=Temperature_H)

//大于TH,電機全速

{

MOTOR1=0;

MOTOR2=1;

LED0=1;

LED1=0;

}

elseif(Temperature>=Temperature_L)

//小于TH大于TL,電機半速

{

MOTOR1=1;

MOTOR2=1;

LED0=1;

LED1=0;

}

else

//小于TL,電機關(guān)閉

{

MOTOR1=1;

MOTOR2=0;

LED0=1;

LED1=1;

}

}

voidMOTOR_control02()

//關(guān)閉電機

{

MOTOR1=1;

MOTOR2=1;

LED0=1;

LED1=1;

}

voidTimer0_init(void)

{

TMOD=0x01;

TH0=(65536-10000)/256;

//在這里,10000本應(yīng)該是50000的,為了加快仿真的效果,加速了5倍。

TL0=(65536-10000)%256;

TR0=1;

ET0=1;

EA=1;

}

/********************主程序***********************************/

voidmain()

{

Init_Display_String();

//初始化顯示

Read_Temperature();

//讀取溫度

MOTOR_control02();

//電機控制

delay1ms(1000);

//延時1秒

wr_com(0x01);

//LCD清屏

Display_Temperature();

//顯示溫度

Timer0_init();

while(1)

{

Read_Temperature();

//讀取溫度

Display_Temperature();

//顯示溫度

if(Detect==0)MOTOR_control01();

//電機控制

elseMOTOR_control02();

//電機停止

if(Adjust_TH==0)

//調(diào)節(jié)TH。

{

if(Key_up==0)

{

Temperature_H+=10;

if(Temperature_H>350)Temperature_H=350;

while(Key_up==0)Display_Temperature();

}

if(Key_dn==0)

{

Temperature_H-=10;

if(Temperature_H<=250)Temperature_H=250;

while(Key_up==0)Display_Temperature();

}

}

if(Adjust_TL==0)

//調(diào)節(jié)TL。

{

if(Key_up==0)

{

Temperature_L+=10;

if(Temperature_L>250)Temperature_L=250;

while(Key_up==0)Display_Temperature();

}

if(Key_dn==0)

{

Temperature_L-=10;

if(Temperature_L<=150)Temperature_H=150;

while(Key_up==0)Display_Temperature();

}

}

if(Set_Clock==0)

//調(diào)節(jié)定時。

{

if(Key_up==0)

{

EA=0;

Clock_Timer++;

if(Clock_Timer>90)Clock_Timer=90;

while(Key_up==0)Display_Temperature();

EA=1;

}

if(Key_dn==0)

{

EA=0;

Clock_Timer--;

if(Clock_Timer>90)Clock_Timer=0;

while(Key_up==0)Display_Temperature();

EA=1;

}

if(Clock_Timer==0)MOTOR_control02();

//在定時模式下,定時到則電機停止。

}

}

}

voidTimer0()interrupt1

//定時器0用于在定時模式下,控制電機工作。

{

u8i,sec;

//Clock_Timer

TH0=(65536-10000)/256;

//在這里,10000本應(yīng)該是50000的,為了加快仿真的效果,加速了5倍。

TL0=(65536-10000)%256;

i++;

if(i>=20)

{

i=0;

sec++;

if(sec>=60)

{

sec=0;

Clock_Timer--;

if(Clock_Timer==0)Clock_Timer=0;

}

}

}

附錄三英文文獻附錄四英文文獻翻譯加熱爐溫度模型的預(yù)測模糊PID控制摘要:在傳統(tǒng)的PID控制方案中,由于自由度的限制,整體控制性能可能不理想?;谶@種背景,本文提出了一種繼承模糊PID控制和預(yù)測函數(shù)控制優(yōu)點的新型PID控制方法,并在加熱爐溫度模型上進行了試驗。在PFC框架的基礎(chǔ)上,引入模糊PID控制來獲得最優(yōu)控制律,進而得到一種改進的PID控制策略。最后,以加熱爐溫度模型為例,與常規(guī)PID控制和模糊自適應(yīng)PID控制相比,證明了所提出的PID控制方案的有效性。關(guān)鍵詞:預(yù)測函數(shù)控制、模糊控制、PID控制、溫度調(diào)節(jié)1簡介傳統(tǒng)的PID控制由于其結(jié)構(gòu)簡單、適應(yīng)性強等優(yōu)點,在各種工業(yè)過程中得到了廣泛的應(yīng)用,但由于其時變和非線性的影響,其性能可能不盡如人意。由于難以獲得精確的過程模型,采用傳統(tǒng)的PID控制很難進一步獲得改進的控制效果[1-2]。PID控制的研究自提出以來從未停止過,經(jīng)典的整定方法有很多[3-6]。Zhang等人。將預(yù)測函數(shù)控制(PFC)與常規(guī)PID控制相結(jié)合,提出了一種新的PID控制器,并在工業(yè)分餾塔上進行了性能測試[7]。工業(yè)加熱爐的溫度具有非線性、時滯、時變性等特點,控制難度大。非線性控制方法有很多,如模糊控制、時滯控制、滑??刂?、神經(jīng)元模型自適應(yīng)PID等。模糊控制廣泛應(yīng)用于非線性控制中,它是基于模糊集、模糊邏輯和模糊推理的復(fù)雜系統(tǒng)[12]。采用模糊控制算法的自適應(yīng)系統(tǒng)不僅使控制系統(tǒng)更加可靠,而且獲得了良好的控制性能[13]。模糊控制具有很強的適應(yīng)性,不需要精確的被控過程模型。為了克服傳統(tǒng)PID控制的缺點,可以將模糊控制和PID控制結(jié)合起來。模型/設(shè)備失配的缺陷可以通過預(yù)測控制中可能出現(xiàn)的預(yù)測誤差來補償[14-15]?;诜蔷€性系統(tǒng)的輸出誤差預(yù)測,時變預(yù)測PID控制器可以解決一般預(yù)測PID控制器在系統(tǒng)約束條件下的設(shè)計問題[16]。將模糊控制與預(yù)測控制相結(jié)合,利用模糊推理對預(yù)測誤差進行補償[17-19]。將模糊控制

溫馨提示

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

評論

0/150

提交評論