一种金属氧化物气体传感器温度漂移补偿装置及方法与流程

文档序号:11284141阅读:203来源:国知局
一种金属氧化物气体传感器温度漂移补偿装置及方法与流程

本发明涉及气体检测领域,更具体地,涉及一种金属氧化物气体传感器温度漂移补偿装置及方法。



背景技术:

工业有毒有害气体的排放是导致环境恶化的主要因素之一,传统的检测方法有两大类:(1)物理分析方法(如重量法、容量法、层析技术等),但存在时效性差、随机性大等缺点;(2)化学分析法(如分光光度法、发射光谱分析法、化学发光法、气相色谱技术等)也存在检测周期长、对检测人员操作水平要求高的特点。因此,以金属氧化物传感器为核心的机器嗅觉技术作为新型的气体检测技术,正逐渐取代传统的检测方法。

温度是影响金属氧化物传感器线性度的主要因素之一,通过查阅文献,目前通过温度解决金属氧化物传感器线性度的方法,可归纳为硬件补偿法和软件补偿法两类:

(1)硬件补偿法,典型的是利用双惠斯顿电桥结构对温度漂移进行补偿,如:leeyoungtac等人提出的利用双惠斯顿单臂电桥结构补偿法;houchenggui等提出的双电桥制成的传感器,利用双电桥来改善传感器的灵敏度,消除零压输出,减小灵敏度温度漂移已得到了实现等。上述硬件补偿方法虽然已经克服了以前的硬件补偿方法的计算困难的缺点,但是需要在不同的温度下调整电阻值,操作繁琐。

(2)软件补偿法,常见的补偿算法有二维回归分析法和bp神经网络算法。二维回归分析法是不依据物理量之间的关系,进行的数据信息融合,在一定程度上提高了测量精度,但算法复杂度略高。bp神经网络算法是由信息的正向传播和误差的反向传播组成,输入模式从输入层经隐含层逐层处理并传向输出层,如果输出层没有得到期望的结果,则将误差信号沿原来的通路返回并修改各层的权值,直到误差最小,最终达到期望的目标值。但是该算法的缺点是它的权值和偏置值矩阵占用的内存太大,算法复杂度高。



技术实现要素:

本发明旨在至少在一定程度上解决上述技术问题。

本发明的首要目的是提供一种工业环境检测中金属氧化物气体传感器温度漂移补偿的装置,利用金属氧化物气体传感器阵列获取的气体浓度和温度传感器读取的温度值,单片机再结合补偿算法自动地对数据进行分析处理,消除温度对检测结果造成的干扰,从而准确、实时、高效地实现对工业环境中有毒有害气体的监测。

本发明的进一步目的是提供一种工业环境检测中金属氧化物气体传感器温度漂移补偿的方法。

为解决上述技术问题,本发明的技术方案如下:

一种金属氧化物气体传感器温度漂移补偿装置,包括数据处理单元、金属氧化物气体传感器阵列、温度传感器、a/d转换器和d/a转换器;金属氧化物气体传感器阵列通过a/d转换器与数据处理单元依次电连接,温度传感器直接与数据处理单元电连接,数据处理单元还与d/a转换器电连接,数据处理单元根据温度传感器采集到的温度对金属氧化物气体传感器阵列采集到的气体浓度进行温度漂移补偿,并通过d/a转换器输出消除温度漂移后的气体浓度。

在一种优选的技术方案中,所述数据处理单元采用单片机。单片机为体积和功耗小的嵌入式数据处理单元,型号为stc89c52rc-40i-pdid40。

一种金属氧化物气体传感器温度漂移补偿方法,所述方法基于上述的金属氧化物气体传感器温度漂移补偿装置,所述方法包括以下步骤:

s1:数据处理单元通过a/d转换器将金属氧化物气体传感器输出的气体浓度模拟量转变成数字量,实现气体浓度的数字化;

s2:数据处理单元通过单总线直接获取温度传感器测量的数据并转换为实际温度值;

s3:将金属氧化物气体传感器n次采样值按大小排队,n≥3,去掉最大值和最小值,再对剩下的n-2个采样值求算术平均值:

dat=(z1+z2+…+zn-max-min)/(n-2)(3)

其中,zn表示第n次采样值,dat、max、min分别表示采样的平均值、最大值和最小值;

