TensorFlow在燃气管道闸阀泄漏诊断中的应用*

2021-10-25 01:44黄旭安王新颖林振源胡磊磊刘岚
工业安全与环保 2021年10期
关键词:闸阀阀门故障诊断

黄旭安 王新颖 林振源 胡磊磊 刘岚

(常州大学环境与安全工程学院 江苏常州 213164)

0 引言

阀门作用是控制管道内流体的流动,保障管路设备的正常运行。虽然阀门泄漏事故只占管道泄漏事故的8%~15%,但是经阀门泄漏的流量会占到总泄漏流量的50%。因此,在不停止阀门运行的前提下对阀门故障程度进行有效的判断,有利于减轻为检测泄漏故障所耗费的人力、物力、财力,提高整体工作效率,避免重大安全事故的发生。

目前国内外有多种方法使用神经网络来诊断阀门的故障。如利用人工神经网络分析核电站的止回阀位置并进行诊断;采取一种简化模型计算数据与故障模型之间差异程度,识别出阀门的故障种类。以上几种管道阀门泄漏模式识别方法与传统人工检测方法相比,故障识别准确率得到提升。但在实际应用过程中,针对闸阀内漏没有较好的诊断方法,人工神经网络学习收敛速度较慢、模型搭建复杂、识别准确率与深度学习神经网络相比略有不足。

为解决上述问题,通过搭建闸阀故障模拟平台,采集闸阀在不同工况下的声发射数据,在TensorFlow的基础上构建卷积神经网络模型,并在此基础上使用Python语言建立闸阀故障诊断模型,并且通过设置不同的隐藏层数量比较不同模型的准确率,验证基于TensorFlow构建的闸阀故障诊断模型的优越性能。

1 深度学习神经网络

深度学习神经网络(DLNN)是机器学习的神经网络,它所具有的隐含层数量一般在2个以上,它可以快速地提取参数特征并转换其中的参数特征值,从而充分开发了机器自动学习的能力以及数据的本质属性,提高故障辨识的准确性[1]。

DLNN模型包括自动编码器(AE)、卷积神经网络(CNN)、深度置信网络(DBN)、限制波尔兹曼机 (RBM)、稀疏编码(SC) 等[2],由于卷积神经网络特征提取能力极强,所以本文应用TensorFlow搭建卷积神经网络来辨识燃气管道闸阀故障,提高闸阀故障的辨识能力。

1.1 卷积神经网络

由输入层(input)、卷积层(C)、降采样层(S)、全连接层(F)及输出层(output )共同构成了CNN。CNN的一个实质意义就是对信息数据进行卷积运算,卷积的运算主要是指将信息数据从原始数据上通过卷积核方法进行扫描,并对特定位置相关的元素数据进行一个新的相关运算,最终通过这个运算得到的结果形成了一个新矩阵。

卷积神经网络分类能力的基础是前向传播及后向传播的训练过程。前向传播是把原始数据输入到构建好的网络中,经过运算得到结果;后向传播是指先得到网络输出与理论输出的值,再比较它们的误差,再把误差反向输入到输入层,得到层级之间的误差,最后通过调整网络参数使网络在指定的收敛条件处收敛[3]。

卷积神经网络模型运算示意见图1。假定x为输入的数据样本,包含9个元素,h为卷积核数,M×1为每个卷积核大小,则卷积核输出特征大小为(10-M)×1,输入层与卷积层连接数为(10-M)×(M+1)×h。设ai,k表示第k种卷积核输出的第i个元素;Gi,k表示第k种卷积核的第j个元素;bk表示第k种卷积核的偏置;f表示卷积层激活函数,则卷积层第k种卷积核输出为:

图1 卷积神经网络模型运算示意

(1)

CNN采样层采用均值采样。假如采样宽度为p×1,则每个特征对应采样输出大小为(10-M)/p×1,则第k个卷积核对应采样层S的输出结果为:

(2)

1.2 TensorFlow程序设计框架及特色

TensorFlow是一套适用于人工智能机器学习的开源工具库,可以兼容基于CPU、GPU或TPU 架构的服务器,它由谷歌开发,可以在任意数量的CPU和 GPU的服务器、PC 和移动设备上部署深度神经网络计算[4-5]。

