基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法及装置与流程

文档序号:11771195阅读:414来源:国知局
基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法及装置与流程

本发明属于压力变送器技术领域,具体涉及一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法及装置。



背景技术:

由于在单晶硅压阻式压力传感器的制造过程中,存在离子注入浓度不完全一致导致而造成电阻率温度系数差异、封装材料间温度膨胀系数不匹配以及电子元件性能受温度影响等因素,所以环境温度的变化会使得传感器零点偏移和灵敏度漂移,同时影响传感器的输出线性度,导致最终的测量结果不准确,因此温度补偿问题作为提高传感器总体性能的关键环节不容忽视。

目前的温度补偿方法主要包括硬件补偿和软件补偿。硬件补偿通过改变电路参数对测量电路进行优化配置,但是这种补偿方法普遍存在调试不便、精度有限、工艺柔性不强、增加成本等缺点,不利于生产推广,软件补偿则因为能够避免以上不足之处而逐渐成为受到关注的热点。当前最常用的软件补偿算法为分段线性插值方法,该方法通过将实验获得的标定数据存入压力传感器内存(eprom)作为插值点进行温度补偿,主要有以下几个缺点:1、当插值点不多时不能细致完整地体现压力传感器输出的非线性特征,影响测量精度;2、通常需要存入压力传感器内存(eprom)中的数据较多,增加硬件成本;3、当要求的补偿精度提高时,补偿计算运行效率低下。



技术实现要素:

本发明的目的之一在于克服以上缺点,提供一种提升压力变送器的测量精度,减少压力变送器的内存消耗,同时可提高温度补偿程序的运行效率的方法。

为了解决上述技术问题,本发明提供了一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法,包括以下步骤:

通过两阶段最小二乘法进行温度补偿模型建模;

将所述温度补偿模型的系数矩阵存入压力变送器的eprom中;

根据输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵计算输出温度补偿后的压力值。

进一步地,所述的基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法,其特征在于,所述温度补偿模型为:其中,p为补偿压力值,单位pa,uad为压力测量ad值,cfit为温度补偿模型的系数矩阵,tad为温度测量ad值。

进一步地,所述“通过两阶段最小二乘法进行温度补偿模型建模”,具体为:

在m个指定温度值下,分别采集n个标准压力输入值下的压力测量ad值,得到m*n个压力测量ad值;

对于每一个指定温度值,对n个标准压力输入值和n个压力测量ad值进行拟合次数为k的最小二乘拟合,得到所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系以及第一阶段系数矩阵;

对m个指定温度ad值以及所述第一阶段系数矩阵中的长度为m的系数行向量进行拟合次数为l的最小二乘拟合,获得所述温度ad值与第一阶段系数行向量的多项式函数映射关系以及所述温度补偿模型的系数矩阵。

进一步地,所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系为:

所述指定温度值下标准压力输入值与压力测量ad值的多项式函数系数矩阵为:其中,p为输入标准压力值,单位pa;uad为压力测量ad值,ci,k为拟合系数,i=1,2,…,m,k为第一阶段拟合次数。

进一步地,所述温度ad值与第一阶段系数行向量的多项式函数映射关系为:所述温度补偿模型的系数矩阵为:其中,ck,ck-1,…,c1,c0为第一阶段拟合系数,c0,0~ck,l为温度补偿系数,tad为温度ad值,k为第一阶段拟合次数,l为第二阶段拟合次数。

相应地,本发明还提供了一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿装置,包括:

第一处理模块,用于通过两阶段最小二乘法进行温度补偿模型建模;

第二处理模块,用于将所述温度补偿模型的系数矩阵存入压力变送器的eprom中;

第三处理模块,用于根据输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵计算输出温度补偿后的压力值。

进一步地,所述温度补偿模型为:其中,p为补偿压力值,单位pa,uad为压力测量ad值,cfit为温度补偿模型的系数矩阵,tad为温度测量ad值。

进一步地,所述第一处理模块,包括:

第一处理单元,用于在m个指定温度值下,分别采集n个标准压力输入值下的压力测量ad值,得到m*n个压力测量ad值;

第二处理单元,用于对于每一个指定温度值,对n个标准压力输入值和n个压力测量ad值进行拟合次数为k的最小二乘拟合,得到所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系以及第一阶段系数矩阵;

