基于ATmgea8型單片機(jī)的加熱控制系統(tǒng)
1 引言
溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,與之相關(guān)的各種溫度控制系統(tǒng)廣泛應(yīng)用于冶金、化工、機(jī)械、食品等領(lǐng)域。文中介紹的文化測(cè)量及加熱控制系統(tǒng)以 atmega8型avr系列單片機(jī)為核心部件,通過對(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)定性。
本文引用地址:http://www.biyoush.com/article/21307.htm2 系統(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ī)等。
溫度采集電路以模擬電壓形式將現(xiàn)場(chǎng)溫度傳至單片機(jī)。單片機(jī)通過自身集成的 a/d轉(zhuǎn)換器將模擬電壓轉(zhuǎn)化為控制系統(tǒng)可用的數(shù)字量。單片機(jī)結(jié)合現(xiàn)場(chǎng)溫度與用戶設(shè)定的目標(biāo)溫度,按照已經(jīng)編程固化的增量式pid控制算法計(jì)算出實(shí)時(shí)控制量。以此控制量使能光電隔離驅(qū)動(dòng)電路,決定加熱電路的工作狀態(tài),使?fàn)t溫逐步穩(wěn)定于用戶設(shè)定的目標(biāo)值。系統(tǒng)運(yùn)行過程中的各種狀態(tài)參量均由數(shù)碼管實(shí)時(shí)顯示,并通過rs232串口與上位計(jì)算機(jī)進(jìn)行全雙工通信。用戶直接在上位機(jī)完成溫度測(cè)量和加熱控制的全部操作。
2.2系統(tǒng)控制算法
系統(tǒng)采用基于增量式 pid算法的脈寬調(diào)制(pwm)控制方法,即pwm方波的占空比由增量式pid算法求得。增量式pid算法的輸出量為
δ un=kp[(en-en-1)+(t/ti)en+(td/t)(en-2 en-1+en-2)] (1)
式中, en、en-1、en-2分別為第n次、n-1次和n-2次的偏差值,kp、ti、td分別為比例系數(shù)、積分系數(shù)和微分系數(shù),t為采樣周期。
單片機(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ī)[1]
atmega8型單片機(jī)是atmel公司推出的基于avr risc結(jié)構(gòu)的高檔flash型單片機(jī)。其核心將32個(gè)工作寄存器和指令集連接在一起,所有工作寄存器都與alu(算術(shù)邏輯單元)直接相連,實(shí)現(xiàn)了1個(gè)時(shí)鐘周期執(zhí)行1條指令同時(shí)訪問(讀寫)二個(gè)獨(dú)立寄存器的操作。這種結(jié)構(gòu)提高了代碼效率,使得大部分指令的執(zhí)行時(shí)間僅為一個(gè)時(shí)鐘周期。因此,atmega8具有接近1 mi /s/mhz的性能,運(yùn)行速度比普通cisc單片機(jī)高10倍。
atmega8型單片機(jī)內(nèi)集成了執(zhí)行速度為二個(gè)時(shí)鐘周期的硬件乘法器、8kb的flash程序存儲(chǔ)器、512字節(jié)的e2prom、2個(gè)具有比較模式的8位定時(shí)器、1個(gè)具有比較和捕獲模式的16位定時(shí)器、3路最大精度為16位的pwm輸出、8通道10位a/d轉(zhuǎn)換器,spi/twi同步串口及usart異步串口。atmega8片內(nèi)集成的眾多系統(tǒng)級(jí)功能單元為控制系統(tǒng)的開發(fā)提供了很大的便利。設(shè)計(jì)的過程中,盡量通過軟件編程簡(jiǎn)化硬件電路,有效縮短了開發(fā)周期。
3.2 現(xiàn)場(chǎng)溫度采集
現(xiàn)場(chǎng)溫度由溫度傳感器獲得。在本系統(tǒng)中,溫度傳感器選用 pt100鉑電阻器,利用鉑金屬自身阻值隨溫度變化的特性測(cè)溫。鉑電阻經(jīng)變送器放大及線性化處理,輸出4ma—20ma的標(biāo)準(zhǔn)直流信號(hào),對(duì)應(yīng)用于現(xiàn)場(chǎng)溫度0℃— 400℃ ,通過 150ω高精度金屬膜電阻轉(zhuǎn)化為0.6v—3v直流電壓信號(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)只選用通道pc0作為a/d轉(zhuǎn)換的模擬電壓輸入。a/d轉(zhuǎn)換的參考電壓使用系統(tǒng)自帶的vcc?;谇笆觯斎?0位a/d轉(zhuǎn)換器的模擬電壓0.6v—3v代表 0℃ — 400℃ ,則現(xiàn)場(chǎng)溫度 t可以表示為:
t=400[(3.0-vcc)(ad_data/ad_max)]/(3.0-0.6)] (2)
式中,a/d_data是a/d轉(zhuǎn)換后得到的10位數(shù)字量,ad_max是10位a/d轉(zhuǎn)換器參考電壓對(duì)應(yīng)的數(shù)字量,此處為0x03ff。溫度測(cè)量絕對(duì)誤差為400/210℃,相對(duì)誤差小于0.1%,符合系統(tǒng)精度要求。
至此,溫度值由非電模擬量轉(zhuǎn)換為數(shù)字量,可以直接用于單片機(jī)內(nèi)部加熱控制算法的運(yùn)算。實(shí)際編程時(shí),為了降低采樣過程瞬態(tài)誤差的干擾,運(yùn)用了算術(shù)均值濾波的方法,即最終參與控制運(yùn)算的溫度值 t通過10次采樣的溫度值求算術(shù)平均取得。
3.3 數(shù)碼管顯示電路
加熱過程中,被控對(duì)象的實(shí)際溫度,用戶設(shè)定的目標(biāo)爐溫等參量通過數(shù)碼管顯示電路實(shí)時(shí)顯示。數(shù)碼管顯示電路的原理如圖2所示。
此顯示電路采用“單片機(jī)→串入并出芯片→數(shù)碼管”的動(dòng)態(tài)顯示技術(shù)。單片機(jī)與 74hc164型串入并出電路使用同步串口spi方式連接,單片機(jī)工作在主機(jī)模式,時(shí)鐘輸出端sck接至74hc164的clk引腳,數(shù)據(jù)輸出端mosi接至74hc164的數(shù)據(jù)輸入引腳ab。
單片機(jī)將需要顯示的 8位字段碼通過spi傳至74hc164,由74hc164輸出8位并行邏輯電平驅(qū)動(dòng)數(shù)碼管顯示。單片機(jī)依次使能4位共陽極數(shù)碼管的位選擇端,按順序點(diǎn)亮4位數(shù)碼管的各位。由于人眼觀察時(shí)特有的“視覺暫存”效應(yīng),當(dāng)亮滅頻率達(dá)到一定程度時(shí)無法覺察數(shù)碼管明暗的變化,認(rèn)為4位數(shù)碼管各位始終點(diǎn)亮,即實(shí)現(xiàn)了4位數(shù)碼管的動(dòng)態(tài)顯示。通過使用同步串口spi與74hc164型串入并出芯片驅(qū)動(dòng)數(shù)碼管的8位字段碼,比傳統(tǒng)并行驅(qū)動(dòng)方式節(jié)約6個(gè)單片機(jī)i/o口,并且利用atmega8自帶的硬件spi單元,無需軟件模擬spi通信。
由于采用動(dòng)態(tài)顯示技術(shù),編程時(shí)必須注意每次更新顯示數(shù)值應(yīng)先將待顯示字段送到 74hc164,再通過pc1—pc4使能數(shù)碼管中某一位點(diǎn)亮,否則就會(huì)發(fā)生錯(cuò)位顯示現(xiàn)象。
3.4 加熱驅(qū)動(dòng)電路
atmega8的i/o口輸出負(fù)載能力最大為40ma,無法直接驅(qū)動(dòng)工業(yè)環(huán)境中使用的電爐、電機(jī)等大功率設(shè)備,必須通過中間驅(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ī)械接觸開關(guān)的缺點(diǎn),本系統(tǒng)選用以可控硅為主體的完全光電隔離的中間驅(qū)動(dòng)電路??煽毓枋谴蠊β书_關(guān)型半導(dǎo)體器件。能在高電壓、大電流條件下工作,具有無器械接觸、體積小、便于安裝等優(yōu)點(diǎn),廣泛應(yīng)用于電力電子設(shè)備中。加熱驅(qū)動(dòng)電路示意圖如圖3所示。
atmega8根據(jù)現(xiàn)場(chǎng)溫度的和用戶設(shè)定的目標(biāo)溫度計(jì)相關(guān)的控制參數(shù)算出實(shí)時(shí)控制量。將此控制量寫入單片機(jī)定時(shí)器1的oc 1a 寄存器,以決定輸出 pwm波的占空比。在pwm波的高電平期間,通過限流保護(hù)電阻器r4的雙向光電耦合器上電工作,雙向可控硅triac1柵極被經(jīng)由r1、r2和雙向光電耦合器的信號(hào)觸發(fā)導(dǎo)通,加熱電路得電工作;pwm波低電平期間,雙向光電耦合器截止,雙向可控硅triac1柵極無觸發(fā)信號(hào)被關(guān)斷,加熱電路斷電停止工作。
電路中的 r3、c2組成阻容吸收單元,可減少可控硅關(guān)斷時(shí)加熱電路中感性元件產(chǎn)生的自感電動(dòng)勢(shì)對(duì)可控硅的過壓沖擊。r1、c1組成低通濾波單元,能降低雙向光電耦合器誤觸發(fā)對(duì)后續(xù)電路的影響。同時(shí)、雙向光電耦合器的使用徹底隔離了強(qiáng)弱電路,避免了大功率器件對(duì)單片機(jī)的干擾。
4 軟件設(shè)計(jì)
系統(tǒng)程序由主程序、溫度采集子程序、加熱控制子程序、鍵盤掃描子程序、串行通信子程序和中斷子程序等部分組成。主程序主要完成加熱控制系統(tǒng)各部件的初始化和自檢,以及實(shí)際測(cè)量中各個(gè)功能模塊的協(xié)調(diào)。鍵盤掃描和控制算法等子程序利用 atmega8豐富的中斷資源,在外部中斷和定時(shí)器溢出中斷子程序中完成上述工作。與上位機(jī)的串行通信采用atmega8自帶的uart硬件傳輸中斷,以滿足數(shù)據(jù)雙向傳輸?shù)漠惒叫院蛯?shí)時(shí)性要求。單片機(jī)溫度采集子程序和加熱控制子程序流程如圖4所示。
上位機(jī)監(jiān)控程序基于 visual c++6.0環(huán)境開發(fā)。使用微軟公司提供的mscomm控件有效避免了直接調(diào)用win32api造成的編程煩瑣等弊端,以較少代碼量實(shí)現(xiàn)本系統(tǒng)要求的全雙工步通信。用戶可通過上位機(jī)程序完成溫控參數(shù)設(shè)定、溫度數(shù)據(jù)保存和離線分析等操作。
5 結(jié)束語
筆者設(shè)計(jì)的溫度測(cè)量及加熱控制系統(tǒng)充分發(fā)揮了 atmega8型單片機(jī)的特點(diǎn),結(jié)合現(xiàn)有技術(shù),大大降低了硬件電路的設(shè)計(jì)復(fù)雜度。該系統(tǒng)已經(jīng)設(shè)計(jì)制作完成,并在仿真深海高溫?zé)嵋涵h(huán)境試驗(yàn)中取得了良好的效果,具有溫控準(zhǔn)確、操控界面友好、穩(wěn)定性高,抗干擾能力強(qiáng)等優(yōu)點(diǎn)。
評(píng)論