APP下载

长输油气管线缺陷识别软件系统设计与实现

2022-03-09万莉舒顺强万勇杨勇刘超戴永寿

软件工程 2022年2期
关键词:软件系统

万莉 舒顺强 万勇 杨勇 刘超 戴永寿

文章编号:2096-1472(2022)-02-46-04

DOI:10.19644/j.cnki.issn2096-1472.2022.002.011

摘  要:为了充分发挥金属磁记忆技术在管道缺陷检测中的优势,解决磁记忆信号本身不能判断缺陷类型的问题,建立了一种管道缺陷识别分类方法,设计并开发了一套基于C#和MATLAB混合编程的长输油气管线缺陷识别软件系统。该软件利用MATLAB对长输管线金属磁记忆数据进行数据处理、特征量计算及方法建模等工作,利用C#搭建面向用户的操作界面,使用户能够快速准确地对长输油气管道中的腐蚀缺陷、焊缝应力集中区域、弯管应力集中区域进行识别定位并加以区分。

关键词:金属磁记忆技术;混合编程;管道缺陷识别;软件系统

中图分类号:TP271     文献标识码:A

Design and Implementation of Defect Recognition Software System for Long-distance Oil and Gas Pipeline

WAN Li1, SHU Shunqiang2, WAN Yong3, YANG Yong4, LIU Chao4, DAI Yongshou3

(1.Logistics Management Office, China University of Petroleum, Qingdao 266580, China;

2.College of Control Science and Engineering, China University of Petroleum, Qingdao 266580, China;

3.College of Oceanography and Space Informatics, China University of Petroleum, Qingdao 266580, China;

4.Special Equipment Inspection Institute, Technical Detection Center, Shengli Oil Field of SINOPEC, Dongying 257000, China)

wanli@upc.edu.cn; Z20050038@s.upc.edu.cn; upcwanyong@163.com; yangyong056.slyt@sinopec.com;

liuchao131.slyt@sinopec.com; daiys@upc.edu.cn

Abstract: In order to exert the advantages of metal magnetic memory technology in pipeline defect recognition, and solve the problem that magnetic memory signal itself cannot determine the defect types, this paper proposes to design a pipeline defect recognition and classification method, and develop a defect type recognition software system for long-distance oil and gas pipeline. The development is based on mixed programming of C# and MATLAB (Matrix & Laboratory). MATLAB is used in the software for data processing, feature quantity calculating and method modeling on the metal magnetic memory data of long-distance pipelines. C# is adopted to build a user-oriented operation interface. Thus, users are able to quickly and accurately recognize, position, and distinguish the corrosion defects, weld stress concentration regions and elbow stress concentration regions in long-distance oil and gas pipelines.

Keywords: metal magnetic memory technology; mixed programming; pipeline defect recognition; software system

1   引言(Introduction)

油气输送管道在运行过程中,由于油气管道内部存在着一定的安全质量问题以及会受到外界环境的干扰,从而会使其产生各种各样的缺陷。管道上的缺陷对管道的危害性极高,容易直接造成管道的断裂和泄漏等安全事故,特别是长输油气管道,会带来严重的社会经济损失和造成环境的破坏。管道的缺陷主要包括腐蚀性缺陷、应力集中缺陷。金属磁应力检测技术是一种新型的无损检测技术,它能够实现管道缺陷的预警,可以在管道不停运的情况下对管道运行隐患进行检测。其基本工作原理如下:铁磁性材料设备在内部的应力形变和地磁场的相互作用下,金属内部的磁结构会产生改变,这种变化一般是不可逆的,会因为具有一定应力形变的位置而使其产生漏磁场。这种漏磁场带来的只是磁场强度的变化,仅仅依靠检测的磁记忆信号只能初步判别管道是否存在缺陷,无法区分管道缺陷的类型。为了解决磁记忆信号本身不能判断缺陷类型的问题,充分结合C#与MATLAB的特点,我们开展了管道缺陷识别分类的研究,利用混合編程技术开发出了长输管道缺陷类型识别软件系统。根据实验所采集的金属磁记忆数据,用户能够利用该软件快速准确地实现对长输油气管线缺陷类型的判别等操作,为后续进行管道缺陷检测研究提供了参考。

