-
电动潜油离心泵又称电潜泵,是海上平台常用的举升工具。电潜泵机组的主要工作部件在井下,相比于抽油机等地面抽汲设备而言,发生的故障问题更加不可见。为了能够对电潜泵的工作状况有清晰的认识,人们提出了各种各样的电潜泵工况的诊断技术。电流卡片作为一种常用的电潜泵故障诊断方法,记录了输入潜油电泵电机的电流变化,在现场中得到了广泛应用。传统的电流卡片诊断技术主要依靠熟练的技术工人,通过对电流卡片的形状进行人工识别,推断其可能的工况状态,这种方法存在较强的人为主观因素。而通过训练人工神经网络对电流卡片的特征进行学习,可以实现电流卡片状态的实时判别,随时掌握电潜泵的工作状况。陈治国等[1] 2004年提出了基于模式识别的电流卡片特征值提取方法,用于辅助人工判断,在人工判断的基础上增加了定量化指标。余继华等[2] 2005年在其基础上增加了神经网络方法判断,开始使用机器学习方法对电流工况进行识别。甘露等[3] 2011年将算法进一步发展,使用适用性更好的BP算法对机器学习方法进行补充。韩国庆等[4]2015年在BP算法基础上对工况种类进行了补充,使得工况识别得到了进一步发展。在前人已有研究的基础上将电流特征值提取方法做了进一步细化,使得电流卡片特征值的描述更为准确;同时对BP神经网络的结构进行对比优化,优选出判断准误差率更低的网络模型,以提高在智能油田中的适用性,提高判别效果。
HTML
-
在不同电潜泵井的不同工况下,电流值和电流的波动程度是不同的。电流卡片上记录了极坐标系下的电流的波动情况,可以直观了解到在电流卡片记录的时间段内,电流卡片记录的不同工况下的电流情况,即电流卡片通过对电机电流不同特征的识别和反演对电潜泵工况进行诊断[4]。一般情况下每张电流卡片记录过去1 d,即24 h的电流波动情况,电流卡片上每1度记录1个电流平均值,即记录频次360 次/d,也可加密至1 440次,即每分钟1次,以能够反映电流的波动情况为准[5]。
-
一般而言,海上电潜泵井在生产过程中发生状态改变导致电潜泵井生产受到影响的原因可以分为3个方面,包括油藏供液问题、井下设备故障和地面设备故障。
油藏供液问题的原因包括:(1)井筒入流不足,由于生产过程中地层的供液能力不足,导致电潜泵欠载停机,停机时间增加,泵效严重受影响;(2)游离气体的影响,地层中生产的自由气体或者流体在流动过程中由于压力降低而析出的气体较多时,随着生产的进行,套管中的气体会逐渐积累,当套管压力高于油管入口处的压力时,高套管压力会推动套管气过泵,使得气体分离器作用受到影响,高气液比导致泵效降低,这一状况在下泵深度过浅时尤其明显;(3)结蜡或乳化影响,其特点是油管结蜡或乳化堵塞导致电泵失效,进行加热或物理清蜡后可恢复生产。
井下设备故障的原因通常包括:(1)电潜泵反转,其特点是井筒中电潜泵以上流体压力过大,电泵功率不够,不能将井筒中的液体托举到地面,从而导致叶轮反转而使电泵失效;(2)井下漏失,其特点是因排出阀、油管接箍、压力表阀漏失而导致泵排出口压力下降;(3)泵机械故障,其特点是因泵轴断裂导致产油量下降,或由于叶轮磨损导致的高滑脱和低泵效。
地面设备故障的原因通常是地面流动受阻,例如地面的流动管线中结蜡、油嘴流通面积小、油嘴砂堵或蜡堵等。以上电潜泵井中遇到问题而对生产造成影响的情况中,油藏供液能力的问题和井下设备故障都能在电潜泵的电流上有所体现,不同的工况条件下会有不同的电流情况和电流波动情况,因而可以通过电流卡片中的电流波动情况来反映电潜泵的工作状态。
-
一般按照导致泵的工作电流变化的原因对电潜泵所处工况进行分类,电流卡片中反映的电流及其波动情况中可以直观观察到泵停机状况、电流波动时间长短、波动的频次高低、波动的复现情况等,通过这些情况可以对电流卡片反映的实际问题进行分析。电流卡片的详细分类依据如图1所示。
从图1中可以看到,在不同工况条件下工作的电泵在电流卡片中的电流情况以及电流波动情况上有所不同。以过载停机工况为例进行分析,出现此种工况一般情况下是由于电机在较长一段时间内负载过大,超过电机的承受能力,从而出现的电机自动保护性停机,且不经过人为重启时电泵的电流归0后不会恢复。在电流卡片中应表现为电流在一个正常范围内不发生波动或发生几乎可以忽略不计的波动,然后在某一时刻电流归0且不发生循环往复的大幅度波动。在电流卡片诊断时应首先观察泵是否停机,即在电流卡片上显示出电流是否达到过0值;如果达到过这种状态则推测其可能原因是气锁停机、固体颗粒导致的停机、地层供液不足、过载停机或频繁启停。其次分析电流是否出现频繁循环,即在电流卡片中表现出0值与非0值之间的频繁大幅度波动,如果没有出现频繁循环,则将范围缩小到固体颗粒导致的停机与过载停机两种状况。最后分析在出现停机即电流归0之前,是否发生过相对较小范围电流的波动,如果没有出现电流波动则可推断为电泵过载停机。
-
传统的电流卡片诊断是API于1982年提出的电潜泵故障分类方法。当油井出现问题时,操作人员凭借个人经验对电流卡片进行人工解释,以说明电潜泵的工作状态。其判断流程决定了这种人工识别方法存在其固有的缺陷,即需要经验丰富的现场操作人员的人工识别,这种判别方法一方面需要在发生故障明显影响到电流卡片中的电流范围时才会被操作人员察觉到,即在故障早期可能难以被察觉;另一方面对于故障类型的判断也会因操作人员而异,引入了不可避免的人为误差[3]。
-
电潜泵的电流卡片诊断方法本身是一个经典的电泵工况诊断方法,但其存在的缺点也显而易见,基于对其缺点的分析,提出了以下工况诊断方法的优化目标,即:消除人为误差,提高准确性;通过自动化的监控与数据采集系统实现实时诊断,提高诊断效率;通过油田现场使用,与经验丰富的油田操作人员的判断相对比,验证该方法的可行性和优越性。
1.1. 电泵井生产受阻的原因分析
1.2. 电流卡片分类依据
1.3. 传统电流卡片诊断的缺点
1.4. 电流卡片诊断方法的优化改进目标
-
人工神经网络是一种模仿动物神经网络行为,进行分布式信息处理的算法数学模型。而BP神经网络是一种按照误差逆向传播算法(BP算法)训练的多层前馈神经网络,是目前应用最广泛的神经网络。
BP神经网络是一种非线性动力学系统,解决了多层神经网络隐含层连接权学习问题,增强了网络的分类和识别能力,对于研究对象的输入和系统输出之间存在非线性关系的函数时尤其适用。控制对象的输入与输出之间不存在明显的线性相关关系时,可以利用神经网络具有逼近非线性函数的能力来模拟y=g(u),尽管其形式未知,但通过对系统的实际输出与期望输出之间使用合适的激励函数的方法,可以调节神经网络中的连接权重,即让神经网络进行学习,学习过程中其方差会不断减少,直至趋近于0,即神经网络实现直接控制的基本思想。
-
神经网络是一种分层型网络,由输入层、隐含层和输出层组成。神经网络的训练过程如下:数据输入到输入层中,经过隐含层的sigmod函数变换,传递到输出层,在输出层的神经元中可采用线性变换函数,正向神经网络经过一次传递之后到达输出层中的结果,经过反馈式调节,反向传入隐含层和输入层,通过激励函数调节其隐含层节点中的权重系数,之后再按照正向传递过程到达输出层,经过反馈式神经网络的权重调节,其相对于正向传播式神经网络精度更高,更加可靠。即神经网络包括了信号的前向传播和误差的反向传播,使得误差沿梯度方向下降。经过反复训练与学习,确定最小误差对应的网络参数时,训练截止。神经网络的结构以及训练学习流程图如图2所示。
-
BP神经网络无论在网络理论还是性能方面都已经比较成熟,具有很强的非线性映射能力和柔性的网络结构。由于BP神经网络的结构可根据模型使用者的需要自行调整,通过调节模型中隐含层的层数和单层的节点个数,能够使得神经网络的学习速度和学习精度之间达到一个理想的平衡点。基于BP神经网络的上述优点,其主要适用于函数逼近、模式识别、分类问题与数据压缩等方面。
2.1. 神经网络结构与训练学习流程分析
2.2. BP神经网络的优点及主要应用
-
电潜泵的电流与工况之间的关系是典型的非线性关系,同一类电流卡片之间存在较强的特征性,电流卡片的快速准确识别是电潜泵井实时工况诊断的基础。而恰好BP神经网络系统擅长解决非线性问题,其可以利用于模式识别与分类问题中,可通过调节神经网络的模型结构实现预期的学习精度与学习速度,模型建立完成后可以实现实时的判别与输出。基于此分析,电流卡片所需的快速识别问题能够由BP神经网络的优势所解决,使用BP神经网络对电潜泵电流卡片进行模式识别理论可行。使用BP神经网络对电流卡片进行模式识别的步骤一般包括:建立足够多的样本库;故障特征提取; BP神经网络的搭建与训练;使用训练完成的模型对新的电流数据进行模式识别。
-
进行BP神经网络训练的基础是大量的样本数据,就BP神经网络对电流卡片进行模式识别的案例而言,其需要大量的标记为特定故障类型的电流卡片,常见的电流卡片可以识别的故障类型包括:气体影响、气锁、含砂、砂卡、供液不足、过载停泵、频繁启停、原油乳化、电流波动与正常工况等类型。这些电流卡片的来源一般是行业积累的经验、油田现场收集、模拟软件生成[2]。
行业积累的经验是指经验丰富的工程师根据其工作经验,对发生某种特定工况时的电流卡片进行定性描述,根据其描述的电流卡片特征状况量化为具体的电流卡片。油田现场收集是指对于油田现场实际发生某种工况后,经检泵维修给出工况诊断的结论后,根据时间向前推演,将故障发生前一段时间内的电流情况标记为该种工况即将发生的样本。模拟软件生成是指使用数值模拟软件,将泵发生某种状态时的特征状况作为软件的输入条件,将在这种状况下的电流波动情况反映为电流卡片,并将其作为该种工况下的样本参与后续的神经网络训练。
-
电流特征值是用于表征某一种特定工况情况下的标志性属性的数值,其选取标准是特征值必须能够反映某一工况下的电流卡片区别于其他工况的特征状态。典型工况下的电流卡片如图3所示[6]。
由于所取得的样本中,电机可能存在不同的额定电流,对于不同的额定电流的电机可能发生同种故障,需要对不同额定电流的电机的中的电流进行归一化处理。以额定电流为标准,将实时电流进行归一化处理。电流的归一化方法为
分析不同电流卡片的特征可以看出,能够反映电流情况和电流波动情况的参数有很多。将归一化的电流值进行分析,得到单张电流卡片中非0电流的电流平均值、电流波动幅度总和、单次电流波动最大值、单次电流波动最大值的“孤峰度”、电流非0时间内的总电流波动值与电流平均值的比值、电流为0的时间数、电流非0的时间数,定义如下。
(1)特征值1:单张电流卡片中非0电流的电流平均值。电流值归一化后,电流卡片记录的数值都是[0,1]上的数值,单张电流卡片非0电流的电流平均值即为所有归一化的电流值的平均值,相当于电流卡片围成的封闭图形的归一化面积,表示为
式中,Ini为实时电流的归一化电流;Iai为实时电流,A;Ir为额定电流,A。
(2)特征值2:电流波动幅度总和。电流波动值是使用当前时间点下的归一化电流值与前一个时间点的归一化电流值之间相减得到结果的绝对值,相当于电流卡片围成的封闭图形的周长,表示为
式中,Ifi为在i点处的电流波动情况,反映当前归一化电流值与上一时间点的归一化电流值之间的差值;Cn为电流卡片中围成的封闭图形的归一化周长。
(3)特征值3:单次电流波动最大值。单次电流波动最大值是指电流波动值中数值最大的那一个。在电流卡片中一般显示为刚刚启动或者刚刚停泵时的2种情况。启动与停泵过程中都是从一种电流区间波动到另一种电流区间,区别在于这个单次电流波动最大值的前后哪个区域中的电流值更低。泵启动时电流是从0值上升到峰值或接近峰值,而泵停机时电流从峰值或接近峰值降低为0。即通过判断单次电流波动最大值与电流最小值出现的先后顺序,可以判断泵启停状态。当先有电流最小值然后有最大电流波动值时,即为泵启动。当先有最大电流波动值然后有电流最小值时,即为泵停机状态。
式中,Ifmax为归一化电流波动值的最大值。
(4)单次电流波动最大值处的电流“孤峰度”。“尖峰状”指形成的电流凸起出现的快且消失的快,持续时间很短。“梯台状”指电流出现突变之后很长一段时间内维持在后一种状态下不再大幅波动,形成一个梯台形状的电流状态。电流的“孤峰度”反映了电流最大波动值系列的持续时间。
电流波动最大值处与周围临近电流波动值的最小值和最大值之间的差值能反映电流波动的孤立情况。根据电流卡片中的电流数据密度,单次电流波动如果持续时间在6 min以内,则在图中只会显示出1个点的峰值,呈现出“尖峰状”,如果持续时间大于6 min,则会出现“梯台状”,因此选取电流峰值和前后各3个点共7个点,持续时间36 min的数据,来判断电流波动数据是否呈现相应的状态。
式中,Ta为电流波动最大值的持续总时间,min;Tfmax为电流波动最大值的持续时间,min;Ifmax为电流波动最大值;Ibefore为电流波动数据峰值之前3个点的数据;Iafter为电流波动数据峰值之后3个点的数据;∆I1,∆I2,∆I3,∆I4分别为电流波动数据的峰值与邻近电流波动值的差值,即特征值4、特征值5、特征值6、特征值7。
(5)特征值8:电流非0时间内单位电流强度下的电流波动强度。电流的波动强度总和与电流平均值的比值,在电流卡片中反映为电流卡片形成的封闭图形的周长与面积比值。
式中,R为电流非0时间内单位电流强度下的电流波动强度。
(6)电流0值与非0值的持续时间。单张电流卡片中的电流0值和电流非0值的持续时间是不同的,但是同一类工况中的电流卡片的电流0值和非0值的持续时间的比值存在一定规律性,因而电流0值与非0值各自的持续时间也可以作为工况的判别条件[1]。
式中,Ti0为归一化电流为0的总持续时间,min,即特征值9;Tin为归一化电流不为0的总持续时间,min,即特征值10。
根据以上提出的参数处理方法将每张电流卡片提取出的特征参数汇总,特征参数矩阵和对应的工况参数矩阵中的部分示例如表1和表2。表1中的电流特征参数矩阵可作为BP神经网络训练的输入矩阵,表2中的工况参数矩阵可作为BP神经网络训练的结果矩阵,将输入矩阵与结果矩阵共同代入BP神经网络,经过训练即可获得BP神经网络的权重矩阵。
样本编号 特征值1 特征值2 特征值3 特征值4 特征值5 特征值6 特征值7 特征值8 特征值9 特征值10 1 0.550 1 10.225 0.987 8 0 0.000 2 0.987 8 0.987 5 18.58 100 141 2 0.151 1 14.045 1 0 0.019 3 1 0.980 6 92.901 203 39 3 0.678 6 12.599 0.978 5 0 0.003 3 0.978 5 0.975 18.564 60 181 4 0.215 3 1.477 6 1 0.004 9 0 0.995 1 6.860 1 182 60 5 0.164 7 17 1 0 0.053 3 1 0.946 6 103.15 196 46 6 0.983 3 2.353 5 0.031 4 0.004 5 0.000 9 0.026 9 0.030 5 2.393 3 0 242 7 0.203 3 1.673 8 1 0.007 0 0.992 9 1 8.232 9 182 60 Table 1. Current characteristic parameter matrix example extracted from some ammeter cards
样本编号 工况参数1 工况参数2 工况参数3 工况参数4 1 1 0 0 0 2 0 1 0 0 3 1 0 0 0 4 0 0 0 1 5 0 1 0 0 6 0 0 1 0 7 0 0 0 1 Table 2. Working condition parameter matrix example corresponding to the ammeter cards listed in Table 1
-
根据模型的精度和速度要求,建立3层BP神经网络,将提取的特征参数作为输入层,将与之对应的故障指示作为输出层,建立神经网络模型进行训练。标准的电流卡片数据不能用于直接训练预测,需要将1张6 min为1个点(1 440 min共241个点)的电流卡片处理成符合条件的神经网络输入数据,根据上述方法共提取出了10种不同特征数据,因此,BP神经网络的输入层节点数即为10;该神经网络模型可用于在4种工况中作出判断,因此输出层节点数为4;中间层节点数以及学习步数的确定需结合实际数据多次运行模型,尝试尽量选取时间步较短且精度较高的神经网络模型结构。
神经网络训练时所需的时间长度与神经网络结构中的隐含层节点数相关,也与训练时的迭代步数相关,将搭建好的神经网络模型通过调节迭代步数与隐含层节点数,观察程序运行出结果的时间,即可获知学习次数、学习难度与学习时间的关系。根据学习曲线的收敛情况确定模型的训练完成度,通过测试集数据验证结果,来确定模型的准确度。由于BP神经网络自身算法特点,在训练过程中可能会陷入局部最优值,重新进行训练即可,符合要求时训练结束。通过多次修改隐层节点数和迭代步数运行程序,观察程序运行时间和结果精度,综合考虑两者的因素,即可确定合适的隐层节点数和迭代步数。
-
根据上述步骤建立完成的神经网络模型经过测试数据集的数据测试,得到测试数据的混淆矩阵,当测试数据的混淆矩阵的误差达到足够小时,认为模型的准确度达到要求,即该训练完成的模型是一个可用的模型,接下来就可以使用该模型对数据进行新的预测。训练模型的一种混淆矩阵形式如表3所示。
项目 预测工况
参数1预测工况
参数2预测工况
参数3预测工况
参数4实际工况参数1 1 0 0 0 实际工况参数2 0 1 0 0 实际工况参数3 0.666 7 0.333 3 0 0 实际工况参数4 0 0 0 1 Table 3. Confusion matrix example of one kind of test data
混淆矩阵的评判方法有很多,评价指标包括精度、召回率等多种数学概念,但总体的评价指标是使得主对角线上的元素越接近1,其他元素越接近0则说明模型的测试结果与实际标记结果越接近,模型的训练结果越好。即预测的某个工况参数与实际工况参数之间的相关程度越高,与其他工况参数的相关程度越低,训练的结果越好。
由上述分析,当工况测试数据的混淆矩阵主对角线上元素全部为1时,说明神经网络对于不同工况参数进行了完全正确的分类。非主对角线上元素数值越大,即误差越大,分类越差。求取非主对角线上元素的均方差作为误差率进行误差分析。
式中,λij为矩阵中的元素;ε为均方差;N为测试样本数。
3.1. 样本库的建立
3.2. 故障特征值提取
3.3. BP神经网络的搭建与训练
3.4. BP神经网络模型的使用与预测
-
根据上述方法从样本库中提取了泵抽空、频繁短周期运行、过载停泵和正常运行四种工况下的电流卡片进行数据预处理,整理输入参数和其对应的工况输出参数,整理了输入数据44井次,用于搭建BP神经网络模型进行学习训练,并根据其训练结果对一些提前分离出来的经过数据预处理但未参与训练的、去除了故障标记的数据进行故障预测,与其本身标记的故障类型进行比较,验证模型准确度,此处进行准确度评价时使用了10条未经训练的数据。此处设置统一的学习步数300步,分别选取11~18为隐含层节点数值进行尝试,以取得误差率较低的情况,误差率随中间隐含层节点个数的变化情况如图4所示,学习时间随隐含层节点个数的变化如图5所示。
从图4可以得知,测试误差随中间层节点个数会发生变化,在11~18范围内,隐含层节点数设置为15时取得较低的测试误差。从图5可知,测试时间随隐含层节点数的变化的非线性程度在节点数更多时候更加明显,综合考虑确定隐含层节点个数为15。确定了隐含层节点数后,分别修改学习步数,从200~3 000不等间距选取学习步数以进行测试。测试误差率与随学习步数变化的关系如图6所示,训练所需时间随学习步数的变化如图7所示。
从图6可以得知,在迭代步数较少时,测试误差会随迭代步数的增加而发生大幅度下降,迭代步数较多时,测试误差变化不大。从图7可以得知,由于程序计算时的时间总数与迭代步数之间几乎呈线性关系,即认为程序计算难度与迭代步数之间呈线性关系。综合两者考虑,选取时间步为300步即可满足快速且准确的模式识别。
综合前文分析,在隐含层节点数选取为15时,其误差率较低。而时间步数选取为300时其测试精度已经达到相当水平,无需进一步增加学习步数,以避免不必要的运行资源的浪费。因而对于整个网络模型确定为选取时间步为300步,隐层节点15个,即可满足精度和算法复杂度两方面的要求。对已获得的测试数据进行训练后得到的混淆矩阵见表4。
项目 预测工况
参数1预测工况
参数2预测工况
参数3预测工况
参数4实际工况参数1 1 0 0 0 实际工况参数2 0 1 0 0 实际工况参数3 0 0 1 0 实际工况参数4 0 0 0 1 Table 4. Confusion matrix of test data
训练完成后,利用预先分离出来的各种工况下的多条数据,去除故障类型指示后导入模型进行测试,将其模型预测值与实际故障指示值进行对比,得到预测结果矩阵见表5。表中每1行代表1条需要进行预测的输入数据,前4列中只有1列中为1,其余均为0,表示对于这条数据而言,其标记的工况是该参数为1而其他参数为0这种参数序列对应的工况情况。当后4列中的数据序列与前4列中的数据序列对应接近时,认为模型预测成功。当预测结果与实际结果出现明显分离时,认为模型预测出现误差。
样本
编号实际工况
参数1实际工况
参数2实际工况
参数3实际工况
参数4预测工况
参数1预测工况
参数2预测工况
参数3预测工况
参数41 0 0 0 1 −0.055 7 −0.012 2 −0.031 6 1.034 2 2 0 1 0 0 −0.224 9 1.268 5 −0.000 7 −0.043 3 3 1 0 0 0 0.992 2 −0.020 2 −0.016 0 0.015 9 4 0 0 0 1 −0.012 2 −0.070 3 −0.095 0 0.982 3 5 1 0 0 0 0.834 0 0.219 1 −0.035 4 −0.009 0 6 1 0 0 0 1.124 6 −0.084 5 0.054 5 −0.053 9 7 0 0 0 1 −0.001 0 −0.077 5 −0.101 7 0.974 1 8 1 0 0 0 0.954 1 0.023 4 −0.080 0 0.012 9 9 0 0 1 0 −0.130 6 0.016 3 1.047 9 0.044 4 10 0 0 1 0 −0.079 7 0.008 5 1.047 1 0.023 5 Table 5. Comparison between expected result and prediction result
经过对上述模型及实际数据与输出数据的对比验证,模型对10条工况数据均实现了正确识别,其识别的均方根误差0.0747,即预测准确度达到92.53%,符合合理的要求范围,认为该BP神经网络模型对电泵工况诊断达到了预期效果。
-
(1)电流卡片与工况之间是一种非线性的相关关系,BP神经网络对于非线性问题的模式识别、分类问题具有较强的适用性。BP神经网络的优点与解决电流卡片识别中面临的问题有较强的对应性,用BP神经网络对电流卡片进行模式识别可行。
(2)利用搜集的足够多的样本进行数据预处理,并建立BP神经网络,训练后发现其学习曲线收敛快,预测质量高,准确度好,符合合理误差范围要求。
(3)基于神经网络的电流卡片模式识别模型建立完成后,一旦电流卡片的数据传入,即可实现快速的模式识别,在数据的传入速度能够得到保障的条件下可以实现电潜泵工况的实时诊断,将成为建成智慧油田的重要组成部分。