石油钻井噪声环境下微弱趋势异常检测算法参数优化研究*
2022-04-25牛伟明李玉春
李 广,牛伟明,李玉春
(1.河南工学院 电气工程与自动化学院,河南 新乡 453003;2.河南工学院 厚德书院,河南 新乡 453003;3.新乡医学院 公共卫生学院,河南 新乡 453003)
0 引言
石油钻井是大型设备从地面钻到储油层的过程。整个钻井过程伴有井漏、井涌和井壁坍塌等工程事故[1],轻则造成经济损失,重则造成人身伤亡。工程事故在发生初期可以通过分析多个工程参数趋势异常变化综合判断,然后采取措施阻止工程事故恶化,避免造成重大经济或人身损失。因此,石油钻井工程预警成为石油钻井领域越来越重要的研究。
石油钻井工程预警系统[2]是检测石油钻井参数趋势变化、早期判断各种钻井事故发生的系统。以往石油钻井预警系统研究主要侧重算法设计[3],但对算法中的参数为何如此设置并没有研究,并且石油钻井数据流中存在噪声[4],噪声对趋势异常检测影响较大,是造成误报或漏报的主要因素。因此在噪声环境下,算法参数最优设置成为提高石油钻井预警准确率的关键问题。
本文采用准确率和虚警率作为优化对象,以粒子群算法[5]作为优化手段,以1-准确率和虚警率作为目标对象。在噪声环境下,设计一套微弱趋势异常检测算法,以提高石油钻井工程参数趋势异常预报准确率和降低误报率,并尝试为所有数据流算法滑动窗参数难以确定问题提供解决思路。
1 趋势异常检测
数据流趋势异常检测的计算公式如下:
y(t)=k(t-t0)+y0
(1)
(t0,y0)是开始点,k是斜率。
y(t)=p0(t-tc0)+yc0(2)
初始时间为tc0,初始结果值为yc0,斜率是p0,Δt是更新的间隔时间,原始的模型和预测的模型如公式(3)和(4)所示。
y(t)=p0(t-tc0)+yc0
(3)
(4)
两者之差是趋势异常检测的基准值,计算公式如下:
(5)
两个窗口的累计偏差之和计算公式如下:
cusum(t0+nΔt)=cusum(t0+(n-1)Δt)
(6)
停止时间是tq(i),对应的输出是yx(i),时间间隔是T,公式如下:
tq(i)=tx(i+1)-T(7)
yx(i)=p(i)[tx(i)-tq(i)]+yq(i)
(8)
微弱趋势异常检测公式如下:
I(i)=yq(i+1)-yq(i)
={k(i+1)[tq(i+1)-tx(i+1)]
+yx(i+1)}-{k(i)[tx(i)-tx(i)]+yx(i)}
(9)
明显趋势异常检测公式如下:
ID(i)=yq(i+1)-yx(i)
=yq(i+1)-{k(i)[tq(i)-tx(i)]+yx(i)}
(10)
时间延后一个数据的趋势异常检测公式如下:
=k(i)[tq(i+1)-tx(i+1)]
(11)
(12)
2 参数最优的微弱趋势异常检测算法
参数最优的微弱趋势异常检测算法(the Optimal Parameter of the Weak Trend Anomaly Algorithm:OP-WTA)采用滑动嵌套窗体方式。
图1 嵌套滑动窗工作示意图
OP-WTA算法异常检测算法:
(1) 计算短窗口均值(SWM)。
(13)
(2) 计算长窗口均值(LWM)。
(14)
OP-WTA算法流程如下:
(3) 计算均值差。
mdv=SWM-LWM
用户停车时间的长短用模糊语言很短HD、较短JD、一般YB、较长JC、很长HC表示,其中用户预留停车时间在0~1 h之内表示很短,1~2 h之内表示较短,2~3 h之内表示一般,3~4 h之内表示较长,4 h以上表示很长。停放车辆的位置到出入口的距离用模糊语言很近HJ、较近JJ、一般YB、较远JY、很远HY表示,其中停放车辆的位置在1~3(对应于输出隶属度函数图中的论域0~2)层表示很近,3~5层表示较近,5~7层表示一般,7~9层表示较远,9层以上表示很远。图1所示为单输入单输出输入隶属度函数图,图2所示为单输入单输出输出隶属度函数图。
(15)
(4) 利用CUSUM原理计算累积和。
(16)
(5) 计算累积和均值。
(17)
(6) 计算累积和方差。
slc=std(cusum-mcusum)
(18)
(7) 计算上阈值线。
UCL=mcusum+μ×slc
(19)
(8) 计算下阈值线。
DCL=mcusum-μ×slc
(20)
(9) 计算当前值是否异常。
cusum>UCL,则认为当前点异常上升,并把点标志为1,异常累计数nacm=1;DCL>cusum,则认为当前点异常下降,并把点标志为2,异常累计数nacm=1;无异常时,把该点标志为0,nacm=0。
(10) 计算当前点标志。
如果当前点和前一时刻标志相同,则异常点数累加1,否则异常点数为1。
(11) 统计异常累计个数。
当异常累计个数>h,则认为当前点为异常点。
采用粒子群(PSO)算法作为参数优化的方法。两个目标分别是1-正确率和虚警率。其中正确率和虚警率的公式如下:
TPR=TP/(TP+FN)
(21)
FPR=FP/(FP+TN)
(22)
同时该优化为带约束的优化,其中
G=LW-SW
(23)
H=LW-β
(24)
(25)
3 工程应用验证
本文数据选取塔里木油田钻井数据,Windows10,内存16G,处理器是Intel(R) Core(TM)i5-4570@3.2GHZ 3.1GHZ,软件是Matlab2014a。
由表1可知,趋势异常检测算法参数设置不同,确实会导致检测准确率和误报率不同。
表1 基于PSO的OP-WTA方法分类
采用HV标准,评价PSO算法运行效果,如表2所示;并与传统方法对比,如表3所示。
表2 计算20次的HV算法效果
表3 PSO与传统设置的对比
采用PSO算法得到最优帕累托前沿相比于传统方法获得的最优帕累托前沿更优。虽然获得了一组最佳点,但在工程应用中,我们需要在这一组最佳点中确定某一个点进行参数设置,为此,本文采用拐点策略[8]得到结果如表4所示。
表4 实验结果
OP-WTA与DBOD-DS[6]和A-ODDS[7]对比效果如图2所示。本文算法采用的对比评价标准是杰卡德系数和ROC(receiver operating characteristic curve)中的AUC(Area Under Curve)指标。
图 2 算法分类对比
由图2可知,OP-WTA算法对干扰数据具有较好的屏蔽作用。
由图3可知,OP-WTA算法具有更好的分类能力。
图3 基于PSO的ROC曲线
由图4可知,OP-WTA的杰卡德系数相比DBOD-DS和A-ODDS的杰卡德系数更高,OP-WTA算法具有更高检测准确率和更低检测虚警率。
图4 杰卡德系数分类结果
4 结束语
本文将滑动嵌套窗体与PSO两种方法相结合,通过拐点策略获得最佳参数设置,建立了基于嵌套滑动窗与PSO相结合的趋势异常检测模型并将其应用于石油钻井数据流趋势异常检测,得到如下结论:该方法检测准确率高,虚警率低,具有更好的趋势异常检测效果。