APP下载

基于PSO-BP神经网络的湿度传感器温度补偿*

2015-04-17行鸿彦邹水平

传感技术学报 2015年6期
关键词:权值湿度粒子

行鸿彦,邹水平,徐 伟,张 强

(1.南京信息工程大学气象灾害预报预警与评估协同创新中心,南京 210044;2.南京信息工程大学,江苏省气象探测与信息处理重点实验室,南京 210044)



基于PSO-BP神经网络的湿度传感器温度补偿*

行鸿彦1,2*,邹水平1,2,徐 伟1,2,张 强1,2

(1.南京信息工程大学气象灾害预报预警与评估协同创新中心,南京 210044;2.南京信息工程大学,江苏省气象探测与信息处理重点实验室,南京 210044)

针对自动气象站采用的HMP45D型温湿一体化传感器在实际应用过程中易受温度影响的问题,提出了基于粒子群优化算法(PSO)的BP神经网络温度补偿模型,利用粒子群优化算法对BP神经网络的初始权值阈值进行全局寻优,将粒子群优化算法优化好的权值阈值赋给BP神经网络,对BP神经网络进行训练。根据不同温度条件下测得的多组湿度传感器数据,通过建立模型,实现温度补偿,与传统BP神经网络补偿结果进行比较。实验表明,与传统BP神经网络模型相比,利用PSO-BP神经网络模型进行温度补偿后所得的误差绝对值之和降低了10.3887%RH,PSO-BP神经网络可以克服传统BP神经网络易陷入局部极值的局限,补偿精度更高,能更加有效地补偿温度对湿度传感器的影响。

温度补偿;粒子群优化算法;BP神经网络;湿度传感器

空气湿度是自动气象站观测数据中的一个重要参数,目前气象部门大部分都采用Vaisala公司生产的HMP45D温湿度一体化传感器来测量空气的湿度[1-3]。HMP45D温湿度传感器的测湿元件是HUMICIP180高分子薄膜型湿敏电容,湿敏电容是具有感湿特性的电介质,其介电常数随相对湿度的变化而变化,从而完成对湿度的测量。由于该传感器的测量部分总是暴露在空气当中,温度的变化会影响电介质介电常数的变化,使得湿度传感器产生一定的温漂,导致湿度传感器所测得的数据,与标准器的相对湿度值相比,误差较大,因此必须采取相应的措施进行湿度传感器的温度补偿,使得补偿后的结果符合相对湿度测量的误差要求。

针对温度对湿度传感器的这种非线性影响,国内外学者围绕硬件电路补偿和软件补偿两种方法进行研究[4-5]。硬件补偿方法成本昂贵,电路比较复杂,调试也比较困难,难以做到全程补偿,再次电路中的电子器件本身会产生新的温度漂移,影响整个湿度传感器测量系统的精度。软件补偿方法有二次插值、多元回归、BP神经网络法[6-10]等。二次插值法的最优解范围取得越小,计算结果越精确,但是循环的次数会变多。多元回归建立了两组变量间的线性因果关系,但忽略了交互效应和非线性的因果关系。BP神经网络由于是非线性优化,权值的初始化是随机的,BP神经网络结构选择具有偶然性,会存在局部极小的问题。PSO(Particle Swarm Optimization Algorithm)算法具有很好全局寻优能力,可以用来优化传统BP神经网络权值阈值,克服BP神经网络陷入局部极小的缺陷。

本文在分析现有方法的基础上,采用PSO算法优化BP神经网络的方法,讨论PSO算法的适应度函数以及部分参数的选择,利用PSO算法全局搜索能力来优化BP神经网络的初始权值阈值,使得BP神经网络结构得以优化,建立PSO-BP神经网络的湿度传感器温度补偿模型,补偿温度对湿度传感器测量结果造成的影响,并与传统BP神经网络方法进行比较,为提高湿度传感器的温度补偿精度提供一定的参考价值。

1 算法原理

1.1 BP神经网络

