基于物联网的油田井口数据检测传输方法研究

2022-12-26 12:37秦宏伟党瑞荣
仪表技术与传感器 2022年11期
关键词:字段原始数据三相

秦宏伟,党瑞荣,党 博,曹 峰

(西安石油大学陕西省油气井测控技术重点实验室,陕西西安 710065)

0 引言

随着物联网技术的快速发展,云服务器实时存储数据成为网络环境的核心部件[1-2],此技术在数字油田的井口多相流检测中成为研究重点,云服务器技术广泛应用于智能油田。

物联网技术在数字化油田的应用已经成为趋势,国内大多数油田井况的实时检测,数据采集工作都只是注重现场采集和本地存储,实时数据采集系统[3]的匮乏,没有成熟的三相流检测仪器与云服务器数据存储系统相结合,现有的三相流检测仪器与物联网技术是独立的,设备产生的相关数据只能存在本地,而且存储量少,数据收集不全面[4]。文中研究井口三相流相含量检测系统,以达到对数据进行实时采集、集中处理、实时发送、规范存储[5]、预测未来井口流量的相关参数,方便科学的服务于油田,使其更适应信息化网络化时代发展的需要[6-7]。

在国内石油的不断开采过程中,注水井数量每年都在增加。不断的注水导致生产井的含水率偏高,总产量较低,因此本文采用热式流量计的恒温差法[8]进行低产量测量。研发新型三相流检测仪器,将测量到的流量、原油含水率与原油含气率等重要参数通过4G网络上传云服务器,作为重要参数存入档案库,供石油工程师分析资料使用。

1 总体方案设计

油田井口三相流检测系统主要包括后台仪器组件的硬件部分、数据上传字段格式[9]的合理定义、利用TCP协议和socket编程原理完成服务器端解析程序的设计、提出新的流量检测算法和数据存入My SQL数据库[10]的方法等。设计合理的数据查询功能,供用户随时查看历史数据,为进一步优化油井注水配比、油井定期维护等工作提供依据。

图1为井口三相流检测系统总体方案设计框图,井口三相流检测系统主要由后台仪器组件和云端服务器组件组成,中间通过无线传输层连接。后台仪器组件包括一系列测量电路,主要由传感器部分、前级放大电路、信号调理电路、数据采集电路、ARM电路和LoRa无线传输模块[11],以及图1中未画出的电源部分组成。后台仪器组件主要将管线中流体各参数的原始数据提取,由无线LoRa传输模块与网关组成后台无线发送节点,通过4G网络上传云端服务器,云端服务器需要解析由后台上传的原始数据,在得到原始数据之后,在云端服务器构建模型,算出流量、温度、压力和含水率等重要参数。

图1 数据检测系统总体方案设计

云端服务器的数据解析后,需要建立测量模型、优化模型,精准计算所测参数后保存到My SQL数据库供客户端需求,数据库的整理、维护至关重要,可以为后续提取资料。

2 原始数据上传格式设计

从目前的油田需求角度考虑,并结合实际测量的指标,主要定义的字段包括仪器编号、实时温度、实时压力、瞬时流速、瞬时流量、累计流量、瞬时含水率、全天含水率和瞬时含气率等。

实时温度可以通过温度传感器直接测量,温度与热式探头上的电压有唯一单调的函数关系,得知热式探头的电压值即可计算出实时温度;同理,实时压力也可通过压力传感器测出。

瞬时流速的计算,是通过温度传感器的传热效应,对流换热原理[12],通过油管中流体流速与热式探头阻值变化的唯一单调的函数关系,最后确定流速,也可通过式(1)计算瞬时体积流量,式(2)可计算瞬时质量流量,通过累加可确定某一时间段内的累计流量。

Qv=S·v

(1)

Qm=S·v·ρ

(2)

式中:S为管道截面积;v为瞬时流速;ρ为流体的混合密度。

含水率检测是将接触式射频天线插入管线中,通过电磁辐射原理,利用电磁波在损耗媒质中的传输理论,通过外加振荡器赋予射频天线时谐的电流激励,此时天线被激发的电磁场特性随着均匀油水比例的不同而变化[13]。根据对其电场特性的分析,标定出含水率与电场幅度唯一且单调的函数关系,即可测量实际原油瞬时含水率,全天含水率可以通过瞬时含水率叠加得知。

