APP下载

颅内温度和压力传感器校准与补偿算法研究

2019-12-17王音心曾祥豹李小飞袁宇鹏

压电与声光 2019年6期
关键词:热敏电阻通滤波温度传感器

王音心,王 露,李 军,曾祥豹,李小飞,刘 畅,袁宇鹏

(1.中电科技集团重庆声光电有限公司,重庆 401332;2.中国电子科技集团公司第二十六研究所,重庆 400060)

0 引言

研究表明,颅内压增高与颅脑多种重大疾病直接相关,包括脑移位、脑肿瘤等;同时颅内温度对脑损伤病变范围和发展趋势也具有重要影响[1]。因此,及时准确地监测颅内压力和温度参数,能够合理准确地对病情进行诊断,提高手术治疗的安全性和成功率,降低致死率和致残率,在临床医学上具有重要意义[2]。目前临床常用的颅内监护系统有法国Sophysa公司的Pressio监护系统、美国强生公司的Codman颅内压监护仪等,这些监护仪探头价格较贵,阻碍了颅内压测量在临床神经外科监护上的大范围使用[1]。本文采用低成本、高灵敏度的负温度系数热敏电阻作为测量颅内温度的传感器元件;小体积、高精度、高灵敏度的硅压阻式压力传感器作为测量颅内压的敏感元器件[3]。由于负温度系数热敏电阻线性度较低,硅压阻式压力传感器普遍具有一致性差、非线性和温度漂移等问题,使用前需要对温度和压力传感器进行校准和补偿[4]。

本文基于负温度系数热敏电阻和压阻式传感器的特性,在软件上设计了数据补偿和校准算法,并在自主研发的颅内温度与压力监测系统中进行实验,实现了颅内温度与压力参数的数据校准和补偿功能。

1 系统设计概要

颅内温度与压力监测系统采用STM32F407VG单片机作为主控制器。系统首先完成自检、任务管理机制和探条检测,然后对温度传感器和压力传感器采集的数据进行处理与分析,最后对所得到的结果进行存储、显示和传输。算法工作流程如图1所示。

图1 算法流程图

图1显示了温度传感器和压力传感器的数据处理过程。温度传感器首先对采样数据进行标度转换,然后对其进行中位值平均滤波法,再根据采样电路图计算得到热敏电阻值,通过电阻-温度(R-T)查表得出当前的温度值,最后对其进行测试并加入零偏补偿。

压力传感器是对采样数据进行电压转换,再进行低通滤波,一定程度减小了高频噪声,然后分别采用中位值平均滤波和滑动平均滤波去除白噪声[5]。最后对压力传感器进行温度补偿,结合当前温度将电压转换为实际压力。

2 温度传感器算法

温度传感器常用的电阻半导体有热敏电阻和金属热电阻,其中半导体热敏电阻测温灵敏度高,热惰性小及成本低;金属热电阻线性度好,测量范围广,成本相对较高[6]。考虑到颅内压温度测量范围为20~45 ℃,且要求高灵敏度,并节约探头成本,因此,采用负温度系数热敏电阻作为温度传感器,然后采用滤波算法和插值法减少测量误差。

2.1 中位值平均滤波

在温度传感器和压力传感器中都有采用该滤波算法,其主要方法是连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。目的是消除由于脉冲干扰所引起的采样值偏差。

在温度算法中,传感器的采样率是10 Hz,设置滤波采样数据N=10,最后输出频率为1 Hz。

2.2 热敏电阻值计算

图2为温度传感器采样电路,采用电阻分压的方式进行。传感器输入电压VDD=3.3 V,高精度低温漂固定电阻R=100 kΩ,通过数模转换器 (DAC)采样得到当前负温度系数热敏电阻(NTC)电阻电压,从而计算获得NTC电阻值。

图2 温度传感器采样电路

(1)

式中:VNTC为热敏电阻电压,即温度传感器传入的电压;RNTC为所求电阻。

2.3 温度插值计算

