版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 溫度自動控制系統(tǒng)的設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 隨著科技的不斷進(jìn)步,在工業(yè)生產(chǎn)中溫度是常用的被控參數(shù),而采用單片機(jī)來對這些被控參數(shù)進(jìn)行控制已成為當(dāng)今的主流。本文介紹了數(shù)字溫度測量及自動控制系統(tǒng)的設(shè)計(jì)。闡述了以AT89C52單片機(jī)為核心的溫度控制系統(tǒng)的工作原理和設(shè)計(jì)方法。主要組成部分:AT89C52單片機(jī)、
2、溫度傳感器、顯示電路、溫度控制電路。它可以實(shí)時(shí)的顯示和設(shè)定溫度,實(shí)現(xiàn)對溫度的自動控制。而且設(shè)有超溫報(bào)警程序。測試表明,本設(shè)計(jì)對溫度的控制有方便、簡單的特點(diǎn),大幅提高了被控溫度的技術(shù)指標(biāo)。溫度信號由溫度芯片DS18B20采集,并以數(shù)字信號的方式傳送給單片機(jī)。文中介紹了該控制系統(tǒng)的硬件部分,包括:溫度檢測與溫度控制電路。單片機(jī)通過對信號進(jìn)行相應(yīng)處理,從而實(shí)現(xiàn)溫度控制的目的。</p><p> 關(guān)鍵詞: 溫度自動控制
3、,AT89C52,DS18B20,PID</p><p><b> ABSTRACT</b></p><p> With the development of science and technology, temperature is used to be controlled parameter in industrial production. Contro
4、lling controlled parameter by microcontroller has been main trend in today's society. This paper introduces the design of digital temperature measurement and automatic control system .It consists of AT89C52 microcont
5、roller, temperature sensor, show circuit and temperature control circuit. It is able to display and set temperature in real-time. The purpose is to achieve t</p><p> KEY WORDS: automatic temperature contro
6、l, AT89C52 , DS18B20, PID</p><p><b> 目 錄</b></p><p><b> 前 言1</b></p><p> 第1章系統(tǒng)總體設(shè)計(jì)2</p><p> 1.1系統(tǒng)設(shè)計(jì)任務(wù)與要求2</p><p> 1.1.1
7、系統(tǒng)設(shè)計(jì)任務(wù)與要求2</p><p> 1.1.2重點(diǎn)研究內(nèi)容2</p><p> 1.1.3實(shí)現(xiàn)途徑及方法2</p><p> 1.2系統(tǒng)總體方案設(shè)計(jì)3</p><p> 第2章系統(tǒng)硬件各功能模塊的設(shè)計(jì)5</p><p> 2.1主控模塊的設(shè)計(jì)5</p><p&g
8、t; 2.1.1 AT89C52單片機(jī)簡介5</p><p> 2.1.2 溫度傳感器的選擇6</p><p> 2.1.3復(fù)位和時(shí)鐘電路的設(shè)計(jì)9</p><p> 2.1.4 溫度采集電路10</p><p> 2.2人機(jī)接口設(shè)計(jì)11</p><p> 2.2.1鍵盤的設(shè)計(jì)11</p
9、><p> 2.2.2顯示電路的設(shè)計(jì)11</p><p> 第3章軟件設(shè)計(jì)13</p><p> 3.1主程序模塊13</p><p> 3.2數(shù)據(jù)采集和顯示模塊14</p><p> 3.3輸入模塊21</p><p> 第4章 PID控制和參數(shù)整定24</p&
10、gt;<p> 4.1 PID調(diào)節(jié)器控制原理24</p><p> 4.2 PID控制的分類25</p><p> 4.3 數(shù)字PID參數(shù)的整定26</p><p> 4.3.1 采樣周期選擇的原則27</p><p> 4.3.2 PID參數(shù)對系統(tǒng)性能的影響27</p><p>
11、4.4 PID計(jì)算程序29</p><p><b> 第5章 仿真36</b></p><p> 5.1 PROTEUS軟件簡介36</p><p><b> 5.2仿真36</b></p><p><b> 致 謝38</b></p>&l
12、t;p><b> 參考文獻(xiàn)39</b></p><p><b> 附 錄40</b></p><p> 附錄1:源程序40</p><p> 附錄2:原理圖45</p><p><b> 前 言</b></p><p> 溫
13、度是表征物體冷熱程度的物理量。在很多生產(chǎn)過程中,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,溫度的測量和控制都直接和安全生產(chǎn)、提高生產(chǎn)效率、保證產(chǎn)品質(zhì)量、節(jié)約能源等重大技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。因此,溫度的測量與控制在國民經(jīng)濟(jì)各個(gè)領(lǐng)域中均受到了相當(dāng)程度的重視。</p><p> 單片機(jī)系統(tǒng)的開發(fā)應(yīng)用給現(xiàn)代工業(yè)測控領(lǐng)域帶來了一次新的技術(shù)革命,自動化、智能化均離不開單片機(jī)的應(yīng)用。將單片機(jī)控制方法運(yùn)用到溫度控制系統(tǒng)
14、中,可以克服溫度控制系統(tǒng)中存在的嚴(yán)重滯后現(xiàn)象,同時(shí)在提高采樣頻率的基礎(chǔ)上可以很大程度的提高控制效果和控制精度?,F(xiàn)代自動控制越來越朝著智能化發(fā)展,在很多自動控制系統(tǒng)中都用到了工控機(jī),小型機(jī)、甚至是巨型機(jī)處理機(jī)等,當(dāng)然這些處理機(jī)有一個(gè)很大的特點(diǎn),那就是很高的運(yùn)行速度,很大的內(nèi)存,大量的數(shù)據(jù)存儲器。但隨之而來的是巨額的成本。在很多的小型系統(tǒng)中,處理機(jī)的成本占了系統(tǒng)成本的比例高達(dá)20%,而對于這些小型的系統(tǒng)來說,配置一個(gè)如此高速的處理機(jī)沒有任何
15、必要,因?yàn)檫@些小系統(tǒng)追求經(jīng)濟(jì)效益,而不是最在乎系統(tǒng)的快速性,所以用成本低廉的單片機(jī)控制小型的,而又不是很復(fù)雜,不需要大量復(fù)雜運(yùn)算的系統(tǒng)中是非常適合的。 </p><p> 隨著電子技術(shù)以及應(yīng)用需求的發(fā)展,單片機(jī)技術(shù)得到了迅速的發(fā)展,在高集成度,高速度,低功耗以及高性能方面取得了很大的進(jìn)展?,F(xiàn)在完全可以運(yùn)用單片機(jī)和電子溫度傳感器對某處進(jìn)行溫度檢測,而且可以很容易地做到多點(diǎn)的溫度檢測,如果對此原理圖稍加改進(jìn),還可以
16、進(jìn)行不同地點(diǎn)的實(shí)時(shí)溫度檢測和控制。</p><p><b> 系統(tǒng)總體設(shè)計(jì)</b></p><p><b> 系統(tǒng)設(shè)計(jì)任務(wù)與要求</b></p><p><b> 系統(tǒng)設(shè)計(jì)任務(wù)與要求</b></p><p> 該溫度自動控制系統(tǒng)采用AT89C52單片機(jī)為主控芯片,傳感器
17、采用數(shù)字溫度傳感器DS18B20,實(shí)現(xiàn)對溫度的檢測和控制。</p><p> 主要技術(shù)指標(biāo):可檢測的范圍為-55℃—+125℃。</p><p> 該溫度自動控制系統(tǒng)由溫度信號采樣電路,鍵盤及顯示電路,溫度控制電路,報(bào)警電路,時(shí)鐘信號電路等構(gòu)成,并運(yùn)用PID算法進(jìn)行溫度控制和調(diào)整。</p><p> 根據(jù)設(shè)計(jì)任務(wù),詳細(xì)分析溫度自動控制系統(tǒng)的設(shè)計(jì)需求,并進(jìn)行軟硬
18、件的總體設(shè)計(jì)。由鍵盤電路輸入設(shè)定溫度信號給單片機(jī),溫度信號采集電路采集現(xiàn)場溫度信號給單片機(jī),單片機(jī)根據(jù)輸入與反饋信號的偏差進(jìn)行PID計(jì)算,輸出反饋量給溫度控制電路,實(shí)現(xiàn)升溫。顯示電路實(shí)現(xiàn)現(xiàn)場溫度的實(shí)時(shí)監(jiān)控。設(shè)計(jì)人員需完成全部硬件和軟件的設(shè)計(jì),并利Proteus仿真軟件對設(shè)計(jì)結(jié)果進(jìn)行驗(yàn)證。</p><p><b> 重點(diǎn)研究內(nèi)容</b></p><p> 本設(shè)計(jì)包括
19、硬件設(shè)計(jì)和軟件設(shè)計(jì)。</p><p> 硬件設(shè)計(jì)主要包括溫度信號采樣電路,鍵盤及顯示電路,溫度控制電路,報(bào)警電路,時(shí)鐘信號電路等,其中硬件設(shè)計(jì)重點(diǎn)是鍵盤及顯示電路和溫度控制電路。</p><p> 軟件設(shè)計(jì)主要完成系統(tǒng)初始化、鍵盤處理子程序、DS18B20和lcd1602的子程序設(shè)計(jì)、PID計(jì)算子程序等工作。</p><p><b> 實(shí)現(xiàn)途徑及方法
20、</b></p><p> 本系統(tǒng)主要通過資料查找、系統(tǒng)需求分析、系統(tǒng)總體設(shè)計(jì),軟硬件總體設(shè)計(jì)、詳細(xì)的軟件與硬件設(shè)計(jì)、系統(tǒng)仿真與調(diào)試、資料整理等步驟來完成。</p><p> 本系統(tǒng)利用Protel軟件完成硬件電路設(shè)計(jì)工作,利用Keil51軟件完成系統(tǒng)控制軟件的編譯調(diào)試工作,通過Proteus軟件完成所有功能模塊的電路仿真。</p><p><
21、b> 系統(tǒng)總體方案設(shè)計(jì)</b></p><p> 在這個(gè)系統(tǒng)中我們從性能及設(shè)計(jì)成本考慮,我們選擇AT89C52芯片。AT89C52的廣泛使用,使單片機(jī)的價(jià)格大大下降。目前,AT89C52的市場零售價(jià)已經(jīng)低于8255、8279、8253、8250等專用接口芯片中的任何一種;而AT89C52的功能實(shí)際上遠(yuǎn)遠(yuǎn)超過以上芯片。因此,如把AT89C52作為接口芯片使用,在經(jīng)濟(jì)上是合算的。在溫度傳感器的選
22、擇上我們采用溫度芯片DS18B20測量溫度。該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,且此元件線形較好。在0—1000C時(shí),最大線形偏差小于10C。該芯片直接向單片機(jī)傳輸數(shù)字信號,便于單片機(jī)處理及控制。本制作的最大特點(diǎn)之一就是直接采用溫度芯片對溫度進(jìn)行測量,使數(shù)據(jù)傳輸和處理簡單化。采用溫度芯片DS18B20測量溫度,體現(xiàn)了作品芯片化的這個(gè)趨勢。部分功能電路的集成,使總體電路更簡潔,搭建電路和焊接電路時(shí)更快。而且,集成塊的使用,有效
23、地避免外界的干擾,提高測量電路的精確度。本方案應(yīng)用這一溫度芯片,也是順應(yīng)這一趨勢。對于溫度的調(diào)節(jié)系統(tǒng),我們采用的只是簡單的升溫方法,當(dāng)溫度低于我們設(shè)定的最低溫度值時(shí),則單片機(jī)系統(tǒng)控制加熱裝置產(chǎn)生熱量來提高溫度。在這個(gè)</p><p> 本設(shè)計(jì)采用了PID控制。在工程實(shí)際中,PID控制器以其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模
24、型,控制理論的其他技術(shù)也難以采用,系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場調(diào)試來確定時(shí),應(yīng)用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ù)未必可以直接用,
25、還必須通過工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡單、易于掌握,在工程實(shí)際中被廣泛采用。溫度自動控制系統(tǒng)原理框圖如圖1-1所示:</p><p> 圖1.1 溫度自動控制系統(tǒng)原理框圖</p><p> 系統(tǒng)硬件各功能模塊的設(shè)計(jì)</p><p><b> 主控模塊的設(shè)計(jì)</b>&l
26、t;/p><p> 2.1.1 AT89C52單片機(jī)簡介</p><p> AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系可編程Flash 存儲器。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。
27、 </p><p> AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、
28、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 </p><p> AT89C52的廣泛使用使得市面價(jià)格較8155、8255、8279要低,所以說用它是比較經(jīng)濟(jì)的。該芯片具有如下功能:①有1個(gè)專用的鍵盤/顯示接口;②有1個(gè)全雙工異步串行通信接口;③有2個(gè)16位定時(shí)/計(jì)數(shù)器。這樣,1個(gè)AT89
29、C52,承擔(dān)了3個(gè)專用接口芯片的工作;不僅使成本大大下降,而且優(yōu)化了硬件結(jié)構(gòu)和軟件設(shè)計(jì),給用戶帶來許多方便。AT89C52有40個(gè)引腳,有32個(gè)輸入端口(I/O),有2個(gè)讀寫口線,可以反復(fù)插除。所以可以降低成本[1]。 </p><p><b> 其主要工作特性為:</b></p><p> 內(nèi)含8KB的Flash存儲器,擦寫次數(shù)達(dá)1000次;</p>
30、<p> 內(nèi)含128字節(jié)的RAM;</p><p> 具有32根可編程I/O線;</p><p> 具有2個(gè)16位可編程定時(shí)器;</p><p> 具有6個(gè)中斷源、5個(gè)中斷矢量、2級優(yōu)先權(quán)的中斷結(jié)構(gòu);</p><p> 具有1個(gè)全雙工的可編程串行通信接口;</p><p> 具有1個(gè)數(shù)據(jù)指針D
31、PTR;</p><p> 兩種低功耗工作模式,即空閑模式和掉電模式;</p><p> 具有可編程的3級程序鎖定位;</p><p> 工作電源電壓為5±1.2V,典型值為5V;</p><p> 最高工作頻率為24MHz。</p><p> 引腳排列如圖2-1所示。</p><
32、;p> 圖2-1 AT89C52引腳排列(PDIP)</p><p> 2.1.2 溫度傳感器的選擇</p><p> DS18B20原理與特性:本系統(tǒng)采用了DS18B20單總線可編程溫度傳感器,來實(shí)現(xiàn)對溫度的采集和轉(zhuǎn)換,大大簡化了電路的復(fù)雜度,以及算法的要求。首先來介紹一下DS18B20這塊傳感器的特性及其功能: DSl8B20的管腳及特點(diǎn) DS18B20可編程溫度傳感器有
33、3個(gè)管腳。內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及</p><p> 管腳排列如圖2.2所示</p><p> GND為接地線,DQ為數(shù)據(jù)輸入輸出接口,通過一個(gè)較弱的上拉電阻與單片機(jī)相連。VDD為電源接口,既可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.O~5.5 V。本文使用外部電源供電。</
34、p><p><b> 主要特點(diǎn)有: </b></p><p> 1. 用戶可自設(shè)定報(bào)警上下限溫度值。 </p><p> 不需要外部組件,能測量-55~+125℃ 范圍內(nèi)的溫度。</p><p> -10℃ ~+85℃ 范圍內(nèi)的測溫準(zhǔn)確度為±0.5℃ 。</p><p> 圖2.2
35、 DS18B20的外形及管腳圖</p><p> 通過編程可實(shí)現(xiàn)9~l2位的數(shù)字讀數(shù)方式,可在至多750 ms內(nèi)將溫度轉(zhuǎn)換成12 位的數(shù)字,測溫分辨率可達(dá)0.0625℃ 。 </p><p> 獨(dú)特的單總線接口方式,與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)與微處理器雙向通訊。</p><p> 測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳
36、送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。</p><p> 負(fù)壓特性:電源極性接反時(shí),芯片不會因發(fā)熱而燒毀,但不能正常工作。</p><p> DS18B20支持多點(diǎn)組網(wǎng)的功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫[2]。</p><p> DS18B20內(nèi)部功能模塊如圖2.3所示,</p><p
37、> 圖2.3 DS18B20內(nèi)部功能模塊</p><p> DS18B20的工作原理:</p><p> DS18B20的讀寫時(shí)序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同DS18B20 為9位~12位A/D轉(zhuǎn)換精度,而DS1820為9位A/D轉(zhuǎn)換,雖然我們采用了高精度的芯片,但在實(shí)際情況上由于技術(shù)問題比較難實(shí)現(xiàn),而實(shí)際精度此時(shí)溫度寄存器中的數(shù)值即為所測溫
38、度。斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。如下3.3的測溫原理圖不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測溫原理如圖4.3所示。</p><p> 圖2.4 DS18B20的測溫原理框圖</p><p> 圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。則高溫度系數(shù)晶振隨溫度變化其振蕩率
39、明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個(gè)基數(shù)值時(shí)。計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生脈沖信號,進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直</p><p> 到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值。</p><p> DS18
40、B20使用中注意事項(xiàng) </p><p> DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題: </p><p> 1) 較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級
41、語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對DS18B20操作部分最好采用匯編語言實(shí)現(xiàn)。 </p><p> 2) 在DS18B20的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。 </p><p> 3) 連接DS
42、18B20的總線電纜是有長度限制的。試驗(yàn)中,當(dāng)采用普通信號電纜傳輸長度超過50m時(shí),讀取的測溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。 </p><p> 在DS18B
43、20測溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序要等待DS18B20的返回信號,一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時(shí),將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測溫電纜線采用屏蔽4芯雙絞線,其中有一對接地線與信號線,另一組接VCC和地線。</p><p> 2.1.3復(fù)位和時(shí)鐘電路的設(shè)計(jì)</p><
44、p> 本系統(tǒng)中采用上電復(fù)位和手動復(fù)位鍵復(fù)位相結(jié)合的方式。系統(tǒng)時(shí)鐘電路設(shè)計(jì)采用內(nèi)部方式。AT89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。這個(gè)放大器與作為反饋元件的片外晶體諧振器構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。本系統(tǒng)電路采用的晶體振蕩器頻率為11.0592MHz。采用這種頻率的晶體振蕩器的原因是可以方便的獲得標(biāo)準(zhǔn)的波特率。復(fù)位電路和時(shí)鐘電路如圖2-5所示。復(fù)位電路有上電自
45、動復(fù)位和按鈕手動復(fù)位兩種。上電復(fù)位是利用電容充電來實(shí)現(xiàn)的,上電瞬間RST/VPD端的電位與VCC相同,隨著充電電流的減少,RST/VPD的電位逐漸下降,圖2.5中的10K的電阻是施密特觸發(fā)器輸入端的一個(gè)下拉電阻,時(shí)間常數(shù)為10*10-6*10*103s=100ms,只要Vcc的上升時(shí)間不超過1ms,振蕩器建立時(shí)間不超過10ms,這個(gè)時(shí)間常數(shù)足以保證完成復(fù)位操作[6]。上電復(fù)位所需最短時(shí)間是震蕩周期建立時(shí)間加上2個(gè)機(jī)器周期時(shí)間。按鈕復(fù)位采
46、用電平復(fù)位方式,按下復(fù)位電鈕時(shí),電源對外接電容充電,使RST/VPD端為高電平,復(fù)位按鈕松開后,電容通過內(nèi)部下拉電阻放電,逐漸使RST</p><p> 圖2.5 復(fù)位電路和時(shí)鐘電路</p><p> 2.1.4 溫度采集電路</p><p> 數(shù)據(jù)采集電路如圖2.6所示,1腳接地,2腳即為單總線數(shù)據(jù)口,3腳接電源。溫度傳感器DS18B20采集被控對象的實(shí)時(shí)溫
47、度,提供給AT89C52的P3.5口作為數(shù)據(jù)輸入。</p><p> 圖2.6 數(shù)據(jù)采集電路</p><p><b> 人機(jī)接口設(shè)計(jì)</b></p><p><b> 鍵盤的設(shè)計(jì)</b></p><p> 在本設(shè)計(jì)中采用了矩陣式,鍵盤分布如圖2.7所示。各鍵設(shè)在行列線的交差點(diǎn)上,有鍵合上時(shí)行
48、列線接通,否則不連通。行線P10—P13(即A1—A4)通過上拉電阻接+5V,處于輸入狀態(tài),列線P14—P17(即B1—B4)為輸出狀態(tài)[7]。</p><p> 圖2.7 編碼式鍵盤</p><p><b> 顯示電路的設(shè)計(jì)</b></p><p> 本設(shè)計(jì)的顯示采用LCD1602。圖2.8為LCD1602的引腳圖。 </p>
49、;<p> 圖2.8 LCD1602引腳圖</p><p> 1602采用標(biāo)準(zhǔn)的16腳接口,其中: </p><p> 第1腳:VSS為地電源第2腳:VDD接5V正電源</p><p> 第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,對比度過高時(shí)會產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度&l
50、t;/p><p> 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p> 第5腳:RW為讀寫信號線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀信號,當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平,液晶模塊執(zhí)行命令。<
51、/p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 第15~16腳:空腳</p><p> 在本設(shè)計(jì)中LCD1602與單片機(jī)的連接如圖2.9所示。單片機(jī)的P0口為數(shù)據(jù)輸出口,接到LCD1602的DB0—DB7口,P2.0—P2.2為控制端,分別接寄存器選擇RS、讀寫信號線R/W和使能端E,共同控制LCD1602讀寫操作。</p>
52、;<p> 圖2.9 顯示電路圖</p><p><b> 軟件設(shè)計(jì)</b></p><p> 由于整個(gè)系統(tǒng)軟件比較復(fù)雜,為了便于編寫、調(diào)試、修改和增刪,系統(tǒng)程序的編制適合采用模塊化的程序結(jié)構(gòu),故要求整個(gè)控制系統(tǒng)軟件由許多獨(dú)立的小模塊組成,它們之間通過軟件接口連接,遵循模塊內(nèi)數(shù)據(jù)關(guān)系緊湊,模塊間數(shù)據(jù)關(guān)系松散的原則,將各功能模塊組織成模塊化的軟件結(jié)
53、構(gòu)。</p><p> 系統(tǒng)的軟件主要由主程序模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、控制算法模塊等組成。主模塊的功能是為其余幾個(gè)模塊構(gòu)建整體框架及初始化工作;數(shù)據(jù)采集模塊的作用是將數(shù)字量采集并儲存到存儲器中;數(shù)據(jù)處理模塊是將采集到的數(shù)據(jù)進(jìn)行一系列的處理,其中最重要的是數(shù)字濾波程序:控制算法模塊完成控制系統(tǒng)的PID運(yùn)算并且輸出控制量。</p><p><b> 3.1主程序模塊&l
54、t;/b></p><p> 主程序模塊要做的主要工作是上電后對系統(tǒng)初始化和構(gòu)建系統(tǒng)整體軟件框架,其中初始化包括對單片機(jī)的初始化、串口初始化等。然后等待溫度設(shè)定,若溫度已經(jīng)設(shè)定好了,判斷系統(tǒng)運(yùn)行鍵是否按下,若系統(tǒng)運(yùn)行,則依次調(diào)用各個(gè)相關(guān)模塊,循環(huán)控制直到系統(tǒng)停止運(yùn)行。主程序模塊的程序流程圖如圖3-1所示。</p><p> 3.2數(shù)據(jù)采集和顯示模塊</p><
55、p> 數(shù)據(jù)采集模塊的任務(wù)是負(fù)責(zé)溫度信號的采集以及將采集到的數(shù)字量提供給單片機(jī)。</p><p> AT89C52通過控制DS18B20讀取實(shí)時(shí)溫度,然后,通過P0口送到LCD1602進(jìn)行顯示。數(shù)據(jù)采集模塊的程序流程圖如圖3.2所示,顯示程序設(shè)計(jì)框圖如圖3.3所示[8]。</p><p> 圖3-2 數(shù)據(jù)采集模塊程序流程圖</p><p><b>
56、; N</b></p><p><b> Y </b></p><p> 圖3.3顯示程序設(shè)計(jì)框圖</p><p> DS18B20和lcd1602的子程序設(shè)計(jì)如下:</p><p> #include<reg51.h></p><p> #define u
57、char unsigned char#define uint unsigned int</p><p> sbit DQ=P3^7;//ds18b20與單片機(jī)連接口sbit RS=P3^0;sbit RW=P3^1;sbit EN=P3^2;</p><p> unsigned char code str1[]={"temperature: "};unsi
58、gned char code str2[]={" "};</p><p> uchar data disdata[5];uint tvalue;//溫度值uchar tflag;//溫度正負(fù)標(biāo)志</p><p>
59、; /*************************lcd1602程序**************************/void delay1ms(unsigned int ms)//延時(shí)1毫秒(不夠精確的){unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<100;j++);}</p>&
60、lt;p> void wr_com(unsigned char com)//寫指令//{ delay1ms(1); RS=0; RW=0; EN=0; P2=com; delay1ms(1); EN=1; delay1ms(1);
61、160; EN=0;}</p><p> void wr_dat(unsigned char dat)//寫數(shù)據(jù)//{ delay1ms(1);; RS=1; RW=0; EN=0; P2=dat; delay1ms(1); EN=1;
62、160; delay1ms(1); EN=0;}</p><p> void lcd_init()//初始化設(shè)置//{delay1ms(15);wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5);
63、60; wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5);}</p><p> void display(unsigned char *p)//顯示//{while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}
64、}</p><p> init_play()//初始化顯示{ lcd_init(); wr_com(0x80);display(str1);wr_com(0xc0);display(str2); }</p><p> /***********************ds1820程序*****************
65、*********/void delay_18B20(unsigned int i)//延時(shí)1微秒{ while(i--);}</p><p> void ds1820rst()/*ds1820復(fù)位*/{ unsigned char x=0;DQ = 1; //DQ復(fù)位
66、delay_18B20(4); //延時(shí)DQ = 0; //DQ拉低delay_18B20(100); //精確延時(shí)大于480usDQ = 1; //拉高delay_18B20(40);
67、 } uchar ds1820rd()/*讀數(shù)據(jù)*/{ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; //給脈沖信號 dat>>=1; DQ = 1; //給脈沖信號
68、60; if(DQ) dat|=0x80; delay_18B20(10);} return(dat);}</p><p> void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/{unsigned char i=0; for (i=8; i>0;
69、i--) { DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; }}</p>&
70、lt;p> read_temp()/*讀取溫度值并轉(zhuǎn)換*/{uchar a,b;ds1820rst(); ds1820wr(0xcc);//*跳過讀序列號*/ds1820wr(0x44);//*啟動溫度轉(zhuǎn)換*/ds1820rst(); ds1820wr(0xcc);//*跳過讀序列號*/ ds1820wr(0xbe);//*讀取溫度*/ a=
71、ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else {tvalue=~tvalue+1;tflag=1; }tvalue=
72、tvalue*(0.625);//溫度值擴(kuò)大10倍,精確到1位小數(shù)return(tvalue);}</p><p> /*******************************************************************/ void ds1820disp()//溫度值顯示{ uchar flagdat; disdata[
73、0]=tvalue/1000+0x30;//百位數(shù) disdata[1]=tvalue%1000/100+0x30;//十位數(shù) disdata[2]=tvalue%100/10+0x30;//個(gè)位數(shù) disdata[3]=tvalue%10+0x30;//小數(shù)位</p>&l
74、t;p> if(tflag==0) flagdat=0x20;//正溫度不顯示符號 else flagdat=0x2d;//負(fù)溫度顯示負(fù)號:-</p><p> if(disdata[0]==0x30)
75、160; {disdata[0]=0x20;//如果百位為0,不顯示 if(disdata[1]==0x30) {disdata[1]=0x20;//如果百位為0,十位為0也不顯示 } }</p><p> wr_com(0xc0); wr_dat(flagd
76、at);//顯示符號位 wr_com(0xc1); wr_dat(disdata[0]);//顯示百位 wr_com(0xc2); wr_dat(disdata[1]);//顯示十位 wr_com(0xc3);
77、 wr_dat(disdata[2]);//顯示個(gè)位 wr_com(0xc4); wr_dat(0x2e);//顯示小數(shù)點(diǎn) wr_com(0xc5); wr_dat(disdata[3]);//顯示小數(shù)位 }</p><p><
78、b> 3.3輸入模塊</b></p><p> 鍵盤選擇程序掃描方式工作,利用CPU在完成其它工作的空閑時(shí)間中,調(diào)用鍵盤掃描子程序,來處理鍵的輸入要求。在執(zhí)行鍵功能處理程序時(shí),CPU不再響應(yīng)其它鍵輸入要求[9]。鍵盤處理子程序流程圖如圖3.4所示:</p><p> 圖3.4鍵盤程序設(shè)計(jì)框圖</p><p> 4乘4鍵盤程序設(shè)計(jì)如下:<
79、;/p><p> #include<reg51.h>#include<defi.h></p><p> /* 用于鍵消抖的延時(shí)函數(shù) */void delay(){ uchar t; for (t=400;t>0;t--);}</p><p> /* 鍵掃描函數(shù) */uchar keyscan(void
80、){ uchar scancode,tmpcode; P2 = 0xf0; // 發(fā)全0行掃描碼 if ((P2&0xf0)!=0xf0) // 若有鍵按下 { delay();
81、 // 延時(shí)去抖動 if ((P2&0xf0)!=0xf0) // 延時(shí)后再判斷一次,去除抖動影響 { scancode = 0xfe; while((scancode&0x10)!=0) // 逐行掃
82、描 { P2 = scancode; // 輸出行掃描碼 if ((P2&0xf0)!=0xf0) // 本行有鍵按下 {
83、tmpcode = (P2&0xf0)|0x0f;</p><p> /* 返回特征字節(jié)碼,為1的位即對應(yīng)于行和列 */ return((~scancode)+(~tmpcode)); } else scancode = (scancode<&
84、lt;1)|0x01; // 行掃描碼左移一位 } } } return(0); // 無鍵按下,返回值為0}</p><p> /* 主程序 */void main(){ uchar key;&
85、lt;/p><p> while(1) { key = keyscan(); // 調(diào)用鍵盤掃描函數(shù)</p><p><b> delay();</b></p><p> switch(key)&
86、#160; { case 0x11:
87、160; NUM0=1; // 第1行第1列,選擇正弦波輸出 break; case 0x21: // 第1行第2列,選擇矩形波輸出
88、0; LIGHTA = 0; LIGHTB = 0; break; case 0x41: // 第1行第3列,選擇三角波輸出 LIGHTA = 1;
89、60; LIGHTB = 0; break; default:break; } if(NUM0)
90、160; { NUM0=0; LIGHTA = 0; LIGHTB = 1;
91、 } }}</p><p> 第4章 PID控制和參數(shù)整定</p><p> 4.1 PID調(diào)節(jié)器控制原理</p><p> PID控制器是一種線性控制器,一種它根據(jù)給定值r
92、in(t)與實(shí)際輸出值yout(t)構(gòu)成控制偏差:</p><p> Error(t)=rin(t)-yout(t)</p><p> PID控制系統(tǒng)原理框圖如圖4.1所示</p><p> 圖4.1 PID控制系統(tǒng)原理框圖</p><p> PID控制就是對偏差信號進(jìn)行比例、積分、微分運(yùn)算后,形成一種控制規(guī)律。即,控制器的輸出為:
93、</p><p><b> ?。?.1)</b></p><p> 或?qū)懗蓚鬟f函數(shù)的形式:</p><p><b> ?。?.2)</b></p><p> 式中, kp——比例系數(shù);Ti——積分時(shí)間常數(shù);Td——微分時(shí)間常數(shù)。簡單說來,PID控制器各校正環(huán)節(jié)的作用如下:</p>
94、<p> 比例環(huán)節(jié):成比例地反映控制系統(tǒng)的偏差信號error(t),偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用,以減小偏差[10]。</p><p> 比例控制: Gc(s)= Kp </p><p> 積分環(huán)節(jié):主要用于消除靜差,提高系統(tǒng)的無差度。積分作用的強(qiáng)盡弱取決于積分時(shí)間常數(shù)Ti,Ti越大,積分作用越弱,反之則越強(qiáng)。</p><p> 積分控制:
95、 Gc(s) = Kp/T is</p><p> 微分環(huán)節(jié):反偏差信號的變化趨勢(變化速率),并能在偏差信號變得太大之前,在系統(tǒng)中引入一個(gè)有效的早期修正信號,從而加快系統(tǒng)的動作速度,減少調(diào)節(jié)時(shí)間。</p><p> 微分控制: Gc(s) =KpT ds</p><p> 4.2 PID控制的分類</p><p> 基本PID控制器
96、的理想算式為</p><p><b> (4.3)</b></p><p><b> 式中</b></p><p> u(t)——控制器(也稱調(diào)節(jié)器)的輸出;</p><p> e(t)——控制器的輸入(常常是設(shè)定值與被控量之差,即e(t)=r(t)-c(t));</p>&l
97、t;p> Kp——控制器的比例放大系數(shù);</p><p> Ti ——控制器的積分時(shí)間;</p><p> Td——控制器的微分時(shí)間。</p><p> 設(shè)u(k)為第k次采樣時(shí)刻控制器的輸出值,可得離散的PID算式</p><p><b> (4.4)</b></p><p>&
98、lt;b> , </b></p><p> 由于計(jì)算機(jī)的輸出u(k)直接控制執(zhí)行機(jī)構(gòu)(如閥門),u(k)的值與執(zhí)行機(jī)構(gòu)的位置(如閥門開度)一一對應(yīng),所以稱式(2)為位置式PID控制算法。</p><p> 位置式PID控制算法的缺點(diǎn):當(dāng)前采樣時(shí)刻的輸出與過去的各個(gè)狀態(tài)有關(guān),計(jì)算時(shí)要對e(k)進(jìn)行累加,運(yùn)算量大;而且控制器的輸出u(k)對應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如
99、果計(jì)算機(jī)出現(xiàn)故障,u(k)的大幅度變化會引起執(zhí)行機(jī)構(gòu)位置的大幅度變化。</p><p> 本設(shè)計(jì)采用增量式PID控制,算法程序框圖如圖4.2所示 </p><p> 圖4.2 增量式PID算法程序框圖</p><p> 增量式只需計(jì)算增量,算式中不需要累加,控制增量的確定僅與最近幾次偏差采樣值有關(guān),當(dāng)出現(xiàn)計(jì)算誤差或精度不足時(shí),對控制量計(jì)算的影響較小,且較容易
100、通過加權(quán)處理獲得比較好的控制效果。</p><p> 4.3 數(shù)字PID參數(shù)的整定</p><p> 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ù)未必可以直接
101、用,還必須通過工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡單、易于掌握,在工程實(shí)際中被廣泛采用。本設(shè)計(jì)采用PID歸一整定法把對控制臺三個(gè)參數(shù)(Kc、Ti、Td,)轉(zhuǎn)換為一個(gè)參數(shù)KP, 從而使問題明顯簡化。以達(dá)到控制器的特性與被控過程的特性相匹配,滿足某種反映控制系統(tǒng)質(zhì)量的性能指標(biāo)。</p><p> 4.3.1 采樣周期選擇的原則</p>&l
102、t;p> ?。?)根據(jù)香農(nóng)采樣定理,系統(tǒng)采樣頻率的下限為fs=2fmax,此時(shí)系統(tǒng)可真實(shí)地恢復(fù)到原來的連續(xù)信號。 </p><p> ?。?)從執(zhí)行機(jī)構(gòu)的特性要求來看,有時(shí)需要輸出信號保持一定的寬度。采樣周期必須大于這一時(shí)間。</p><p> ?。?)從控制系統(tǒng)的隨動和抗干擾的性能來看,要求采樣周期短些。 </p><p> ?。?)從微機(jī)的工作量和每個(gè)調(diào)節(jié)
103、回路的計(jì)算來看,一般要求采樣周期大些。 </p><p> ?。?)從計(jì)算機(jī)的精度看,過短的采樣周期是不合適的。 </p><p> ?。?)滯后占主導(dǎo)地位時(shí),應(yīng)使滯后時(shí)間為采樣周期的整數(shù)倍</p><p> 下表4.1列出了幾種常見的被測參數(shù)的采樣周期T的經(jīng)驗(yàn)選擇數(shù)據(jù)??晒┰O(shè)計(jì)時(shí)參考。實(shí)際上生產(chǎn)過程千差萬別,經(jīng)驗(yàn)數(shù)據(jù)不一定就合適,可用試探法逐步調(diào)試確定。<
104、/p><p> 表4.1 采樣周期的經(jīng)驗(yàn)數(shù)據(jù)表</p><p> 4.3.2 PID參數(shù)對系統(tǒng)性能的影響</p><p> 表4.2 PID參數(shù)對系統(tǒng)性能的影響</p><p> 綜上所述,(Kp、Ti、Td,)對系統(tǒng)的性能影響如表4.3所示:</p><p> 表4.3 Kp、Ti和Td對系統(tǒng)的影響<
105、;/p><p> 4.4 PID計(jì)算程序 </p><p> PID調(diào)節(jié)規(guī)律的基本輸入輸出關(guān)系可用微分方程表示為:</p><p><b> (4.5)</b></p><p> 式中為調(diào)節(jié)器的輸入誤差信號,且</p><p><b> ?。?.6)</b></p
106、><p> 其中:為給定值,為被控變量;</p><p> 為調(diào)節(jié)器的輸出控制信號;</p><p><b> 為比例系數(shù);</b></p><p><b> 為積分時(shí)間常數(shù);</b></p><p><b> 微分時(shí)間常數(shù)。</b></p&
107、gt;<p> 計(jì)算機(jī)只能處理數(shù)字信號,若采樣周期為T第n次采樣的輸入誤差為,且,輸出為,PID算法用的微分由差分代替,積分由代替,于是得到</p><p><b> ?。?.7)</b></p><p><b> 寫成遞推形式為</b></p><p><b> △</b><
108、;/p><p><b> =</b></p><p><b> =</b></p><p><b> =</b></p><p><b> =</b></p><p> =
109、 (4.8)</p><p> 其中: (4.9)</p><p><b> (4.10)</b></p><p><b> ?。?.11)</b></p><p> 顯然,PID計(jì)算△u
110、n只需要保留現(xiàn)時(shí)刻en以及以前的兩個(gè)偏差量en-1和en-2。初始化程序初值en-1= en-2 =0 通過采樣并根據(jù)參數(shù)KP、KD、KI以及en、en-1和en-2計(jì)算△un。</p><p> 根據(jù)輸出控制增量△un,可求出本次控制輸出為</p><p> +△= (4.12)</p><p> 由于
111、電阻爐一般是屬于一階對象和滯后的一階對象,所以式中KP、KD、KI的選擇取決于電阻爐的階躍響應(yīng)曲線和實(shí)際經(jīng)驗(yàn),工程上已經(jīng)積累了不少行之的參數(shù)整定方法。本設(shè)計(jì)采用Ziegler-Nichols提出的 PID歸一調(diào)整法,調(diào)整參數(shù),主要是為了減少在線整定參數(shù)的數(shù)目,常常人為假定約束條件,以減少獨(dú)立變量的個(gè)數(shù),令:</p><p><b> (4.13)</b></p><p&
112、gt;<b> (4.14)</b></p><p><b> ?。?.15)</b></p><p> 式中TU稱為臨界周期。在單純比例作用下(比例增益由小到大),是系統(tǒng)產(chǎn)生等幅振蕩的比例增益KU,這時(shí)的工作周期為臨界周期TU,則可以得到</p><p><b> △un =</b></
113、p><p><b> =</b></p><p> = (4.16)</p><p> 式中=0.2,=1.25[8] (4.17)</p><p> 從而可以調(diào)節(jié)的參數(shù)只有一個(gè)??稍O(shè)計(jì)一個(gè)調(diào)整子程序,通過鍵盤輸入改變KP值,改變
114、運(yùn)行參數(shù),使系統(tǒng)滿足要求[11]。</p><p> 下面對PID運(yùn)算加以說明:</p><p> 所有的數(shù)都變成定點(diǎn)純小數(shù)進(jìn)行處理。</p><p> 算式中的各項(xiàng)有正有負(fù),以最高位作為符號位,最高位為0表示為正數(shù),為1表示負(fù)數(shù)。正負(fù)數(shù)都是補(bǔ)碼表示,最后的計(jì)算以原碼輸出。</p><p> 雙精度運(yùn)算,為了保證運(yùn)算精度,把單字節(jié)8位
115、輸入采樣值Cn和給定值rn都變成雙字節(jié)16位進(jìn)行計(jì)算,最后將運(yùn)算結(jié)果取成高8位有效值輸出。輸出控制量un的限幅處理。為了便于實(shí)現(xiàn)對晶閘管的通斷處理,PID的輸出在0~250之間。大于250或小于0的控制量都是沒有意義的,因在算法上對進(jìn)行限幅,即</p><p> = (4.18)</p><p> 圖4.3 PID計(jì)算程序的流程圖</p><p>
116、; PID的計(jì)算公式采用位置式算法,計(jì)算公式為</p><p><b> +</b></p><p> = (4.19)</p><p> PID計(jì)算的程序流程圖4.3所指示。</p><p> PID控制具體程序如下:<
117、/p><p> /*********************************************************/ /* 名稱: float PIDprocess1 */ /* 功能: PID adjust */ /* 說明: */ /* 調(diào)用: */ /* 輸入: float xdata *Yn, float xdata *Rn */ /* 返回值: deltaPn */ /**
118、*******************************************************/ float PIDprocess1() { int data E_0; float data deltaPn,deltaPi,deltaPp,deltaPd,PsumCopy; E_0=SetTemperature1-CurrentTemperature1; if(abs(E_0)>Emax) {
119、deltaPp=(float)Kp*(E_0-E_11); deltaPd=(float)Kd*(E_0-2*E_11+E_21); // if(deltaPd</p><p> /* if(fabs(deltaPn)>dPmax) { if(deltaPn>0) deltaPn=dPmax; else deltaPn=-dPmax; }*/ Psum2+=deltaPn; Psum
120、Copy=Psum2; if(PsumCopy>Pmax) PsumCopy=Pmax; if(PsumCopy<Pmin) PsumCopy=Pmin; E_22=E_12; E_12=E_0; return(PsumCopy); }</p><p><b> 第5章 仿真</b></p><p> 5.1 PROTEUS軟件簡介&
121、lt;/p><p> Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: </p><p><b> ?。?)原理布圖 </b></p><p> (2)PCB自動或人工布線 </p><p> ?。?)SPICE電路仿真 </p><p><b>
122、革命性的特點(diǎn): </b></p><p> (1)互動的電路仿真 </p><p> 用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 </p><p> ?。?)仿真處理器及其外圍電路 </p><p> 可以仿真51系列、AVR、PIC、ARM、等常用主流單
123、片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境[12]。</p><p><b> 5.2仿真</b></p><p> 通過對電路的硬件設(shè)計(jì)和程序設(shè)計(jì),我們使用了PROTEUS對設(shè)計(jì)的電路進(jìn)行仿真設(shè)計(jì)。首先,我們將硬件電路在PROTEU
124、S中連接好,按照設(shè)計(jì)總電路圖連接各個(gè)硬件,通過單片機(jī)C語言來進(jìn)行編程,程序如附錄所示。通過KEIL軟件降我們的源程序轉(zhuǎn)換成目標(biāo)程序來進(jìn)行仿真,生成*.hex文件。最后從PROTEUS中,將我們的程序?qū)雴纹瑱C(jī)中,便能進(jìn)行實(shí)時(shí)仿真。仿真圖如圖5.1所示:</p><p> 圖5.1 PROTEUS仿真圖</p><p><b> 致 謝</b></p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)(論文)溫室溫度自動控制系統(tǒng)設(shè)計(jì)
- 溫度自動控制畢業(yè)設(shè)計(jì)--基于51單片機(jī)的溫度自動控制系統(tǒng)設(shè)計(jì)研究
- 溫度自動控制畢業(yè)設(shè)計(jì)--基于51單片機(jī)的溫度自動控制系統(tǒng)設(shè)計(jì)研究
- 蔬菜大棚溫度濕度自動控制系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)論文
- 大棚溫度自動控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---鐵廠配料自動控制系統(tǒng)設(shè)計(jì)
- 水位遙測自動控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì) 焦?fàn)t壓力自動控制系統(tǒng)
- 水溫自動控制系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)--水塔水位自動控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)----plc自動控制系統(tǒng)控制電梯設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--公路隧道通風(fēng)自動控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文-溫室溫度自動控制系統(tǒng)設(shè)計(jì)
- 交通燈自動控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-焦?fàn)t壓力自動控制系統(tǒng)
- 熱水器自動控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---立體車庫自動控制系統(tǒng)
- 畢業(yè)論文-溫室溫度自動控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)車站信號自動控制系統(tǒng)
- 基于matlab的自動控制系統(tǒng)仿真畢業(yè)設(shè)計(jì)
評論
0/150
提交評論