TensorFlow的数值计算主要通过数据流图,数据流图是一个有向图,使用线和节点来表示数学运算。TensorFlow程序设计模式的核心是建立并执行计算图,见图2。

图2 TensorFlow程序计算示意

2 基于TensorFlow的闸阀故障诊断方法

2.1 声发射数据的采集及预处理

根据声发射系统收集数据和模型分类的特点,选取闸阀在不同工作状态下的数据各1 500组,并且将幅度、振铃计数、持续时间、绝对强度、上升时间、有效值电压、到达时间、信号能量、能量计数等9个参数作为闸阀运行状态的特征向量。为了数据误差尽量减少,对数据进行如式(3)所示的标准化处理:

(3)

将选取的6 000组数据随机划分为80%的训练集和20%的测试集,在CNN模型中进一步将训练集中的20%作为验证集。

针对燃气管道闸阀微小泄漏量难以识别的特点,把故障诊断结果分为4类:无故障、轻微泄漏、中度泄漏、重度泄漏,并给出相应的维修措施,见表1所示。

表1 试验工况描述

2.2 闸阀故障诊断CNN模型的构建

神经网络模型的学习速度取决于神经网络中的层次。神经网络的层数太多可能会导致神经网络在机器学习所花费的时间增长;网络层数太少则数据处理不完善,故障识别的正确性大大降低。需要处理燃气管道闸阀故障特征参数,最终得出4种结果,信号采集的都是一维结构简单的数据,所以采用如图3所示的卷积神经网络模型。

图3 卷积神经网络模型示意

3 实验设计与结果分析

3.1 实验设计

为了验证上述方法的有效性,设计了实验室阀门泄漏声发射检测系统。阀门内部泄漏是指即使将阀门丝杠旋紧到位,介质还可以通过微小缝隙。因此,对阀门内部泄漏的模拟实质就是对阀芯与阀体之间缝隙的模拟。

根据闸阀开启的开度来模拟阀门泄露孔的大小。阀门前后管道通常有一定的压差,所以在被测闸阀前的管道进口处安装一台空气压缩机来提供管道内部的压力。为实现对不同泄漏情况的模拟,被测阀门前设置调节阀调节被测阀门的进口压力。

实验数据采集过程如下:闸阀故障模拟实验模型主要包括管道输运、数据采集和仪表仪器3个单元,管道输运单元包括阀门、空气压缩机和输运管道。其中,无缝钢管用来模拟燃气管道,数据采集单元由工业计算机、声发射卡、滤波范围为20~120 kHz 的声发射前置放大器、声发射传感器以及对应处理软件组成。在闸阀上下游两侧放置2个声发射传感器进行数据的采集。传感器布置如图4所示。仪器仪表单元主要由压力表、转子流量计、温度传感器组成。

图4 试验装置示意

声发射传感器分别采集一定时间内的闸阀运行正常、轻微泄漏、中度泄漏、重度泄漏的信号数据,将这些信号数据作为输入模型的原始数据特征。由空气压缩机压缩空气为管道提供进口压力,通过调节被测阀门进口压力为0.4 MPa,调节闸阀开度为全闭、1个开度、2个开度、3个开度,完成声发射数据的采集。选取无故障、轻微、中度、重度泄漏样本数据各1 500组,将80%样本作为训练数据集,将20%样本作为模拟验证集。因此选取4 800组作为训练集、1 200组作为测试集。部分实验的原始数据见表2所示。

表2 闸阀内部泄漏的部分数据

3.2 实验结果与分析

3.2.1隐藏层神经元数量为300且隐藏层为一层下的训练结果

实验环境为基于TensorFlow的Anaconda虚拟环境,使用Python语言进行程序设计,使用TensorFlow自行设计张量运算,选取8个卷积核,大小为 2×1,采样宽度为2×1。设置参数Verbose=2用来显示训练过程,Validation_split=0.2是指自动将80%样本作为训练数据集,20%样本作为模拟验证集;Batch_size=50即每一批次处理 50项数据,Epoch=10表示程序每次执行10个训练周期。从模型训练过程可以看出,训练集准确率最高可以达到0.794,验证集准确率最高达到0.793,每个世代的训练时间是3 s。具体训练过程见表3所示。

表3 一层隐藏层模块的训练过程

续表3

