摘要:
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 输出层节点数
输出层节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。在设计输