基于深度学习的管线泄漏仿真与测试平台

2022-11-01 01:41姜海斌陈小华
天然气与石油 2022年5期
关键词:流量管道测试

姜海斌 陈小华 李 霖 张 皓 秦 鹏

国家管网集团西南管道有限责任公司,四川 成都 610218

0 前言

过去20年,中国的石油天然气行业经历了有史以来最具规模的快速发展时期,物探、开采、集输、以及炼化业务等都实现了10倍以上的增长。长输管道也随之得到了快速的发展。到2019年底,投入运营的油气管道总长已经达到了13.5×104km[1]。为了及时发现异常情况避免管道泄漏对环境带来的危害,目前投产的原油或成品油管线普遍安装了泄漏监测系统,其中绝大部分为监测实时压力或实时流量变化的系统[2-3]。

监测实时压力变化的系统,如负压波或次声波泄漏监测软件,比监测实时流量变化的系统出现的年代较晚,是目前的主流泄漏监测方式。用户在评估或采购此类系统时面临着一些困难:首先,缺乏国家制定的出厂规范或验收标准,无法进行基于统一标准的检验和检测[4];其次,由于各条管线的自然环境差别较大,在某条管线上的测试结果未必可以在其他管线上重现。曾有管道用户尝试邀请多家供应商在同一段管线上进行放油测试,希望在相同条件下通过对比实验来发现优劣。但采用实际放油的方法具有一定的局限性:比如放油的地点通常为管线上的某个阀室,其地理位置固定不可变;再如放油的过程受人工操控阀门的影响,往往不具有可重复性;又如放油的次数受到放出油料总量的限制,必须控制在方便运输的范围内;种种因素使得每次测试的情况均不相同,测试结果的随机因素比较多,重复测试的次数偏少,导致测试结论不够可靠。因此,仅仅依赖在管线上放油的测试方法远远不能完成充分检验泄漏监测系统的任务。

在广泛调研了国内油气管道泄漏监测系统现状的基础上,设计并实现了一种用于评估该类系统软件的仿真与测试平台(以下简称平台)。平台中构建了基于深度学习的分段式管道模型,并使用实际管道中的压力与流量数据来训练模型。与此同时,根据典型的管道操作流程建立了场景模板,开发了相应的仿真指令及其解释程序。根据仿真指令,平台自动将场景模板输入管段模型,得出在未来时间内管道的响应数据并写入时间序列数据库,再以通讯协议的方式提供给被评估泄漏监测系统使用。平台可以模拟常见的管道运行状态并可以插入在任意位置、任意时间和任意泄漏量的泄漏事件。测试结果表明,仿真平台的输出与真实管道的平均绝对百分比误差不超过1%,完全可以用作评估泄漏监测软件使用。平台的建成为检验或评价长输管道泄漏监测系统提供了一种安全、高效、方便且可信的软件工具。

1 长输管道的模型

长期以来,如何用物理和数学的语言来描述长输管道的行为,是管道储运学科深入研究的课题之一。在历史发展中,首先出现的管道模型是基于解析解的模型,即所谓“白箱”式模型,目前依然是主流的管道模型,但近年来在人工智能快速发展的带动下,管道模型领域中出现了与此互补的“黑箱”式模型。

1.1 管道的“白箱”式模型

19世纪中期,达西—魏斯巴赫(Darcy-Weisbach)发表了著名的水头损失计算公式,证明了在液体管道中压力和流量之间存在着相互关联的确定性关系,为之后的学者们开拓了上百年的研究课题[5],是管道的“白箱”式模型的起源。原始的达西公式对管道行为的描述采用了解析解与经验参数相结合的方法,但在后继的研究中已经逐步进化为求解在特定初始条件下的偏微分方程组。目前,市场上占据主要份额的管道仿真计算软件如TGNET、SPS等均采用了这种“白箱”式模型,其方法均为遵循质量守恒、动量守恒与能量守恒的原理,在偏微分方程的基础上求得近似解,典型的误差范围为1.3%~5.7%,均值约为3%[6]。

近期的研究报告中,曹燕龙等人[7]采用计算流体力学软件Fluent,模拟了长120 m,管径10 mm的实验管道在输送汽油时的泄漏行为,仿真结果与实际测量的相对误差为4.11%;温凯等人[8]使用解析解的方法建立了管道的最大输量与总节流压力最小的数学模型,并据此设计了成品油管道停电时水击保护的控制逻辑;Rojas J等人[9]推导了实验管道的偏微分方程组并求出了解析解,在长163 m,管径76 mm的实验管道上验证了模型的准确性,取得了相对误差仅为1.34%~1.82%的结果。