热敏电阻的R-T表提供了间隔为0.2 ℃的温度与电阻值的对应关系,而临床上对颅内温度要求监测的精度为-0.1~+0.1 ℃。R-T表的热敏电阻与温度值对应关系如图3所示。

图3 热敏电阻与温度的关系曲线

由图3可知,在温度范围较大时热敏电阻与温度呈非线性关系;而在温度范围较小时,热敏电阻与温度基本呈线性关系。

因此,这里采用插值法,利用小间隔温度区间的电阻和温度值求取该温度区间内对应的斜率系数和零偏,得到当前温度范围的R-T线性关系。

首先根据当前热敏电阻值在R-T表进行二分查找,找到表上距离最近的前、后电阻值R1、R2,以及对应的温度值T1、T2。然后求得该段区间内电阻和温度的一次函数曲线的斜率k值和零偏b值:

(2)

(3)

最后将当前电阻值代入式(2)、(3)中可得当前温度,即

T=k×RNTC+b

(4)

2.4 零位补偿

不同传感器之间都会有零偏误差,需要通过实验来去除,这里采用3个同一型号的负温度系数热敏传感器测量温度,得到温度误差曲线如图4所示。

图4 温度传感器零偏补偿前测试误差

由图4可知,各个温度传感器的温度误差为固定值。因此,只需要在某一确定温度中获得温度差值,就能采用该差值对温度进行零偏补偿。对传感器1进行补偿后得到的温度误差如图5所示。

图5 温度传感器补偿后温度误差

由图5可知,经过零位补偿后,温度传感器误差值在0.1 ℃内,满足临床要求。

3 压力传感器滤波算法

压力传感器采用硅压阻式压力传感器,其测试误差主要来源包括传感器零点和灵敏度随温度的漂移及调理电路附加的噪声干扰[7]。其中传感器自身灵敏度随温度的漂移对整个测试系统的测量精度影响最大。

3.1 低通滤波

考虑到颅内压系统传感器信号易受到包括工频信号在内的高频干扰,这里采用有限冲击响应(IIR)低通滤波器抑制干扰。

IIR滤波器可用差分方程和系统函数来描述,其差分方程为[8]

(5)

式中:x为输入信号;y为输出信号;a,b为系数。对应的系统函数为

(6)

IIR低通滤波器包括巴特沃斯滤波器和切比雪夫滤波器。巴特沃斯滤波器的特点是具有通带内最平坦的振幅特性,且随频率升高,幅频特性单调递减;切比雪夫滤波器在通带范围内是等幅起伏的,同样的通带衰减,其阶数较巴特沃斯滤波器小[9]。为了节省运算资源,这里采用了切比雪夫滤波器。并通过Matlab进行仿真得到参数。

其设计步骤为:根据设计要求确定滤波器的通带截止频率ωp、阻带截止频率ωs、通带最大衰减ap和阻带最小衰减as;再通过Matlab的切比雪夫函数设计滤波器,得到幅频特性曲线如图6所示。由图可知,切比雪夫滤波器可有效滤除高频干扰。

图6 切比雪夫滤波器幅频特性

为了验证算法准确性,我们首先在Matlab中用仿真数据实现算法,并与Matlab自带的低通滤波算法计算结果进行对比,如图7所示。

图7 仿真数据低通滤波时域结果对比

由图7可知,该算法在理论上可实现低通滤波效果。然后在颅内压系统软件中实现算法,滤波前、后的数据比较如图8所示。由图可知,在实际应用中,低通滤波算法能在一定程度上减少噪声。

图8 低通滤波实测结果对比

3.2 滑动平均滤波

在低通滤波后,先使用N=8的中位值平均滤波算法(见第2.1节)。然后采用滑动平均滤波算法。该滤波算法首先取M个采样值,设置为一个长度固定为M的队列,然后每次采样得到一个新数据放入队尾,并扔掉原来队首的一次数据先进后出,最后把队列中的M个数据进行算术平均运算,就可获得新的滤波结果。

