基于MC8051的压力传感器校准算法*

2019-03-05 08:15魏榕山
传感器与微系统 2019年3期
关键词:曲线拟合样条插值

刘 欢, 魏榕山

(福州大学 物理与信息工程学院,福建 福州 350116)

0 引 言

压力传感器是现实生活中最常用的一种传感器,其广泛应用于各种工业控制、汽车电子、医疗设备等多种领域。但由于传感器半导体材料的物理特性,其受温度影响较大,会出现明显的零点和灵敏度的漂移[1],尤其是在高温区间出现温漂现象更明显,所以,必须要对压力传感器进行温度补偿,尽可能降低甚至消除温漂对其的影响。

目前常用的补偿方法主要是硬件电路补偿和软件算法补偿两种,硬件电路补偿方法主要有在桥臂上串并联合适的恒定电阻器的方法,桥外串并联热敏电阻器的方法以及双电桥补偿技术等。但用硬件电路进行校正大都存在电路复杂、调试困难、精度低、通用性差、成本高等缺点,不利于工程实际应用[2~4]。软件算法补偿主要是通过实验的方法来确定压力传感器的静态特性,将微处理器和压力传感器结合起来,充分利用丰富的软件功能、结合一定的补偿算法对传感器温度的附加误差进行修正[5]。软件算法补偿[6~9]因其具有高精度和低成本而更多用于实际工程。

1 算法模型原理分析

根据压力传感器通常在高温段会受到影响较大的特性,本文提出一种基于多项式曲线拟合和牛顿差值以及三次样条插值的补偿算法模型。在高温段使用补偿效果更好的最小二乘法曲线拟合结合三次样条插值算法,在低常温段则使用计算相对简单的曲线拟合结合牛顿插值算法。

1.1 牛顿插值原理

Newton法是靠不停迭代来逼近函数方程的解,实际上是通过曲线一系列切线与x轴的交点的横坐标来逼近曲线与x轴交点的横坐标。

设函数f(x)在[a,b]上有定义,对于n+1个节点(xj,yj),j=0,1,…,n其中xj∈[a,b]互不相同,满足f(xj)=yj,j=0,1,…,n,对任意x∈[a,b]由一阶差商的定义

(1)

f(x)=f(x0)+f[x,x0](x-x0)

(2)

类似地通过求各阶的差商,递推得到

f(x)=f(x0)+f[x0,x1](x-x0)+…+f(x0,x1,x2,…,

xn)(x-x0)(x-x1)…(x-xn-1)+…

=Pn(x)+Rn(x)

(3)

Pn(x)=f(x0)+f(x0,x1)(x-x0)+…+f(x0,x1,x2,…,

xn)(x-x0)(x-x1)…(x-xn-1)

(4)

式中Pn(x)为次数不高于n的x的多项式,可以验证Pn(xi)=f(xi)(i=0,1,…,n)。Pn(x)为过n+1个节点的f(x)的n阶牛顿插值多项式。Rn(x)为插值多项式的余项。

1.2 三次样条插值[10]

设区间[a,b]上给定一组节点X:a=x0

假定S″(xj)=Mj(j=0,1,…,n),由于S(x)在区间[xj,xj+1]上是三次多项式,所以,S″(x)在[xj,xj+1]上是线性函数,表示为

(5)

对S″(x)积分2次并利用S(xj)=yj,S(xj+1)=yj+1得

(6)

求出Mj(j=0,1,…,n)即可得到所求的三次样条插值函数S(x)。

利用条件(3)可知,S(x)在节点xj(j=1,2,…,n-1)处应该满足连续性条件,S(xj-0)=S(xj+0),S″(xj-0)=S′(xj+0),S″(xj-0)=S″(xj+0),再加上相应的边界条件可得到关于Mj(j=0,1,…,n)的三对角方程组,利用追赶法可求得唯一解。

2 温度补偿算法模型及数据分析

