摘 要: 一種采用NTC熱敏電阻作為溫控設(shè)備的傳感器,89C2051為CPU的溫度測控系統(tǒng),它線路簡單并具有一定參數(shù)自學(xué)習(xí)能力。
關(guān)鍵詞: 溫度控制 單片機 NTC 自學(xué)習(xí) 自適應(yīng)
在工農(nóng)業(yè)生產(chǎn)、國防、科研以及辦公設(shè)備自動化領(lǐng)域中,溫度是一種十分重要的數(shù)據(jù)。對于溫度的采集,常用的傳感器有熱電偶、鉑電阻、NTC熱敏電阻等。針對不同的傳感器,可以采用不同的測溫技術(shù)。目前,我國在這方面的成熟產(chǎn)品主要以“點位”控制及常規(guī)的 PID 控制器為主,這些算法要求針對具體應(yīng)用的參數(shù)值的整定,在一些精度要求不高、價廉的控制器設(shè)計中,無疑會增加開發(fā)周期和開發(fā)成本。本文介紹一種自學(xué)習(xí)的溫控算法,以對此類問題的解決提供參考。
1 問題的提出
傳感器中NTC熱敏電阻因其價格低廉、精度較高、可靠性好而廣泛使用。以下就以NTC熱敏電阻作為溫控設(shè)備的傳感器,分析閉環(huán)控制中可能遇到的問題。溫控設(shè)備設(shè)計框圖如圖1所示。
由于NTC電阻的測溫遲滯性(目前國產(chǎn)的NTC電測溫時延為幾秒到十幾秒)以及電阻受材料的穩(wěn)定性和一致性的影響,圖1中傳感器部分的阻值精度有±5%的誤差,這使參數(shù)的整定受限于每個具體的設(shè)備。除了傳感器的遲滯特性外,還必須考慮加熱器的慣性即加熱器在斷電之后在一定時間內(nèi)仍有加熱作用的特性以及被加熱物體的熱遲滯性和外部環(huán)境的氣溫影響,因此使參數(shù)整定更為困難。但是在溫控器的具體應(yīng)用中,大部分時間是在某一個具體的場合,環(huán)境條件的變化是相對穩(wěn)定的。一個加熱設(shè)備通常長期運行在某個要求的目標(biāo)溫度,目標(biāo)溫度的變化并不頻繁。因此為了一次設(shè)計能夠用于多個場合,就要求控制器有自學(xué)習(xí)和自適應(yīng)的功能,即在每次運行的初期,自已調(diào)整相應(yīng)的參數(shù),使之有效地應(yīng)用在不同的場合。
PID算法是閉環(huán)控制中常用的算法,也是通常采用的溫度控制算法。但在價廉的溫控器中,多采用小型的CPU,其程序存儲單元非常有限,而PID 算法要占用相對大的空間和計算時間,故是設(shè)計的難點所在。
2 自學(xué)習(xí)的溫度測控系統(tǒng)
針對上述問題,本文提出了一種自學(xué)習(xí)的控制算法。該系統(tǒng)硬件采用NTC電阻線性校正電路和積分采樣電路作測量電路,軟件設(shè)計采用一種自學(xué)習(xí)的算法,使系統(tǒng)有一定自適應(yīng)能力,無須事先做參數(shù)調(diào)整。該算法就是不斷在測量過程中,當(dāng)發(fā)現(xiàn)超過某個不利的限定值時就對參數(shù)作出相應(yīng)調(diào)整,如此不斷試探,最后達到穩(wěn)定。而后將調(diào)整學(xué)習(xí)后得出的參數(shù)值保存起來作為這個目標(biāo)溫度的相應(yīng)參數(shù)值,在下次開機時如果要求同樣的目標(biāo)溫度就可以直接調(diào)出相應(yīng)參數(shù)。如果環(huán)境溫度較穩(wěn)定,機器可以自已設(shè)定經(jīng)驗值,但如果環(huán)境溫度發(fā)生變化,必須再學(xué)習(xí),以適應(yīng)新的環(huán)境。
2.1 測溫電路
NTC傳感器測溫電路,其CPU采用89C2051單片機,輸出采用脈寬調(diào)制(PWM)方式輸出。在對精度要求不高的系統(tǒng)中,多采用NTC熱敏電阻作為溫度傳感器,電路利用AT89C2051單片機內(nèi)部精確模擬比較器的正向輸入(AIN0)和反向輸入(AIN1),實現(xiàn)低價模數(shù)轉(zhuǎn)換。該電路實際上是一個具有電壓門坎的積分比較器,它將輸入的模擬量(電壓)轉(zhuǎn)換成中間量(時間間隔),然后將中間量轉(zhuǎn)換為相應(yīng)的數(shù)字量。其溫度檢測與轉(zhuǎn)換電路圖如圖2所示。
2.2 NTC電阻的線性補償
普通的NTC電阻的阻-溫特性呈指數(shù)變化,即電阻隨著溫度的上升而呈指數(shù)下降。因其非線性,給系統(tǒng)溫度控制帶來不便。在本溫控系統(tǒng)中采用了電路補償法,將熱敏電阻與一般電阻并聯(lián),以改善其在某一溫度范圍內(nèi)的阻-溫特性的線性度。在圖2所示的電路中,RT和R4并聯(lián)后,可以得出:
由上式可以看出,在低溫時,原來的ΔR/ΔT很大,則RT也很大。并上R4后可以看出ΔR變小,因而ΔR/ΔT也減?。欢诟邷貢r,原ΔR/ΔT很小,但因高溫時RT很小(遠小于R4),所以RT基本不變。電路補償前后R與T的關(guān)系如圖3所示,從圖中可以看出,NTC電阻的非線性明顯改善。
2.3 測量工作原理
單片機AT89C2051的P1.0和P1.1是內(nèi)部精確模擬比較器的正向輸入(AIN0)和反向輸入(AIN1)端。P1.1端連接基準(zhǔn)電壓,P1.0端連接溫度傳感器。熱敏電阻RT的變化可引起C1的充電電流變化,故可利用比較器判斷基準(zhǔn)電壓與電容C1上的電壓是否相等。當(dāng)2個電壓相等時,比較器輸出P3.6會有跳變,單片機AT89C2051則記錄從C1電容充電開始到P3.6跳變的時間。因為R1、R2的值固定,所以積分到基準(zhǔn)電壓VS=VCC*R2/(R1+R2)時,比較器輸出高電平。根據(jù)電容充電的瞬時方程VC=VCC*(1-exp(-T/RC))=VS,即可求出傳感器的電阻RT,然后查表即可得出溫度值。由于直接用計算指數(shù)函數(shù)的方法求解比較困難,且實時計算測量溫度的計算量較大,計算精度較低,因此本系統(tǒng)采用查表的方法,即預(yù)先將時間長度T所對應(yīng)的溫度值計算出來,存入映射表。
2.4 自學(xué)習(xí)的溫度控制算法
本溫控系統(tǒng)中的傳感器電路測得的溫度經(jīng)數(shù)字濾波并與系統(tǒng)溫度設(shè)定值進行比較后,通過PWM參數(shù)的設(shè)定,去控制加熱繼電器的導(dǎo)通時間,從而可以控制加熱板的平均輸入功率,達到恒溫的控制。
對于本控制系統(tǒng)來說,當(dāng)溫度未達到設(shè)定值時,為自由升溫段,要求升溫越快越好,所以要全量輸出。當(dāng)溫度達到設(shè)定值時,停止輸出,但由于加熱板的熱慣性,溫度并不因輸出停止而停止上升,溫度會超過給定值;同理,溫度在上升到一定高度后才開始下降,并繼續(xù)下降到略小于設(shè)定值時,系統(tǒng)才重新輸出。由于溫度的滯后特性,造成了溫度在設(shè)置溫度的一定范圍內(nèi)上下振蕩,使溫度基本保持在恒溫狀態(tài)。
系統(tǒng)使用PWM技術(shù)實現(xiàn)對溫度的控制,使用TPWM_A、TPWM_S參數(shù)來改變占空比,從而控制繼電器導(dǎo)通時間,達到控制溫度的目的。PWM控制即是通過對變量TPWM_A的調(diào)整來調(diào)整輸出加熱器通斷時間的比。假設(shè)TPWM_A為8位(為1100 0000),每0.5秒輸出TPWM_A.7的電平,則在4秒內(nèi)有1秒輸出高電平,進行加熱,其余時間則關(guān)斷。這樣通過調(diào)整其中為1的個數(shù)就可以調(diào)整加熱功率。
該算法中設(shè)TPWM_S為記錄占空比變化的變量,而TPWM_A為通過循環(huán)移位輸出控制脈沖的執(zhí)行變量,則控制過程如下:剛開始加熱時,TPWM_A參數(shù)為#0FFH,則繼電器導(dǎo)通,全速加熱。溫度升至設(shè)置溫度TEMP_SET時,將TPWM_A參數(shù)置為0,關(guān)斷繼電器,但因熱慣性,溫度將繼續(xù)上升至一定溫度后才下降,在溫度上升過程中系統(tǒng)記錄上升到的最高溫度TMAX。當(dāng)溫度下降到設(shè)置溫度TEMP_SET時,TPWM_A參數(shù)置為#08H,降低了加熱速度,同時由于熱慣性,溫度將繼續(xù)下降,在溫度下降過程中系統(tǒng)記錄下降到的最低溫度TMIN。如果TMAX超過溫度的上限值,則對TPWM_S參數(shù)進行補0,降低占空比,減少繼電器的導(dǎo)通時間;如果TMIN超出溫度的下限,則TPWM_S參數(shù)進行補1,提高占空比。因為加熱速率的降低,振蕩周期中上限TMAX與下限TMIN越來越接近設(shè)置溫度TEMP_SET,從而達到恒溫。溫度控制曲線如圖4所示。在t1階段,繼電器均關(guān)斷,在t2階段系統(tǒng)則根據(jù)TPWM_A參數(shù)進行脈寬調(diào)制。其中W1和W2分別為加熱溫度的上限和下限。
設(shè)計中,采用二部分程序?qū)崿F(xiàn)以上功能。
(1) T0中斷服務(wù)子程序,進行0.5秒中斷控制輸出。它判斷溫度是否超過設(shè)置溫度,即如果超過設(shè)置溫度,則關(guān)斷繼電器輸出;如果低于設(shè)置溫度,則根據(jù)TPWM_A參數(shù)左移后的高位值,若為1則加熱,即驅(qū)動繼電器工作;若為0則關(guān)斷繼電器。溫度控制子程序流程如圖5所示,其中恢復(fù)TPWM_A是指記錄占空比的TPWM_S的值賦給執(zhí)行變量TPWM_A。PWM控制的過程只在溫度傳感器所測溫度低于設(shè)定溫度時進行,而加熱到設(shè)定溫度時則完全切斷加熱器。由于NTC電阻的遲滯特性,在切斷加熱器時,實際溫度已高于測量溫度。測量值依舊會上升,所以完全切斷后待其冷卻的過程中會有上峰值TMAX產(chǎn)生,當(dāng)其下跌至設(shè)定溫度時才開始PWM控制過程。同樣由于NTC電阻的遲滯特性,測量的溫度低于實際溫度,加熱過程中會有一個波谷值TMIN產(chǎn)生。適當(dāng)?shù)拿}寬比會使加熱溫度上升的速率得以降低,在目標(biāo)溫度的上下限之間振蕩的頻率和幅度也會變小,從而達到控制的目的。
(2) 自適應(yīng)控制則是通過上次測量的TMAX及TMIN對TPWM_S占空比進行調(diào)整,以達到恒溫。該過程應(yīng)在溫度測量后進行,其程序流程如圖6所示。
調(diào)整過程需要較長時間,但在控制溫度變化較少、長期恒溫控制的場合,自適應(yīng)過程所用時間是允許的。為了克服每次開機都需要進行的自適應(yīng)時間,可以將每次學(xué)習(xí)得到的脈寬與設(shè)定溫度的對應(yīng)關(guān)系記錄下來,只要學(xué)習(xí)一次,以后開機加熱直接調(diào)出參數(shù)即可。而當(dāng)環(huán)境或加熱條件變化時,可能參數(shù)不再符合實際情況,這時上述程序會再次自學(xué)習(xí),以產(chǎn)生新的參數(shù)。
3 總 結(jié)
本文介紹的自學(xué)習(xí)的溫控系統(tǒng)對內(nèi)存空間大小的要求較小,但只適用于溫度較少調(diào)整的場合,如恒溫烘干箱。但因其算法簡單,有自學(xué)習(xí)和自適應(yīng)的功能,所以無需對運行參數(shù)進行現(xiàn)場的整定,故可簡化溫控設(shè)備的設(shè)計。
參考文獻
1 張毅剛,彭喜源,譚曉昀等.MCS-51單片機應(yīng)用設(shè)計.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997
2 Atmel Corporation.8-bit Microcontroller with 2Kbytes Flash AT89C2051.USA:ATMEL,1996
3 王幸之,王雷,翟成等.單片機應(yīng)用系統(tǒng)抗干擾技術(shù).北京:北京航空航天大學(xué)出版社,2000
4 李錫雄,陳婉兒,鮑鴻等.微型計算機控制技術(shù).北京:科學(xué)出版社,1998