BP神经网络[11-13]是一种多层前馈型神经网络,在信号前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。下一层神经元状态只受前一层神经元状态的影响,如果输出层没有得到期望输出,则转入误差反向传播,根据预测误差调整网络权值阈值,使输出不断逼近期望值。BP神经网络的结构图如图1所示。

图1 BP神经网络结构图

X1,X2,…,Xn是网络输入,Y1,Y2,…Ym是BP神经网络预测输出,wij和wjk为网络权值。

隐含层的输出H:

(1)

f函数是隐层激励函数,为S型函数,S型函数为:

y=1/(1+e-x)

(2)

BP神经网络的预测输出为:

(3)

由此可计算网络预测误差e:

ek=Yk-Okk=1,2,…,m

(4)

1.2 粒子群算法

粒子群优化算法(PSO)[14-15]是一种群体智能的优化算法,国内外有多种优化算法,如演化规划、变异算法、蚁群算法[16]等。为了得到较好的预测精度和较快的预测收敛速度,我们采用粒子群优化算法。PSO算法源于对鸟类捕食行为的研究,算法中的每个粒子相当于鸟群中的鸟的角色,把每个粒子的位置定义为优化问题中的可能解。

数学算法模型如下:

PSO初始化为一群随机粒子,每个粒子代表极值优化问题的潜在最优解,然后通过迭代找到最优解,每次迭代通过追随个体极值和全局极值来更新个体位置,每个位置代表问题的一个潜在解。假设在一个D维的搜索空间里,存在n个粒子组成的一个种群,其中第i个粒子在D维搜索空间中的位置表示为一个D维的向量,根据适应度函数可计算出每个粒子位置对应的适应度值。第i个粒子的速度为,其个体极值为,种群的全局极值为。

在找到个体极值和全局极值时,粒子通过式(5)和式(6)来更新自身的速度和位置。

(5)

(6)

式中:w为惯性权重;k为当前迭代次数;为粒子的速度;为粒子的位置;c1和c2为学习因子,也称为加速度因子,通过实验我们选c1=c2=2.5[17]进行计算;和是介于[0,1]之间的均匀随机数。为限制粒子的位置和速度,通常将其设定在一定的区间。

2 基于PSO-BP神经网络温度补偿算法

将BP神经网络与PSO算法结合[18-20],就是把PSO算法的全局搜索能力和BP神经网络的局部快速搜索能力较好地结合起来,以避免网络陷入局部极小来提高网络的训练速度。定义PSO中的粒子位置对应着BP神经网络中一组待优化的权值阈值,通过找到最优粒子位置得到最优的网络结构,然后通过这个神经网络结构进行温度补偿。使得神经网络的预测输出值与样本期望输出值的误差绝对值之和达到最小,其适应度函数为:

(7)

式中:为学习样本数,为网络的实际输出,为样本输出。学习使得J≤ζ,为设定的最小误差。

PSO-BP算法的具体步骤描述如下:

①初始化。设定PSO-BP神经网络的相关参数。确定神经网络的层数,每一层神经元的个数,以及需要优化的粒子维数。其中PSO算法需要优化的权值阈值总个数为:N=(m+1)×n+(n+1)×t,m为输入神经元个数,n为隐层神经元个数,t为输出层神经元个数,对粒子的速度和位置进行随机初始化。

②计算适应度。按照适应度函数计算网络输出与样本期望输出误差绝对值之和。

③寻找个体极值和群体极值。将每个粒子的适应度函数值与个体极值进行比较,如果适应度函数值更小,则该适应度函数值成为新的个体极值;并将新的个体极值与全局最佳适应度值进行比较,若更小,则将其作为当前的群体极值。

④根据式(5)和式(6)更新粒子的位置和速度。

⑤看全局最优适应度值是否小于设定误差或者迭代次数大于最大迭代次数,若不满足条件,返回步骤③;若满足条件,则输出的全局最优粒子位置即为最优的BP神经网络权值阈值。

PSO-BP算法的流程图如图2所示。

图2 PSO-BP流程图

3 实验仿真

3.1 实验数据获取

