基于多線程溫度控制專家系統(tǒng)
隨著科學技術的發(fā)展,溫度的自動控制已經廣泛地應用在生產和生活中,因此對自動控溫方法的研究具有很強的實際意義。由于溫度具有大慣性和純延滯的非線性特性,實際溫度控制過程的復雜性又使溫度控制系統(tǒng)的參數(shù)不易確定,因此實際的溫度控制系統(tǒng)是一個復雜的自動控制系統(tǒng),用一般的控制理論難以得到較為滿意的結果。以此為目的,在此設計了基于80C196KB單片機為核心的溫度控制系統(tǒng),通過多線程和專家系統(tǒng)優(yōu)化程序的算法,對溫度進行閉環(huán)控制,從而達到精確控溫的目的。
1 硬件系統(tǒng)設計
圖1為系統(tǒng)原理框圖,通過圖示可以看出,硬件系統(tǒng)分為:溫度采樣及放大、顯示、按鈕輸入、溫度控制四個部分。系統(tǒng)首先通過AD590采樣將溫度信號轉化為電壓信號,電壓信號經過放大通過80C196KB單片機對其進行A/D采樣,通過采樣的結果,可以算得控制系統(tǒng)的溫度并顯示出來,然后將實際溫度與設定的溫度(設定溫度可以通過輸入按鈕進行輸入)進行比較,根據比較的結果控制加熱電阻和風扇的占空比,從而達到閉環(huán)控溫的目的。
2 軟件系統(tǒng)設計
在軟件設計中,采用了多線程的編程結構并結合專家知識,對整個系統(tǒng)的控制性能進行改善。
2.1 多線程結構
多線程是指“同時”存在幾個執(zhí)行體,按幾條不同的執(zhí)行線索共同工作的情況。多線程實現(xiàn)單個進程中的并發(fā)計算,各線程間共享進程空間的數(shù)據,并利用這些共享單元來實現(xiàn)數(shù)據交換、實時通信與必要的同步操作。在單片機編程里面,多線程可以通過編寫中斷子程序進行實現(xiàn)。一個中斷子程里面可以包含優(yōu)先級不同的線程,優(yōu)先級高的排在該中斷子程的開始,優(yōu)先級最低的排在最后。執(zhí)行順序如下:屏蔽其他線程→讀系統(tǒng)共用資源→執(zhí)行操作→改寫系統(tǒng)共用資源→開放所有線程→返回主進程。
2.2 專家系統(tǒng)
在該系統(tǒng)中,加熱電阻的控制脈沖和風扇的控制脈沖是控制溫度關鍵,其脈寬的設置決定了系統(tǒng)溫度控制的精度和穩(wěn)定性,而脈寬的設置是由專家知識進行判定的。
2.2.1 專家系統(tǒng)概述
所謂專家系統(tǒng),是指具有專家知識,能夠像專家一樣解決特定領域復雜問題的計算機軟件系統(tǒng)。其特征如下:
(1)系統(tǒng)功能的針對性。ES通過犧牲通用問題求解能力而換得在某一狹窄領域高水平處理問題的能力。
(2)符號推理啟發(fā)性。ES主要處理不良結構問題,需運用多種啟發(fā)性經驗知識。這些啟發(fā)式知識往往具有不完全性和不確定性,因此ES常要采用不精確推理等非常規(guī)推理方法。
(3)透明性。ES可向用戶解釋其推理過程,并能回答一些關于它自身的問題。
(4)靈活性。由于ES知識庫采用了獨立于程序的外部顯式表示方法,用戶很容易對其進行修改或補充。
2.2.2 脈寬控制
從經驗可以知道,當實際溫度和目標相差(下面統(tǒng)一稱作△T)甚遠時,希望電阻發(fā)熱量大些或者風扇轉速高些;而△T較小時。希望電阻發(fā)熱量小些或者風扇轉速低些。
圖2為系統(tǒng)溫度控制電路圖,從圖中可以看出,脈寬越小,電阻的發(fā)熱量越大,風扇的轉速越高。至于控制的具體脈寬是多少,這就需要不斷的嘗試,通過經驗進行判斷,看哪些組合最適合。判斷的原則如下:保證系統(tǒng)控制的穩(wěn)定性;盡量不要出現(xiàn)超調的現(xiàn)象;保證溫度的控制精度。通過實驗,得到了如下數(shù)據的脈沖控制,見表1。
2.3 程序具體結構
在軟件系統(tǒng)中,一共有3個線程,按照優(yōu)先級從高到低的順序如下:溫度設置線程、溫度采樣線程、溫度顯示線程。另外系統(tǒng)有1個主進程。
2.3.1 主進程
主進程實現(xiàn)如下操作:設置各個中斷(及設置線程)、初始化全局變量以及等待中斷。它的流程圖如圖3所示。
2.3.2 溫度設置線程
該線程通過HIS上升沿觸發(fā)事件來實現(xiàn),其中HSI.0為溫度加10,H1S.1為溫度減10,HIS.2為OPTION取反,其流程圖如圖4所示。
2.3.3 溫度采樣線程
溫度采樣線程如圖5所示,該線程的掃描周期為3 000。在該線程中,對溫度的采集進行了平均化的處理,即每16次平均作為最終結果,這個處理降低了毛刺信號的影響,使得溫度采樣趨于穩(wěn)定,從而使溫度顯示變得比較穩(wěn)定,提高了系統(tǒng)的抗干擾能力。另外,在“設置HSO_ PWM和PWM_CONTROL”這一步中,采用了專家知識設置控制的脈寬,使得溫度的控制趨于更精確。
2.3.4 溫度顯示線程
溫度顯示線程圖6所示,該線程的掃描周期為1 000。在該線程中,單片機的P1.0~P1.3管腳輸出至74LS48譯碼器,而單片機的P1.4~P1.6管腳分別控制十位、個位、小數(shù)點三個數(shù)碼管的通與斷。每一個狀態(tài)中,數(shù)碼管只有一個被點亮,在足夠短的時間內,通過循環(huán)點亮三個數(shù)碼管,就可以得到數(shù)碼顯示的效果,這一步可以通過對狀態(tài)的循環(huán)移位來實現(xiàn)。
3 結語
由于一般控制理論難以對溫度這種大慣性、純延滯的非線性且參數(shù)不易確定的系統(tǒng)進行控制。為此以溫度控制為例,介紹了一類多線程溫度控制專家系統(tǒng),該系統(tǒng)具有調節(jié)時間短、超調量小、穩(wěn)態(tài)精度高的特點,能夠對溫度進行較為滿意的控制。