钻井技术是石油行业进行勘探生产的关键技术,由于专业性强、投资高、隐蔽性强等特点,钻井过程中的生产事故往往会造成经济、社会等方面的极大损失.为此,利用大量的钻井录井数据进行事故诊断及预警得到了广泛重视[1-2].神经网络、模糊系统以及数据挖掘技术都已在石油钻井事故诊断中得到了应用,提出了不同的预警模型.在这些研究中,石油钻井过程参数的异常特征是进行预警的关键.
对石油钻井过程参数异常特征的分析,目前研究得还不够深入.例如,文献[3]中直接使用参数滤波值及均值作为特征量,没有考虑石油钻井过程中参数变化的特点,首先是参数基准值会随着钻进深度的增加而发生变化,由此造成基于参数数值的特征量无法正常使用;其次,事故的发生和发展是一个动态变化过程,需要参数前后之间以及不同参数之间的综合判断[4].针对石油钻井过程中的这些特点与要求,笔者提出了一种能够反映钻井参数趋势性变化的特征量,其具有不受参数基准值变化影响的特点;通过多个参数之间的综合判断,利用隐马尔科夫(hidden markov model,HMM)理论[5-6]给出石油钻井过程中异常情况的可能性,为钻井事故的判断、预警提供技术支持.
石油钻井过程大部分是钻进过程,在这期间发生的井涌、井漏、卡钻、堵水眼、水眼掉落等异常情况都可以通过参数的变化趋势来反映.同时,由于不同地质条件的钻井,甚至是同一口钻井的不同深度,钻井工程参数的正常基准值也会随之相应发生变化.比如立管压力测量值通常会由开始时的12 MPa左右增加到18 MPa,因此趋势特征量的构造必须消除基准值的影响.趋势特征变化虽然可以通过参数的变化率来反映,但由于钻井过程中随机干扰的存在,无论是变化率区间选取还是参数滤波方法的实现都有一定的困难,因此,笔者采用另一种思路来构造趋势特征量,使之能够满足事故预警的要求.
钻井参数是一个典型的非平稳时间序列[7],在不同的时间周期上既有随机变化过程也有一定的趋势变化,从长时间段上看其具有一种变化趋势,在短时间段上又具有随机波动性[8-9].实际录井系统的采样周期为1 s,根据石油钻井过程中录井采样频率以及事故预警的时间要求,需要建立两个时间体系才能更好地反映参数的变化趋势[10].经过试验确定短期时间窗口长度(标记为ST)为60 s,长期时间窗口(标记为LT)为300 s,能够得到较好的分析结果.
定义1 长短期均值:当前点前ST秒时间窗口内的数据均值作为该点的短期时间窗口均值,称之为短期均值(标记为STM),当前点前LT秒时间窗口内的数据均值作为该点的长期时间窗口均值,称之为长期均值(标记为LTM).
(1)
(2)
式中:STM(j)为当前点的短期均值;LTM(j)为当前点的长期均值;xi为当前点前ST或者LT时间段内的数据值.
定义2 长短期均值差:即长期均值与短期均值的差值,标记为DM.
DM(j)=STM(j)-LTM(j),
(3)
式中:DM(j)为当前点的长短期均值差.
长短期均值差属于数据的相对值,笔者所取的短期窗口ST长度大于变量随机波动的周期,由此,当变量趋势向上时,短期均值始终会大于长期均值,而当变量趋势向下时,则短期均值会始终小于长期均值,因此可以利用变量数据的长短期均值差来表征变量的变化趋势.变量的长短期均值差基本上在零轴上下变化.当均值差持续大于零时,说明变量为增大趋势;当均值差持续小于零时,说明变量为下降趋势.为表征趋势变化的大小,还需要对长短期均值差做进一步处理.
定义3 长短期均值差的动态和:将当前点前长短期均值差连续大于零或小于零的部分分别累加,作为长短期均值差的动态和(标记为DMs).若当前点与前一点的DM同时大于零或者同时小于零,则该点的DMs等于前一点的DMs加上该点的DM;若当前点的DM和前一点的DM符号不同或者当前点的DM为零,则该点的DMs就是该点的DM.DMs通过一个特定的数来表示数据变化的趋势,并且屏蔽了参数基准值的影响.
(4)
式中:DMs(j)为当前点的长短期均值差的动态和.
定义4 长短期均值差的动态均值:对定义2中的长短期均值差求取当前时刻点前ST秒的均值作为长短期均值差的动态均值,标记为DMm.
(5)
式中:DMm(j)为当前点的长短期均值差的动态均值.
将长短期均值差的动态均值与动态和相乘,以反映长短期均值差动态和随变量的变化趋势,从而得到所需要的趋势特征量.
定义5 趋势特征量(标记为DMN):
DMN(j)=DMm(j)·|DMs(j)|,
(6)
式中:DMN(j)为当前点的趋势特征量.
该趋势特征量能够反映变量变化趋势的特征,且与变量的绝对数值大小无关.
定义6 对DMN求均值和方差得到本文使用的另外两个特征量:DMNm和DMNd,
(7)
(8)
式中:DMNm(j)和DMNd(j)分别为当前点的特征量均值和方差.
以钻井过程中的总池体积变量为例,上述定义的相关概念图形如图1~4所示.
图1 总池体积参数及其长短期均值
Fig.1 Total pool volume parameters and its long and short period average
图2 长短期均值差
Fig.2 Long and short period average deviation
图3 长短期均值差的动态和
Fig.3 Dynamic sum of long and short period average deviation
图4 趋势特征量
Fig.4 Trends characteristic
由图3~4可知:DMs和DMN能够反映出参数的变化趋势并且不受参数基准值的影响,因此笔者利用DMs以及由DMN计算得到的DMNm、DMNd 3个特征量组成特征向量用以代替原钻井参数进行事故预警.
HMM是一种动态模式识别工具,能够对一个时间跨度上的信息进行统计建模和分类[11-14].而传统的故障诊断方法停留在静态观测的基础上,比如取某时刻的幅值谱进行比较分析,这往往忽略了故障发生前后的上下文信息,未能揭示系统潜在状态所发生的变化特征,因而也难于对故障的发展做出预测.在钻井事故预警中反映事故的是参数在一段时间上的变化趋势,因此隐马尔科夫模型更适用于钻井过程的事故预警.
CHMM可以记为λ=(π,A,C,μ,U),其中π为初始状态分布,A为状态转移矩阵,C为混合权重,μ为均值矢量矩阵,U为协方差矩阵.
随着HMM不断发展,逐渐形成3大经典算法:①前向-后向算法解决评估问题;②Viterbi算法用来解决解码问题;③Baum-Welch算法解决学习问题[15].
笔者利用Baum-Welch算法对CHMM进行训练,利用前向-后向算法计算出已知信号与已知模型的匹配概率.
在对上述内容进行分析的基础上,笔者提出了一种基于趋势特征量与CHMM的预警模型.
针对单个钻井参数是否有异常的预警模型主要分为几个部分:①信号的采集及特征提取;②将异常信号的特征向量输入CHMM模型进行训练得到模型库;③将大量已知信号(包括异常与正常)的趋势特征向量输入已训练过的CHMM模型中,利用前向-后向算法输出已知信号与该模型库的匹配概率;④利用统计方法来确定匹配概率预警的阈值;⑤以未知信号与模型库的匹配概率是否超过阈值来进行预警.具体流程图如图5所示.
图5 单个钻井参数的预警模型
Fig.5 A single drilling parameters of early warning model
以上是判断单个钻井参数是否异常的预警模型,但是当钻井系统每种事故发生时都会有多个参数异常,所以要判断钻井系统事故发生的可能性就需要对几个单参数预警模型的结果进行综合判断.
以井漏事故为例,由专家经验和现场数据分析可知:判断井漏的主要参数是总池体积、出口流量、立管压力的异常变化.因此要针对每一个参数训练一个预警模型,然后利用一定的判断规则来综合判断3个参数的阈值.
将现场采集的异常信号进行特征提取后输入CHMM模型进行训练,以总池体积参数为例,图6为一组训练所用的异常数据,图7为提取的趋势特征量示意图.
图6 原始故障参数值
Fig.6 Original fault parameter value
图7 提取出的特征量
Fig.7 The extracted feature quantity
利用Baum-Welch算法[15]对CHMM模型进行训练,训练后CHMM模型各参数值如下.
μ=
判断井漏事故还需要使用出口流量和立管压力,其预警模型训练方法与总池体积的训练方法相同.
现场收集到井漏事故数据33组,其中3个参数的异常变化情况如表1所示.
表1 井漏事故发生时各个参数异常情况统计
Tab.1 Various parameters abnormal situation statistics at the time of the lost circulation accident
钻井参数异常情况数目所占井漏事故总数目的比例/%所有井漏事故数据33100 0 总池体积出现异常3369 6 出口流量出现异常2339 3 立管压力出现异常1339 3 立管压力和出口流量都无异常824 2
运用上述预警模型,分别计算统计出总池体积、出口流量和立管压力的匹配概率阈值,由于匹配概率一般比较小,为了防止结果下溢可对匹配概率取对数.经过大量试验统计出总池体积阈值μ1=-500,出口流量阈值μ2=-500,立管压力阈值μ3=-2 500.
井漏事故综合判断的规则为:将总池体积作为主判参数,出口流量与立管压力作为次判参数.当出口流量或者立管压力有异常时,可以把主判参数的阈值降低,既加大了异常判断的概率也使判断的异常时间点提前了.
为了使最终的判别结果更有利于工程人员分析判断,将判断结果以概率形式表示,当概率值在0.5以上时发出预警,并且概率值越大发生事故的可能性也就越大.由上文统计结果知,总池体积阈值μ1=-500,当出口流量或者立管压力有异常时可以把阈值下探到-1 500,有利于事故的判断,具体的判断规则如下:
(1)总池体积的对数匹配概率为c1,当c1>-500时,已经超过总池体积异常的阈值,需要发出预警.因此,当匹配概率在-500~0的范围内应使最终结果P的范围为0.5~1,计算概率时基准值取1 000.
P=[c1-(-1 000)]/1 000.
(9)
(2)当-1 500<c1≤-500时,最终的判别结果需要结合出口流量的匹配概率c2与立管压力的匹配概率c3,这时令总池体积输出概率P1=0.5.
对于出口流量输出概率P2,当c2≤μ2,P2=0;当c2>μ2,要保证匹配概率c2在-500~0的范围内时出口流量输出概率P2的范围为0~1,计算概率时基准值取阈值500.
P2=(c2-μ2)/500.
(10)
对于立管压力输出概率P3,当c3≤μ3,P3=0;当c3>μ3,要保证匹配概率c3在-2 500~0的范围内时立管压力输出概率P3的范围为0~1,计算概率时基准值取阈值2 500.
P3=(c3-μ3)/2 500.
(11)
最终输出概率:
P=P1+0.25·P2+0.25·P3.
(12)
(3)当-2 500≤c1≤-1 500时,参数有异常趋势,但是明显达不到预警标准,所以最终输出的结果要保证在0.5以下,因此当匹配概率c1在-2 500~-1 500的范围内时最终输出概率P的范围为0 ~ 0.5,计算概率时基准值取2 000.
P=[c1-(-2 500)]/2 000.
(13)
(4)当c1<-2 500时,参数没有异常趋势,所以使最终输出结果为P=0.
具体判断流程如图8所示,最终判别结果P为一个概率值,当概率值达到0.5以上时进行预警,当P在0.5以下时,说明参数有异常趋势但是不太明显,P值越大说明异常趋势越明显.
图8 综合判断流程图
Fig.8 The flow chart of comprehensive judgment
试验以井漏事故分析为例,验证预警模型的有效性.
图9 与井漏事故相关的原始参数
Fig.9 Original parameters related to well leaked accident
图9所示为总池体积、出口流量、立管压力的原始数据,对这些参数分别进行趋势特征量的提取,并作为隐马尔科夫预警模型的输入量,模型输出的匹配概率如图10 ~12所示.由图10可知到达总池体积阈值μ1=-500的点为第8 510个采样点,总池体积匹配概率在-1 500~-500范围内的采样点范围为8 323~8 510,此时需要结合出口流量及立管压力的匹配概率进行预警,而总池体积匹配概率在-1 500以下的采样点虽然有小幅度的异常趋势,但是达不到预警标准.
图10 总池体积的匹配概率曲线
Fig.10 The matching probability curve of total pool volume
图11 出口流量的匹配概率曲线
Fig.11 The matching probability curve of outlet
图12 立管压力的匹配概率曲线
Fig.12 The matching probability curve of standpipe pressure
由图10可知若预警模型只利用总池体积一个参数进行预警,预警的阈值μ1=-500,对应的预警时刻点为第8 510个采样点.总池体积与出口流量及立管压力结合后的综合判断结果如图13所示,由图13可知,若利用3个参数进行综合判断的预警点为第8 320个采样点,而当时现场人工发现异常的时刻为采样点8 380,综合判断的预警时刻比现场人工发现异常的时间提早了60 s,比单个参数的预警时间早了190 s.因此,将3个参数的预警模型相结合进行判断,当出口流量或者立管压力有异常时,比单独一个参数的预警模型的预警时间更早更准确.
利用更多的数据对模型进行验证,结果如表4所示.同时作为对比,采用文献[16]中的神经网络诊断模型与本文隐马尔科夫预警模型进行比较.训练神经网络模型同时需要井漏故障数据和正常数据,所用井漏故障数据与训练CHMM模型所用故障数据相同,而所用的正常数据为故障数据发生故障前的正常段数据.为了训练出更好的神经网络模型,利用选取的训练数据重复进行10次训练,统计出拟合误差最小的模型作为最终的神经网络模型.
图13 三个参数综合判别结果
Fig.13 Three parameters comprehensive judging results
对比验证所用数据为现场采集的3组试验数据,每组包含若干段井漏事故数据及若干段正常数据,每段数据包含几百到几千个采样点不等,分别对隐马尔科夫预警模型及神经网络模型的误报率及漏报率进行统计,结果如表4所示.其中神经网络模型对每组数据都进行了20次测试,表中给出的是统计的平均结果.
表4 试验结果
Tab.4 Test results
事故数据段数正常数据段数隐马尔科夫预警模型神经网络诊断模型测试平均结果事故漏报警段数漏报率/%正常数据误报段数误报率/%事故漏报警平均段数漏报率/%误报警平均段数误报率/%第1组224614 536 51 858 44 6010 0 第2组275013 748 01 304 85 5511 1 第3组266000 0610 01 656 34 557 6 平均漏报率和误报率2 78 36 49 4
由试验结果可知,隐马尔科夫预警模型比现有文献中神经网络诊断模型的预警准确率有一定程度的提升.通常漏报率与误报率是负相关的,降低漏报率的同时误报率会有一定的提高,在实际应用中的企业更关注漏报率指标.本算法对钻井原始参数进行特征提取屏蔽了基准值的影响,因此适用性较神经网络模型更广泛,能够为钻井事故的判断、预警提供技术支持,对于预防和控制钻井事故,最大限度地减少损失具有重要意义.
为提高石油钻井过程中对异常事故预警的准确性和及时性,笔者构造了长短期均值差的动态和(DMs)、趋势特征量的均值(DMNm)及方差(DMNd)3个特征量,并基于特征量构造出了基于隐马尔科夫模型的预警模型.利用构造的特征量作为预警模型的输入信息,通过训练CHMM模型,得到实际数据与模型输出的匹配率,利用总池体积、出口流量和立管压力的匹配概率的综合判断规则给出钻井工程井漏事故预警信息.通过实际数据测试,证明该模型能够及时有效地对钻井工程异常做出预警,提高了预警的准确性和及时性,能够有效避免工程事故的扩大.
[1] 蒋希文. 钻井事故与复杂问题[M]. 北京:石油工业出版社, 2005.
[2] 王建彬. 石油钻井工程事故的预警技术研究[D]. 北京:中国地质大学工程技术学院, 2013.
[3] 李新,王国瓦,陈慧,等. 工程录井预警系统在塔里木油田的应用研究[J]. 录井工程, 2011, 22(4): 67-71.
[4] 刘文龙,张宏. 基于录井数据的钻井事故预警理论[J]. 价值工程, 2012(31): 44-45.
[5] GE N, NAKAJIMA S, PANTEL M. Online diagnosis of accidental faults for real-time embedded systems using a hidden markov model[J]. Simulation, 2015, 91(10):851-868.
[6] CARTELLA F, SAHLI H. Online adaptive bearings condition assessment using continuous hidden markov models[J]. Advances in mechanical engineering, 2014, 7(2):758-782.
[7] 王洪明,郝旺身,韩捷. 基于LMD和样本熵的齿轮故障特征提取方法研究[J]. 郑州大学学报(工学版), 2015, 36(3):44-48.
[8] 苏卫星,朱云龙,胡琨元,等. 基于模型的过程工业时间序列异常值检测方法[J]. 仪器仪表学报, 2012, 33(9):2080-2087.
[9] RATANAMAHATANA C A, LIN J, GUNOPULOS D. Mining time series data[J]. Data mining and knowledge discovery handbook, 2009, 56(4):1069-1103.
[10] 李晓光,宋宝燕,张昕. 基于滑动多窗口的时间序列流趋势变化检测[J]. 电子学报, 2010, 38(2): 321-326.
[11] 夏丽莎. 基于隐马尔科夫模型的故障诊断及相关算法研究[D]. 武汉:华中科技大学自动化学院, 2014.
[12] 孟宗,闫晓丽,王亚超. 基于LMD和HMM的旋转机械故障诊断[J]. 中国机械工程, 2014, 25(21):2942-2951.
[13] 苗强,VILIAM M. 基于隐马尔科夫模型的故障诊断系统研究[J]. 航空学报, 2005, 26(5):641-646.
[14] 卓东风,原媛. 小波包变换和隐马尔科夫模型(HMM)在液压系统故障预测中的应用[J]. 山西大学学报(自然科学版), 2013, 36(3):357-362.
[15] 谢锦辉. 隐Markov模型(HMM)及其在语音处理中的应用[M]. 武汉:华中理工大学出版社, 1995.
[16] 王江萍,孟祥芹,鲍泽富. 应用神经网络技术诊断钻井事故[J]. 西安石油大学学报(自然科学版), 2008, 23(2):99-102.