s4:求拟合多项式,取0℃、10℃、20℃、30℃、40℃5种温度下气体浓度值与金属氧化物气体传感器的电压值的关系:

y=au2+bu+c(4)

其中u表示金属氧化物气体传感器的电压值,y表示气体浓度值,a、b、c均为待求参数,根据所测气体浓度值与电压值的关系确定a、b、c;

s5:由牛顿插值定理,求牛顿插值多项式:

p(x)=a0+a1*(x-x0)+a2*(x-x0)(x-x1)+…+an*(x-x0)…(x-xn-1)(5)

其中x0,x1,…xn表示不同的温度,p(x)表示响应电压值,a0,a1,…an为待定系数;

当x=x0时,

p(x0)=a0=g0(6)

当x=x1时,

p(x1)=a0+a1(x-x0)=g1(7)

推得:

a1=(g1-g0)/(x1-x0)(8)

当x=x2时,

p(x2)=a0+a1(x2-x0)+a2(x2-x0)(x2-x1)=g2(9)

推得:

a2=[(g2-g0)/(x2-g0)-a1]/(x2-x1)(10)

依次递推可得到a3,…,an的表达式;

s6:求5种温度下的一至四阶均差,由均差定义,有:

f[x0,xk]=[g(xk)-g(x0)]/(xk-x0)(11)

其中f[x0,xk]表示函数g(x)关于点x0、点xk的一阶均差;则有:

f[x0,x1,…,xk]=[g(x0,x2,…,xk)-g(x0,x1,…,xk-1)]/(xk-xk-1)(12)

其中,f[x0,x1,…,xk]为函数g(x)的k阶均差;

s7:用步骤s6所求的均差替代步骤s5的多项式系数,可得多项式:

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

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

其中,x0,x1,…xn表示不同的温度,p(x)表示响应电压值,使响应电压值p(x)基本等于p(x0),消除了其他温度的影响,即实现了温度的补偿功能。

在一种优选的技术方案中,步骤s1中,模拟量转变成数字量,其表达式为:

dout=28*vin/vref(1)

其中,dout表示a/d转换器输出的数字量,8代表所用的是8位精度的a/d转换器,即表示该转换器输出的数字范围在0-255之间,vin表示的是金属氧化物气体传感器的模拟电压,范围在0-4v之间,vref表示a/d转换器接的参考电压。

在一种优选的技术方案中,vref设定为5v。

在一种优选的技术方案中,步骤s2中,温度传感器测量的数据转换为实际温度值,转换过程为:

temperature=(temp*0.0625)*10+0.5(2)

其中,temperature表示实际的温度值,单位为℃,temp表示温度传感器返回的数据值。

在一种优选的技术方案中,步骤s3中,所述方法还包括:数据处理单元通过采取复合滤波算法对采样的气体浓度信号平滑处理,并掉噪声干扰。

在一种优选的技术方案中,步骤s3中,n取10。

与现有技术相比,本发明技术方案的有益效果是:本发明提供一种金属氧化物气体传感器温度漂移补偿装置,利用金属氧化物气体传感器阵列获取的气体浓度和温度传感器读取的温度值,单片机再结合补偿算法自动地对数据进行分析处理,消除温度对检测结果造成的干扰,从而准确、实时、高效地实现对工业环境中有毒有害气体的监测。采用了应用于工业环境中的金属氧化物传感器阵列硬件系统,具有响应快、广谱性的特点;采用基于单片机系统的温度补偿算法,克服了温度对传感器阵列造成的误差干扰,提升了在工业环境中的检测精度;本发明成本低,功耗低,适用于不同环境下对气体的检测需求。

本发明还提供一种工业环境检测中金属氧化物气体传感器温度漂移补偿的方法。

附图说明

图1为本发明金属氧化物气体传感器温度漂移补偿装置的示意图。

图2为本发明8位a/d转换器引脚及功能说明图。

图3为本发明的工业环境中金属氧化物传感器温度补偿软件结构框图。

图4为本发明软件结构中的复合滤波算法流程图。

图5为本发明软件结构中的非线性校正与温度补偿算法流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种金属氧化物气体传感器温度漂移补偿装置,包括数据处理单元、金属氧化物气体传感器阵列、温度传感器、a/d转换器和d/a转换器;金属氧化物气体传感器阵列通过a/d转换器与数据处理单元依次电连接,温度传感器直接与数据处理单元电连接,数据处理单元还与d/a转换器电连接,数据处理单元根据温度传感器采集到的温度对金属氧化物气体传感器阵列采集到的气体浓度进行温度漂移补偿,并通过d/a转换器输出消除温度漂移后的气体浓度。