实验数据采用课题组2012年在中国气象局气象探测中心实验所得,温度对湿度传感器影响的检定实验是在实验箱中进行,利用JJQ1型信号模拟器对传感器进行数据采集。按照精密湿度发生器的使用说明做好开机预热和其他准备工作后,将被测湿度传感器、温湿度仪(标准通风干湿表作为标准器)挂到温湿度检定箱内挂架的同等高度上,打开自动气象站、湿度检定箱的电源开关,预热0.5 h后输入湿度检定点上的稳定时间。先是调整温湿度检定箱里的温度,然后再按湿度检定点调整箱内湿度,一个湿度点检定完毕,改变箱内湿度调到下一个湿度点,其他各点的检定方法相同。每个湿度测试点上的10次测量值的平均值,作为该湿度测试点上的测量值,温湿度仪的输出值作为测量的标准值。详细步骤和数据参见文献[6]。

自动气象站采用的HMP45D型湿度传感器在实际业务运行过程中,其测量结果容易受温度变化的影响,特别是在高温高湿条件下湿度传感器受到的影响更大。因此有必要对HMP45D型湿度传感器进行温度补偿。

3.2 湿度传感器的温度补偿

根据PSO-BP神经网络算法原理,采用图2步骤进行HMP45D型湿度传感器的温度补偿,对HMP45D型湿度传感器在不同温度条件下测得的多组湿度数据进行选取,选出一部分样本作为训练样本,剩下的作为测试样本,把温度干扰值和相对湿度测量值作为输入,标准相对湿度值作为期望输出。

建立单隐层BP网络模型,根据BP神经网络算法原理,确定输入节点2个,输出节点1个,隐层节点5个。设最大迭代次数1500,目标误差1×10-6,学习速率0.01。训练函数选为默认函数trainlm,学习函数选为默认函数learngdm;根据PSO算法原理,粒子的初始位置和速度在允许范围内随机产生,种群规模选为40,惯性权重设为1,学习因子。

利用PSO算法寻优结束后相应的权值阈值矩阵分别为:

w1=[0.3798 1.1237 -1.9158 -2.7170 -2.1389 1.7966 -2.4438 -2.5078 1.4103 0.9178]

w2=[-0.0711 -0.5812 -0.4443 2.3841 -2.3883]

B1=[-0.9897 0.9399 -0.8599 2.5779 1.9380]

B2=[-0.0474]

通过采用PSO-BP神经网络建立的模型,将PSO算法优化好的的权值阈值赋给BP神经网络,对BP神经网络进行训练,然后对训练的结果进行测试,所得结果如图3所示。

图3(a)中,绿色圆点代表PSO-BP神经网络的预测输出,蓝色星号对应的点代表期望输出,从(a)图中可以看出绿色的圆点几乎都覆盖在了蓝色的星号上面,说明PSO-BP神经网络能够以很小的误差预测出湿度传感器的真实值;从图3(b)可知,到了100代的时候适应度值就已经达到了最低,也就是PSO算法训练到100代的时候就已经收敛到最佳的权值阈值了。

由图4可知同样的目标误差下,经过PSO算法优化后的BP神经网络迭代步数要少,训练速度较快,表明经过PSO算法优化后的BP神经网络的权值阈值得到了全局寻优,提高了运行效率。

图3 PSO-BP仿真结果

图4 有无PSO优化的BP神经网络误差平方和曲线

3.3 性能对比

将PSO-BP神经网络和传统BP算法进行仿真研究,对实验结果进行比较。利用实验所得样本数据对PSO-BP神经网络模型和传统BP神经网络模型进行训练,对训练的结果进行测试,最后得到的HMP45D型湿度传感器进行温度补偿后的部分数据如表1所示。

从表1可以看出,不同温度条件下的湿度传感器测量值在经过PSO-BP神经网络模型补偿后都很接近相应的标准值,且PSO-BP神经网络补偿后的相对湿度拟合值误差比BP神经网络要小,预测精度最高提高了0.975 4%RH,更加接近真实值,比传统BP神经网络的补偿精度要高,说明本文建立的PSO-BP神经网络模型优于BP神经网络模型。

