摘 要: 為改善溫控系統(tǒng)性能并簡化結(jié)構(gòu),以PID控制算法為基礎(chǔ),通過SoC高性能、C8051F系列單片機(jī)設(shè)計并實(shí)現(xiàn)具有溫度實(shí)時測量、閉環(huán)控制和實(shí)時顯示等功能的智能溫控系統(tǒng)。不僅簡化了硬件結(jié)構(gòu),各電路模塊之間相互獨(dú)立使設(shè)計的復(fù)用及擴(kuò)展成為可能,同時提高了系統(tǒng)的抗干擾性和可靠性。實(shí)測結(jié)果表明,本系統(tǒng)溫度響應(yīng)時間為3 s~5 s,溫度控制的誤差為1%,在需要恒溫控制的場合有一定的推廣價值。
關(guān)鍵詞: 單片機(jī); 溫度控制; 閉環(huán)控制; PID; 實(shí)時顯示
溫度是工業(yè)生產(chǎn)中最普遍而又最關(guān)鍵的參數(shù)之一,其測量精度對產(chǎn)品的質(zhì)量有直接的影響[1]。傳統(tǒng)溫控系統(tǒng)雖然溫度控制精度較高(誤差不超過±0.5 ℃,溫度不均勻性不大于1 ℃),但其電路復(fù)雜,發(fā)生溫控故障時維修困難且溫度顯示不直觀。而將智能控制和常規(guī)PID控制方法融合在一起從而形成的實(shí)時顯示智能PID控制器能很好地解決此類問題[2]。
1 溫度控制系統(tǒng)框圖
溫度控制系統(tǒng)框圖如圖1所示。此系統(tǒng)是一個典型的閉環(huán)控制系統(tǒng),用于控制燈箱內(nèi)的溫度使其保持在恒定的溫度設(shè)定值。系統(tǒng)通過PT100鉑熱電阻采集實(shí)時溫度,通過變送器及輸入電路反饋實(shí)時溫度信號,再與設(shè)定值對比確定偏差值;偏差值經(jīng)過PID算法運(yùn)算輸出,通過驅(qū)動電路和SSR控制發(fā)熱裝置控制溫箱溫度,以克服偏差,促使偏差趨近于零,實(shí)現(xiàn)恒溫控制[3]。
2系統(tǒng)硬件設(shè)計
系統(tǒng)硬件原理圖如圖2所示,由電源模塊、輸入、輸出模塊、主芯片、顯示模塊等組成。
2.1 電源模塊電路
電源模塊由整流、濾波等電路以及穩(wěn)壓芯片組成。其中穩(wěn)壓芯片采用National Semiconductor的兩款芯片,分別是輸出電壓為5 V的三端穩(wěn)壓器LM7805CT和500 mA低壓差穩(wěn)壓器LM2937。
2.2 主芯片及周邊電路
主芯片選用Silicon Laboratories公司出品的C8051Fxxx單片機(jī),它是完全集成的混合信號系統(tǒng)級低功耗芯片(SoC),具有與8051指令集完全兼容的CIP-51內(nèi)核[4]。大多數(shù)C8051F單片機(jī)具備控制系統(tǒng)設(shè)計所需的模擬及數(shù)字外設(shè),包括Watch Dog、ADC、DAC、電壓比較器、電壓基準(zhǔn)輸出定時器、PWM、定時器捕捉等;并具備多種總線接口,包括UART、SPI、SMBUS(與C兼容I2C)總等。周邊電路包括晶振電路、ADC外部參考電壓電路以及復(fù)位電路等。
2.3 控制器電流輸出分析
電路采用負(fù)載共地方式,由MAXIM公司的低失調(diào)、低漂移的精密運(yùn)算放大器OP07,精密電阻R9、R8、R11、R10、R12、R13、R14以及Q1、Q2組成。設(shè)Vi為輸入電壓,即Vi=DAC1;Iout為輸出電流;R13為采樣反饋電阻;R11、R12為限流電阻;R14為負(fù)載電阻,用電位器可以實(shí)現(xiàn)阻值的變化。流過R13的采樣電流信號以電壓的形式加到運(yùn)算放大器的輸入端,而且極性與輸入電壓信號反相,形成一個電流并聯(lián)負(fù)反饋電路。由于運(yùn)算放大器的輸入阻抗很高,流入運(yùn)算放大器輸入端的電流可以忽略。在R11>>R13且R10>>R13條件下,流經(jīng)R11、R10的電流與流經(jīng)Q2射極的電流相比可以忽略,此時Iout=IE。運(yùn)算放大器正負(fù)輸入端電位近似相等,設(shè)R9=R8=R11=R10,可得:
取R9=100 k?贅, R11=20 k?贅,R14為電位器,當(dāng)Vi=2.5 V時,Iout=20 mA。為保證足夠的V/I變換精度,電阻應(yīng)當(dāng)選用精密電阻;輸入電壓Vi>(R13+R14)×Imax,Imax是Iout的最大值[5]。
3 溫控系統(tǒng)軟件設(shè)計
3.1 溫控系統(tǒng)軟件主流程圖
溫控系統(tǒng)軟件主流程圖如圖3所示。
系統(tǒng)經(jīng)過初始化,進(jìn)行鍵盤掃描,等待按鍵按下。當(dāng)按鍵按下則進(jìn)行參數(shù)設(shè)置,根據(jù)按鍵次數(shù)的不同設(shè)置相應(yīng)的參數(shù),設(shè)置完參數(shù)后再有按鍵按下時系統(tǒng)運(yùn)行。此時,鍵盤繼續(xù)掃描等待按鍵按下以便修改參數(shù)。
3.2 溫控系統(tǒng)軟件子流程圖
3.2.1 系統(tǒng)初始化子程序
系統(tǒng)時鐘的初始化通過對OSXCN和OSCICN寄存器的設(shè)置,選擇24 MHz的外部振蕩器為SYSCLK源并允許丟失時鐘檢測器。由于顯示模塊采用CH452數(shù)碼管顯示驅(qū)動和鍵盤掃描控制芯片,通過輸出12 bit的操作命令進(jìn)行相應(yīng)的控制。輸出12 bit串行數(shù)據(jù)0x0403使按鍵低電平中斷,低速閃爍,同時啟用按鍵掃描與顯示驅(qū)動。當(dāng)寄存器ADCOCN的最高位ADCEN=1時使能A/D轉(zhuǎn)換,當(dāng)寄存器DAC0CN=0x80(即DAC0EN為1)時使能DAC0[6]。
3.2.2 系統(tǒng)運(yùn)行子程序
系統(tǒng)運(yùn)行子程序流程圖如圖4所示。進(jìn)入系統(tǒng)運(yùn)行后,采集PT100鉑電阻值,信號經(jīng)過PT100溫度變送器轉(zhuǎn)換成4~20 mA電流信號通過輸入電路到達(dá)主控芯片,再經(jīng)過標(biāo)度變換及A/D轉(zhuǎn)換。在實(shí)現(xiàn)溫度顯示的同時得到溫度設(shè)定值與實(shí)時溫度值的差值。進(jìn)行PID算法處理得到增量值,如果沒有超邊界值則根據(jù)輸出量控制SSR來發(fā)熱裝置進(jìn)而實(shí)現(xiàn)溫箱溫度的調(diào)節(jié)[7]。
3.3 PID調(diào)節(jié)
溫度控制系統(tǒng)是一個慣性較大的系統(tǒng),即當(dāng)給溫箱加熱之后,并不能立刻觀察到溫度的明顯上升,Pt100鉑電阻對溫度的檢測與實(shí)際的溫箱溫度相比較,也存在一定的時滯特性[8]。為了合理地處理系統(tǒng)響應(yīng)速度與系統(tǒng)穩(wěn)定性之間的矛盾,溫度控制可以分為兩個階段:
(1) PID調(diào)節(jié)前階段
此時,溫箱溫度距離設(shè)定值很遠(yuǎn),為了加速加熱速度,SSR與發(fā)熱裝置處于滿負(fù)荷輸出狀態(tài),只有當(dāng)溫度上升速度超過控制參數(shù)“加速速率”,SSR才關(guān)閉輸出。
(2) PID調(diào)節(jié)階段
在這個階段,PID調(diào)節(jié)器調(diào)節(jié)輸出,根據(jù)偏差值計算輸出值,保證偏差趨近于零,即使系統(tǒng)受到外部干擾時,也能使系統(tǒng)回到平衡狀態(tài)。
PID控制的原理是基于下面算式,其中輸出u(t)是比例項、積分項和微分項的函數(shù):
為了能讓數(shù)字計算機(jī)處理這個算式,連續(xù)算式必須離散化為周期采樣偏差式,才能用來計算輸出值。在工業(yè)應(yīng)用中,習(xí)慣上將式(3)中各項近似離散為:
通常,計算機(jī)輸出的控制指令u(k)是直接控制執(zhí)行機(jī)構(gòu)。但由于累加誤差,占用內(nèi)存較多,并且安全性較差。一旦計算機(jī)出現(xiàn)故障,u(k)的大幅度變化引起執(zhí)行機(jī)構(gòu)的突變,可能造成重大事故,此時可采用增量式算法。它是位置算法的一種改進(jìn),如下式:
u(k)=u(k)-u(k-1)=KP[e(k)-e(k-1)]+KIe(k)+
KD[e(k)-2e(k-1)+e(k-2)] (5)
將式(5)進(jìn)一步整理,可得:
?駐u(k)=u(k)-u(k-1)=KP[(1+T/TI+TD/T)e(k)-
(1+2TD/T)e(k-1)+(TD/T)e(k-2)]
=KP[Ae(k)-Be(k-1)+Ce(k-2)](6)
式中A=1+T/TI+TD/T, B=1+2TD/T,C=TD/T。由式(6)可見,根據(jù)誤差3個時刻采樣值,調(diào)整加權(quán)值即可獲得不同的控制品質(zhì)和精度[9]。
4 系統(tǒng)調(diào)試
由穩(wěn)壓源提供電路所需的±12 V及變送器所需的24 V電壓,SSR則由220 V供電,上電后通過按鍵設(shè)置參考溫度為33℃,之后系統(tǒng)進(jìn)入運(yùn)行狀態(tài)。實(shí)時溫度曲線如圖5所示,可見達(dá)到了預(yù)期控制效果,未來可配合更加優(yōu)化的新型PID控制算法實(shí)現(xiàn)對多變量復(fù)雜對象的控制[10]。
由于系統(tǒng)選用了功能強(qiáng)大、低功耗的C8051F系列單片機(jī)作為核心器件,加之精心設(shè)計相互間獨(dú)立的電路,增加信號處理單元,使其性能指標(biāo)達(dá)到了溫度響應(yīng)時間為3 s~5 s,溫度控制的誤差為1%,滿足了設(shè)計的要求,達(dá)到預(yù)期效果,能在需要恒溫裝置的場合有很好的應(yīng)用前景。
參考文獻(xiàn)
[1] 歐漢烈.數(shù)字式溫度測量調(diào)節(jié)儀的研制 [J].廣東工業(yè)大學(xué)學(xué)報,1999,16(3):57-60.
[2] 徐顯海.一種電阻爐智能溫度控制儀的研制[D].南京:東南大學(xué),2006.
[3] 安宏, 姚彩虹, 蔣興加.用于電熱爐的智能溫控儀的設(shè)計[J].自動化儀表,2008,29(10):64-66.
[4] 黃真合.基于C8051F單片機(jī)的電力系統(tǒng)智能測控裝置的設(shè)計[J].工業(yè)控制計2010,23(7):101-103.
[5] 李孝利.單片機(jī)原理及接口技術(shù)[M].北京:高等教育出版社, 2010.
[6] 童長飛. C8051F系列單片機(jī)開發(fā)與C語言編程[M]. 北京:北京航空航天大學(xué)出版社, 2005.
[7] 唐洪富,張興波.基于STC系列單片機(jī)的智能溫度控制器設(shè)計[J].電子技術(shù)用,2013,39(5):86-88.
[8] 崔坤林,張翼飛.時滯系統(tǒng)的經(jīng)典控制與智能控制[J].微計算機(jī)信息,2004,20(6):25-26.
[9] 姚棟偉,吳峰,楊志家,等.基于增量式數(shù)字PID的汽油怠速控制研究[J]. 浙江大學(xué)學(xué)報, 2010,44(6):1122-1126.
[10] 王蕾.PID控制[J]. 自動化儀表,2004,25(4):1-5.