图2为8位a/d转换器引脚及功能说明图,其中:

(1)in7~in0——模拟量输入通道。

(2)ale——地址锁存允许信号。对应ale上跳沿,a、b、c地址状态送入地址锁存器中。

(3)start——转换启动信号。start上升沿时,复位adc0809;start下降沿时启动芯片,开始进行a/d转换;在a/d转换期间,start应保持低电平。

(4)adda、addb、addc——地址线。通道端口选择线,adda为低地址,addc为高地址。

(5)clock——时钟信号。adc0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。使用频率为10khz~1280khz的时钟信号。

(6)eoc——转换结束信号。eoc=0,正在进行转换;eoc=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

(7)d7~d0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。

(8)oe——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。oe=0,输出数据线呈高阻;oe=1,输出转换得到的数据。

(9)vcc——+5v电源。

(10)vref,即vr(+)和vr(-)——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5v,即vr(+)=+5v,vr(-)=0v。

在具体实施过程中,所述数据处理单元采用单片机。单片机为体积和功耗小的嵌入式数据处理单元。

本实施例提供的金属氧化物气体传感器温度漂移补偿装置,利用金属氧化物气体传感器阵列获取的气体浓度和温度传感器读取的温度值,单片机再结合补偿算法自动地对数据进行分析处理,消除温度对检测结果造成的干扰,从而准确、实时、高效地实现对工业环境中有毒有害气体的监测。采用了应用于工业环境中的金属氧化物传感器阵列硬件系统,具有响应快、广谱性的特点;采用基于单片机系统的温度补偿算法,克服了温度对传感器阵列造成的误差干扰,提升了在工业环境中的检测精度;本发明成本低,功耗低,适用于不同环境下对气体的检测需求。

如图3-5所示,一种金属氧化物气体传感器温度漂移补偿方法,所述方法基于上述的金属氧化物气体传感器温度漂移补偿装置,所述方法包括以下步骤:

s1:数据处理单元通过a/d转换器将金属氧化物气体传感器输出的气体浓度模拟量转变成数字量,实现气体浓度的数字化;模拟量转变成数字量的表达式为:

dout=28*vin/vref(1)

其中,dout表示a/d转换器输出的数字量,8代表所用的是8位精度的a/d转换器,即表示该转换器输出的数字范围在0-255之间,vin表示的是金属氧化物气体传感器的模拟电压,范围在0-4v之间,vref表示a/d转换器接的参考电压,vref设定为5v。

s2:数据处理单元通过单总线直接获取温度传感器测量的数据并转换为实际温度值,转换过程为:

temperature=(temp*0.0625)*10+0.5(2)

其中,temperature表示实际的温度值,单位为℃,temp表示温度传感器返回的数据值。

s3:数据处理单元通过采取复合滤波算法对采样的气体浓度信号平滑处理,并掉噪声干扰。将金属氧化物气体传感器n次采样值按大小排队,n取10,去掉最大值和最小值,再对剩下的n-2个采样值求算术平均值:

dat=(z1+z2+…+zn-max-min)/(n-2)(3)

其中,zn表示第n次采样值,dat、max、min分别表示采样的平均值、最大值和最小值;

s4:求拟合多项式,取0℃、10℃、20℃、30℃、40℃5种温度下气体浓度值与金属氧化物气体传感器的电压值的关系:

y=au2+bu+c(4)

其中u表示金属氧化物气体传感器的电压值,y表示气体浓度值,a、b、c均为待求参数,根据所测气体浓度值与电压值的关系确定a、b、c;

s5:由牛顿插值定理,求牛顿插值多项式:

p(x)=a0+a1*(x-x0)+a2*(x-x0)(x-x1)+…+an*(x-x0)…(x-xn-1)(5)

其中x0,x1,…xn表示不同的温度,p(x)表示响应电压值,a0,a1,…an为待定系数;

当x=x0时,

p(x0)=a0=g0(6)

当x=x1时,

p(x1)=a0+a1(x-x0)=g1(7)

推得:

a1=(g1-g0)/(x1-x0)(8)

当x=x2时,

p(x2)=a0+a1(x2-x0)+a2(x2-x0)(x2-x1)=g2(9)

推得:

a2=[(g2-g0)/(x2-g0)-a1]/(x2-x1)(10)

依次递推可得到a3,…,an的表达式;

s6:求5种温度下的一至四阶均差,由均差定义,有:

f[x0,xk]=[g(xk)-g(x0)]/(xk-x0)(11)

其中f[x0,xk]表示函数g(x)关于点x0、点xk的一阶均差;则有:

f[x0,x1,…,xk]=[g(x0,x2,…,xk)-g(x0,x1,…,xk-1)]/(xk-xk-1)(12)

其中,f[x0,x1,…,xk]为函数g(x)的k阶均差;

s7:用步骤s6所求的均差替代步骤s5的多项式系数,可得多项式:

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

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

其中,x0,x1,…xn表示不同的温度,p(x)表示响应电压值,使响应电压值p(x)基本等于p(x0),消除了其他温度的影响,即实现了温度的补偿功能。

实施例2

本实施例给出更具体的实施方式:

步骤1:单片机通过a/d转换器将金属氧化物气体传感器输出的模拟量转变成数字量,实现气体浓度的数字化,如输出电压2.5v,则转变成二进制的数字量为10000000b(参考电压接5v)。某次测量的传感器实验数据如表1所示:

表1

步骤2:单片机通过单总线直接获取温度传感器测量的数据,如读取二进制数00100011b,则表示实际温度为22.5℃。

步骤3:单片机通过采取复合滤波算法,将金属氧化物气体传感器n次采样值按大小排队,然后去掉最大值和最小值,再对剩下的n-2个采样值求算术平均值,针对100ppm和0℃条件下,求得的平均值为00001000b(实际电压值约为0.802v)。

步骤4:求拟合多项式,取0℃、10℃、20℃、30℃、40℃5种温度下气体浓度与响应值的关系,分别为:

0℃:y=16.25u-3.70

10℃:y=16.73u-3.29

20℃:y=17.31u-2.83

30℃:y=18.15u-2.66

40℃:y=19.40u-2.61

步骤5:由牛顿插值定理,求牛顿插值多项式:

p(x)=a0+a1*(x-x0)+a2*(x-x0)(x-x1)+…+an*(x-x0)…(x-xn-1)

当x=x0时,

p(x0)=a0=g0

当x=x1时,

p(x1)=a0+a1(x-x0)=g1

当x=x2时,

p(x2)=a0+a1(x2-x0)+a2(x2-x0)(x2-x1)=g2

当x=x3时,

p(x3)=a0+a1(x3-x0)+a2(x3-x0)(x3-x0)+a3*(x3-x0)(x3-x1)(x3-x2)=g3

当x=x4时,

p(x4)=a0+a1(x4-x0)+a2(x4-x0)(x4-x0)+a3*(x4-x0)(x4-x1)(x4-x2)+a4*(x4-x0)

(x4-x1)(x4-x2)(x4-x3)=g4

步骤6:再求5种温度下的一至四阶均差,有:

一阶均差:f[x0,x1]=[g(x1)-g(x0)]/(x1-x0)

二阶均差:f[x0,x1,x2]=[g(x0,x1,x2)-g(x0,x1)]/(x2-x1)

三阶均差:f[x0,x1,x2,x3]=[g(x0,x1,x2,x3)-g(x0,x1,x2)]/(x3-x2)

四阶均差:f[x0,x1,x2,x3,x4]=[g(x0,x1,x2,x3,x4)-g(x0,x1,x2,x3)]/(x4-x3)

步骤7:用步骤6所求的均差替代步骤5的多项式系数,可得多项式:

p(x)=p(x0)+p[x0,x1](x-x0)+p[x0,x1,x2](x-x0)(x-x1)+p[x0,x1,x2,x3](x-x0)(x-x1)(x-x2)+p[x0,x1,x2,x3,x4](x-x0)(x-x1)(x-x2)(x-x3),

将0℃、10℃、20℃、30℃、40℃代入x0~x4,得到数据如表2所示:

表2

可以看出在同一浓度下,数据基本不随温度而变化,即实现了温度的补偿功能,误差为0.00045/0.05=0.9%,已经能满足实际的需要。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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