何良斌 王 健
(杭州電子科技大學電子信息學院,浙江 杭州 310018)
基于uCOS-II的PID溫度控制系統
何良斌 王 健
(杭州電子科技大學電子信息學院,浙江 杭州 310018)
文章提出了一種基于實時操作系統uCOS-II的PID溫度控制系統的實現方案。該方案以飛思卡爾16位單片機MC9S12XDG128為硬件平臺,結合uCOS-II的實時性、可靠性以及PID控制的非線性、時變性等優點,通過實驗成功的實現了對溫度的精確控制。系統具有成本低、可移植性強、可靠性好、易擴展等優點,可以適用一般的溫度控制場合。
實時操作系統;PID控制;溫度控制
近年來,像化工、冶金、糧食儲存、酒類生產、電子設備等領域,溫度常常是表征對象和過程狀態的重要參數之一,因此,溫度控制系統具有廣泛的應用前景和實際意義。采用微控制器對系統進行控制具有控制方便、簡單、靈活性大等特點,然而采用傳統的前后系統當大部分算法和邏輯運算都集中在微控制器時,程序的規模將變得很大,在系統功能較復雜,尤其是系統中的并發模塊較多的情況下,就很難保證測量和控制的實時性;另外,像溫度這樣一個具有非線性、大滯后、大慣性、時變性、升溫單向性等特點的控制對象,很難用數學方法建立精確地數學模型,用傳統的控制理論和方法很難達到好的控制效果。因此,本文設計了一種基于實時操作系統uCOS-II的PID溫度控制系統,采用飛思卡爾的16位單片機MC9S12XDG128為微控制器,能夠滿足實時性好、精確度高、穩定性好等要求的溫度控制場合。
整個系統由三部分組成:硬件層、操作系統層和應用軟件層。MCU通過采樣電路實時采集溫度等現場數據,并進行數據處理和運算,得到輸出控制信號,輸出適當寬度的 PWM脈沖信號,經驅動放大后,實時控制加熱棒。整個系統的運行如信號采集、輸出脈沖、溫度報警、與上位機通信等都由操作系統調度,它是整個系統中上層控制和下層硬件系統的連接紐帶。
硬件電路框圖如圖1所示??刂坪诵臑镸C9S12XDG128,該MCU具有豐富的片內資源:128KB的Flash,8路10位ADC,3個CAN協議控制器,8個可編程PWM通道,2個串行異步通信接口,2個同步串行外設接口SPI,一個I2C總線接口等,正因為有這么豐富的資源從而可以很容易進行功能擴展。同時,它具有很強的邏輯控制功能,完全可以取代信號處理和邏輯運算等硬件電路,這樣一方面大大減少了外部硬件電路受干擾的可能,提高抗干擾性,另一方面只需改變程序就能改變算法,提高了控制能力。
系統控制的好壞關鍵在AD的轉換精度,本文采用具有高精度、低噪聲的24位模數轉換器AD7190。MCU通過同步串行口SPI與AD7190通信,將轉換的數字化電壓值傳入微控制器,進行后續計算得到相應的溫度值。重要的是AD7190具有零延遲的特性,可以很好的實現實時性。
在溫度檢測裝置中采用鉑熱電阻Pt100,它具有其他任何溫度傳感器無法比擬的優勢,包括高精度、穩定性好、抗干擾能力強等,因而被廣泛用于中溫(-200~650℃)范圍的溫度測量中。由于鉑電阻的電阻值與溫度成非線性關系,所以需要進行非線性校正。本文采用微處理器數字化校正,將Pt電阻的電阻值和溫度對應起來后存入EEPROM中,根據電路中實測的AD值以查表方式計算相應溫度值。
整個硬件工作流程如下:首先將 Pt100采到的對應電壓值,經過AD轉換后,將數字量傳給MCU,MCU根據數字量查表得到相應的溫度值,PID控制器根據溫度值與目標值之間的關系得到相應 PWM的輸出占空比,控制加熱棒,達到控制溫度目的,并在8位LED上顯示目標溫度和實際溫度,當實際溫度達到報警溫度時,就會產生報警以便人工及時處理情況。其中可以通過鍵盤或者PC設置目標溫度值和報警溫度值,還可以通過通信接口與PC機或其他系統進行通信。