软件补偿是将微处理器和压力传感器结合,通过收集压力传感器的相关数据导入处理器,利用微处理器的处理能力,通过存储于处理器中的补偿算法对数据进行校准处理,将校准后的结果输出。不管采用何种软件补偿方法,其硬件系统的架构是相似的,不同的地方在于算法[13]。

硬件系统架构采用自主流片的MC8051核作为中央微处理器,考虑由于ROMIP价格过于昂贵,故采用外接64 kB片外ROM,校准算法直接通过编程器烧入ROM,整体架构如图2所示。通过在ROM中设定温度阈值,根据压力传感器的当前温度选择相应的补偿算法模型。

图1 硬件系统结构

实验选定一种最大量程为10 kPa的压力传感器,在温度分别为0,15,30,40,50,60 ℃,压力值0,4,8 kPa下进行标定,得到6×3组标定点。基于标定的数据点选择合适的算法要求出温度T,压力p以及压力传感器的实际输出电压u三者之间的函数关系为

p=f(u,T)

(7)

在不同节点i处根据对应温度T和实际电压输出u计算得到的p*称为被测校准值,其和i处实际压力值p之间的误差Δp=p*-p,在整个测量范围内的最大误差为Δpmax,则相对于传感器满量程pFS的综合误差[14]为

(8)

首先固定温度T不变,对压力p和输出电压u进行多项式拟合,得到pn=fn(u)。选定0,15,30 ℃为低常温区间,将测得的实际电压分别带入第一步的线性p-U函数,从而得到不同标定温度相对应的输出压力p值。对此区间温度T和p运用二阶牛顿插值算法

p=f(T0)+f(T0,T1)(T-T0)+

f(T0-T1,T2)(T-T0)(T-T1)

(9)

同理,对于高温区间30,40,50,60 ℃,对温度T和压力p分别运用三次样条插值算法,因为已知p(T)满足三次样条插值的上述三个条件,且两个两端自然边界p″(T0)=0,p″(Tn)=0,根据公式可以求得Mj(j=0,1,…,n)的值,从而得到关于温度T的p(T)。压力p也是根据第一步曲线拟合函数,由传感器实际输出电压u得到,所以综合最小二乘法曲线拟合函数和三次样条插值函数即可得到关于T,u,p三者之间的关系。

根据多项式拟合最小二乘法原理,可以得到不同温度T下的pn=fn(u),曲线拟合函数通过在MATLAB中编程实现。根据标定的数据点在图2的分布可以看出压力和传感器输出电压呈线性关系。

图2 不同温度下传感器输出特性

由标定的数据根据上述牛顿差值和三次样条差值原理可求得各项系数,最终得到p,T,u三者之间的函数关系表达式,即建立了补偿算法模型。

对建立的温度补偿算法模型进行验证,低常温段选定3个温度点5,10,20 ℃进行测试,高温段选定35,45,55 ℃进行测试。收集输出电压代入补偿算法模型做温度补偿,得到补偿结果。最终两温段校准结果如表1所示。

表1 两温段补偿校准结果

对比标准压强和经过补偿算法校准后的压强可以发现,低常温段测试结果的最大误差为0.048 5 kPa,相对于传感器满量程的综合误差为

高温段的测试结果最大误差为0.009 5 kPa,相对于传感器满量程的综合误差为

3 结 论

根据一种实际压力传感器,基于最小二乘法拟合和牛顿差值以及三次样条插值算法,设计了一种有效消除温漂的校准算法,尤其适用于经常需要在相差较大的温度下工作的压力传感器校准,校准误差在0.119 %以内,且充分考虑了成本,硬件计算能力以及运行速度等问题,具有一定的实际工程应用价值。

猜你喜欢
曲线拟合样条插值
一元五次B样条拟插值研究
不同阶曲线拟合扰动场对下平流层重力波气候特征影响研究*
基于MATLAB 和1stOpt 的非线性曲线拟合比较
浅谈Lingo 软件求解非线性曲线拟合
构造给定极点的有理插值新方法
基于Sinc插值与相关谱的纵横波速度比扫描方法
三次参数样条在机床高速高精加工中的应用
曲线拟合的方法
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于样条函数的高精度电子秤设计