BP神经网络在煤层气井产量预测中的应用

时间:2023-05-13 14:00:13 手机站 来源:网友投稿

摘要: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,⋯,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.1,0.9]区间内。归一化公式为:

×0.8+0.1(3)

3.BP算法及预测模型的建立

3.1BP算法

1)初始化网络及学习参数;

2)从训练样本集合中取一个样本,并作为输入向量送入网络;

3)正向传播过程,对给定的输入样本,通过网络计算得到输出样本,并把得到的输出样本与期望的样本比较,如有误差超出限定范围,则执行第4步;否则返回第2步,输入下一个样本;

4)反向传播过程,即从输出层反向计算到第一隐层,修正各神经元的连接权值,使用误差减小。

3.2煤层气井日产气量预测模型

为了预测煤层气井日产气量,需要关注很多因素,滤去相关度过低的因子,根据经验确定输入因子为煤层埋深、煤层厚度、含气量、渗透率和含气饱和度,输出因子为日产气量。现以表1所示的沁水樊庄区块晋试1-6井的参数作为训练样本进行训练,对TL003井的数据进行预测。输出层结点代表日产气量,神经网络的预测模型采用5-5-1,即输入层5个神经元,根据公式(2)计算隐层神经元数确定为5,1个输出神经元。设定最大的迭代次数为1000次,系统全局误差小于0.0005。传递函数为tansig,训练函数为traingdx。根据经典的BP算法,采用Matlab编程,样本训练结果见图2,TL003的数据作为预测样本,预测结果如下:

TRAINGDX,Epoch0/1000,MSE0.363349/0.0005,Gradient0.113892/1e-006

TRAINGDX,Epoch25/1000,MSE0.358319/0.0005,Gradient0.124151/1e-006

TRAINGDX,Epoch50/1000,MSE0.336296/0.0005,Gradient0.165309/1e-006

TRAINGDX,Epoch75/1000,MSE0.151697/0.0005,Gradient0.201026/1e-006

TRAINGDX,Epoch100/1000,MSE0.0491568/0.0005,Gradient0.0479309/1e-006

TRAINGDX,Epoch125/1000,MSE0.0250848/0.0005,Gradient0.0155269/1e-006

TRAINGDX,Epoch150/1000,MSE0.00622656/0.0005,Gradient0.010656/1e-006

TRAINGDX,Epoch162/1000,MSE0.000461385/0.0005,Gradient0.00289131/1e-006

TRAINGDX,Performancegoalmet.

Y=270731423536329726622672

煤层气井日产气量实际值为2700,3146,3519,3292,2634,2721。误差为0.0026,当样本较少时可以接受的误差范围内。并且收敛速度快。模拟效果图见图3。将预测样本TL003的数据输入已建立的预测模型,得出预测值为2765,实测值为2773,误差为0.0029,预测效果较好。

4.结论

用Matlab编编写的基于BP网络的沁水樊庄区块煤层气井产气量预测程序,计算结果表明,误差较小,预测值与实测值吻合较好,所建立的模型具有较好的实用性,说明煤层埋深、煤层厚度、含气量、渗透率和含气饱和度的数据影响煤层气井的产气量,同时验证BP算法可以用于煤层气井产气量的预测。

目前所进行的预测试验中数据的样本较少,且产气量动态变化,今后拟建立一个动态预测系统,为煤层气井日产气量的预测提供新的方法,为生产提供依据,该技术值得推广。

参考文献:

[1]飞思科技产品研发中心.神经网络理论与Matlab7实现[M].北京:电子工业出版社.2006:100-105.

[2]王宪花,卢霞.沁水煤层气田樊庄区块煤层气开发经济评价[J].天然气工业,2004,24(5):137-139.

[3]周开利,康耀红.神经网络模型及其Matlab仿真程序设计[M].北京:清华大学出版社,2005.

[4]徐庐生.微机神经网络[M].北京:中国医药科技出版社,1995.

[5]高大启.有教师的线性基本函数前向三层神经网络结构研究[J].计算机学报,1998,21(1):80-85.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

推荐访问:气井 煤层 神经网络 产量 预测

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。