面向复杂工况模拟与识别的有杆抽油系统仿真平台开发
2020-09-26邓晓刚杨明辉朱青青
邓晓刚,杨明辉,孙 良,朱青青
(1. 中国石油大学(华东)控制科学与工程学院,山东 青岛 266580;2. 青岛黄海学院,山东 青岛 266427)
有杆抽油系统是石油生产过程中的重要装置,是石油类高校中石油工程、自动化、电气工程及自动化等多个专业研究的典型工艺对象[1]。然而,由于该类系统工艺复杂,开发相关实验装置不但成本较高,而且难以模拟复杂的井下运行工况,无法满足实验教学需求。
近些年来,虚拟仿真实验系统的开发逐渐成为国内各类高校实验室建设和教学改革的热点,大批虚拟仿真实验中心的建立在丰富实验教学资源、提高学生实践能力方面发挥了重要作用[2]。目前的虚拟仿真资源建设基本上可以分为两种模式:虚拟为主型、虚实结合型。虚拟为主型侧重于各类复杂工业系统和装置的纯虚拟实现,应用虚拟现实、可视化交互等技术实现虚拟仿真,帮助学生开展过程漫游,这类系统无须配套实验装置,多用于学生实习、实训[3-4]。虚实结合型立足于现有实际实验装置,进一步融合虚拟仿真技术实现常规实验装置无法实现的复杂功能,主要侧重于学生课程实验、创新性项目研究等。本文所研究的系统属于后一种模式[5-6]。
笔者所在高校的油气生产自动化实验室建有8套实验装置,可以满足学生在正常工况模拟和系统闭环控制方面的基本实验需求。但是,目前仍然存在装置数量有限、难以模拟复杂工况,尤其是井下故障工况的问题。针对该问题,本文提出一种基于机理建模的有杆抽油系统虚拟仿真实验平台开发方法。该方法通过工艺机理分析建立有杆抽油系统的数学模型,实现对多种复杂井下故障工况的仿真,并利用 MATLAB和LabVIEW混合编程方式开发相应的虚拟实验平台,在该平台上还进一步开发了工况分类模块,为学生开展创新性实验研究提供基本条件。
1 有杆抽油系统机理建模、工况模拟与工况识别
1.1 机理建模
有杆抽油系统中最常见的游梁式装置包括地面设备和井下设备两个子系统,系统整体结构如图1所示。地面的电动机通过皮带和减速器带动曲柄做匀速圆周运动,利用四连杆机构将曲柄的旋转运动转化为游梁的上下往复运动,带动井下的抽油泵柱塞运动,从而不断将井中的原油抽汲到地面。
建立有杆抽油系统的动态数学模型有助于对抽油机井的运动规律进行分析[7-9]。对地面系统建模时,主要是建立四连杆结构的运行模型。根据机械系统的动力学理论,地面系统的运动规律最终可以简化为一个关于曲柄的动力学模型,其表达式为:
图1 有杆抽油系统结构示意图
其中,Je表示曲柄上的等效转动惯量,Med表示曲柄上的等效驱动力矩,Mef表示曲柄上的等效阻力矩,θ表示曲柄转角。
抽油杆柱是井下系统的主要部件,建立抽油杆柱的动力学模型是整个井下单元建模的关键。抽油杆柱的数学模型为:
其中,u表示抽油杆的截面x在时间t的位移,c为声波传递速度,v为阻尼系数。
其中,Er为抽油杆材料的弹性模量,ρr为抽油杆材料密度,Ar为抽油杆横截面积,ve为单位长度抽油杆黏滞阻尼因子。本文采用有限差分法对上述模型进行求解[9]。
1.2 复杂工况模拟
有杆抽油系统常见的故障类型包括供液不足、油管漏失气影响、抽油杆断脱等。这些故障一旦发生,将降低采油效率、损坏采油设备,甚至造成严重的油井生产事故。以供液不足工况为例,该工况发生时抽吸过程中井下液体不能充满泵筒,当下冲程开始时,抽油杆负荷不是立即减少,而是运动一段时间后再减少,最终导致卸载时间延迟,形成刀把状示功图。整个过程可以用如下方程大致描述:
其中, W(t) 表示实时的负荷,[t1,t2]表示下冲程起始段中负荷基本保持不变的时间段,W(t1) 表示起始负荷,W(t0) 表示正常工况下的负荷。
再以泵上碰工况为例进行分析。当上冲程结束前,柱塞滑杆并帽和泵头相碰撞,导致柱塞液体负荷突然增加,在示功图上形成右上角的尖峰负荷,其对应的简要数学描述如下:
其中, [t3,t4]表示上冲程末段时间区,Wf表示在该时间段内增加的负荷。
1.3 工况识别算法
有杆抽油系统的工况实时识别对系统运行状态的安全监控和效益提升具有重要意义。实际应用中,研究人员多采用基于数据挖掘和分析的工况识别方法,涉及数据特征分析、模式识别、人工智能等多个领域的知识。
本文讨论一种基于极限学习机(ELM)的有杆抽油系统工况识别方法。极限学习机是一种近些年来提出的人工神经网络方法[10-11]。该类网络具有单隐层前馈结构,相比于传统的神经网络,具有训练速度快、泛化能力强的优势。
式中, g (⋅)表示隐含层的激活函数,M表示隐含层神经元个数,ωi和bi分别表示第i个隐含层节点的输入权值和偏置,βi表示第i个隐含层节点输出权值向量,tj表示标签yj的估计值。
对于ELM网络而言,ωi、bi通过随机初始化设置,优化目标在于求解βi。整个优化过程可以通过最小化如下代价函数来完成:
求解式(8)可以得到网络的输出权值,表达式如下:
2 基于MATLAB和LabVIEW混合编程的虚拟仿真平台
2.1 整体框架设计思路
本文采用MATLAB和LabVIEW混合编程的方式来开发有杆抽油系统虚拟仿真平台。MATLAB是Mathworks公司出品的科学计算软件[12],在系统建模、矩阵运算、算法测试等方面具有独特的优势。MATLAB软件的缺点在于界面编程能力较弱,人机交互系统设计相对繁琐,不利于虚拟仿真平台界面的开发。LabVIEW软件作为一款图形化编程软件[13],使用图形化编程语言编写程序,提供了很多外观与传统仪器类似的控件,能够帮助用户快速开发人机交互界面。因此,充分融合MATLAB和LabVIEW软件各自的优势,能够为开发虚拟仿真系统提供强有力的技术支撑。
基于MATLAB和LabVIEW混合编程的虚拟仿真平台总体框架如图2所示,包括前台界面开发和后台程序设计。前台界面开发基于 LabVIEW 软件完成,主要负责显示工艺图形、配置装置参数、显示运行曲线、完成仿真设置等工作;后台程序设计主要在MATLAB软件中完成,包括系统机理模型的仿真编程、故障工况现象测试、工况识别算法设计等。后台程序编制完成后,首先在MATLAB中进行充分测试,测试完成后转移至LABVIEW MathScript节点中,通过MathScript节点供LabVIEW前面板调用。
图2 虚拟仿真系统结构框图
2.2 前台人机交互界面开发
前台人机交互界面的主要作用是为学生提供直观的系统结构显示,同时给出参数输入接口供学生测试不同参数对运行结果的影响。有杆抽油系统仿真平台的前台人机交互界面包括4个单元:参数设置单元、工艺图示单元、实时曲线单元、运行工况识别单元。参数设置单元包括仿真参数设置、机理参数设置、运行参数显示3个部分,前两者使用数值输入控件,后者使用数值显示控件。仿真参数设置单元涉及两个参数:“工况类型参数”用于设置不同运行模态;“仿真速度”可以改变系统运行速度,默认值为 1,对应真实系统的运行速度。机理参数设置单元包括冲程、泵径、冲次、阻尼系数等8个参数,均为数值输入控件。实时曲线单元显示系统的实时运行参数,主要是载荷和位移,均采用Waveform Chart控件完成。考虑到工业现场实际监控多采用示功图,因此本文利用LabVIEW软件例程中的XY图演示示功图。在上述功能的基础上,本软件进一步增加了工况识别单元,该单元采用 ELM 网络算法作为工况分类方法,实时判断系统的运行状态。虽然本文仅测试了 ELM 算法,但是学生后期可以通过 MATLAB编程自行实现各种复杂模式分类算法,将其移植到Mathscript节点实现即可。设计完成后的操作界面如图3所示。
图3 虚拟仿真系统界面图
2.3 后台程序编制
本文基于MATLAB和LabVIEW混合编程构建虚拟仿真系统,因此其后台编程分为两个步骤。考虑到MATLAB开展数值编程和算法测试的方便性,首先在MATLAB软件中完成系统机理建模、故障工况分析、工况识别算法测试等工作,确保程序的正确性。然后,将MATLAB程序拷贝到LabVIEW软件的MathScript节点中(见图4),结合LabVIEW图形编程的要求连接输入输出变量,增加图形显示模块,即可完成后台程序编制。这种编程方式将大部分程序调试的工作量放在了 MATLAB软件,弱化了程序调试难度,有利于复杂算法的实现,同时提高程序的模块化水平。
图4 Mathscript节点编程示意图
2.4 运行数据的共享与发布
实验过程中有时需要采集大量的仿真数据进行离线分析和建模。为了增强虚拟仿真系统的数据存储和离线分析功能,本文基于 LabVIEW 共享变量引擎(SVE)实现仿真系统数据的发布,可以供MATLAB程序进行调用和二次开发。LabVIEW软件的共享变量引擎可以将数据发布到 LabVIEW 系统自带的 OPC Server中(默认名称为 National Instruments.Variable Engine.1)[4,14],其他软件通过访问 OPC Server即可实现对有杆抽油系统实时运行数据的采集和存储。在本文中,需要共享发布的主要变量是载荷、位移及工况实时识别结果。
3 仿真平台的应用分析
该软件编制完成后,可以为学生学习过程控制工程、模式识别、故障诊断技术、综合实践、毕业设计等课程和实践环节服务。下面简单介绍工况模拟和工况识别功能的应用情况。
3.1 仿真平台数据访问方法
有杆抽油系统虚拟仿真平台的数据经过 LabVIEW SVE已经发布为共享数据,可以在MATLAB软件中通过OPC协议进行访问。MATLAB软件的OPC工具箱提供了访问OPC服务器的基本函数,包含opcda、connect、addgroup、additem、read、write、timer等命令,能够帮助用户实现OPC服务器的定义、连接、组添加、项添加、读写、计时等功能。以OPC服务器的创建和连接为例,其M语句为:
myda = opcda('localhost', 'National Instruments.Variable Engine.1');
connect(myda);
其他相关命令的使用可以参考 MATLAB软件帮助或者相关文献[6]。
3.2 工况模拟结果
在目前的仿真平台中,预设了4种操作工况,后期可以根据需求进行二次扩展。“工况类型参数”的数值0、1、2、3分别对应正常工况、供液不足、游动阀漏失、泵上碰4种工况。为图形显示的美观性,本文将仿真数据导入到 MATLAB软件后重新绘制图形,结果如图5所示。可以看出,所设计的系统能够较好地仿真实际工业过程的运行情形。
3.3 工况识别结果
为了测试 ELM 算法在工况识别中的效果,笔者在仿真平台上按照给定顺序改变有杆抽油系统的运行状态,将系统状态按照0-1-2-3的方式循环设置,通过MATLAB软件记录工况识别系统的识别结果,如图6所示。可以看出,工况识别单元能够正确识别系统的运行状态。
图5 复杂工况模拟结果
图6 工况识别结果
4 结束语
有杆抽油系统是石油工业生产中的一类重要装置。本文针对该类装置实验室资源有限且难以模拟复杂系统故障的问题,研究了基于机理分析的仿真方法,并通过MATLAB和LabVIEW混合编程的方法实现了虚拟实验平台的开发。该仿真平台具有3个特点:(1)通过机理建模的方法模拟多种实验装置难以实现的复杂故障,本文中对供液不足、游动阀漏失、泵上碰这3类故障进行了验证分析;(2)在仿真系统中引入了工况识别单元模块,为学生开展创新性实验相关的算法研究提供了一个很好的范例,后续学生可以通过二次开发进一步拓展该模块功能;(3)仿真平台采用的MATLAB和LabVIEW混合编程的方式提供了一个虚拟仿真系统的合理框架,该框架不但能够充分利用MATLAB在算法测试方面的高效性和LabVIEW在图形编程方面的直观性,而且具有较高的开放性,为学生自主编程留下了充足空间,有助于提高学生的科研实践能力。