本文版权归天然气工业杂志社所有
未经允许,不得转载
张智, 王翔辉, 黄媚, 等. 基于随机森林和长短期记忆网络模型的高压气井环空带压预测方法[J]. 天然气工业, 2024, 44(9): 167-178.
ZHANG Zhi, WANG Xianghui, HUANG Mei, et al. A prediction method of annular pressure in high-pressure gas wells based on the RF and LSTM network models[J]. Natural Gas Industry, 44(9): 167-178.
作者简介:张智,1976 年生,教授,博士研究生导师;主要从事油气井工程、井筒完整性与环空带压管控、材料腐蚀与防护等方面的研究工作。地址 :( 610500)四川省成都市新都区新都大道 8 号。ORCID: 0000-0002-7120-2027。
E-mail: wisezh@126.com
张 智1 王翔辉1 黄 媚2 冯少波3
1. 油气藏地质及开发工程全国重点实验室·
西南石油大学
2. 中国石油西南油气田公司
3. 中国石油塔里木油田公司
摘要:高压气井在生产过程中持续的环空带压容易引起套管柱变形或挤毁,是高压气井完整性失效的主要原因之一。为解决传统方法环空带压预测精度不高的问题,以鄂尔多斯盆地苏里格气田某高压气井为例,首先利用主成分分析法和相关系数法找到影响环空带压的主要因素,然后使用高压气井井筒温压场理论值和孤立森林模型对主成分进行物理解释和数据清洗,再对清洗后的数据使用随机森林(RF)和长短期记忆网络(LSTM)模型建立了环空带压定量预测模型,并对两类模型进行权重组合,最终建立了精确度高于任意单一模型的RF—LSTM 组合环空带压预测新模型。研究结果表明:①环空带压的主要影响因子有温度分量、压力分量、产量分量、腐蚀程度、生产状态,而温度分量与环空带压间存在最高关联性;②通过错误格式、离群点及基于井筒温压场的数据清洗,可以得到数据清洗后的环空带压影响因素训练集;③通过平均绝对误差法(MAE)能够建立误差分数小于任意单一模型,而拟合优度介于两者之间的组合模型,因此可以将具有高拟合优度和低误差分数的两类模型结合,从而组合出同时满足两种分数的组合模型。结论认为:①运用大数据挖掘技术及算法进行环空带压定量预测,方法新颖,预测精度高,结果可行;②该方法为现场环空带压预测和风险管控提供了决策工具参考,为实现环空带压风险实时预测、预警和管控提供了理论支撑。
关键词:环空带压;数据挖掘;随机森林;主成分分析;LSTM ;大数据;预测方法
0 引言
环空带压现象指井口处的环空压力经过泄压后又迅速恢复到泄压前压力水平的现象[1-2]。持续的环空带压易引起套管柱变形或挤毁,是高压气井完整性失效的主要原因[3-4]。据美国联邦矿业总局统计,美国海湾外大陆架地区15 500 口井中至少有6 692 口环空带压井[5] ;环空带压现象在国内也普遍存在,塔里木盆地库车山前140 口井中环空异常带压井占比达22%,且部分井环空带压值较高。渤海、东海、南海的大部分海上气井存在井筒完整性问题,其中环空带压问题尤为突出[6]。可见,环空带压问题日益严重, 威胁着气井的井筒完整性[7-8]。深层超深层油气开发投资大,井筒实体屏障单元影响因素复杂,“黑天鹅” 事件时有发生, 产生了难以评估的风险。为此,有必要统计影响高压气井环空带压的因素指标,基于高压气井环空带压机理,建立环空带压预测模型,通过高于一般预测精度的结果为环空带压管控和预防提供决策依据[9]。
目前,高压气井环空带压预测研究是国内外学者广泛关注的问题。传统环空压力的计算方法包括3 类[10-11]:①参考国内外相关标准、文献或供应商手册;②使用PVT(Pressure Volume Temperature,压力体积温度)状态方程和环空温度压力场模型;③结合井筒内流体、气体等压膨胀系数和等温压缩系数计算。Mohamed 等[12] 强调了正确诊断环空压力对井筒安全管控的重要性;Liu 等[13] 建立了深水井套管环空压力预测模型;冯剑等[14] 通过深水压井井筒瞬态温度场模型计算压井工况下的井筒瞬态温度分布规律,并使用深水工程师法[15] 对压井过程中的井口压力和环空多相流状态进行了研究;张智等[16-18] 基于标准API RP 90-2[19],结合油压、产量变化等生产参数、地层因素和PVT 状态方程,提出了陆上油气井与页岩气井的环空带压计算方法。如今基于大数据的环空带压预测模型兴起。吕祎阳[20] 结合差分整合移动平均自回归模型(Autoregressive Integrated Moving Average Model,ARIMA)和遗传算法对高温高压超深井的环空压力进行预测,得到了高于单一模型预测精度的结果。冯学章等[21] 从环空带压风险预警入手,建立了贝叶斯网络和实际生产数据的环空带压风险预警模型。
对比传统计算模型和数据驱动模型发现,数据驱动方法对于多因素、非线性问题具有更广泛的适用性,且更擅长处理大数据问题。因此,构建基于大数据的环空带压预测模型具有较强的创新性,有助于建立环空带压新的理论体系,对今后的环空带压预测、成因分析与管控具有重要意义。
我国石油企业数字化建设和集成应用取得了重要进展,集成了钻井、录井、测井、试油、分析化验、油气生产等勘探开发不同类别数据,实现了数字油田目标,有力支撑了油气勘探开发科技创新[22],这为基于大数据的环空带压预测提供了必要的数据支撑。然而在长达10 余年生命周期内,每口油气井会不断生成新的数据,环空带压预测存在训练样本与结果关联性较弱、数据清洗方法不完善、未考虑时间序列对环空带压的影响等问题[23]。
为解决以上问题,提出了结合影响因子关联性、数据清洗与时间序列影响的环空带压预测模型:采用主成分分析法(Principal Components Analysis, PCA)灰色关联分析、斯皮尔曼相关系数和皮尔逊相关系数对环空带压影响因子进行排序,除去与其无关的因变量并选择显著影响因子来提高模型的精确度。针对传统数据清洗忽略勘探和生产过程实际物理意义的问题,使用孤立森林模型对因变量进行预处理, 同时在实际高压气井工况下,考虑高压气井随井深变化的温度场、压力场分布耦合计算模型,将两者结合建立基于实测数据的异常点检测方法。对清洗后的影响因子进行了一系列特征工程,采用随机森林(Random Forest,RF)模型进行训练,得到基于影响因子的高压气井环空带压预测模型。再根据高压气井环空带压随时间变化数据本身的特征,建立长短期循环神经网络(Long Short-Term Memory,LSTM) 进行时间序列分析。最终,结合RF 模型和LSTM 模型的特征,构建最适用于高压气井的环空带压预测RF—LSTM 模型。
1 环空带压影响因子数据准备
1.1 高压气井环空带压影响因子排序
以鄂尔多斯盆地苏里格气田某区块的高压气井为目标,该区块有电动球阀井32 口,电动针阀井8 口,气动薄膜阀井2 口,切断阀改造井1 口。采集了2021 年4 月29 日到5 月27 日生产时间内的17 个变量数据(表1),每10 min 记录一次,共计五万余条数据。其中,因为生产状态和油管腐蚀程度属于定性变量,故根据一定规则将其转换为定量数据。令生产状态开井时为“1”,关井时为“0”;油管腐蚀的严重程度从0 到1 递增,其符合以下规则:非常低[0, 0.3)、中等[0.3, 0.5)、高[0.5, 0.7)、非常高[0.7, 1.0)。同时,记录了该区块各口井的一系列静态参数,以某高压气井为例,其参考取值如表2 所示。
当所有参数作为输入数据集时,会建立一个具有31 维的特征向量,但在这些维度中,许多参数包含有重复的信息。例如,总产量为产油量、产气量和产水量之和。将大量冗余的信息输入模型,会导致模型复杂度上升。由于训练的参数过多会导致模型拟合的程度过于严格,模型仅在训练的点集上一致而在其他区域产生极大波动,又称龙格现象[24]。因此, 需要先对参数进行降维处理。表2 中的参数对于每口井固定不变,能够单独处理,重点对表1 中的参数展开研究。
本文采用主成分分析算法进行降维,将上述与环空带压具有相关性的影响指标化为少数几个相互独立的综合指标,使其满足如下条件[25] :①指标个数尽可能少;②指标间相互独立;③尽可能多地包含原指标所含的关于总体的信息。
通过计算指标的均值和标准差得到标准化数据, 再计算标准化数据的协方差:
由表4 可知,前3 个主成分的贡献率皆大于10, 累计贡献率达到85.633 3%,符合PCA 标准[26],因此确定主因子的个数k = 3。
根据前3 个主成分的特征向量,最终得到3 个主成分分量的表达分布式:
从第一主成分F1 来看,从X5 ~ X11 有相近的正载荷且大于其他载荷,这说明X5 ~ X11 对数据具有最大贡献,而X5 ~ X11 恰巧都为温度指标,与实际物理意义相吻合,因此可以将F1 定义为温度主导的分量;从第二主成分F2 来看,X5 ~ X11 与温度指标有相近的负载荷,X12 ~ X15 有相近的正载荷且绝对值最大,考察其物理意义为产量指标,这说明产量是第二主成分的主要决定因素,而温度作为其协调成分,将第二主成分定义为产量主导的分量。同理, 得到第三主成分F3 的主要决定因素为压力,定义为压力主导的分量。
图1 以每个原始变量和3 个主成分的载荷为坐标,反映了3 个主成分和原始变量的关系。显然,温度、产量、压力将所有实时数据分为3 个主成分,这3 个主成分包含了原来超过85% 的信息。因此,输入数据的X1 ~X15 可以替换成F1、F2 和F3 进行之后的训练。
为验证主成分与环空带压具有的高度相关性, 对3 个主成分和生产状态、腐蚀程度与环空带压值进行相关性分析,根据所选变量对环空带压的相关性进行排序。本文选用了皮尔逊系数法、斯皮尔曼系数法和灰色关联分析法3 种相关性分析算法进行平均[27],验证由PCA 得到的结果与环空带压间存在关联性(图2)。
自变量X 与环空带压结果Y 的相关系数落在区间[-1, 1]。该值越接近0 说明X 和Y 无相关性;越接近1 说明X 和Y 呈正相关;越接近- 1 说明X 和Y 呈负相关。通常情况下相关系数绝对值与变量相关性如表5 所示。
对3 个主成分和生产状态、腐蚀程度指标通过皮尔逊相关系数、斯皮尔曼相关系数和灰色关联度得到平均相关系数热力图(图3)。
由图3 可知,温度分量与环空带压间存在最高关联性,故最终选择环空带压的主要影响因子有温度分量、压力分量、产量分量、腐蚀程度、生产状态。
1.2 高压气井环空带压影响因子数据清洗
在确认模型的输入变量和输出变量后,一些输入变量由于人为等因素会存在误差。而在训练过程中,机器不得不考虑这些误差使模型总体的损失函数降到最低,大量纲的误差会让整个模型失去实际物理意义。因此,校正数据的流程必不可少,这需要将所有输入的数据进行一次数据清洗,为之后的模型训练打下基础。
数据清洗的第一步是去除数据集中具有显著错误的数据组并去除对应的输出值,包括数据空缺、数据重复和数据格式错误。这些错误不仅严重影响模型训练结果,而且因为与其他数据差异过大而影响要使用的数据清洗算法。基于以上3 类错误设计出第1 次数据清洗流程:在数据集内,如果某数据存在缺失则复制上一行正常数据,如果某数据符号错误则复制上一行正常数据,整理得到新的数据集。
高压气井的温度分量、压力分量和产量分量都是基于时间序列的连续变化因子,其数值的变化应是连续的。在研究一个连续变量的变化规律时,离群点通常被作为异常数据来处理,因此采用离群点检测算法进行第2 次数据清洗。
孤立森林算法在大部分工业异常检测场景中已被证实是最佳算法[29]。因此,对于温度分量、压力分量和产量分量的离群点检测可以使用孤立森林算法。以温度分量为例,对其建立孤立森林模型的流程如下:
1)异常温度分量通常是分布相对稀疏没有落在集中区域的温度,在特征空间中,这些远离集中区域的点容易被视为离群点,所以认定落在稀疏区域的温度为异常温度。
2)在孤立森林中,通过不断随机二分温度的数据集,让所有温度对应到特定的孤立单位中。考察路径中较短的孤立单位,一般是最容易异常的温度。
令孤立森林的采样值为256,异常概率为0.01。分别计算压力分量、温度分量和产量分量各个点的孤立森林系数,得到各点对应的孤立分数分布图 (图4)。按照孤立森林标准将偏移度小于- 0.85 的数据视为离群点,遍历3 种分量后检测到12 行离群点异常数据,将这些数据对应的行删除。
高压气井中温压是相互制约、相互联系的,两者存在耦合关系,通过其中一方的数值能够确定另一参数的趋势[30],故可以通过这层联系来实现第3 次数据清洗。
以该区块某高压气井为目标进行井筒温压场耦合计算,根据实例录井数据,定义第i 天的产量为Qi,井口温度为Ti,井口压力为pi。能够得到以下关系:
以该井不同产量[(10 ~ 80)×104 m3/d]、井深 (0 ~ 7 000 m)为变量,使用井筒温度场模型[31-32] 计算温度分布情况(图5-a)。
由图5-a 可得,随着井深与产量的增加,井筒温度也相应增加。当在井口时,产量与井口温度呈正相关(图5-b)。
再以该井不同产量[(10 ~ 80)×104 m3/d]、井深(0 ~ 7 000 m)为变量,使用井筒压力场模型[33] 计算压力分布情况(图6-a)。
由图6-b 可得,当产量达到一定阈值后,井口压力随产量增大而减小。
综上,能够建立如下推导关系式:
将井口温度、井口压力和产量3 个参数的变化趋势进行组合,有8 种组合方法,将此关系式用于实例井数据判断(图7)。
为快速判断一组数据存在哪类异常,可将上述组合用向量A=[Q, T, p] 表示,令ΔQi > 0 为0,ΔQi < 0 为1,ΔTi 与Δpi 同理。例如:ΔQi > 0,ΔTi > 0, Δpi > 0 表示为[0,0,0],ΔQi > 0,ΔTi > 0,Δpi < 0 表示为[0, 0, 1]。
将8 组状态向量A 的结果进行组合可得到矩阵B:
计算得到D=[0 26 22 48 20 46 42 68]T,于是对于任意一组A,可以计算其Di :
可以比较Di 与D 的各个值来快速判断异常类型, 如表6 所示。
通过计算,发现在井口温度的总拟合天数(28 d) 中有14.1% 的异常数据;在井口压力的总拟合天数(28 d)中有8.1% 的异常数据,将这些异常数据对应的行删除。最终得到数据清洗后的环空带压影响因素训练集。
2 环空带压预测
将数据清洗后的温度分量、压力分量、产量分量、腐蚀程度和生产状态作为训练样本,选择多种机器学习模型进行分析和预测,从中优选出环空带压预测效果最好的方案。从数据准备到模型预测的整个流程如图8 所示。
2.1 数据标准化
在清洗后的数据集中,温度分量、压力分量、产量分量的量纲并不一致,若将这些分量直接输入会让模型训练后的权重不均,影响各个自变量对结果的影响。故需要对数据进行标准化处理,使所有自变量缩放到[0, 1] 的范围内。
本次选用归一化模型分别对温度分量、压力分量和产量分量进行特征缩放:
2.2 基于随机森林的高压气井环空带压预测
随机森林是一种使用广泛、构建简单且便捷、容易进行参数调整的组合分类器集成学习模型,其底层元分类器采用的是分类回归树(Classification and Regression Tree,CART),适用于本次环空带压的数值预测[34]。
1)将高压气井环空带压影响因子数据整理成n 行6 列的输入数据集,其中前5 列分别表示因变量温度分量、压力分量、产量分量、腐蚀程度和生产状态, 最后一列表示环空带压的输出向量。
2)从数据集中随机筛选80% 的行作为训练集, 剩下的20% 行作为测试集,分别将训练集和测试集从最后一列拆分出输入和输出,输入是一个二维列表而输出是一个向量。
3)实例化一个随机森林,使用训练集进行训练, 得到第一个预测模型。这是还没有进行调优和验证的初始随机森林模型,主要用于定义和计算此次预测的损失函数,让之后优化的模型尽可能减少此损失函数的值。考虑到模型为数值预测,选用均方误差( Mean Square Error, MSE)来评价模型的预测精度。通常,MSE 越接近0 则表示预测值与真实值拟合程度越高。
4)使用网格搜索和交叉验证方法对模型进行调优,计算优化后模型在测试集上的MSE 指标,使其尽可能减少,建立最终的随机森林模型。
通过网格搜索,使用graphviz 包展示随机森林的最优决策森林图像。RF 模型以环空压力0.6 MPa 为界限,生成两颗回归树,每棵回归树再以温度分量为界限继续向下生成,通过一系列的分类实现对环空带压的预测。该森林能得到温度对环空带压影响最大的结论,结合实际物理意义可知,环空带压的产生主要受井口温度影响[35]。
通过此模型,对目标高压气井的环空压力值进行预测,每10 min 一次,预测结果如图9 所示。
由图9 可知,预测值在真实值之间波动,MSE 在0.137 以内,其拟合效果较好。
2.3 基于LSTM 的高压气井环空带压预测
环空带压是一个既受温压场等因素影响,又受自身历史数值影响的多因素变量,考虑高压气井环空带压随时间变化而变化的特征,构建基于环空带压历史数据来进行预测是有必要的。以下将通过LSTM 模型来构建环空带压时间序列预测模型。
为解决环空带压值在长时间序列中的梯度消失和梯度爆炸问题,本文采用LSTM 进行环空带压的预测[36]。
LSTM 是循环神经网络(Recurrent Neural Network, RNN)的变种,相比RNN 只考虑输入参数和时间序列的影响,LSTM 增加了“遗忘门”机制[37]。如图10 展示了LSTM 神经元对环空带压生产数据的处理流程。
图10 中X、h 和C 分别表示环空带压生产数据、输入门时间序列数据和输出门数据各自经过一层全连接神经网络后得到的结果。首先,输入门接受自身上一层的结果h 和环空带压生产数据X,通过计算将结果输出给记忆细胞。然后,记忆细胞通过遗忘门将时间序列中不重要的因素随时间的增长而舍弃, 防止梯度消失和爆炸的发生。最后,输出门接受记忆细胞遗忘后的结果并结合自身上一层的结果通过计算得到输出结果Y。
输入门和输出门的计算可表示为:
1)将选择的高压气井环空带压数据标准化后, 整理成一维向量,令每60 个连续序列作为一组来训练相对于该组后的第一个数据值。
2) 构建一个多层的LSTM, 在每层中添加Dropout 层令其等于0.2 来防止过拟合,这表示网络在每一层的传播过程中随机删除20% 的神经元。
3)定义损失函数,因本模型用于数值预测,选用损失函数均方误差MSE。
4)定义梯度下降时使用的优化器。本次预测选用优化器为Adam(A Method for Stochastic Optimization)。
5)将环空带压数据输入设计好的LSTM 中[38]。
通过以上过程建立的LSTM 结构如图11 所示。
由图可知,记忆序列ht - 2 将数据整合进环空带压生产数据Xt - 1 后输入到LSTM 结构At - 1 中,通过计算得到输出结果Ct - 1 和新的记忆序列ht - 1,而下一个时间的环空带压生产数据Xt 则整合上一层的记忆序列ht - 1 输入到At 中,以此逐步向下一层迭代从而实现模型的训练。
图11 中,A 表示LSTM 的结构;C 表示当前神经元的输出;X 表示当前LSTM 层的输入;h 表示LSTM 输出并输入到下一层的记忆序列;σ 表示sigmoid 激活函数;tanh 表示激活函数,其将输入数据非线性变换到( -1, 1) 区间内:
通过Dropout 和优化器的迭代,对目标高压气井的环空压力值进行预测,每10 min 一次。将预测值与真实值比较发现,预测值普遍小于真实值,这主要是因为模型训练时受间开波动影响[39-41]。如图12 所示,分别对环空带压在正常情况和泄压时进行预测。
图12-a 的MSE 在0.002 以内, 说明两者间误差较小且预测值无波动,拟合效果较好。图12-b 的MSE 在0.087 以内,说明LSTM 对环空带压泄压时产生的波动预测无误,鲁棒性强。
2.4 组合模型构建
单一模型都有自己的适用范围,RF 容易在真实值附近波动,LSTM 容易产生滞后效应,两者在面对复杂工况下的数据时会表现出各自的局限性。RF 重点考虑环空带压影响因子对预测结果的影响,而LSTM 重点考虑环空带压时间序列对后续环空带压的影响,基于此提出RF—LSTM 组合模型,结合两者的特征使预测结果优于任意单一模型。
RF—LSTM 组合模型的构建流程为:
1) 通过平均绝对误差(Mean Absolute Error, MAE)衡量RF 和LSTM 在环空带压预测下的整体指标,MAE 平均系数如下:
对比RF 模型、LSTM 模型和RF—LSTM 模型对目标高压气井的环空压力预测结果,如图13 所示。图13 展示出RF—LSTM 克服了RF 预测值波动和LSTM 预测值滞后的问题。
引入MAE、MSE 和R2 指标来对比三者的拟合结果,其中R2 表示拟合优度:
由表7 可知,RF—LSTM 模型虽受到随机森林系数波动的影响导致预测值与实测值的拟合优度低于LSTM,但其MAE 和MSE 均为最低,误差最小, 综合预测效果最好,结果优于任意单一模型。
3 结论
本文首先通过PCA 和相关性分析找出高压气井环空带压自变量关联性系数,然后结合井筒温压场进行数据预处理。最后通过RF 和LSTM 两种模型建立了RF—LSTM 环空带压组合预测模型,取得了较好的拟合效果,为现场环空带压预测、预警和管控等工作提供决策参考。本次研究得到以下结论:
1)影响环空带压的主要因素包括温度分量、压力分量、产量分量、腐蚀程度和生产状态,以这5 项主成分与环空带压的关联系数从大到小排序为:温度分量、压力分量、产量分量、腐蚀程度、生产状态。
2)根据错误格式、离群点、高压气井井筒温度场、压力场和生产变化的关系对高压气井生产数据进行了矫正,发现在井口温度28 天数据中有14.1% 的异常数据;在井口压力28 天数据中有8.1% 的异常数据, 最终得到数据清洗后的环空带压影响因素训练集。
3)使用MAE 法对RF 模型和LSTM 模型进行组合,建立了RF—LSTM 组合模型。经实测数据验证,通过MAE 法能够建立误差分数小于任意单一模型,而拟合优度介于两者之间的组合模型,因此可以将具有高拟合优度和低误差分数的两类模型结合, 从而组合出同时满足两种分数的组合模型。
编 辑 王 斌
论文原载于《天然气工业》2024年第9期
基金项目:国家自然科学基金项目“四川盆地深层超深层气井环空带压预防与管控基础研究”(编号:U22A20164)、“深层页岩气长位移水平井套管完整性研究”(编号:52074234),四川省青年科技创新研究团队专项计划项目“油气井建井安全四川省青年科技创新研究团队”(编号:2020JDTD0016),中国石油—西南石油大学创新联合体科技合作项目“深井/ 超深井/ 水平井安全高效建井关键基础理论与技术研究”(编号:2020CX040100)。
排版、校对:张 敏
审核:罗 强 黄 东
点击阅读原文,链接到《天然气工业》官网