基于L-M算法的反向传播网络的湿度传感器输出误差补偿研究

2018-01-05 01:01李庆超
计算机测量与控制 2017年12期
关键词:湿度补偿神经网络

梁 杰,晏 天,李庆超

(国家海洋局 南海标准计量中心,广州 510000)

基于L-M算法的反向传播网络的湿度传感器输出误差补偿研究

梁 杰,晏 天,李庆超

(国家海洋局 南海标准计量中心,广州 510000)

针对湿度传感器的输出非线性问题,提出了基于L-M算法建立BP神经网络进行补偿校正,实现电阻型湿度传感器的输入与输出非线性补偿,并与共轭梯度算法、拟牛顿算法所建立的神经网路模型进行对比,重点比较了模型迭代性能、标准偏差;最后发现当神经网络用L-M算法进行训练模拟时在迭代性能、标准偏差等方面具有更优异的表现,更适合湿度传感器的非线性特性的补偿校正。

湿度传感器;误差补偿;反向传播网络;共轭梯度算法;拟牛顿算法;L-M算法

0 引言

相对湿度是空气中的水蒸汽量与使空气在当前温度下饱和所需的水蒸气量之比。相对湿度传感器是目前使用最广的测量湿度的仪器。湿度传感器可用于通风和空调系统、医疗设备、农业、供暖、汽车和半导体、建筑物生活环境智能控制等领域。对于人体,环境相对湿度应在40%~70%RH之间,低于这个范围人体会感觉干燥,高于这个范围则会感觉潮湿,低于或高于此范围的相对湿度会导致人体不适以及诸多健康问题,例如唇裂,鼻出血和喉咙干燥。 因此,湿度传感器在日常生活中非常重要。

湿度传感器是湿度测量仪器的核心部件,由于湿度传感器是由湿敏电阻或湿敏电容所构成,随着使用时间的增加其部件会自然产生老化,原有的出厂时的温度补偿不再适用,并且出厂时的湿度传感器输出补偿校正是对几个固定点经行修正,但是在实际使用中往往需要对湿度进行连续的测量,无法对其输出值的非线性误差进行补偿[1-3]。介于目前传统的湿度传感器校正的弊端,本文提出了一种新型的补偿校正方案,即利用神经网络的逼近和预测功能对其进行非线性误差补偿。通过对比传统的共轭梯度算法、拟牛顿算法和L-M算法筛选出最适合的一种算法作为补偿模型的建模基础,以更好的实现非线性误差补偿。

1 补偿原理

本文选用Honeywell公司的HIH3602-A型湿度传感器作为研究对象,其核心部件是陶瓷湿敏电阻,此类电阻的阻值不仅受湿度的影响,更受传感器所处的环境温度影响,随着环境温度改变和使用时间增加,其阻值会产生漂移导致测量准确度随时间下降[2-4]。

1.1 补偿原理模型

传统的湿度传感器补偿方式分为两种,第一种是硬件补偿,硬件补偿是在传感器的输出端采用硬件电路来减小温度、自然老化等环境因素的影响,但是硬件补偿不能完全消除这些因素导致的测量值的偏差,而且新的硬件电路的加入增加了系统的复杂性导致稳定性变差,此外,补偿电路也面临着与传感器本身相同的问题,即电路老化,而且硬件补偿结构固定,采用后很难对其进行改造;第二种是软件补偿,软件补偿是在传感器向显示终端输出测量值时对其读数进行软件修正,这对传感器自身的结构无任何影响,而且软件补偿可以根据实际情况调节参数,移植性和可重复性是硬件补偿无法相比的。

