一种基于随机森林的溢流漏失实时识别方法与流程

文档序号:15145487发布日期:2018-08-10 20:23阅读:419来源:国知局
本发明涉及钻井工程
技术领域
,特别是涉及钻井过程中溢流和漏失事故的实时识别方法。
背景技术
:钻井是勘探开发石油天然气的重要手段,在钻井施工作业中,钻井复杂情况和事故自始至终威胁着钻井的整个过程,严重影响着钻井速度、建井质量和勘探开发效益。其中,井漏和溢流是影响钻井施工安全最为常见的两种井下复杂事故。井漏和溢流不仅会带来严重的储层损害,增加勘探开发投入成本,造成油气开发效率低下,而且一旦控制不力,还会诱发卡钻、井塌、井喷等重大恶性事故,造成损失及负面社会影响。因此,钻井过程中溢流、漏失的实时识别判断具有重要意义。目前,国内外在溢流、漏失监测方面展开了较多研究,取得了丰硕的成果,形成的技术有:井口监测技术、井下随钻监测技术、人工智能监测技术。井口监测技术成熟,能比较准确地监测出溢流,但这种方法只适应井控要求较低的环境,而且监测结果存在滞后性,不能很好地解决高压气井、深水钻井等特殊环境下的井下溢流、漏失监测问题。井下随钻监测方法的出现解决了这一问题,近钻头随钻测量技术能够快速、早期监测到溢流和漏失,目前井下随钻监测以pwd监测或lwd监测的方法为主;但井下随钻监测技术成本较高,并且随钻测量仪器存在失效的风险。近些年,随着信息技术和人工智能理论的飞速发展,国内外钻井研究人员在利用现有的溢流监测设备的基础上,引入人工智能技术对测量数据进行综合分析和判断,从而使溢流监测结果更加准确。hargreaves(2001年)采用贝叶斯概率对深海钻井溢流进行了监测,其通过分析声波数据采用贝叶斯模型对溢流发生的概率进行计算,得出可能发生溢流的概率。nybo(2008年)采用邻井钻井施工数据,通过构建bp神经网络预测模型,预测出一条当前钻井的基于时间序列上的出口流量曲线,通过和正钻井的实际出口流量数据进行对比,对溢流情况进行实时预警。此方法采用静态神经网络进行计算,并没有对数据进行实时动态计算。kamyab(2010年)提出一种动态神经网络溢流预警方法,该方法采用聚焦时间延迟动态神经网络进行溢流早期的实时监测,通过对动态钻井参数的神经网络实时计算来监测溢流。这些人工智能的方法建模较为复杂,推广较难。如申请号为cn201310398400.8的发明公开了一种油气井钻井过程中溢流在线综合监测与预警方法,选择现场可获取的溢流特征参数,当判断系统中有训练好的贝叶斯模型可用时,将溢流特征参数输入训练好的贝叶斯模型进行溢流判别;若没有,则用基于事先确定好判别规则的专家系统进行溢流判别;以概率的形式给出最终的溢流判别结果并显示;若判断有溢流发生,则将相应的特征向量写入溢流特征数据库,对贝叶斯模型进行训练,更新贝叶斯模型。上述发明采用贝叶斯模型经过多次训练才能获取溢流概率数据,溢流监测与识别存在的实时性及可靠性较差的问题。申请号为cn201610817774.2的发明提供了一种基于多信息融合的钻井漏失层位识别方法,属于钻井勘探领域,能够根据漏失发生必备条件能够准确确定漏失发生层位及计算漏层性质参数。本发明的基于多信息融合的钻井漏失层位识别方法,具体步骤包括:(一)根据钻井液总结和录井综合记录资料,锁定漏失发生的深度范围及在其深度范围内地层所发育的岩性;(二)利用测井、地质资料对上述步骤中锁定的漏失发生的深度范围内岩性、物性参数进行解释及计算;(三)利用测井及工程资料计算钻井液当量循环密度、地层孔隙压力当量密度及地层破裂压力当量密度;(四)根据上述步骤(一)-(三)获得的数据整理绘制得综合成果图,通过综合成果图进行漏失层位识别,分析漏失机理。该申请采用传统的资料解释和计算方法,并以综合成果图的形式呈现计算结果,监测结果存在滞后性,不能很好地解决高压气井、深水钻井等特殊环境下的井下溢流、漏失监测问题。随机森林是由breiman提出的一种基于cart决策树的组合分类器,具有预测精度高、泛化误差可控、收敛速度快、调节参数少等优点,可有效避免“过拟合”现象,尤其适用于高维数据的运算。该机器学习算法已在国外的生物、医学、经济、管理等众多领域得到了广泛应用,其优越的性能也使其可应用到钻井领域中。技术实现要素:针对现有溢流、漏失监测识别方法存在的问题,本发明提供了一种基于随机森林的机器学习算法,对钻井历史数据进行学习,并利用机器学习所生成的一系列决策树,通过投票方式对新样本数据进行溢流、漏失实时识别的方法。本发明解决前述技术问题所采用的技术方案是,一种基于随机森林的溢流漏失实时识别方法,包括以下步骤:①溢流、漏失原始数据集的自动生成;②溢流、漏失数据集的预处理,使之成为可用于随机森林算法的训练数据集;③基于bootstrap抽样技术的溢流、漏失子数据集的生成;④采用cart(classificationandregressiontree)算法,为每个子数据集创建分类树;⑤对于新样本,集合n棵树的预测结果,采用投票方式决定其类别,并利用各分类树投票结果,识别溢流、漏失的发生。优选的是,步骤①进一步包括,提取以文本方式存储的钻井井史数据中溢流和漏失事故的信息,根据事故发生时间和类别,将其转化成以时间为索引的钻井实时数据格式,并综合录井数据和控压数据,生成溢流、漏失原始数据集。上述任一方案优选的是,生成的溢流、漏失原始数据集是以时间为索引的多维数据,原始数据集的分类结果为离散值:0代表无事故发生,1代表有溢流发生,2代表有漏失发生,3代表溢流、漏失同时发生。上述任一方案优选的是,溢流、漏失原始数据集属性包括,入口流量、出口流量、pwd环空压力、环空温度、大钩载荷、井深、钻头深度、总池体积,立管压力,钻速,钻井液出口密度,钻井液出口温度。上述任一方案优选的是,原始的每口井的钻井实时数据是以时间先后为顺序排列的数据集,很难直接用于溢流漏失的实时识别,因此需要对原始的实时数据集进行预处理。步骤②数据的预处理进一步包括,a钻井状态的计算:根据井深(hdep)、钻头深度(bdep)、大钩载荷(hkld)数据,计算每个时间点对应的钻井状态;b预期出口流量的计算:对于每一口井,根据钻井状态、钻头深度的变化、入口流量以及下入或起出钻杆直径和壁厚信息,计算期望的出口流量;c计算各维度的钻井实时数据在δt时间内的均值;d计算各维度钻井实时数据的变化量。上述任一方案优选的是,步骤a所述钻井状态包括:钻进、起钻、下钻、接单根和其他。上述任一方案优选的是,步骤a中,钻井状态计算方法为,在时间ti,若hdep(ti)=bdep(ti),hdep(ti)>hdep(ti-1),hkld(ti)>0,则钻井状态ds(ti)为钻进;在时间ti,若hdep(ti)>bdep(ti),hkld(ti)>0,bdep(ti)>bdep(ti-1),则钻井状态ds(ti)为下钻;在时间ti,若hdep(ti)>bdep(ti),hkld(ti)>0,bdep(ti)<bdep(ti-1),则钻井状态ds(ti)为起钻;在时间ti,若bdep(ti)=bdep(ti-1),hkld(ti)=0则钻井状态ds(ti)为接单根;在时间ti,若bdep(ti)=bdep(ti-1),hkld(ti)>0,ds(ti-1)为接单根,则钻井状态ds(ti)为接单根;在时间ti,钻井状态不为上述几种状态,则为其他。上述任一方案优选的是,步骤b中,预期出口流量的计算方法为,钻井状态为钻进时,钻井状态为起钻时,钻井状态为下钻时,钻井状态为接单跟和其他时,expflowout(ti)=flowin(ti)其中:expflowout(ti)为ti时间点,预期的井口流出量,单位为l/s;flowin(ti)为ti时间点,入口泥浆流量,单位为l/s;drilltime(ti)为ti时间点的钻时,单位为min/m;holedia为井直径,单位为m;dpdia1为钻杆外直径,单位为m;dpdia2为钻杆内直径,单位为m;bvel(ti)为ti时刻,大钩速度,单位为m/s。上述任一方案优选的是,步骤c中,为降低实时数据中噪声数据的干扰,把每口井的原始数据按时间段δt取均值,生成计算过后的实时数据;具体算法为其中多维钻井实时数据中的某一维数据。以pwd数据为例,算法为:上述任一方案优选的是,步骤d中,钻井实时数据变化量的计算,根据均值化后的数据曲线,计算对应的数据变化量,具体算法为其中a代表多维钻井实时数据中的某一维数据;以pwd数据为例,具体算法为:对于出口流量的变化量用期望的出口流量和实测的出口流量计算获得,即flowout_v(ti)=(expflowout(ti)–flowout(ti))/expflowout(ti),其中flowout(ti)为ti时刻的出口流量实测量,flowout_v(ti)为ti时刻的出口流量变化量。上述任一方案优选的是,预处理之后的溢流、漏失数据训练集属性包括,pwd环空压力的变化量,立管压力的变化量,出口流量的变化量,总池体积的变化量,大钩载荷的变化量,钻速的变化量,钻井液出口密度变化量,钻井液出口温度的变化量。上述任一方案优选的是,步骤③进一步包括采用bootstrap有放回的采样技术,从预处理后的数据集中抽取n个子数据集,每个子数集的大小为原始数据集的2/3。此处的子数据集(训练集)是用来训练随机森林的,它是预处理数据的一个子集,含有2/3的预处理数据上述任一方案优选的是,步骤④进一步包括,在每棵分类树的创建过程中,从m个属性中,随机抽取m个属性,进行节点分裂。上述任一方案优选的是,用于分类决策树生成的钻井m个实时属性数据有:pwd环空压力的变化量,立管压力的变化量,出口流量的变化量,总池体积的变化量,大钩载荷的变化量,钻速的变化量,钻井液出口密度变化量,钻井液出口温度的变化量。上述任一方案优选的是,在每个节点分裂时,计算不同属性和不同阈值相对应的gini指数值,选择最小的gini指数对应的属性和阈值,对特征空间进行二元分裂。上述任一方案优选的是,gini指数的计算公式为其中:pj为类别j在样本t中出现的频率,nj为样本t中类别j的个数,s为t中样本的个数,s1为t1中样本的个数,s2为t2中样本的个数。与现有技术相比,本发明的有益效果是:根据钻井实时数据,自动判断钻井状态,计算预期井口流量并与测量的井口流量进行比较,因此可对不同钻井状态下(例如:钻进、起钻、下钻等),发生的溢流、漏失进行实时判断;基于随机森林的溢流、漏失实时判断方法,建模方法与现有技术的建模方法相比更加简单,对事故的预测更为准确。附图说明图1为本发明的基于随机森林的溢流漏失实时识别方法一优选实施例的流程图。具体实施方式为了更进一步了解本发明的内容,下面将结合具体实施例对本发明作更为详细的描述,实施例只对本发明具有示例性作用,而不具有任何限制性的作用;任何本领域技术人员在本发明的基础上作出的非实质性修改,都应属于本发明保护的范围。如图1所示,一种基于随机森林的溢流漏失实时识别方法,包括以下步骤:①溢流、漏失原始数据集的自动生成;②溢流、漏失数据集的预处理,使之成为可用于随机森林算法的训练数据集;③基于bootstrap抽样技术的溢流、漏失子数据集的生成;④采用cart(classificationandregressiontree)算法,为每个子数据集创建分类树;⑤对于新样本,集合n棵树的预测结果,采用投票方式决定其类别,并利用各分类树投票结果,识别溢流、漏失的发生。在本实施例中,步骤①进一步包括,提取以文本方式存储的钻井井史数据中溢流和漏失事故的信息,根据事故发生时间和类别,将其转化成以时间为索引的钻井实时数据格式,即对应井的钻井实时数据中加一列事故数据,该列数据为离散值,0代表无事故发生,1代表有溢流发生,2代表有漏失发生,3代表溢流、漏失同时发生;综合录井数据和控压数据,生成溢流、漏失原始数据集。溢流、漏失原始数据集属性包括,入口流量、出口流量、pwd环空压力、环空温度、大钩载荷、井深、钻头深度、总池体积,立管压力,钻速,钻井液出口密度,钻井液出口温度。以h井钻井过程中,溢流、漏失实时识别的具体实施方式为例,对本发明作进一步详细说明。由于建模过程中,所用数据量过于庞大,因此在此实施例里,对数据进行了简化。本实施例中,收集h井邻近h1已钻井的实时采集数据,所用钻具数据,井身结构数据以及事故数据。邻井h1,钻具数据如下表所示:根数单根总长(m)内径(mm)外径(mm)接头长度(m)接头内径(mm)接头外径(mm)10.2770168.2800016.325412700017.6457.15120.700019.370.2188.9000339.612652.488.90.79501273569.61267688.90.5150127井身结构数据如下表所示:底深(m)内径(mm)扩大率5938179.916300168.281.02事故数据如下所示:钻井实时采集数据如下所示读取每一邻井的井史数据中事故的时间和类别,将其转化为对应井的实时采集数据中的一列,该列数据用离散值表示在相应时间点的事故类别。本实施例中对于邻井h1,把以文本类型记录的事故类别转换成用离散值表示的以时间为索引的数据序列,转换后的实时数据表如下所示:在本实施例中,步骤②数据的预处理进一步包括,a钻井状态的计算:根据井深(hdep)、钻头深度(bdep)、大钩载荷(hkld)数据,计算每个时间点对应的钻井状态;b预期出口流量的计算:对于每一口井,根据钻井状态、钻头深度的变化、入口流量以及下入或起出钻杆直径和壁厚信息,计算期望的出口流量;c计算各维度的钻井实时数据在δt时间内的均值;d计算各维度钻井实时数据的变化量。上述任一方案优选的是,步骤a所述钻井状态包括:钻进、起钻、下钻、接单根和其他。钻井状态计算方法为,在时间ti,若hdep(ti)=bdep(ti),hdep(ti)>hdep(ti-1),hkld(ti)>0,则钻井状态ds(ti)为钻进;在时间ti,若hdep(ti)>bdep(ti),hkld(ti)>0,bdep(ti)>bdep(ti-1),则钻井状态ds(ti)为下钻;在时间ti,若hdep(ti)>bdep(ti),hkld(ti)>0,bdep(ti)<bdep(ti-1),则钻井状态ds(ti)为起钻;在时间ti,若bdep(ti)=bdep(ti-1),hkld(ti)=0则钻井状态ds(ti)为接单根;在时间ti,若bdep(ti)=bdep(ti-1),hkld(ti)>0,ds(ti-1)为接单根,则钻井状态ds(ti)为接单根;在时间ti,钻井状态不为上述几种状态,则为其他。上述任一方案优选的是,步骤b中,预期出口流量的计算方法为,钻井状态为钻进时,钻井状态为起钻时,钻井状态为下钻时,钻井状态为接单跟和其他时,expflowout(ti)=flowin(ti)其中:expflowout(ti)为ti时间点,预期的井口流出量,单位为l/s;flowin(ti)为ti时间点,入口泥浆流量,单位为l/s;drilltime(ti)为ti时间点的钻时,单位为min/m;holedia为井直径,单位为m;dpdia1为钻杆外直径,单位为m;dpdia2为钻杆内直径,单位为m;bvel(ti)为ti时刻,大勾速度,单位为m/s。步骤c中,为降低实时数据中噪声数据的干扰,把每口井的原始数据按时间段δt取均值,生成计算过后的实时数据;具体算法为其中a代表多维钻井实时数据中的一维。以pwd数据为例,算法为:步骤d中,钻井实时数据变化量的计算,根据均值化后的数据曲线,计算对应的数据变化量,具体算法为其中a代表多维钻井实时数据中的某一维数据。以pwd数据为例,具体算法为:对于出口流量的变化量用期望的出口流量和实测的出口流量计算获得,即flowout_v(ti)=(expflowout(ti)–flowout(ti))/expflowout(ti)。。按照上述算法对溢流、漏失原始数据集进行预处理,预处理之后的溢流、漏失数据训练集属性包括,pwd环空压力的变化量,立管压力的变化量,出口流量的变化量,总池体积的变化量,大钩载荷的变化量。对邻井h1的实时数据预处理之后的数据如下表所示:步骤③进一步包括采用bootstrap有放回的采样技术,从预处理后的数据集中抽取n个子数据集,每个子数集的大小为原始数据集的2/3。此处的子数据集(训练集)是用来训练随机森林的,它是预处理数据的一个子集,含有2/3的预处理数据步骤④进一步包括,在每棵分类树的创建过程中,从m个属性中,随机抽取m个属性,进行节点分裂。分类决策树生成的钻井实时属性数据有:pwd环空压力的变化量,立管压力的变化量,出口流量的变化量,总池体积的变化量,大钩载荷的变化量,钻速的变化量,钻井液出口密度变化量,钻井液出口温度的变化量。在每个节点分裂时,计算不同属性和不同阈值相对应的gini指数值,选择最小的gini指数对应的属性和阈值,对特征空间进行二元分裂。gini指数的计算公式为其中:pj为类别j在样本t中出现的频率,nj为样本t中类别j的个数,s为t中样本的个数,s1为t1中样本的个数,s2为t2中样本的个数。按照上述算法,本实施例中的步骤③和步骤④用python语言中提供的scikit-learn包中的randomforestclassifier方法实现,在实现过程中需对参数进行调试设置,其中关键的参数为随机森林中树的数量(本实施例中选取10),在每个节点分裂时和特征量的选取(本实施例选取5)。步骤⑤,对于正钻井,根据钻井现场最新采集到的数据,对其进行预处理,把预处理后的数据作为新样本,输入到n棵树进行分类决策;那棵树的投票结果即为对应时间点的溢流、漏失判断结果。在本实施例中,对于正钻井,以时间点t1和t2为例,对这两点的实时数据进行预处理,所得的样本数据如下所示:把这两个时间点的数据输入到步骤④生成的随机森林中,得到对应的溢流、漏失判断结果,分别为1和0,即溢流和正常。本实施例中的基于随机森林的溢流漏失事实辨别方法,可以根据钻井实时数据,自动判断钻井状态,计算预期井口流量并与测量的井口流量进行比较,因此可对不同钻井状态下(例如:钻进、起钻、下钻等),发生的溢流、漏失进行实时判断;基于随机森林的溢流、漏失实时判断方法,建模方法与现有技术的建模方法相比更加简单,对事故的预测更为准确。尽管具体地参考其优选实施例来示出并描述了本发明,但本领域的技术人员可以理解,可以作出形式和细节上的各种改变而不脱离所附权利要求书中所述的本发明的范围。以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制。凡是依据本发明的技术实质对以上实施例所做的任何简单修改,均仍属于本发明技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1