对阀门泄漏模型训练过程中,训练数据测试数据的计算误差和准确率用 Matplotlib模块进行可视化后,得到准确率曲线,如图5所示。

图5 模型准确率变化曲线

图5为模型准确率变化的曲线,由曲线可以看到模型在第4世代时候,训练集和验证集准确率差距越来越小,最后十分接近0.79,并且稳定在0.79。这说明隐藏层在一层的情况下,模型准确率为0.79,此时模型准确率不能进一步提高,需要改进模型结构,再进行训练。

3.2.2隐藏层神经元数量为300且隐藏层为两层下的训练结果

增加一层神经元个数同为300的隐藏层,提高模型运算能力,得到如下的训练过程,见表4所示。

表4 两层隐藏层模块的训练过程

从模型的训练过程可以看出,训练集所能达到的准确率最高为0.948,验证集能达到的准确率最高为0.952,每个世代的训练时间集中在21 s,比只有一层隐藏层的训练时间提高了6倍。和之前的模型相比,隐藏层的增加提高了训练准确率,不过同时也提高了模型所需花费的训练时间。

图6为训练集和验证组模型之间准确率变化曲线,可以清楚地观察出模型在第一个世代6之后训练集和第二个验证组模型的准确率都趋于平稳,两者之间的差异并没有因为迭代次数增多而变小,准确率也没有明显得到改善。说明了世代数对验证集准确率变化程度的影响范围并不是很广,与之前一层隐藏层准确率变化曲线相比,世代数有了一定的提高。

图6 训练集和验证组模型之间准确率变化曲线

3.2.3隐藏层神经元数量为300且隐藏层为三层下的训练结果

在两层隐藏层的基础上再增加一层神经元个数为300的隐藏层,然后再输出结果,得到如下的训练过程,见表5所示。

表5 三层隐藏层模块的训练过程

从模型的训练过程可以看出,训练集所能达到的准确率最高为0.987,验证集能达到的准确率最高为0.991,每个世代的训练时间集中在191 s,比两层隐藏层的训练时间提高了8倍。和之前的模型相比,隐藏层的增加只提高了不到4%训练准确率,但模型所需花费的训练时间却足足多了8倍。

图7为三层隐藏层模型的准确率变化曲线,可以观察到模型在世代4之后训练集和验证集的准确率趋于平稳,两者之间差距随迭代次数的增多而变化不大,准确率相比两层隐藏层模型的准确率有所提高。这说明隐藏层的增加可以提升模型的准确率,但要以训练时间的大幅增加作为代价。

图7 三层隐藏层模型的准确率变化曲线

综上所述,在闸阀故障诊断模型的训练过程中,隐藏层层数的选择要根据数据的结构大小,识别故障准确率的要求从而选择合适的隐藏层层数,层数太少会导致模型不能很好地学习数据的特征,识别故障准确率较低,但层数太多会导致模型复杂度提高,训练时间增加,虽然准确率有小幅提高,但提高不是很明显,时间成本却大幅提高。

4 结论

(1)将获得的不同工况下闸阀泄漏的声发射信号进行特征提取,然后将提取出的样本数据集输入由TensorFlow构建的卷积神经网络预测模型中。实验结果表明该模型可以有效地完成闸阀故障程度诊断的相关工作。

(2)通过给模型增加隐藏层,提高模型的运算能力,可以有效缓解闸阀故障诊断模型准确率偏低的问题。

(3)通过改变模型隐藏层层数,发现层数过多会导致模型复杂程度高,训练所花费时间过长,准确率提高也有限,所以需要在模型故障识别准确率与模型运行时间之间取得一个平衡。最终在有两层隐藏层的模型情况下,闸阀故障诊断的准确率可以稳定在95.2%,显著提高了闸阀故障诊断的准确性,显著降低了过于复杂模型的运行时间。

猜你喜欢
闸阀阀门故障诊断
电动闸阀推力功能裕量计算方法研究
美嘉诺阀门(大连)有限公司
基于包络解调原理的低转速滚动轴承故障诊断
装配式玻璃钢阀门井的研发及应用
双楔式闸阀阀杆轴向力的计算
双楔式闸阀阀杆轴向力的计算
因果图定性分析法及其在故障诊断中的应用
省力阀门瓶盖
小小阀门维系安全
基于LCD和排列熵的滚动轴承故障诊断