问题预测性维护方案 ——基于某石油公司真实产量数据

发布时间:2019-01-10 浏览次数:153

                                                                                             作者:王可、陈重林、方锦涛


今天要介绍的内容听起来很贵:和挖石油有关。

项目组的目的是,利用生产动态数据和原油性质数据来预测和预防可能产生的原油问题,给原油生产过程降本增效。所用数据是某石油公司的真实生产动态数据,业界数据和toy data不同,不仅仅要弄明白背后的数字逻辑,还要弄明白其背后的业务逻辑——就让我们一点点来揭开这些数据背后的真相吧~


一、背景介绍与研究意义

可能身处象牙塔的各位对于原油开采并没有什么概念,但实际上,原油开采并非只有钻个洞,油就冒上来这么简单。首先让我们先来了解一下原油开采的基本流程吧~


1.1原油开采流程 

采油流程简单来说就是原油通过油井从地底下开采上来的过程。其中采油方法主要有三种,分别是自喷式采油方法、气举采油方法和泵采油方法。下文的数据处理与泵采油方法有关,此处对泵采油机井结构做简要介绍,可参看图1

 

1采油流程图

采油过程中主要的装置有地面抽油机设备、井下抽油泵设备抽油杆、油管、套管等。原油在油层,上面是岩石层,首先需要通过射孔技术将岩石层打通,将原油引到油井底部,其次用泵装置加压,通过油管将原油采到地上,最后通过分离器将原油简单地分为石油、天然气和水三个部分。

1.2 研究意义

 1.2.1 原油开采过程中的问题

在采油过程中,通常会遇到各种各样使产量下降甚至停产的情况,总结一下,可大致概况为以下四个问题:

(1). 乳化

乳化是指油与水在强烈的搅拌下,油被分散在水中,形成乳状液体,这个过程被称为乳化;

(2). 凝固

当液体温度低于油凝固点时,就可能会产生凝固现象;

(3). 结蜡

石油开采过程中,管壁结蜡导致油管堵塞;

(4). 沥青质沉积

胶质与沥青质的含量比低,导致沥青质沉积在井底。

油井出现这些问题时,抽油管堵塞,都会对产量造成一定的影响,严重时产量甚至会降到0。此时,如果不采取解堵增产措施,对于生产效率会造成很大的损害。


  1.2.2 原油问题研究意义

通常在采油过程中,当原油产量严重下降或者停产时,采油工人才会采取一些解堵增产措施,但此时解堵作业难度较大,成本较高,效果也往往不尽如人意,油井常常因此停产好几个月。如果希望油井保持正常的工作状态,也可以定期对油井进行维护作业,这在一定程度上能够减轻产量下降的问题,但这种做法往往带有盲目性,不能对症下药;此外,定期维护的时间界定也非常困难,如果定期维护的频率高,则相应的成本也很大;而定期维护的频率较低时,问题积累可能已经很严重了。

为了解决这一窘境,业界提出了预测性维护的概念。即根据已有的生产动态信息,去推测何时回发生问题,从而做到提前预防。故而,我们考虑根据以往的生产动态数据、油气水性质数据,再结合油井本身特征等,提前预防采油过程中的常见问题。

在上述的几种石油可能产生的问题中,结蜡问题的定义比较明确,同时由于其发生频率高且危害大,具有极高的研究意义,所以下文数据分析选择结蜡问题来展开。

二、数据说明

2.1 数据结构内容

我们拿到的数据分为四部分,分别是生产动态数据、油气水性质数据、油井作业总结和完井报告。


  2.1.1 生产动态数据

生产动态数据包含产量数据、生产数据和生产动态记录,前两个是结构化数据,第三个是文本数据。产量数据包含从油井产油以来日产液、日产气、日产油、含水、汽油比等反应产量的指标,详见1(仅节选部分数据)。

1产量数据

日期

日产液

日产气

日产油

含水

日产水

气油比

2015-09-05

3.08

0.02

2.68

13.00

0.40

66.52

2015-09-06

2.14

0.01

1.87

12.63

0.27

70.69

2015-09-07

2.32

0.01

2.12

8.61

0.20

46.19

……

……

……

……

……

……

……

 

