基于K-Means聚类算法的沉砂卡钻预测方法研究
2021-07-16苏晓眉李玉飞李玉梅
苏晓眉,张 涛,2,李玉飞,卿 玉,李玉梅,2
1北京信息科技大学信息与通信工程学院2北京信息科技大学“高动态导航技术北京市重点实验室”3中国石油川庆钻探工程有限公司钻采工程技术研究院
1 研究现状
随着经济的发展,社会对石油资源的需求日益增加,石油钻井也向着深层超深层以及复杂地层迈进,导致钻井过程中各种复杂工况频发。卡钻工况是钻井过程中最常见的井下复杂工况之一[1-3],一旦发生卡钻,会造成钻井周期延长,钻井成本增加。如对卡钻工况处理不当还会引起井漏、坍塌等复杂情况,甚至导致井眼报废,造成严重经济损失。根据近年来的钻井资料统计分析,卡钻工况在钻井复杂工况中占40%~50%,由卡钻引起的资金损失占非生产耗费资金的50%[4]。如果在钻井过程中能够根据井下工程参数特征变化规律对卡钻进行实时预测,可以在卡钻发生前采取一定措施预防卡钻发生,减少钻井成本,提高钻井效率。
近年来,聚类方法被越来越多的应用于故障诊断与识别,2015年陈风云[5]首先利用PCA降维算法对位移传感器和加速度传感器传回的振动信号进行预处理,再利用K-Means、AP、FCM、EmGauussian四种聚类算法对预处理数据集进行聚类分析,再利用集成算法融合四种基聚类结果,最终得到对原始数据最好的聚类划分结果,以此实现对高铁信号故障状态的识别。2011年龚学兵[6]首先建立仿真模型,对卫星姿态控制系统进行数值仿真模拟,并采集系统的健康数据和故障数据,再利用K-Means算法与DBSCAN算法建立故障诊断模型,对卫星监控系统采集的历史数据进行分析拟合,实现对飞机姿态控制系统的故障诊断。2019年曲力涛等[7]提出了一种基于振动信号Teager能量的预测趋势和K均值聚类对水电机组故障进行预警的方法,通过预测值和历史能量序列的聚类完成信号“跃迁”的判断,进而实别机组运行状态的变化以实现故障预警。2012年Majid等[8]将K-Means聚类算法应用于铝冶炼过程中的故障检测,用分类模型将历史故障数据精确地分离成不同类别的故障状态,并将该模型应用于铝冶炼过程中的实时数据分类,准确的检测出两类故障状态。2018年Zhang等[9]提出了对KMeans算法的改进,通过引入多重分形去波动分析(MFDFA)来计算多重分形谱参数作为故障特征,并结合改进的K均值聚类来检测变速箱的故障。
当卡钻发生时,钻具在井内不能自由活动,由钻井工具测得的井下工程参数也会因为钻具本身状态的改变而发生变化,故可以通过检测钻具的工作状态反映井下工况。而在卡钻发生前,随着井下工况的变化,测量的井下工程参数也会发生变化,故可将卡钻工况预测问题转化为正常钻进状态和卡钻前钻进状态检测问题。
研究表明,K-Means聚类算法在故障诊断方面有良好的应用情况。本文结合主成分分析方法算法(PCA)和K-Means聚类算法建立卡钻工况预测模型,对井下实时测量的工程参数进行聚类分析,如果聚类结果中工程参数特征状态与卡钻前状态相距较近,则可向地面发出卡钻预警,指导工程调整钻井参数与钻井方式,避免卡钻发生,提高钻井效率。
2 K-Means聚类分析模型
聚类是将数据按照不同属性划分到不同的类或簇的一个过程,处于同一簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性[10-12]。具体来说,聚类分析是将数据点按照数据的特征相似性,在没有先验知识的情况下,用不同的方法将数据划分到不同簇的过程。
K-Means算法,也被称为K-均值算法,属于无监督学习,是一种常用的聚类算法[13],其利用对象间的相似性作为数据划分依据,通过距离函数来比较样本P和样本Q之间的相似度,将相似度高的数据划分到同一簇类中。
假设有m个样本{P(1),P(2),…,P(m)}为输入,其中,P(i)表示第i个样本,每一个样本包含n个特征P(i)={p(i)1,p(i)2,…,p(i)n}。输出是划分的k个簇类C={C1,C2,…,Ck}。
(1)初始化:从数据集样本中,随机选取k个样本作为初始的k个聚类中心{μ1,μ2,…,μk}。
(2)划分:计算样本P(i)(i=1,2,…,m)和各聚类中心μj(j=1,2,…,k)的距离dij=‖xi-uj‖22,将P(i)标记为最小的dij所对应的类别λi,此时更新Cλi=Cλi∪{xi}。
(4)对Cj中所有样本点重新计算质心μj:
(5)收敛判断:计算所有数据样本到各个数据中心之间的误差平方和E,当E值最小时,聚类过程结束,否则重复(2)、(3)、(4)步骤,直到E值最小,聚类中心不再改变。
(6)输出最终的聚类中心以及每个样本所属的类别。
利用已有的钻井数据建立聚类分析模型,从历史数据中选取数据建立正常钻井数据集与卡钻前数据集。由于采集的钻井数据包含多个属性特征,为提高聚类算法的收敛速率,需要对数据集进行预处理,利用主成分分析(PCA)方法对钻井数据集进行降维,使用降维后的钻井数据集对K-Means聚类模型进行训练,并利用训练好的K-Means聚类数据对卡钻故障数据进行检测。
基于K-Means聚类算法的卡钻检测预警模型如图1所示。
图1 基于K-Means聚类算法的卡钻检测预警模型
为了评估K-Means聚类模型的聚类能力与数据的分类效果,引入CH(Calinski-Harabaz)指数[14]对K-Means聚类模型进行评估,CH指数也称为方差比标准,具有计算速度快的优点,可在不知道原始数据标签的情况下对聚类结果进行评估,指数值越高表明该聚类模型对数据的聚类效果越好。
CH指数的分值S定义为簇间离散和簇内离散的比值,对于给定的k个簇:
式中:N—数据集样本数;
k—聚类类别数;
Wk—簇间离散向量;
Bk—簇内离散向量。
式(8)中:n—数据集的的数据点个数;
Cq—q簇中的数据点集;
cq—第q个簇的中心点;
q—E的中心点集;
nq—第q簇的数据点个数;
c—总体均值。
指数值越高,表示簇内数据点的相似性越高,簇间数据点的差异越大。
3 基于K-Means聚类算法的卡钻工况预测研究
3.1 井下实测数据集来源
本文采用的数据来自冀东油田某井钻井过程中的实测数据,测量工具为北京信息科技大学自主研发的井下多参数测量短节,该仪器的参数测量范围及测量精度如表1所示。
表1 仪器参数测量范围及测量精度
试验时钻具组合为:Ø215.9 mm MD9431钻头×0.33 m+430×410接头×1.11 m+411×410浮阀×0.50 m+Ø172 mm钻铤×3 m+Ø208 mm扶正器×1.532 m+近钻头测量短节×3.255 m+Ø165 mm无磁钻铤×17.135 m+411×4A10×1.1 m+Ø165 mm钻铤×27.575 m+4A11×410×1.13 m+Ø127 mm加重钻杆×197.595 m+Ø127 mm钻杆;钻进到某段位置时,地面钻具振动剧烈。起钻后取出测量短节,后下钻继续钻进,随后发生卡钻。从下钻到发生卡钻事故期间采集的数据点的信号分析如图2所示。
图2中,虚线左侧为正常钻进工况下,采集的各属性特征的数据点,各数据点的波动范围稳定;虚线右侧为卡钻工况发生前采集的数据点,振动数据变化范围增大,钻压、扭矩值发生剧烈跳变。从这两部分数据点中,各采取部分数据组成正常钻进数据集和卡钻前工况数据集。
未来研究方向有二:(1)探讨中央或省级层面的制度对地方政府人才政策扩散和创新的影响,展开跨层次或中介作用分析,探索人才政策的垂直扩散和创新机制。(2)探讨人才政策扩散和创新各种渠道之间的交互作用,深化对人才政策横向扩散和创新机制的认识。〔本文受到江苏高校“新型城镇化与社会治理”协同创新中心和江苏高校哲学社会科学优秀创新团队建设项目(项目号:2015ZSTD010)的资助〕
图2 冀东油田某井的钻井数据
3.2 PCA数据集降维法
数据集中包含五个特征向量,但由于各特征参数之间有一定的相关性,数据集存在着冗余,而特征冗余会使算法难以把握信息本质,故需对数据进行降维处理。主成分分析(Principal Component Analysis,PCA)是一种对高维数据进行压缩和预处理的常用数据降维方法[15]。PCA通过线性变换将一组相关变量转成另一组不相关的变量,并对新变量按方差值大小排序,从新变量中选出能够反映大部分原始信息的变量,即主成分。
PCA降维过程为假设有n条m维数据:
(1)将原始数据按列排成n行m列的矩阵A(矩阵的每一列代表一种属性)。
(2)对矩阵A的每一列进行零均值化处理,即减去这一列的均值。
(3)求出矩阵A的协方差矩阵C。
(4)计算协方差矩阵C相对应的特征值和特征向量。
(5)将计算得到的特征值按照从大到小的顺序排序,选择其中最大的k个特征向量作为列向量组成特征向量矩阵B。
(6)计算D=BA即可得到降维后的k维数据。
实测的现场数据中包含五个属性特征:钻压、扭矩、X/Y/Z三轴振动数据,为提高聚类收敛速率,利用PCA对数据集进行降维。
贡献率代表降维后各主成分的方差值占总方差值的比例,方差比值越大,说明该成分越重要,能够呈现的原始信息越多。由表2可知各特征的贡献率,第一特征和第二特征的贡献率远大于第三、第四特征的贡献率,故保留贡献率较大的第一、第二特征向量与贡献率相对较小的第三特征向量,将多维钻井数据降至三维,以保证降维后的数据能够较全面的反映原始数据信息。
表2 数据集PCA降维主成分
3.3 卡钻预测应用
训练集数据与测试集数据采取3∶7的比例,训练集由6 000个正常钻进数据点与6 000个卡钻前数据点共12 000数据点组成,对K-Means聚类算法的故障检测模型进行训练;测试集由14 000个正常钻进数据点与14 000个卡钻前数据点共28 000数据点组成。将基于K-Means聚类算法的卡钻检测预警模型对实测数据的聚类结果投影到x*y*二维平面,如图3所示。
图3 基于K-Means算法的钻井数据聚类结果
研究发现,K-Means聚类模型将正常工况数据与卡钻前工况数据有效分离,两类数据间界限分明,无模糊分类点,CH指数值为319 629.067 997,表明聚类质量较高,模型聚类结果准确率达到99.98%,能够有效预警卡钻工况。利用K-Means算法对井下工况数据进行实时聚类分析,可根据卡钻发生前的参数变化情况对卡钻工况进行预警,指导钻井工程在卡钻工况发生前采取预防手段,避免卡钻事故发生,提高钻井效率。
4 结论
(1)利用PCA降维算法对高维钻井工况数据进行降维,保留前三个贡献率较大的特征分量。实验结果表明,PCA降维能够在较为全面的保留原始数据信息的同时有效的消除数据冗余,提高聚类模型对数据的处理速率。
(2)利用冀东油田发生卡钻工况的某井井下工程参数组成测试集和训练集,对K-Means聚类模型进行训练和测试,聚类结果表明,正常钻井工况数据与卡钻前工况数据得到有效分离,验证了该模型能够对卡钻进行预警。
(3)利用Calinski-Harabaz对聚类结果质量进行评价,经过计算得到了较高的Calinski-Harabaz指数值,说明聚类结果质量高,且准确率达到99.98%,表明K-Means算法的聚类结果可靠,可为钻井工程中的卡钻预警提供有效参考。
(4)在石油钻井过程中,造成卡钻的原因有多种,而本文分析的是井眼不清洁造成的卡钻工况,故对检测由其他因素引起的卡钻工况有待进一步计算验证。