目前,传感器输出软件补偿最常采用的方法是最小二乘法拟合修正曲线,即实际测量值与标准值进行拟合,形成新的输出曲线,最后得出新的修正因子,但是最小二乘法只能在线性输出中应用,在非线性输出中曲线阶数过小无法反映实际输出,过大则会产生过拟合,对后面的测量值预测性变差,因此,最小二乘法拟合修正曲线在非线性输出修正中很少采用;神经网络修正技术在处理非线性复杂系统的修正补偿具有独特优势,神经网络是将大量的训练样本输入,对网络进行训练,从而调整每个神经元的权值和阈值,使输出值和标准值逐渐逼近,直至满足准确度要求,神经网络在处理非线性问题时是其他方法无法比拟的。在本文中采用神经网络的方法对传感器输出进行补偿,补偿原理模型由传感器测量模型和神经网络模型两部分组成。传感器测量模型部分主要是传感器感知外部的物理参量,对感知的物理参量通过电压、电流等方式进行输出,并通过AD转换对其进行数值化;神经网络补偿部分主要是在PC等终端运行的补偿软件,功能是对获得的经过数值化的物理参量进行在线修正,以弥补硬件测量电路的不足。

图1 传感器温度补偿原理图

根据实验数据,温度对湿度传感器的输出特性的影响是非线性的,在此,我们利用BP神经网络的逼近特性对非线性函数关系不断进行映射,并以此思路建立逆向的数学模型,确保神经网络的输出误差值在一定限度内,使湿度传感器的输出满足实际要求[5-6]。

湿敏传感器测湿过程中受到温度的影响可定义为函数(1),

S=f(Sb,T)

(1)

T为温度参数;S为传感器输出;Sb为湿度参数。

逆模型函数为:

Sb=kf-1(S,T)

(2)

其中:k为常数(由于输出补偿校正是在系统放大增益后执行的,所以k为常数1)。这里S和T为输出Sb的单值函数,Sb为湿度传感器的期望输出量,即标准量,T为湿度传感器的湿敏元件的环境参量。在网络中,将Sb和T作为网络的输入端,S为网络的输出端,通过自适应网络处理后的输出S就是消除了温度干扰量后的目标参量。根据实验所得的实验数据,进行网络训练,最后得出的输出量S经过函数拟合,拟合后得出的曲线就是修正后的理想输出。

1.2 BP网络及L-M算法

BP网络其逼近能力对湿度传感器的输出和输入关系的逆向建模可起到关键作用。BP神经网络是由输入层、隐层以及输出层等3层神经元构成,输入层是由多个输入节点构成是整个神经网络的数据输入端,隐层是对数据输入端输入的数据进行处理,输出层是对隐层处理过的数据进行输出,在输入层每个输入节点通过加权的方式进行求和,最后与隐层的阈值相比较,如果二者的误差大于预先设定的目标,输入层调整每个节点的权值继续进行计算,直到加权和与阈值的误差小于预先设定,则网络的训练目标达成,输出层神经元节点的函数模型为:

(3)

图2 BP神经网络结构图

BP神经网络是按照梯度的逆方向改变偏差和权值,即沿着最快减小函数误差的方向,迭代公式为:

xk+1=xk-akεk

(4)

式中,xk+1为网络前向运算中迭代产生的偏差和权值,xk为网络前向运算当前的偏差和权值,εk为隐层函数的梯度,ak为神经网络的学习效率。xk随着训练迭代次数的增加是不断变化的,变化的趋势是不断变小,向预设值收敛,εk是控制网络逼近的方向,ak是控制逼近的速度,当ak过大时会导致在收敛点来回震荡,而不能完成收敛过程,过小则导致出现极值,鲁棒性较差,抗干扰能力弱,所以在进行网络训练时合适的ak取值对整个网络的性能优劣非常重要,一般在(0.1~0.5)之间,BP神经网络的前向传播的计算公式为(5):

(5)

网络输出公式为:

(6)

因此误差公式为:

(7)

L-M算法是一种新型的算法,它主要是依靠标准数值优化技术来解决实际问题,与传统的神经网络算法相比利,它抛弃了均方误差进而用平方误差进行计算,他的训练和收敛速度快于其他算法,L-M算法在解决非线性问题上效率较高[7-10]。其平方误差公式为:

(8)

E为网络输出误差的平方和,okj为网络输出层的第k个神经元节点的实际输出,dkj为补偿网络的期望输出值。

