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