第三处理单元,用于对m个指定温度ad值以及所述第一阶段系数矩阵中的长度为m的系数行向量进行拟合次数为l的最小二乘拟合,获得所述温度ad值与第一阶段系数行向量的多项式函数映射关系以及所述温度补偿模型的系数矩阵。

进一步地,所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系为:

所述指定温度值下标准压力输入值与压力测量ad值的多项式函数系数矩阵为:其中,p为输入标准压力值,单位pa;uad为压力测量ad值,ci,k为拟合系数,i=1,2,…,m,k为第一阶段拟合次数。

进一步地,所述温度ad值与第一阶段系数行向量的多项式函数映射关系为:所述温度补偿模型的系数矩阵为:其中,ck,ck-1,…,c1,c0为第一阶段拟合系数,c0,0~ck,l为温度补偿系数,tad为温度ad值,k为第一阶段拟合次数,l为第二阶段拟合次数。

本发明技术方案的有益效果有:

1.可提升压力变送器的测量精度。

本发明的技术方案考虑了压力变送器输出的非线性特征,通过引入最小二乘法,在总体上保证所有的插值点达到一个补偿精度的下限,即最大补偿误差可以得到控制,从而解决了现有的分段线性插值方法无法体现压力传感器输出的非线性特征,在插值点以外的无法保证较高补偿精度的问题。

2.减少压力变送器的内存消耗。

本发明的技术方案只需要在压力变送器的内存中存储温度补偿模型的系数矩阵,而不需要像分段线性插值方法那样将所有的采样插值数据存入内存,大大减少了所需内存空间,可降低硬件成本。

3.可提高温度补偿程序的运行效率。

本发明的技术方案只需要通过输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵即可一次计算输出温度补偿后的压力值,而无需像分段线性插值算法那样进行多次的查表获取到测量的工作点所在的直线段,再将测得的数据作为输入代入该段直线计算对应的压力输出。

附图说明

图1是本发明的一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法步骤流程图。

图2是本发明的一种通过两阶段最小二乘法进行温度补偿模型建模步骤流程图。

图3是本发明的一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿装置结构图。

图4是本发明的一种第一处理模块结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在电子元器件中,其他条件不变的情况下,其输出信号会随着温度的变化而发生漂移,为了减小这种现象,通常采取一定的算法对输出结果进行修正,达到一定范围内消除温度变化对元器件输出信号影响的目的,这种处理方式称为电子元器件的温度补偿。

硅压阻式压力变送器是根据单晶硅的压阻效应原理制造的压力传感器,通过接受外界压力并按比例转换为标准输出信号,硅压阻式压力变送器输出的信号同样会受到环境温度影响,因此温度补偿问题作为提高传感器总体性能的关键环节不容忽视。

图1,是本发明的一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法步骤流程图,包括以下步骤:

步骤1、通过两阶段最小二乘法进行温度补偿模型建模;

当环境温度保持不变的时,由于某些制造工艺的扰动,硅压阻式压力变送器测量压力ad值和输入压力值并不一定相同,它们之间存在着可以表达为多项式函数的确定的非线性映射关系。伴随环境温度的改变,可以认为温度实际上影响了非线性映射中多项式函数的各项系数,进而形成不同温度条件下的不同非线性映射关系。

基于上述原理,本发明的技术方案采用的温度补偿模型为:其中,p为补偿压力值,即考虑当前环境温度因素修正后的压力值,单位pa,uad为压力测量ad值,即未考虑环境温度因素的压力值,cfit为温度补偿模型的系数矩阵,tad为温度测量ad值,本发明的ad值均指的是经过模数转换后输出的数字信号。

因此,本发明的技术方案的关键点就是如何计算出温度补偿模型的系数矩阵cfit,如图2,是本发明的一种通过两阶段最小二乘法进行温度补偿模型建模步骤流程图,包括以下步骤:

步骤101、在m个指定温度值下,分别采集n个标准压力输入值下的压力测量ad值,得到m*n个压力测量ad值;

为了计算温度补偿模型的系数矩阵,首先需要进行数据的采样,例如,分别在20、0、-20(单位,摄氏度)的环境温度下,分别输入1000、0、-1000(单位,pa)的压力值,读取出硅压阻式压力变送器测量的压力ad值,得到总共9个采样值。这里提到的环境温度以及输入压力值都必须在硅压阻式压力变送器的允许工作范围内。

