譚寶昌,張 震,楊連發,覃佳能,陳隆鴻
(桂林電子科技大學機電工程學院,廣西桂林 541004)
在醫療手術及康復過程中,患者常常會因為核心溫度降低而出現低體溫的現象,此現象對手術及術后康復極為不利,會直接影響手術成敗及術后恢復的效果[1]。因此,使用輔助保溫裝置,對手術及術后康復過程中的人體表面溫度(簡稱體表溫度)進行控制,已成為最常用的保溫措施之一。
在人體表面溫度控制系統的軟件實現方法上,人們開展了一些研究。例如廣西大學的韋文代提出了基于九點控制器算法的溫度控制系統[2],該系統的軟件是基于C8051單片機的SmallRTOS實時操作系統的;桂林電子科技大學的張苗苗提出的基于單片機的PID算法等[3]。由于人體表面溫度的控制具有實時性、交互性等特點,需要實現智能控制,采用一般的軟件實現方法,已經不能滿足設計的要求。
Linux嵌入式操作系統,是一款成熟而穩定的操作系統,可以在此系統的基礎上,實現多種軟件控制與開發,并能對多種硬件結構的驅動進行移植,制定特定的軟件實現方案;具有容易修改和系統優化、支持網絡、適合多種CPU等特點。本文闡述采用ARM9 Linux實現人體表面溫度控制系統的軟件方法。
本系統是以ARM9 Linux嵌入式操作系統,作為軟件控制平臺,以人體體表溫度為控制源,以氣體的溫度和流量為控制量,結合人體熱調節理論,共同完成對體表溫度的控制[4]。
該軟件系統主要包括:多點控制源的溫度采樣與控制、液晶顯示、故障檢測及報警、氣體溫度采樣、氣體溫度控制和氣體流量控制等模塊,其控制系統結構如圖1所示。其中,多點溫度采集的是身體各部位的體表溫度,采集后將這些數據通過控制平臺存儲到存儲器內;顯示模塊用于顯示采集到的體表溫度、氣體溫度和實時核心溫度,并根據采集到的溫度信號繪制其隨時間的變化曲線;控制模塊主要包括電源開關、參數設置、狀態選擇、數據輸入等;故障檢測及報警模塊在系統開機時,進行軟硬件復位檢測,同時記錄系統運行過程中相對應的狀態值,并對其進行分析,若其為故障數值,則進行報警;氣體溫度控制和氣流控制模塊,是由Linux嵌入式核心平臺直接控制,由增量式PID控制算法所得到的控制量決定,控制量由采集的體表溫度和控制源的核心溫度決定。
圖1 控制系統結構圖
本軟件系統將實現人體核心溫度的實時性和智能化控制,但由于以往的軟件系統的不確定性和滯后性,不能滿足大存儲、高精度、在線升級等智能化要求。然而,Linux是一款成熟而穩定的操作系統,其源代碼是完全對外開放的,可以根據用戶需求量身定制系統,尤其在本軟件系統中,能夠實現實時性和智能化控制要求。
Linux內核版本更新速度非???,本系統采用比較新的Linux2.6.28版本。在移植系統前,要先將Bootloader啟動程序固化在NOR Flash上,再用DNW軟件下載硬件測試程序,測試整個系統的硬件,確保硬件系統的正常。系統移植主要包括移植引導程序、編譯內核和構建根文件系統共3個部分[5]。引導程序在系統上電的時候開始執行,初始化硬件設備,然后調用Linux系統內核。
系統移植主要分為以下步驟進行:
(1)在 PC機上安裝 gcc、binutils、glibc和 vivi等軟件以及ARM內核相應的BSP;
(2)按照系統開發的需要添加相應的接口驅動程序;
(3)通過編譯得到相應的Linux系統映像文件;
(4)下載Linux系統映像到ARM控制系統的NAND Flash中;
(5)固化系統的bootloader。
系統通過人體表面溫度,來間接實現人體核心溫度的實時監控,其應該具備以下功能:友好的可視化操作界面、精確的溫度檢測和控制、多方位的智能化控制等。本文結合Linux嵌入式操作系統,設計出比較智能的硬件結構,并實現了系統各個模塊的功能:人體各部位溫度的實時顯示、氣體溫度顯示、核心溫度顯示,通過鍵盤或者觸摸屏設置核心參考溫度、系統的開始和結束。
圖2 軟件結構框圖
軟件系統的主要任務是:溫度信號采樣、鍵盤讀取、觸摸式LCD顯示、PID控制算法實現、氣體溫度控制等,軟件結構框圖如圖2所示[2]。
溫度信號采樣,主要結合濾波法和均值法采樣人體表面溫度和氣體溫度;
鍵盤讀取,通過行列掃描法對外接的鍵盤進行掃描;
觸摸式LCD顯示,是結合四線電阻式觸摸板和LCD圖形顯示,并能將觸摸位置與圖像位置形結合,共同實現觸摸式顯示;
PID控制算法實現,是將采集到的溫度信號送入增量式PID控制器,經過運算得出控制量;
氣體溫度控制,由增量式PID得出的控制量間接控制電熱絲的通斷時間,達到控制氣體的目的。
系統各任務的優先級從高到底的順序為:溫度信號采樣、增量式PID算法實現、鍵盤掃描和觸摸屏掃描、控制氣溫、液晶顯示。各任務的優先級順序不能調換,系統嚴格按照各任務的優先級執行各任務。
溫度信號的采樣,是通過ARM9 S3C2440A處理器自帶的A/D模塊來實現的,ARM9本身集成一個10位COMS逐次逼近型的模數轉換器,ARM9 S3C2440A處理器最高工作頻率可達400MHz,保證了其模數轉換器的轉換速度。在該控制系統中,為了準確地采集溫度,采用采集10次/s溫度信號的方法。在數據處理方面,結合中值濾波法和平均濾波法,通過對10次數據的存儲,去掉最大值和最小值,然后對剩下的值取平均值,便可得到當前實際溫度值[2],然后,將其送往LCD控制器進行顯示。溫度信號采樣流程圖如圖3所示。
溫度信號采樣,在整個系統中非常重要,關系到整個系統能否正常工作、能否精確控制人體核心溫度。所以將溫度信號采樣這個任務的優先級,設為最高級,即采集溫度信號后,才執行系統的其他任務。溫度信號采樣完畢后,將采集的溫度以消息隊列的形式,存儲起來,并與其他任務實現數據共享。
PID控制算法的實現,是整個控制系統的核心部分,本系統采用單獨的任務進行控制。要快速地穩定人體的核心溫度,除了保證硬件的控制精度外,更多的是選用一種比較好的控制算法。PID控制算法是連續控制系統中技術成熟、應用最為廣泛的控制算法[6]。在本系統中,采用增量式PID算法。首先將傳感器采集的溫度數值,與設定的核心溫度數值進行比較,把比較得到的差值信號,經過一定的規律計算后,得到相應的控制值,并將其送往PID控制器,控制氣體溫度和流量,進而借助恒溫氣體與人體表面進行的熱能交換,來間接達到穩定人體核心溫度的目的。增量式PID的算法如下[7]:
式中,
Kp為比例系數;
T為采樣周期;
e(n),e(n-1),e(n-12)分別為當前時刻、前一時刻、再前一時刻的實時采樣溫度值與設定核心溫度值的差值;
Ti為積分時間常數;
Td為微分時間常數。
增量式PID的優點,在于只要保持前3個時刻的差值,輸出控制量的初始設定值不必很準確,便可以很快進入穩定狀態。
增量式PID算法流程圖圖4所示。增量式PID控制算法較為簡單,能用簡單的數學運算算出氣體溫度的增量控制量。因為PID控制算法是整個系統的核心控制部分,由其得出的控制量,間接影響到氣體溫度,關系著整個系統的控制精度,所以將其優先級設定為次高級,僅次于溫度信號采樣。
圖3 溫度信號采樣流程圖
圖4 增量式PID算法流程圖
控制氣體溫度,是整個系統的執行部分,為了達到實時控制的目的,將控制氣體溫度任務的優先級,設定在溫度信號采樣、觸摸屏讀取和鍵盤掃描任務之后。首先采集溫度信號,然后通過ARM控制單元的PID控制器得到氣體溫度的控制量,將控制量送入ARM自帶的PWM計數器中,從而得到相應的占空比,然后控制晶體管的導通時間,進而改變電加熱絲的功率,實現對氣體溫度的控制。其控制流程圖如圖5所示。
由于氣體具有流動性,對氣體溫度信號的采集和對電熱絲的控制,顯得尤為重要。ARM9 S3C2440A處理器自帶的A/D是10位的,保證了氣溫信號采樣的精度;在采樣后的數據處理方面,結合了中值濾波法和平均濾波法,保證了采樣氣溫信號的準確性;采樣的氣溫信號,經過PID控制器的處理,能快速調整PWM占空比,間接控制電熱絲的加熱,使控制的氣溫快速趨于穩定。
本系統選用的是帶觸摸屏的TFT真彩LCD作為顯示部件。在Linux操作系統的基礎上,設計出友好的顯示界面、溫度曲線繪制界面、控制界面或控制按鈕。
Linux嵌入式操作系統控制平臺集成了LCD控制器。LCD控制器的主要功能用于傳輸、顯示數據和產生控制信號。系統每次在執行任務時,都往LCD控制器發生顯示所需的數據和命令。液晶在系統的每個運行周期都對液晶進行刷新,通過對觸摸屏的掃描,來顯示參數或者改變顯示的畫面。
觸摸屏的設計,是該系統人機交互的重要環節。在整個控制系統中,根據用戶需要,可以通過觸摸屏設置控制溫度。ARM采用中斷方式,對觸摸屏的坐標進行讀取。當觸摸屏有外力作用時,CPU產生中斷,系統便進入坐標讀取任務。觸摸屏坐標讀取的流程圖如圖6所示[8]。為了保證讀取坐標的準確性,系統每獲取一次坐標的過程中,實際上分別對X坐標和Y坐標進行10次讀取,然后結合中值濾波法和平均濾波法,通過對讀取數據的存儲,去掉最大值和最小值,剩下的數據取其平均值,便得到當前實際的坐標值。
圖5 氣溫控制流程圖
圖6 觸摸屏坐標讀取流程
本文在ARM Linux嵌入式操作系統的基礎上,研究了人體表面溫度控制系統的軟件實現方法。該方法不僅能保證人體表面溫度的實時控制,而且方便維護和升級,具有一定的實用意義,特別是在手術及術后康復過程中,通過調節吹拂到人體表面氣體的溫度及流速,達到穩定人體核心溫度的目的。
[1]王海蓮,朱水蓮,樊彩玲.術中體核溫度監測[J].護理研究,2002,16(8):478.
[2]韋文代.基于九點控制器算法的溫度控制系統開發[J].微計算機信息,2008,24(7):29-30.
[3]張苗苗.智能型醫用充氣式保溫毯的結構設計及實驗[D].桂林:桂林電子科技大學,2010.
[4]袁修干.人體熱調節系統的數學模型[M].北京:北京航空航天出版社,2005.
[5]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2009.
[6]嚴曉照,張興國.增量式PID控制在溫控系統中的應用[J].南通大學學報,2006,5(4):48-51.
[7]姚 剛,蘇國璋,楊書艷,等.增量式PID算法在控制濾池恒水位運行中的應用[J].供水技術,2010,4(1):35-37.
[8]李培棟,郭 勇,謝興紅.基于ARM的醫用數據采集系統的人機接口設計[J].創特器件應用,2010,12(3):33-35.