基于AT89C51溫度智能控制系統(tǒng)的軟件設計
摘要 以溫度控制系統(tǒng)為例研究嵌入式系統(tǒng),實現(xiàn)了對工業(yè)現(xiàn)場的溫度實時監(jiān)測和控制。以AT89C51單片機為控制核心,采用典型大慣性環(huán)節(jié)的PID閉環(huán)控制裝置,可自動控制惡劣環(huán)境下的溫度,使被控對象溫度保持在恒定范圍內(nèi)。該系統(tǒng)通用性強,可廣泛應用予工業(yè)過程控制中。
關鍵詞 單片機;PID;工業(yè)控制;溫度
超大規(guī)模集成電路技術的發(fā)展促進了單片機的誕生,單片機具有功能強、性價比高、可靠性高、功耗低、體積小等特點。單片機技術的出現(xiàn)既提高了產(chǎn)品質(zhì)量,又豐富了產(chǎn)品功能,同時還簡化了控制系統(tǒng)的設計。單片機主要應用在電力、化工、石油、冶金、航空航天、機械制造等生產(chǎn)實踐中,用來實現(xiàn)信號檢測、數(shù)據(jù)采集以及對應用對象的控制。
隨著國民經(jīng)濟的發(fā)展,需要對工業(yè)現(xiàn)場中的溫度進行監(jiān)測和控制。溫度是表征對象和工程狀態(tài)的重要參數(shù)之一。研究和設計高性能的溫度控制系統(tǒng)具有重要意義。所以本設計選用溫度作為被控量進行研究。溫度控制系統(tǒng)一般具有非線性、時滯以及不確定性,為了能實現(xiàn)較高的控制精度,采用PID閉環(huán)算法進行控制。智能溫度控制系統(tǒng)滿足產(chǎn)品對成本低、性能穩(wěn)定、可遠程監(jiān)控制現(xiàn)場溫度的要求。
1 系統(tǒng)方案設計
本系統(tǒng)采用AT89C51作為溫度控制系統(tǒng)主控單元。AT89C51是一種帶4 kB閃存可編程可擦除只讀存儲器的低電壓、高性能CMOS的8位微處理器。指令系統(tǒng)和引腳與典型的MCS-51系列完全兼容,方便軟件的編寫。系統(tǒng)整體電路包括:主控電路、A/D數(shù)據(jù)采集、信號調(diào)理、LED顯示、控制輸出、控制對象、雙向可控硅模塊、設定輸入等電路,如圖1所示。
(1)主機電路。包括核心控制器件單片機,以及由時鐘電路、復位電路、電源電路構成的最小系統(tǒng)。主要完成功能運算,是控制系統(tǒng)數(shù)據(jù)處理的重要電路。
(2)數(shù)據(jù)采集電路。本系統(tǒng)需要實時采集溫度數(shù)據(jù),經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號,存入AT89C51的內(nèi)部數(shù)據(jù)存儲器,送LED顯示器顯示,并與設定值比較,經(jīng)過PID算法得到控制量并由單片機輸出以控制電熱絲加熱。
(3)鍵盤處理電路。本系統(tǒng)采用獨立鍵盤,主要功能為輸入控制系統(tǒng)的設定值,以便與系統(tǒng)采樣值比較。鍵盤共有4個鍵,其中第2個選用雙穩(wěn)態(tài)開關,為后續(xù)鍵盤處理子程序提供便利。第1個、第3個和第4個鍵選用按鈕開關。第1個鍵按下則轉(zhuǎn)入外部中斷處理。第2個鍵判斷是十位還是個位進行加減操作,第2個鍵按下轉(zhuǎn)十位進行加減操作,否則轉(zhuǎn)入個位加減操作。第3個和第4個鍵分別為加1和減1操作。
(4)LED顯示電路。顯示電路采用兩個4位LED顯示數(shù)碼管,共陰極接法。由于LED顯示電路較多選用動態(tài)掃描方式,為實現(xiàn)LED顯示管的動態(tài)掃描,要給顯示器提供段和位控。
(5)控制執(zhí)行電路。系統(tǒng)用加熱絲進行加熱,加熱時間的長短取決于PWM波高電平時間的長短。
2 軟件部分
系統(tǒng)采用AT89C51單片機進行數(shù)據(jù)處理分析,設置相應的溫度初始值并對采集到的信號進行實時處理顯示。首先由溫度的采樣值與設定值之差求出溫度誤差,通過PID閉環(huán)控制算法獲得控制量U,然后由定時子程序處理,發(fā)出可以改變占空比的PWM控制信號,控制加熱片的工作時間,從而達到調(diào)節(jié)溫度的目的。軟件設計時采用了模塊化設計,由主程序模塊、功能實現(xiàn)模塊和運算控制模塊組成。
2.1 主程序模塊
在主程序中首先給定PID算法的參數(shù)值,然后通過循環(huán)顯示當前溫度,以等待中斷,并且使鍵盤處于最高優(yōu)先級。外部中斷為高優(yōu)先級,以便使主程序能及時響應鍵盤處理。初值由PID算法子程序提供,以用來執(zhí)行對加熱絲的控制。系統(tǒng)總體程序流程圖如圖2所示。
[!--empirenews.page--]
2.2 功能實現(xiàn)模塊
功能實現(xiàn)模塊主要由A/D轉(zhuǎn)換子程序、中斷處理子程序、鍵盤處理子程序和顯示子程序等組成。
(1)A/D轉(zhuǎn)換子程序。
先送地址鎖存允許ALE一上跳沿,使A、B、C地址狀態(tài)送入地址鎖存器中,然后發(fā)送給START一個上跳沿使內(nèi)部寄存器清0,再給其發(fā)送一個下跳沿,開始進行A/D轉(zhuǎn)換,然后判斷轉(zhuǎn)換結束狀態(tài)信號EOC是否為1,為0則繼續(xù)等待轉(zhuǎn)換,為1則將轉(zhuǎn)換好的數(shù)字量經(jīng)ADC0808的8個數(shù)據(jù)輸出端送到AT89C51的P0.0~P0.7口,A/D轉(zhuǎn)換流程圖如圖3所示。
(2)T0中斷子程序。
該中斷是單片機內(nèi)部5 s定時中斷,為低優(yōu)先級,但卻是最重要的處理子程序。在該中斷響應中,單片機要完成的工作有:A/D數(shù)據(jù)采集和轉(zhuǎn)換、數(shù)字濾波、標度變換處理、顯示設定值、調(diào)用PID算法及PWM處理子程序。產(chǎn)生控制信號PWM波是單片機上常用的模擬量輸出方法,通過外接轉(zhuǎn)換電路,可以將脈沖的占空比變成電壓。程序中通過調(diào)整占空比調(diào)節(jié)輸出模擬電壓,PWM的占空比由定時器通過定時來實現(xiàn),定時長短取決于PID運算的結果。
(3)T1中斷子程序。
T1中斷子程序嵌套在T0中斷子程序中,為高優(yōu)先級的中斷。T0的定時初值由PID算法子程序提供,T0中斷的響應時間用于對電熱絲的控制,也就是產(chǎn)生PWM波。
(4)鍵盤處理子程序。
作為高優(yōu)先級的功能鍵,系統(tǒng)要實時準備響應實時中斷。在中斷的響應過程中,應能顯示設定值和控制處理后的值,其流程圖如圖4所示。
[!--empirenews.page--]
2.3 運算控制模塊
運算控制模塊涉及標度變換、PID算法及該算法調(diào)用的乘法子程序等。
(1)溫度標度轉(zhuǎn)換模塊。
控制系統(tǒng)讀人被測量模擬信號,并轉(zhuǎn)換成操作人員的物理量,這種轉(zhuǎn)換就是標度轉(zhuǎn)換。線性標度變換的公式為
式中,Y為參數(shù)測量值;Ymax為測量范最大值,Ymin為測量范最小值;Ymax為對應的A/D轉(zhuǎn)換值;Nmin為Ymin對應的A/D轉(zhuǎn)換值;X為測量值Y對應的A/D轉(zhuǎn)換值。在本系統(tǒng)中Ymin=0,Ymax=100,Nmin=0。
(2)PID算法。
在模擬控制系統(tǒng)中,控制器最常用的控制規(guī)律是PID控制。工業(yè)控制算法常用位置型PID算法,經(jīng)離散化后的算式為
式中,U(n)為第n個采樣時刻控制器的輸出量,e(n)第n個采樣時刻的偏差值,Kp為比例系數(shù),Ki為積分作用系數(shù),Kd為微分作用系數(shù)。由于位置式算法每次輸出與整個過去狀態(tài)有關,算式中用到過去偏差的累加值,容易產(chǎn)生較大的累計誤差。而增量式中只需計算增量,算式中不需要累加,控制增量的確定僅與幾次偏差采樣值有關,當存在計算誤差或精度不足時,對控制量計算的影響較小,且容易通過加權處理獲得較好的控制效果。由于計算機只輸出控制增量,所以誤動作時影響較小,且必要時可用邏輯判斷的方法去掉,對系統(tǒng)安全運行有利。
由于上述優(yōu)點,所以增量式PID控制算法得到廣泛的應用。其控制算法表達式為
式(3)是PID位置式的遞推形式,是編程時常用的形式之一。按增量式PID控制算法編程時,a0,a1,a2可預先算出存入固定單元。PID算法流程圖如圖5所示。
3 結束語
本嵌入式智能溫度控制系統(tǒng)能夠?qū)崟r處理采集到的數(shù)據(jù)、通過鍵盤實現(xiàn)設定初始值并實時顯示當前的溫度值,采用PID閉環(huán)控制算法增強了系統(tǒng)的抗干擾能力,提高了智能系統(tǒng)的精確度,達到了較高的設計水平,是一種成本低且效果好的嵌入式系統(tǒng)。