2 实验设计

2.1 样本获取

利用BP网络实现对湿度传感器的非线性补偿,需要大量的学习训练样本,训练样本的获取是通过改变温度T,在不同

表1 神经网络训练样本

的标准湿度下测量实际湿度输出而得到,以此样本集作为神经网络的输入和输出,最后经过上述样本集训练的神经网络来实现湿度传感器非线性补偿。

本文中的训练样本是通过具体实验获得的,训练样本是在以下条件测量的:温湿环境是通过富奇调温调湿箱控制,相对湿度调节范围为(10~100)%,温度调节范围(-70~60)℃,输出信号是通过JJQ1型信号模拟器读取,标准湿度传感器为HMP45D(该仪器经过社会一级标准校准)。为了减小随机误差,每个测量点每隔5分钟读取一次数据,共读取10次,10次读取数据的平均值作为该点的未修正值,共测得50组未修正输出值,将这50组数据分为三类,第一类共40组,作为训练神经网络的训练样本,来对新的神经网络进行训练;第二类共5组,这5组的温度值是固定的,湿度值是不同的,用来验证神经网络在固定温度下不同湿度值的补偿校正效果;第三类共5组,在这5组中湿度是固定的,温度可变,用来验证网络在温度变化的情况下对湿度的补偿效果。

表1是实验得到的训练样本集,其中T为实验温度,Sb为标准湿度,由经过校准的标准湿度计测得,S为待校准湿度传感器实测湿度,训练过程中,样本选取按照[TSSb]进行,输入训练集为[TS],用来作为神经网络的输入层的输入数据,输出训练集为[Sb]。

2.2 网络模型训练

根据输入和输出数据特性,为了便于对原始数据训练,加快其收敛速度,需要在输入网络对网络训练前进行归一化处理,隐含层选取Tansig函数作为传递函数,输出选取线性激励函数Purelin,隐层节点个的计算没有固定的计算公式,可以根据经验公式(10)进行计算得出。

(10)

n为网络输入层节点个数,m为网络隐层节点个数,l为网络输出层节点个数,a为可以根据情况调节的常数(1~10)。经过对a在不同的取值情况下的网络训练,隐层节点的个数设为6时网络收敛和误差性能最好。最终形成的神经网络结构为输入层2个节点,隐层6个节点,输出层1个节点,网络结构为net=(2,6,1)。实验中采用40组实验获得的数据作为训练样本,温度为51.21℃的5个实验样本和标准湿度为96%RH的5个实验样本作为测试验证样本,网络经过训练后使用以上验证样本对其进行性能分析,并做误差统计。网络训练的具体步骤如下:

1)对神经网的各个节点的阈值和权值进行初始化,选取实验得到的数据作为输入的样本;

2)对40组用于训练网路的样本进行归一化处理,经过归一化后的值分布于(-1,1)范围内;

3)按照数据获得的顺序,输入经过归一化处理的40组样本;

4)根据需要,预先初始化期望误差值,matlab调用nntool网络工具箱对网络进行训练,并自动计算神经网络模型的输出标准偏差值,如果达到预先设定值,网络停止迭代,网络训练完成。

2.3 网络训练结果对比

在此我们使用matlab的网络工具箱nntool对设计的神经网络进行训练,训练过程中分别改变隐层的传递函数来对比三个算法在训练速度和训练准确度上的优劣,最后确定使用那种算法更适合对传感器进行修正补偿。补偿模型以L-M算法为基础,并与传统的用于函数拟合的共轭梯度算法、拟牛顿算法经行比较,分别用以上三种方法对神经网络进行训练,最后根据结果对各算法的性能进行分析,以确定那种算法被选用。

1)共轭梯度算法:在本算法中,由于共轭梯度算法的梯度值选择过大,导致训练提前结束,并未达到预先设定的误差值,当然可以通过减小梯度值来使其能够达到预定的准确度,但是其收敛速度会大大增加,图3为matlab使用网络工具箱训练的结果,训练次数为3300次,mse为5.0721e-07,仿真结果如图3所示。