现有的“白箱”式模型要求所模拟的管道均匀一致,或至少要在2个数据测量点之间保持均匀一致,否则其准确性不能保证。这在现实生活里的长输管道中难以实现。工业管道上数据采集点之间的距离通常会超过30 km,其地理环境往往相当复杂,很难保证管道一致性。因此,推导出具有符合客观条件的明确解析解的“白箱”式模型,并使其预测的结果在长输管道上准确可靠,是学者们长期以来追求的目标。

1.2 管道的“黑箱”式模型

与“白箱”式模型不同,“黑箱”式模型忽略了数据采集点之间管道的物理参数,仅仅依赖于各测量点所获得的数据,采用统计数学的方法来预测该段管道对激励的响应。传统的数学工具包括卡尔曼滤波器(Kalman Filter,KF)[10],隐马尔可夫模型(Hidden Morkav Model,HMM)[11],以及混合高斯模型(Gaussian Mixture Model,GMM)[12]等。此外,近年来统计数学的算法已经开始让位于更为高效且效果更好的人工智能算法。

在2015年或更早,使用人工智能算法的科研人员通常需要仔细地选择特征工程,使用支持向量机(Support Vector Machine,SVM)来完成预测复杂系统对激励的响应[13-14],但后来的研究已经证明了可以弱化特征工程,让网络自己学习,即采用深度学习的方法,反而可以获得更好的结果。Cai Yaojie等人[15]使用原始的音波信号训练卷积神经网络(Convolutional Neural Network,CNN),并把泄漏信号分类后制成模板,对实时信号进行分类识别以判断泄漏;李哲等人[16]使用了改变结构的CNN网络,将时间序列信号首先通过滤波及频域变换后,在二维空间里参照图像识别的方法来分类管道的泄漏信号;于涛等人[17]尝试使用具有记忆功能的长短期记忆网络(Long Short Term Memory Networks,LSTM)来预测原油管道中的油温,是成功应用了管道的“黑箱”式温度模型的案例。在其他行业,王华秋等人[18]使用LSTM网络中的V-LSTM网络模型来预测空压机排气压力;吴泽民等人[19]在LSTM的输出结果上结合了粒子群优化算法,用于预测管道的应力数据,都取得了良好的效果。

近年来,除了改进神经网络的功能,将两种不同的神经网络组合应用[20],也取得了事半功倍的效果。借鉴前人的思路,课题组在尝试平台的建模过程中,采用了将一维卷积神经网络(1D-CNN)与LSTM组合建模的方式,建立了管道对压力和流量响应的分段式“黑箱”式模型,获得了满意的结果。

2 基于深度学习的“黑箱”式管道模型

采用组合式深度学习网络来预测时间序列数据可以形象地比喻为:当研究一种按某种规律排列的、由各种彩色珠子构成的长链时,观测者首先用一个放大镜逐段地学习每个珠子的颜色和形状(基于卷积核的卷积运算),然后放下放大镜去学习各种珠子之间的排列规则(基于LSTM的运算)。当观测者积累了足够的经验后,就可以在看到部分珠子的基础上预测后继可能出现的珠子品种。经验越丰富(意味着使用大规模而且类型齐全的数据样本),预测越准确。

2.1 一维卷积神经网络

卷积神经网络[21]非常合适用于提取时间序列数据在空间结构上的关系,即借助卷积核去逐段学习构成时间序列的数据特征。

在应用时,网络中主要包括卷积层和池化层,在运行中采用局部连接、共享特征等技术来减低参数的数量,获得数据的特征并加快训练速度。一维卷积运算可以表达为:

(1)

(2)

重复对每个窗口为r的连续向量进行最大池化运算,即可求出具有最大特征值的序列。

2.2 长短期记忆网络

长短期记忆网络[21]则更适于提取时间序列中的时序特征,即着重学习相关个体之间的依赖关系。

假定按照时间顺序采样的压力数据为(流量同理)x=(x1,x2,…,xt),此处t为预测时刻;同时假定记忆单元隐层中的时间序列为h=(h1,h2,…,ht),则LSTM记忆模块的输出序列y=(y1,y2,…,yt)可以通过下列方程依次迭代算出:

yt=Whyxt+by

(3)

ht=H(Wxhxt+Whhht-1+bh)

(4)

式中:W为权值矩阵;b为偏置向量;H为隐层函数。

H可以根据下列方程式依次求解:

it=σ(Wxipt+Whiht-1+Wcict-1+bi)