步骤102、对于每一个指定温度值,对n个标准压力输入值和n个压力测量ad值进行拟合次数为k的最小二乘拟合,得到所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系以及第一阶段系数矩阵;

任一指定温度值下,考虑压力输入值与压力测量ad值之间的函数关系为:

则m个指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系为:

,其中,p为输入标准压力值,单位pa;uad为压力测量ad值,ci,k为拟合系数,i=1,2,…,m,k为第一阶段拟合次数。这时,可以采用matlab中的最小二乘拟合函数计算出指定温度值下标准压力输入值与压力测量ad值的多项式函数系数矩阵为:

步骤103、对m个指定温度ad值以及所述第一阶段系数矩阵中的长度为m的系数行向量进行拟合次数为l的最小二乘拟合,获得所述温度ad值与第一阶段系数行向量的多项式函数映射关系以及所述温度补偿模型的系数矩阵。

如果将第一阶段系数矩阵中有关拟合阶次的系数表示为向量形式,即系数矩阵也可以向量形式表示为c=[c(k),c(k-1),…,c(1),c(0)],其中向量c(k)=[c1,k,…ci,k,…,cm,k]t代表当温度等级为m时,第k次项前的系数。

由于每个系数向量c(k)有m个元素,温度标定点也为m个,因此可再次利用最小二乘拟合建立第一阶段系数行向量和温度ad值之间的l(l≤m)次多项式关系:其中,ck,ck-1,…,c1,c0为第一阶段拟合系数,c0,0~ck,l为温度补偿系数,tad为温度ad值,k为第一阶段拟合次数,l为第二阶段拟合次数,然后再通过采用matlab中的最小二乘拟合函数计算出温度补偿模型的系数矩阵为:

步骤2、将所述温度补偿模型的系数矩阵存入压力变送器的eprom中,通常是将所述温度补偿模型的系数矩阵作为双精度浮点数以16进制的形式存入压力变送器的eprom中;

步骤3、根据输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵计算输出温度补偿后的压力值。

在硅压阻式压力变送器实际的测量过程中,首先测量出环境温度ad值,以及压力测量ad值(未考虑环境温度因素影响的压力值),再通过读取eprom中的温度补偿模型系数矩阵,由公式计算出修正后的压力值进行输出。

下面,以一具体的实施例来说明本发明基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿方法步骤:

步骤1、对某一测量范围为-40kpa-40kpa,工作温度范围为-20℃-70℃的单晶硅压阻式压力变送器进行温度补偿模型建模,包括以下步骤:

步骤101、将单晶硅压阻式压力变送器放入高低温箱中,以气管连接压力气源,通过压力调节装置提供稳定压力输入,以5kpa为步距取17个压力测量点(n=17),即pcal,取-20℃,0℃,25℃,50℃,70℃等5个温度点(m=5),即tcal,总共采集17*5共85个压力变送器测量输出ad,即ucal,其中每个输出采样点测量三次取平均值,将输入输出数据归一化后得到采样数据。

步骤102、设置第一阶段拟合系数为3,利用matlab数学软件针对5个标定温度点结合采样数据使用最小二乘拟合函数,计算获得第一阶段系数矩阵为:

步骤103、设置第二阶段拟合系数为2,根据第一阶段系数矩阵cup的4个列向量(每个列向量包含5个元素)和5个温度标定温度ad数据,利用最小二乘拟合函数,计算获得该单晶硅压阻式压力变送器温度补偿模型的系数矩阵cfit为:

步骤2、将所述温度补偿模型的系数矩阵存入该单晶硅压阻式压力变送器的eprom中;

步骤3、根据输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵计算输出温度补偿后的压力值。

在硅压阻式压力变送器实际的测量过程中,首先测量出环境温度ad值,以及压力测量ad值(未考虑环境温度因素影响的压力值),再通过读取eprom中的温度补偿模型系数矩阵,由公式计算出修正后的压力值进行输出。

本发明的技术方案考虑到了压力变送器输出的非线性特征,通过引入最小二乘法,在总体上保证所有的插值点达到一个补偿精度的下限,即最大补偿误差可以得到控制,从而解决了现有的分段线性插值方法无法体现压力传感器输出的非线性特征,在插值点以外的无法保证较高补偿精度的问题。

