- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BP神经网络在煤层气井产量预测中应用
BP神经网络在煤层气井产量预测中应用摘要:BP学习算法是一种单向传播的多层前向网络,Matlab中的神经网络工具箱以人工神经网络理论为基础。本文基于Matlab的工具箱,结合沁水樊庄区块晋试1-6井和TL003井的抽排实验数据对煤层气井产量进行预测,验证了BP神经网络在沁水樊庄区块预测煤层气井产量的可行性,且BP算法收敛速度快,误差小,值得推广。
关键词:BP神经网络 煤层气井 产量预测
1.引言
人工神经网络(ArtificialNeuralNetworks,ANN),是近几年来国内外一个前沿研究领域,它是人工构造的模拟人脑功能而构建的一种网络,BP神经网络是结构较简单、应用最广泛的一种模型,BP神经网络是Rumelhart等在1986年提出的。它是一种单向传播的多层前向网络,一般具有三层或三层以上的神经网络,包括输入层、中间层(隐层)和输出层[1],其模型见图1所示。
Matlab中的神经网络工具箱是以人工神经网络理论为基础,利用Matlab语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法。网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序,免去了繁琐的编程过程。
沁水煤层气田划分为樊庄、潘庄、郑庄3个区块,总面积3630km2,煤层气总资源量4500×108m3,其中中石油登记区总含气面积为1090.87km2,煤层气总资源量为2655.98×108m3。樊庄区块总含气面积为398.23km2,煤层气总资源量为1043.3×108m3,已探明352.26×108m3[2]。截止2008年,樊庄-郑庄区块已经完成59口探井、评价井和48口水平井以及638口开发井的钻探。根据煤层气井产气量对不同井进行组网是经济有效的进行采气作业的好办法,那么在开采之前对煤层气井产气量进行预测就十分必要。本文利用晋试1-6井的参数,以煤层埋深、煤层厚度、含气量、渗透率和含气饱和度作为输入因子,日产气量为输出因子,选择合适的隐层,构建影响沁水樊庄区块煤层气井日产气量的BP网络模型,运用Matlab软件进行预测。
2.BP神经网络设计的基本方法
Matlab的NNbox提供了建立神经网络的专用函数newff()[3]。用newff函数来确定网络层数、每层中的神经元数和传递函数,其语法为:
net=newff(PR,[S1,S2,#8943;,SN],{TF1,TF2,TFN},BTF,BLF,PF)
式中:PR表示由每个输入向量的最大最小值构成的R×2矩阵:Si表示第i层网络的神经元个数;TF表示第i层网络的传递函数,缺省为tansig,可选用的传递函数有tansig,logsig或purelin;BTF表示字符串变量,为网络的训练函数名,可在如下函数中选择:traingd、traingdm、traingdx、trainbfg、trainlm等,缺省为trainlm;BLF表示字符串变量,为网络的学习函数名,缺省为learngdm;BF表示字符串变量,为网络的性能函数,缺省为均方差“mse”。
2.1网络层数
BP网络可以包含不同的隐层,但理论上已经证明,在不限制隐层节点数的情况下,两层(只有一个隐层)的BP网络可以实现任意非线性映射。本文所建立的模型拟采用三层的BP网络。
2.2输入层节点数
输入层起缓冲存储器的作用,它接受外部的输入数据,因此其节点数取决于输入矢量的维数。本论文输入因子为煤层埋深、煤层厚度、含气量、渗透率和含气饱和度,即输入层的输入矢量的维数为5,故输入层节点数为5。
2.3输出层节点数
输出层节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。在设计输人层和输出层时,应该尽可能的减小系统规模,使系统的学习时间和复杂性减小。结合预测要求本论文设计输出层为产气量一个输出因子。
2.4隐层节点数
一个具有无限隐层节点的两层BP网络可以实现任意从输入到输出的非线性映射。但对于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,这就涉及到如何选择隐层节点数的问题,至今为止,尚未找到一个很好的解析式,隐层节点数往往根据前人设计所得的经验和自己进行试验来确定。一般认为,隐层节点数与求解问题的要求、输入输出单元数多少都有直接的关系。另外,隐层节点数太多会导致学习时间过长;而隐层节点数太少,容错性差,识别未经学习的样本能力低,所以必须综合多方面的因素进行设计。
隐层节点数的初始值可先由以下两个公式中的其中之一来确定[4,5]。
+a(1)
或(2)
式中,m、n分别为输入结点数目与输出结点数目,a为1~10之间的常数。
2.5数据归一化
因为原始数据幅值
文档评论(0)