版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)在溫度控制器的應(yīng)用摘要單片機(jī)系統(tǒng)的開發(fā)應(yīng)用給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來了一次新的技術(shù)革命,自動(dòng)化、智能化均離不開單片機(jī)的應(yīng)用。單片機(jī)由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力和流量也都是常用的被控參數(shù)。
本文介紹了“基于單片機(jī)的溫度控制系統(tǒng)”的設(shè)計(jì)及其相關(guān)內(nèi)容。系統(tǒng)屬于典型的基于單片機(jī)的大慣性環(huán)節(jié)的PID閉環(huán)控制裝置,通用性很強(qiáng),在工業(yè)過程控制中有著廣泛的應(yīng)用??刂葡到y(tǒng)中引入單片機(jī),可以充分利用單片機(jī)在對(duì)采集數(shù)據(jù)加以分析并根據(jù)所得結(jié)果做出邏輯判斷等方面的能力,編制出符合某種技術(shù)要求的控制程序、管理程序,實(shí)現(xiàn)對(duì)被控參數(shù)的控制與管理。
本論文介紹了基于單片機(jī)的溫度控制系統(tǒng)的硬件設(shè)計(jì)和軟件開發(fā)的過程。共分五章:第一章介紹了背景和總體的設(shè)計(jì)思路;第二章介紹了AT89C51單片機(jī)的基本知識(shí);第三章對(duì)系統(tǒng)設(shè)計(jì)中所涉及的一些主要的芯片做了簡單的介紹;第四章介紹了系統(tǒng)硬件電路的設(shè)計(jì);第五章介紹了系統(tǒng)的軟件設(shè)計(jì)過程。關(guān)鍵詞:單片機(jī);溫度控制;PID目錄基于單片機(jī)在溫度控制器的應(yīng)用 1摘要 1第一章緒論 2第二章系統(tǒng)的需求和總體思路 32.1功能需求 32.2總體思路 32.3操作模式的規(guī)劃 4第三章系統(tǒng)元器件及相關(guān)算法介紹 43.1ADuC812單片機(jī) 43.1.1ADuC812的主要性能 43.1.2ADuC812的系統(tǒng)開發(fā) 63.2溫度檢測(cè)元件的選擇 63.3PID算法介紹 10第四章系統(tǒng)設(shè)計(jì) 134.1硬件電路設(shè)計(jì) 144.1.1溫度檢測(cè)電路 144.1.2溫度控制原理 144.1.3PID控制算法的實(shí)現(xiàn) 154.1.4控制器與PC之間的數(shù)據(jù)通信 164.2 程序設(shè)計(jì) 16第五章系統(tǒng)調(diào)試…………….總結(jié)參考文獻(xiàn)附錄第一章緒論溫度的測(cè)量與控制是生產(chǎn)過程自動(dòng)化的重要任務(wù)之一。溫度控制系統(tǒng)在工業(yè)控制中應(yīng)用廣泛,如在電廠建設(shè)、石油化工、冶金、機(jī)械制造、食品加工等行業(yè)中應(yīng)用十分普遍。主要是通過將工業(yè)控制現(xiàn)場(chǎng)的溫度模擬量通過傳感器采集,再經(jīng)過AD/轉(zhuǎn)換成數(shù)字量輸入計(jì)算機(jī),由溫度控制系統(tǒng)軟件實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、處理、顯示的過程。如今在很多溫度控制系統(tǒng)中,一般是選用單片機(jī)來實(shí)現(xiàn)。溫度控制有很多方式,如采用模擬儀表控制、數(shù)字儀表控制、單片機(jī)控制、PLC控制、微機(jī)控制等等。近年來,隨著計(jì)算機(jī)技術(shù)、電力電子技術(shù)的飛速發(fā)展以及對(duì)控制對(duì)象在線控制條件、技術(shù)參數(shù)、控制效果及質(zhì)量等方面越來越高的要求,使得采用工業(yè)控制計(jì)算機(jī)進(jìn)行溫度控制在現(xiàn)代化的工農(nóng)業(yè)領(lǐng)域中得到了愈來愈廣泛的應(yīng)用。大到糧庫、程控交換機(jī)、大型溫室等場(chǎng)合,小到變頻空調(diào)甚至現(xiàn)在的一些CP機(jī)的主板都用到了溫度監(jiān)控系統(tǒng)。由于溫度控制是工業(yè)生產(chǎn)中典型的過程控制問題,對(duì)溫度進(jìn)行準(zhǔn)確的測(cè)量和有效的控制是一些設(shè)備優(yōu)質(zhì)高產(chǎn)、低耗和安全生產(chǎn)的重要指標(biāo)。隨著生產(chǎn)的發(fā)展,對(duì)溫度控制的要求將會(huì)越來越高。本課題屬工業(yè)控制過程研究領(lǐng)域,所謂過程控制系統(tǒng)是指自動(dòng)控制系統(tǒng)的被控量是溫度、壓力、流量、液位成分、粘度、濕度以及HP值等這樣一些過程變量的系統(tǒng)。如今,隨著自動(dòng)控制理論與技術(shù)的迅速發(fā)展,特別是現(xiàn)代控制理論和微機(jī)技術(shù)的發(fā)展,大大促進(jìn)了工業(yè)自動(dòng)化的進(jìn)程,但PDI控制仍舊是工業(yè)控制的主力軍。最初的PID控制器是利用氣動(dòng)系統(tǒng)構(gòu)成的。在50年代運(yùn)算放大器出現(xiàn)以后,電子元器件取代了氣動(dòng)元件。60年代后,由于計(jì)算機(jī)控制的出現(xiàn)使得PDI控制發(fā)展到DDC階段,即計(jì)算機(jī)直接作為執(zhí)行機(jī)構(gòu)來控制被控對(duì)象。70年代微處理器的出現(xiàn),使過程控制發(fā)展到分散控制階段,PID控制器則是它的主要組成部分。80年代開始在單回路PID控制器中引入了參數(shù)整定和自適應(yīng)控制理論,PID控制理論從此進(jìn)入了高速發(fā)展階段。PDI控制器在實(shí)際控制工程中應(yīng)用最廣,其被廣泛應(yīng)用主要是因?yàn)樗Y(jié)構(gòu)簡單、在實(shí)際中容易被理解和實(shí)現(xiàn),而且許多高級(jí)控制都是以PID控制為基礎(chǔ)的。傳統(tǒng)的PID控制器主要問題是參數(shù)整定問題。方法是在獲取對(duì)象數(shù)學(xué)模型的基礎(chǔ)上,根據(jù)某一整定原則來確定PDI參數(shù),其整定一般需要經(jīng)驗(yàn)豐富的工程技術(shù)人員來完成,既耗時(shí)又耗力,加之實(shí)際系統(tǒng)千差萬別,又有滯后、非線性等因素,使PID參數(shù)的整定有一定的難度,致使許多PID控制器沒能整定的很好,這樣的系統(tǒng)自然無法工作在令人滿意的狀態(tài)。而且參數(shù)一旦整定計(jì)算好以后,在整個(gè)控制過程中都是固定不變的。而在實(shí)際系統(tǒng)中,由于系統(tǒng)在控制過程中會(huì)出現(xiàn)狀態(tài)和參數(shù)的不確定性,因此在現(xiàn)代工業(yè)控制中,采用傳統(tǒng)的PDI控制器已難以獲得滿意的控制效果。所以越來越多的新型PDI控制器得到了人們的重視。近幾年來有眾多的先進(jìn)PDI技術(shù)不斷涌現(xiàn)出來,如最優(yōu)控制、模糊控制、智能控制、自適應(yīng)控制等,本人也將以溫度控制實(shí)驗(yàn)系統(tǒng)為實(shí)際工程背景對(duì)一些先進(jìn)的PDI技術(shù)進(jìn)行研究。第二章系統(tǒng)的需求和總體思路2.1功能需求單回路溫度控制器實(shí)際上是以單片機(jī)控制為核心,根據(jù)社頂目標(biāo)溫度值進(jìn)行自動(dòng)或手動(dòng)調(diào)節(jié)的單回路溫度控制系統(tǒng),主要包括溫度檢測(cè),溫度控制,參數(shù)顯示,報(bào)警指示等部分。根據(jù)模式值,可查看相應(yīng)的參數(shù),如溫度值,溫度上限報(bào)警值等,并根據(jù)需要可對(duì)參數(shù)進(jìn)行修改,保存等。同時(shí)本系統(tǒng)還配有上位機(jī),可以由上位修改設(shè)定溫度,并啟動(dòng)通信,實(shí)時(shí)顯示溫度值和趨勢(shì)曲線,與下位機(jī)配合可構(gòu)成一套完整的溫度監(jiān)控系統(tǒng)。主要功能如下:①設(shè)定溫度顯示,實(shí)時(shí)溫度顯示②溫度上限報(bào)警,溫度報(bào)警上限值設(shè)定③溫度下限報(bào)警,溫度報(bào)警下限值設(shè)定④目標(biāo)溫度設(shè)定⑤放大電路放大倍數(shù)設(shè)定⑥P,I,D控制參數(shù)的設(shè)定⑦手動(dòng)加熱設(shè)定值⑧手動(dòng)/自動(dòng)設(shè)定⑨溫度零點(diǎn)標(biāo)定⑩參數(shù)保存⑾上位機(jī)設(shè)定目標(biāo)溫度值⑿上位機(jī)顯示實(shí)時(shí)溫度波形曲線圖2.2總體思路溫度控制系統(tǒng)包括實(shí)現(xiàn)溫度控制的CPU——ADUC812,溫度測(cè)量裝置,加熱元件,溫度參數(shù)顯示,SSR,輔助控制電路等。整個(gè)系統(tǒng)硬件結(jié)構(gòu)如圖10.1所示,其對(duì)應(yīng)的硬件線路可參考。數(shù)碼管用來顯示模式值及相應(yīng)的參數(shù),通過控鍵可改變模式值及修改相應(yīng)的參數(shù)值。CPU根據(jù)溫度值對(duì)上,下限報(bào)警值進(jìn)行比較,控制報(bào)警燈的狀態(tài)。本系統(tǒng)采用周波來控制加熱爐的溫度。K分度熱電偶作為溫度傳感器,是檢測(cè)電路關(guān)鍵部件。傳感信號(hào)通過放大,濾波等處理,可直接有CPU進(jìn)行A/D轉(zhuǎn)換,換算為相應(yīng)的溫度測(cè)量值。根據(jù)測(cè)量值和設(shè)定值之差,進(jìn)行PID運(yùn)算,將計(jì)算結(jié)果轉(zhuǎn)換為周波數(shù),通過控制SSR通過的周波數(shù)來控制加熱爐的溫度。2.3操作模式的規(guī)劃基于數(shù)碼管的單回路控制器,往往使用菜單模式來切換所有的顯示參數(shù),只有在當(dāng)前模式下才能修改和顯示其對(duì)應(yīng)的參數(shù)。本系統(tǒng)可用3個(gè)按鍵實(shí)現(xiàn)模式切換和參數(shù)修改操作,所以這3個(gè)鍵分別定義為模式鍵,數(shù)值增加鍵和數(shù)值減少鍵,用8個(gè)數(shù)碼管顯示模式和對(duì)應(yīng)的參數(shù),左邊4個(gè)數(shù)碼管顯示模式值,右邊4個(gè)數(shù)碼顯示相應(yīng)的參數(shù)值。根據(jù)系統(tǒng)的功能需求,應(yīng)該設(shè)計(jì)10種模式,各模式的定義如下:模式0:溫度設(shè)定值和溫度實(shí)時(shí)值顯示;模式1:設(shè)置和顯示溫度上限報(bào)警值(0~1200)模式2:設(shè)置和顯示溫度下限報(bào)警值(0~1200)模式3:設(shè)置和顯示設(shè)定值得(0~1200)模式4:設(shè)置實(shí)時(shí)溫度采集放大電路的方法倍數(shù)模式5:設(shè)置和顯示PID算法中的比例系數(shù)(0.00~50.00)模式6:設(shè)置和顯示PID算法中的積分系數(shù)(0.00~50.00)模式7:設(shè)置和顯示PID算法中的微分系數(shù)(0.00~50.00)模式8:設(shè)置和顯示手動(dòng)輸入值(0~100)模式9:手動(dòng)/自動(dòng)切換(1:手動(dòng);0:自動(dòng))模式10:標(biāo)定和顯示實(shí)時(shí)溫度的零點(diǎn)。第三章系統(tǒng)元器件及相關(guān)算法介紹3.1ADuC812單片機(jī)目前,單片機(jī)開發(fā)者接觸的數(shù)字控制系統(tǒng),還有很大一部分反饋和最終控制的都是模擬量,這種控制系統(tǒng),都需要有A/D、D/A轉(zhuǎn)換,為了節(jié)約這類嵌入式控制系統(tǒng)的體積以及開發(fā)成本,AD公司新推出了一種單片機(jī)ADuC812,它把AD公司多年生產(chǎn)A/D、D/A轉(zhuǎn)換器的經(jīng)驗(yàn)和Intel成熟的51單片機(jī)技術(shù)結(jié)合在一起。ADuC812是一個(gè)全集成的12位數(shù)據(jù)采集控制系統(tǒng),在單個(gè)芯片內(nèi)集成了高性能的自校準(zhǔn)多通道ADC,2個(gè)12位DAC以及可編程的8位(與51兼容)MCU[1]。由于它許多的優(yōu)越性能,以及便宜的價(jià)格,為我們提供了一種方便、快捷、廉價(jià)的數(shù)字控制系統(tǒng)設(shè)計(jì)模式。3.1.1ADuC812的主要性能ADuC812片內(nèi)帶有8kB的閃速/電擦除(Flash/EE)程序存儲(chǔ)器、640B的閃速/電擦除數(shù)據(jù)存儲(chǔ)器以及256B的SRAM,對(duì)于普通的數(shù)字控制系統(tǒng)這些一般可以滿足控制器對(duì)存儲(chǔ)空間的需要,不需要外加存儲(chǔ)器芯片。雖然如此,ADuC812還能外接最多16MB的外部數(shù)據(jù)存儲(chǔ)器和最多64kB的外部程序存儲(chǔ)器??梢酝饨痈叽鎯?chǔ)量的數(shù)據(jù)存儲(chǔ)器使該型單片機(jī)能夠在數(shù)據(jù)采集系統(tǒng)以及其它需要高存儲(chǔ)空間的系統(tǒng)中使用。采集速率,也就是A/D轉(zhuǎn)換的速度最高可以達(dá)到200kb/s(12MHz晶振)。AduC812自帶2.5V電壓基準(zhǔn);八通道高精度12位ADC,2個(gè)12位電壓輸出DAC。由于具有和8051兼容的內(nèi)核,除了某些特殊功能(如ADC、DAC)的程序編寫外,其它程序的編寫完全和51一樣,這使51單片機(jī)的開發(fā)者很容易學(xué)會(huì)開發(fā)ADuC812單片機(jī)系統(tǒng)。圖2一1AduC812的功能方框圖在外圍接口上面,ADuC812帶有32條可編程的I/O線,包括UART串行口I/O,2線(與I2C兼容)SPI串行I/O。ADuC812和51系列單片機(jī)開發(fā)一個(gè)顯著的差別就是ADuC812不需要購買專門的單片機(jī)開發(fā)系統(tǒng),只需要有QuikStart軟件包,就可以通過串口從上微機(jī)直接把程序代碼寫入ADuC812的程序存儲(chǔ)器中。QucikStart開發(fā)系統(tǒng)是一個(gè)功能完善的ADuC812單片機(jī)系列開發(fā)工具包,可以從AD公司下載,在國內(nèi)也可以從武漢力源公司網(wǎng)站下載。QuikStart軟件包的主要功能有:代碼開發(fā),完整的匯編器和C編譯器(限制2kB代碼);代碼下載,閃速電擦除UART串行下載器,在一切硬件都準(zhǔn)備好以后,運(yùn)行代碼下載程序就可以把程序代碼寫入到ADuC812芯片中;芯片資料文檔,這些文檔中有關(guān)于ADuC812單片機(jī)性能最完整的介紹。在代碼下載前,先把ADuC812的串行接口和計(jì)算機(jī)的串口依次接好。在ADuC812的52根引腳中,有一根控制引腳PSEN,上電復(fù)位時(shí),如果PSEN引腳接+VCC,芯片上電后就處在正常工作狀態(tài),反之,如果PSEN引腳通過1kΩ的電阻接地,如圖2一2所示,則芯圖2一2程序下載時(shí)PSEN引腳接法片上電后,就處如閃速/電擦除程序串行下載模式,這時(shí),運(yùn)行Quik-Start軟件包中的Download.exe程序就可以把單片機(jī)的程序代碼寫入到ADuC812的閃速/電擦除程序存儲(chǔ)器中,寫入前,下載軟件會(huì)自動(dòng)對(duì)存儲(chǔ)器進(jìn)行電擦除。這個(gè)功能為ADuC812單片機(jī)系統(tǒng)的開發(fā)提供了一個(gè)非常便利的條件。開發(fā)者可以在既不需要購買專門的開發(fā)系統(tǒng)又可以在調(diào)試過程中不取下芯片的情況下,根據(jù)需要對(duì)ADuC812的片內(nèi)存儲(chǔ)器進(jìn)行多次電擦除-寫入操作。作者建議,在PESN引腳端通過跳線器分別接+VCC和10AduC812單片機(jī)控制系統(tǒng)的開發(fā)通過1kΩ電阻接地,這樣,只要在上電復(fù)位前,選擇跳線器的狀態(tài)就可以決定上電后,芯片是進(jìn)入工作狀態(tài)還是進(jìn)入編程狀態(tài)。連接上位機(jī)和單片機(jī)之間的串行線也可以作為單片機(jī)正常工作時(shí),單片機(jī)和上位機(jī)之間的串行數(shù)據(jù)線。3.1.2ADuC812的系統(tǒng)開發(fā)(1)硬件設(shè)計(jì)根據(jù)AduC812的特點(diǎn),硬件設(shè)計(jì)中需要注意的問題有ADuC812采用的是52引腳塑料四方型扁平封裝(S-52),引腳之間的間距為0.65mm,和ADuC812相連的印制版線路不能大于引腳自己的寬度0.1mm(14mil),所以對(duì)印制電路板制造和焊接工藝都有一定的要求,特別是采用手工焊接時(shí),最好請(qǐng)專門的焊接師。A/D、D/A轉(zhuǎn)換時(shí),芯片自己提供的基準(zhǔn)準(zhǔn)電壓為2.5V,如果外接基準(zhǔn)電壓則不能超過5V,對(duì)于12位ADC,轉(zhuǎn)換靈敏度為0.5mV/B。這對(duì)印制電路板抗干擾能力的要求比較高,要求電路板中A/D、D/A轉(zhuǎn)換端的干擾電壓要小于0.5mV,否則會(huì)降低轉(zhuǎn)換精度。ADuC812芯片對(duì)復(fù)位電路要求比較嚴(yán)格,不能采用普通的電阻-電容式復(fù)位電路,否則上電后,單片機(jī)不工作,程序無法下載。一般要求采用專門的復(fù)位電路芯片,注意到ADuC812是高電平復(fù)位,以選X5045芯片為宜,如果采用X5043就要先通過一個(gè)非門電路再接到單片機(jī)的復(fù)位端。雖然ADuC812有自己的看門狗電路,但是,一般單片機(jī)自帶的看門狗并不能很好地保證工作的穩(wěn)定性,外接X5045還可以起到看門狗的作用。(2)軟件設(shè)計(jì)ADuC812單片機(jī)程序代碼可以用匯編語言編寫,也可以用C語言編寫,在普通的編輯環(huán)境下(如DOS中的EDIT編輯環(huán)境中)編輯好后,再用QuikStart軟件包提供的匯編編譯器或C編譯器進(jìn)行編譯。QuikStart軟件包中的可執(zhí)行程序都是構(gòu)建在DOS平臺(tái)上的,要在DOS環(huán)境下運(yùn)行這些軟件。在用到A/D轉(zhuǎn)換結(jié)果時(shí)要注意ADuC812單片機(jī)的A/D原始轉(zhuǎn)換結(jié)果,由于干擾的原因,有時(shí)候會(huì)達(dá)不到12位精度要求,所以對(duì)A/D轉(zhuǎn)換的結(jié)果要進(jìn)行低通濾波處理后再使用,可以取多次轉(zhuǎn)換的平均值作為A/D轉(zhuǎn)換的實(shí)際結(jié)果去進(jìn)行其他的計(jì)算。實(shí)例表明,只要硬件和軟件設(shè)計(jì)得當(dāng),A/D、D/A轉(zhuǎn)換完全可以達(dá)到12位精度。程序代碼下載的步驟為:在所有硬件都準(zhǔn)備好后,首先用編譯器(匯編器為ASM51.EXE)把在其他編譯環(huán)境中編寫好的ASM文件編譯成后綴為HEX的文件;然后用Download執(zhí)行程序?qū)幾g好的HEX文件進(jìn)行處理,就可以把代碼寫入到ADuC812的閃速/電擦除程序存儲(chǔ)器中。在DOS環(huán)境下,以上兩步的命令如下:ASM51*.ASMDOWNLOAD*.HEX3.2溫度檢測(cè)元件的選擇溫度傳感器,使用范圍廣,數(shù)量多,居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng)歷了以下3個(gè)階段:1.傳統(tǒng)的分立式溫度傳感器(含敏感元件),主要是能夠進(jìn)行非電量和電量之間轉(zhuǎn)換。2.模擬集成溫度傳感器/控制器。3.智能溫度傳感器。目前,國際上新型溫度傳感器正從模擬式想數(shù)字式、集成化向智能化及網(wǎng)絡(luò)化的方向發(fā)展。溫度傳感器的分類溫度傳感器按傳感器與被測(cè)介質(zhì)的接觸方式可分為兩大類:一類是接觸式溫度傳感器,一類是非接觸式溫度傳感器。接觸式溫度傳感器的測(cè)溫元件與被測(cè)對(duì)象要有良好的熱接觸,通過熱傳導(dǎo)及對(duì)流原理達(dá)到熱平衡,這是的示值即為被測(cè)對(duì)象的溫度。這種測(cè)溫方法精度比較高,并可測(cè)量物體內(nèi)部的溫度分布。但對(duì)于運(yùn)動(dòng)的、熱容量比較小的及對(duì)感溫元件有腐蝕作用的對(duì)象,這種方法將會(huì)產(chǎn)生很大的誤差。非接觸測(cè)溫的測(cè)溫元件與被測(cè)對(duì)象互不接觸。常用的是輻射熱交換原理。此種測(cè)穩(wěn)方法的主要特點(diǎn)是可測(cè)量運(yùn)動(dòng)狀態(tài)的小目標(biāo)及熱容量小或變化迅速的對(duì)象,也可測(cè)量溫度場(chǎng)的溫度分布,但受環(huán)境的影響比較大。溫度傳感器的發(fā)展1.傳統(tǒng)的分立式溫度傳感器——熱電偶傳感器熱電偶傳感器是工業(yè)測(cè)量中應(yīng)用最廣泛的一種溫度傳感器,它與被測(cè)對(duì)象直接接觸,不受中間介質(zhì)的影響,具有較高的精度;測(cè)量范圍廣,可從-50~1600℃進(jìn)行連續(xù)測(cè)量,特殊的熱電偶如金鐵——鎳鉻,最低可測(cè)到-269℃,鎢——錸最高可達(dá)2.模擬集成溫度傳感器集成傳感器是采用硅半導(dǎo)體集成工藝制成的,因此亦稱硅傳感器或單片集成溫度傳感器。模擬集成溫度傳感器是在20世紀(jì)80年代問世的,它將溫度傳感器集成在一個(gè)芯片上、可完成溫度測(cè)量及模擬信號(hào)輸出等功能。模擬集成溫度傳感器的主要特點(diǎn)是功能單一(僅測(cè)量溫度)、測(cè)溫誤差小、價(jià)格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測(cè)溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路簡單。熱電偶是一種感溫元件,是一次儀表,它直接測(cè)量溫度,并把溫度信號(hào)轉(zhuǎn)換成熱電動(dòng)勢(shì)信號(hào),通過電氣儀表(二次儀表)轉(zhuǎn)換成被測(cè)介質(zhì)的溫度。熱電偶測(cè)溫的基本原理是兩種不同成份的材質(zhì)導(dǎo)體組成閉合回路,當(dāng)兩端存在溫度梯度時(shí),回路中就會(huì)有電流通過,此時(shí)兩端之間就存在電動(dòng)勢(shì)——熱電動(dòng)勢(shì),這就是所謂的塞貝克效應(yīng)。兩種不同成份的均質(zhì)導(dǎo)體為熱電極,溫度較高的一端為工作端,溫度較低的一端為自由端,自由端通常處于某個(gè)恒定的溫度下。根據(jù)熱電動(dòng)勢(shì)與溫度的函數(shù)關(guān)系,制成熱電偶分度表;分度表是自由端溫度在0℃在熱電偶回路中接入第三種金屬材料時(shí),只要該材料兩個(gè)接點(diǎn)的溫度相同,熱電偶所產(chǎn)生的熱電勢(shì)將保持不變,即不受第三種金屬接入回路中的影響。因此,在熱電偶測(cè)溫時(shí),可接入測(cè)量儀表,測(cè)得熱電動(dòng)勢(shì)后,即可知道被測(cè)介質(zhì)的溫度。編輯本段工作原理兩種不同成份的導(dǎo)體(稱為熱電偶絲材或熱電極)兩端接合成回路,當(dāng)接合點(diǎn)的溫度不同時(shí),在回路中就會(huì)產(chǎn)生電動(dòng)勢(shì),這種現(xiàn)象稱為熱電效應(yīng),而這種電動(dòng)勢(shì)稱為熱電勢(shì)。熱電偶就是利用這種原理進(jìn)行溫度測(cè)量的,其中,直接用作測(cè)量介質(zhì)溫度的一端叫做工作端(也稱為測(cè)量端),另一端叫做冷端(也稱為補(bǔ)償端);冷端與顯示儀表或配套儀表連接,顯示儀表會(huì)指出熱電偶所產(chǎn)生的熱電勢(shì)。熱電偶實(shí)際上是一種能量轉(zhuǎn)換器,它將熱能轉(zhuǎn)換為電能,用所產(chǎn)生的熱電勢(shì)測(cè)量溫度,對(duì)于熱電偶的熱電勢(shì),應(yīng)注意如下幾個(gè)問題:1:熱電偶的熱電勢(shì)是熱電偶兩端溫度函數(shù)的差,而不是熱電偶兩端溫度差的函數(shù);2:熱電偶所產(chǎn)生的熱電勢(shì)的大小,當(dāng)熱電偶的材料是均勻時(shí),與熱電偶的長度和直徑無關(guān),只與熱電偶材料的成份和兩端的溫差有關(guān);3:當(dāng)熱電偶的兩個(gè)熱電偶絲材料成份確定后,熱電偶熱電勢(shì)的大小,只與熱電偶的溫度差有關(guān);若熱電偶冷端的溫度保持一定,這進(jìn)熱電偶的熱電勢(shì)僅是工作端溫度的單值函數(shù)。將兩種不同材料的導(dǎo)體或半導(dǎo)體A和B焊接起來,構(gòu)成一個(gè)閉合回路,如圖所示。當(dāng)導(dǎo)體A和B的兩個(gè)執(zhí)著點(diǎn)1和2之間存在溫差時(shí),兩者之間便產(chǎn)生電動(dòng)勢(shì),因而在回路中形成一個(gè)大小的電流,這種現(xiàn)象稱為熱電效應(yīng)。熱電偶就是利用這一效應(yīng)來工作的。編輯本段特點(diǎn)◆裝配簡單,更換方便◆壓簧式感溫元件,抗震性能好◆測(cè)量范圍大◆機(jī)械強(qiáng)度高,耐壓性能好編輯本段熱電偶-種類及結(jié)構(gòu)形成(1)熱電偶的種類常用熱電偶可分為標(biāo)準(zhǔn)熱電偶和非標(biāo)準(zhǔn)熱電偶兩大類。所調(diào)用標(biāo)準(zhǔn)熱電偶是指國家標(biāo)準(zhǔn)規(guī)定了其熱電勢(shì)與溫度的關(guān)系、允許誤差、并有統(tǒng)一的標(biāo)準(zhǔn)分度表的熱電偶,它有與其配套的顯示儀表可供選用。非標(biāo)準(zhǔn)化熱電偶在使用范圍或數(shù)量級(jí)上均不及標(biāo)準(zhǔn)化熱電偶,一般也沒有統(tǒng)一的分度表,主要用于某些特殊場(chǎng)合的測(cè)量。標(biāo)準(zhǔn)化熱電偶我國從1988年1月1日起,熱電偶和熱電阻全部按IEC國際標(biāo)準(zhǔn)生產(chǎn),并指定S、B、E、K、R、J、T七種標(biāo)準(zhǔn)化熱電偶為我國統(tǒng)一設(shè)計(jì)型熱電偶。(2)熱電偶的結(jié)構(gòu)形式為了保證熱電偶可靠、穩(wěn)定地工作,對(duì)它的結(jié)構(gòu)要求如下:①組成熱電偶的兩個(gè)熱電極的焊接必須牢固;②兩個(gè)熱電極彼此之間應(yīng)很好地絕緣,以防短路;③補(bǔ)償導(dǎo)線與熱電偶自由端的連接要方便可靠;④保護(hù)套管應(yīng)能保證熱電極與有害介質(zhì)充分隔離。編輯本段常用熱電偶材料熱電偶分度號(hào)熱電極材料正極負(fù)極S鉑銠10純鉑R鉑銠13純鉑B鉑銠30鉑銠6K鎳鉻鎳硅T純銅銅鎳J鐵銅鎳N鎳鉻硅鎳硅E鎳鉻銅鎳熱電偶的種類:裝配熱電偶,鎧裝熱電偶,端面熱電偶,壓簧固定熱電偶,高溫?zé)犭娕迹K銠熱電偶,防腐熱電偶,耐磨熱電偶,高壓熱電偶,特殊熱電偶,手持式熱電偶,微型熱電偶,貴金屬熱電偶等等。K型熱電偶也即鎳鉻-鎳硅熱電偶,常用熱電偶分度號(hào)有S、B、K、E、T、J等,這些都是標(biāo)準(zhǔn)化熱電偶。熱電偶的原理:它是將兩種不同材料的金屬導(dǎo)體組成閉合回路,一端放在被測(cè)介質(zhì)中感受溫度變化,稱為熱端,另一端為冷端。當(dāng)冷端和熱端溫度不同時(shí),在回路中就會(huì)產(chǎn)生一定方向和大小的電勢(shì),如此使冷端溫度不變,則熱電勢(shì)只與另一端溫度相關(guān),這樣,只要測(cè)得熱電勢(shì)的大小即可知道溫度的大小。所以熱電偶的電流可以不考慮,測(cè)量它的毫伏電勢(shì)就行啦。K型熱電偶,它是一種能測(cè)量較高溫度的廉價(jià)熱偶。由于這種合金具有較好的高溫抗氧化性,可適用于氧化性或中性介質(zhì)中。它可長期測(cè)量1000度的高溫,短期可測(cè)到1200度。它不能用于還原性介質(zhì)中,否則,很快腐蝕,在此情況下只能用于500度以下的測(cè)量。它比S型熱偶要便宜很多,它的重復(fù)性很好,產(chǎn)生的熱電勢(shì)大,約為0.041mV/度,因而靈敏度很高,而且它的線性很好。雖然其測(cè)量精度略低,但完全能滿足工業(yè)測(cè)溫要求,所以它是工業(yè)上最常用的熱電偶。常用熱電偶分度號(hào)有S、B、K、E、T、J等,這些都是標(biāo)準(zhǔn)化熱電偶。其中K型也即鎳鉻-鎳硅熱電偶,它是一種能測(cè)量較高溫度的廉價(jià)熱偶。由于這種合金具有較好的高溫抗氧化性,可適用于氧化性或中性介質(zhì)中。它可長期測(cè)量1000度的高溫,短期可測(cè)到1200度。它不能用于還原性介質(zhì)中,否則,很快腐蝕,在此情況下只能用于500度以下的測(cè)量。它比S型熱偶要便宜很多,它的重復(fù)性很好,產(chǎn)生的熱電勢(shì)大,因而靈敏度很高,而且它的線性很好。雖然其測(cè)量精度略低,但完全能滿足工業(yè)測(cè)溫要求,所以它是工業(yè)上最常用的熱電偶。先確定熱電偶的外觀沒有問題,是好是壞,得通過檢測(cè)才能確定。將待測(cè)熱電偶穿上熱電偶專用的瓷套管,和標(biāo)準(zhǔn)鉑銠熱電偶一起放入管式電爐中,將熱端插入管式電爐中的一個(gè)多孔的均熱用的金屬鎳制成的圓柱體中。將各自的補(bǔ)償導(dǎo)線的冷端放入由冰水混合物保持的零攝氏度的容器中。將管式電爐保持在該熱電偶的許用最高溫度,并穩(wěn)定保持這個(gè)范圍。這時(shí)候用經(jīng)過檢測(cè)合格的惠司登電位差計(jì),測(cè)出標(biāo)準(zhǔn)熱電偶和待測(cè)熱電偶產(chǎn)生的熱電勢(shì)差并記錄。根據(jù)記錄的熱電勢(shì)差,查表查出各自對(duì)應(yīng)的溫度,如果待測(cè)熱電偶超差,可以判定為不合格。這種管式電爐,不是分析化學(xué)用的硅碳棒管式電爐。對(duì)于不合格的熱電偶,可以從熱端切斷一小段,重新焊接。焊接的方法很簡單,對(duì)普通的鎳鉻熱電偶,可以用自耦變壓器調(diào)至較低電壓,用熱電偶的兩根絲并成一極,另一極用碳棒,直接引燃電弧,兩根熱電偶絲會(huì)在頭上熔成一個(gè)小球狀。這種操作不難,可以調(diào)整電壓,很快就會(huì)掌握。這種焊接使用的是自耦變壓器,千萬注意絕緣以保安全。對(duì)貴重的鉑銠熱電偶的焊接,是另一種方法。將調(diào)壓后的電源一極插入氯化鈉水溶液,另一極是擰在一起的熱電偶,用絕緣鉗夾住熱電偶,輕點(diǎn)溶液表面,熱電偶兩端就能夠熔合。這兩種焊接方式,要注意安全和練習(xí),容易掌握的。重新焊接的熱電偶,可以再檢測(cè),確定合格與否。3.3PID算法介紹什么是PID控制?目前工業(yè)自動(dòng)化水平已成為衡量各行各業(yè)現(xiàn)代化水平的一個(gè)重要標(biāo)志。同時(shí),控制理論的發(fā)展也經(jīng)歷了古典控制理論、現(xiàn)代控制理論和智能控制理論三個(gè)階段。智能控制的典型實(shí)例是模糊全自動(dòng)洗衣機(jī)等。自動(dòng)控制系統(tǒng)可分為開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)。一個(gè)控控制系統(tǒng)包括控制器、傳感器、變送器、執(zhí)行機(jī)構(gòu)、輸入輸出接口。控制器的輸出經(jīng)過輸出接口、執(zhí)行機(jī)構(gòu),加到被控系統(tǒng)上;控制系統(tǒng)的被控量,經(jīng)過傳感器,變送器,通過輸入接口送到控制器。不同的控制系統(tǒng),其傳感器、變送器、執(zhí)行機(jī)構(gòu)是不一樣的。比如壓力控制系統(tǒng)要采用壓力傳感器。電加熱控制系統(tǒng)的傳感器是溫度傳感器。目前,PID控制及其控制器或智能PID控制器(儀表)已經(jīng)很多,產(chǎn)品已在工程實(shí)際中得到了廣泛的應(yīng)用,有各種各樣的PID控制器產(chǎn)品,各大公司均開發(fā)了具有PID參數(shù)自整定功能的智能調(diào)節(jié)器(intelligentregulator),其中PID控制器參數(shù)的自動(dòng)調(diào)整是通過智能化調(diào)整或自校正、自適應(yīng)算法來實(shí)現(xiàn)。利用PID控制實(shí)現(xiàn)的壓力、溫度、流量、液位控制器,能實(shí)現(xiàn)PID控制功能的可編程控制器(PLC),還有可實(shí)現(xiàn)PID控制的PC系統(tǒng)等等??删幊炭刂破?PLC)是利用其閉環(huán)控制模塊來實(shí)現(xiàn)PID控制,而可編程控制器(PLC)可以直接與ControlNet相連,如Rockwell的PLC-5等。還有可以實(shí)現(xiàn)PID控制功能的控制器,如Rockwell的Logix產(chǎn)品系列,它可以直接與ControlNet相連,利用網(wǎng)絡(luò)來實(shí)現(xiàn)其遠(yuǎn)程控制功能。1、開環(huán)控制系統(tǒng)開環(huán)控制系統(tǒng)(open-loopcontrolsystem)是指被控對(duì)象的輸出(被控制量)對(duì)控制器(controller)的輸出沒有影響。在這種控制系統(tǒng)中,不依賴將被控量反送回來以形成任何閉環(huán)回路。2、閉環(huán)控制系統(tǒng)閉環(huán)控制系統(tǒng)(closed-loopcontrolsystem)的特點(diǎn)是系統(tǒng)被控對(duì)象的輸出(被控制量)會(huì)反送回來影響控制器的輸出,形成一個(gè)或多個(gè)閉環(huán)。閉環(huán)控制系統(tǒng)有正反饋和負(fù)反饋,若反饋信號(hào)與系統(tǒng)給定值信號(hào)相反,則稱為負(fù)反饋(NegativeFeedback),若極性相同,則稱為正反饋,一般閉環(huán)控制系統(tǒng)均采用負(fù)反饋,又稱負(fù)反饋控制系統(tǒng)。閉環(huán)控制系統(tǒng)的例子很多。比如人就是一個(gè)具有負(fù)反饋的閉環(huán)控制系統(tǒng),眼睛便是傳感器,充當(dāng)反饋,人體系統(tǒng)能通過不斷的修正最后作出各種正確的動(dòng)作。如果沒有眼睛,就沒有了反饋回路,也就成了一個(gè)開環(huán)控制系統(tǒng)。另例,當(dāng)一臺(tái)真正的全自動(dòng)洗衣機(jī)具有能連續(xù)檢查衣物是否洗凈,并在洗凈之后能自動(dòng)切斷電源,它就是一個(gè)閉環(huán)控制系統(tǒng)。3、階躍響應(yīng)階躍響應(yīng)是指將一個(gè)階躍輸入(stepfunction)加到系統(tǒng)上時(shí),系統(tǒng)的輸出。穩(wěn)態(tài)誤差是指系統(tǒng)的響應(yīng)進(jìn)入穩(wěn)態(tài)后,系統(tǒng)的期望輸出與實(shí)際輸出之差??刂葡到y(tǒng)的性能可以用穩(wěn)、準(zhǔn)、快三個(gè)字來描述。穩(wěn)是指系統(tǒng)的穩(wěn)定性(stability),一個(gè)系統(tǒng)要能正常工作,首先必須是穩(wěn)定的,從階躍響應(yīng)上看應(yīng)該是收斂的;準(zhǔn)是指控制系統(tǒng)的準(zhǔn)確性、控制精度,通常用穩(wěn)態(tài)誤差來(Steady-stateerror)描述,它表示系統(tǒng)輸出穩(wěn)態(tài)值與期望值之差;快是指控制系統(tǒng)響應(yīng)的快速性,通常用上升時(shí)間來定量描述。4、PID控制的原理和特點(diǎn)在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例、積分、微分控制,簡稱PID控制,又稱PID調(diào)節(jié)。PID控制器問世至今已有近70年歷史,它以其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來確定,這時(shí)應(yīng)用PID控制技術(shù)最為方便。即當(dāng)我們不完全了解一個(gè)系統(tǒng)和被控對(duì)象,或不能通過有效的測(cè)量手段來獲得系統(tǒng)參數(shù)時(shí),最適合用PID控制技術(shù)。PID控制,實(shí)際中也有PI和PD控制。PID控制器就是根據(jù)系統(tǒng)的誤差,利用比例、積分、微分計(jì)算出控制量進(jìn)行控制的。比例(P)控制比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號(hào)成比例關(guān)系。當(dāng)僅有比例控制時(shí)系統(tǒng)輸出存在穩(wěn)態(tài)誤差(Steady-stateerror)。積分(I)控制在積分控制中,控制器的輸出與輸入誤差信號(hào)的積分成正比關(guān)系。對(duì)一個(gè)自動(dòng)控制系統(tǒng),如果在進(jìn)入穩(wěn)態(tài)后存在穩(wěn)態(tài)誤差,則稱這個(gè)控制系統(tǒng)是有穩(wěn)態(tài)誤差的或簡稱有差系統(tǒng)(SystemwithSteady-stateError)。為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項(xiàng)”。積分項(xiàng)對(duì)誤差取決于時(shí)間的積分,隨著時(shí)間的增加,積分項(xiàng)會(huì)增大。這樣,即便誤差很小,積分項(xiàng)也會(huì)隨著時(shí)間的增加而加大,它推動(dòng)控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。因此,比例+積分(PI)控制器,可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無穩(wěn)態(tài)誤差。微分(D)控制在微分控制中,控制器的輸出與輸入誤差信號(hào)的微分(即誤差的變化率)成正比關(guān)系。自動(dòng)控制系統(tǒng)在克服誤差的調(diào)節(jié)過程中可能會(huì)出現(xiàn)振蕩甚至失穩(wěn)。其原因是由于存在有較大慣性組件(環(huán)節(jié))或有滯后(delay)組件,具有抑制誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使抑制誤差的作用的變化“超前”,即在誤差接近零時(shí),抑制誤差的作用就應(yīng)該是零。這就是說,在控制器中僅引入“比例”項(xiàng)往往是不夠的,比例項(xiàng)的作用僅是放大誤差的幅值,而目前需要增加的是“微分項(xiàng)”,它能預(yù)測(cè)誤差變化的趨勢(shì),這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重超調(diào)。所以對(duì)有較大慣性或滯后的被控對(duì)象,比例+微分(PD)控制器能改善系統(tǒng)在調(diào)節(jié)過程中的動(dòng)態(tài)特性。5、PID控制器的參數(shù)整定主要方法PID控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。它是根據(jù)被控過程的特性確定PID控制器的比例系數(shù)、積分時(shí)間和微分時(shí)間的大小。PID控制器參數(shù)整定的方法很多,概括起來有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)據(jù)未必可以直接用,還必須通過工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡單、易于掌握,在工程實(shí)際中被廣泛采用。PID控制器參數(shù)的工程整定方法,主要有臨界比例法、反應(yīng)曲線法和衰減法。三種方法各有其特點(diǎn),其共同點(diǎn)都是通過試驗(yàn),然后按照工程經(jīng)驗(yàn)公式對(duì)控制器參數(shù)進(jìn)行整定。但無論采用哪一種方法所得到的控制器參數(shù),都需要在實(shí)際運(yùn)行中進(jìn)行最后調(diào)整與完善。現(xiàn)在一般采用的是臨界比例法。利用該方法進(jìn)行PID控制器參數(shù)的整定步驟如下:(1)首先預(yù)選擇一個(gè)足夠短的采樣周期讓系統(tǒng)工作;(2)僅加入比例控制環(huán)節(jié),直到系統(tǒng)對(duì)輸入的階躍響應(yīng)出現(xiàn)臨界振蕩<--adcode-->,記下這時(shí)的比例放大系數(shù)和臨界振蕩周期;(3)在一定的控制度下通過公式計(jì)算得到PID控制器的參數(shù)。PID參數(shù)的設(shè)定:是靠經(jīng)驗(yàn)及工藝的熟悉,參考測(cè)量值跟蹤與設(shè)定值曲線,從而調(diào)整P\I\D的大小。書上的常用口訣:參數(shù)整定找最佳,從小到大順序查先是比例后積分,最后再把微分加曲線振蕩很頻繁,比例度盤要放大曲線漂浮繞大灣,比例度盤往小扳曲線偏離回復(fù)慢,積分時(shí)間往下降曲線波動(dòng)周期長,積分時(shí)間再加長曲線振蕩頻率快,先把微分降下來動(dòng)差大來波動(dòng)慢。微分時(shí)間應(yīng)加長理想曲線兩個(gè)波,前高后低4比1一看二調(diào)多分析,調(diào)節(jié)質(zhì)量不會(huì)低這里介紹一種經(jīng)驗(yàn)法。這種方法實(shí)質(zhì)上是一種試湊法,它是在生產(chǎn)實(shí)踐中總結(jié)出來的行之有效的方法,并在現(xiàn)場(chǎng)中得到了廣泛的應(yīng)用。這種方法的基本程序是先根據(jù)運(yùn)行經(jīng)驗(yàn),確定一組調(diào)節(jié)器參數(shù),并將系統(tǒng)投入閉環(huán)運(yùn)行,然后人為地加入階躍擾動(dòng)(如改變調(diào)節(jié)器的給定值),觀察被調(diào)量或調(diào)節(jié)器輸出的階躍響應(yīng)曲線。若認(rèn)為控制質(zhì)量不滿意,則根據(jù)各整定參數(shù)對(duì)控制過程的影響改變調(diào)節(jié)器參數(shù)。這樣反復(fù)試驗(yàn),直到滿意為止。經(jīng)驗(yàn)法簡單可靠,但需要有一定現(xiàn)場(chǎng)運(yùn)行經(jīng)驗(yàn),整定時(shí)易帶有主觀片面性。當(dāng)采用PID調(diào)節(jié)器時(shí),有多個(gè)整定參數(shù),反復(fù)試湊的次數(shù)增多,不易得到最佳整定參數(shù)。下面以PID調(diào)節(jié)器為例,具體說明經(jīng)驗(yàn)法的整定步驟:【1】讓調(diào)節(jié)器參數(shù)積分系數(shù)S0=0,實(shí)際微分系數(shù)k=0,控制系統(tǒng)投入閉環(huán)運(yùn)行,由小到大改變比例系數(shù)S1,讓擾動(dòng)信號(hào)作階躍變化,觀察控制過程,直到獲得滿意的控制過程為止?!?】取比例系數(shù)S1為當(dāng)前的值乘以0.83,由小到大增加積分系數(shù)S0,同樣讓擾動(dòng)信號(hào)作階躍變化,直至求得滿意的控制過程。【3】積分系數(shù)S0保持不變,改變比例系數(shù)S1,觀察控制過程有無改善,如有改善則繼續(xù)調(diào)整,直到滿意為止。否則,將原比例系數(shù)S1增大一些,再調(diào)整積分系數(shù)S0,力求改善控制過程。如此反復(fù)試湊,直到找到滿意的比例系數(shù)S1和積分系數(shù)S0為止。【4】引入適當(dāng)?shù)膶?shí)際微分系數(shù)k和實(shí)際微分時(shí)間TD,此時(shí)可適當(dāng)增大比例系數(shù)S1和積分系數(shù)S0。和前述步驟相同,微分時(shí)間的整定也需反復(fù)調(diào)整,直到控制過程滿意為止。注意:仿真系統(tǒng)所采用的PID調(diào)節(jié)器與傳統(tǒng)的工業(yè)PID調(diào)節(jié)器有所不同,各個(gè)參數(shù)之間相互隔離,互不影響,因而用其觀察調(diào)節(jié)規(guī)律十分方便。PID參數(shù)是根據(jù)控制對(duì)象的慣量來確定的。大慣量如:大烘房的溫度控制,一般P可在10以上,I=3-10,D=1左右。小慣量如:一個(gè)小電機(jī)帶一水泵進(jìn)行壓力閉環(huán)控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,這些要在現(xiàn)場(chǎng)調(diào)試時(shí)進(jìn)行修正的。我提供一種增量式PID供大家參考△U(k)=Ae(k)-Be(k-1)+Ce(k-2)A=Kp(1+T/Ti+Td/T)B=Kp(1+2Td/T)C=KpTd/TT采樣周期Td微分時(shí)間Ti積分時(shí)間用上面的算法可以構(gòu)造自己的PID算法。U(K)=U(K-1)+△U(K)第四章系統(tǒng)設(shè)計(jì)4.1硬件電路設(shè)計(jì)4.1.1溫度檢測(cè)電路本系統(tǒng)采用(K分度)熱電偶作為溫度傳感器,由此構(gòu)成的檢測(cè)電路如圖10.0所示。由熱電偶的特性知,進(jìn)入方法器的電壓信號(hào)實(shí)為熱電偶冷熱端溫差引起的電壓差信號(hào)。冷端處于室溫,熱端處于工作環(huán)境,單片機(jī)的A/D通道可以直接采集熱電偶信號(hào),經(jīng)K分度查表后則可以得到溫度值,但這并不是實(shí)際測(cè)量點(diǎn)的溫度,還必須加上室溫的溫度補(bǔ)償才能準(zhǔn)確計(jì)算出所需要的溫度。室溫的測(cè)量可以通過AD590將室溫變化為電壓信號(hào),經(jīng)放大后直接送給單片機(jī)A/D通道,單片機(jī)程序自動(dòng)完成熱偶信號(hào)的采集和冷端信號(hào)的采集,計(jì)算出實(shí)際的溫度測(cè)量值。圖2一3溫度檢測(cè)電路4.1.2溫度控制原理對(duì)于電熱加溫的溫度控制可以采用移相控制或周波控制方式。移相控制方式是通過改變可控硅的導(dǎo)通角來控制輸出電壓,從控制加熱對(duì)象的溫度,控制電路相對(duì)復(fù)雜,但控制精度比較高。周波控制方式的輸出電路如圖10.3所示,他實(shí)際上是通過調(diào)節(jié)一定時(shí)間的循環(huán)周期內(nèi)的供電時(shí)間比例來控制加熱對(duì)象在本周期內(nèi)獲得的電能,從而控制其溫度。由于控制加溫的時(shí)間比例實(shí)現(xiàn)起來相對(duì)簡單,因此周波控制方式在溫度控制系統(tǒng)獲得了比較廣泛的應(yīng)用。本系統(tǒng)確定采用周波控制方法。圖2一4周波控制方式的輸出電路由圖2一4可知,CPU的I/O腳輸出低電平時(shí),SSR給加熱元件接通220V交流電源,加熱元件獲得電能,溫度升高;I/O腳輸出高電平時(shí),SSR開路,加熱元件兩端無電壓,停止加熱,如溫度高于環(huán)境高溫,則對(duì)象的溫度開始下降。采用時(shí)間比例控制的具體方法是:①設(shè)定一個(gè)標(biāo)準(zhǔn)的加溫周期T,以T為周期對(duì)溫度進(jìn)行采樣,獲得溫度測(cè)量值;②根據(jù)設(shè)定值和測(cè)量值的偏差,進(jìn)行PID運(yùn)算;③將PID的輸出轉(zhuǎn)換為SSR的通斷時(shí)間。PID的輸出為0%,則SSR接通時(shí)間為0。即本周期無輸出;如果PID輸出為100%,則SSR接通時(shí)間為T,即本周期為全輸出;如果PID的輸出為MV,則SSR的接通時(shí)間為TXMV/100,斷開時(shí)間為T-TXMV/100。例如:T=120秒,PID計(jì)算結(jié)果為1分30秒,則本次2分鐘內(nèi)就應(yīng)加溫90秒,挺30秒;又如T=120秒,PID的計(jì)算結(jié)果為1分25秒,則本周期就應(yīng)加溫85秒。停35秒。4.1.3PID控制算法的實(shí)現(xiàn)PID算法有位置式和增量式兩種,增量式PID算法得到的結(jié)果是增量,也就是說,在上一次的控制量的基礎(chǔ)上需要增加的控制量。例如,在可控硅電機(jī)調(diào)試系統(tǒng)中,控制量的增量意味著可控硅的觸發(fā)相位在原有的基礎(chǔ)上需要提前或滯后的量;位置式酸法則表現(xiàn)為當(dāng)前的出發(fā)相應(yīng)應(yīng)該在什么位置。又如在溫度控制系統(tǒng)中,增量式算法則表現(xiàn)為在上次通電時(shí)間比例的基礎(chǔ)上,還需要增加或減少的通電時(shí)間比例;位置式算法則直接指明本周期內(nèi)要通電多長時(shí)間。本系統(tǒng)采用的位置式PID算法。標(biāo)準(zhǔn)的直接計(jì)算公式:Pout(t)=Kp*e(t)+KixSum_e(t)+Kd*(e(t0-e(t-1);其中,e(t)為基本偏差,表示當(dāng)前測(cè)量值與設(shè)定目標(biāo)間的差值,設(shè)定目標(biāo)是被減數(shù),結(jié)果可以是正或負(fù),正數(shù)表示還沒有達(dá)到設(shè)定值,負(fù)數(shù)表示已經(jīng)超過了設(shè)定值。這是面向比例項(xiàng)用的變動(dòng)數(shù)據(jù)。累計(jì)偏差Sum_e(t)=e(t)+e(t-1)+e(t-2)++e(1)是每次偏差值的代數(shù)和,是面向積分項(xiàng)用的一個(gè)變動(dòng)數(shù)據(jù)?;酒畹南鄳?yīng)偏差e(t)-e(t-1)是用本次的基本偏差減去上一次的基本偏差,以考察當(dāng)前被控量的變化趨勢(shì),有利于快速發(fā)應(yīng),是面向微分項(xiàng)的一個(gè)變動(dòng)數(shù)據(jù)。Kp,ki和Kd是PID算法的3個(gè)控制參數(shù),分別稱為比例系數(shù),積分系數(shù)和微分系數(shù),不同的控制對(duì)象選擇不同的數(shù)值,需要經(jīng)過現(xiàn)場(chǎng)整定才能獲得較好的效果。比例調(diào)節(jié)的作用是按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用以減殺偏差。比例作用大,可以加速調(diào)節(jié),減少誤差,但是過大的比例作用,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)不穩(wěn)定。積分調(diào)節(jié)的作用使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因?yàn)橐坏姓`差,積分調(diào)節(jié)就進(jìn)行,直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出維持常量。微分調(diào)節(jié)作用反映系統(tǒng)偏差信號(hào)的變化率,具有預(yù)見性,能預(yù)見偏差變化的趨勢(shì),因此能產(chǎn)生超前的控制作用,以改善系統(tǒng)的動(dòng)態(tài)性能。為了程序處理上的方便,可在程序內(nèi)部設(shè)計(jì)一個(gè)PID調(diào)節(jié)時(shí)鐘(20MS)。PID計(jì)算周期為2分鐘,這樣就對(duì)周期進(jìn)行100等分。經(jīng)PID計(jì)算后的輸出值即為溫度加熱時(shí)間(0-100)。加熱時(shí)間到了,關(guān)閉加熱的IO口,直到下一個(gè)2分鐘到了,再進(jìn)行新一輪PID計(jì)算和加熱控制。為了達(dá)到比較好的控制效果,同時(shí)減輕單片機(jī)的運(yùn)算量,Kp,Ki,Kd這三個(gè)參數(shù)采用整數(shù),為了放大100倍進(jìn)行計(jì)算,三個(gè)參數(shù)采用相同的放大比例。運(yùn)算中往往出現(xiàn)數(shù)據(jù)益出的情況,注意考慮符號(hào),為此我們對(duì)輸出值有一定約定界限(0-100),當(dāng)結(jié)果超出約定界限時(shí),不再增加(或減少)。加溫的整個(gè)過程沒有必要全程PID控制,一般可以在設(shè)定目標(biāo)值前一個(gè)溫度區(qū)域才進(jìn)行PID控制。例如,設(shè)定目標(biāo)溫度為300度,則可以在250度以前全速加溫,當(dāng)達(dá)到250度以后才開始計(jì)算PID計(jì)算并予以控制,這樣可以加快加溫速度又不影響溫度控制。在不產(chǎn)生過大的超調(diào)量的情況下,盡可能把起控點(diǎn)抬高,有利于后面控制部分的進(jìn)一步細(xì)化。在進(jìn)入控制之前,應(yīng)將積分項(xiàng)清零。4.1.4控制器與PC之間的數(shù)據(jù)通信為了提高通信的可靠信,便于上位機(jī)程序員靈活編程,有必要設(shè)計(jì)一個(gè)簡單的通信格式。表10.1是一種參考設(shè)計(jì),但這種格式?jīng)]有考慮效驗(yàn)和的問題,讀者可以自行改善。字節(jié)1的數(shù)據(jù)Oxaa為通信起始標(biāo)志,datal和datah為十六進(jìn)制數(shù),其中datal為低8位數(shù)據(jù),dataH為高8位數(shù)據(jù)。如果要進(jìn)行數(shù)據(jù)通信,首先右上位機(jī)發(fā)啟通信命令;先將設(shè)定值發(fā)送給上位機(jī),而后每秒鐘發(fā)送一次實(shí)時(shí)溫度值(溫度測(cè)量值)給上位機(jī)。如果上位機(jī)要修改控制器中的設(shè)定值,則發(fā)送修改設(shè)定值命令,命令中附帶的控制器的設(shè)定值。程序設(shè)計(jì)/*頭文件:全局變量聲明,在其它模塊可以直接調(diào)用此內(nèi)的變量主要包括,顯示用的變量和控制用的變量及相關(guān)位標(biāo)志設(shè)置。*/#include<ADUC812.H>unsignedcharV_mode=0;//模式鍵選擇,共有10個(gè)模式//模式0:顯示設(shè)定溫度和實(shí)時(shí)溫度//模式1:高報(bào)警值設(shè)置//模式2:低報(bào)警值設(shè)置模式3:溫度控制設(shè)定值//模式4:放大倍數(shù)校正值的的模式567為PID調(diào)節(jié)值//模式8:手動(dòng)輸出值模式9:手動(dòng)/自動(dòng)選擇性1:手動(dòng),0:自動(dòng)//模式10:初始值進(jìn)行修正unsignedchardatadisp_buf[8]={1,2,3,4,5,6,7,8}; //8個(gè)數(shù)碼管顯示緩沖區(qū)unsignedcharcodeduan_table[]={//段選碼 0x7e,0x48,0x3d,0x6d,0x4b,0x67,0x77,0x4c,0x7f,0x6f,0xA0, 0x01};//0,1,2,3,4,5,6,7,8,9,_,'-'bitkuaisu=0; //按鍵快速處理bitdisplay=0; //顯示刷新標(biāo)志bitsave_flag=0; //數(shù)據(jù)修改標(biāo)志,以保存數(shù)據(jù)unsignedcharpid_value=0;//PID輸出值unsignedcharpid_val_mid=0;//PID計(jì)算暫存值unsignedintcanshu[10]={0,200,50,150,23,110,05,100,0,0}; //10個(gè)參數(shù)變量存放區(qū)charchushi=0; //計(jì)算高端校正值bitadcg_flag=0; //實(shí)時(shí)溫度采集標(biāo)志bitadcd_flag=0; //室溫計(jì)算標(biāo)志bitpid_flag=0; //PID計(jì)算標(biāo)志?bittran=0; //通信標(biāo)志//1S鐘發(fā)送一次實(shí)時(shí)采集溫度值給上位機(jī)bitqidong=0; //接收到啟動(dòng)后才發(fā)送數(shù)據(jù)bitsheding_flag=0; //發(fā)送溫度設(shè)定值給上位機(jī)標(biāo)志unsignedcharshiwen=0; //計(jì)算室溫變量unsignedintcodeK_Table[131]={0,397,798,1203,1611,2022,2436,2850,3266,3681,4095,4508,4919,5327,5733,6137,6539,6939,7338,7737,8137,8537,8938,9341,9745,10151,10560,10969,11381,11793,12207,12623,13039,13456,13874,14292,14712,15132,15552,15974,16395,16818,17241,17664,18088,18513,18938,19363,19788,20214,20640,21066,21493,21919,22346,22772,23198,23624,24050,24476,24902,25327,25751,26176,26599,27022,27445,27867,28288,28709,29128,29547,29965,30383,30799,31214,31629,32042,32455,32866,33277,33686,34095,34502,34909,35314,35718,36121,36524,36925,37325,37724,38122,38519,38915,39310,39703,40096,40488,40897,41296,41657,42045,42432,42817,43202,43585,43968,44349,44729,45108,45486,45763,46238,46612,46985,47356,47726,48095,48462,48828,49192,49555,49916,50276,50633,50990,51344,51697,52049,52398}; //K分度表0-1300度,10度一值/*文件結(jié)尾*//*系統(tǒng)主模塊:主要是PID控制及溫度采集*/#include<ADUC812.H>#include<INTRINS.H>#include<stdio.h>#define CTH0 0xfa//定時(shí)器0裝載值#define CTL0 0x00#define CTH1 0xb7//定時(shí)器1裝載值20ms定時(shí)器#define CTL1 0xffsbitCONIO=P3^7; //加熱開關(guān)控制,0有效sbitled_gao=P2^3; //溫度高報(bào)警燈sbitled_di=P2^4; //低溫度報(bào)警燈externbitadcg_flag; //實(shí)時(shí)溫度采集標(biāo)志externbitadcd_flag; //室溫計(jì)算標(biāo)志externbit pid_flag; //PID計(jì)算標(biāo)志?externcharshiwen; //計(jì)算室溫變?externcharchushi; //計(jì)算高端校正值externbitdisplay; //顯示刷新標(biāo)志externbittran; //通信標(biāo)志externbitqidong; //接收到啟動(dòng)后才發(fā)送數(shù)?externbitsheding_flag; //發(fā)送溫度設(shè)定值給上位機(jī)標(biāo)externbitsave_flag; //數(shù)據(jù)修改標(biāo)志,以保存數(shù)externunsignedintcanshu[10]; //10個(gè)參數(shù)變量存放區(qū)externunsignedcharV_mode; //模式鍵選擇,共有10個(gè)模externunsignedcharpid_value; //PID輸出值externunsignedcharpid_val_mid; //PID計(jì)算暫存值externunsignedintcodeK_Table[131];voidadcdi(void); //室溫采集模塊,2S采集一次voidadcgao(void); //實(shí)時(shí)溫度采集模塊voidpid(void); //PID調(diào)節(jié)函數(shù)voidTongxun(void); //數(shù)據(jù)通信函數(shù),與上位機(jī),主要是發(fā)送數(shù)據(jù)給上位機(jī)voidR_command(void); //接收命令模塊,voidtimer1(void); //20MS定時(shí)器,用于控制,精確計(jì)算時(shí)間externvoidBuffer(void);externvoidRead(void);externvoidWrite(unsignedcharpage,unsignedintdat);externvoiddelay(unsignedchara);/*室溫的溫度計(jì)算2S計(jì)算一次平均濾波,除去最大值,最小值,再平均,計(jì)算比較準(zhǔn)確,也可抗干擾*/voidadcdi(void){unsignedintda=0,sum=0,max,min;unsignedchari;floatj=0.00;sum=0;for(i=0;i<10;i++){ADCCON2=1; //通道選擇 SCONV=1; //啟動(dòng)AD while(ADCCON3>=128); //檢測(cè)AD轉(zhuǎn)換是否完成; da=ADCDATAH&0x0f; da=(da<<8)+ADCDATAL; //計(jì)算轉(zhuǎn)換代碼 sum=sum+da; if(i==0){max=da;min=da;} elseif(max<da)max=da; elseif(min>da)min=da; } j=sum-max-min;shiwen=j/8/45.8752;///////////計(jì)算室溫的溫度//shiwen=i/45.8752;//x/4096=V/2.5V/10K=T按公式計(jì)算}/*實(shí)時(shí)溫度計(jì)算模塊,也計(jì)算最近10溫度值,進(jìn)行濾波,方法同室溫計(jì)算方法*/voidadcgao(void){unsignedintda=0,sum=0,max,min,mid;unsignedchari;staticunsignedintadc_data[10]={0};floatj=0.00,k=0.00;ADCCON2=0; //通道選擇 SCONV=1; //啟動(dòng)AD while(ADCCON3>=128); //檢測(cè)AD轉(zhuǎn)換是否完成; da=ADCDATAH&0x0f; da=(da<<8)+ADCDATAL; //計(jì)算轉(zhuǎn)換代碼 if(da>4000&&adc_data[9]>4000)canshu[0]=8888;//斷偶指示 max=adc_data[1]; min=max;sum=0;for(i=1;i<10;i++){adc_data[i-1]=adc_data[i]; sum=sum+adc_data[i]; if(max<adc_data[i])max=adc_data[i]; if(min>adc_data[i])min=adc_data[i]; }adc_data[9]=da;sum=sum+da;if(max<da) max=da;if(min>da)min=da;j=sum-max-min;j=j/8;//計(jì)算濾波后的代 碼 有公式:X/4096=K*V/2.5/1000j=j/1.6384/canshu[4]; //計(jì)算電壓mV為單位 da=j*1000; //擴(kuò)大1000倍進(jìn)行查表 max=130; min=0; while(1) //查表求出溫度值二分法查找 { mid=(max+min)/2; if(K_Table[mid]>da) max=mid; else min=mid; if((max-min)<=1) break; } if(max==min)da=min*10; else { //計(jì)算溫度值 j=(K_Table[max]-K_Table[min])/10;j=(da-K_Table[min])/j;da=j; da=10*min+da; }canshu[0]=da+chushi+shiwen; //計(jì)算實(shí)時(shí)溫度 }PID算法程序入口PID算法程序入口計(jì)算基本偏差ErrorError>50?計(jì)算積分項(xiàng)SunError,計(jì)算微分項(xiàng)dError根據(jù)公式計(jì)算輸出值輸入值>100時(shí),pidvalmid=100輸出值<0時(shí),pidvalmid=0其他值時(shí),直接賦予pidvalmid返回Error<—50?PID計(jì)算暫存值pidvalmid=100PID計(jì)算暫存值pidvalmid=0/*根據(jù)設(shè)定及采集值進(jìn)行計(jì)算PID調(diào)節(jié),計(jì)算出PID——VAL——MID的值*/voidpid(void){staticintSumError=0,LastError=0; //整數(shù)計(jì)算準(zhǔn)確,最后再同時(shí)縮小100倍intdError=0,Error=0;doublej=0.0,i;Error=canshu[3]-canshu[0]; //設(shè)定值--實(shí)時(shí)值_ if(Error>50){pid_val_mid=100;return;} //溫差在50度以上,直接輸出全值,即全速加溫,不進(jìn)行PID計(jì)算 elseif(Error+50<0){pid_val_mid=0;return;} SumError+=Error; //積分項(xiàng) dError=Error-LastError; //微分項(xiàng)LastError=Error;//j=canshu[5]*Error+canshu[6]*SumError+canshu[7]*dError; //計(jì)算輸出值,公式,以下分項(xiàng)計(jì)算再相加,比較準(zhǔn)確 i=canshu[5]; j=Error*i; i=canshu[6]; j=j+SumError*i; i=canshu[7]; j=j+dError*i;if(j>0)j=j/100; //如果計(jì)算出的值為負(fù),不進(jìn)行輸出if(j>100)pid_val_mid=100; //加熱控制最大為100elseif(j<0)pid_val_mid=0;elsepid_val_mid=j;}/*1s鐘傳輸一次溫度?先傳輸設(shè)定溫度值,后傳送實(shí)時(shí)溫度值*/voidTongxun(void){unsignedchari; SBUF=0xaa;;;; //起始標(biāo)志 while(TI==0); if(sheding_flag==1) //可以進(jìn)行溫度值,設(shè)定值傳輸 i=canshu[3]&0x00ff; else i=canshu[0]&0x00ff; SBUF=i;;;; while(TI==0); //等待發(fā)送完畢 if(sheding_flag==1) i=(canshu[3]>>8)&0x00ff; elsei=(canshu[0]>>8)&0x00ff; SBUF=i;;;; while(TI==0) if(sheding_flag==1){sheding_flag=0;qidong=1;} //qidong為1時(shí)允許實(shí)時(shí)溫度值通信}/*中斷接收命令*/voidR_command(void)interrupt4{unsignedchari,Command;unsignedintj=0; if(RI==1) { RI=0; i=SBUF; if(i==0xaa) { while(RI==0) ; RI=0; Command=SBUF; if(Command==1) //啟動(dòng)傳輸溫度值 sheding_flag=1; //先發(fā)設(shè)定溫度值,后發(fā)溫度值 elseif(Command==2) //關(guān)閉通信 qidong=0; elseif(Command==3) //接收設(shè)定溫度值 { while(RI==0) ; RI=0; Command=SBUF; //先接收高字節(jié),再接收低字節(jié) j=Command; j=j<<8; while(RI==0) ; RI=0; Command=SBUF; j=j+Command; canshu[3]=j; Write(3,canshu[3]); } } } elseTI=0;}/*20ms定時(shí)器,考慮啟動(dòng)的ON設(shè)置,控制加熱TR1=1ET1=1;;*/voidtimer1(void)interrupt3using2//20ms{staticunsignedcharcount0=0,count1=0,count2=0; TH1=CTH1; TL1=CTL1; count0++;count1++;count2++ if(count0==pid_value) //PID控制周期為2分鐘,CONIO=1; if(count0==48&&canshu[9]==0) //在PID輸出前,提前進(jìn)行PDI計(jì)算,在此設(shè)置標(biāo)志 {adcd_flag=1;pid_flag=1;} //自動(dòng)控制 elseif(count0==48&&canshu[9]==1)//手動(dòng)輸出{adcd_flag=1;pid_val_mid=canshu[8];} elseif(count0==100)//2S鐘控制加熱 {count0=0;pid_value=pid_val_mid; //輸出值符值 if(pid_value!=0)CONIO=0; //輸出為0時(shí),不打開控制口 }if(count2==5) //0.1s進(jìn)行一次實(shí)時(shí)值采集,置標(biāo)志 {adcg_flag=1;count2=0;} if(count1==50) //1s顯示一次AD采樣值進(jìn)行一PID計(jì)算 {display=1;count1=0; //刷新采集值,在0模式時(shí) tran=1; //1s傳輸一次數(shù)據(jù) if(canshu[0]>=canshu[1])led_gao=0; //高低報(bào)警 elseled_gao=1; if(canshu[0]<=canshu[2])led_di=0; elseled_di=1; }}/*主程序初始化各寄存器,定時(shí)器,開中斷*/main(){unsignedchari=10;TMOD=0x11;SCON=0x52;TH0=CTH0;TL0=CTL0;TH1=CTH1;TL1=CTL1;ET0=1; //定時(shí)器1啟動(dòng)TR0=1;T2CON=0x30; //定時(shí)器2作波特率發(fā)生器PCON=0x80; RCAP2H=0xff;RCAP2L=0xdc; //9600波特率ET2=1; //定時(shí)器啟動(dòng)TR2=1;ES=1;EA=1;Read();ADCCON1=0x64;adcdi(); //室溫while(i){adcgao(); //高度溫度計(jì)算i--;}pid(); //先進(jìn)行PID計(jì)算,即初始啟動(dòng)pid_value=pid_val_mid;Buffer();TR1=1; //啟動(dòng)PID控制,定時(shí)器1ET1=1;if(pid_value!=0)CONIO=0;elseCONIO=1;tran=1;while(1){if(display==1)Buffer(); //刷新數(shù)據(jù) if(sheding_flag==1)Tongxun(); //與上位機(jī)通信,發(fā)送設(shè)定溫度值給上位機(jī) if(tran==1&&qidong==1){Tongxun();tran=0;} //發(fā)送實(shí)時(shí)溫度值給上位機(jī),1S一次 if(adcg_flag==1){adcgao();adcg_flag=0;} //實(shí)時(shí)溫度計(jì)算,根據(jù)標(biāo)志操作 if(adcd_flag==1){adcdi();adcd_flag=0;} //室溫計(jì)算 if(pid_flag==1) {i=10; while(i){adcgao();i--;} //準(zhǔn)確計(jì)算,以保證PID準(zhǔn)確調(diào)節(jié) pid();pid_flag=0;} if(V_mode!=0&&save_flag==1) //保存參數(shù),根據(jù)標(biāo)志{if(V_mode!=10)Write(V_mode,canshu[V_mode]);elseWrite(10,chushi);delay(255);save_flag=0;}}}/*文件結(jié)尾*//*按鍵、顯示文件:主要包括按鍵處理及定時(shí)刷新數(shù)據(jù)*/#include<ADUC812.H>#include<stdio.h>#define CTH0 0xfa//定時(shí)器0裝載值#define CTL0 0x00sbitmode=P2^1;//模式鍵sbitadd=P2^0; //參數(shù)改變時(shí)的加鍵sbitsub=P2^2; //參數(shù)改變時(shí)的減鍵externbitsave_flag;//數(shù)據(jù)保存標(biāo)志externbitkuaisu;//按鍵快速處理標(biāo)志externbitdisplay; //刷新顯示標(biāo)志externunsignedchardatadisp_buf[8]; //顯示緩沖區(qū)externunsignedcharcodeduan_table[]; //段碼externunsignedcharV_mode;//模式變量externunsignedintcanshu[10]; //模式參數(shù)值externcharchushi; //有符號(hào),所以特別處理voidkey_chuli(void); //按鍵處理函數(shù)voidBuffer(void); //刷新函數(shù)voidtimer0(void); //用于鍵盤掃描及段碼顯示voidWrite(unsignedcharpage,unsignedintdat); //存儲(chǔ)器寫參數(shù)函數(shù)voidRead(void); //讀存儲(chǔ)器參數(shù)函數(shù)voiddelay(unsignedchara); //延時(shí)函數(shù)/*按鍵處理程序*/voidkey_chuli(void){if(mode==0) //模式鍵處理{V_mode++; if(V_mode==11)V_mode=0;}elseif(add==0&&V_mode!=0) //加處理{if(V_mode==9){canshu[9]+=1;canshu[9]=canshu[9]&0x01;}//模式9:手動(dòng)/自動(dòng)控制,開關(guān)控制,單獨(dú)處理 if(kuaisu==1&&V_mode<=8)canshu[V_mode]+=10; //快速處理elseif(kuaisu==1&&V_mode==10)chushi+=10; //初始調(diào)零值可正可負(fù),所以單獨(dú)處理 elseif(V_mode==10)chushi+=1; elseif(V_mode<=8)canshu[V_mode]++; if(canshu[V_mode]>1200&&V_mode<4)canshu[V_mode]=0; //范圍限制 elseif(canshu[V_mode]>5000&&V_mode<=7)canshu[V_mode]=0; elseif(canshu[V_mode]>100&&V_mode==8)canshu[V_mode]=0; save_flag=1; //參數(shù)修改需進(jìn)行修改 }elseif(sub==0&&V_mode!=0) //減處理{if(V_mode==9&&canshu[9]==0)canshu[9]=1; //模式9單獨(dú)處理 elseif(V_mode==9&&canshu[9]==1)canshu[9]=0; if(canshu[V_mode]==0&&V_mode<4)canshu[V_mode]=1200; //范圍限制elseif(canshu[V_mode]==0&&V_mode<=7)canshu[V_mode]=5000; elseif(canshu[V_mode]==0&&V_mode==8)canshu[V_mode]=100; if(kuaisu==1&&V_mode<=8) //快速處理 {if(canshu[V_mode]>10)canshu[V_mode]-=10; elsecanshu[V_mode]=0;} elseif(kuaisu==1&&V_mode==10)chushi-=10; elseif(V_mode==10)chushi-=1; elseif(V_mode<=8)canshu[V_mode]--; save_flag=1; //參數(shù)修改需進(jìn)行修? }}//voidBuffer(void){unsignedintx;if(V_mode==0){x=canshu[3];disp_buf[0]=x/1000; disp_buf[1]=x/100%10;disp_buf[2]=x/10%10; disp_buf[3]=x%10;x=canshu[0];disp_buf[4]=x/1000; disp_buf[5]=x/100%10;disp_buf[6]=x/10%10; disp_buf[7]=x%10;}elseif(V_mode==10) //有正負(fù)之分{disp_buf[0]=10; disp_buf[1]=10;disp_buf[2]=1; disp_buf[3]=0;if(chushi<0){disp_buf[4]=11;x=0-chushi;}else{disp_buf[4]=0;x=chushi;} disp_buf[5]=x/100%10;disp_buf[6]=x/10%10; disp_buf[7]=x%10;}else{disp_buf[0]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川電影電視學(xué)院《大學(xué)書法》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《學(xué)前教育史》2022-2023學(xué)年第一學(xué)期期末試卷
- 幽雅的畢業(yè)贈(zèng)言給老師
- 石河子大學(xué)《微信公眾號(hào)的運(yùn)營與營銷》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《色彩》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《機(jī)械工程測(cè)試技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《電路(一)》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《材料科學(xué)基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 廣東省住建局勞務(wù)分包合同
- 合同變更模板聲明
- 2022版義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)解讀課件PPT模板
- 實(shí)驗(yàn)五 PCR擴(kuò)增課件
- 馬拉松運(yùn)動(dòng)醫(yī)療支援培訓(xùn)課件
- 中醫(yī)藥宣傳手冊(cè)
- 不良資產(chǎn)處置盡職指引
- 人教部編版七年級(jí)歷史上冊(cè)第19課 北魏政治和北方民族大交融課件(23張PPT)
- 機(jī)械設(shè)備定期檢查維修保養(yǎng)使用臺(tái)賬
- 麗聲北極星分級(jí)繪本第四級(jí)上 Stop!Everyone Stop!教學(xué)設(shè)計(jì)
- 小學(xué)科學(xué)教育科學(xué)三年級(jí)上冊(cè)天氣《認(rèn)識(shí)氣溫計(jì)》教學(xué)設(shè)計(jì)
- 液化氣站氣質(zhì)分析報(bào)告管理制度
- 可編輯修改中國地圖模板
評(píng)論
0/150
提交評(píng)論