抽油泵系统故障分类模型及其可视化终端的搭建*
2023-03-23魏航信
邢 鑫,吴 伟,魏航信,李 博
(西安石油大学机械工程学院,西安 710065)
0 引言
在石油开采行业中,抽油泵系统起着举足轻重的作用。然而,恶劣的井下工作环境和复杂的工况使得抽油泵系统时常发生各种故障。此外,由于油井区域零散分布以及油井间的道路不便,使得油井的管理和维护成本高企。快速、高效、扁平的故障分类模型和可视化终端的搭建显得尤为重要。
示功图是由功率计测得的抽油泵系统关于“位移-载荷”的二维曲线,示功图的不同形状可以简单直观地反映抽油泵系统当前的运行状态[1-3]。因而,利用示功图作为样本构建抽油泵系统故障分类模型是当前主要的研究方向。图1 所示为抽油泵系统典型工况的示功图。
图1 抽油泵系统典型工况的示功图
图1(a)为理论示功图,理论示功图曲线为平行四边形。图1(b)为供液不足故障的典型示功图。供液不足是抽油泵的沉没度不足,从而在一定时间内泵入油泵的液体无法充盈泵筒,或者是油质稠密使得液体泵入缓慢而导致的一种常见的故障。供液不足的典型特征是示功图的右下角迅速变化。图1(c)为正常工况的示功图,其典型特征为示功图曲线近似为平行四边形。图1(d)为抽油杆断裂的典型示功图。由于抽油杆断裂后,功率计只能检测断裂点以上的抽油杆柱在重力和摩擦力作用下产生的载荷,所以示功图曲线会失去正常工况示功图所占据的范围和形状而变为平棍状[4]。图1(e)为碰泵故障,柱塞与游动阀发生碰撞使得示功图曲线右上角死点位置出现针状。图1(f)为漏失故障。
众多学者利用示功图中冲程载荷等一系列参数进行抽油泵系统故障分类。钟张起等[5]对示功图加卸比与供液能力以及泵效进行相关性定量分析;钟张起等[6]利用示功图载荷比表征油井当前的结蜡程度;朱春梅等[7]利用分形盒维数对抽油泵系统示功图进行故障分类;钟张起等[8]通过研究确定示功图载荷比作为评价抽油泵系统当前结蜡程度的指标。Jiang等[9]使用速度、电压、电流、油压、动液面深度、产油量等参数输入到随机森林模型进行抽油泵系统故障分类;Jiang 等[10]将示功图典型参数输入BP 神经网络模型实现了抽油泵系统故障分类;Lv等[11]建立有杆泵的数学模型,从而得到模拟示功图,再利用模拟示功图训练增量支持向量机模型从而实现分类;Han等[12]用Freeman链编码作为示功图的特征,使用脑风暴算法优化聚类实现抽油泵系统故障分类。
此外,部分学者直接利用示功图图像实现抽油泵系统故障分类。段友祥等[13]利用Alexnet 模型实现示功图的分类;仲志丹等[14]利用卷积神经网络(CNN)提取示功图中的特征,然后使用支持向量机(SVM)实现示功图分类;刘宝军等[15]将200 口典型的抽油机示功图作为训练样本输入到卷积神经网络模型(CNN),该模型对常见故障的识别准确率89.3%。杜娟等[16]在深度分离卷积模型中引入正则化注意力模块,使得模型在降低存储空间的同时提高模型分类准确率,该模型的故障诊断准确率为95.1%;檀朝东等[17]使用残差卷积神经网络模型提取结蜡故障示功图中的特征,然后使用长短时记忆神经网络进行结蜡程度的定量预测。
本文使用Pytorch 搭建卷积神经网络模型实现示功图的分类,然后通过4G模块将不同区域油井的信息传输到由第三方开源库kivy 搭建的可视化终端实现油井状态、故障类型以及处理措施等信息的显示。同时将相关数据保存到MySQL数据库中,以便开展后续工作。
1 卷积神经网络模型原理
卷积神经网络(CNN)模型架构如图2 所示,卷积神经网络模型共分为卷积层、归一化层和池化层以及全连接层3 个部分,预测结果中,ILS 代表供液不足故障,NOC 代表正常工况,SRB 代表抽油杆断裂故障,SPB 代表碰泵故障,CST代表漏失故障。下面将具体介绍各个部分的数学基础。
图2 卷积神经网络(CNN)模型架构示意图
1.1 卷积层
尺寸为dW×dL的示功图图像Di作为卷积神经网络的输入。卷积层是使用尺寸不一的卷积核与Di进行卷积运算从而实现从Di中提取可以有效识别Di所属类别的特征。激活函数是将卷积运算得到的特征非线性化,从而进一步提升整个模型的非线性性和模型的泛化能力。图像Di通过卷积层和激活函数的过程可以由下式表示:
式中:H为图像Di经过卷积层和激活函数后输出的结果;Ψ为激活函数;W为尺寸为dk×dk×1 卷积核对于输入图像描绘的权重系数;b为偏置大小。
1.2 归一化层和池化层
由于不同的图像Di样本中尺寸、特征分布大相径庭。为了模型不受其影响,通常在卷积层后加入归一化层从而实现结果H的归一化。本文使用的是局部响应归一化进行H的归一化。
工程中,由于设备的计算能力有限,同时为了节省计算资源,模型在卷积层和归一化层后会加入池化层对H进行下采样,从而大幅降低模型计算成本。尺寸为dH×dH的图像经过尺寸为dP×dP的池化层后,输出图像尺寸变为(dH/dP)×(dH/dP)。输入图像Di依次经过卷积、归一化、池化运算后,最终获得Q个尺寸为dO×dO,可以有效表征图像Di的特征图。特征图经过特征平铺组成尺寸为(Q×dO×dO)×1的向量VD。
1.3 全连接网络
图像Di经过多层的卷积运算后,获得可以表征Di的高维特征VD。VD通过全连接层进行特征融合,同时为了降低模型的过拟合概率以及提升模型的泛化能力,本文在全连接层中加入随机失活层。最终全连接层的5 个输出oi再经过Softmax 函数输出模型对输入Di属于各类故障的概率。该过程的数学表达为:
式中:αi为卷积神经网络模型判断输入图像Di为第i类故障的概率;oi为全连接网络第i个节点的输出值。
2 实验验证
2.1 数据来源及损失函数
本文从西北某油田获取的包含正常工况、供液不足故障、漏失故障、碰泵故障、抽油杆断裂故障5 种故障共1 000 余张示功图。按照70∶30 的比例将示功图样本划分为训练集和测试集进行模型的训练和模型分类性能的测试。
在该数据集中,供液不足故障和正常工况的样本数量占据数据集的主体地位。而抽油杆断裂故障、碰泵故障、漏失故障的样本数小于数据集总样本数的20%。为了模型对所有故障分类准确率的稳定,本文使用由Lin等[186]提出的针对长尾分布数据集的损失函数。损失函数F(pi)由下式表示:
式中:γ为超参数,本文中最佳的γ值为2.3;pi为输入示功图属于第i类故障的概率,pi由式(4)可得:
式中:ti为输入示功图的真实故障分类。
2.2 实验结果
卷积神经网络模型经过5 次独立重复实验,最终抽油泵系统对各类故障的分类准确率的混淆矩阵如图3 所示,图中,ILS 代表供液不足故障,NOC 代表正常工况,SRB代表抽油杆断裂故障,SPB代表碰泵故障,CST为漏失故障。由图可知,卷积神经网络模型对抽油泵系统供液不足故障的分类准确率为97.92%,对正常工况示功图的分类准确率为84.82%,对抽油杆断裂故障的分类准确率为74.29%,对碰泵故障的分类准确率为75.0%,对漏失故障的分类准确率为83.75%。
图3 卷积神经网络模型对抽油泵系统故障分类混淆矩阵
3 4G模块及MySQL数据库
作为万物互联的核心器件,4G 网络模块的使用已经遍及各行各业。此外,我国抽油井具有分布广、油藏分布零散、产量不高、油井周围环境差、开采成本高等特点。这就使得油井管理成本和维护成本高企。因此,分布在各地的抽油井的运行状态通过传感器进行数据采集,然后4G模块将数据实时上传到控制终端。工程师可以远程监测,及时发现抽油泵系统存在的问题,从而实现快速、高效、便捷、扁平的抽油泵监测维护,进而提高抽油井生产效率、降低石油开采和设备维护成本。
4G 通信具有通信速度高、兼容性好等特点,其最高通信速度达100 Mb/s。本文使用的是正点原子的4G 模块ATK-IDM750C。该4G 模块供电电压为12 V,通过通用异步收发传输器(UART)与单片机进行串口波特率为9 600 bit/s 的串口通信。4G 模块参数配置如表1 所示。抽油泵系统的数据传输过程如图4 所示。抽油泵系统中功率计等传感器通过I2C通信将数据传输给单片机,单片机与4G 模块进行UART 通信。单片机根据控制平台的命令将数据通过4G模块上传到正点原子设计的原子云平台,再通过TCP协议将数据下载到本地的数据库进行保存。
表1 4G模块参数配置
图4 抽油泵系统数据传输过程图示
本文使用数据库为MySQL 数据库。MySQL 属于关系型数据库管理系统,它将数据保存到不同的表中,从而提高数据库的快捷性和灵活性。
在Python 中操作MySQL 数据库需要使用第三方库pymysql。具体的操作流程如下。
(1)创建数据库。用户输入主服务器的域名、端口名、用户名和密码等信息后,利用cursor.execute("CREATE DATABASE IF NOT EXISTS xx")函数创建数据库,然后使用db.select_db("xx")函数连接创建好的数据库。
(2)创建表。在已经创建好的数据库中创建表。本文数据库中的表包含以下信息:①抽油井井号,使用VARCHAR 类型存入数据库;②示功图采样时间,使用DATE 类型存入数据库,油井井号和采样时间的存储是为了方便后续的数据直观查询;③示功图的冲程序列,由于绘制一张示功图所包含的冲程序列数据点较多,所以使用TEXT类型存入数据库;④示功图的载荷序列,同样使用TEXT类型存入数据库;⑤最大最小载荷、冲程、冲次等示功图直接获取的参数,这些参数合并为一个TEXT类型存入数据库;⑥示功图曲线包围的面积以及示功图重心分割后各个子区域的面积;⑦载荷比,示功图AC两点连线与x轴的夹角,BD两点与x轴的夹角,示功图固定阀和游动阀的工作位移,加载冲程及卸载冲程;⑧示功图AB段曲线、BC段曲线、CD段曲线、DA段曲线的信息熵,参数f、g、h、i、j、k合并为一个TEXT 类型存入数据库;⑨示功图图像,使用BLOB 类型存入数据库;⑩示功图及其频域图的叠加图像,该图像由于数据量较大,所以使用MEDIUMBLOB类型存入数据库。
(3)读取示功图,计算相关参数,并使用cursor.execute("INSERT INTO func_name VALUES value")函数将相关数据插入数据库。
(4)后续需要使用数据库中数据时,使用cursor.execute("SELECT func_name FROM table")函数查询table表中的func_name 数据。然后使用cursor.fetchall()函数将查询到的数据进行保存,以便使用。
4 可视化终端的搭建
本文使用Python 的开源库Kivy 搭建抽油泵系统的监测终端。Kivy 是一种面向自然用户界面的开发库,它可以实现多点触控应用的开发。具有简单、高效、快捷、成本低等特点,其开发的程序可以在安卓、Linux、IOS、Windows 等多平台运行。本文使用Kivy 中的函数如表2所示。
表2 Kivy开源库部分函数说明
当用户终端向控制平台请求访问抽油井的信息时,控制平台在用户信息合法的前提下通过TCP 协议向用户终端发送相关抽油井的信息。首先用户需要在登录界面输入自己的用户名和用户密码。在用户点击登录按键后,用户输入的数据将和数据库中存储的用户数据进行比对。输入的数据错误时,界面提醒相关信息输入错误,并提醒用户重新输入信息。当输入信息合法时,监测终端进入如图5(a)所示的系统首页。系统首页显示控制平台当前的时间、可以访问的抽油井的井号以及当前与控制平台未连接的抽油井井号。用户仅可以点击可以访问的抽油井的相关信息。在用户点击某一油井井号按键后,系统向控制平台发送数据传输请求信号,控制平台将对用户权限进行审核。当用户权限不满足要求时,监测系统显示提示信息;当用户权限满足要求时,控制平台向该油井发送数据查询命令。油井段单片机在接收到命令后,将传感器采集到的示功图信息通过4G 网络进行上传。控制平台将示功图输入到卷积神经网络模型中预测抽油泵系统的故障分类,并根据分类结果在数据库中查询对应的处理措施。
图5 抽油泵系统监测终端界面
上述过程完成后,控制平台通过TCP 协议将油井的示功图信息发送到用户终端。图5(b)显示油井井号为1-1,工况为正常工况的处理意见。图5(c)显示油井井号为1-2,工况为供液不足,处理处理意见为建议该井进行油层改造,改善抽油泵沉没度从而提高泵效。图5(d)显示油井井号为2-1,工况为抽油杆断裂,处理意见为及时更换抽油杆。图5(e)显示油井井号为2-2,工况为碰泵故障,处理意见为适当调整抽油泵的防冲距离。图5(f)显示油井井号为3-3,工况为阀门漏失,处理意见为进一步改善阀门密封性能。用户将所有信息浏览完毕后,可以点击返回按键返回系统主页面继续后续操作。
5 结束语
本文使用卷积神经网络模型实现抽油泵系统故障分类。该模型对供液不足故障的分类准确率为97.92%,对正常工况示功图的分类准确率为84.82%,对抽油杆断裂故障的分类准确率为74.29%,对碰泵故障的分类准确率为75.0%,对漏失故障的分类准确率为83.75%。油井示功图信息以及模型输出的故障分类结果通过4G模块上传到云端,并且使用Kivy 库和MySQL 数据库搭建了本地的可视化的用户监测终端和数据存储平台。本文使用卷积神经网络模型进行故障分类、Kivy 用户终端平台构建可视化界面以及MySQL 数据库进行数据存储的综合方案对后续智慧油田建设有借鉴和指导意义。