根据表1数据,得到PSO-BP神经网络与传统BP神经网络进行温度补偿的误差对比图如图5所示。

表1 PSO-BP和BP模型温度补偿后的结果

图5 误差曲线

图5中蓝色曲线是BP神经网络进行温度补偿后的误差曲线,红色曲线是PSO-BP神经网络的误差曲线,由图5可以看出,PSO-BP神经网络的补偿精度明显比传统BP神经网络要高,PSO算法通过全局寻优,避免了BP神经网络陷入局部极小值,特别是高温高湿条件下的补偿效果更明显。将PSO-BP神经网络模型和传统BP神经网络模型补偿所得结果的误差进行绝对值求和可得到:利用传统BP神经网络模型进行补偿后的误差绝对值之和为28.6350%RH;利用PSO-BP神经网络模型进行补偿后的误差绝对值之和为18.2463%RH,因此误差绝对值之和也反映了PSO-BP算法补偿的精度要比BP算法补偿精度高。

4 结束语

对于温度影响湿度传感器输出这种情况,本文提出了PSO-BP神经网络的温度补偿方法。PSO算法是基于全局寻优的搜索算法,采用BP神经网络与PSO算法结合的模型,既能发挥BP神经网络的局部快速搜索能力,又能避免BP神经网络训练时陷入局部极小值,与传统BP神经网络模型相比,利用PSO-BP神经网络模型进行温度补偿后所得的误差绝对值之和降低了10.3887%RH,预测精度最高提高了0.975 4%RH,迭代步数更少,运行效率更高。其补偿效果明显优于传统BP神经网络,该方法有效补偿了温度对湿度传感器产生的影响,提高了传感器的测量可靠性和准确性。

[1] 中国气象局. Ⅱ型自动气象站行业标准[S]. 北京:气象出版社,2000.

[2] 袁希光. 传感器技术手册[M]. 北京:国防工业出版社,1992:325-332.

[3] 刘锋,董蔷薇. HMP45D温湿度传感器的工作原理及维护[J]. 大众科技,2011(4):13-14.

[4] Lung-Tai Chen,Chia-Yen Lee,Wood-Hi Cheng. MEMS-Based Humidity Sensor with Integrated Temperature Compensation Mechanism[J]. Sensors and Actuators A:Phsical,2008,147(2):522-588.

[5] Wang Xiaodong,Ye Meiying. Hysteresis and Nonlinearity Compensation of Relative Humidity Sensor Using Support Vector Machines[J]. Sensors and ActuatorsB:Chemical,2008,129(1):274-284.

[6] 行鸿彦,彭基伟,吕文华,等. 一种湿度传感器温度补偿的融合算法[J]. 传感技术学报,2012,25(12):1711-1716.

[7] 彭基伟,吕文华,行鸿彦,等. 基于改进GA-BP神经网络的湿度传感器的温度补偿[J]. 仪器仪表学报,2013,34(1):153-160.

[8] 行鸿彦,武向娟,吕文华,等. 自动气象站数据采集器温度通道的环境温度补偿[J]. 仪器仪表学报,2012,33(8):1868-1875.

[9] Paul K H Phua,Daohua Ming. Parallel Non-Linear Optimization Techniques for Training Neural Networks[J]. IEEE Transaction on Neural Networks,2003,14(16):1460-1467.

[10] 杨红霞,曹新亮. 湿度传感器温度补偿法的研究[J]. 传感器与微系统,2007,26(5):18-20.

[11] 罗成汉. 基于MATLAB神经网络工具箱的BP网络实现[J]. 计算机仿真,2004,21(5):109-111.

[12] 张永怀,刘君华. 采用BP神经网络及其改进算法改善传感器特性[J]. 传感技术学报,2002(3):185-188.

[13] 董长虹. MATLAB神经网络与应用[M]. 北京:国防工业出版社,2007:121-124.