(5)

ft=σ(Wxfpt+Whfht-1+Wcfct-1+bf)

(6)

ct=ftct-1+itg(Wxcpt+whcht-1+bc)

(7)

qt=σ(Wxopt+Whoht-1+Wcoct-1+bo)

(8)

ht=qth(ct)

(9)

(10)

式中:i、f、q、c分别为输入门、遗忘门、输出门和记忆单元的状态向量,其算法流程的形象表示见图1。在每1个单元中,状态向量与隐层向量具有相同的维度。

图1 LSTM单元结构示意图Fig.1 Cell structure diagram in LSTM

2.3 模型的建立方法

基于深度学习的“黑箱”式模型是一组深度学习程序运行后输出的数据文件。该文件是对大规模样本数据按照某种流程运算后得出的结果,此运算过程通常称为对模型的训练。深度学习算法通常使用Python程序设计语言并需要在特定的软件平台上运行,比如keras软件等。

2.4 数据样本的来源

训练模型的数据样本可以来自文本文件,或通过接口程序直接从数据库中提取。数据库中的数据取自现役管道上的压力与流量,其获取的具体流程为:由压力变送器或流量计算机将物理信号转化为电流信号,然后在数据采集终端(Remote Terminel Unit,RTU)中进行集成和打包,再上传至位于控制中心的泄漏监测服务器,最终存储在服务器上的时间序列数据库(Time Series Database,TSDB)中。数据采集时,现场数据均需在RTU中获得准确时间标签,这是保证泄漏定位准确性的重要内容之一。

2.5 建立管道模型的流程

建立管段模型时的算法流程见图2。在提取数据库中原始数据后,首先将每10 s一组的数据降采样成1条样本,然后对数据进行滤波,如此运行达到30条样本后作为一批样本送入模型进行训练。本项目中联合使用了小波和中值二层滤波器,以消除噪音与干扰,提升数据中的有效信息。建立模型时每个管段需要单独进行训练,而且要分别训练正、反两种流向。为了保证模型的泛化能力,训练数据的样本数量应大于10万条,同时注意要在训练样本中包括管线运行的各种状态,避免仅仅使用稳定状态的数据。

模型训练时采用了Python程序设计语言,在Keras深度学习编程框架下实现[22],该平台集成了大量的神经网络模型包括多种CNN和LTSM。基于Python软件的开发环境不仅方便高效,而且更包含了丰富的数据处理程序库,使得模型的构造过程相对简单。

图2 建立管道模型时的算法流程图Fig.2 Programming flow of pipe segment model building

3 平台架构

平台结构见图3。平台从功能上分为准备情景数据与测试数据输出两部分。准备情景数据包括石油管道的稳定状态和过渡过程,即停输状态、稳定输油状态、启输过程、停输过程以及流量调节过程。由于管道的各种运行状态具有相似性,因此可以在分析典型状态的基础上建立标准准备情景模板。

图3 平台结构图Fig.3 Structure diagram of platform

3.1 稳定状态情景

现实中的石油管道在大部分时间内处于稳定状态,包括停止输送和稳定输送两种情况。两者的区别为停输时系统的各项参数基本保持不变,而稳定输送时的压力与流量虽有小的波动,但仍然基本稳定。仿真时,稳定状态的情景采用输入首站或末站端的压力及流量数值,沿线的参数变化由管道模型计算得出。

3.2 启输与停输过程

同一条长输管道的启输与停输过程具有高度相似性,从测试泄漏监测系统的目的出发,分别选取了5种不同的启输与停输之间的过渡过程作为情景模板供用户调用。情景之间的主要区别为过渡过程中压力变化的特点,如快速或慢速的平滑式改变,阶梯状改变,长周期或短周期振荡式改变等几种。与稳定状态相似,在管道的首站或末站注入压力或流量的数值,由管道模型来计算各管段的响应。

3.3 调节流量过程

调节流量的情景主要模拟管道流量线性增加或减小的过程。在设计中将此变化过程简化为一次线性方程,即通过设定变化过程的时间长短和单位变化量来实现。调节流量过程的数据同样为在管道的起点或终点依次输入变化量,由模型计算中间各点的数据。

3.4 泄漏事件

平台的主要功能是仿真泄漏事件。参照现场实际放油过程中所获得的压力变化波形,将管道的泄漏事件简化为三个阶段进行描述,即起始阶段、中间阶段和结束阶段,每个阶段均为一次线性方程。在准备情景模板中可以设定每段各自不同的斜率与持续时间。泄漏事件由仿真软件计算出压力及流量发生变化的时间与位置,叠加至各管段的已有数值上。

