l 引言
本文引用地址:http://www.eepw.com.cn/article/79030.htm溫度是工業生產中主要的被控參數之一,與之相關的各種溫度控制系統廣泛應用於冶金、化工、機械、食品等領域。文中介紹的溫度測量及加熱控制系統以ATmega8型AVR系列單片機為核心部件,通過對系統軟體和硬體設計的合理規劃,發揮單片機自身集成眾多系統級功能單元的優勢,在不減少功能的前提下有效降低了硬體成本,系統操控簡便。實驗證明該溫控系統具有很高的可靠性和穩定性。
2 系統結構及控制算法
2.1 系統總體結構
溫度測量及加熱控制系統的總體結構如圖1所示。系統主要包括現場溫度採集、實時溫度顯示、加熱控制參數設置、加熱電路控制輸出、與上位機串行通信和系統核心ATmega8型單片機等。
溫度採集電路以模擬電壓形式將現場溫度傳至單片機。單片機通過自身集成的A/D轉換器將模擬電壓轉化為控制系統可用的數字量。單片機結合現場溫度與用戶設定的目標溫度,按照已經編程固化的增量式PID控制算法計算出實時控制量。以此控制量使能光電隔離驅動電路,決定加熱電路的工作狀態,使爐溫逐步穩定於用戶設定的目標值。系統運行過程中的各種狀態參量均由數碼管實時顯示,並通過RS232串口與上位計算機進行全雙工通信。用戶直接在上位機完成溫度測量和加熱控制的全部操作。
2.2 系統控制算法
系統採用基於增量式PID算法的脈寬調製(PWM)控制方法,即PWM方波的佔空比由增量式PID算法求得。增量式PID算法的輸出量為
式中,en、en-1、en-2分別為第n次、n-1次和n-2次的偏差值,Kp、Ti、Td分別為比例係數、積分係數和微分係數,T為採樣周期。
單片機每隔固定時間T將現場溫度與用戶設定目標溫度的差值帶入增量式PID算法公式,由公式輸出量決定PWM方波的佔空比,後續加熱電路根據此PWM方波的佔空比決定加熱功率。現場溫度與目標溫度的偏差大則佔空比大,加熱電路的加熱功率大,使溫度的實測值與設定值的偏差迅速減小;反之,二者的偏差小則佔空比減小,加熱電路加熱功率減小,直至目標值與實測值相等,達到自動控制的目的。
3 硬體設計
3.1 ATmega8單片機
ATmega8型單片機是ATMEL公司推出的基於AVR RISC結構的高檔Flash型單片機。其核心將32個工作寄存器和指令集連接在一起,所有工作寄存器都與ALU(算術邏輯單元)直接相連,實現了1個時鐘周期執行1條指令同時訪問(讀寫)二個獨立寄存器的操作。這種結構提高了代碼效率,使得大部分指令的執行時間僅為1個時鐘周期。因此,ATmega8具有接近l MI/s/MHz的性能,運行速度比普通CISC單片機高10倍。
ATmega8型單片機內集成了執行速度為二個時鐘周期的硬體乘法器、8 KB的Flash程序存儲器、512位元組的E2PROM、2個具有比較模式的8位定時器、1個具有比較和捕獲模式的16位定時器、3路最大精度為16位的PWM輸出、8通道10位A/D轉換器,PI/TWI同步串口及USART異步串口。ATmega8片內集成的眾多系統級功能單元為控制系統的開發提供了很大便利。設計過程中,儘量通過軟體編程簡化硬體電路,有效縮短了開發周期。
3.2 現場溫度採集
現場溫度由溫度傳感器獲得。在本系統中,溫度傳感器選用Ptl00鉑電阻器,利用鉑金屬自身阻值隨溫度變化的特性測溫。鉑電阻經變送器放大及線性化處理,輸出4 mA~20 mA的標準直流信號,對應於現場溫度0℃~400℃,通過150 Ω高精度金屬膜電阻轉化為O.6 V~3 V直流電壓信號。此模擬電壓信號符合ATmega8自帶A/D轉換器輸入要求,連接至ATmega8的PC0即可進行A/D轉換。
ATmega8內部集成有8通道10位高速A/D轉換器。本系統只選用單通道PCO作為A/D轉換的模擬電壓輸入。A/D轉換的參考電壓使用系統自帶的Vcc。基於前述,輸入10位A/D轉換器的模擬電壓0.6V~3 V代表0℃~400℃,則現場溫度T可以表示為:
式中,A/D_Data是A/D轉換後得到的10位數字量,AD_Max是10位A/D轉換器參考電壓對應的數字量,此處為0x03ff。溫度測量絕對誤差為400/210℃,相對誤差小於0.1%,符合系統精度要求。
至此,溫度值由非電模擬量轉換為數字量,可以直接用於單片機內部加熱控制算法的運算。實際編程時,為了降低採樣過程瞬態誤差的幹擾,運用了算術均值濾波的方法,即最終參與控制運算的溫度值T通過10次採樣的溫度值求算術平均取得。
3.3 數碼管顯示電路
加熱過程中,被控對象的實際溫度、用戶設定的目標爐溫等參量通過數碼管顯示電路實時顯示。數碼管顯示電路的原理如圖2所示。
此顯示電路採用「單片機→串入並出晶片→數碼管」的動態顯示技術。單片機與74HCl64型串入並出電路使用同步串口SPI方式連接,單片機工作在主機模式,時鐘輸出端SCK接至74HCl64的CLK引腳,數據輸出端MOSI接至74HCl64的數據輸入引腳AB。
單片機將需要顯示的8位欄位碼通過SPI傳至74HCl64,由74HCl64輸出8位並行邏輯電平驅動示。通過使用同步串口SPI與74HCl64型串入並出晶片驅動數碼管的8位欄位碼,比傳統並行驅動方式節約6個單片機I/O口,並且利用ATmega8自帶的硬體SPI單元,無需軟體模擬SPI通信。
由於採用動態顯示技術,編程時必須注意每次更新顯示數值應先將待顯示欄位送到74HCl64,再通過PC1——PC4使能數碼管中某一位點亮,否則就會發生錯位顯示現象。
3.4 加熱驅動電路
ATmega8的I/0口輸出負載能力最大為40mA,無法直接驅動工業環境中使用的電爐、電機等大功率設備,必須通過中間驅動電路實現單片機對功率設備工作狀態的控制。實際應用中,通常採用繼電器或交流接觸器間接驅動。由於繼電器或交流接觸器具有機械接觸特點,因而在很大程度上降低了控制系統整體的穩定性和可靠性。
為了避免機械接觸開關的缺點,本系統選用以可控矽為主體的完全光電隔離的中間驅動電路。可控矽是大功率開關型半導體器件,能在高電壓、大電流條件下工作,具有無機械接觸、體積小、便於安裝等優點,廣泛應用於電力電子設備中。加熱驅動電路示意圖如圖3所示。
ATmega8根據現場溫度和用戶設定的目標溫度及相關控制參數算出實時控制量。將此控制量寫入單片機定時器l的OClA寄存器,以決定輸出PWM波的佔空比。在PWM波的高電平期間,通過限流保護電阻器R4的雙向光電耦合器上電工作,雙向可控矽TRIACl柵極被經由R1、R2和雙向光電耦合器的信號觸發導通,加熱電路得電工作;PWM波低電平期間,雙向光電耦合器截止,雙向可控矽TRIACl柵極無觸發信號被關斷,加熱電路斷電停止工作。
電路中的R3、C2組成阻容吸收單元,可減小可控矽關斷時加熱電路中感性元件所產生的自感電動勢對可控矽的過壓衝擊。R1、C1組成低通濾波單元,能降低雙向光電耦合器誤觸發對後續電路的影響。同時,雙向光電耦合器的使用徹底隔離了強弱電路,避免了大功率器件對單片機的幹擾。
4 軟體設計
系統程序由主程序、溫度採集子程序、加熱控制子程序、鍵盤掃描子程序、串行通信子程序和中斷子程序等部分組成。主程序主要完成加熱控制系統各部件的初始化和自檢,以及實際測量中各個功能模塊的協調。鍵盤掃描和控制算法等子程序利用ATmega8豐富的中斷資源,在外部中斷和定時器溢出中斷子程序中完成上述工作。與上位機的串行通信採用ATmega8自帶的UART硬體傳輸中斷,以滿足數據雙向傳輸的異步性和實時性要求。單片機溫度採集子程序和加熱控制子程序流程如圖4所示。
上位機監控程序基於Visual C++6.0環境開發。使用微軟公司提供的MsComm控制項有效避免了直接調用Win32API造成的編程繁瑣等弊端,以較少代碼量實現本系統要求的全雙工異步通信。用戶可通過上位機程序完成溫控參數設定、溫度數據保存和離線分析等操作。
5 結束語
筆者設計的溫度測量及加熱控制系統充分發揮了ATmega8型單片機的特點,結合現有技術,大大降低了硬體電路的設計複雜度。該系統已經設計製作完成,並在仿真深海高溫熱液環境的試驗中取得了良好效果,具有控溫準確、操控界面友好、穩定性高、抗幹擾能力強等優點。