APP下载

基于神经网络遗传算法的湿度测量系统研究

2018-05-14杭潇闫玉磊张铎王雅琴

安徽农业科学 2018年1期
关键词:遗传算法

杭潇 闫玉磊 张铎 王雅琴

摘要 在研究湿度测量和控制原理的基础上,设计了一种基于神经网络遗传算法的湿度测量系统。系统采用DHT11湿度传感器,利用改良的神經网络遗传算法对湿度测量进行优化。结果表明,经神经网络遗传算法优化的湿度测量仪可以将精度控制在1.6×10-2,大大地提高了湿度测量的精度,并且基于该算法的湿度测量具有很好的鲁棒性和自适应性。

关键词 湿度测量;B-P神经网络;遗传算法

中图分类号 S126文献标识码 A文章编号 0517-6611(2018)01-0189-03

Abstract On the basis of studying the principle of humidity measurement and control, a humidity measurement system based on neural network and genetic algorithm was designed. In this system, DHT11 humidity sensor was used, and the humidity measurement method was optimized by using an improved neural network and genetic algorithm. The test results showed that the humidity could be controlled in the accuracy of 1.6×10-2 by using this system, which enhanced the humidity measurement accuracy greatly. Moreover, the humidity measurement based on this system had good robustness and self-adaptability.

Key words Humidity measurement;B-P neural network;Genetic algorithm

水汽是室内空气质量的一个重要参数,湿度测量是空气检测的重要组成部分。现有的湿度测量技术有干湿球测量法、露点湿度测量法和数字湿度计等。干湿球法用干湿球方程换算出湿度值,而干湿球的测量精度与风速有很大的关系[1]。露点湿度测量[2]价格比较昂贵,且需要有经验的人操作及保养。数字湿度计便于携带,读数方便,但存在扩展不确定度的缺点[3]。李茂权等[4]证实阻容法露点湿度计示值误差测量值存在不确定度的弊端;刘巨强[2]指出了影响干湿球法测量湿度的因素,从而证实干湿球法存在误差大的缺点。针对以上问题,笔者提出一种基于神经网络遗传算法的湿度测量系统。

神经网络算法可以准确测量出室内的湿度,但容易导致局部最优解问题,而用遗传算法优化BP神经网络可以解决这个问题[4]。笔者将神经网络算法与遗传算法二者结合起来并应用到湿度的测量,首先用遗传算法优化神经网络算法的权值与阈值,然后用神经网络算法对测量的湿度值进行了优化。

1 基于单片机的湿度测量系统原理及流程

单片机因其自身体积小、功能强大等优点已经被广泛应用,它对湿度的测量也越来越引起人们的关注。因此,主要讨论基于单片机的湿度测量的实现方法。

1.1 湿度测量的工作原理

当湿度控制器开始工作时,湿度传感器便按照设定的频率不断地向单片机传送湿度值,单片机根据预设的算法不断地对读入的湿度值进行训练,直到得到精确的湿度值。然后,与预设的湿度范围进行比较,通过比较结果来驱动空调工作,从而实现对室内的湿度的调控。

1.2 湿度测量流程

湿度测量流程如图1所示。

2 神经网络遗传算法对湿度测量的优化

2.1 遗传算法优化神经网络的初始权值和阈值

2.1.1 利用GA优化神经网络的关键问题。主要体现在于以下方面[5]:

①采用实数编码;

②目标函数和适应度函数的确定。

2.1.2 用遗传算法优化神经网络的必要性。

①神经网络算法测量湿度易于陷入局部最优解。神经网络算法测量湿度曲线如图2所示。②经遗传算法优化后的神经网络算法解决了上述问题。经遗传算法优化后的神经网络算法测量的湿度曲线如图3所示。

2.2 BP神经网络

2.2.1 BP神经网络的运行机制。

BP神经网络模型每一个单元将来自其他处理单元的刺激进行加权求和,当和值超过处理单元阈值之后处理单元就处于激活状态并将计算结果输出,反之则处于抑制状态。若输出结果与期望输出结果之间误差过大,则反馈给各层处理单元,以此作为各层联结权值的修改依据,直至误差在可接受范围内。

