基于Matlab的人工神经网络用水量预测模型
基于Matlab的人工神经网络用水量预测模
型
中国农村水利水电?2007年第4期45
文章编号:1007—2284(2007)04—004503
基于Matlab的人工神经网络用水量预测模型
周振民,刘获
(华北水利水电学院,郑州450008)
摘要:寻找一种适当的方法来科学地预测城市生活需水量,对城市的发展具有十分重要的意
义.鉴于城市生活用
水量受众多因素影响,并具有复杂的非线性的特点,建立了基于Matlab技术的LM—BP网络
的城市用水量预测模型,并
利用某市的家庭生活用水量的实测数据对该模型进行网络的训练学习和预测验证.结果表
明,采用Matlab技术建模具
有方便快捷,不会陷入复杂的编程运算的困扰中的优点,同时该模型具有收敛速度快,预测精
度高的特性,为城市生活用
水量预测提供了一种行之有效的方法.
关键词:生活用水量;预测;人工神经网络;matlab
中图分类号:F224.9文献标识码:A
0引言
21世纪以来,人口剧增,经济迅速发展,城市化进程不断加
快,导致了城市需水量大幅度增加.而家庭用水是城市水消耗
的重要部分,所以寻找一种合适的方法来研究家庭用水需求量
是很有价值的l1].长期以来,国内外关于用水量预测的传统方
法主要有三类,即时间序列预测法,因果关系预测法和用水量
弹性系数预测法.但由于实际情况变化较大,家庭生活需水量
与影响它的因素之间存在着复杂的非线性关系,从而使得这三
类方法在实际问题应用中预测结果不可避免地存在着很大的
误差l2一.南于神经网络具有很强的建模能力(尤其在高度非线
性问题方面)和较好的拟合能力,与传统的预测方法相比,它的
预测精度较高,因此作为用水量预测的一种使用方法,显示了
较好的优越性.
然而,在应用人工神经网络解决实际问题的过程中,选择
多少层网络,每层多少个神经元节点,选择何种传递函数,何种
训练算法等,均无可行的理论指导,只能通过大量的实验计算
获得,这无形增加了研究工作量和编程计算工作量.目前,在
工程计算领域中较为流行的软件Matlab,提供了一个神经网络
工具箱(NeuralNetworkToolbox,NNToo1),为解决这个问题
创造了便利条件口].因此,本文提出了基于Matlab的神经网
络工具箱模型来进行城市家庭用水需求量预测的方法.
1人工神经网络原理
1.1BP人工神经网络
1.1.1BF人工神经网络原理
人工神经网络(ArtificialNeuralNetwork,简称ANN)是由
收稿日期:2006一l1一O1
作者简介:周振民(1953一),男,博士,教授,主要从事水文水资源研究.
大量神经元互相连接而组成的复杂网络系统,对非线性系统具
有很强的模拟能力].此外,神经网络的”黑箱”特性很适合预
测领域的应用需要,它不需要任何经验公式,就能从已有数据
中归纳规则,获得这些数据的内在规律,因此即使不清楚预测
问题的内部机理,只要有大量的输入,输出样本,经神经网络
“黑箱”内部自动调整后,便可建立良好的输入,输出映射模
型].其中,基于误差反向传播(BackPropagation)算法的多
层前馈网络(Muhiple—LayerFeedforwardNetwork),即BP网
络,是人工神经网络中最为重要的网络之一,也是迄今为止,应
用最为广泛的网络算法,实践证明这种基于误差反传递算法的
BP网络有很强的映射能力,可以解决许多实际问题j.
BP网络由输入层,隐含层和输出层组成,其工作过程包括
信息的正向传播和误差信号的反向传播.在正向传播的过程
中,学习样本输入向量x一[,,…z]从输入层经隐含层逐
层处理,并传向输出层,逐次算出各层节点的输出;在反向传播
过程中,根据输出节点的实际输出与期望输出的误差(误差大
于要求的精度),将误差信号沿原来的连接通道作反向传播,逐
次修改网络各层参数权值叫和阈值b使误差减小.重复上述
过程,直至网络的输出误差逐渐减小到允许的精度,或达到预
定的学习次数.理论上,采用对数S型/线性模式的三层网络
结构可以使误差达到任意精度.图1即为一个三层BP网络结
构示意图.
1.1.2BP网络的学习算法]
令第个神经元的阈值为0,它受到来自其他个神经元
的作用,.17.,2/22,…,”,这里一1,2,…,,之对应的连接
权为叫,,…,”,,则第i个神经元的输出为:
一
厂(?叫一0i)(1)J1
设网络输入层共有个神经元,序号为h,一1,2,…,,隐
含层共有P个神经元,序号为i,一1,2,…,P,输出层有个神
46基于Matlab的人工神经网络用水量预测模型周振民刘荻
输入层隐含层输出层
图1三层BP神经网络结构
经元,序号为,一1,2,…,m.输入层中第h个神经元与隐含
层中第i个神经元之间的连接权为,隐含层中第i个神经元
的阈值为0,隐含层中第i个神经元与输出层中第个神经元
之间的连接权为叫,输出层中第个神经元的阈值为y,,q为
隐含层中第i个神经元的输出,为输出层中第个神经元的
输出.若某一训练输入矢量为一(xk,…,,…,k),
个分量分别与输入层中的个神经元对应,网络的实际输出
为Yk一(yk,ykz,…,,…,),m个分量分别与输出层中的
m个神经元对应.对应的理想输出为一(,z,…,
…
,),则输出误差函数为:
一
1?(,目).(2)
J=l
BP网络常用的激励函数如下.
(1)线性函数:
厂()一37(3)
(2)Sigmoid函数常见的两种形式,即logsig函数和tansig
函数:
1
厂()一—1-
I-—e-一~(4)
——i
厂()一三=—(5)
十e一
对输入矢量?,输出层单元的实际输出为一f(U),
其中,UJ一2w,,o+为输出层单元的输入.
隐含层单元i的实际输出为0一f(1),其中,z为隐含层
单元i的输入Z一?+.
hl
隐含层单元i的一般化误差为e一告(1--()f).
权值,阈值的调整公式可表示为:
(,+1)一(,)+卢Oi+口?叫(,);
(,+1)一(,)+卢J+口AYi(,)(6)
Vi(,+1)一(,)+口ei2C—OtAvh(,);
Oi(t+1)一Oi(,)+口e+口A0(,)(7)
这里o<p<l为比例系数,a为加速收敛的动量因子.
1.2BP网络家庭生活用水量预测模型结构的建立
在家庭用水量预测时,可采用三层BP网络模型,第一层为
输入层,中间层为隐含层,第三层为输出层.各层次的神经元
之间形成全互连连接,各层次内的神经元之间没有连接.输入
层的节点数为输入向量的分量数,这里为3个,即影响家庭生
活需水量的3个主要因素:水价,家庭年平均收入和家庭总人
口数,并且理论上假设水价高,用水量少;家庭人口数多或者家
庭年平均收入高,用水量多.输出层的节点数为输出向量的分
量数,这里为1个,即用水需求量(每人每天消耗水量).隐含
层的节点数理论上没有明确的规定,根据Hecht—Nielsen提出
的”2+1”法6],1”/为输入神经元节点数,为了提高准确性,误差
训练中神经元个数分别试算了6,7和8,最终确定隐含层的节
点数为7.网络中除输入层节点的输入等于输出外,隐含层和
输出层节点的输出均采用了网络激励函数logsig,即,厂()一
1/(1+e一)
2基于matlab技术的LM—BP网络实现原理
Matlab是Mathworks公司的产品,是一种功能强大的软
件,其编程效率与可读性,可移植性要远远高于其他软件.它
是集通用科学计算,绘图,系统建模和程序语言设计为一体的
高效科学计算软件,使用方便,功能强大.此外,它和其他语言
的接口能够保证它可以和各种各样的强大的计算机软件相结
合,发挥更大的作用.Matlab还有丰富的数值计算工具箱,人
工神经网络工具箱(NeuralNetworkToolbox)便是其中之一,
工具箱中提供了丰富的网络学习和训练函数,其中包括了大多
数的神经网络算法.这些函数为神经网络的仿真分析提供了
极大的方便,用户不用编写复杂的算法程序,只要在命令行设
置好相关函数和参数,就能完成神经网络的训练仿真.
在应用Matlab神经网络工具箱的环境下,根据以上构建
的家庭生活用水量预测模型可知,其网络结构为3—7—1,网络的
隐含层神经元和输出层神经元的激励函数均采用logsig函数.
考虑到LM(Levenberg—Marquardt)算法是一种利用标准的数
值优化技术的快速算法,该方法可以克服神经网络收敛速度缓
慢,易陷入局部极小值的缺点,并且在网络参数相对较少的情
况下具有极快的收敛速度,同时此方法结合了梯度下降法和牛
顿法的优点,稳定性等方面的性能更优良一些9,因此本文采
用trainlm(LM算法)函数对网络进行训练.基于Matlab的用
水量预测神经网络模型的实现过程如下.
(1)建立网络.
net=newcf(minmax(P),E7,11,{logsig,logsig},trainlm
):
(2)训练网络.
训练函数的参数设置如下:
net.trainParam.epochs=1000;
net.trainParam.show=200;
net.trainParam.max_
fail=50;
net.trainParam.1r=0.01;
net.trainParam.rain_
grad=0;
net.trainParam.goal=0.0001;
net.trainParam.mu一0.00001
网络的训练函数如下:
Enet,tr]一train(net,P,T);
(3)网络仿真
y—sire(net,p)
3实例应用
某市1990~2003年的家庭,1活水需求量如表l所示.
基于Matlab的人工神经网络用水量预测模型周振民刘获47
为消除各因子由于量纲和单位不同的影响,并考虑到样本不一
定包含了极大和极小值,因此,首先对输入输出参数进行了如
下方式的规范化处理:
R一0.1+0.8×(一1,2,…,)(8)
n——r
式中:为规格化后的输入/输出对;R为规格化前的输入/输
kk
出对;r—minP;R—maxP;为输入/输出对数.
表1某市1990~2003年的用水需求量
.
家庭年平均家庭总人1:3水价/用水需求量/
,正1”
…收入/万元平均数/人(元?t1)(m3?人?d一1)
0.68
0.74
0.78
0.89
0.91
1_1O
l_18
1_27
1.3O
1_32
1.37
1.41
1.49
1_58
0.45
0.50
0.60
0.80
0.80
1.00
1.00
1_2O
1.35
1.35
1.45
l_65
1.70
1_7O
其次,以1990~2001年间的实际数据作为训练样本,2002
年,2003年的实际数据作为检验预测结果的样本,用以上建立
的matlab的人工神经网络模型进行训练学习,当训练达到
1000次时,误差函数趋于稳定并满足给定的精度要求,模型拟
合的结果如表2所示.
通过表2的训练结果可以看出,训练样本的最大相对误差
绝对值为1.14,最小相对误差绝对值仅为0.04,平均相对
误差绝对值为0.37%,说明网络训练结果是令人满意的.然
后通过此模型对2002年,2003年进行预测,将预测数据与实际
数据进行比较,得到相对误差值,见表3.
通过表3的预测结果可以看到,检验样本的相对误差不超
过1,平均相对误差为0.62,可见预测精度较高,预测效果
十分理想,表明该模型具有可行性.
最后得出网络训练和预测的全部仿真结果见图2,图中圆
形表示实际值,十字符号表示模拟预测值,十字符号越接近圆
心,说明模型的模拟预测精度越高.因此,能够很清楚地看到
BP网络的逼近程度完全可以满足要求.
4结语
本文通过对家庭生活用水量的预测方法进行了研究,建立
了LM算法的BP网络模型.实例表明:
表21990~2001年神经网络预测结果
.d-1)(m3
NNN
时
/相
48.02
50.05
51_64
55.45
56.35
59.63
61_9O
63.92
69.96
71.79
75.20
75.12
表32002,2003年神经网络预测结果
5
毫65\
姗l
苗
犍55
45
年份
图2网络训练和预测仿真结果图
(1)用IM优化算法的BP网络进行训练速度非常快,迭代
次数减少,提高了收敛速度,并且能得到更高的训练精度,模型
的预测准确度也相当高,完全符合设计要求.
(2)利用MATLAB的神经网络工具箱建模,避免了陷入
计算机编程语言的复杂工作当中,并且语言简单,调试方便,程
序运行效率极高.因此采用MATLAB的神经网络工具箱进
行建模,为预测城市家庭用水需求量提供了一个有效的方法.
口
参考文献:
El3陈雪艳,李平,袁艺,等.基于改进的Chebyshev神经网络的
用水量预~JEJ].石油化工高等学校学报,2005,(1).
E23李晓峰.基于神经网络方法的成都市居民生活水量预测和分析
EJ3.四jiI大学学报,2000,(6).
(下转第49页)
9426269
1()()
??加
?%%%??
加加
蝎???
72O88532OO8766
55544444443333
?%%%???
???加
基于PIC的模糊控制恒压供水系统设计高宏岩49
本系统采用双输入单输出模糊控制器,以水压给定值和测
量值的误差e及误差变化率ec作为模糊控制器的输入语言变
量,以变频器频率变化量”作为输出语言变量.选取误差e,误
差变化率ec和控制量”的模糊子集为{NB,NS,ZE,PS,PB},
并将它们的论域量化为7个等级,即{一3,一2,一1,0,1,2,3},
模糊子集的隶属函数采用三角形.根据现场经验
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
出模糊
控制规则,如表1所示.根据这些规则计算总的模糊关系R:
,,,,
R—U(E×EC×U)(1)
i一1
式中×,U代表模糊关系矩阵的”笛卡尔积”和”并”运算.再根
据极大极小推理合成规则求出输出语言变量论域上的模糊集
合:
一
(×E,C).(2)
最后对U采用加权平均法进行解模糊,将模糊量U转换成精
确量”.上述过程是离线进行的,最终得到模糊控制查询表,如
表2所示.将此表存放到PLC内存中,实时控制时,实现模糊
控制的过程便简化为查找查询表的过程.
表1模糊控制规则表(
3
2
l
1
1
2
1
l
O
1O
O一
3程序设计
RSLogix5000是支持Logix5000系列控制器的编程软
件眦,程序用梯形图语言编写,包括水泵启动和切换主程序,PI
控制子程序,模糊控制子程序和故障报警子程序.当采样时间
到时,PIC采集水压信号,并与给定信号比较得到误差e,若e
?(为PI和模糊控制切换阈值),则进入PI控制子程序;若
e>,则进入模糊控制子程序.图3是模糊控制子程序框图.
由于RSI.ogix5000软件提供了数组标签,因此可以用梯形图语
言方便地实现模糊控制算法.在标签数据库中建立一个7×7
的二维数组标签array,将查询表2的结果按照从上到下,从左
到右的顺序依次输入到数组标签中.由于E,EC的量化等级
为[一3,+3],而数组标签array的起始地址为[o,o],因此在
寻址时需要加偏移量,即:”一drm(+3,+3).模糊控制
器将计算得到的实测误差e和误差变化量e量化,取得以相应
论域元素表征的查找查询表所需的i和,通过数组标签array
寻址得到控制量变化,再乘以比例因子便是控制量变化
量?”.加在被控对象的实际控制量一+Au,其中
为前一次的控制量.经限幅后作为变频器的输出,控制水泵
电机的转速,使水压保持在给定值上.
图3模糊控制子程序
4结语
在融合PIC和变频调速技术基础之上,采用Fuzzy—PI控
制对供水系统进行恒压控制,系统不但调整平稳,鲁棒性强,而
且能够延长设备的使用寿命,节约能源.此外用PLC实现模
糊控制,可靠性高,抗干扰能力强,具有广阔的应用前景.口
参考文献:
[12刘文定,樊慧丽.恒压供水系统的模糊一PID控制LJ].科技情报工
发与经济,2002,(7):109—110.
E2]章卫国,杨向忠.模糊控制理论与应用EM].西安:西北工业大学
出版社,1999:73—75.
[3]GettingResultswithRSIogix5000[z].RockWellCO.LTD,
】998
(上接第47页)
[3]周继成,周青山,韩飘扬,等.人工神经网络[M].北京:科学出版
社,1993.
[4]张立明.人lT神经网络的模型及其应用[M].上海:复旦大学出版
社,1993.
[5]巨军让,卓戎.BP神经网络在Matlab上的方便实现[J].新疆石
油学院学报,1999.
[6]苑希民,李洪雁,刘树坤,等.神经网络和遗传算法在水科学领域
的应用[M].北京:中国水利水电出版社,2002.
[7]陈春凯.Matlab人工神经网络工具箱中的BP工具函数及其应用
EJ].许昌师专学报,2002,21(5).
[8]姚文俊.BP算法的改进在Matlab的实现研究EJ].现代电子技术,
2003,21.
[9]张兵.基于I.-M优化算法的BP神经网络的作物需水量预测模
型LJ].农业工程学报,2004,(6).
3322llO