圖1 硬件電路框圖
1.uCOS-II實時操作系統
傳統以單片機為核心的測控系統,其程序一般采用前后臺的方式編寫。后臺運行一個大的無限循環,循環中調用相應的函數完成相應的操作;前臺為多個中斷,處理異步事件。這種傳統的單片機開發工作中經常遇到程序跑飛或是陷入死循環,前者可以用看門狗解決,但對于死循環,尤其是其中牽扯到復雜數學計算的話,只有設置斷點,耗費大量時間來慢慢分析。也因為無法確定發生中斷時程序到底執行到了什么地方,從而無法判斷要經過多長時間數據處理程序才會執行,中斷響應時間無法確定,使得系統的實時性不強。
uCOS-II是由Labrosse先生編寫的一個源碼公開、可移植、可固化、可裁剪、占先式實時多任務操作系統。雖然uCOS-II會占據一定的空間,但目前的單片機空間已經足夠,而且其利遠大于弊?;?uCOS-II的應用程序編寫就變得比較簡單,將系統功能劃分為一個個任務,每個任務相對獨立,可以定義多達64個任務,足夠一般系統使用。任務之間以及任務與中斷服務程序之間可以調用信號量、消息郵箱、消息隊列、延時等系統服務來實現彼此通信和同步。這一切有操作系統統一調度,分配資源,協調各個任務的運行。當某一個任務出現問題也不會導致整個系統癱瘓,從而提高了系統的可靠性。同時,使系統更加容易更新以及擴展新的功能,提高了系統的開放性和開發效率。
2.PID控制算法
在工程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制,簡稱PID控制器,亦稱PID調節器。它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。它就是根據系統的誤差,利用比例、積分、微分計算出控制量進行控制的,三個校正環節的作用各不相同。目前有三種應用比較廣泛的 PID控制算法,分別是增量式算法、位置式算法、微分先行。模擬 PID控制器的原理框圖如圖2所示,其中r(t)為系統給定值,c(t)為實際輸出,u(t)為控制量。其控制表達式如下:

式中e(t)=r(t)-c(t)為系統偏差,Kp為比例系數,Ti為積分時間常數,Td為微分時間常數。

圖2 模擬控制器原理框圖
計算機控制是一種采樣控制,它只能根據采樣時刻的偏差值計算空置量,所以在數字系統中 PID算法只能數值逼近的方法實現,用求和代替積分,用差分代替微分,得到數字PID控制器的控制表示式如下:

式中e(k)=r(k)-c(k),Ki=Kp*T/Ti,Kd=Kp*Td/T,其中T為控制周期。從而可以推出增量式PID的控制表達式為:

u(k) =u(k? 1 )+ Δu(k),這兩個式子就為本系統所采用的增量式PID控制器的數學模型。
確定好PID控制的結構以后,需要進行PID控制器的參數整定,PID參數整定有多種方法,本文采用的是臨界比例法。首先,預選擇一個足夠短的采樣周期;其次,僅加入比例控制環節,直到系統對輸入的階躍響應出現臨界振蕩,記下比例放大系數Kr和臨界振蕩周期Tr;最后,在一定的控制度下通過公式計算得到 PID控制器的參數:Kp=0.63*Kr,Ti=0.49*Tr,Td=0.14*Tr。
3.軟件實現
系統的軟件結構框圖如圖3所示。uCOS-II實時操作系統負責協調和調度各個任務??偸鼓苋蝿肇撠熎渌蝿盏墓ぷ髋c否,采集任務負責采集溫度值,控制任務負責控制加熱棒,顯示任務負責顯示溫度值,鍵盤任務負責設置目標溫度值,通信任務負責與PC之間的通信。

圖3 軟件結構框圖
(1)總使能任務
控制其他任務的工作與否,這樣既便于擴展功能,也利于對系統裁剪、可移植性好。
(2)采集任務
該任務主要用于采集溫度值。首先查看總使能是否有效,若有效則通過SPI接口讀取AD7190的數據,然后將數據轉化為溫度值,進行平均濾波,最后將數據放入消息隊列,供控制任務使用,其任務流程圖如圖4所示。
(3)控制任務
該任務是系統的核心,主要控制加熱棒。查看總使能是否有效,若有效則從消息隊列中取出數據,對數據進行 PID計算得到PWM占空比,輸出PWM波,從而控制加熱棒。其任務流程圖如圖5所示。

圖4 采集任務流程圖

圖5 控制任務流程圖
(4)通信任務
該任務一方面向PC機實時發送各類數據,包括溫度值、PWM占空比、目標值等;另一方面PC機可以向系統發送各類命令,包括設置目標值、啟動還是停止等,從而達到控制的作用,使整個系統更加人性化。而其中的 CAN通信可以使系統與其他系統進行通信。
4.實驗結果與結論
該系統在色譜分析儀上已成功實現溫度控制,其溫度控制范圍50~250℃,圖6、7是其中二個實驗結果曲線圖。圖6為被外界干擾下使溫度失衡,但系統通過PID調控制很快將溫度控制在100℃±0.2℃,并符合系統的精度要求。圖7為正常升溫過程,當達到目標溫度時會過沖,但通過 PID控制很快就將溫度控制在180℃±0.2℃。

圖6 100℃溫控實驗曲線

圖7 180℃溫控實驗曲線圖
從實驗結果可以看出,本文基于uCOS-II的PID溫度控制,結合uCOS-II和PID各自的優點,達到了很好的控制效果。另外,該系統具有實時性好、系統穩定、易移植、易擴展等優點,從而可以應用在各個中溫控制場合,具有廣泛的應用前景。
[1] Jean J.Labrosse著.嵌入式實時操作系統uC/OS-II(2版)[M].邵貝貝譯.北京:航空航天大學出版社,2003(5): 34-316.
[2] 王宜懷,劉曉升.嵌入式系統—使用 HC12微控制器的設計與應用[M].北京:航空航天大學出版社,2008(3).
[3] 周立功.ARM與嵌入式系統基礎教程[M].廣州周立功單片機發展公司,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-),男,浙江麗水人,杭州電子科技大學電子信息學院在讀研究生,研究方向嵌入式系統。