2.2.2 BP网络结构的确定。

由Kolmogorov定理可知,一个3层BP神经网络可以在任意精度逼近任何有理函数。因此,采用包含输入层、隐含层和输出层3层结构的BP神经网络结构作为处理模型。输入层的节点数为固定时间内所测得的湿度集,输出值为该时间段内的最优湿度值,隐含层节点数采用经验公式确定:

S1=n+m +a。式中,神经网络输入层节点数为m,输出层节点数为n,隐含层节点数为S1。

2.3 遗传算法确定神经网络模型参数的试验

2.3.1 遗传算法的初始化[6]。

①初始种群的初始化:每10 min为一个周期,每20 s测量的数据为种群的一个个体。

②选择概率的初始化:取0.3~0.7的任一随机数。

③交叉概率的初始化:取0.3~0.7的任一随机数。

④变异概率的初始化:取0.05~0.20的任一随机数。

2.3.2 遗传算法确定神经网络模型的参数[7]。

经过70代的训练,误差平方和达到最小。整個神经网络输入层节点为7,隐含层节点为25+7+7,输出层为7;隐含层传递函数为tansig,输出层传递函数为logsig,训练函数为traingda,目标精度为0.001,最大训练周期为1 000;遗传算法初始种群大小为200,最大进化代数为200,选择概率为0.6,交叉概率为 0.4,变异概率为0.16。

2.4 神经网络算法对采集的湿度值的优化

将遗传算法训练的参数作为神经网络的初始权值训练。

(1)给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数 e -21,给定计算精度值 ε =10-21和最大学习次数 M =100,完成对神经网络参数值的初始化。

(2)随机选取第 k 个输入样本及对应期望输出:

d(k)=[d1(k),d2(k),…,dn(k)];

x(k)=[x1(k),x2(k),…,xn(k)]。

输入层有7个神经元,隐含层有25+7+7个神经元,输出层有7个神经元;

输入向量 x=(x1,x2,…,x7);

隐含层输入向量hi=(hi1,hi2,…,hi7);

隐含层输出向量ho=(ho1,ho2,…,ho7);

输出层输入向量yi=(yi1,yi2,…,yi7);

输出层输出向量yo=(yo1,yo2,…,yo7);

期望输出向量d=(d1,d2,…,d7);

输入层与隐含层的连接权值Wih(初始化为相同值1/n);

隐含层与输出层的连接权值Who(初始化为相同值1/n);

隐含层各神经元的阈值bh(初始化为测量的最大值);

输出层各神经元的阈值bo(初始化为测量的最大值)。

样本数据个数k=1,2,...,7。

激活函数为S型函数,误差函数为e=12qo=1[do(k)-yoo(k)]2。

(3)计算隐含层各神经元的输入和输出。

初始化各连接权值为相同的,随着训练的进行,不断地逆向反馈修正各个连接权值。隐含层各神经元的输入即为输入层的各神经元与其权值的代数和。经过激励函数的作用,结果即为隐含层神经元的输出。

(4)利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数 δ0(k) 网络期望输出见步骤(2),实际输出为各输出层神经元的代数和。

(5)利用隐含层到输出层的连接权值、输出层的 δ0(k) 和隐含层的输出计算误差函数对隐含层各神经元的偏导数 δ0(k) 。

(6)利用输出层各神经元的 δ0(k) 和隐含层各神经元的输出来修正连接权值 who(k) 。

(7)利用隐含层各神经元的 δn(k) 和输入层各神经元的输入修正连接权。

(8)计算全局误差。

E=12m mk=1qo=1[do(k)-yo(k)]2。

(9)判断网络误差是否满足要求:当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到步骤(3),进入下一轮学习。

整个流程模拟图如图4所示。

3 Matlab模拟试验结果

根据以上理论基础[8],在MATLAB R2014a[9]模拟GA-BP网络[10]算法。从实测的300组有效数据中随机地挑出50组作为测试数据,其余作为训练数据。