上述实施例中,若采用分段线性插值的方法需要通过实验在5个温度点(t)以及17个压力点(p)下测得的对应输出(u)组成85组值存入内存中,每组数据的形式为(p,t,u),其中p,t为输入,u为输出。每个数据以16进制单精度浮点数存入内存中,每个单精度数据占据4个字节,总共需要4*3*85=1020个字节。而本发明的技术方案仅需要存入内存多项式相关的12个系数值,每个系数用双精度16进制数表示,每个双精度数据占据8个字节,总共占用的内存大小为8*12=96个字节,大大减少了内存占用。

现有的分段线性插值算法的补偿精度和所取的插值点成正比关系,当补偿精度要求较高时,需要进行大量的标定实验,标定成本过高。这种插值法本质上是进行查表,当补偿后精度提高时查表计算将进行很多次,完成查表后获取实际测量的工作点所在的直线段,将测得的数据作为输入代入该段直线计算对应的压力输出即可完成补偿。而本发明的技术方案只需要通过输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵即可一次计算输出温度补偿后的压力值,大大提高了温度补偿计算效率。

如图3,是本发明的一种基于两阶段最小二乘拟合的硅压阻式压力变送器温度补偿装置结构图,包括:

第一处理模块,用于通过两阶段最小二乘法进行温度补偿模型建模;

其中,所述温度补偿模型为:其中,p为补偿压力值,单位pa,uad为压力测量ad值,cfit为温度补偿模型的系数矩阵,tad为温度测量ad值。

第二处理模块,用于将所述温度补偿模型的系数矩阵存入压力变送器的eprom中;

第三处理模块,用于根据输入压力测量ad值、环境温度测量ad值以及所述温度补偿模型的系数矩阵计算输出温度补偿后的压力值。

如图4,是本发明的一种第一处理模块结构图,包括:

第一处理单元,用于在m个指定温度值下,分别采集n个标准压力输入值下的压力测量ad值,得到m*n个压力测量ad值;本处理单元用于采集样本数据,以便计算温度补偿模型的系数矩阵。

第二处理单元,用于对于每一个指定温度值,对n个标准压力输入值和n个压力测量ad值进行拟合次数为k的最小二乘拟合,得到所述指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系以及第一阶段系数矩阵;

当环境温度保持不变的时,由于某些制造工艺的扰动,硅压阻式压力变送器测量压力ad值和输入压力值并不一定相同,它们之间存在着可以表达为多项式函数的确定的非线性映射关系,考虑压力输入值与压力测量ad值之间的函数关系为:则m个指定温度值下标准压力输入值与压力测量ad值的多项式函数映射关系为:其中,p为输入标准压力值,单位pa;uad为压力测量ad值,ci,k为拟合系数,i=1,2,…,m,k为第一阶段拟合次数。这时,可以采用matlab数学计算库中的最小二乘拟合函数计算出指定温度值下标准压力输入值与压力测量ad值的多项式函数系数矩阵为:

第三处理单元,用于对m个指定温度ad值以及所述第一阶段系数矩阵中的长度为m的系数行向量进行拟合次数为l的最小二乘拟合,获得所述温度ad值与第一阶段系数行向量的多项式函数映射关系以及所述温度补偿模型的系数矩阵。

如果将第一阶段系数矩阵中有关拟合阶次的系数表示为向量形式,即第一阶段系数矩阵也可以向量形式表示为c=[c(k),c(k-1),…,c(1),c(0)],其中向量c(k)=[c1,k,…ci,k,…,cm,k]t代表当温度等级为m时,第k次项前的系数。

再次建立第一阶段系数行向量和温度ad值之间的l(l≤m)次多项式关系:其中,ck,ck-1,…,c1,c0为第一阶段拟合系数,c0,0~ck,l为温度补偿系数,tad为温度ad值,k为第一阶段拟合次数,l为第二阶段拟合次数,然后再通过采用matlab中的最小二乘拟合函数计算出温度补偿模型的系数矩阵为:

上述具体实施方式只是对本发明的技术方案进行详细解释,本发明并不只仅仅局限于上述实施例,凡是依据本发明原理的任何改进或替换,均应在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1