王音心,王 露,李 軍,曾祥豹,李小飛,劉 暢,袁宇鵬
(1.中電科技集團重慶聲光電有限公司,重慶 401332;2.中國電子科技集團公司第二十六研究所,重慶 400060)
研究表明,顱內(nèi)壓增高與顱腦多種重大疾病直接相關(guān),包括腦移位、腦腫瘤等;同時顱內(nèi)溫度對腦損傷病變范圍和發(fā)展趨勢也具有重要影響[1]。因此,及時準確地監(jiān)測顱內(nèi)壓力和溫度參數(shù),能夠合理準確地對病情進行診斷,提高手術(shù)治療的安全性和成功率,降低致死率和致殘率,在臨床醫(yī)學上具有重要意義[2]。目前臨床常用的顱內(nèi)監(jiān)護系統(tǒng)有法國Sophysa公司的Pressio監(jiān)護系統(tǒng)、美國強生公司的Codman顱內(nèi)壓監(jiān)護儀等,這些監(jiān)護儀探頭價格較貴,阻礙了顱內(nèi)壓測量在臨床神經(jīng)外科監(jiān)護上的大范圍使用[1]。本文采用低成本、高靈敏度的負溫度系數(shù)熱敏電阻作為測量顱內(nèi)溫度的傳感器元件;小體積、高精度、高靈敏度的硅壓阻式壓力傳感器作為測量顱內(nèi)壓的敏感元器件[3]。由于負溫度系數(shù)熱敏電阻線性度較低,硅壓阻式壓力傳感器普遍具有一致性差、非線性和溫度漂移等問題,使用前需要對溫度和壓力傳感器進行校準和補償[4]。
本文基于負溫度系數(shù)熱敏電阻和壓阻式傳感器的特性,在軟件上設(shè)計了數(shù)據(jù)補償和校準算法,并在自主研發(fā)的顱內(nèi)溫度與壓力監(jiān)測系統(tǒng)中進行實驗,實現(xiàn)了顱內(nèi)溫度與壓力參數(shù)的數(shù)據(jù)校準和補償功能。
顱內(nèi)溫度與壓力監(jiān)測系統(tǒng)采用STM32F407VG單片機作為主控制器。系統(tǒng)首先完成自檢、任務(wù)管理機制和探條檢測,然后對溫度傳感器和壓力傳感器采集的數(shù)據(jù)進行處理與分析,最后對所得到的結(jié)果進行存儲、顯示和傳輸。算法工作流程如圖1所示。
圖1 算法流程圖
圖1顯示了溫度傳感器和壓力傳感器的數(shù)據(jù)處理過程。溫度傳感器首先對采樣數(shù)據(jù)進行標度轉(zhuǎn)換,然后對其進行中位值平均濾波法,再根據(jù)采樣電路圖計算得到熱敏電阻值,通過電阻-溫度(R-T)查表得出當前的溫度值,最后對其進行測試并加入零偏補償。
壓力傳感器是對采樣數(shù)據(jù)進行電壓轉(zhuǎn)換,再進行低通濾波,一定程度減小了高頻噪聲,然后分別采用中位值平均濾波和滑動平均濾波去除白噪聲[5]。最后對壓力傳感器進行溫度補償,結(jié)合當前溫度將電壓轉(zhuǎn)換為實際壓力。
溫度傳感器常用的電阻半導體有熱敏電阻和金屬熱電阻,其中半導體熱敏電阻測溫靈敏度高,熱惰性小及成本低;金屬熱電阻線性度好,測量范圍廣,成本相對較高[6]。考慮到顱內(nèi)壓溫度測量范圍為20~45 ℃,且要求高靈敏度,并節(jié)約探頭成本,因此,采用負溫度系數(shù)熱敏電阻作為溫度傳感器,然后采用濾波算法和插值法減少測量誤差。
在溫度傳感器和壓力傳感器中都有采用該濾波算法,其主要方法是連續(xù)采樣N個數(shù)據(jù),去掉一個最大值和一個最小值,然后計算N-2個數(shù)據(jù)的算術(shù)平均值。目的是消除由于脈沖干擾所引起的采樣值偏差。
在溫度算法中,傳感器的采樣率是10 Hz,設(shè)置濾波采樣數(shù)據(jù)N=10,最后輸出頻率為1 Hz。
圖2為溫度傳感器采樣電路,采用電阻分壓的方式進行。傳感器輸入電壓VDD=3.3 V,高精度低溫漂固定電阻R=100 kΩ,通過數(shù)模轉(zhuǎn)換器 (DAC)采樣得到當前負溫度系數(shù)熱敏電阻(NTC)電阻電壓,從而計算獲得NTC電阻值。
圖2 溫度傳感器采樣電路
(1)
式中:VNTC為熱敏電阻電壓,即溫度傳感器傳入的電壓;RNTC為所求電阻。
熱敏電阻的R-T表提供了間隔為0.2 ℃的溫度與電阻值的對應(yīng)關(guān)系,而臨床上對顱內(nèi)溫度要求監(jiān)測的精度為-0.1~+0.1 ℃。R-T表的熱敏電阻與溫度值對應(yīng)關(guān)系如圖3所示。
圖3 熱敏電阻與溫度的關(guān)系曲線
由圖3可知,在溫度范圍較大時熱敏電阻與溫度呈非線性關(guān)系;而在溫度范圍較小時,熱敏電阻與溫度基本呈線性關(guān)系。
因此,這里采用插值法,利用小間隔溫度區(qū)間的電阻和溫度值求取該溫度區(qū)間內(nèi)對應(yīng)的斜率系數(shù)和零偏,得到當前溫度范圍的R-T線性關(guān)系。
首先根據(jù)當前熱敏電阻值在R-T表進行二分查找,找到表上距離最近的前、后電阻值R1、R2,以及對應(yīng)的溫度值T1、T2。然后求得該段區(qū)間內(nèi)電阻和溫度的一次函數(shù)曲線的斜率k值和零偏b值:
(2)
(3)
最后將當前電阻值代入式(2)、(3)中可得當前溫度,即
T=k×RNTC+b
(4)
不同傳感器之間都會有零偏誤差,需要通過實驗來去除,這里采用3個同一型號的負溫度系數(shù)熱敏傳感器測量溫度,得到溫度誤差曲線如圖4所示。
圖4 溫度傳感器零偏補償前測試誤差
由圖4可知,各個溫度傳感器的溫度誤差為固定值。因此,只需要在某一確定溫度中獲得溫度差值,就能采用該差值對溫度進行零偏補償。對傳感器1進行補償后得到的溫度誤差如圖5所示。
圖5 溫度傳感器補償后溫度誤差
由圖5可知,經(jīng)過零位補償后,溫度傳感器誤差值在0.1 ℃內(nèi),滿足臨床要求。
壓力傳感器采用硅壓阻式壓力傳感器,其測試誤差主要來源包括傳感器零點和靈敏度隨溫度的漂移及調(diào)理電路附加的噪聲干擾[7]。其中傳感器自身靈敏度隨溫度的漂移對整個測試系統(tǒng)的測量精度影響最大。
考慮到顱內(nèi)壓系統(tǒng)傳感器信號易受到包括工頻信號在內(nèi)的高頻干擾,這里采用有限沖擊響應(yīng)(IIR)低通濾波器抑制干擾。
IIR濾波器可用差分方程和系統(tǒng)函數(shù)來描述,其差分方程為[8]
(5)
式中:x為輸入信號;y為輸出信號;a,b為系數(shù)。對應(yīng)的系統(tǒng)函數(shù)為
(6)
IIR低通濾波器包括巴特沃斯濾波器和切比雪夫濾波器。巴特沃斯濾波器的特點是具有通帶內(nèi)最平坦的振幅特性,且隨頻率升高,幅頻特性單調(diào)遞減;切比雪夫濾波器在通帶范圍內(nèi)是等幅起伏的,同樣的通帶衰減,其階數(shù)較巴特沃斯濾波器小[9]。為了節(jié)省運算資源,這里采用了切比雪夫濾波器。并通過Matlab進行仿真得到參數(shù)。
其設(shè)計步驟為:根據(jù)設(shè)計要求確定濾波器的通帶截止頻率ωp、阻帶截止頻率ωs、通帶最大衰減ap和阻帶最小衰減as;再通過Matlab的切比雪夫函數(shù)設(shè)計濾波器,得到幅頻特性曲線如圖6所示。由圖可知,切比雪夫濾波器可有效濾除高頻干擾。
圖6 切比雪夫濾波器幅頻特性
為了驗證算法準確性,我們首先在Matlab中用仿真數(shù)據(jù)實現(xiàn)算法,并與Matlab自帶的低通濾波算法計算結(jié)果進行對比,如圖7所示。
圖7 仿真數(shù)據(jù)低通濾波時域結(jié)果對比
由圖7可知,該算法在理論上可實現(xiàn)低通濾波效果。然后在顱內(nèi)壓系統(tǒng)軟件中實現(xiàn)算法,濾波前、后的數(shù)據(jù)比較如圖8所示。由圖可知,在實際應(yīng)用中,低通濾波算法能在一定程度上減少噪聲。
圖8 低通濾波實測結(jié)果對比
在低通濾波后,先使用N=8的中位值平均濾波算法(見第2.1節(jié))。然后采用滑動平均濾波算法。該濾波算法首先取M個采樣值,設(shè)置為一個長度固定為M的隊列,然后每次采樣得到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù)先進后出,最后把隊列中的M個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果。
對一段輸入信號不變的壓力傳感器信號按順序進行低通濾波、中位值平均濾波、滑動平均濾波后,每個階段之后輸出的結(jié)果如圖9所示。由圖可知,在進行多次濾波后,有效去除了噪聲干擾。
圖9 濾波最后效果
由于壓力傳感器的輸出特性受溫度因素影響較大,本文設(shè)計了定標實驗測試不同溫度下壓力傳感器性能,實驗示意圖如圖10所示[10]。
圖10 傳感器溫度補償實驗示意圖
首先將封裝有溫度傳感器和壓力傳感器的待測探條放置于密閉測試工裝內(nèi)(見圖11),測試工裝放入油槽中(見圖12)。然后將工裝航空接頭的導線連接直流電源和顱內(nèi)壓數(shù)據(jù)處理電路板,壓力控制系統(tǒng)通過導管向工裝內(nèi)施加壓力。實驗開始后,油槽通過溫度測試系統(tǒng)可以讀出設(shè)置的油槽溫度值,壓力控制系統(tǒng)讀出設(shè)置的壓力值,在數(shù)據(jù)處理電路板顯示屏上可以讀出溫度傳感器輸出的溫度電壓參數(shù)和壓力傳感器輸出電壓參數(shù)。
圖11 顱內(nèi)壓探條專用測試工裝和數(shù)據(jù)處理電路板
圖12 顱內(nèi)壓探條測試系統(tǒng)
實驗選取的溫度測試點為25 ℃、30 ℃、35 ℃、37 ℃、40 ℃、45 ℃。壓力測試點為-3 999.66 Pa,1 333.22 Pa,2 666.44 Pa,6 666.1 Pa,13 332.2 Pa,43 996.26 Pa(以上皆為相對壓力)。當測試系統(tǒng)的溫度和壓力達到測試點設(shè)定值后穩(wěn)定30 min,然后讀取數(shù)據(jù)模塊上顯示的輸出電壓值,同時讀取油槽和壓力控制系統(tǒng)上的顯示值,作為當前溫度和壓力標準值。
經(jīng)測試,壓力傳感器電壓與壓力和溫度的關(guān)系曲線如圖13所示。
圖13 不同溫度下壓力與壓力傳感器輸出電壓關(guān)系曲線
由圖13可知,同一溫度下,傳感器輸出電壓與環(huán)境壓力存在線性關(guān)系。不同溫度對輸出電壓有影響,證明壓力傳感器存在溫度漂移,需對其進行溫度補償。
根據(jù)圖13測試結(jié)果設(shè)計了如下的溫度補償算法。
當溫度為T時,壓力傳感器的輸出電壓為
U=kTp+bT
(7)
式中:kT,bT分別為溫度T下的壓力傳感器輸出電壓隨壓力變化靈敏度和零偏值;p為環(huán)境壓力。
首先,根據(jù)實驗記錄的溫度Ti及Ti下的壓力值Pi,對應(yīng)輸出電壓值Ui,通過最小二乘法計算出靈敏度kTi和零偏值bTi分別為
(8)
(9)
式中n為擬合數(shù)值。由式(8)、(9)計算所得kTi、bTi的值如表1所示。
表1 不同溫度下的kTi、bTi的值
然后,根據(jù)溫度范圍設(shè)計分段插值算法。當溫度傳感器測到當前溫度T后,找到T的分段區(qū)間j,選取區(qū)間前、后的kTj、kTj+1,插值計算得到T下的kkT:
(10)
式中kkT,bkT分別為溫度靈敏度的斜率和零偏值。
kT=kkTT+bkT
(11)
同理求得bT值。
最后,通過當前T、U,對應(yīng)kT、bT,根據(jù)式(7)計算出溫度補償后的壓力值。
本文對在25~45 ℃,相對壓力為-3 999.66~43 996.26 Pa的壓力傳感器進行溫度補償,并與標準壓力值進行對比,得到的誤差數(shù)據(jù)如圖14所示。由圖14可知,在進行溫度補償后,本系統(tǒng)的壓力測量精度可以在133.32 Pa內(nèi)。
圖14 不同溫度下壓力傳感器測試誤差值
本文設(shè)計了一種顱內(nèi)溫度與壓力監(jiān)護系統(tǒng)的傳感器數(shù)據(jù)校準與補償算法,經(jīng)過校準與補償后,溫度傳感器誤差在-0.1~+0.1 ℃,壓力傳感器測量誤差在-133.322~+133.322 Pa時,達到顱內(nèi)溫度和壓力監(jiān)測系統(tǒng)的臨床測量范圍和精度需要。該算法從軟件層面上有效降低了傳感器誤差,運算簡便,冗余度低,可拓展應(yīng)用于創(chuàng)血壓、子宮內(nèi)壓、膀胱壓等醫(yī)療領(lǐng)域。