background image

 摘要:

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 输出层节点数 

  输出层节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。在设计输