基于LabVIEW的FPSO原油外输设备智能诊断系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于LabVIEW的FPSO原油外输设备智能诊断系统设计与
实现
林杨
【期刊名称】《《船海工程》》
【年(卷),期】2019(048)005
【总页数】6页(P67-71,79)
【关键词】LabVIEW; FPSO; 远程诊断; 神经网络; Matlab
【作者】林杨
【作者单位】中海石油(中国)有限公司秦皇岛32-6/渤中作业公司天津300459【正文语种】中文
【中图分类】U674.38
浮式生产储油卸油装置(FPSO)设备运营状态的可靠性及稳定性直接影响到海工平台的财产安全,甚至危及到船员生命安全,故需要对该设备配套状态监测及故障诊断系统。
因设备复杂,传感器监测数据类型较多,设备的单一故障往往需要多传感器数据进行融合,而这时典型多输入单输出的模式识别问题,目前用于解决该问题的故障诊断方法最主流的就是基于神经网络的人工智能故障诊断方法。
将人工智能理论和方法应用于故障诊断,发展智能化故障诊断技术,是设备故障诊断的一条新的途径,也是研究最多、应用最广的一类智能型诊断技术。
本文将设计及开发一套基于BP神经网络故障诊断[1-4]专家系统,实现智能故障诊断,并在FPSO原油
外输系统上进行验证。
1 系统总体架构
图1 基于LabVIEW的FPSO原油外输设备远程智能诊断系统总体架构
基于LabVIEW的FPSO原油外输设备远程智能诊断系统总体架构见图1。
目标FPSO原油外输设备位于近海区域,设备状态特征信号通过3G/4G模块上传至企业内部监控中心,并存储到Oracle数据库中。
第三方应用程序LabVIEW,通过数据库访问工具集LabVIEW database toolkit实现对数据库的数据读写操作;同时利用Matlab script接口,实现LabVIEW与Matlab的双向数据交互。
LabVIEW将从数据库读取到的数据传给Matlab,Matlab调用BP神经网络诊断算法,对传感器数据进行分析诊断,并输出诊断结果到LabVIEW软件。
LabVIEW 将诊断结果同Oracle数据库中的诊断知识库进行对比,给出相应的故障模式、故障原因及解决措施。
2 远程通信模块
为了保证远程通信的速度、稳定性及可操作性,在传输同等数据量情况下,需选择占用带宽最小的通讯协议,考虑现场端设备及LabVIEW远程监控系统特性,最终选择采用基于TCP/IP的socket通信协议,见图2。
图2 基于C/S架构LabVIEW远程监控系统
同时为了保证远程监控系统的开放性,所有远程传输得到的数据都统一存放到关系数据库oracle 11g R2中,方便监控中心其他系统(如虚拟仿真系统)对远程状态数据的访问。
3 智能诊断算法及实现
3.1 基于Matlab的BP神经网络实现
采用两层BP神经网络结构用于故障诊断,网络结构中隐含层采用tan-sigmoid 激励函数,输出层采用log-simoid激励函数。
其中网络输入层神经元个数等于输
入变量数量,输出层神经元个数等于故障模式数量。
见图3。
图3 用于故障诊断的两层BP神经网络结构
3.2 网络训练
选取样本并对其训练,以得到诊断系统知识库(以网络阀值和权值形式存在),诊断网络的样本训练流程大致过程为:读取样本数据,并进行归一化处理,因诊断BP
神经网络第一层的激励函数为双曲正切Tan-Sigmoid函数,该函数输出范围为[-1,1],故归一化区间取[-1,1];根据输入、输出向量中变量个数,选取合适的网购
结构及参数,并初始化网络参数;将归一化的输入向量代入网络,计算输出结果,并与预期结果对比,计算偏差;将计算偏差与设定偏差对比,看是否到达收敛条件,若不收敛,则调整权值继续计算,直到收敛,网络收敛后,输入测试数据进行测试,并进行故障类型判断。
以原油外输系统卡销装置故障诊断子模块为例,该诊断模块6个输入变量:压力MP11、压力MP12、压力MP19、压力MP20、流量V3、流量V4;4种故障模式:换向阀0311-4故障、减压阀0314-4故障、液压锁0315-3故障、管线
0331-4故障。
针对该诊断模块的BP神经网络模块参数设置见表1。
表1 BP神经网络参数设置项目具体内容设置值神经元个数输入层隐含层输出层694网络结构参数设置输入层到隐含层传递函数隐含层到输出层传递函数学习训
练函数transiglogsigtrainscg网络训练参数设置最大训练次数2000显示间隔50训练目标1e-6学习率1e-4
对故障模式进行编码,将其表示成计算机能够识别的模式,见表2。
表2 ESD阀故障故障模式编码故障模式编码蓄能器故障1 0 0 0阀组4故障0 1 0 0阀组5故障0 0 1 0管线故障0 0 0 1
Matlab2014a中BP神经网络默认采用Widrow-Nguyen即W-N法进行网络权
值初始化,同时样本的训练模式默认为批处理模式。
因目前没有被监测系统实际故
障数据,故暂时采用模拟的样本数据来对诊断算法的正确性进行验证。
卡销装置故障诊断模块中,模拟的传感器样本数据见表3。
利用构建的2层BP神经网络对以上样本进行训练,训练结束后,Matlab2014a 弹出训练结果见图4。
从图4中可以直观看到前面设置好的网络结构和算法参数,可以看到性能参数均方误差的初始值为0.46,结束值为9.44×10-7,小于设定的目标值1.0×10-6,在迭代65次后,误差水平就达到了预期要求,满足训练指标。
网络训练性能变化见图5,可以清楚看到,训练误差随着迭代次数增加而减小的过程,最终达到设定的目标误差,停止网络训练。
表3 模拟传感器采集样本数据样本输入变量压力MP23压力MP24压力MP25压力MP26流量V3流量V4故障模式第1组1.001.001.001.001.001.00换向阀0311-4故障第2组2.002.002.002.002.002.00减压阀0314-4故障第3组
3.003.003.003.003.003.00液压锁0315-3故障第4组
4.004.004.004.004.004.00管线0331-4故障第5组1.101.201.101.200.900.80换向阀0311-4故障第6组2.102.202.102.201.991.80减压阀0314-4故障第7组3.103.203.103.202.982.80液压锁0315-3故障第8组
4.104.204.104.203.983.80管线0331-4故障第9组0.900.800.900.801.101.20换向阀0311-4故障第10组1.901.801.901.802.102.20减压阀0314-4故障第11组2.902.802.902.803.103.20液压锁0315-3故障第12组
3.903.803.903.80
4.104.20管线0331-4故障第13组
1.051.15
2.051.150.950.85换向阀0311-4故障第14组
2.052.102.052.151.911.85减压阀0314-4故障第15组
3.053.153.053.152.912.85液压锁0315-3故障第16组
4.154.054.123.153.953.85管线0331-4故障
图4 BP神经网络训练效果示意
图5 训练网络性能变化曲线
同时网络训练过程中,参数的状态变化见图6,可以看到,满足要求。
图6 网络训练状态参数变化过程
3.3 神经网络诊断
因没有实际传感器采集数据,故采样仿真数据,模拟输入传感器采集数据,来验证诊断系统的可行性及可靠性。
采用表4所示的6组模拟数据对诊断网络进行验证。
表4 用于验证诊断网络的模拟测试数据模拟传感器数据输入变量压力MP23压力MP24压力MP25压力MP26流量V3流量V4状态第1组
0.801.201.100.901.000.70换向阀0311-4故障第2组
2.202.152.001.701.752.00减压阀0314-4故障第3组
2.832.93
3.003.103.203.00液压锁0315-3故障第4组
3.903.803.75
4.004.104.20管线0331-4故障第5组3.001.001.001.001.001.00
非故障状态第6组4.003.003.004.003.004.00非故障状态
任何时仿真数据在输入到诊断网络之前,都有进行与网络训练时相同的归一化处理,想输入向量归一化到区间[-1,1]。
处理程序为
%在线采集数据的归一化处理,处理方式同样本数据处理方式完全相同
p_test=mapminmax(′apply′,sa mple_verify,PS);
其中:sample_verify为传感器采集数据输入向量矩阵,PS为网络训练时用到的
归一化处理方法,′apply′为采用相同处理方式。
对表4中的测试数据代入训练好的神经网络,可得神经网络的检测结果,见表5。
表5 测试数据的神经网络诊断输出序号检测结果期望输出诊断结果第1组
0.9995100.0008130.0005192.04×10-61000换向阀0311-4故障第2组
0.0014850.9975320.0009850.0001030100减压阀0314-4故障第3组
3.76×10-50.0020290.9970780.0022600010液压锁0315-3故障第4组
2.86×10-60.0005230.0019550.9988280001管线0331-4故障第5组
0.4537690.5648210.0001011.55×10-5非故障状态非故障第6组1.11×10-50.0011530.6626000.466292非故障状态非故障
由表5的诊断结果可知,神经网络准确的识别了卡销装置不同的运行状态,诊断
效果良好。
4 系统实现
4.1 LabVIEW与Matlab的接口通信
利用Matlab与LabVIEW混合编程来实现外输设备诊断系统的设计。
在LabVIEW开发平台上直接使用Matlab的神经网络工具箱。
常用的混合编程方法
是使用Matlab语言节点,即Matlab Script节点。
这种方法实现简单且实现方式灵活多变,打开被调用的Matlab脚本程序的速度也快,且能满足多输入多输出。
LabVIEW向Matlab script脚本传递字符变量过程举列见图7。
图7 LabVIEW向Matlab script脚本传递字符变量过程
LabVIEW想将输入层到隐含层传递函数名称如tansig传递给Matlab script脚本,通过调节结构,将不同的函数名转成相应数字,并在Matlab script脚本中,将对于数字还原成对于函数名。
而数字变量可以通过在Matlab script左边框中增加输入节点进行传递,如图7中的隐含层神经元变量lay1_size。
同理可以对其他需要
传递的参数进行操作。
LabVIEW中神经网络学习界面见图8,其参数传递方法前
面已经介绍。
图8 神经网络学习界面
图8界面对应的最终LabVIEW程序框图见图9,左边为前面板需要向脚本传递的参数,右边为诊断结果,通过一个二维数组保存诊断结果,见图10,该结果相当
于将表5结果输出到LabVIEW前面板界面上。
4.2 推理机解释器的软件实现
对某一故障模式,采用二进制编码表示故障类型,期望的理想输出是0或1。
显然,仿真结果不可能是期望的绝对0或1,所以需要对结果进行判断,即把神经网络仿真获得的结果通过判断处理,整定到0或1。
因此,提出判别区间的方法。
对于输出结果,取一个判别区间,将仿真结果与判别区间比较,确定其归于0或1。
如(0.1,0.9):当仿真结果小于0.1(如0.051 8),则判断其为0;而当仿真结果大于0.9(如0.918),则判断其为1;此外,对于处于[0.1,0.9]区间内的数据判断为
0.5(认为该仿真结果无意义,拒判)。
可以看出,当这个判别区间越靠近0和1,
则判断准确率越高,同时可能拒判的几率也越大;当判别区间越远离0和1,则判断的准确性降低,但同时好处是判为无意义结果的几率变小,可以根据具体情况选择。
图9 LabVIEW通过对Matlab调用实现诊断神经网络
图10 网络诊断结果输出到前面板二维数组中
根据以上区间判别标准,将网络的数值输出与故障信息进行对应,软件界面实现见图11。
图11 推理解释系统的软件实现
5 结论
设计基于LabVIEW的FPSO原油外输设备远程智能诊断系统,并实现了仿真验证。
采集软件模拟实际工况输出模拟输出传感器数据,并以TCP通信方式远程上传到
企业内部监控中心数据库。
LabVIEW利用math script节点调用Matlab,实现对采集数据的学习与诊断,并键诊断结果存放于数据库中。
监测系统即可实现常规监测报警功能,还可自主开展基于神经网络的故障诊断功能,为后续产品健康监测系统提供了样本参考与技术支持。
参考文献
【相关文献】
[1] 李萍,曾令可,税安泽,等.基于Matlab的BP神经网络预测系统的设计[J].计算机应用与软件,2008,25(4):149-150.
[2] 张绪锦,谭剑波,韩江洪.基于BP神经网络的故障诊断方法[J].系统工程理论与实
践,2002,22(6):61-66.
[3] 张新海,雷勇.BP神经网络在机械故障诊断中的应用[J].噪声与振动控制,2008,28(5):95-97.
[4] 周丽霞,熊瑞平,杨荣松.LabVIEW在BP神经网络设备故障诊断系统中的应用[J].机床与液压,2007,35(4):215-216.。