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