从图5可以看出,A4线表示最佳的湿度的适应度进化曲线,A3线表示实际的湿度平均适应度进化曲线,当进化到50代时,该湿度群体最优适应度达到峰值,表示在第50代群体中对应于最大适应度的湿度已经达到该优化算法最优解。从图6可以看出,A2为最佳理想的目标函数进化曲线,A1线为实际平均目标函数曲线,当经过大约50代搜索后,GA优化BP算法使得试验结果与实际湿度之间误差最小。

从图7可以看出,训练33步后网络训练结束,湿度的样本均方误差为5.448×10-21,说明网络具有良好的收敛效果。从图8可以看出,对网络的实际输出值和期望输出值进行线性回归分析,相似度 R =1,表示实际输出的湿度计算结果完全吻合期望值。

经过试验检验,该算法迭代步数少,误差较小,实际输出与期望值完全吻合,验证了GA-BP网络模型在湿度测量中的可行性。

4 结论

模拟预测结果表明,GA优化BP神经网络权值和阈值的方法能够较好地解决BP神经网络易下陷入局部最优的问题,缩短了网络的计算时间。

通过湿度计算的实例可知,GA-BP神经网络比BP神经网络的预测平均相对误差大大降低,为湿度测量提供了一种准确度更高的方法。

经上述论证,基于神经网络遗传算法的湿度控制系统具有极高的可行性和有效性,对于提高湿度控制系统自我调控的精准度具有实际意义,可广泛应用于实际生活的湿度测量及控制。

基于神经网络遗传算法的湿度调节器充分利用了神经网络算法的鲁棒性和遗传算法的全局优化性,使得将仪器置于一角,就可以准确测量出整个空间的湿度。湿度测量计结构简单,测量误差小。当进化代数达到60代时,湿度的适应度可达15.6×10-3。当进化代数达到50代时,测量误差低于5.448×10-21。将该算法应用于湿度的测量,对提高人们对周围环境湿度的监控精度具有重要意义。

参考文献

[1] 程黎.数字温湿度计测量示值误差不确定度评定[J].现代测量与实验室管理,2015(6):28-30.

[2] 刘巨强.干湿球法测量湿度影响因素分析[J].科技创新与应用,2014(5):300.

[3] KAMPOUROPOULOS K,ANDRADE F,GARCIA A,et al.A combined methodology of adaptive neuro-fuzzy inference system and genetic algorithm for short-term energy forecasting[J].Advances in electrical and computer engineering,2014,14(1):9-14.

[4] 李茂权,何国政,杨焱.阻容法露点湿度计示值误差测量值的不确定度评定[J].计量与测试技术,2015,42(12):68-70.

[5] 李妙玲,仝军锋,赵红霞.基于遗传算法和神经网络的C/C复合材料等温CVI工艺参数优化模型[J].复合材料学报,2016,33(11):2666-2673.

[6] 雷英杰,张善文,李续武,等.MATLAB 遗传算法工具箱及应用[M].2版.西安:西安电子科技大学出版社,2014.

[7] 闻新,李新,张兴旺,等.应用MATLAB实现神经网络[M].北京:国防工业出版社,2015.

[8] MOLER C.Experiments with MATLAB [M].北京:北京航空航天大学出版社,2013.

[9] XIAO Z,YE S J,ZHONG B,et al.BP neural network with rough set for short term load forecasting[J].Expert systems with applications,2009,36(1):273-279.

[10] 王剑,张书毕,史先领,等.MATLAB工具箱在测绘数据处理中的应用[J].四川测绘,2006,29(1):17-20.

猜你喜欢

遗传算法
遗传算法对CMAC与PID并行励磁控制的优化
基于自适应遗传算法的CSAMT一维反演
基于遗传算法的建筑物沉降回归分析
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
遗传算法识别模型在水污染源辨识中的应用
协同进化在遗传算法中的应用研究
软件发布规划的遗传算法实现与解释
基于遗传算法的三体船快速性仿真分析
基于改进的遗传算法的模糊聚类算法