图3 共轭梯度算法误差性能分析

2)拟牛顿算法:在这个算法中网络精度达到了预先设定值,但是在训练过程中,波动较大,容易在收敛过程中产生过拟合,导致在设定点来回波动,无法精确计算其稳定性,最后在反演时导致修正后的测量值不确定度较大,图4是其训练后的结果,训练次数158次,mse为9.8632e-08, 仿真结果如图4所示。

图4 拟牛顿算法误差性能分析

3)L-M算法:本算法无论在收敛速度还是精度都优于前两种算法,而且其波动较小,可以精确的收敛在预设点,最后经过反演出的实际测量值不确定度较小,精度较高。训练次数为34次,mse为9.7577e-08,仿真结果如图5所示。

图5 L-M算法误差性能分析

综合以上,经过仿真对比,L-M算法在收敛速度和输出误差性能上优于共轭梯度算法和拟牛顿算法,他不但在收敛速度和收敛精度上占优,更重要的是在收敛过程中其波动性较小,鲁棒性较好,有较强的抗干扰能力,适合作为传感器补偿的算法。因此,湿度传感器的补偿校正选用L-M算法作为网络模型的建模基础。

3 实验结果与分析

由于湿度传感器内的湿敏电阻不但对湿度敏感,温度对其阻值也会有影响,所以要对其分别经行实验和分析,湿度传感器输出补偿校正分以下两种情况:

1)由实验数据可知,在温度固定时随着湿度增加,湿度传感器的输出值也增加,但是测量值与标准湿度计的测量值误差也在不断增大,因此其输出误差呈现非线性。在实际使用中有必要对需要的某一个固定点温度的湿度进行修正补偿,在试验中L-M算法进过训练达到预设的预测输出的最小值,选择某一固定温度点(以51.21℃为例)的5组数据经行验证,把这5组数据经过归一化处理后输入神经网络对输出进行预测,预测结果即为补偿后的输出,预测输出结果见表2和图6。

表2 51.21℃时5组不同湿度点测试样本非线性补偿结果

图6 51.21℃时5组不同湿度点测试样本相对误差

对表2进行分析可知,在同一固定温度51.21℃下,湿度传感器未进行输出补偿时最大相对误差为-15.4%,无法满足国家检定规程±5%的标准要求,而经本文方法补偿后,最大相对误差为1.4%,很大程度上减小了输出误差,图6是补偿前和补偿后相对误差。由此可见本文方法在温度固定情况下对湿度传感器不同湿度值的补偿是有效的。

2)不同的温度会导致湿敏电阻在不同温度点有不同的阻值,由实验数据可知,温度对湿敏电阻的阻值影响是非线性的,即在同一个标准湿度环境中,由于温度的不同,湿度传感器的示值也会发生变化,在PC端通过matlab中的神经网络工具箱运行经过训练的神经网络,L-M算法经过训练达到预设的预测输出的最小值时,选择5组某一固定标准湿度(以96%RH左右为例)在不同温度下的实测值数据经行测试验证,将选取的样本进行归一化处理后,输入神经网络进行预测,预测结果即为补偿后的输出,结果见表3和图7。

表3 96%RH时5组不同温度点测试样本非线性补偿结果

图7 96%RH时5组不同温度点测试样本相对误差

从表3可以看出,同一标准湿度96%RH下,未进行温度补偿时传感器的输出最大相对误差为-7.7%,国家湿度检定规程要求±7%RH(标准湿度40%RH以下或70%RH以上),经过本文的方法补偿修正后最大相对误差为1.2%,图7是同一标准湿度点不同温度下补偿后的相对误差,与补偿修正前相比,传感器的输出准确度有很大的提升。

综合(1)和(2)两种情况,根据补偿前后的传感器输出特性曲线进行比较如图6和图7,可以看出,经过补偿后精度远高于补偿前,实验仿真结果表明,传感器经过基于L-M算法的BP神经网络补偿后,输出更接近湿度标准值,说明该方法较准确的实现了湿度传感器的非线性补偿校正,达到了预期目标。

