王建华,温欣,管震,王海涛,闫绍山
(1.昆仑数智科技有限责任公司,北京 100043;2.北京工业大学经济与管理学院,北京 100124)
钻井过程中经常会遇到各种各样的复杂事故情况,如钻具刺漏、钻头磨损、钻具掉落、钻具阻卡等,其中钻具阻卡是最为常见的一种异常现象。钻具阻卡是指在起、下钻过程中,由于井下可能存在压差、沉砂或砂桥、井眼坍塌、钻头泥包、井眼缩径、键槽等原因,经常会碰到的钻具遇阻、遇卡的现象。在绝大多数井上,或多或少,或重或轻,都会出现钻具阻卡现象,特别是随着水平井、大位移斜井、定向井、分枝井等复杂井型的出现,钻具阻卡现象变得更为普遍。在钻井过程中如果不能及时监测阻卡的苗头,对阻卡原因进行准确分析判断,恰当处理钻具阻卡,就会导致轻微阻卡恶化成严重阻卡乃至卡死,拖延钻井时间,增加钻井费用,处理过程还易引起断钻具、坍塌等其他井下复杂事故,再严重时甚至会导致井的报废,造成巨额的经济损失。因此,在钻井过程中对有可能发生的钻具阻卡进行准确预警,对于防止阻卡恶化,降低施工风险,节省钻井费用及减少经济损失具有重要意义。
传统的阻卡分析和报警主要是通过设置单一参数门限值进行预警,且必须通过专业人员连续跟踪实时监测曲线才能完成,参数门限值的设置依赖于专家的经验,存在较大的主观性。由于地层的多样性和钻井过程中的复杂性导致钻具阻卡的种类多种多样,人为分析难以对阻卡进行准确报警和预警,劳动强度也极大。另一方面,钻井过程中从井场实时传输到后方的各项钻井参数,如大钩负荷、大钩高度、悬重(计算后的参数)、扭矩、转盘转速等数据,能够全面反映钻井状态,对于准确预警钻具阻卡很有帮助。因此,必须充分利用钻井过程中的各项钻井参数数据并结合工况以及邻井复杂事故才能对钻井状态做出全面、合理的评估,及时发现阻卡异常,预防钻具卡死情况的发生,减少钻周期,达到降本增效的目标,为安全钻井保驾护航。
在故障诊断中,目前基于知识的专家系统和基于神经网络、机器学习的智能预警系统等人工智能方法应用最为广泛。基于知识的专家系统指利用专家的经验和知识为故障诊断服务,主要由人机界面、知识库、推理机、综合数据库以及解释器五部分组成。基于神经网络、机器学习的智能预警系统指利用神经网络、机器学习算法的自适应学习、自组织、容错,能够学习非线性关系等特点,对于历史故障数据进行学习建模,并对有可能发生的故障进行及时预警。目前在化工设备、机械系统以及电子设备的故障诊断方面应用最为广泛,专家系统、神经网络和机器学习模型对于石油钻井行业故障诊断效率和准确性的提高也有重要意义,但是在石油钻井行业鲜少用之。因此,本文提出基于支持向量机(SVM)的钻具阻卡智能预警模型(SVM-IAM),在钻井过程中从井场实时传输到后方的数据基础上,综合利用大数据和人工智能技术让计算机学习大量案例,建立阻卡复杂事故预警模型,实现阻卡的自动预警,及早防范和控制卡钻等严重复杂事故。
为实现钻具阻卡的自动预警和报警,及时发现阻卡异常,及早防范和控制卡钻等复杂事故,本文提出了基于SVM的钻具阻卡智能预警系统。首先,对钻井过程中从井场实时传输到后方的原始数据进行缺失值补全,保证数据的完整和连续性;其次,对数据进行异常值处理和去噪处理,保证数据的质量和准确性;再次,对数据进行特征提取及归一化处理,将原始数据构造成适合于模型训练的形式;最后,经过上述操作的原始数据通过SVM模型,会自动给出是否会发生钻具阻卡的预警。
在钻井过程中从井场实时传输到后方的数据,因为传感器和数据库存储等偶发故障、人为失误等原因,不可避免地会造成少量的数据缺失。数据的缺失会极大地影响数据分析的结果,对模型的准确性造成不良影响,因此需要对数据缺失进行处理。目前,对数据缺失进行处理的常用方法主要有加权法、删除法、均值插补法、线性插补法、最近邻插补法等方法。由于钻井数据为从井场实时传输到后方的时间序列数据,需要保持时间间隔内的连续性,因此采用线性插补法对缺失值进行补全操作。
线性插补法的主要思想是假设包含缺失值的变量和其他变量之间存在线性关系,然后利用变量之间的线性关系建立多项式回归方程,利用该方程及已知的数据对缺失值进行补全处理。
在对数据进行缺失值补全之后,需要进一步对数据中的异常值及噪声进行处理,提高数据的质量和准确性。
在实际生产中,由于井场物理设备等原因,会造成数据异常波动,如大钩负荷忽然上升然后又恢复正常,就会造成均值变化量、标准差过大,这种数据就叫做异常数据,异常数据很容易造成模型对钻具阻卡的误判。为了减少阻卡的误判,采用格拉布斯准则来剔除异常数据,判断公式如下式(1)所示。具体的步骤为:(1)针对待剔除异常值的某一列特征,获取8分钟的实时数据构成数据集合,确定集合中数据的数量、均值、标准差;(2)集合中的每一条数据代入式(1),若该条数据满足公式条件则标记为待剔除数据,剩余数据继续迭代;(3)把待剔除数据转换为8分钟内数据的平均值,异常数据变成有效数据。
式中,xi为集合中每一条数据;mean为集合中数据的均值;std为集合中数据的标准差;n为集合中数据的数量;a为显著性水平;g(n,a)的取值可以通过查格布拉斯准则表得到。
由于部分井场采集数据波动性较大,有明显的噪波,会严重影响模型学习的效果。因此在提取趋势特征之前,需要对数据进行去噪处理。采用小波变换对数据进行去噪处理,基本原理是对原始窗口数据进行先期处理,将曲线分解低频和高频频谱,去掉高频频谱后进行小波重构,最终达到去噪的目的。小波变换去噪的基本步骤:(1)确定小波基函数为sym8基函数,小波变换级数为5级,对待去噪字段进行小波变换,得到不同尺度下的小波系数;(2)确定阈值函数为软硬阈值折中的函数,对不同尺度下的小波系数进行阈值处理,得到估计小波系数;(3)对估计小波系数进行逆变换,即得到去除了噪声的字段。
经过上述数据缺失补全、数据异常值剔除、数据去噪之后,需要选取对模型有用的字段,并进行数据滑窗操作,构造用于模型训练的特征。最终选取的字段包括大钩负荷、大钩高度、扭矩、钻头位置、钻压等因子,在选取的因子之上进行数据滑窗操作。
在实际生产环境中采集的实时数据是基于时间变化的,这种数据在机器学习领域被称作时间序列数据。在本文模型中需要利用数据滑窗的思想,将基于时间序列的数据转化为瞬时数据。数据滑窗的基本思想是:(1)确定数据滑动的时间窗口大小(以分钟为单位),并将时间窗口放在数据起始位置;(2)利用差分、均值、方法等一系列特征工程,将当前时间窗口内的数据处理成瞬时数据,将时间窗口沿着时间轴向后滑动1分钟;(3)循环执行步骤(2),直至时间窗口无法向后滑动。例如,我们确定时间窗口大小为5分钟,第一次我们将[0,5]分钟的数据处理成瞬时数据;然后将时间窗口沿着时间轴向后滑动1分钟,即将[1,6]分钟的数据处理成瞬时数据;之后沿着时间轴依次往后进行实时跟踪,直至数据窗口无法向后滑动。分别对时间窗口大小为3分钟至7分钟进行了测试,最终选定时间窗口大小为4分钟。
为了去除数据量纲的影响,并保证模型训练时加快收敛,需要进一步对经数据滑窗得到的特征进行归一化。例如,不同井的大钩高度,大钩负荷两个因子的值在钻具阻卡发生时的数值差异很大,经过归一化可以把有量纲的大钩负荷、大钩高度,转化为无量纲数据,使得样本的分布差异性更显然、更强。归一化即把特征列数据经过特定处理后限制在一定范围内,目前常用的归一化方法有最大最小值归一化、对数归一化、指数归一化、三角函数归一化等。本文模型采用最大最小值归一化方法对特征列数据进行归一化,将特征列数据范围限定在[0,1]区间内。
经上述一系列数据操作之后,最终得到适合于模型训练的数据。基于SVM,结合训练数据进行模型构建,即得到本文基于SVM的钻具阻卡智能预警模型SVM-IAM。
支持向量机(Support Vector Machine,SVM)是Vapnik等人(1995)根据统计学理论提出的一种机器学习方法,目前已经广泛应用于模式识别、状态评估、故障诊断等领域。SVM处理的问题大致可以分类两类:线性可分问题,线性不可分问题。对于线性可分问题,SVM的任务就是找到一个最优超平面,使得任一样本点到该超平面的距离最大化。对于线性不可分问题,则首先需要借助核函数将样本空间映射至高维特征空间,然后在此高维特征空间内找到一个最优超平面,使得任一样本点到该超平面的距离最大化。
本文研究的问题属于线性不可分问题,因此需要借助核函数将样本空间映射至高维特征空间,具体选择的核函数为径向基核函数。
本部分首先对模型训练用到的数据集进行介绍,并对模型的参数进行说明;然后对本文SVM-IAM模型及3种基线方法的结果进行对比分析,验证本文SVM-IAM模型的有效性。
本文采用的数据集为从不同井场传回的井场综合录井数据,未经任何处理的原始数据总量为32662条。原始数据经过数据缺失处理、数据异常值及去噪处理、特征提取及归一化处理之后,数据总量为617条,共有27个特征列,1个样本标签列。样本标签列中1表示阻卡样本(正样本),0表示正常样本(负样本)。其中阻卡样本共11条,正负样本比例极度不均衡。
正负样本比例不均衡会严重影响模型学习的效果,因此需要对此进行处理。处理样本不均衡问题主要有过采样和欠采样两种方法,本文选择过采样方法。过采样的基本思想是:按照特定规则合成部分少数类样本,缓解少数类样本与多数类样本的比例不均衡问题。具体来说,本文使用SMOTE方法对少数类样本进行过采样,同时考虑到采样会放大少数样本中的噪声对模型的影响这一问题,过采样中最终设置的正负样本比例为0.5。因此,最终用于模型训练的数据总量为909条,其中正样本303条,正负样本比例为1:2。
为验证本文所提SVM-IAM模型的有效性,在本文数据集上进行对比实验。将本文模型与逻辑回归模型(Logistic Regression,LR)、朴素贝叶斯模型(Naive Bayes, NB)和决策树模型(Decision Tree, DT)在不同测试集比例下进行性能比较,性能评估指标选用查准率(Precision)、查全率(Recall),测试集比例分别为15%、20%、25%、30%、35%。图1展示了对比实验中各模型的查准率和召回率在不同测试集比例下的变化情况。
图1 不同测试集比例下本文SVM-IAM模型与3个基准模型的性能对比
从图1(a)可以看到,本文模型在查准率上表现最好,其次是决策树模型、逻辑回归模型和朴素贝叶斯模型。特别是在测试集比例为15%、20%、25%时,本文模型优势更加明显。在测试集比例为35%时,决策树模型的查准率与本文模型的查准率相当。查准率衡量的是模型给出的阻卡预测中,真正发生阻卡的次数所占的比例,反映的是模型对于阻卡预测的效率。
从图1(b)可以看到,本文模型在召回率上表现最好,其次是逻辑回归模型、决策树模型和朴素贝叶斯模型。特别是在测试集比例为15%、20%、25%时,本文模型优势更加明显。召回率衡量的是所有发生阻卡的情况中,模型正确给出阻卡预测的次数所占比例,反映的是模型对于真正阻卡的覆盖率。
综上,本文模型与逻辑回归模型、朴素贝叶斯模型和决策树模型相比,在阻卡预测的效率和对真正阻卡的覆盖率方面都取得了较好的效果,验证了本文模型的有效性。
针对钻井过程中传统钻具阻卡分析预警准确率低的问题,本文提出了一种基于SVM的钻具阻卡智能预警模型SVMIAM。首先使用线性插补法对原始数据进行数据缺失补全,其次使用格布拉斯准则去除数据异常值,使用小波变换去除数据噪声,再次对处理过的数据进行数据滑窗操作提取特征并进行归一化处理,最后基于SVM构建智能阻卡智能预警模型。实验结果表明,与其他方法相比,本文SVM-IAM模型在查准率和召回率上都取得了较好的效果,能够对钻井过程中的钻具阻卡进行准确预警。在以后的工作中,将进一步研究如何构造更为有效的特征和如何选择更为合适的机器学习模型。