基于BP神经网络的多相管流模型优选及应用分析1钟海全1,李颖川1,2,刘永辉1,李成见3,李伟31.西南石油大学,成都(610500 )2.“油气藏地质及开发工程”国家重点实验室,西南石油大学,成都(610500)3.中海石油(中国)有限公司北京研究中心,北京(100027)E-mail:jet_haier@摘要:应用91井次的油气井测试数据对Ansari、Hagedorn&Brown Revised、Duns&Ros、Gray以及Beggs&Brill Revised模型进行了评价分析,结果表明:最适合的模型主要有Hagedorn&Brown Revised模型和Ansari模型,其最佳井数分别占50.5%和35.2%。
为了对于特定的油井条件优选出最佳的计算模型,本文提出了利用神经网络优选多相管流模型的方法,建立了BP神经网络模型,给出了完整的学习算法程序框图,提出采用动量算法修改隐含层权值,采用基于指数平滑的方法修改输出层权值,从而有效地减少了抖动。
应用油气井测试数据及管流模型评价结果,研究了神经网络输入层、输出层及隐含层神经元个数对预测准确率的影响,结果表明:合理的BP神经网络模型能很好的预测最佳管流模型,其预测准确率可高达100%。
关键词:BP神经网络;管流模型;BP算法;模型优选;误差井筒多相流动压力梯度无论是在完井管柱设计,预测油气井产能,还是人工举升设计方面都是非常重要的,但由于多相流流型的多变性和流动机理的复杂性,要寻求适用于任何流动条件下的多相流压降计算方法是非常困难的。
迄今已发展了许多经验相关式和机理模型[1~4],但这些方法均具有一定的适用条件。
理论上,应该通过测量确定多相流井筒压力分布,但通常测量成本较高或无法下入测量工具而无法获得。
因此,只能根据油气井生产的实际条件优选多相流模型来预测井筒压力分布。
为了对于特定的油井条件优选出最佳的管流计算模型,本文提出了一种优选多相管流计算模型的新方法,该方法应用了BP神经网络模型确定最佳管流模型,方法的流程如图1所示。
1本课题得到高等学校博士学科点专项科研基金项目“气举采油多相瞬态流实验与理论研究”(NO.20060615002)部分成果;四川省自然科学基金项目“深层有水气井球塞助喷气液球三相流动实验与理论研究”(NO.2006ZD042)部分成果的资助。
- 1 -图1优选最佳管流模型的流程Fig.1 Flow chart to select the optimum pipe-flow model输入层隐含层(n个神经元)输出层图2 BP神经网络模型Fig.2 BP neural networks model1 管流模型评价搜集到91井次的测试资料,其井口压力范围为0.21~6.62MPa,原油重度36.0~37.0o API,含水率0~86.3%,气液比6.7~165.0m3/m3,产液量189.7~3042.3m3/d,油管尺寸50.3~159.4mm,地层水相对密度为1.07,气体相对密度为0.73。
应用测试数据对PIPESIM软件中的Gray、Ansari、Hagedorn & Brown Revised、Beggs & Brill Revised及Duns & Ros模型(分别简写为GR、AN、HBR、BBR及DR)进行评价,结果表明:HBR误差最小的有46井- 2 -次,AN为32井次,GR为7井次,DR为5井次,BBR为1井次,可见HBR模型和AN模型最佳井数分别占50.5%和35.2%,其余三种方法所占百分比均很小。
2 BP神经网络模型BP模型是一种多层感知机构,是由输入层、隐含层和输出层构成的前馈网络,其功能是通过对一系列样本点进行学习来实现的[5~8],1989年Robert [5]已经证明3层BP网络可以任意精度逼近连续函数,因此本研究采用3层BP网络。
影响多相管流计算的参数主要有井口压力,流体密度,含水率,气液比,产液量,油管尺寸,井斜角。
由于本次收集到的资料绝大多数为垂直井,且各井地层水和气体相对密度均分别为1.07和0.73。
因此确定神经网络的输入层神经元为井口压力p wh,原油API重度,含水率f w,气液比GLR,产液量Q L,油管尺寸d ti。
要建立一个好的神经网络模型,隐含层神经元个数至关重要,但通常很难直接确定神经元个数,一般可用试错方式确定。
从上文多相管流模型评价结果看,BBR模型仅一口井最佳,因此无法作为神经网络输出。
由以上分析建立图2所示的BP神经网络模型,图中n为待定隐含层神经元个数。
3 BP算法程序设计框图BP网络的学习过程是一个反复迭代的过程,首先给网络一组初始的权值,然后输入样本并计算其输出,通过比较实际的输出与期望值间的差值,用一定的方法来修改网络的权值,以达到减小此差值的目的,迭代此过程直至差值小于预先确定的精度。
该算法的核心是采用恰当的方法调整网络的权值,本研究采用基于指数平滑的方法调整输出层的权值,而采用动量算法调整隐含层的权值。
BP算法程序设计框图如图3所示。
4 应用分析根据管流模型评价结果及所建立的神经网络模型,由AN和HBR模型最佳井比例最大,首先分析两个输出神经元的情况,将AN和HBR模型计算最佳的井分为63口训练样本井(含8口试错样本井)及15口检验井(未经训练)。
输入层神经元为6个,隐含层神经元为7个,输出层神经元为2个,学习速率0.02,动量系数取0.9,目标精度为10-4,则训练误差如图4(A)所示,试错井及检验井列入表1和表2,结果列入表3和表4。
从图4(A)可得达到目标精度需迭代3563次,最小方差为5.18×10-5,表1和表3试错样本的期望输出与实际输出吻合很好,表明神经网络模型对样本学习是成功的,比较检验井实际输出与期望输出,FGS16井及FGS88井预测错误,预测准确率为86.7%。
如果隐含层神经元取10个,其它数据不变,则训练误差如图4(B)所示,试错井结果列入表3,检验井结果表4。
从图4(B)可得达到目标精度需迭代3605次,最小方差为9.18×10-5,表1和表3试错样本的期望输出与实际输出吻合很好,比较检验井的实际输出与期望输出,预测与期望结果一致,预测准确率为100%。
可见,隐含层取10个神经元即能满足要求。
由于原油重度范围很小,如忽略其影响,即输入层神经元为5个,隐含层为10个,其它数据不变,则训练误差如图4(C)所示。
从图4(C)可得达到目标精度需迭代2994次,最小方差- 3 -为7.69×10-5,表1和表3试错样本的期望输出与实际输出吻合很好,比较检验井的实际输出与期望输出,预测准确率为100%,但FGS2井和FGS88井预测值与期望值相差较大。
比较取6个输入神经元的预测情况,6个更为合理。
如果输出神经元取3个,即输出为AN、HBR及DR,将DR计算最佳的井也加入训练样本集(除检验井FGS90),输入取6个,隐含层取10个,则训练误差如图4(D)所示,试错井结果列入表3,检验井结果列入表4。
从图4(D)可得达到目标精度需迭代22932次,最小方差为6.82×10-5,试错样本的期望输出与实际输出吻合较好,比较检验井的实际输出与期望输出,预测准确率为100%,但FGS90预测值与期望值相差较大。
如果输出神经元取4个,即输出为AN、HBR、DR及GR,将DR和GR计算最佳的井加入原训练样本集(除检验井FGS90和FGS44),隐含层取10个,训练精度不能达到10-4,将隐含层取20个,则训练误差如图4(E)所示,试错井结果列入表3,检验井结果列入表4。
从图4(E)可得达到目标精度所需迭代次数为40744次,最小方差为6.77×10-5,从表4可得,FGS44井预测结果错误,预测准确率为94.1%,同时FGS16、FGS37、FGS75、FGS90预测与期望差值较大。
从以上分析可知,当输出神经元个数增加时,其预测和期望差值增加,预测准确率降低,这主要是由于DR和GR模型训练样本太少,不足以“学会”形成预测能力。
表1 试错样本井Table 1 the trial-and-error sample wells井号最佳模型期望输出输出层神经元FGS5 AN (0.999,0.001)FGS9 HBR (0.001,0.999)FGS15 HBR (0.001,0.999)FGS25 HBR (0.001,0.999)FGS30 AN (0.999,0.001)FGS43 AN (0.999,0.001)FGS61 AN (0.999,0.001)FGS73 HBR (0.001,0.999)2个FGS86 DR (0.0005,0.0005,0.999) 3个FGS41 GR (0.0003,0.0003,0.0003,0.999) 4个备注最佳模型的期望输出为0.999,其余模型均分0.001表2 检验井Table 2 the check wells井号最佳模型期望输出输出层神经元FGS2 HBR (0.001,0.999)FGS11 HBR (0.001,0.999)FGS16 AN (0.999,0.001)FGS19 HBR (0.001,0.999)FGS28 HBR (0.001,0.999)FGS37 HBR (0.001,0.999)FGS38 AN (0.999,0.001)FGS48 HBR (0.001,0.999)2个- 4 -FGS50 HBR (0.001,0.999)FGS57 AN (0.999,0.001)FGS62 AN (0.999,0.001)FGS75 HBR (0.001,0.999)FGS78 AN (0.999,0.001)FGS82 HBR (0.001,0.999)FGS88 HBR (0.001,0.999)FGS90 DR (0.0005,0.0005,0.999) 3个FGS44 GR (0.0003,0.0003,0.0003,0.999) 4个备注最佳模型的期望输出为0.999,其余模型均分0.001表3 试错样本井试错结果Table 3 the predicted results of trial-and-error sample wells各神经网络模型结构的实际输出井号5-10-2 6-10-3 6-20-4 6-7-2 6-10-2(0.998,-0.008) (0.974,0.023,0.002) (0.968,0.057,-0.042,0.016) FGS5 (0.984,0.020) (0.995,-0.002)(0.002,0.997) (-0.001,0.999,0.001) (0.007,1.004,-0.019,0.007) FGS9 (0.001,0.998) (-0.001,0.996)FGS15 (0.126,0.874) (0.001,0.999) (0.011,0.988) (0.042,0.976,-0.018) (0.075,0.918,-0.119,0.125) FGS25 (0.023,0.978) (0.002,0.995) (0.000,0.998) (0.002,0.996,0.001) (0.005,0.996,-0.018,0.017) FGS30 (1.007,-0.003) (0.988,0.010) (1.011,-0.009) (1.000,0.001,-0.001) (1.016,0.004,-0.022,0.001) FGS43 (1.020,-0.020) (0.992,0.010) (1.005,-0.005) (1.013,-0.003,-0.010) (1.012,-0.065,0.074,-0.021) FGS61 (1.023,-0.022) (0.996,0.002) (1.005,-0.005) (1.010,-0.009,-0.001) (1.011,0.009,-0.022,0.002) FGS73 (0.032,0.960) (-0.003,0.999) (0.007,0.996) (0.000,0.994,0.005) (0.016,0.986,-0.001,-0.001) FGS86 最佳模型为DR,输出神经元个数为3和4时增加的试错样本(0.002,-0.003,1.000) (-0.004,-0.007,1.004,0.006) FGS41 最佳模型为GR,输出神经元个数为4时增加的试错样本(0.002,-0.032,-0.023,1.053)表4 检验井预测结果Table 4 the predicted results of check wells各神经网络模型结构的实际输出井号6-7-2 6-10-2 5-10-2 6-10-3 6-20-4 FGS2 (-0.037,1.033) (-0.057,1.057) (-0.330,1.329)# (0.003,1.001,-0.004) (-0.015,1.009,0.022,-0.016) FGS11 (0.001,0.999) (-0.004,1.001) (-0.003,1.005) (-0.001,0.999,0.001) (0.007,1.006,-0.021,0.007) FGS16 (0.206,0.802)* (1.007,-0.009) (0.976,0.020) (1.074,-0.067,-0.007) (0.695,0.003,0.008,0.294)#FGS19 (0.001,0.999) (-0.008,1.006) (-0.003,1.005) (-0.001,0.926,0.075) (0.007,1.006,-0.021,0.007) FGS28 (0.001,0.999) (-0.009,1.011) (-0.003,1.005) (0.002,0.976,0.022) (-0.035,0.984,0.043,0.008) FGS37 (0.008,0.990) (0.149,0.849) (-0.010,1.011) (-0.024,1.013,0.011) (-0.148,2.275,-1.102,-0.024)#FGS38 (0.952,0.046) (1.012,-0.013) (1.009,-0.009) (0.999,0.000,0.001) (1.015,0.004,-0.022,0.003) FGS48 (0.001,0.999) (-0.009,1.008) (-0.042,1.043) (0.001,0.998,0.001) (0.017,0.994,-0.018,0.007) FGS50 (0.001,0.999) (0.049,0.956) (0.057,0.945) (0.040,0.783,0.177) (0.004,1.005,-0.017,0.008) FGS57 (0.997,0.015) (0.917,0.083) (1.120,-0.120) (1.002,-0.005,0.002) (1.013,0.014,-0.043,0.016) FGS62 (1.019,-0.018) (0.984,0.013) (1.015,-0.015) (0.999,0.000,0.001) (1.017,0.002,-0.022,0.004) FGS75 (0.001,0.997) -0.056,1.044 (-0.006,1.005) (-0.001,1.071,-0.070) (0.212,0.513,0.040,0.235)#FGS78 (0.909,0.087) (1.009,-0.025) (1.016,-0.014) (1.004,-0.006,0.003) (0.714,0.057,-0.035,0.264)#FGS82 (-0.249,1.266) (0.037,0.966) (-0.008,1.007) (0.002,1.055,-0.057) (-0.005,1.011,-0.025,0.019) FGS88 (0.716,0.310)* (-0.204,1.207) (0.368,0.632) # (0.004,0.993,0.003) (-0.015,1.009,0.023,-0.016) FGS90 最佳模型为DR,输出神经元个数为3和4时增加的检验井(1.318,-1.667,1.349) # (-0.913,-1.017,2.928,0.002)#FGS44 最佳模型为GR,输出神经元个数为4时增加的检验井(1.017,0.004,-0.022,0.001)*备注*:预测结果错误 #:预测结果与期望值相差较大- 5 -- 6 -图3 BP 算法程序设计框图Fig.3 Flow chart of program design for BP algorithm(A )6-7-2 (B )6-10-2- 7 -(C )5-10-2 (D )6-10-3(E ) 6-20-4图4神经网络模型训练误差Fig.4 Training error for neural networks models5 结论(1) 本文提出了利用神经网络模型优选多相管流计算模型的新方法,建立了其神经网络模型,给出了完整的学习算法框图,提出采用动量算法调整隐含层权值,而采用基于指数平滑的方法调整输出层权值,有效的减少了抖动。