2  C#与MATLAB混合编程技术(C# and MATLAB mixed programming)

2.1   C#与MATLAB简介

C#运行在.NET Framework和.NET Core之上,并且还集成了VB简单的可视化操作和C++的高性能,在基于人机交互界面的软件开发过程中更加方便、快捷。

MATLAB是一种强大的计算和仿真软件,使用者可以利用较短的程序代码实现大规模的计算问题。但是,其人机交互界面的开发较为困难且所开发的界面并不美观,难以满足实际工程需要。

2.2   C#与MATLAB混合编程的应用

黄敬涛研究了一种基于C#和MATLAB混合编程的肝储备功能分析系统。王子香在现有广泛研究方法的基础上,通过C#与MATLAB混合进行编程的计算方法,大大提高了电脑图像检索的计算准确性和工作效率。刘亚运用C#和MATLAB混合编程开发了一种电缆优化分盘管理系统来有效提高电缆资源的利用率,减少了电缆资源的大量浪费。柯彪等利用C#与MATLAB混合编程技术开发和设计出了内弹道设计模型计算软件。李诚刚等开发出了地磁场可视化绘图软件。刘亚等利用C#和MATLAB混合编程技术设计开发了轴承故障诊断系统。许茂增等设计开发了物流需求预测系统。陈爱梅等将C#和MATLAB混合编程应用于数字图像处理。李洁等把C#和MATLAB混合编程应用在了SAR图像的船只检测中。王永涛等利用C#和MATLAB混合编程的方法设计开发了一套灌区模糊灌溉控制系统。以上研究均为本文所设计的软件提供了参考。

本文开发了一套基于C#与MATLAB混合编程的长输油气管道缺陷类型识别软件。根据实验所采集的管道金属磁记忆数据,可以快速准确地实现对长输油气管线缺陷类型的判别。

2.3   C#与MATLAB混合编程的实现

本文实现C#与MATLAB混合编程的方式是将相关的MATLAB计算及分析函数封装成DLL文件,然后用C#编程时,在相应的模块下调用相应的DLL文件,并添加引用。动态链接库DLL是一个独立的文件,不可以直接执行,并且程序可以实现模块化。

本文以MATLAB R2020b和Microsoft Visual Studio 2019版本的软件为例,介绍实现C#与MATLAB混合编程的过程。混合编程实现的步骤如下:

(1)编写MATLAB计算函数。

(2)配置MATLAB编译环境并编译生成动态链接库DLL文件。

(3)新建C#项目,创建Windows窗体应用,编写C#程序并引用DLL文件。

2.3.1   MATLAB函数的编译

首先,利用MATLAB软件对金属磁记忆数据进行数据处理、特征量计算及方法建模等工作,编写完成MATLAB数据分析函数。

其次,配置MATLAB编译环境,需要通过配置MATLAB Compiler SDK(图1)中的库编译器(Library Compiler),将所有的函数进行编译后生成动态链接库(DLL)文件,通过转换为.Net组件进行汇编后,才能被其他C#程序调用。

在MATLAB R2020b中,可通过deploytool工具实现编译功能。在MATLAB命令窗口输入deploytool命令之后,打开一个创建DLL文件的程序创建窗口,弹出编译器类型对话框,如图2所示。选择Library Compiler,弹出DLL文件编译窗口,如图3所示。在“TYPE”框中选择.NET Assembly,在“EXPORTED FUNCTIONS”框中添加需要打包的函数文件,在“PACKAGING OPTIONS”框中默认选择Runtime downloaded from web(此项占据空间小),点击右侧Package打包后,会显示一个对话框,此时M函数文件已经被编译成DLL文件,打包成功后生成四个文件,如图4所示。

2.3.2   C#编程及调用动态链接库

打开Microsoft Visual Studio 2019软件(VS),创建新的应用项目,选择Windows窗体应用(.NET Framework),建立C#新项目(图5)。按照需求,在窗体上添加所需控件及编写相关执行程序,图6为添加控件后的软件操作主界面。为了在C#中调用MATLAB打包生成的DLL文件,需要在主窗口程序设计界面添加using,代码如下:

using MathWorks.MATLAB.NET.Arrays;

using testmain(文件名);

为了使引用创建的DLL的类库应用于命名空间,需要在其中添加两个引用,一个是for_redistribution_files_only文件夹下的DLL文件,如图7所示;另一个是MATLAB R2020b安装路径下的toolbox\dotnetbuilder\bin\win64\v4.0中的MWArray.dll文件,如图8所示。最后为对应电腦的64位处理器,在Microsoft Visual Studio 2019软件界面的配置管理器中,将活动解决方案平台设为x64,如图9所示,这样就完成了添加引用和工程配置。

3   软件设计(Design of software)

长输油气管线缺陷识别软件系统应用管道缺陷识别分类技术对油田现场的长距离埋地管道进行现场检测,可以对油气管道上的腐蚀缺陷、焊缝应力集中区域、弯管应力集中区域进行识别定位并加以区分。该软件基于金属磁记忆技术,采用C#与MATLAB混合编程的方法,在导入实验采集的金属磁记忆原始数据后,经过数据处理、特征量计算、模型分析后,可以实现对长输油气管线缺陷类型的判别。

本软件使用的分类方法是应用建立的管道磁应力缺陷识别技术,对埋地长输油气管道中的腐蚀缺陷、焊缝应力集中区域、弯管应力集中区域进行识别定位并加以区分。为了将建立的管道缺陷识别分类方法应用到现场长距离埋地管道缺陷类型的识别分类检测中,首先需要使用磁通门磁力计对现场油气管道进行磁记忆数据采集测试,获取管道的磁记忆测试数据,为后续的缺陷位置和类型测试分析提供基础测试数据。其次,在获取金属磁记忆原始测试数据后,需要进一步获取缺陷段特征量测试数据,然后利用缺陷段测试数据测试建立的缺陷类型识别分类方法,得到埋地管道缺陷定位和类型识别测试结果。实验流程图如图10所示。

3.1   开发环境

该软件是基于Microsoft Visual Studio 2019和MATLAB R2020b开发的,在使用该软件前需要安装Visual Studio 2019与MATLAB。软件的.Net Framework框架版本采用的是.Net 4.7.2。

3.2   界面设计

长输油气管线缺陷识别软件系统由欢迎界面(图11)和主界面(图6)组成,主界面以管道原始金属磁记忆数据录入、缺陷类型识别和缺陷识别分类结果表格显示部分为主体,通过各功能按钮完成对各功能分析程序的调用。

3.3   功能设计

该软件有一个功能区,即“缺陷识别”,适用于对特定长距离埋地管道进行缺陷类型识别。该部分包含两个界面,上方是“选择金属磁记忆原始文件”,可以选择采用磁通门磁力计测取的不同的金属磁记忆原始数据,点击“选择文件”按钮,可以导入磁通门磁力计采集得到的金属磁记忆原始数据,如图12所示。下方界面是“缺陷识别结果”,在选择金属磁记忆原始文件后,点击“开始识别”按钮,可以对已选择的目标管道区域进行缺陷识别,并将结果对应展示在管道序号下方。以某采油厂的特定长输油气管道为例展示软件的识别结果,管道每50 m为一个测试长度,通过数据处理,将其分成25 个缺陷段,即每2 m管道对應一个缺陷识别区域,根据建立的模型分别对管道上的连续区域进行缺陷识别。每一缺陷区域可能有腐蚀、焊缝和弯管三种不同的缺陷,某管道缺陷识别结果图如图13所示,若管道缺陷区域显示为“1”,对应缺陷区域存在缺陷;若管道缺陷区域全部显示为“0”,则三种缺陷都不存在,即为正常直管段。

4   结论(Conclusion)

本文设计开发了基于C#与MATLAB混合编程的长输管线缺陷识别软件系统,应用建立的管道缺陷识别分类方法,利用MATLAB强大的分析计算及函数编译功能,以及C#良好的操作界面,充分结合MATLAB和C#各自的优势,用户能够快速有效地实现对长距离管道缺陷类型的判别,为后续进行管道缺陷检测研究提供了参考,具有较高的应用价值。