由于管道的泄漏是随机事件,因此平台容许将泄漏事件预先定义在管道上某一位置,也可以定义在某区间内的随机位置,即可以设置泄漏发生的具体时刻,也可以设置为随机时刻。这样使得泄漏事件在时间和位置方面具有一定程度的不可预见性,更符合现实的泄漏情况。

在仿真泄漏事件的计算过程中,泄漏波形在泄漏管段两端的时间差Δt=t1-t2应满足如下公式:

Δt=(2Lleak-Lseg)/v

(11)

式中:Lleak为泄漏点至该管段起点的距离,m;Lseg为该管段长度,m;v为压力波传播速度,平台以v=1 150 m/s 作为缺省值,但可以根据需要而设定为其他数值。

3.5 仿真指令编程

测试平台根据仿真指令生成未来时间内的模拟数据。仿真指令采用EXCEL表格的形式,按照事件发生的时间次序写成脚本文件。一次典型的测试模拟泄漏情景脚本见表1。平台在执行测试指令前首先进行合法性检查,以保证其时间及数据的连续性和泄漏事件的合理性,然后生成仿真数据,最后将数据赋予未来时间标签写入数据仿真时间序列的数据库中(图3)。

现阶段平台暂时不支持管道中间存在分支点的情况,也不支持并发操作的情况。

3.6 平台输出接口

在平台上开发了以多线程方式运行的RTU程序,以便对外提供数据。目前已经实现的通讯协议为OPC DA与MODBUS/TCP。此外,由于时间序列数据库TSDB的访问接口是开源软件,有成熟的库函数及调用模板可供参考,因此待测试系统也可以通过HTTP、TCP或UDP等协议从TSDB中直接提取数据。

表1 典型泄漏测试模拟准备情景脚本表Tab.1 Typical scripts on testing scenario

4 平台性能评价

为了检验平台的性能,课题组在实验系统中接入了某成品油管道的实时数据。实验中采集了中间站到末站4个点的压力和末站的流量数据,采集时间持续了10个月,期间建立了约25万个数据样本用于训练和测试管段模型。

4.1 管道模型的仿真精度

为了考察管道模型的仿真精度,采用了将模型的预测输出与实时数据进行对比的方法,并以均方根误差、平均绝对误差和平均绝对百分比误差3项指标来联合评价其性能。其计算公式为:

(12)

(13)

(14)

在一次典型的输油过程(约60 h)中实际管道与管段模型输出数值的对比情况见表2,该组实际数据未在用于模型训练和测试的数据集里面。对比时采用了每10 s数据的平均值。从表2可以看到,平台的预测输出与实时数据的各项误差指标差别不大,其中MAPE为0.779%~0.992%,可以向上取整至1.0%,并以此作为系统的综合误差指标。

表2 管段模型测试结果表Tab.2 Testing results on pipe segment models

4.2 泄漏事件的仿真特性

平台生成的模拟管道在输油状态下发生泄漏事件的压力曲线见图4。模型生成的数据由被检测系统的RTU读取后上传至该系统数据库中。从图4可以看到,由泄漏引起的压力波动正确地出现在指定管段上,同时相邻管段也依次出现了对应的压力扰动。由人工读取屏幕曲线上的时间节点及压力数值,可以验证其变化规律基本符合泄漏发生在实际管道上的情况,满足测试泄漏监测系统的要求。

a)上游管段波形a)Waveform in upstream

5 结论

管道泄漏仿真与测试平台在研发过程中成功实现了基于深度学习算法的“黑箱”式管道模型,从而可以模拟特定管道的常见稳定状态与过渡过程,并可以在此基础上叠加泄漏事件。模型的输出与实际管道响应的平均相对误差小于1%,满足在一般情况下评估泄漏监测系统的需要。相比采用在管线上实际放油测试软件的方法更加安全与高效,不受时间、地点、重复次数的限制,节约了测试成本。在合理设计测试情景脚本的前提下,测试结果可以信赖。对不同系统分别进行测试时,由于测试数据完全一致,因此评估结果具有很好的可比性。使用平台对泄漏监测系统进行评估与测试是一种新的尝试,其好处显而易见,值得推广。

猜你喜欢
流量管道测试
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
接好煤改气“最后一米”管道
幽默大测试
寻找书业新流量
粗氢管道腐蚀与腐蚀控制
“摄问”测试
“摄问”测试
“摄问”测试
MARK VIe控制系统在西气东输管道上的应用与维护