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