一氧化碳气体检测仪的算法设计
扫描二维码
随时随地手机看文章
摘要:基于红外光谱吸收原理,对一氧化碳的浓度检测进行研究。为了在不提高成本的条件下提高设备测量精度,采用二维拉格朗日插值算法对测量alpha表进行插值。实验表明,运用拉格朗日算法进行插值造成的误差在设备误差允许范围内。该方法在同样精度条件下,需要更少的采样点数,从而降低了设备成本。
关键词:一氧化碳;检测仪;拉格朗目插值算法;红外光谱吸收
0 引言
一氧化碳(CO)是最为常见的一种有毒有害的可燃可爆性气体,它给工业安全生产带来了巨大的危害。因此研制一种能够实时准确地测量一氧化碳气体浓度的气体检测仪是非常必要的。目前应用于一氧化碳气体的检测方式主要有气相色谱法、光干涉法、半导体气体传感器、红外光谱吸收式等,以上四种一氧化碳气体浓度测量方法各有优缺点。然而红外光谱吸收法表现出更多的优点,红外光谱吸收式的基本原理为:将窄带光源波长对准被测气体某一吸收峰,用正弦信号对激光波长进行调制,调制后的激光通过被测气体,由于气体的吸收效应,波长调制转换为强度调制,当激光中心波长对准气体吸收峰的中心处,输出光包含有调制频率的二次谐波信号,而且信号幅度正比于气体的浓度。通过提取吸收信号的二次谐波,便可实现气体浓度的测量。与差分吸收法相比,谐波检测法具有更高的分辨率。本文采用红外光谱吸收式来实现对一氧化碳气体浓度的测量,在一氧化碳气体检测仪的设计过程中,将拉格朗日插值思想应用于数据处理。本文主要对一氧化碳气体检测仪中算法的设计进行研究,对数据进行最优化处理。
1 拉格朗日插值的意义
红外光谱技术光谱吸收技术的基本原理是比尔一朗伯特(Beer Lambert)定律,出射光强I与入射光强Io的关系为I=Ioexp[-a(v)CL],其中a(v)为气体在一定频率v处的吸收系数;C为气体浓度;L为气体吸收的路径长度。由于a(v)是关于环境温度和压强的函数,只要测量出环境中的温度和压强就可以求出a(v)的值,但是该函数的解析表达式相当复杂,不便于处理和计算,无法实时准确地计算出a(v)的值,也就无法求出被测气体的浓度。因此设计某种算法比较准确地求出a(v)的值将成为一氧化碳测量的关键环节,当求出一氧化碳气体吸收系数后,就可根据比尔-朗伯特定律用算法实现一氧化碳气体浓度的测量。
本文采用拉格朗日插值算法思想来实现对吸收系数a(v)的处理,并通过程序来比较准确的求出吸收系数a(v)的值。这里我们可以通过实验得到许多在不同温度和压强下一氧化碳气体的吸收系数,但它们是一些孤立离散的点,是不连续的。然后运用拉格朗日插值的思想对他进行处理,由于一氧化碳的吸收系数a(v)与温度和压强2个参数有关,因此本文用二维拉格朗日插值算法来实现。
在设计一氧化碳气体浓度测量算法时,使用拉格朗日插值算法进行相关的处理,可使准确的求出一氧化碳气体的浓度。由此可知,对一氧化碳气体检测仪进行算法设计是非常必要的,这种拉格朗日插值算法思想在气体检测方面将具有较大的应用前景。
2 拉格朗日插值原理
2.1 拉格拉朗日插值
拉格朗日插值由线性插值与抛物线插值推广而来,将n=1及n=2的插值推广到一般情形,考虑通过(n+1)个点,(xi,f(xi))(i=0,1,2,…,n)的插值多项式Ln(x),使Ln(xi)=f(xi)i=0,1,2,…,n。
用插值基函数方法可得:
2.2 二维拉格朗日插值
首先说明二维拉格朗日插值的原理,假定在平面xOy的一个长方形网格的节点上,给定f(x,y)的函数值,即定义在节点的值为fi,j=f(xi,yj)。一个双插值由两步组成,每一步都利用一个一维插值。
第一步,做y方向的插值,求出E和F点的插值:
第二步,在fE和fF之间做线性插值:
其中二维区域的双线性区域如图1所示。
把这两步写成一个公式,可得:
以上部分是通过二维线性插值的方法来实现对数据的处理的,这种方法对于数据处理来说仍有不足的地方,根据上述相同的数据处理思想,可以利用二维拉格朗日插值算法来实现其相同的功能,使数据处理效果更佳。
3 拉格朗日插值算法设计
3.1 拉格朗日插值算法实现的方法
本算法用拉格朗日插值公式对二维不等距观测数据进行成组插值,实现对吸收系数的计算。可以选择不同的节点数n来实现插值。有观测数列(x1,y1),(x2,y2),…,(xn,yn),并且x1<x2<…<xn。当观测样点数m较大时,如用全区间拉格朗日插值,计算量将很大,也无必要。为此,选定节点数n,这里n<m,在全区间内进行移动插值。此时,对于计算给定点x的函数值y(x)的拉格朗日插值公式为:
式中:j是移动插值时所取n个插值节点中最大的那个序号数,做如下取值:
m是观测数列的样点数。
通过二维拉格朗日插值算法的处理,就能够较为精确地求出吸收系数,从而根据比尔-朗伯特(Beer Lambert)定律I=Ioexp[-a(v)CL]反推出被测一氧化碳气体的浓度,其中a(v)为吸收系数;I(t),Io可通过激光探测器测量得到;L为吸收路径长度,由设计者自行设定。
3.2 拉格朗日插值算法实现的步骤
拉格朗日插值算法实现的步骤为:
(1)给出所需的输入量给出插值节点控制数n,插值点序列(xi,yi),i=0,1,2,…,n,和要计算的点x。
(2)设计拉格朗日插值函数(伪码形式)
第三步:输出ln(x)的计算结果fx
4 实验结果
使用拉格朗日插值算法修正后,通过实验测得几组在不同温度和压强下被测气体的浓度,并与实验给定样气浓度值进行比较,得出测量结果与标准浓度之间的差值,由测量差值便可知气体检测仪性能的好坏,数据如表1所示:
通过实验可以知道,被测气体的温度和压强是未知的,通过传感器测量出的温度和压强可能在数据表中不存在,对于这些不存在的温度和压强点,便可以使用拉格朗日插值算法进行处理,实时准确地测量出被测气体的浓度。由此可知,对一氧化碳气体检测仪进行算法设计是非常必要的,这种拉格朗日插值算法思想在气体检测方面将具有较大的应用前景。
5 结语
本文基于红外光谱吸收原理应用拉格朗日插值思想实现对一氧化碳气体检测仪的数据处理,详细地说明了拉格朗日插值的思想、使用拉格朗日插值算法的实际意义,并用拉格朗日插值算法实现了对被测气体浓度的测量。用Freescale单片机作为处理器,以Code Warrior为开发平台,运用C语言实现拉格朗日插值算法。实验表明,该系统基于红外光谱吸收原理,用拉格朗日插值算法实现了对环境中一氧化碳浓度的测量,与以往气体检测仪相比,本设计方法降低了硬件结构,优化了系统性能,节约了成本,缩短了开发周期,使得检测结果更加准确。