于天成
(中國(guó)人民解放軍91550部隊(duì) 42分隊(duì),遼寧 大連 116023)
隨著現(xiàn)代科技的飛速發(fā)展,溫度測(cè)量控制技術(shù)的重要性得到凸顯。電阻爐在高度自動(dòng)化時(shí)代得到了廣泛應(yīng)用,其溫度控制效果可直接決定產(chǎn)品的生產(chǎn)效率與質(zhì)量。為實(shí)現(xiàn)電阻爐工作效率的提高,在使用電阻爐過程中,需要精準(zhǔn)測(cè)量和控制溫度。傳統(tǒng)電阻爐溫度控制主要采用模擬調(diào)節(jié)器進(jìn)行實(shí)現(xiàn),但該方法存在延時(shí)大、系統(tǒng)振蕩等問題,無法保證溫度的控制精度。為解決該問題,本研究采用單片機(jī)作為核心設(shè)備,設(shè)計(jì)出電阻爐溫度控制系統(tǒng),有利于提高電阻爐的智能化和自動(dòng)化程度,最大限度地消除安全隱患。
電阻爐控制系統(tǒng)的設(shè)計(jì)原理為:首先,利用溫度傳感器K型熱電偶對(duì)電阻爐內(nèi)部溫度數(shù)據(jù)進(jìn)行采集;其次,將采集成功的溫度模擬信號(hào)傳輸至MAX6675芯片中,利用該芯片將信號(hào)轉(zhuǎn)換成數(shù)字溫度信號(hào);最后將信號(hào)數(shù)據(jù)傳輸至AT89C52單片機(jī)中,數(shù)據(jù)結(jié)果在LCD顯示屏上顯示。電阻爐控制系統(tǒng)工作原理如圖1所示。
圖1 電阻爐控制系統(tǒng)工作原理圖
電阻爐控制系統(tǒng)在運(yùn)行過程中,可利用鍵盤對(duì)電阻爐的溫度數(shù)據(jù)進(jìn)行設(shè)置,單片機(jī)可采用對(duì)比運(yùn)算的方式比較電阻爐實(shí)際溫度和預(yù)設(shè)溫度,再通過數(shù)字PID控制算法對(duì)PWM方波的輸出寬度進(jìn)行控制。為實(shí)現(xiàn)電熱絲加熱功率的有效調(diào)節(jié),可精準(zhǔn)控制雙向晶閘管的導(dǎo)通與關(guān)斷,有利于快速提高電阻爐的溫度,使電阻爐溫度處于恒定不變的狀態(tài)。當(dāng)電阻爐溫度超過系統(tǒng)設(shè)定的溫度數(shù)值時(shí),系統(tǒng)可自動(dòng)采取報(bào)警模式,提供工作人員對(duì)電阻爐的運(yùn)行狀態(tài)進(jìn)行查看[1]。
本研究對(duì)電阻爐控制系統(tǒng)的硬件部分進(jìn)行設(shè)計(jì)時(shí),將其劃分為溫度采集(傳感器)模塊、溫度顯示和鍵盤模塊以及溫度控制模塊三部分。溫度顯示模塊和鍵盤模塊包含了溫度報(bào)警功能,當(dāng)電阻爐溫度超過系統(tǒng)設(shè)定數(shù)值時(shí),可立即采取報(bào)警模式。
該模塊的核心設(shè)備為K型熱電偶溫度傳感器和K型熱電偶串行模數(shù)轉(zhuǎn)換器MAX6675,通過溫度傳感器和串行模數(shù)轉(zhuǎn)換器MAX6675對(duì)電阻爐內(nèi)部溫度數(shù)據(jù)進(jìn)行采集。MAX6675在該模塊中主要負(fù)責(zé)信號(hào)轉(zhuǎn)換,將熱電偶的毫伏級(jí)模擬信號(hào)轉(zhuǎn)換成12bit的數(shù)字信號(hào),并對(duì)電阻爐進(jìn)行冷端補(bǔ)償。MAX6675轉(zhuǎn)換后的數(shù)據(jù)可上傳至AT89C52單片機(jī),由AT89C52單片機(jī)的P1.0接口負(fù)責(zé)接收數(shù)據(jù),該單片機(jī)的P1.1和P1.2口可為MAX6675提供串行時(shí)鐘與片選信號(hào)[2]。
溫度顯示模塊由顯示和設(shè)定兩部分共同組成,顯示部分的核心設(shè)備為L(zhǎng)M016L液晶顯示器,該顯示器可顯示字符與數(shù)字,數(shù)據(jù)在顯示器中排列為2行,每行包含16個(gè)字符。設(shè)定部分主要由PLAS(加)、SUBS(減)、START(開始)三個(gè)按鍵共同組成,可通過鍵盤完成數(shù)據(jù)的輸入,當(dāng)電阻爐控制系統(tǒng)處于運(yùn)行狀態(tài)時(shí),可將系統(tǒng)默認(rèn)溫度設(shè)定為30 ℃,按下PLAS按鍵時(shí),可升高電阻爐溫度,按下SUBS按鍵時(shí),可降低電阻爐溫度,按下START按鍵時(shí),電阻爐開始加熱。
AT89C52單片機(jī)的P0.0~P0.7口可將輸出信號(hào)傳輸至LM016L液晶顯示器的D0~D7數(shù)據(jù)總線中,當(dāng)P0口作為系統(tǒng)的通用I/O接口時(shí),需要在系統(tǒng)中增加上拉電阻,并將P3.2和P3.3分別接在鍵盤的兩端,便于系統(tǒng)使用P3口的第二功能。
電阻爐控制系統(tǒng)將溫度的上限值設(shè)定為100 ℃,當(dāng)電阻爐內(nèi)部溫度超過100 ℃時(shí),應(yīng)立即停止加熱,并向操作人員發(fā)送提示信息。溫度報(bào)警裝置的核心設(shè)備為蜂鳴器,該設(shè)備可有效控制電阻爐的溫度,在溫度超過上限值時(shí),可通過報(bào)警的方式控制溫度。將蜂鳴器的兩端分別與電源和PNP三極管的發(fā)射極建立連接,三極管的基極可通過電阻與單片機(jī)的P1.3端口連接在一起,當(dāng)P1.3端口處于低電平狀態(tài)時(shí),PNP三極管處于導(dǎo)通狀態(tài),此時(shí)蜂鳴器采取鳴音模式;當(dāng)P1.3端口處于高電平狀態(tài)時(shí),PNP三極管處于關(guān)斷狀態(tài),此時(shí)蜂鳴器關(guān)閉鳴音模式[3]。
該模塊為電阻爐控制系統(tǒng)的執(zhí)行機(jī)構(gòu),為實(shí)現(xiàn)電熱絲功率的精準(zhǔn)控制,可通過光電耦合器將單片機(jī)端口輸出的PWM方波轉(zhuǎn)換成晶閘管的開端。當(dāng)P1.7端口輸出低電平時(shí),雙向晶閘管處于導(dǎo)通狀態(tài),此時(shí)電熱絲通電,并開始加熱;當(dāng)P1.7端口輸出高電平時(shí),雙向晶閘管處于截止?fàn)顟B(tài),此時(shí)電熱絲斷電,并停止加熱。
電阻爐具有非線性特點(diǎn),將電阻爐作為控制對(duì)象時(shí),可增大系統(tǒng)控制難度以及復(fù)雜性,但電阻爐自身具有自平衡能力,理想的電阻爐數(shù)學(xué)模型為
(1)
式中:K為比例增益,表示電阻爐自平衡能力的大小;T為時(shí)間常量,可代表電阻爐的慣性;τ為純滯后常量[4]。
電阻爐在正常運(yùn)行時(shí),其內(nèi)部工件的熱導(dǎo)率、裝入量以及加熱溫度之間存在較大差異性,易造成電阻爐模型參數(shù)的變化。因此,理想的電阻爐數(shù)學(xué)模型建立的難度較大。
PID控制是當(dāng)前應(yīng)用范圍最廣且適用性最強(qiáng)的控制算法,該算法可充分利用比例、積分以及微分等運(yùn)算方式,將系統(tǒng)的期望值與實(shí)際輸出數(shù)值之間存在偏差構(gòu)建成控制量。PID控制算法在應(yīng)用過程中存在精準(zhǔn)的可調(diào)節(jié)參數(shù),但理想電阻爐數(shù)學(xué)模型的建立難度較大,并且該模型的控制參數(shù)需要在一定范圍內(nèi)緩慢調(diào)節(jié),當(dāng)模型的控制參數(shù)超過該范圍時(shí),應(yīng)立即加速調(diào)節(jié)。本研究為實(shí)現(xiàn)電阻爐溫度的精準(zhǔn)控制,將模糊控制與PID控制算法結(jié)合在一起,形成模糊PID控制算法,通過該算法實(shí)現(xiàn)電阻爐溫度控制。
模糊PID控制算法的核心設(shè)備為模糊控制器,在應(yīng)用該算法時(shí),將輸入信號(hào)偏差e的大小、方向以及變化趨勢(shì)等特征作為主要依據(jù),同時(shí)結(jié)合模糊化、模糊推理以及模糊決策等方式,以此實(shí)現(xiàn)PID比例、積分、微分參數(shù)的在線整定。模糊PID控制器是一種智能的控制系統(tǒng),該控制器的結(jié)構(gòu)如圖2所示[5]。
圖2 模糊PID控制結(jié)構(gòu)
模糊PID控制器結(jié)構(gòu)中E和Ec為模糊輸入,kp、ki、kd均為控制器的模糊輸出,分別代表的含義為比例系數(shù)、積分時(shí)間常數(shù)、微分時(shí)間常數(shù),模糊比例系數(shù)可采用Ge、Gc表示。本研究設(shè)計(jì)模糊推理系統(tǒng)時(shí),將其設(shè)置為2輸入、3輸出,輸入指的是偏差e和偏差變化率ec,輸出指的是ΔKp、ΔKi、ΔKd,3個(gè)輸出分別對(duì)kp、ki、kd的數(shù)值進(jìn)行調(diào)節(jié)。
本研究在對(duì)電阻爐控制系統(tǒng)的軟件部分進(jìn)行設(shè)計(jì)時(shí),將K型熱電偶作為核心設(shè)備,通過該設(shè)備檢測(cè)電阻爐內(nèi)部溫度,結(jié)合加熱控制軟件對(duì)電阻爐的溫度進(jìn)行恒定控制,最終控制結(jié)果顯示在LCD顯示屏上,操作人員可通過鍵盤對(duì)電阻爐溫度的增加或減少進(jìn)行設(shè)定。
該程序由系統(tǒng)初始化、采樣溫度值、掃描鍵盤以及顯示模塊等部分共同組成,電阻爐控制系統(tǒng)主程序流程如圖3所示。
圖3 電阻爐控制系統(tǒng)主程序流程圖
主程序的工作流程為:首先,對(duì)系統(tǒng)內(nèi)部RAM和顯示功能進(jìn)行初始化,若初始化后存在KEY,則需要對(duì)其進(jìn)行相應(yīng)的處理,若不存在KEY,則返回上一級(jí)重新判斷;其次,判斷確認(rèn)鍵是否按下,若確認(rèn)鍵被按下,則需要測(cè)量電阻爐的溫度,并在LCD顯示屏上顯示溫度數(shù)據(jù);最后,當(dāng)電阻爐溫度超過系統(tǒng)設(shè)定的上限值時(shí),系統(tǒng)可立即采取報(bào)警模式,并結(jié)束程序運(yùn)行,若電阻爐溫度未超過系統(tǒng)設(shè)定的上限值,需要對(duì)系統(tǒng)是否到達(dá)控制時(shí)刻進(jìn)行判斷,在到達(dá)控溫時(shí)刻時(shí),則可對(duì)其進(jìn)行PID控制,在未到達(dá)控溫時(shí)刻的情況下,應(yīng)重新對(duì)電阻爐的溫度進(jìn)行測(cè)量[6]。
本研究在檢測(cè)電阻爐的溫度數(shù)據(jù)時(shí),采用K型熱電偶作為核心設(shè)備,并利用MAX6675將溫度模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。溫度采集流程如圖4所示。
圖4 電阻爐控制系統(tǒng)溫度采集流程圖
電阻爐溫度采集流程為:①對(duì)系統(tǒng)內(nèi)變量進(jìn)行初始化,并完成電阻爐溫度數(shù)據(jù)的轉(zhuǎn)換;②讀取系統(tǒng)中含有的16位二進(jìn)制溫度數(shù)值,若CS置高,則需要開始新的溫度轉(zhuǎn)換,將其轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制;③讀出電阻爐的溫度數(shù)值。
本研究對(duì)該程序進(jìn)行設(shè)計(jì)時(shí),將增量式算法作為該系統(tǒng)的核心算法,該算法的表達(dá)式為
(2)
式中:Δui為第i-1次輸出基礎(chǔ)上的增加或減少量。可將式(2)稱作增量式PID控制算式,將系統(tǒng)的采樣周期設(shè)置為T,在時(shí)刻t=iT時(shí)完成溫度數(shù)據(jù)的采集。為降低計(jì)算過程的復(fù)雜程度,對(duì)式(2)進(jìn)行簡(jiǎn)化,簡(jiǎn)化后的式子可演變?yōu)?/p>
Δui=K(ei-ei-1)+KIei+KD[(ei-ei-1)-(ei-ei-2)]
(3)
由于K、TI、TD、T均為常數(shù),則KP、KI、KD同樣為常數(shù)。為求得系統(tǒng)偏差ei,可采用系統(tǒng)給定值減去經(jīng)中值濾波處理后的檢測(cè)值,在初值設(shè)為零的情況下,將得到的偏差結(jié)果與上次偏差ei-1相減,即可得到ei-ei-1。為計(jì)算出Δui的數(shù)值,同樣將初值設(shè)為零,由上次偏差ei-1減去前次偏差ei-2,最終得到ei-1-ei-2,Δui加上ui-1即可得到ui[7]。
本研究為驗(yàn)證電阻爐控制系統(tǒng)的有效性,利用Proteus軟件對(duì)系統(tǒng)進(jìn)行仿真測(cè)試。Proteus軟件的仿真能力較強(qiáng),將其應(yīng)用于電阻爐控制系統(tǒng)的仿真測(cè)試中,有利于提高仿真結(jié)果的精準(zhǔn)性。但該軟件的仿真條件存在一定限制,為解決該問題,將溫度采集模塊中的MAX6675芯片替換成DS18B20芯片。采用DS18B20芯片實(shí)現(xiàn)溫度數(shù)據(jù)的采集時(shí),操作人員可利用該芯片有效完成溫度的更改,LM06L液晶顯示屏上第一行可顯示設(shè)定值,第二行顯示系統(tǒng)當(dāng)前溫度數(shù)值。為精準(zhǔn)控制電阻爐的溫度,將報(bào)警上限值設(shè)置為100 ℃,當(dāng)電阻爐內(nèi)部溫度超過上限值時(shí),蜂鳴器處于報(bào)警狀態(tài)。設(shè)置單片機(jī)端口為高電平,并觸發(fā)光電耦合器,當(dāng)P1.7端口輸出高電平時(shí),電阻爐的電熱絲開始加熱,此時(shí)按下plus按鍵,電阻爐的溫度設(shè)定值增加1;按下subs按鍵時(shí),電阻爐的溫度設(shè)定值減少1;按下start按鍵時(shí),系統(tǒng)開始加熱。系統(tǒng)的程序均采用Kei14平臺(tái)進(jìn)行編輯,在實(shí)際仿真過程中,將電阻爐的溫度設(shè)定為90 ℃[8]。
通過對(duì)仿真結(jié)果進(jìn)行分析可知,電阻爐溫度控制系統(tǒng)可有效減小熱電偶的滯后性,該系統(tǒng)測(cè)量的溫度誤差不超過±0.5 ℃,符合工業(yè)領(lǐng)域?qū)﹄娮锠t的控制要求。
本研究為實(shí)現(xiàn)電阻爐溫度的精準(zhǔn)控制,將AT89C52單片機(jī)作為核心設(shè)備,設(shè)計(jì)了電阻爐溫度控制系統(tǒng)。為提高系統(tǒng)的控制精度,向系統(tǒng)內(nèi)部引入PID控制算法,在該算法的計(jì)算上加入模糊控制算法,將二者充分結(jié)合,構(gòu)成精度更高的模糊PID控制器。該控制器可充分融入PID控制算法與模糊控制的優(yōu)勢(shì),以此實(shí)現(xiàn)電阻爐溫度的在線整定。為驗(yàn)證系統(tǒng)的控制精度,采用Proteus軟件對(duì)系統(tǒng)進(jìn)行仿真測(cè)試,測(cè)試結(jié)果顯示,系統(tǒng)的測(cè)量誤差不超過±0.5 ℃,符合工業(yè)要求。