l 引言
溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,與之相關(guān)的各種溫度控制系統(tǒng)廣泛應(yīng)用于冶金、化工、機(jī)械、食品等領(lǐng)域。文中介紹的溫度測(cè)量及加熱控制系統(tǒng)以ATmega8型AVR系列單片機(jī)為核心部件,通過(guò)對(duì)系統(tǒng)軟件和硬件設(shè)計(jì)的合理規(guī)劃,發(fā)揮單片機(jī)自身集成眾多系統(tǒng)級(jí)功能單元的優(yōu)勢(shì),在不減少功能的前提下有效降低了硬件成本,系統(tǒng)操控簡(jiǎn)便。實(shí)驗(yàn)證明該溫控系統(tǒng)具有很高的可靠性和穩(wěn)定性。
2 系統(tǒng)結(jié)構(gòu)及控制算法
2.1 系統(tǒng)總體結(jié)構(gòu)
溫度測(cè)量及加熱控制系統(tǒng)的總體結(jié)構(gòu)如圖1所示。系統(tǒng)主要包括現(xiàn)場(chǎng)溫度采集、實(shí)時(shí)溫度顯示、加熱控制參數(shù)設(shè)置、加熱電路控制輸出、與上位機(jī)串行通信和系統(tǒng)核心ATmega8型單片機(jī)等。

2.2 系統(tǒng)控制算法
系統(tǒng)采用基于增量式PID算法的脈寬調(diào)制(PWM)控制方法,即PWM方波的占空比由增量式PID算法求得。增量式PID算法的輸出量為

單片機(jī)每隔固定時(shí)間T將現(xiàn)場(chǎng)溫度與用戶設(shè)定目標(biāo)溫度的差值帶入增量式PID算法公式,由公式輸出量決定PWM方波的占空比,后續(xù)加熱電路根據(jù)此PWM方波的占空比決定加熱功率,F(xiàn)場(chǎng)溫度與目標(biāo)溫度的偏差大則占空比大,加熱電路的加熱功率大,使溫度的實(shí)測(cè)值與設(shè)定值的偏差迅速減;反之,二者的偏差小則占空比減小,加熱電路加熱功率減小,直至目標(biāo)值與實(shí)測(cè)值相等,達(dá)到自動(dòng)控制的目的。
3 硬件設(shè)計(jì)
3.1 ATmega8單片機(jī)
ATmega8型單片機(jī)是ATMEL公司推出的基于AVR RISC結(jié)構(gòu)的高檔Flash型單片機(jī)。其核心將32個(gè)工作寄存器和指令集連接在一起,所有工作寄存器都與ALU(算術(shù)邏輯單元)直接相連,實(shí)現(xiàn)了1個(gè)時(shí)鐘周期執(zhí)行1條指令同時(shí)訪問(wèn)(讀寫(xiě))二個(gè)獨(dú)立寄存器的操作。這種結(jié)構(gòu)提高了代碼效率,使得大部分指令的執(zhí)行時(shí)間僅為1個(gè)時(shí)鐘周期。因此,ATmega8具有接近l MI/s/MHz的性能,運(yùn)行速度比普通CISC單片機(jī)高10倍。
ATmega8型單片機(jī)內(nèi)集成了執(zhí)行速度為二個(gè)時(shí)鐘周期的硬件乘法器、8 KB的Flash程序存儲(chǔ)器、512字節(jié)的E2PROM、2個(gè)具有比較模式的8位定時(shí)器、1個(gè)具有比較和捕獲模式的16位定時(shí)器、3路最大精度為16位的PWM輸出、8通道10位A/D轉(zhuǎn)換器,PI/TWI同步串口及USART異步串口。ATmega8片內(nèi)集成的眾多系統(tǒng)級(jí)功能單元為控制系統(tǒng)的開(kāi)發(fā)提供了很大便利。設(shè)計(jì)過(guò)程中,盡量通過(guò)軟件編程簡(jiǎn)化硬件電路,有效縮短了開(kāi)發(fā)周期。
3.2 現(xiàn)場(chǎng)溫度采集
現(xiàn)場(chǎng)溫度由溫度傳感器獲得。在本系統(tǒng)中,溫度傳感器選用Ptl00鉑電阻器,利用鉑金屬自身阻值隨溫度變化的特性測(cè)溫。鉑電阻經(jīng)變送器放大及線性化處理,輸出4 mA~20 mA的標(biāo)準(zhǔn)直流信號(hào),對(duì)應(yīng)于現(xiàn)場(chǎng)溫度0℃~400℃,通過(guò)150 Ω高精度金屬膜電阻轉(zhuǎn)化為O.6 V~3 V直流電壓信號(hào)。此模擬電壓信號(hào)符合ATmega8自帶A/D轉(zhuǎn)換器輸入要求,連接至ATmega8的PC0即可進(jìn)行A/D轉(zhuǎn)換。
ATmega8內(nèi)部集成有8通道10位高速A/D轉(zhuǎn)換器。本系統(tǒng)只選用單通道PCO作為A/D轉(zhuǎn)換的模擬電壓輸入。A/D轉(zhuǎn)換的參考電壓使用系統(tǒng)自帶的Vcc;谇笆,輸入10位A/D轉(zhuǎn)換器的模擬電壓0.6V~3 V代表0℃~400℃,則現(xiàn)場(chǎng)溫度T可以表示為:

至此,溫度值由非電模擬量轉(zhuǎn)換為數(shù)字量,可以直接用于單片機(jī)內(nèi)部加熱控制算法的運(yùn)算。實(shí)際編程時(shí),為了降低采樣過(guò)程瞬態(tài)誤差的干擾,運(yùn)用了算術(shù)均值濾波的方法,即最終參與控制運(yùn)算的溫度值T通過(guò)10次采樣的溫度值求算術(shù)平均取得。
3.3 數(shù)碼管顯示電路
加熱過(guò)程中,被控對(duì)象的實(shí)際溫度、用戶設(shè)定的目標(biāo)爐溫等參量通過(guò)數(shù)碼管顯示電路實(shí)時(shí)顯示。數(shù)碼管顯示電路的原理如圖2所示。

單片機(jī)將需要顯示的8位字段碼通過(guò)SPI傳至
74HCl64,由74HCl64輸出8位并行邏輯電平驅(qū)動(dòng)示。通過(guò)使用同步串口SPI與74HCl64型串入并出芯片驅(qū)動(dòng)數(shù)碼管的8位字段碼,比傳統(tǒng)并行驅(qū)動(dòng)方式節(jié)約6個(gè)單片機(jī)I/O口,并且利用ATmega8自帶的硬件SPI單元,無(wú)需軟件模擬SPI通信。
由于采用動(dòng)態(tài)顯示技術(shù),編程時(shí)必須注意每次更新顯示數(shù)值應(yīng)先將待顯示字段送到74HCl64,再通過(guò)PC1——PC4使能數(shù)碼管中某一位點(diǎn)亮,否則就會(huì)發(fā)生錯(cuò)位顯示現(xiàn)象。
3.4 加熱驅(qū)動(dòng)電路
ATmega8的I/0口輸出負(fù)載能力最大為40mA,無(wú)法直接驅(qū)動(dòng)工業(yè)環(huán)境中使用的電爐、電機(jī)等大功率設(shè)備,必須通過(guò)中間驅(qū)動(dòng)電路實(shí)現(xiàn)單片機(jī)對(duì)功率設(shè)備工作狀態(tài)的控制。實(shí)際應(yīng)用中,通常采用繼電器或交流接觸器間接驅(qū)動(dòng)。由于繼電器或交流接觸器具有機(jī)械接觸特點(diǎn),因而在很大程度上降低了控制系統(tǒng)整體的穩(wěn)定性和可靠性。
為了避免機(jī)械接觸開(kāi)關(guān)的缺點(diǎn),本系統(tǒng)選用以可控硅為主體的完全光電隔離的中間驅(qū)動(dòng)電路。可控硅是大功率開(kāi)關(guān)型半導(dǎo)體器件,能在高電壓、大電流條件下工作,具有無(wú)機(jī)械接觸、體積小、便于安裝等優(yōu)點(diǎn),廣泛應(yīng)用于電力電子設(shè)備中。加熱驅(qū)動(dòng)電路示意圖如圖3所示。