参考文献(References)

[1] DOUBOV A A. Screening of weld quality using the magnetic metal memory effect[J]. Welding in the World, 1998, 41(3):196-199.

[2] DOUBOV A A. A study of metal properties using the method of magnetic memory[J]. Metal Science and Heat Treatment, 1997, 39(9):401-405.

[3] JILES D C. Theory of the magnetomechanical effect[J]. Journal of Physics D Applied Physics, 1995, 28(8):1537-1546.

[4] 任吉林,邬冠华,宋凯,等.金属磁记忆检测机理的探讨[J].无损检测,2002,24(01):29-31.

[5] DOUBOV A A. Diagnostics of equipment and constructions strength with usage of magnetic memory[J]. Inspection Diagnostics, 2001(6):19-29.

[6] 任吉林,王东升,宋凯,等.应力状态对磁记忆信号的影响[J].航空学报,2007,28(03):724-728.

[7] 万勇,万莉,戴永寿.基于C#与MATLAB混合编程的管道缺陷类型识别实验系统软件开发[J].实验技术与管理,2020,37(05):52-57.

[8] 黄敬涛.基于C#与MATLAB混合编程的肝储备功能分析系统研究[D].长春:吉林大学,2013.

[9] 王子香.基于MATLAB与C#混合编程的图像检索系统[D].西安:西安工业大学,2015.

[10] 刘亚.基于Matlab与C#混合编程的电缆优化分盘系统研究[D].北京:华北电力大学,2017.

[11] 柯彪,高跃飞,罗炳华,等.C#与MATLAB混合编程在内弹道设计中的应用[J].弹箭与制导学报,2013,33(05):129-132.

[12] 李诚刚,赵佳宝,陈兆荣.Visual C#与Matlab混合编程在可视化软件中的应用[J].软件,2012,33(02):78-79,83.

[13] 刘亚,王静,田新诚.基于C#和Matlab混合编程的轴承故障诊断系统[J].计算机应用,2018,38(S2):236-238,242.

[14] 许茂增,余国印.基于C#与MATLAB混合编程的物流需求预测系统的实现[J].重庆交通大学学报(自然科学版),2015,34(04):128-132.

[15] 陈爱梅,李慧东.MATLAB与C#混合编程在数字图像处理中的应用[J].电脑开发与应用,2014,27(11):67-69.

[16] 李洁,王瑞富.Matlab和C#混合编程在SAR图像船只检测中的应用[J].测绘与空间地理信息,2017,40(02):75-78.

[17] 王永涛,杨璐瑶,胡玥,等.基于C#和Matlab的灌区模糊灌溉控制系统研究[J].中国农村水利水电,2016(06):23-25,33.

[18] 陈柳松,杨利,张宇,等.基于.NET程序集的C#与Matlab混合编程技术及应用[J].控制与信息技术,2018(02):44-46,64.

作者简介:

万   莉(1981-),女,硕士,高级工程师.研究领域:自动化和计算机测控.

舒顺强(1997-),男,硕士生.研究领域:计算机测控和电子信息工程.

万   勇(1979-),男,博士,副教授.研究领域:计算机测控和电子信息工程.本文通讯作者.

杨   勇(1971-),男,博士,高级工程师.研究领域:腐蚀防护.

刘   超(1982-),男,硕士,高级工程师.研究领域:腐蚀防护.

戴永寿(1963-),男,博士,教授.研究领域:计算机测控和电子信息工程.

基金项目:国家重点研发计划项目“临海油气管道检测、监控技术研究与仪器装备研制”(2016YFC0802302).

2863500520254

猜你喜欢

软件系统
软件系统的复杂网络之研究
基于改进蚁群算法的嵌入式系统软硬件划分
基于数据融合的掘进机截齿磨损状态监测
计算机控制系统的软件抗干扰技术
开发行政事业单位内控评价系统 破解管理瓶颈
提高计算机软件系统维护效率的方法研究
电动汽车智能充电桩的设计与实现
PLC工程应用分析
高校毕业生就业跟踪反馈系统中的影响因素分析
单片机控制的八路抢答器的设计与制作