含气率的检测是利用压电陶瓷片的逆压电效应[14],超声波的发射换能器A通过发射电路激励后发射信号,此信号通过管道流体,到达换能器B时可以测量此时的信号幅度以及A到B信号传输时间,由于含气率不同,发射信号的幅度衰减程度也不同,可以通过信号幅度的衰减程度与含气率成唯一函数关系确定实际含气率。还可以通过硬件芯片捕获A到B的时间Δt,实际含气率与Δt有唯一单调的函数关系,可以确定实际含气率。

从图2数据上传字段定义格式可以看出,根据常规定义方法,字段1和字段11为数据包头和校验字节,以16进制表示。字段2为仪器编号,多台仪器的编号都是正整数,所以采用16进制转换10进制的方式命名,字段3~字段10是需要测量的物理量,所以采用IEEE754标准(4字节)的字节数据和浮点数之间的转化方式表示,可以精确表示实际物理量。

图2 数据上传格式字段定义格式

图3 32 bit浮点数规范化表示方法

3 云服务器端解析程序设计

服务器解析程序设计需要设定解析规则,本次设计采用IEEE754标准下的16进制和10进制浮点数的相互转换方法提取原始数据。由于仪器编号字段采用简单的16进制转换为10进制的方式,这里不再赘述。通过字段2的实时温度分析IEEE754标准下的16进制和10进制浮点数解析规则。

例如,实时温度的字节流3F 8C CC CD表示为如图3所示的形式,4字节数据流有32位,其中最高位为符号位,高8位为阶码,低位为尾数,即为小数。在精度要求的情况下,尾数的死区问题可以忽略不计。

一个规范化的32位浮点数x的真值可用式(3)表示。

x=(-1)S×(1+M)×2E-127

(3)

此时的符号位为31 bit且值为0表示为真,用字母S表示;高8位30 bit~23 bit用字母E表示,此时的E表示10进制为127;低23位为22 bit~0 bit用M表示,M表示小数为0.000 110 011 001 100 110 1,此时小数位的10进制形式可表示为0.100 000 023 841 857 91;最后把S,M,E带入式(3)中表示为

x=(-1)0×(1+0.100 000 023 841 857 91)×2(127-127)=1.1

(4)

从式(4)中可以看出,3F 8C CC CD在IEEE 754标准下的16进制和10进制浮点数的相互转换方法表示下的形式为1.1,说明此时的解析是成功的,也符合设计需求。

由于后台仪器的硬件CPU是用C/C++语言在ARM平台下编写的,但是服务器解析程序是用Java语言编写,因此这里的C/C++与Java互通是此次解析的关键。后端仪器将原始数据传给云服务器时,会将类似于0x400CCCCD这样的数据流上传,由于服务器的解析程序是用Java,Java采取big endian方式[15]存储数据,这时会将接受到的数据流解析为0xCDCC0C40,因此C/C++程序与Java互通之前必须进行字节序的转换,确保数据传输的正确性。在idea环境中主要编写TcpClient函数与TcpServer函数,将解析代码写入相应的函数中时,即可测试数据传输的正误。

图4是通过TCP串口转网口调试工具测试的结果,当虚拟串口发送图2所示的字段时,服务器端接受到相应的float型数字,说明解析程序已经成功。

图4 服务器解析程序成功获取

4 模型建立及解析数据存入数据库的研究

云服务器解析到后台仪器采集的原始数据后,需要进行建模分析,温度和压力都存在唯一单调的函数关系,只需通过函数关系式即可得出结果。含水率与含气率是通过现场标定得出函数关系,但是总流量的测量不仅需要实验室提前标定,还要通过相应的模型建立,模型的优化会提高测量的精度,最后将高精度的测量值存入数据库。

4.1 流量建模算法提出

某油田通过长期的现场标定以及现场取样,提取真实的实际参考值去验证此次模型的正误。图5为1 d检测流量的原始物理量变化曲线,可以看出黑色密集曲线为采样的原始数据,采用滑动平均滤波算法滤波后,白色曲线为滤波后的多项式拟合曲线。24 h每4.5 s采样1个点,共计19 200个采样点。图5中采样点数为4 000时,出现空抽时间段,原始数据出现断崖式下降,通过空抽的数据即可判断空抽时间段,但是流体流量的计算只在实抽的情况下可以计算,因此必须考虑空抽时间段,防止空抽对流量计算的误判,导致测量结果的错误。