生产数据反应了油井采油过程中泵频率、泵电流、油压、流压和井口温度等指标,详见2(仅节选部分数据)。

2生产数据

日期

泵频率

泵电流

油嘴

油压

流压

井口温度

流温

2015-09-05

50.00

14.00

5.80

1.10

1.84

25.80

46.01

2015-09-06

50.00

14.00

5.80

1.10

1.88

24.10

46.56

2015-09-07

50.00

14.00

5.80

1.10

1.89

25.30

46.56

……

……

……

……

……

……

……

……

 

生产动态记录中包含的是油井作业的情况,简称油井大事记,包含事件类型和事件简要。详见表3. (仅节选部分数据)

 

3油井大事记

日期

事件类型

大事简要

2016-11-29

热洗解堵作业

热洗解堵作业,8:00-10:00召开JSA10:00-17:00连接热洗管线,下一步计划进行热洗解堵作业。

2016-09-12

钢丝通井作业

钢丝通井作业。9:00-12:00Φ46mm通井规通井至371m(已折算成管柱深度),继续下放无速度,起出通井工具串,恢复井口,与作业主管沟通后作业结束。流压由7.827MPa降至4.543MPa,流温由51.14℃降至47.65℃,现场加密观察中。

2016-09-11

加热车解堵作业

热车解堵作业。热洗设备检修完毕后,0:45-6:0015/时反循环热洗,套压1.5MPa、流压9.061MPa,计量产液量36/天;6:00过载停泵,与作业主管沟通后改为正循环洗井,8:00-14:30倒管线、开循环滑套正洗;14:30-17:00关循环滑套正洗,共正洗地热水35方;17:00-20:00正循环2方柴油和8方地热水;20:00 启泵后缓慢提频至50Hz,计量产液量156/天,含水99%,现场加密观察中。

……

……

……

 

2.1.2 油气水性质数据

油气水性质数据中包含原油性质、天然气性质和水常规性质三部分,其中原油性质中又有含硫量、含蜡量、沥青质、胶质和密度等这些数据。天然气性质中包含等的含量这些数据。水常规性质中主要是各种离子的含量。


  2.1.3 作业总结和完井报告

作业总结中包括单井作业日报、施工总结和费用预算表,完井报告主要介绍该井的建造工程的细节。

三、数据分析与探索

3.1数据清洗

我们的目标很明确——结合生产动态和原油性质信息,提前预警结蜡问题。所以,在上述的那些数据中,有两类数据非常重要:

1. 生产动态数据

2. 原油性质数据。

首先对生产动态数据进行可视化:

                                       

2单井生产动态数据可视化

其中的黄色线、红色线和蓝色线分别代表日产气、日产油和日产水。

2可以看出,因为停井维护、生产周期调整等问题,单井可能会停止生产(产量为0),而这些数据对于研究并没有价值(人们并不关心停产时的油压、流温是多少),所以,在实际研究中,我们删除了这一部分的数据。

此外,由于原油性质数据数据量较少——平均一口井只有36条原油性质数据,在此次分析流程中,这些数据的加入对于分析结果并没有显著提升,所以,我们暂时没有考虑这些数据。


3.2 因变量定义

在看完数据介绍后,不知道各位读者有没有发现这样一个问题——在数据中,并没有针对结蜡问题的明确定义。所以,我们首先需要明确结蜡到底是一个什么类型的问题:它是一个积累量(自相关时间序列),还是一个突变量(0-1编码)?

好在我们并不是毫无头绪——单井大事记中记录了详细的作业数据,而这些作业数据中则指示了清蜡事件,从常识上去理解——清蜡是用来解决结蜡问题的,既然已经采取措施来解决问题,就意味着问题一定发生,所以,我们可以从清蜡事件反过来去验证是否结蜡,常见的清蜡事件分这么三种:

(1. 钢丝通井

结蜡所带来的直观影响就是产量突然下降。如果产量陡减,但还未降到0,这时会优先考虑钢丝通井,如果钢丝通井时带出了蜡,则说明产生了结蜡问题。

(2. 热洗作业

如果通井不成功,说明井下结蜡已经非常严重了,这时就会采取热洗作业。所以一般来说,采取热洗作业就一定代表着出现了结蜡问题。

(3. 有机解堵

有机解堵是解堵降粘的一种措施。一般来说,如果石油中产生了沥青质沉积、积蜡问题,就会使得抽油管道堵塞,产量下降,所以要采用有机解堵的方式来解决。

 

我们从大事件中,提出所有提到钢丝通井热洗作业有机解堵的日期,并且删除了连续作业的数据,对应日产油、日产水、日产气,对发生事件进行可视化:

                           

3单井日产油、日产水、日产气与结蜡事件发生时间序列图

黑色点为提取出的事件点,可以发现,在长达6年的生产流程中,出现积蜡的次数并不多,共计7次。

结合业务逻辑,我们可以得到一些直观的结论:

1.生产时间存在生命周期(产量突然上升开始,突然下降结束),在每个周期内,产油量是波动下降的。

2.清蜡事件后,产量几乎都会上升(这是显然的)

3.在结蜡事件发生当天,产量普遍会陡然下降。

综上所述,我们可以归纳出,结蜡事件是一个量变质变的过程。含蜡量较高的石油在井内逐渐析出,导致石油产量下降;而当蜡质积累到一定程度后,产量突然下降,导致生产异常。


3.3 解决样本不均衡问题

在构造出Y之后,我们又面临着正负样本极度不平衡的问题;在2000多天的生产过程中,只有7天被标注为发生了结蜡事件,此时,如果不对样本进行处理,即使将所有样本都分为负样本也可以达到99.9%的准确率,这显然不是我们想要的。

为了解决这种样本极端不平衡的问题,通常有几种办法:

1.异常值检测——异常值检测要求样本服从一定的分布,并抓出不在正常范围内的值;我们尝试对数据用孤立森林方法进行处理,但是结果不佳。

2.数据增强:数据增强的方法有很多种,我们采用了非参数的boostrap,从2000+个负样本中随机抽取了50个负样本和正样本进行比较:

                                     

这其中,红色的点代表正样本,而蓝色的点代表随机抽取的负样本。

 


3.4 数据分析

通过非参数Boostrap抽取了正负样本之后,可以用最为直观的方式来考察正负样本间的差距——画其分布直方图。

3是四个差异较为明显的特征:日产油、流压、油温和流温。

                                                        

4日产油、流压、油温和流温在正负样本的分布上有较大的差异

从分布来看,流压和流温这两个特征在不同样本上的均值存在明显差异。故而,考虑对均值进行ANOVA方差分析。

4流压数据ANOVA

Df

SumSq

MeanSq

Fvalue

Pr(>F)

A

1

42.7

42.74

4.518

0.0378

Residuals

58

548.7

9.46

ANOVA检验的P值小于0.05,所以拒绝原假设,认为二者之间存在显著差异。

5流温数据ANOVA

Df

Sum Sq

MeanSq

Fvalue

Pr(>F)

A

1

485

485.4

2.288

0.136

Residuals

58

12305

212.2

流温数据的差异就并不是很明显了,ANOVA检验的P值大于0.1,不能拒绝均值相同的原假设。

 


3.5 相关性与因果性验证

上述分析表明,流压对于结蜡而言的确是一个重要变量。那么,可以先采用一个最朴素的思想:当流压波动异常时,就认为发生了结蜡事件。

按照这个思想,我们抓出了流压波动超过0.5的所有日期,共计47天:

                                                                                                                      

5找出的特征点&事件发生点

(红色点为产生问题时间点,蓝色的点为找出的特征点。)

从图像中可以发现,所有特征点都包含了问题时间点,但是,并不是所有特征点都发生了结蜡事件——让我们来算一下流压上升这一事件对于结蜡的支持度有多少:

支持度不算很高,所以,除了这一个关键变量之外,应当还存在其他的关键变量。而筛选关键变量的一个常用方法就是逐步回归,接下来我们建立模型,去考察是否还存在其他的重要变量。

 


四、模型建立

在经过前面数据清洗与数据验证之后,我们的数据探索部分也正式完结了,在这个部分,我们使用已发现的因果关系等来进行建模。


4.1 聚类分析

首先,根据定义,在产量骤降且钢丝通井时带出了蜡时,判为结蜡。我们首先考察结蜡那一天和其前续时间是否有明显区别,以判断它到底是一个突发事件(用0-1标注),还是一个持续事件(一个有自相关的时间序列数据)。我们将结蜡那一天往前推14天,将这15天的数据作为一个样本进行聚类。得到的结果如

6结蜡事件和前14天区别明显

从我们可以发现子第15天明显和其他14天在空间上被明显分为了两类,这说明,积蜡事件可能更适合用0-1编码去标注,而不是一个自相关的时间序列。


4.2 Logistic回归

通过上述分析,我们明确了结蜡事件是一个二分类问题。那么,就可以先尝试用最基础的logistic回归对目标进行分类,并采用基于AIC准则的逐步回归筛选重要变量,最后得到如下结果:


从逐步回归的结果能够发现,日产油,日产液,油嘴,流压,井口温度等变量被模型选入,这与我们前面的数据探索基本一致,说明我们认为结蜡是一个二分类事件这个假定没有什么问题。


4.3 XGBoost分类器

Logistic的结果虽然可以挑选出比较重要的变量,但是从结果来看,它的分类结果并不是很理想。所以我们又尝试使用XGBoost对所有事件进行分类,考虑到因变量是结蜡/不结蜡,故而我们首先将所有结蜡的数据放在一起,利用之前从一口井的数据中构造的样本作为训练集,用另一口井中的30个不结蜡数据和30个结蜡数据放在一起当做验证集。得到变量重要性排序7


7 XGBOOST方法变量重要性

从变量选择图中我们可以发现最重要的变量是流压,这和我们前面数据探索得到的结果是一样的,为观察其分类的效果,我们绘制出其ROC曲线,如8


8XGBOOST方法AUCROC曲线

可以发现,ROC曲线非常接近左上角,其AUC甚至达到了0.939。这个结果实在太好了,让人不禁心生怀疑,经过反复尝试后,我们认为这个结果可以接受。一方面是因为训练集较小,故而在训练集上表现好是正常的;另一方面在变量中可能存在强变量使得结果较优。


9 XGBOOST变量选择结果

但是我们又遇到一个新的问题——对于预测性维护问题来说,重要的是预测。而根据分类给出结果,只识别出发生问题当天的异常,不能提前预警,更不要说提前维护了。所以,我们尝试把结蜡前5天的生产动态信息作为因变量,再使用XGBoost分类,效果如下:


10加入前续时间后对XGBOOSTROC曲线和AUC

我们可以发现,按照这个思路,我们的模型精度有下降,但是依然具有一定的预测性。只是这种做法并不严谨,只是简单地展示了前续时间的生产动态数据对于结蜡事件的发生是有预警作用的,接下来,我们希望能够用一种更精确的方法去刻画这些预警作用。


五、后续工作

发现前续时间的生产动态数据对于结蜡事件有预警作用后,我们再次回到产量图中,可以发现,产量波动具有一定的特征,如11所示:


11生产周期

一个很明显的特征是,生产曲线经常会出现陡升和陡降的趋势(用蓝色透明框标出),对应单井大事记之后我们了解到,每次产量的陡升或陡降都存在,在这段时间内,日产油会呈现波动下降态势。于是,我们将此次作业到下次作业的这段时间当作一个生产周期。为刻画这些生产周期的共同特征,我们从周期长度,周期头尾生产差异和周期内产量的方差去考察每个生产周期是否具有一定的规律性


12生产周期长度分布图

12是生产周期的长度分布图,可以发现,生产周期长度分布很集中,大部分都在100天到200天内。


13生产周期头尾产量差异图

我们将生产周期头尾产量差异定义为一个周期的结束时的产量减去一个周期开始的产量,可以发现,80%的周期的产量差都为负数,验证了产量的波动下降趋势。

 


14生产周期产量方差图

得到了这些信息之后,我们有理由相信,生产周期是存在一定的共通性的,每一段时间序列之间具有相似的特征。基于这个结论,如果将工程中的MTBF概念(Mean Time Between Failure,衡量一个产品的可靠性指标)类比到油井的生产周期上来,利用已知信息来预测一个生产周期可以持续多久,以此来做到提前预防,也是一个可行的思路。下一步,项目组会向这个方向继续研究。