4 结束语

本文提出了湿度传感器补偿模型,针对其本身的输出非线性特性和由于温度的影响导致的非线性输出特性而引入补偿环节,利用L-M算法、拟牛顿算法、共轭梯度算法等3种算法

的BP神经网络经行仿真验证,结果表明以L-M算法为基础的BP神经网络对湿度传感器输出进行补偿时效果最为优异,补偿校正后误差不大于1.4%,湿度传感器的准确度有了显著的提高,满足了实际使用的需要,本文基于神经网络的传感器非线性补偿为传感器的校准提供了新的设计思路。

[1] 王 悦,叶海明.LabWindows/CVI下基于BP神经网络的温度补偿虚拟湿度测量系统设计[J].国外电子测量技术,2010,29(1):36-38.

[2] Wang X D, Ye M Y.Hysteresis and nonlinearity compensation of relative humidity sensor using support vector machines[J].Sensors and ActuatorsB:chemical,2008,129(1)274-284.

[3] 俞阿龙.基于RBF神经网络的热敏电阻温度传感器非线性补偿方法[J].仪器仪表学报,2007,28(5):899-903.

[4] 孙文良,沈秋宇.HMP45D温湿度传感器的检定校准 [J].气象水文海洋仪器,2009(3):124-126.

[5] 周胜海.传感器非线性的硬件校正方法 [J].仪表技术与传感器,2002,21(5):1-4.

[6] 陈俊杰,卢 俊,黄唯一.基于遗传神经网络的传感器系统的非线性校正[J].仪器仪表学报,2003,24(2):201-204.

[7] 司端锋,常炳国,刘君华.基于BP神经网络的传感器特性补偿新算法的研究[J].仪表技术与传感器,2000(1):11-14.

[8] 顾 磊,黄庆安,秦 明.一种新型CMOS兼容湿度传感器[J].半导体学报,2004,25(2):174-178.

[9] 卢智远,周永军.传感器非线性误差校正的BP神经网络方法研究[J].传感器技术,2005,24(2):11-12.

[10] 刘 涛,王 华.传感器非线性校正的遗传支持向量机方法[J].电子测量与仪器学报,2011,25(1):56-60.

Research on Output error Compensation of Humidity Sensor Based on L-M Algorithm and BP Neural Network

Liang Jie,Yan Tian,Li Qingchao

(South China Sea Standard Metrology Center,Guangzhou 510000,China)

Aiming at the nonlinear output of humidity sensor, a nonlinear compensation scheme based on BP neural network is proposed. BP neural network is established based on L-M algorithm, and the input and output nonlinear compensation correction of the resistance humidity sensor is realized, Compared with the conjugate gradient algorithm and the BP neural network model proposed by the quasi Newton algorithm, the model error performance and convergence speed are compared. The results show that the BP neural network model based on L-M algorithm has more efficient performance in convergence speed, error performance and so on, its compensation correction is more suitable for nonlinear characteristics of humidity sensors.

humidity sensor;error compensation;Back propagation network;conjugate gradient algorithms;bfgs;levenberg-marquardt algorithm

2017-05-18;

2017-06-08。

国家海洋局南海分局局长基金(1637)。

梁 杰(1985-),男,硕士研究生,工程师,主要从事海洋计量,气体分析,粘度与密度测量方向的研究。

1671-4598(2017)12-0302-05

10.16526/j.cnki.11-4762/tp.2017.12.078

TP837

A

猜你喜欢
湿度补偿神经网络
基于递归模糊神经网络的风电平滑控制策略
湿度变送器测量结果不确定度评定
加湿器用不对 警惕肺炎缠身
疫情下的补偿式消费 引爆宠物氪金新时代
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
基于Q-Learning算法和神经网络的飞艇控制
解读补偿心理
带有双检测结构的电缆接头保护装置
基于自学习补偿的室内定位及在客流分析中的应用