图5 有空抽时流量原始数据变化曲线

图6为实抽时的原始数据变化曲线,需要根据原始数据变化情况去判断流量的起伏变化。由图5所示判断出是否有空抽时间后,即可计算流量的大小。例如在图6所示的情况下计算流量大小,如果连续一段时间内无空抽,此时即可建立模型计算流量,初次模型是根据拟合曲线与坐标轴所围成的面积求积分来判断流量的大小。模型公式可用式(5)表示。

(5)

式中:H为拟合曲线与坐标轴所围面积;n为采样时间。

图6 实抽时的流量起伏变化原始数据曲线

式(5)中,右边第1项表示物理量电压值变化起伏过程与坐标轴围成的面积,第2项表示空抽部分电压值与坐标轴所围成的面积。当采样时间间隔较大时,式(5)也可以表示成离散形式,连续的时间转换成离散的采样点数,同理可求出H值。

现场标定的流量Q与面积H存在唯一单调的函数关系,通过函数关系即可求出流体总流量,由于恒温差法测流量的范围有限,当流量到达极致时,面积H变化比较缓慢,曲线不再是线性关系,所以经过大量数据拟合,得出Q与H关系为

Q=aH2+bH+c

(6)

式中a、b、c都是比例系数。

当连续时间段内没有空抽时间点时,结合式(5)与式(6),可以得出流量Q与采样时间的关系为

(7)

4.2 导出物理量数据存入数据库

三相流检测数据存入开源My SQL数据库,数据库中的数据需要使用Navicat for My SQL访问。在存入数据前,需要在Navicat中建立自身需要的My SQL数据库,用自己的服务器IP、端口号、用户名和密码连接即可匹配成功。My SQL数据库中新建独立“表”,表可以实现数据共享、降低冗余度、加强数据独立性、实现数据统一管理。表中定义如图2所示的字段,每个字段也要选择匹配的类型、字长等参数。图7为数据库创建成功界面显示,最后只需将经过模型计算的导出物理量存入库中即可。

图7 数据库创建成功界面

经过前期的一系列模型数据处理后,需要将定义的字段数据存入数据库,作为历史资料保存并提供给客户端。在idea平台下,使用Java编写程序最后将数据存入My SQL数据库。

My SQL数据库存入成功的界面如图8所示,此时第1列是累计流量,后2列是瞬时含水率与小时含水率。经过测试10 d的数据,每天同一时间上传1次,服务器能够成功的接受并且将导出物理量数据成功存入数据库,说明此次流程已经打通,数据存储问题已经解决。

图8 经过模型之后数据成功存入数据库界面

为油田维护人员提供查询功能,可以在指定时间段查询某一时间段内的数据,方便对油井井况的管理。图9所示为一个查询数据的My SQL示例代码,其中meterdatastorage为独立表的名称,后面紧跟的是字段。between A and B是指具体的查询时间段,A为起始时间,B为结束时间。在Navicat平台下随时随地查询数据,达到设计的目标。从图9中可以明显看出某一天查询成功,显示“OK”与查询时间,说明查询数据设计合理。

图9 指定时间段数据查询成功界面

5 结论

通过前期的分析可知,本文实现了原始数据上传格式设计、服务器端解析程序设计和模型建立,将管道流体相含量的占比数据、其他相关参数存入到数据库。在油气水三相流检测方面,将井口三相流测量数据上传服务器,解决了油田井口数据匮乏的问题。

油田井口三相流检测系统已在某油田投入使用,云服务器运行数据库时,油田工程师可以随时调取数据分析油井状况,并预测未来的油气水的分布状况,确定是否需要继续注水,确定是否有继续开采的价值,尤其在三相流相含量检测方面具有应用价值。

猜你喜欢
字段原始数据三相
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
图书馆中文图书编目外包数据质量控制分析
受特定变化趋势限制的传感器数据处理方法研究
笼型三相异步电动机的起动和调速解析
基于Motor-CAD三相异步感应电机仿真计算分析
三相异步电动机保护电路在停车器控制系统中的应用
三相异步电动机正反转的控制设计
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述