[14] 史峰. MATLAB智能算法30个案例分析[M]. 北京:北京航空航天大学出版社,2011:102-107.

[15] 冯辉宗,吴小敏,袁荣棣,等. 基于PSO-BP神经网络的发动机故障诊断[J]. 化工自动化及仪表,2013,49(1):76-79.

[16] 徐静. 粒子群优化算法的改进方法研究[D]. 华中师范大学,2011.

[17] 任凤鸣,李丽娟. 改进的PSO算法中学习因子(c1,c2)取值的实验与分析[J]. 广东工业大学学报,2008,25(1):86-89.

[18] 张朝龙,江巨浪,李彦梅,等. 基于云粒子群-最小二乘支持向量机的传感器温度补偿[J]. 传感技术学报,2012,25(4):472-477.

[19] Wang H S,Wang Y N,Wang Y C. Cost Estimation of Plastic Injection Molding Parts through Integration of PSO and BP Neural Network[J]. Expert Systems with Applications,2013,40(8):418-428.

[20] 孙艳梅,苗凤娟,陶佰睿. 基于PSO的BP神经网络在压力传感器温度补偿中的应用[J]. 传感技术学报,2014,27(3):342-346.

行鸿彦(1962-),男,博士,1983年于太原理工大学获得学士学位,1990年于吉林大学获得硕士学位,2003年于西安交通大学获得博士学位,现为南京信息工程大学教授,博导,主要研究方向为气象仪器设计与计量,信号检测与处理等,xinghy@nuist.edu.cn;

邹水平(1990-),女,2013年于湖北师范学院获得学士学位,现为南京信息工程大学硕士研究生,主要研究方向为仪器仪表技术、传感器信号与信息处理,412034408@qq.com。

The Temperature Compensation for Humidity SensorBased on the PSO-BP Neural Network*

XINGHongyan1,2*,ZOUShuiping1,2,XUWei1,2,ZHANGQiang1,2

(1.Collaborative Innovation Center on Forecast and Evaluation of Meteorological Disasters,Nanjing University ofInformation Science and Technology,Nanjing 210044,China;2.Key Laboratory for Aerosol-Cloud-Precipitation of China Meteorological Administration,Nanjing University ofInformation Science and Technology,Nanjing 210044,China)

According to the temperature and humidity sensors of the type HMP45D on the automatic weather stations influenced easily by temperature in the actual application,compensation of humidity sensor model by the Back Propagation(BP)network based on Particle Swarm Optimization(PSO)algorithm has been proposed. The initial weight and threshold of BP network can be searched globally in PSO algorithm,then assigns the optimized weight and threshold to BP network for training. Multiple groups of the humidity sensor datas has been measured under the condition of different temperatures,Using this method to establish a model for temperature compensation,and the results were compared with general BP neural network method. The experimental results show that the sum of absolute value of error by the use of PSO-BP neural network model for temperature compensation is reduced by 10.3887%(RH)compared with that of the traditional BP neural network model. PSO-BP neural network not only can overcome the limitations that the traditional BP neural network is easy to fall into local minima,but also have the higher precision,and it can more effectively compensate the influence of temperature on humidity sensor.

temperature compensation;particle swarm optimization algorithm(PSO);BP neural network;humidity sensor

项目来源:国家自然科学基金项目(61072133);江苏省产学研联合创新资金计划项目(BY2013007-02,BY2011112);江苏省高校科研成果产业化推进项目(JHB2011-15);江苏省“信息与通信工程”优势学科和江苏省“六大人才高峰”计划项目

2015-01-04 修改日期:2015-02-18

C:7230

10.3969/j.issn.1004-1699.2015.06.015

TP274

A

1004-1699(2015)06-0864-06

猜你喜欢

权值湿度粒子
一种融合时间权值和用户行为序列的电影推荐模型
路基上CRTSⅡ型板式无砟轨道湿度场分析
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
CONTENTS
基于膜计算粒子群优化的FastSLAM算法改进
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群优化极点配置的空燃比输出反馈控制
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
跟踪导练(二)(2)