对一段输入信号不变的压力传感器信号按顺序进行低通滤波、中位值平均滤波、滑动平均滤波后,每个阶段之后输出的结果如图9所示。由图可知,在进行多次滤波后,有效去除了噪声干扰。

图9 滤波最后效果

4 压力传感器温度补偿实验

由于压力传感器的输出特性受温度因素影响较大,本文设计了定标实验测试不同温度下压力传感器性能,实验示意图如图10所示[10]。

图10 传感器温度补偿实验示意图

首先将封装有温度传感器和压力传感器的待测探条放置于密闭测试工装内(见图11),测试工装放入油槽中(见图12)。然后将工装航空接头的导线连接直流电源和颅内压数据处理电路板,压力控制系统通过导管向工装内施加压力。实验开始后,油槽通过温度测试系统可以读出设置的油槽温度值,压力控制系统读出设置的压力值,在数据处理电路板显示屏上可以读出温度传感器输出的温度电压参数和压力传感器输出电压参数。

图11 颅内压探条专用测试工装和数据处理电路板

图12 颅内压探条测试系统

实验选取的温度测试点为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(以上皆为相对压力)。当测试系统的温度和压力达到测试点设定值后稳定30 min,然后读取数据模块上显示的输出电压值,同时读取油槽和压力控制系统上的显示值,作为当前温度和压力标准值。

经测试,压力传感器电压与压力和温度的关系曲线如图13所示。

图13 不同温度下压力与压力传感器输出电压关系曲线

由图13可知,同一温度下,传感器输出电压与环境压力存在线性关系。不同温度对输出电压有影响,证明压力传感器存在温度漂移,需对其进行温度补偿。

根据图13测试结果设计了如下的温度补偿算法。

当温度为T时,压力传感器的输出电压为

U=kTp+bT

(7)

式中:kT,bT分别为温度T下的压力传感器输出电压随压力变化灵敏度和零偏值;p为环境压力。

首先,根据实验记录的温度Ti及Ti下的压力值Pi,对应输出电压值Ui,通过最小二乘法计算出灵敏度kTi和零偏值bTi分别为

(8)

(9)

式中n为拟合数值。由式(8)、(9)计算所得kTi、bTi的值如表1所示。

表1 不同温度下的kTi、bTi的值

然后,根据温度范围设计分段插值算法。当温度传感器测到当前温度T后,找到T的分段区间j,选取区间前、后的kTj、kTj+1,插值计算得到T下的kkT:

(10)

式中kkT,bkT分别为温度灵敏度的斜率和零偏值。

kT=kkTT+bkT

(11)

同理求得bT值。

最后,通过当前T、U,对应kT、bT,根据式(7)计算出温度补偿后的压力值。

本文对在25~45 ℃,相对压力为-3 999.66~43 996.26 Pa的压力传感器进行温度补偿,并与标准压力值进行对比,得到的误差数据如图14所示。由图14可知,在进行温度补偿后,本系统的压力测量精度可以在133.32 Pa内。

图14 不同温度下压力传感器测试误差值

5 结束语

本文设计了一种颅内温度与压力监护系统的传感器数据校准与补偿算法,经过校准与补偿后,温度传感器误差在-0.1~+0.1 ℃,压力传感器测量误差在-133.322~+133.322 Pa时,达到颅内温度和压力监测系统的临床测量范围和精度需要。该算法从软件层面上有效降低了传感器误差,运算简便,冗余度低,可拓展应用于创血压、子宫内压、膀胱压等医疗领域。

猜你喜欢

热敏电阻通滤波温度传感器
气象用温度传感器检定结果的测量不确定度评定与应用
声呐发射机负载阻抗变化仿真分析
微安表内阻值对热敏电阻温度计设计的影响
复合NTC热敏电阻材料的制备与电性能研究
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
二阶有源低通滤波电路的计算机辅助设计
基于频域分析和低通滤波的光伏并网逆变器谐振抑制研究
热敏电阻特性的线性化方法