1引言
溫度在工業(yè)控制中是個(gè)很重要的參數(shù),特別在冶金、機(jī)械、食品、化工等工業(yè)中,對(duì)工件的處理溫度都要求嚴(yán)格控制,對(duì)于溫度的精確度和穩(wěn)定性均有較高的要求。模糊控制雖然能夠得到較好的動(dòng)態(tài)響應(yīng)特性,但模糊控制也存在固有的缺點(diǎn),容易受模糊規(guī)則有限等級(jí)的限制而引起誤差。而數(shù)字PID控制則能夠較好地解決控制精度的問題,并且計(jì)算機(jī)能夠用程序既簡(jiǎn)單又方便地實(shí)現(xiàn)數(shù)字PID控制規(guī)律,對(duì)精度調(diào)整起來也很方便。本文設(shè)計(jì)了一種基于數(shù)字PID算法的溫度控制系統(tǒng),用AT89S52作為控制內(nèi)核,并采用了數(shù)字PID算法結(jié)合積分分離方法對(duì)電阻爐溫度進(jìn)行控制,具有精度高、穩(wěn)定性好的特點(diǎn)。此系統(tǒng)還設(shè)計(jì)了單片機(jī)與上位機(jī)的通信,實(shí)現(xiàn)了遠(yuǎn)程溫度控制。這種方案可大大地提高工作效率和控制精度,有助于自動(dòng)化水平的提高,具有良好的經(jīng)濟(jì)效益和推廣價(jià)值。
2爐溫控制的工作原理
工作原理:當(dāng)采樣周期到達(dá)時(shí),由熱電偶檢測(cè)爐內(nèi)實(shí)際溫度,經(jīng)過放大電路將溫度值轉(zhuǎn)換為0-4V的電壓信號(hào),再由A/D轉(zhuǎn)換芯片ADC0809將電壓值轉(zhuǎn)換成數(shù)字量,經(jīng)單片機(jī)采集后與設(shè)定溫度進(jìn)行比較,根據(jù)偏差信號(hào)進(jìn)行PID控制運(yùn)算,得出相應(yīng)控制輸出量,將控制輸出量輸出到執(zhí)行機(jī)構(gòu)進(jìn)行加熱,從而控制電阻爐內(nèi)溫度,使電阻爐的實(shí)際溫度向著給定溫度變化并最終達(dá)到給定溫度。系統(tǒng)時(shí)刻檢測(cè)爐內(nèi)溫度值,出現(xiàn)異常時(shí)啟動(dòng)蜂鳴器報(bào)警。
3系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)的硬件設(shè)計(jì)主要包括單片機(jī)的最小系統(tǒng)、溫度采集電路、8155擴(kuò)展電路、液晶顯示接口、鍵盤接口、蜂鳴器報(bào)警電路以及串口通信等。圖1中ArI‘89S52為主控制器件,AT89S52是ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含有8K字節(jié)的EPROM和256字節(jié)的RAM.本系統(tǒng)采用8 155A芯片來擴(kuò)展鍵盤和液晶顯示,模數(shù)轉(zhuǎn)換芯片ADC0809以及MAX232實(shí)現(xiàn)RS一232C標(biāo)準(zhǔn)接口通信電路。以下是各部分電路功能:
(1)AT89S52單片機(jī)
AT89S52是整個(gè)系統(tǒng)的CPU,單片機(jī)首先根據(jù)已經(jīng)測(cè)量的電壓值計(jì)算出溫度偏差,然后進(jìn)行PID控制并計(jì)算出相應(yīng)的控制輸出量,將控制輸出量輸出去控制加熱器工作,從而實(shí)現(xiàn)溫度控制。AT89S52還負(fù)責(zé)按鍵處理、液晶顯示以及與上位機(jī)進(jìn)行通信等工作。
圖1控制器系統(tǒng)硬件結(jié)構(gòu)框圖。
(2)數(shù)據(jù)采集電路
本系統(tǒng)采用K型熱電偶作為高溫測(cè)量傳感器,其測(cè)溫范圍為0℃~1700℃,溫度變化1 oC,可產(chǎn)生40“v左右的電壓。熱電偶冷端溫度補(bǔ)償采用電橋補(bǔ)償法,利用不平衡電橋產(chǎn)生的電動(dòng)勢(shì)補(bǔ)償熱電偶因冷端波動(dòng)引起的熱電動(dòng)勢(shì)的變化。運(yùn)算放大器采用低漂移高精度的芯片OP07.
單片機(jī)接口技術(shù)比較精確,由OP07放大器將信號(hào)放大,當(dāng)溫度從0℃~500.C變化時(shí)輸出的電壓范圍為0-4V之間。由于溫度信號(hào)為緩慢變化的信號(hào),對(duì)A/D轉(zhuǎn)換速度要求不高,可選用價(jià)廉的集成A/D芯片ADC0809.ADC0809是一種8路模擬輸入8位數(shù)字輸出的逐次逼近式A/D轉(zhuǎn)換器件,轉(zhuǎn)換時(shí)間為100us.ADC0809將經(jīng)過OP07放大的電壓值轉(zhuǎn)化成與其大小成正比的數(shù)字量,通過P0口送給單片機(jī)。
(3)蜂鳴器報(bào)警電路蜂鳴器報(bào)警電路由晶體管和蜂鳴器組成。由單片機(jī)I/O口輸出信號(hào)控制晶體管的導(dǎo)通或截止,晶體管導(dǎo)通,則蜂鳴器報(bào)警。通過單片機(jī)來控制蜂鳴器產(chǎn)生報(bào)警聲音。
(4)按鍵處理、液晶顯示鍵盤主要負(fù)責(zé)溫度控制范圍和PID控制參數(shù)的輸入;液晶顯示器采用LCMl28X64液晶顯示模塊,把溫度控制結(jié)果顯示在液晶屏上。
(5)驅(qū)動(dòng)電路驅(qū)動(dòng)電路采用繼電器驅(qū)動(dòng)方式。通過控制繼電器在控制周期內(nèi)通斷的時(shí)間,實(shí)現(xiàn)對(duì)加熱器的開關(guān)式控制。由單片機(jī)I/O口輸出的控制信號(hào),經(jīng)NPN晶體管放大,驅(qū)動(dòng)繼電器工作。
4軟件設(shè)計(jì)
本系統(tǒng)需要實(shí)時(shí)采集溫度數(shù)據(jù),然后經(jīng)過A/D轉(zhuǎn)換為數(shù)字信號(hào),存入AT89S52的內(nèi)部數(shù)據(jù)存儲(chǔ)器,送液晶顯示,并與設(shè)定值進(jìn)行比較,經(jīng)過PID算法得到控制量并由單片機(jī)輸出去控制加熱器。進(jìn)行溫度控制程序的設(shè)計(jì)應(yīng)考慮如下問題:①溫度采樣,數(shù)字濾波;②PID控制程序;③按鍵處理,液晶顯示;④越限報(bào)警和處理;⑤與上位機(jī)通信程序。
(1)PID控制程序PID是對(duì)系統(tǒng)進(jìn)行線性控制的一種控制器。所謂PID控制,就是按設(shè)定值與測(cè)量值之問偏差的比例、偏差的積累和偏差變化的趨勢(shì)進(jìn)行控制。經(jīng)典的數(shù)字PID增量型算式為:
(1)其中Kp為比例系數(shù),瓠為積分時(shí)間常數(shù),Td為微分時(shí)間常數(shù)。
本溫控系統(tǒng)采用的數(shù)字PID算法由軟件實(shí)現(xiàn),增量PID算法的優(yōu)點(diǎn)是編程簡(jiǎn)單,數(shù)據(jù)可以遞推使用,占用存儲(chǔ)空間少,運(yùn)算快。但是對(duì)于溫度這種響應(yīng)緩慢、滯后性大的過程,不能用標(biāo)準(zhǔn)的PID算法進(jìn)行控制。當(dāng)擾動(dòng)較大或者給定的溫度值大幅度變化時(shí),由于產(chǎn)生較大的偏差,加上溫控本身的慣性及滯后,在積分作用下,系統(tǒng)往往產(chǎn)生較大的超調(diào)和長時(shí)間的振蕩。因此,為克服這種不良的影響,采用積分分離法對(duì)增量PID算法進(jìn)行改進(jìn)。當(dāng)偏差e(I【)較大時(shí),暫時(shí)取消積分作用;當(dāng)偏差e(k)小于某一設(shè)定值M時(shí),才將積分作用投入。
①當(dāng)le(k)l》M時(shí),用PD控制。由于偏差大,說明系統(tǒng)溫度遠(yuǎn)離設(shè)定值,應(yīng)快速加熱,采用PD控制,可以提高系統(tǒng)的動(dòng)態(tài)響應(yīng)速度,避免產(chǎn)生過大的超調(diào),減小動(dòng)態(tài)誤差。PD控制算式為Au(k)=K,{k(t)一e(k一1)J+;}k(女)一2e(k-1)+e(k一2)J) (2)②當(dāng)le(k)l《M時(shí),用PID控制。偏差小,說明系統(tǒng)溫度已經(jīng)接近設(shè)定值,此時(shí)加入了積分作用,可以消除系統(tǒng)靜差,保證系統(tǒng)的控制精度。
(2)主程序流程圖如圖2所示
圖2主程序流程圖。
(3)PID參數(shù)的整定
數(shù)字PID控制器參數(shù)的整定是一項(xiàng)十分復(fù)雜的工作,必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來確定控制器的參數(shù)Kp、Ti、Td及采樣周期T.在本系統(tǒng)的設(shè)計(jì)過程中,首先根據(jù)Ziegler和Nichols提出的參數(shù)整定方法(表1)對(duì)各參數(shù)進(jìn)行整定,得到一個(gè)初始值,然后在實(shí)際操作中進(jìn)行修訂,直至最終滿足要求為止。
表1由Ziegler和Nichols閉環(huán)整定方法得到的調(diào)節(jié)參數(shù)。
其中Ku為臨界增益,Tu為臨界振蕩周期,這兩個(gè)值均是由純比例器的作用下產(chǎn)生等幅振蕩時(shí)的臨界值。
5溫度控制系統(tǒng)的調(diào)試
通過對(duì)電阻爐加熱實(shí)驗(yàn),對(duì)溫控系統(tǒng)進(jìn)行調(diào)試。溫度設(shè)定值為300℃,由于溫度為響應(yīng)慢、滯后較大的被控對(duì)象,采樣周期T應(yīng)選得長些,取T為10秒,繼電器控制周期與采樣周期一樣為10秒,M設(shè)定為20℃。改變PID參數(shù),通過實(shí)驗(yàn)得到如下結(jié)果:
①當(dāng)Kp=10,Ti=l,Td=1時(shí),系統(tǒng)的上升到設(shè)定值的時(shí)間較短,但系統(tǒng)超調(diào)量大,溫度最大值接近350℃,而且振蕩時(shí)間也較長。
②實(shí)驗(yàn)所用的電阻爐在純比例器的控制作用下,Ku=14,Tu=lO.用Ziegler和Nichols提出的參數(shù)整定方法對(duì)PID參數(shù)進(jìn)行整定,有Kp=8.4,Ti=5,Td=1.2,用此參數(shù)重新對(duì)電阻爐進(jìn)行加熱控制,結(jié)果發(fā)現(xiàn)系統(tǒng)超調(diào)量變小,經(jīng)過小幅振蕩后趨向穩(wěn)定,達(dá)到穩(wěn)定狀態(tài)的時(shí)間較短。
③在②的基礎(chǔ)上根據(jù)實(shí)際情況調(diào)整控制參數(shù),尋求最佳的PID控制參數(shù)組合。由②的結(jié)果可以預(yù)見,應(yīng)適當(dāng)減少Kp值,以減少超調(diào)量;增大Ti值使得偏差補(bǔ)償不至于太大;增加Td值以增加對(duì)溫度反應(yīng)的敏感性。經(jīng)過不斷的實(shí)驗(yàn)驗(yàn)證,最終將控制統(tǒng)參數(shù)定為Kp=7.6,Ti=5.2,Td=1.5.用此參數(shù)控制實(shí)驗(yàn)電阻爐,系統(tǒng)的過渡過程具有單調(diào)上升的特性,可以達(dá)到消除系統(tǒng)的超調(diào)輸出,獲得更短的過渡過程時(shí)間。當(dāng)溫度稍微低于設(shè)定的3000C時(shí),由于PID的控制作用,溫度總在設(shè)定值做上下波動(dòng),誤差很小,可以控制在±1℃以內(nèi),最終可使溫度控制在300±1℃。溫度變化曲線如圖3所示。
6監(jiān)控軟件的運(yùn)行
在本溫控系統(tǒng)中,。以單片機(jī)AT89S52作為下位機(jī),Pc機(jī)作為上位機(jī),下位機(jī)與上位機(jī)通過串I:1進(jìn)行通信。運(yùn)行上位機(jī)的監(jiān)控軟件后,選擇開始通信按鈕便與下位機(jī)建立了通信,可以對(duì),下位機(jī)的狀態(tài)進(jìn)行監(jiān)控。遠(yuǎn)程監(jiān)控的軟件上顯示溫度實(shí)際值的數(shù)字與曲線。
圖3監(jiān)控軟件的運(yùn)行
圖3是在溫度設(shè)定值為300.C時(shí)軟件運(yùn)行的曲線圖,屏幕上顯示的為加熱過程的溫度變化曲線,曲線動(dòng)態(tài)隨著下位機(jī)的溫度實(shí)際值的變化而變化,在左邊顯示的坐標(biāo)值是當(dāng)前溫度的實(shí)際值。
在實(shí)際的操作過程中需要對(duì)異常的情況進(jìn)行報(bào)警。圖3中在溫度上限、下限設(shè)定值輸入了320和280,表示溫度高于320℃(加熱過程)或者低于280.C(降溫過程)則系統(tǒng)通過蜂鳴器報(bào)警。
7總結(jié)
本文介紹了一種基于單片機(jī)的數(shù)字PID算法對(duì)溫度進(jìn)行控制,軟件采用c語言編寫,編程簡(jiǎn)單靈活,通過對(duì)PID算法中各控制參數(shù)的整定和采用積分分離方法,消除了系統(tǒng)的振蕩和超調(diào)現(xiàn)象,實(shí)現(xiàn)了對(duì)溫度的精確控制。此系統(tǒng)不但現(xiàn)場(chǎng)有溫度液晶顯示和按鍵控制,還實(shí)現(xiàn)了遠(yuǎn)程的溫度顯示與控制,單片機(jī)將測(cè)得的溫度值通過串口傳遞給上位機(jī),使用戶能夠隨時(shí)對(duì)溫度進(jìn)行監(jiān)控。經(jīng)過實(shí)驗(yàn)驗(yàn)證,該溫度控制器結(jié)構(gòu)簡(jiǎn)單、體積較小、測(cè)溫準(zhǔn)確,具有一定的實(shí)際應(yīng)用價(jià)值。
評(píng)論