文章编号: 1007-2284( 2007) 04-0045- 03
基于Matlab的人工神经网络用水量预测模型
周振民,刘 � 荻
(华北水利水电学院,郑州 450008)
� � 摘 � 要:寻找一种适当的方法来科学地预测城市生活需水量,对城市的发展具有十分重要的意义。鉴于城市生活用
水量受众多因素影响,并具有复杂的非线性的特点,建立了基于 Mat lab 技术的 LM-BP网络的城市用水量预测模型, 并
利用某市的家庭生活用水量的实测数据对该模型进行网络的训练学习和预测验证。结果表明,采用 Matlab 技术建模具
有方便快捷、不会陷入复杂的编程运算的困扰中的优点, 同时该模型具有收敛速度快、预测精度高的特性, 为城市生活用
水量预测提供了一种行之有效的方法。
� � 关键词:生活用水量; 预测;人工神经网络; matlab
� � 中图分类号: F224. 9 � � � 文献标识码: A
0 � 引 � 言
21 世纪以来,人口剧增, 经济迅速发展, 城市化进程不断加
快,导致了城市需水量大幅度增加。而家庭用水是城市水消耗
的重要部分,所以寻找一种合适的方法来研究家庭用水需求量
是很有价值的[1]。长期以来,国内外关于用水量预测的传统方
法主要有三类,即时间序列预测法、因果关系预测法和用水量
弹性系数预测法。但由于实际情况变化较大,家庭生活需水量
与影响它的因素之间存在着复杂的非线性关系, 从而使得这三
类方法在实际问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
应用中预测结果不可避免地存在着很大的
误差[2]。由于神经网络具有很强的建模能力 (尤其在高度非线
性问题方面)和较好的拟合能力, 与传统的预测方法相比,它的
预测精度较高,因此作为用水量预测的一种使用方法, 显示了
较好的优越性。
然而, 在应用人工神经网络解决实际问题的过程中, 选择
多少层网络、每层多少个神经元节点、选择何种传递函数、何种
训练算法等,均无可行的理论指导,只能通过大量的实验计算
获得,这无形增加了研究工作量和编程计算工作量。目前, 在
工程计算领域中较为流行的软件 Matlab,提供了一个神经网络
工具箱( Neural Netw ork Toolbox, NNToo1) , 为解决这个问题
创造了便利条件[ 3]。因此, 本文提出了基于 Matlab 的神经网
络工具箱模型来进行城市家庭用水需求量预测的方法。
1 � 人工神经网络原理
1. 1 � BP人工神经网络
1. 1. 1 � BP 人工神经网络原理
人工神经网络( Ar tificial Neura l Netw ork, 简称 ANN)是由
收稿日期: 2006-11-01
作者简介:周振民( 1953- ) ,男,博士,教授,主要从事水文水资源研究。
大量神经元互相连接而组成的复杂网络系统,对非线性系统具
有很强的模拟能力[4]。此外,神经网络的� 黑箱�特性很适合预
测领域的应用需要,它不需要任何经验公式, 就能从已有数据
中归纳
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
,获得这些数据的内在规律, 因此即使不清楚预测
问题的内部机理, 只要有大量的输入、输出样本, 经神经网络
� 黑箱�内部自动调整后, 便可建立良好的输入、输出映射模
型[5]。其中,基于误差反向传播 ( Back P ropagation) 算法的多
层前馈网络 ( Muhiple-Layer Feedforward Netw ork ) , 即 BP 网
络,是人工神经网络中最为重要的网络之一, 也是迄今为止, 应
用最为广泛的网络算法,实践证明这种基于误差反传递算法的
BP 网络有很强的映射能力,可以解决许多实际问题[6]。
BP 网络由输入层、隐含层和输出层组成, 其工作过程包括
信息的正向传播和误差信号的反向传播。在正向传播的过程
中,学习样本输入向量 X = [ x 1 , x 2, �x n ]从输入层经隐含层逐
层处理,并传向输出层, 逐次算出各层节点的输出; 在反向传播
过程中,根据输出节点的实际输出与期望输出的误差(误差大
于要求的精度) , 将误差信号沿原来的连接通道作反向传播, 逐
次修改网络各层参数权值 w 和阈值 b 使误差减小。重复上述
过程,直至网络的输出误差逐渐减小到允许的精度, 或达到预
定的学习次数。理论上, 采用对数 S 型/线性模式的三层网络
结构可以使误差达到任意精度。图 1 即为一个三层 BP网络结
构示意图。
1. 1. 2 � BP 网络的学习算法[ 7]
令第 i个神经元的阈值为�i , 它受到来自其他 n 个神经元
的作用, x 1 , x 2 , �, x j , � , x n ,这里 j = 1, 2, �, n, 之对应的连接
权为 w 1, w 2, �, w ij , �, w ni , 则第 i个神经元的输出 y i 为:
y i = f ( �n
j = 1
x jw ji - �i ) ( 1)
� � 设网络输入层共有 n 个神经元,序号为 h, h= 1, 2, �, n, 隐
含层共有 P 个神经元,序号为 i, i= 1, 2, �, p ,输出层有 n 个神
45中国农村水利水电� 2007 年第 4 期
图 1� 三层 BP神经网络结构
经元,序号为 j, j= 1, 2, �, m。输入层中第 h 个神经元与隐含
层中第 i 个神经元之间的连接权为 v hi ,隐含层中第 i个神经元
的阈值为�i , 隐含层中第 i 个神经元与输出层中第 j 个神经元
之间的连接权为w i j , 输出层中第 j 个神经元的阈值为�j , Oj 为
隐含层中第 i个神经元的输出, y i 为输出层中第 j 个神经元的
输出。若某一训练输入矢量为 X k = ( x k1 , x k2 , �, x kh , �, khn ) ,
n个分量分别与输入层中的n 个神经元对应, 网络的实际输出
为 Y k= ( y k1 , y k2 , �, yk j , �, y km ) , m 个分量分别与输出层中的
m 个神经元对应。对应 X k 的理想输出为 Y�k = ( y�k1 , y �k2 , �, y�kj
�, y�km ) ,则输出误差函数为:
Ek =
1
2 �mj = 1 ( y�kj - yk j ) 2 ( 2)
� � BP 网络常用的激励函数如下。
( 1)线性函数:
f ( x ) = x ( 3)
� � ( 2) Sigmoid 函数常见的两种形式,即 logsig 函数和 tansig
函数:
f ( x ) =
1
1+ e- x
( 4)
f ( x ) =
ex - e- x
ex + e- x
( 5)
� � 对输入矢量 X k ,输出层单元 j 的实际输出为 y j = f ( Ui ) ,
其中, U j = �p
i= 1
w ij O i + �j 为输出层单元 j 的输入。
隐含层单元 i 的实际输出为 Oi = f ( l i ) , 其中, l i 为隐含层
单元 i 的输入 l i = �n
h= 1
vhi x h+ �i。
隐含层单元 i的一般化误差为 e i = 12 ( 1- O 2i ) �
m
j = 1
�jw ij 。
权值、阈值的调整公式可表示为:
w ij ( t + 1) = w i j ( t) + ��j O i + ��w ij ( t) ;
�j ( t + 1) = �j ( t) + ��j + �� j ( t) ( 6)
v i ( t + 1) = vhi ( t) + � e ix h + ��v hi ( t) ;
�i( t + 1) = �i ( t) + � e i + �� i ( t) ( 7)
这里 0< �< 1 为比例系数,�为加速收敛的动量因子。
1. 2 � BP网络家庭生活用水量预测模型结构的建立
在家庭用水量预测时,可采用三层 BP 网络模型,第一层为
输入层,中间层为隐含层, 第三层为输出层。各层次的神经元
之间形成全互连连接,各层次内的神经元之间没有连接。输入
层的节点数为输入向量的分量数, 这里为 3 个, 即影响家庭生
活需水量的 3 个主要因素: 水价、家庭年平均收入和家庭总人
口数,并且理论上假设水价高, 用水量少; 家庭人口数多或者家
庭年平均收入高,用水量多。输出层的节点数为输出向量的分
量数,这里为 1 个, 即用水需求量(每人每天消耗水量)。隐含
层的节点数理论上没有明确的
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
, 根据 H echt- Nielsen 提出
的� 2n+ 1�法[ 6] , n为输入神经元节点数,为了提高准确性, 误差
训练中神经元个数分别试算了 6、7 和 8, 最终确定隐含层的节
点数为 7。网络中除输入层节点的输入等于输出外, 隐含层和
输出层节点的输出均采用了网络激励函数 log sig, 即, f ( x ) =
1/ ( 1+ e- x )。
2 � 基于 matlab技术的 LM-BP网络实现原理
Matlab 是 Mathwo rks 公司的产品, 是一种功能强大的软
件,其编程效率与可读性、可移植性要远远高于其他软件。它
是集通用科学计算、绘图、系统建模和程序语言
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
为一体的
高效科学计算软件,使用方便、功能强大。此外, 它和其他语言
的接口能够保证它可以和各种各样的强大的计算机软件相结
合,发挥更大的作用。M atlab 还有丰富的数值计算工具箱, 人
工神经网络工具箱( Neural Netw o rk T oolbox )便是其中之一,
工具箱中提供了丰富的网络学习和训练函数,其中包括了大多
数的神经网络算法。这些函数为神经网络的仿真分析提供了
极大的方便,用户不用编写复杂的算法程序, 只要在命令行设
置好相关函数和参数,就能完成神经网络的训练仿真。
在应用 Matlab 神经网络工具箱的环境下, 根据以上构建
的家庭生活用水量预测模型可知, 其网络结构为 3-7-1, 网络的
隐含层神经元和输出层神经元的激励函数均采用 log sig 函数。
考虑到 LM( Levenber g-Marquardt) 算法是一种利用
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的数
值优化技术的快速算法,该方法可以克服神经网络收敛速度缓
慢、易陷入局部极小值的缺点, 并且在网络参数相对较少的情
况下具有极快的收敛速度,同时此方法结合了梯度下降法和牛
顿法的优点,稳定性等方面的性能更优良一些[9] , 因此本文采
用 tra inlm( LM 算法)函数对网络进行训练。基于 M at lab 的用
水量预测神经网络模型的实现过程如下。
( 1)建立网络。
net= newcf( minmax( P) , [ 7, 1] , { 'lo gsig ', 'lo gsig '} , 'trainlm
') ;
( 2)训练网络。
训练函数的参数设置如下:
net. trainParam. epochs= 1000;
net. trainParam. show= 200;
net. trainParam. max_fail= 50;
net. trainParam. lr= 0. 01;
net. trainParam. min_g rad= 0;
net. trainParam. goal= 0. 0001;
net. trainParam. mu= 0. 00001
网络的训练函数如下:
[ net, tr ] = tr ain( net, P, T ) ;
( 3)网络仿真
y= sim( net, p)
3 � 实例应用
某市 1990~ 2003 年的家庭生活用水需求量如表 1 所示。
46 基于 M atlab 的人工神经网络用水量预测模型 � � 周振民 � 刘 � 荻
为消除各因子由于量纲和单位不同的影响, 并考虑到样本不一
定包含了极大和极小值, 因此, 首先对输入输出参数进行了如
下方式的规范化处理:
R�i = 0. 1 + 0. 8 � R i - r
R - r
� ( i = 1, 2, �, k) ( 8)
式中: R�i 为规格化后的输入/输出对; R i 为规格化前的输入/输
出对; r= mink
i= 1
P i ; R= max
k
i= 1
P i; k 为输入/输出对数。
表 1 � 某市 1990~ 2003年的用水需求量
年份 家庭年平均收入/万元
家庭总人口
平均数/人
水价/
(元� t- 1 )
用水需求量/
( m3 � 人- 1 � d- 1)
1990 0. 68 5. 7 0. 45 48
1991 0. 74 5. 2 0. 50 50
1992 0. 78 5. 0 0. 60 52
1993 0. 89 4. 8 0. 80 55
1994 0. 91 4. 8 0. 80 57
1995 1. 10 4. 5 1. 00 60
1996 1. 18 4. 3 1. 00 62
1997 1. 27 4. 2 1. 20 64
1998 1. 30 4. 0 1. 35 70
1999 1. 32 4. 0 1. 35 72
2000 1. 37 3. 8 1. 45 75
2001 1. 41 3. 7 1. 65 75
2002 1. 49 3. 6 1. 70 78
2003 1. 58 3. 6 1. 70 80
� � 其次,以 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网络模型。实例表明:
表 2 � 1990~ 2001年神经网络预测结果
年份 实际值/
( m3 � 人- 1 � d- 1 )
预测值/
( m 3 � 人- 1 � d- 1)
相对误差/
%
1990 48 48. 02 0. 04
1991 50 50. 05 0. 10
1992 52 51. 64 - 0. 69
1993 55 55. 45 0. 82
1994 57 56. 35 - 1. 14
1995 60 59. 63 - 0. 62
1996 62 61. 90 - 0. 16
1997 64 63. 92 - 0. 12
1998 70 69. 96 - 0. 06
1999 72 71. 79 - 0. 29
2000 75 75. 20 0. 27
2001 75 75. 12 0. 16
表 3 � 2002、2003年神经网络预测结果
年份 实际值/
( m3 � 人- 1 � d- 1 )
预测值/
( m 3 � 人- 1 � d- 1)
相对误差/
%
2002 78 78. 59 0. 76
2003 80 80. 38 0. 47
图 2 � 网络训练和预测仿真结果图
� � ( 1)用 LM 优化算法的 BP 网络进行训练速度非常快, 迭代
次数减少,提高了收敛速度, 并且能得到更高的训练精度,模型
的预测准确度也相当高,完全符合设计要求。
( 2)利用 MATLAB 的神经网络工具箱建模, 避免了陷入
计算机编程语言的复杂工作当中,并且语言简单, 调试方便, 程
序运行效率极高。因此采用 M AT LAB 的神经网络工具箱进
行建模,为预测城市家庭用水需求量提供了一个有效的方法。
�
参考文献:
[ 1] � 陈雪艳,李 � 平,袁 � 艺, 等.基于改进的 Chebyshev 神经网络的
用水量预测[ J] .石油化工高等学校学报, 2005, ( 1) .
[ 2] � 李晓峰.基于神经网络方法的成都市居民生活水量预测和分析
[ J ] .四川大学学报, 2000, ( 6) .
(下转第 49页)
47基于 Matlab的人工神经网络用水量预测模型 � � 周振民 � 刘 � 荻
本系统采用双输入单输出模糊控制器, 以水压给定值和测
量值的误差 e 及误差变化率 ec 作为模糊控制器的输入语言变
量,以变频器频率变化量 u作为输出语言变量。选取误差 e、误
差变化率 ec 和控制量 u 的模糊子集为{ NB, NS, ZE, PS, PB} ,
并将它们的论域量化为 7 个等级, 即{- 3, - 2, - 1, 0, 1, 2, 3} ,
模糊子集的隶属函数采用三角形。根据现场经验总结出模糊
控制规则,如表 1 所示。根据这些规则计算总的模糊关系 �R :
�R = �n
i= 1
(�E i � �EC i � �Ui ) ( 1)
式中� 、� 代表模糊关系矩阵的� 笛卡尔积�和� 并�运算。再根
据极大极小推理合成规则求出输出语言变量论域上的模糊集
合 �U:
�U = (�E � �EC) ��R ( 2)
最后对 �U 采用加权平均法进行解模糊, 将模糊量 �U 转换成精
确量u。上述过程是离线进行的,最终得到模糊控制查询表, 如
表 2所示。将此表存放到 PLC 内存中, 实时控制时, 实现模糊
控制的过程便简化为查找查询表的过程。
表 1 � 模糊控制规则表( u)
e
ec
NB NS ZE PS PB
NB PB PB PS ZE ZE
NS PB PS PS ZE NS
ZE PS PS ZE NS NS
PS PS ZE NS NS NB
PB ZE ZE NS NB NB
表2 � 模糊控制查询表(�U)
�E �EC
- 3 - 2 - 1 0 1 2 3
- 3 3 3 2 2 1 1 0
- 2 3 2 2 1 1 0 - 1
- 1 2 2 1 1 0 - 1 - 1
0 2 1 1 0 - 1 - 1 - 2
1 1 1 0 - 1 - 1 - 2 - 2
2 1 0 - 1 - 1 - 2 - 2 - 3
3 0 - 1 - 1 - 2 - 2 - 3 - 3
3 � 程序设计
RSLogix5000 是支持 Log ix5000 系列控制器的编程软
件[3] ,程序用梯形图语言编写 ,包括水泵启动和切换主程序、PI
控制子程序、模糊控制子程序和故障报警子程序。当采样时间
到时, PLC 采集水压信号, 并与给定信号比较得到误差 e, 若 e
� e0 ( e0 为 P I和模糊控制切换阈值) ,则进入 PI控制子程序; 若
e> e0 ,则进入模糊控制子程序。图 3 是模糊控制子程序框图。
由于 RSLog ix5000 软件提供了数组标签,因此可以用梯形图语
言方便地实现模糊控制算法。在标签数据库中建立一个 7 � 7
的二维数组标签 ar ray, 将查询表 2 的结果按照从上到下、从左
到右的顺序依次输入到数组标签中。由于 E、EC 的量化等级
为[ - 3, + 3] , 而数组标签 ar ray 的起始地址为[ 0, 0] , 因此在
寻址时需要加偏移量,即: ui j = ar ray ( i+ 3 , j+ 3)。模糊控制
器将计算得到的实测误差 e 和误差变化量 e c 量化, 取得以相应
论域元素表征的查找查询表所需的 i和 j ,通过数组标签 ar ray
寻址得到控制量变化 u ij , ui j 再乘以比例因子便是控制量变化
量�u。加在被控对象的实际控制量 uk = uk- 1 + �u, 其中 uk- 1
为前一次的控制量。uk 经限幅后作为变频器的输出, 控制水泵
电机的转速,使水压保持在给定值上。
图 3 � 模糊控制子程序
4 � 结 � 语
在融合 PLC 和变频调速技术基础之上, 采用 Fuzzy-P I 控
制对供水系统进行恒压控制,系统不但调整平稳、鲁棒性强, 而
且能够延长设备的使用寿命, 节约能源。此外用 PLC 实现模
糊控制,可靠性高、抗干扰能力强,具有广阔的应用前景。 �
参考文献:
[ 1] � 刘文定,樊慧丽. 恒压供水系统的模糊-PID 控制[ J] . 科技情报工
发与经济, 2002, ( 7) : 109- 110.
[ 2] � 章卫国,杨向忠. 模糊控制理论与应用[ M ] . 西安:西北工业大学
出版社, 1999: 73- 75.
[ 3 ] � Gett ing Result s w ith RSLogix5000 [ Z ] . RockWell CO. L TD,
1998.
(上接第 47页)
[ 3] � 周继成,周青山,韩飘扬,等.人工神经网络 [ M ] . 北京: 科学出版
社, 1993.
[ 4] � 张立明.人工神经网络的模型及其应用[ M ] .上海: 复旦大学出版
社, 1993.
[ 5] � 巨军让,卓 � 戎. BP 神经网络在 M at lab上的方便实现[ J] .新疆石
油学院学报, 1999.
[ 6] � 苑希民,李洪雁,刘树坤,等.神经网络和遗传算法在水科学领域
的应用[ M ] .北京:中国水利水电出版社, 2002.
[ 7] � 陈春凯. Mat lab人工神经网络工具箱中的 BP 工具函数及其应用
[ J ] .许昌师专学报, 2002, 21( 5) .
[ 8] � 姚文俊. BP 算法的改进在M at lab的实现研究[ J] .现代电子技术,
2003, 21.
[ 9] � 张 � 兵.基于 L-M 优化算法的 BP 神经网络的作物需水量预测模
型[ J ] .农业工程学报, 2004, ( 6) .
49基于 PLC 的模糊控制恒压供水系统设计 � � 高宏岩