何良斌 王 健
(杭州電子科技大學電子信息學院,浙江 杭州 310018)
基于uCOS-II的PID溫度控制系統(tǒng)
何良斌 王 健
(杭州電子科技大學電子信息學院,浙江 杭州 310018)
文章提出了一種基于實時操作系統(tǒng)uCOS-II的PID溫度控制系統(tǒng)的實現(xiàn)方案。該方案以飛思卡爾16位單片機MC9S12XDG128為硬件平臺,結合uCOS-II的實時性、可靠性以及PID控制的非線性、時變性等優(yōu)點,通過實驗成功的實現(xiàn)了對溫度的精確控制。系統(tǒng)具有成本低、可移植性強、可靠性好、易擴展等優(yōu)點,可以適用一般的溫度控制場合。
實時操作系統(tǒng);PID控制;溫度控制
近年來,像化工、冶金、糧食儲存、酒類生產(chǎn)、電子設備等領域,溫度常常是表征對象和過程狀態(tài)的重要參數(shù)之一,因此,溫度控制系統(tǒng)具有廣泛的應用前景和實際意義。采用微控制器對系統(tǒng)進行控制具有控制方便、簡單、靈活性大等特點,然而采用傳統(tǒng)的前后系統(tǒng)當大部分算法和邏輯運算都集中在微控制器時,程序的規(guī)模將變得很大,在系統(tǒng)功能較復雜,尤其是系統(tǒng)中的并發(fā)模塊較多的情況下,就很難保證測量和控制的實時性;另外,像溫度這樣一個具有非線性、大滯后、大慣性、時變性、升溫單向性等特點的控制對象,很難用數(shù)學方法建立精確地數(shù)學模型,用傳統(tǒng)的控制理論和方法很難達到好的控制效果。因此,本文設計了一種基于實時操作系統(tǒng)uCOS-II的PID溫度控制系統(tǒng),采用飛思卡爾的16位單片機MC9S12XDG128為微控制器,能夠滿足實時性好、精確度高、穩(wěn)定性好等要求的溫度控制場合。
整個系統(tǒng)由三部分組成:硬件層、操作系統(tǒng)層和應用軟件層。MCU通過采樣電路實時采集溫度等現(xiàn)場數(shù)據(jù),并進行數(shù)據(jù)處理和運算,得到輸出控制信號,輸出適當寬度的 PWM脈沖信號,經(jīng)驅動放大后,實時控制加熱棒。整個系統(tǒng)的運行如信號采集、輸出脈沖、溫度報警、與上位機通信等都由操作系統(tǒng)調(diào)度,它是整個系統(tǒng)中上層控制和下層硬件系統(tǒng)的連接紐帶。
硬件電路框圖如圖1所示??刂坪诵臑镸C9S12XDG128,該MCU具有豐富的片內(nèi)資源:128KB的Flash,8路10位ADC,3個CAN協(xié)議控制器,8個可編程PWM通道,2個串行異步通信接口,2個同步串行外設接口SPI,一個I2C總線接口等,正因為有這么豐富的資源從而可以很容易進行功能擴展。同時,它具有很強的邏輯控制功能,完全可以取代信號處理和邏輯運算等硬件電路,這樣一方面大大減少了外部硬件電路受干擾的可能,提高抗干擾性,另一方面只需改變程序就能改變算法,提高了控制能力。
系統(tǒng)控制的好壞關鍵在AD的轉換精度,本文采用具有高精度、低噪聲的24位模數(shù)轉換器AD7190。MCU通過同步串行口SPI與AD7190通信,將轉換的數(shù)字化電壓值傳入微控制器,進行后續(xù)計算得到相應的溫度值。重要的是AD7190具有零延遲的特性,可以很好的實現(xiàn)實時性。
在溫度檢測裝置中采用鉑熱電阻Pt100,它具有其他任何溫度傳感器無法比擬的優(yōu)勢,包括高精度、穩(wěn)定性好、抗干擾能力強等,因而被廣泛用于中溫(-200~650℃)范圍的溫度測量中。由于鉑電阻的電阻值與溫度成非線性關系,所以需要進行非線性校正。本文采用微處理器數(shù)字化校正,將Pt電阻的電阻值和溫度對應起來后存入EEPROM中,根據(jù)電路中實測的AD值以查表方式計算相應溫度值。
整個硬件工作流程如下:首先將 Pt100采到的對應電壓值,經(jīng)過AD轉換后,將數(shù)字量傳給MCU,MCU根據(jù)數(shù)字量查表得到相應的溫度值,PID控制器根據(jù)溫度值與目標值之間的關系得到相應 PWM的輸出占空比,控制加熱棒,達到控制溫度目的,并在8位LED上顯示目標溫度和實際溫度,當實際溫度達到報警溫度時,就會產(chǎn)生報警以便人工及時處理情況。其中可以通過鍵盤或者PC設置目標溫度值和報警溫度值,還可以通過通信接口與PC機或其他系統(tǒng)進行通信。
圖1 硬件電路框圖
1.uCOS-II實時操作系統(tǒng)
傳統(tǒng)以單片機為核心的測控系統(tǒng),其程序一般采用前后臺的方式編寫。后臺運行一個大的無限循環(huán),循環(huán)中調(diào)用相應的函數(shù)完成相應的操作;前臺為多個中斷,處理異步事件。這種傳統(tǒng)的單片機開發(fā)工作中經(jīng)常遇到程序跑飛或是陷入死循環(huán),前者可以用看門狗解決,但對于死循環(huán),尤其是其中牽扯到復雜數(shù)學計算的話,只有設置斷點,耗費大量時間來慢慢分析。也因為無法確定發(fā)生中斷時程序到底執(zhí)行到了什么地方,從而無法判斷要經(jīng)過多長時間數(shù)據(jù)處理程序才會執(zhí)行,中斷響應時間無法確定,使得系統(tǒng)的實時性不強。
uCOS-II是由Labrosse先生編寫的一個源碼公開、可移植、可固化、可裁剪、占先式實時多任務操作系統(tǒng)。雖然uCOS-II會占據(jù)一定的空間,但目前的單片機空間已經(jīng)足夠,而且其利遠大于弊?;?uCOS-II的應用程序編寫就變得比較簡單,將系統(tǒng)功能劃分為一個個任務,每個任務相對獨立,可以定義多達64個任務,足夠一般系統(tǒng)使用。任務之間以及任務與中斷服務程序之間可以調(diào)用信號量、消息郵箱、消息隊列、延時等系統(tǒng)服務來實現(xiàn)彼此通信和同步。這一切有操作系統(tǒng)統(tǒng)一調(diào)度,分配資源,協(xié)調(diào)各個任務的運行。當某一個任務出現(xiàn)問題也不會導致整個系統(tǒng)癱瘓,從而提高了系統(tǒng)的可靠性。同時,使系統(tǒng)更加容易更新以及擴展新的功能,提高了系統(tǒng)的開放性和開發(fā)效率。
2.PID控制算法
在工程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制,簡稱PID控制器,亦稱PID調(diào)節(jié)器。它以其結構簡單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術之一。它就是根據(jù)系統(tǒng)的誤差,利用比例、積分、微分計算出控制量進行控制的,三個校正環(huán)節(jié)的作用各不相同。目前有三種應用比較廣泛的 PID控制算法,分別是增量式算法、位置式算法、微分先行。模擬 PID控制器的原理框圖如圖2所示,其中r(t)為系統(tǒng)給定值,c(t)為實際輸出,u(t)為控制量。其控制表達式如下:
式中e(t)=r(t)-c(t)為系統(tǒng)偏差,Kp為比例系數(shù),Ti為積分時間常數(shù),Td為微分時間常數(shù)。
圖2 模擬控制器原理框圖
計算機控制是一種采樣控制,它只能根據(jù)采樣時刻的偏差值計算空置量,所以在數(shù)字系統(tǒng)中 PID算法只能數(shù)值逼近的方法實現(xiàn),用求和代替積分,用差分代替微分,得到數(shù)字PID控制器的控制表示式如下:
式中e(k)=r(k)-c(k),Ki=Kp*T/Ti,Kd=Kp*Td/T,其中T為控制周期。從而可以推出增量式PID的控制表達式為:
u(k) =u(k? 1 )+ Δu(k),這兩個式子就為本系統(tǒng)所采用的增量式PID控制器的數(shù)學模型。
確定好PID控制的結構以后,需要進行PID控制器的參數(shù)整定,PID參數(shù)整定有多種方法,本文采用的是臨界比例法。首先,預選擇一個足夠短的采樣周期;其次,僅加入比例控制環(huán)節(jié),直到系統(tǒng)對輸入的階躍響應出現(xiàn)臨界振蕩,記下比例放大系數(shù)Kr和臨界振蕩周期Tr;最后,在一定的控制度下通過公式計算得到 PID控制器的參數(shù):Kp=0.63*Kr,Ti=0.49*Tr,Td=0.14*Tr。
3.軟件實現(xiàn)
系統(tǒng)的軟件結構框圖如圖3所示。uCOS-II實時操作系統(tǒng)負責協(xié)調(diào)和調(diào)度各個任務??偸鼓苋蝿肇撠熎渌蝿盏墓ぷ髋c否,采集任務負責采集溫度值,控制任務負責控制加熱棒,顯示任務負責顯示溫度值,鍵盤任務負責設置目標溫度值,通信任務負責與PC之間的通信。
圖3 軟件結構框圖
(1)總使能任務
控制其他任務的工作與否,這樣既便于擴展功能,也利于對系統(tǒng)裁剪、可移植性好。
(2)采集任務
該任務主要用于采集溫度值。首先查看總使能是否有效,若有效則通過SPI接口讀取AD7190的數(shù)據(jù),然后將數(shù)據(jù)轉化為溫度值,進行平均濾波,最后將數(shù)據(jù)放入消息隊列,供控制任務使用,其任務流程圖如圖4所示。
(3)控制任務
該任務是系統(tǒng)的核心,主要控制加熱棒。查看總使能是否有效,若有效則從消息隊列中取出數(shù)據(jù),對數(shù)據(jù)進行 PID計算得到PWM占空比,輸出PWM波,從而控制加熱棒。其任務流程圖如圖5所示。
圖4 采集任務流程圖
圖5 控制任務流程圖
(4)通信任務
該任務一方面向PC機實時發(fā)送各類數(shù)據(jù),包括溫度值、PWM占空比、目標值等;另一方面PC機可以向系統(tǒng)發(fā)送各類命令,包括設置目標值、啟動還是停止等,從而達到控制的作用,使整個系統(tǒng)更加人性化。而其中的 CAN通信可以使系統(tǒng)與其他系統(tǒng)進行通信。
4.實驗結果與結論
該系統(tǒng)在色譜分析儀上已成功實現(xiàn)溫度控制,其溫度控制范圍50~250℃,圖6、7是其中二個實驗結果曲線圖。圖6為被外界干擾下使溫度失衡,但系統(tǒng)通過PID調(diào)控制很快將溫度控制在100℃±0.2℃,并符合系統(tǒng)的精度要求。圖7為正常升溫過程,當達到目標溫度時會過沖,但通過 PID控制很快就將溫度控制在180℃±0.2℃。
圖6 100℃溫控實驗曲線
圖7 180℃溫控實驗曲線圖
從實驗結果可以看出,本文基于uCOS-II的PID溫度控制,結合uCOS-II和PID各自的優(yōu)點,達到了很好的控制效果。另外,該系統(tǒng)具有實時性好、系統(tǒng)穩(wěn)定、易移植、易擴展等優(yōu)點,從而可以應用在各個中溫控制場合,具有廣泛的應用前景。
[1] Jean J.Labrosse著.嵌入式實時操作系統(tǒng)uC/OS-II(2版)[M].邵貝貝譯.北京:航空航天大學出版社,2003(5): 34-316.
[2] 王宜懷,劉曉升.嵌入式系統(tǒng)—使用 HC12微控制器的設計與應用[M].北京:航空航天大學出版社,2008(3).
[3] 周立功.ARM與嵌入式系統(tǒng)基礎教程[M].廣州周立功單片機發(fā)展公司,2004.
[4] 馬忠梅.單片機的 C語言應用程序設計[M].北京:北京航空航天大學出版社,1999.
[5] Robert Richards.Designing RTOS for Embedded Microcontrollers,Embedded systems Programming[M].May 1997.
TP302
A
1008-1151(2011)05-0037-02
2011-02-17
何良斌(1987-),男,浙江麗水人,杭州電子科技大學電子信息學院在讀研究生,研究方向嵌入式系統(tǒng)。