李 軍
(陜西國防工業(yè)職業(yè)技術(shù)學院 電子信息學院,陜西 西安 710300)
隨著我國科學技術(shù)的不斷進步,對于工業(yè)控制器的適應能力以及高度智能化具有提升促進作用。在工業(yè)生產(chǎn)領域中,電阻爐是經(jīng)常使用的加熱設備,若電阻爐的爐溫控制效果出現(xiàn)問題,可直接影響工業(yè)生產(chǎn)領域的工件質(zhì)量及的電阻爐加熱效率。傳統(tǒng)工業(yè)電阻爐存在非線性、大慣性以及時滯等缺陷,對溫度控制效果無法達到預期。為此本研究利用模糊神經(jīng)網(wǎng)絡設計出一種電阻爐溫度控制系統(tǒng),對于爐溫的控制具有重要作用。
本研究對電阻爐溫度控制系統(tǒng)的硬件部分進行設計時,為保證該控制系統(tǒng)對電阻爐溫度的精準控制,將AVR系列的單片機作為該系統(tǒng)的核心設備。該單片機主要以鉑電阻作為采溫元件,可使電阻爐溫度控制系統(tǒng)具有可靠性較高、控制效果明顯等優(yōu)勢,并且該控制系統(tǒng)支持手自動切換以及高溫報警等功能,若電阻爐的溫度超過自身可承受的最大范圍,系統(tǒng)將采取報警模式提示工作人員做出相應的調(diào)整。但是該單片機的計算能力及存儲空間存在一定局限性,為此設計了一個通信接口,該通信接口主要負責與PC機建立通信,電阻爐溫度控制系統(tǒng)硬件結(jié)構(gòu)如圖1所示[1]。
AVR系列的單片機主要采用RISC結(jié)構(gòu)作為核心,具有較強的數(shù)據(jù)吞吐率,通過存儲器分離的方式使控制系統(tǒng)可獨立尋址。為保證系統(tǒng)的控制功能,最終選用ATmega16作為該系統(tǒng)的控制芯片,該芯片的數(shù)據(jù)吞吐率高達1MIPS/MHZ,含有可編程Flash的8位微控制器,可支持系統(tǒng)在線編程接口。同時該控制芯片內(nèi)部存在AD轉(zhuǎn)換器、PWM定時計數(shù)器等功能,有利于提升系統(tǒng)對溫度控制的精準性。其內(nèi)部特有的I/O接口具有較強的驅(qū)動能力,在一定程度上可節(jié)約系統(tǒng)開發(fā)成本,對于單片機的程序編寫部分,本研究主要通過C語言完成高級編程,便于系統(tǒng)后續(xù)移植[2]。
該電路內(nèi)部主要包含ATmega16單片機、晶振電路以及復位電路,其中ATmega16單片機內(nèi)部包含多種時鐘源,可通過配置熔絲位實現(xiàn)時鐘源的選擇。本研究時鐘源進行選擇時,將石英晶體作該系統(tǒng)的時鐘,石英晶體的頻率為8 MHz。為保證ATmega16單片機的功能穩(wěn)定性,在其內(nèi)部設置上電復位POR電路,該電路可在系統(tǒng)電源超過一個安全電平的情況下完成各器件之間的運行。當電路處于復位狀態(tài)時,單片機內(nèi)部各處理器均處于初始狀態(tài),此時對I/O寄存器進行初始化,為避免控制系統(tǒng)被外界因素所干擾,需要在復位引腳處外加復位電路,并在復位電路中增加按鈕,通過該方式實現(xiàn)手動復位,有利于操作者結(jié)合系統(tǒng)出現(xiàn)的突發(fā)狀況及時進行處理[3]。
為保證用戶可實時觀察到電阻爐溫度的控制結(jié)果,本研究選用含有8位7段的LED數(shù)碼管作為該系統(tǒng)的核心顯示設備,用來對電阻爐的溫度值進行顯示。該數(shù)碼管具有響應速度快、成本低、亮度強等優(yōu)勢,將其應用于系統(tǒng)中,有利于降低單片機I/O接口的占用面積。LED顯示電路選用MAX7219作為核心芯片,該芯片在連接過程中,只需3個I/O接口即可實現(xiàn)顯示電路的驅(qū)動,對于控制系統(tǒng)的開發(fā)成本具有節(jié)約作用。
對鍵盤接口電路進行設計時,為最大限度地最大限度地降低鍵盤電路對I/O引腳的占用數(shù)量,選用專用芯片實現(xiàn)的按鍵接口電路作為該電路的核心,通過該電路可使控制系統(tǒng)在采用較少I/O接口的情況下實現(xiàn)多個按鍵功能,有利于降低鍵盤接口電路占用CPU的資源。結(jié)合控制系統(tǒng)的實際運行情況,本研究選用ZLG7289作為該電路的控制芯片,該芯片主要采取串行和微處理器通訊方式實現(xiàn)數(shù)據(jù)的輸送,可形成含有64鍵的鍵盤矩陣,對于8位共陰數(shù)碼管具有驅(qū)動作用。當鍵盤接口與單片機建立連接時,在按鍵處于被按下的狀態(tài)時,僅需要4個I/O接口即可完成INT引腳從高電平到低電平的轉(zhuǎn)換;當按鍵處于彈開狀態(tài)時,INT引腳從低電平恢復為低電平。為此將INT引腳與單片機引腳建立連接,有利于系統(tǒng)在按鍵處于按下狀態(tài)時,第一時間觸發(fā)外部中斷1事件,并完成子程序中斷時按鍵數(shù)值的讀取[4]。
對于控制系統(tǒng)內(nèi)部運行較為復雜的控制算法時,可采用PC機完成控制數(shù)據(jù)的處理,并建立PC機與單片機之間的串行通信,有利于促進控制系統(tǒng)對電阻爐溫度控制的精確度。RS232屬于一種應用最廣的標準總線,數(shù)據(jù)傳輸速率最高可達19.2 kbps、傳送電纜長達15 m。由于單片機內(nèi)部缺乏標準的RS-232C接口,為此本研究對RS-232C接口進行設計時,采用TTL/CMOS兼容電平實現(xiàn)信號傳輸。為實現(xiàn)單片機與RS-232C標準電平之間的電平匹配,利用MAX232芯片對輸入電源進行轉(zhuǎn)換,滿足RS-232C電平實際需要的電壓范圍。
溫度檢測電路是電阻爐溫度控制系統(tǒng)的重要組成部分,為此本研究對該電路進行設計時,采用鉑電阻Pt100作為電阻爐溫度控制系統(tǒng)的溫度傳感器。該傳感器具有良好的穩(wěn)定性以及體積小、測溫范圍寬等優(yōu)勢,其電阻值可隨電阻爐溫度的變化而變化,有利于實現(xiàn)對電阻爐溫度的精準檢測。但是鉑電阻Pt100存在非線性缺陷,阻值與溫度之間的關(guān)系式為
Rt=R0[1+At+Bt2+C(t-100)t3]
(-200 ℃ (1) Rt=R0[1+At+Bt2] (0 ℃ (2) 式中:Rt為當鉑電阻Pt100處于t℃時對應的電阻值;R0為當鉑電阻Pt100處于0 ℃時對應的電阻值;A、B、C為常數(shù),數(shù)值分別為 A=3.908 02×10-3/℃,B=-5.802×10-7/(℃)2,C=-4.273 5×10-12/(℃)4 由于采用鉑電阻Pt100對電阻爐溫度進行檢測時,可實現(xiàn)檢測結(jié)果存在非線性限制,為此本研究通過硬件和軟件兩種方法對非線性進行處理。但是相對來講軟件方法更具優(yōu)勢,有利于降低電路的復雜程度,在一定程度上可提升溫度檢測模塊的精準度[5]。 結(jié)合上述分析結(jié)果,本研究選用軟件方法對溫度檢測模塊的非線性限制進行處理,為最大限度地限度地簡化硬件電路復雜程度,選擇2.56 V電壓作為系統(tǒng)的內(nèi)部參考電壓。電阻爐溫度控制系統(tǒng)利用溫度檢測模塊對實際溫度進行測量時,要求溫度檢測模塊的測溫范圍可維持在0~250 ℃。其代表的含義為:當測量電阻爐內(nèi)的溫度為0 ℃時,溫度檢測模塊的輸出電壓為0 V;當測量電阻爐內(nèi)的溫度為250 ℃時,溫度檢測模塊的輸出電壓為2.56 V。但是在實際檢測過程中無法保證電阻爐內(nèi)的溫度為250 ℃時,溫度檢測模塊所對應的輸出電壓一定為2.56 V。因此本研究的設計目標為:當測量電阻爐內(nèi)的溫度為250 ℃時,溫度檢測模塊對應的輸出電壓趨近于2.56 V,但該數(shù)值不可超過2.56 V[6]。 當電阻爐內(nèi)溫度為0 ℃,R46=100 Ω,此時要求檢測電路內(nèi)U1=U2,利用分壓原理對U1和U2進行計算,其公式為 (3) (4) 根據(jù)式(3)和式(4),最終求得VR2=107.694 8。 式中:R41、R42、R46、R47、VR為可共同組成電橋檢測電路;R46為鉑電阻;R41=R42=2.4 kΩ,R47=VR=200 Ω;VR為滑動變阻器,主要負責對變阻器進行調(diào)零[7]。 當電阻爐內(nèi)溫度為250 ℃,R46=194.07 Ω,此時溫度檢測模塊的輸出電壓趨近于2.56 V,但該數(shù)值不可超過2.56 V。令R43=R52=R,R44=R53=Rf,R45=R50=R′,放大電路的輸出電壓U0的公式為 (5) (6) 最終求得U1-U2=0.27-0.192 31=0.077 69 V,即放大倍數(shù)為 (7) 取R=3 kΩ,Rf=12 kΩ,R′=6.8 kΩ,R48=2 kΩ,Av=31.2。 溫度檢測電路中由R49、C37共同組成一階濾波電路,BAV99由兩個二級經(jīng)過串聯(lián)而形成的器件,主要負責對溫度檢測電路進行保護,工作原理為:當輸出電壓U0≥Uref時,上端二極管處于導通狀態(tài),下端二極管處于截止狀態(tài),此時進入單片機ADCO引腳的電壓鉗在Uref處;當輸出電壓U0<0 V時,上端二極管處于截止狀態(tài),下端二極管處于導通狀態(tài),此時進入單片機ADCO引腳的電壓鉗在零伏處,有利于維持單片機的穩(wěn)定運行[8]。 主程序部分屬于軟件程序的核心,可維持軟件系統(tǒng)的穩(wěn)定運行,主要工作任務是對系統(tǒng)進行初始化的架構(gòu)構(gòu)建。其工作流程為:首先完成對單片機、A/D芯片等部分的初始化,初始化任務執(zhí)行完畢后,啟動溫度檢測程序,對電阻爐的溫度進行實時獲取,并將檢測數(shù)據(jù)上傳至顯示模塊,有利于操作者通過液晶顯示器觀察到電阻爐的運行狀態(tài)。通過設置鍵對溫度進行設置,若溫度超過電阻爐可承受的最大范圍,系統(tǒng)自動采取報警模式;若溫度不超過電阻爐可承受的最大范圍,系統(tǒng)采用模糊神經(jīng)算法完成電阻爐溫度的實時控制,并將控制數(shù)據(jù)輸出。將該程序無限循環(huán),直至實現(xiàn)對電阻爐溫度的控制為止[9]。 本研究主要在0中斷子程序內(nèi)部完成溫度檢測程序的設計,并利用ATmega16單片機中定時器/計數(shù)器(T/CO)完成溫度的檢測。溫度檢測程序設計過程中,通過分頻器對單片機內(nèi)部時鐘頻率進行分頻,并將分頻后的時鐘與計時器建立連接,在分頻器的支持下,有利于溫度檢測程序獲取不同頻率的技術(shù)脈沖信號。當控制系統(tǒng)的時鐘頻率為8 MHz時,T/CO計時精度和時寬如表1所示。 表1 T/CO計時精度和時寬 結(jié)合T/CO計時精度和時寬數(shù)據(jù),最終將溫度檢測程序的采樣周期控制為1 s。但是該周期大于T/CO的最大時寬,為解決采樣周期過長的問題,將分頻器的頻率設置為64分頻,每1 ms執(zhí)行一次終端服務子程序,直到執(zhí)行1 s為止,而中斷響應需為1 000次。對溫度檢測程序進行設計時,首先利用K型熱電偶和MAX6675芯片,使二者充分結(jié)合,以此達到溫度值轉(zhuǎn)換為數(shù)字信號的目的,溫度檢測程序流程如圖2所示[10]。 為實現(xiàn)操作者對爐溫數(shù)據(jù)的精準提取以及實時監(jiān)控,本研究利用LABVIEW虛擬器開發(fā)集成工具完成上位機監(jiān)控軟件的開發(fā)。電阻爐溫度控制系統(tǒng)要求上位機對爐溫數(shù)據(jù)進行提取時,需要通過RS232出口,并將提取數(shù)據(jù)編寫完畢后上傳至顯示界面,由軟件界面窗口實時顯示讀取數(shù)據(jù)。為此對該部分進行設計時,采用模塊化的方式將該程序劃分為數(shù)據(jù)處理顯示、存儲查詢、打印以及報警等模塊。其中數(shù)據(jù)處理模塊主要負責對爐溫數(shù)據(jù)進行采集和計算,采集完畢后將結(jié)果以曲線的方式實時顯示到前面板中,有利于用戶精確掌握電阻爐運行情況。數(shù)據(jù)存儲查詢模塊主要負責對爐溫數(shù)據(jù)進行保存,可作為用戶優(yōu)化系統(tǒng)時的重要依據(jù)。打印模塊主要負責爐溫數(shù)據(jù)以報表的形式完成打印。報警模塊對于系統(tǒng)的安全性具有重要保障作用,若爐溫達到上限時,該模塊可自動采取報警模式,有利于工作人員及時發(fā)現(xiàn)系統(tǒng)存在的故障現(xiàn)象。 為保證電阻爐溫度控制系統(tǒng)的精確度,本研究主要對SX2-4-10高溫箱式電阻爐進行研究,該電阻爐的工作頻率為50 Hz、額定功率為4 kW、溫度范圍在0~1 000 ℃。利用模糊神經(jīng)網(wǎng)絡PID算法控制電阻爐的爐溫,并將控制系統(tǒng)的采樣時間設置為1 s、目標爐溫900 ℃、爐溫上下限分別設置為905和895 ℃。 通過對爐溫的實際變化進行分析可知,缺乏模糊PID算法控制下的電阻爐溫度控制系統(tǒng),可在較短的時間內(nèi)將爐溫升至目標值,爐溫的穩(wěn)定時間僅能維持在200 s之內(nèi)。但是在模糊PID算法控制下的電阻爐溫度控制系統(tǒng),可實現(xiàn)最短時間內(nèi)將爐溫升至目標值,對電阻爐溫度的控制可達到預期效果。 為實現(xiàn)對電阻爐溫度的實時控制,本研究利用模糊神經(jīng)網(wǎng)絡設計出一種電阻爐溫度控制系統(tǒng),并完成電阻爐溫度控制系統(tǒng)硬件和軟件部分的設計。為保證該控制系統(tǒng)對電阻爐溫度的精準控制,將AVR系列的單片機作為硬件系統(tǒng)的核心設備,可使電阻爐溫度控制系統(tǒng)具有可靠性較高、控制效果明顯等優(yōu)勢。經(jīng)過驗證可知,該系統(tǒng)的控制效果可達到預期目標。2 基于模糊神經(jīng)網(wǎng)絡的電阻爐溫度控制系統(tǒng)軟件設計
2.1 主程序工作流程
2.2 溫度檢測程序
2.3 監(jiān)控軟件程序
2.4 系統(tǒng)運行結(jié)果
3 結(jié) 語