LNG船液货装卸系统组态设计软件开发
2012-11-30黄津津忻建华
施 凯,孟 成,黄津津,忻建华
(1.上海交通大学 机械与动力工程学院,上海200240;2.中国船舶工业集团公司第708研究所,上海200001)
0 引 言
本文介绍LNG船液货装卸系统组态化的设计方法和软件实现过程。软件采用Visual C++6.0和MS SQL Sserver为开发工具,在Windows平台上完成[1],船液货装卸系统组态化的设计方法和软件实现过程,以Visual C++6.0作为开发工具。软件能够根据用户需求,以组态方式建立液货装卸系统模型以及数据结构,拥有简洁清晰的用户界面,方便设计开发人员使用,能够为LNG船液货装卸系统设计提供有效手段,为进一步实施液货装卸过程仿真、分析装卸过程的合理性、实现厂所协同设计创造了技术条件。
1 液货装卸系统简介
LNG船液货装卸作业是通过船内液货泵将LNG从船载液货舱传输至外围LNG接收站。由于LNG属于低温易燃介质,同时LNG船在接收站的停靠时间有限制,所以LNG在液货装卸系统管路中的传输速度需控制在一定范围,通常在4m/s~6m/s之内,这对装卸系统的设计提出了极高的要求。常用的LNG船液货装卸系统由卸货泵、液货舱、管道、阀门及加热器和控制系统等辅助设备构成。这一安全要求和时间控制极严的流程由液货装卸系统保障完成。LNG船液货装卸组态设计软件就是采用图形方式,通过调用预先储存在部件库中的卸货泵、阀门、管道和接头等部件构建成一个完整的装卸系统[2],如图1所示,并自动形成计算程序,对整个液货装卸系统进仿真计算,可以得到LNG船各个液货舱的液货高度、装卸时间和各个主要管路节点的液体参数 (如压力、流量等)。如果仿真表明初始设计的液货装卸系统不满足设计要求,则可以通过修改图形、选择不同的液货泵等方式,重新形成新的装卸系统,进行计算,直到满足要求。
图1 装卸系统
2 组态设计软件的基本构成
LNG船液货装卸系统组态设计软件构建了图形界面、数据库和仿真计算三大功能模块以满足液货装卸系统模型组态搭建和装卸过程分析的要求。图形界面模块负责软件功能界面形成和液货装卸系统模型图搭建。数据库模块负责液货装卸系统设备数据库管理和模型数据记录。仿真计算模块对系统模型进行装卸过程计算,得到系统模型各个装卸时间点的参数情况。设计完成的LNG船液货装卸组态系统模型的基本组成为图形单元[3],图形单元由图像和数据两部分构成,图像由图形界面模块绘制而成,数据则通过数据库模块从系统设备数据库中读取。组态设计软件开发了种类齐全的图形单元,分别代表不同的系统设备,并配置具有详尽设备信息的数据库。通过图形组合对实际装卸系统进行抽象,建立部件之间的联系,形成简洁直观的点线图式系统模型,内部根据图像关系形成模型数据信息,完成配有图像外观和数据信息双层结构的组态系统搭建。直接调用仿真计算模块,根据模型数据信息,即可得到系统模型装卸过程的各参数情况。
2.1 图形界面设计
VC++6.0拥有强大的 Windows应用程序开发功能,利用其资源编辑器和MFC库,可以方便快速的生成用户界面程序,在此基础上修改界面程序,增添各项模型设计功能,完成软件界面的构造。模型设计界面如图2所示。界面上部首栏为菜单栏,包含整个软件的功能选项。次栏为工具栏,安放系统模型设计时需要的工具快键按钮。左侧是系统信息栏,添加入管网的信息能在该栏中显示和修改。系统信息栏上部为点信息框,显示输送管网节点位置、类型和压头等信息,其次为管信息框,显示管网内管道型号、管上附件和所连接液货泵的信息,最后是液货舱信息框,显示系统液货舱的情况。
图2 组态设计界面
系统模型图采用简单的点线式图形结构,以节点作为模型构造基础,直线表示装卸系统管路,撑起模型整体框架[4]。若采用简单的图元建立方式,则非常繁琐。通过观察部件模型外观和生成方法,发现大部分图元都有共性,如液货舱和管路都需要两个节点确定位置,液货泵和附件等都添加在管路直线上,所有图形的缩放和平移都是通过坐标位置的改变实现。采用面向对象的设计理念进行操作非常适合系统部件的共性,通过类的继承性质和虚函数,设计一个基类,以其为基础引出几个大类,再用大类派生出具体的图元。该软件中设计的基类CDraw定义如下:
class CDraw:public CObject//继承来自基本对象CObject
如果看新闻,你会以为国资委权力很大。从央企退出房地产领域,到某央企职工薪酬过高;从利比亚撤侨,到某央企海外投资受到巨额损失,似乎只要有关央企的新闻(特别是负面新闻),就会有国资委的身影要么勒令严查,要么顺应舆论做出决定,要么无奈辟谣。蒋洁敏的前任李荣融,也被很多媒体塑造成“国企沙皇”的角色。在他上任前,中国央企的总资产是8万亿左右,他离任时,这个数字增加到21万亿,而现如今,央企的资产更增加到30万亿左右。但这些只是中国80多万亿国有资产的一部分而已。
{
Public:
COLORREF m_Color;//颜色
int m_Order;//图元序号
CString m_Name;//图元名称
……//其他属性
Public://绘制图形函数
virtual void OnOpen();//双击图元性质
virtual void Serialize(CArchive&ar);//序列化
……//其他函数略
}
2.2 数据库设计
数据库模块分为数据库管理系统和数据记忆系统两部分。数据库管理系统处于后台运行,主要负责系统设备数据库的维护和管理,系统设备数据库存放LNG船液货装卸系统各设备的特性参数,供设计液货装卸系统模型使用。数据记忆系统伴随图形界面模块在系统模型搭建时自动调用,用以存放模型部件数据,记录模型数据间的关系,为仿真计算模块做数据准备。
该软件采用SQL Server 2008建立数据库管理系统,数据库结构设计为客户端/服务器模式,访问模式则运用ADO接口技术。根据LNG船液货装卸系统部件类型,系统设备数据库分为管道数据库、附件数据库、液货舱数据库和液货泵数据库,各库以数据表形式存放部件参数,库内设有部件型号编号,记录部件类型在库中位置,数据表每行保存某一型号部件的所有参数信息,每列保存类别参数的不同型号部件特性数据。用户访问数据库时,根据部件编号,程序内部找到部件数据,赋予部件对象数据信息[5]。
数据记忆系统在用户建立LNG船液货装卸系统模型时处于程序内部执行,采用MFC库中的CObList类,以列表形式存储数据信息。数据记忆系统根据装卸系统部件类别和安装关系分为管路、液货舱和液货泵3部分记录系统模型信息[6]。管路信息包括系统模型中的管道和添加至管道的附件,按照添加顺序依次记录至管路信息列表中,特别保存了管路的进出口点号,用以实现管路间的连接关系。液货舱列表记录了各液货舱的型号和形状参数等数据信息,保存了与液货舱连接的液货入口管路编号,作为液货舱与装卸系统管网部分的数据联系。液货泵列表记录了装卸系统中提供动力源的液货泵的各项数据信息,并保存了液货泵添加至管路的管路编号,用以液货泵数据与其他部件数据的匹配。数据记忆系统不仅记录了LNG船液货装卸系统模型数据,更重要的是建立了模型部件数据间的联系,为装卸系统的仿真计算准确性提供了保证。
2.3 仿真计算模块
仿真计算模块通过导入数据记忆系统记录的LNG船装卸系统模型数据信息,对设计的系统模型液货装卸过程情况进行计算。整个仿真计算过程通过时间离散的方式,求解各个时间状态的管路流量情况和节点压头情况,并推算出液货舱内液货容量情况,综合全部时间状态装卸系统各数据参数,累计得到总装卸时间。为保证整个仿真计算过程的准确,设计了精度较高的管网计算方法——有限单元法[7]。
LNG船液货装卸系统管网部分比较复杂,具有多回路多支路的特点,若采用传统的环路流量法和节点压力法,则实现程序非常复杂同时计算效率很低。为了解决这一问题,将有限元的思想运用于装卸系统管网计算中,将管道和上面的附件视为管路单元,设计了以管路单元为基础的有限单元法。该方法通过建立以管路流量和进出口节点压头为变量的管路单元方程组,采用迭代和节点压头逼近的方式求解方程组,获得装卸系统管网在任意时间的完整数据,同时经过设置合适的收敛和逼近条件,提高求解速度。
3 液货装卸系统组态设计
LNG船液货装卸系统组态设计软件建立的装卸系统模型不仅要有清晰的图形显示还要包含详尽的系统数据信息,为进一步实现的系统仿真计算提供基础,图形与数据的结合也是该软件与CAD等模型设计软件的主要区别。软件的设计采用组态软件的理念,设计了类、对象和列表三层数据形式的组态结构。软件内部应用VC++类与对象的概念,以MFC中的CObject为父类,构建了CPipeobject管路设备基类,再定义了装卸系统各部件子类,部件类中包含了不同部件的各项参数和相关函数。在装卸系统模型建立的过程中,根据装卸系统部件名,在设计界面工具栏中创建了多个控件按钮,点击按钮时,软件内部依据对应的部件类生成部件对象[8],外部界面则弹出部件参数选择界面,该界面通过数据库管理系统连接系统设备数据库,用户选择相应的部件参数,给部件对象赋值,如此完成一个拥有完整部件信息的模型控件的创建,添加入装卸系统模型图。同时处于程序内部的数据记忆系统根据部件类型,将添加入模型的部件数据信息记录至部件列表中。模型建立完成后,界面上显示的是图形化的液货装卸系统模型,软件内部保存的则是模型数据列表,如此完成图形与数据的联系。装卸系统组态结构如图3所示。
3.1 管 路
管道和附件构成了液货装卸系统的管网部分,管网作为联系液货舱与外部传输设备的纽带,是LNG液货装卸系统的核心部分。LNG液货装卸系统中的输送管道一般使用不锈钢管,附件则包括阀门、弯管、三通接头、滤器等。软件中分别建立了管道类和附件类,规定了管道和附件的各项参数结构。实际装卸系统中,附件都安装在管道上或是管道之间接口处,软件中,将管道和附件视为整体,组合成管路。管路类结合了管道类和附件类的信息,增加了影响装卸系统阻力情况的管路阻力参数并建立其计算函数。点击管道和附件控件,从管道和附件数据库中选择需要的型号,就能在装卸系统模型中加入管路图形。
图3 系统组态结构
(1)管路数据结构:管道类CPipe和附件类CFitting中参数类型定义相同,有字符串型的编号和型号参数及浮点数型的特性参数组成,管道特性参数包括管长m_Length、管径m_Diameter和表面粗糙度m_Roughness等,附件特性参数包括尺寸m_Metric和局部阻力系数m_Epsi等。结合二者信息后的管路类CTPipe,沿用了管道的部分特性参数如管长、管径等,同时结合管道表面粗糙度和附件局部阻力系数,定义了浮点型数据管路阻力系数m_TS,并建立了管路阻力计算函数CalculateTotalS计算固定管路流量时管路阻力的大小。该函数首先判断流体在管路中的流动方式 (层流或是紊流),按照流动方式求出管路沿程阻力系数,结合管路附件的局部阻力系数,得到管路总阻力系数,最后计算管路阻力的大小。管路对象映射管路类,根据数据库信息生成,它包含了管路类的所有数据和函数关系。管路添加入系统模型后,管路对象信息存入以管路编号为标识的管路列表。
(2)管路图形构造:管路是装卸系统模型的 “骨架”,联系装卸系统的所有部件。软件内部通过编号的方式将管路与管路、管路与液货泵、管路与液货舱联系起来[9]。外部界面上,管路图形设计为液货泵图形的载体,同时也作为液货舱图形的连接线。管路图形以直线的样式显示,必须画在两节点之间,根据画线方向定义管路方向,在直线作箭头标识,程序内部默认该方向为流体在管路内流动方向,管路图形如模型设计界面图2中模型直线所示。
3.2 液货舱
现有的比较成熟的液货舱类型主要有球型和薄膜型[10]。液货舱是装卸系统的源头,舱内液货高度和压力对输送过程的影响很大,尤其是装卸过程中,液货高度的变化对整个装卸系统流量、压头等参数的变化起关键作用,因此液货舱类中除了舱的型号、形状参数外,还需舱体积高度的变化关系。添加液货舱模型部件时,软件调用液货舱类,用户在液货舱数据库中选择液货舱型号,在参数设定界面输入液货舱形状数据,就能在装卸系统模型中加入液货舱图形。
(1)液货舱数据结构:液货舱类CTank包含了液货舱的编号、类型参数、形状参数和高度体积函数。类型参数m_strType以字符串形式定义,形状参数全部定义在浮点型数组m_fPara中,编写高度体积函数V_H_function求解固定液货高度时的液货体积情况和固定液货体积时的液货高度情况,不同类型液货舱高度体积的对应关系不同,因此在CTank类中,根据软件数据库自带的舱类型,建立了各类型的高度体积函数。需要生成液货舱对象时,在液货舱数据库中选择液货舱型号,软件内部根据m_str-Type,分配m_fPara数组容量及结构,通过条件语句if(m_strType=="")选择对象的V_H_function,完成对象的数据信息输入前准备,之后弹出液货舱参数设定界面。参数设置界面如图4所示,显示液货舱对象信息,信息属性与液货舱类一一对应,包括舱类型及需要输入的形状参数,并提供舱三视、立体图,完善数据信息后,能够通过连接舱V_H_function的查看参数按钮观察液货任意高度或体积时的体积高度情况。确定添加后,将液货舱对象加入装卸系统模型,同时将液货舱数据信息存入液货舱列表。
图4 液货舱参数设置界面
(2)液货舱图形构造:通常液货舱采用双泵装载,液货舱与两根输送管路连接。图形界面中,液货舱设定为必须与节点相连,若节点为某管路图形的起始点,则通过编号联系液货舱和管路,以连接管路数确定液货舱装卸模式(单泵或双泵)。添加液货舱时,选择液货舱数据库中的液货舱型号,在参数设置界面输入形状参数,确定后植入数据信息,生成液货舱对象,同时调用图像绘制程序。液货舱图形如模型设计界面图2中蓝色背景矩形所示。
3.3 液货泵
液货泵作为液货装卸系统的动力来源,是保障装卸作业定时定量完成的重要设备[11]。液货泵性能参数中,水力性能曲线对装卸作业进程影响最大,因此在液货泵类中,定义水力性能函数模拟扬程与排量的变化趋势[12]。各型号液货泵拥有固定的性能参数,软件液货泵数据库中预先保存有常用的液货泵数据,同时也设定了增添入口,供用户补充未有型号。点击液货泵控件,从数据库中选择型号,就能在装卸系统模型中加入液货泵图形。
(1)液货泵数据结构:液货泵类CPump包含了液货泵的编号、型号参数、性能参数和性能函数。编号m_nID、型号m_strType和性能参数参数都以字符串型定义。性能参数表征了该型号液货泵的额定指标,包括额定流量m _StdFlow、额定扬程m_StdHeight、额定功率m_StdPower和汽蚀余量m_Cavmargin等。CPump中保存了8组泵排量与扬程的实验数据,以浮点型数组保存为m_Capflow [i]和 m_Caphight[i],采用最小二乘法拟合的方式[13],通过实验数据合成水力性能函数Q_H_function,同时为了排量与扬程对应的方便,转化Q_H_function,再构建了一个固定扬程求排量的函数H_Q_function。软件按照软件中加入了液货泵参数界面供用户查看液货泵性能使用,如图5所示,界面中的数据来自液货泵数据库,与CPump中的数据结构一一对应。流量扬程曲线根据水力性能函数Q_H_function绘制而成。当用户补充新液货泵到液货泵数据库中时,该界面中的数据由用户手动输入。液货泵添加入系统模型后,液货舱数据信息存入液货泵列表。
(2)液货泵图形构造:实际装卸系统中,液货泵安装在液货舱底部,与输送管路连接。在软件图形界面中,液货泵设定为必须添加在管路图形上,液货泵信息与所加管路信息通过二者编号联系。添加液货泵时,软件根据所选液货泵型号,植入数据信息,生成液货泵对象,同时调用图像绘制程序[14]。液货泵图形在模型设计界面图2中,为内部带有方向箭头的红色圆圈,箭头方向同添加管路的方向一致。
图5 液货泵参数界面
4 实例分析
图1为常见的LNG船双泵五舱液货卸载系统,卸货泵的额定扬程均为140m,额定排量为1500m3/h,通过该组态设计软件构建系统模型如图6所示,各液货舱容量如表1所示。通过仿真计算求得各时间状态点的系统情况,表2显示了液货装卸过程中2小时、5小时和14小时状态系统管网流量情况,图7是各舱内液货高度变化图,该系统卸货总时间为16小时10分。仿真计算得到数据与实际系统装卸过程情况相符,通过LNG船液货装卸系统组态设计软件建立的系统模型能够较好的满足LNG船液货装卸系统系统设计的需要[15]。
图6 液货装卸系统模型
5 结束语
LNG船液货装卸系统组态设计软件采用 “组态”理念开发,拥有简洁直观的模型设计界面和种类齐全的系统设备控件,配有详细的装卸系统设备数据库,能够方便的建立具有图形和数据双层结构的液货装卸系统模型,自动调用程序进行模型液货装卸流程仿真计算,得出装卸流程情况,用户可根据计算结果调整系统模型,达到实际设计要求。LNG船液货装卸系统组态设计软件填补了国内该设计软件的空白,为我国自主研发设计该装卸系统提供了可靠的工具。
表1 各舱容积
表2 系统模型数据
图7 五舱液货高度变化
[1]GU Zhenli.Models of optimization in application program of SQL sever database[J].Computer Engineering and Design,2006,27(15):2884-2886 (in Chinese).[谷震离.SQL Server数据库应用程序性能优化方法 [J].计算机工程与设计,2005,27(15):2884-2886.]
[2]Huxidan Jumahun,JIANG Xinge,Gulimire.Analysis of software system structual model in common use [J].Computer Engineering and Design,2006,27 (14):2624-2625 (in Chinese).[乎西旦居马洪,蒋新革,古丽米拉.常用软件体系结构模型的分析 [J].计算机工程与设计,2006,27 (14):2624-2625.]
[3]HUANG Xiangying,LIU Feng.Design and realization of Linuxbased embedded graphic configuration software [J].Computer Engineering and Design,2008,29 (3):672-674 (in Chinese).[黄贤英,刘峰.基于图元的嵌入式组态软件的设计与实现 [J].计算机工程与设计,2008,29 (3):672-674.]
[4] MO XiaoQi, WANG YaoNan.Design and development of graphic user interface for configuration software [J].Computer Engineering and Design,2006,27 (1):49-51 (in Chinese).[莫晓齐,王耀南.组态软件用户图形界面的设计与开发 [J].计算机工程与设计,2006,27 (1):49-51.]
[5]WANG Daoqian,WEN Junhao.Study for object-oriented technology in database system design [J].Computer Engineering and Design,2007,28 (14):3539-3541(in Chinese).[王道乾,文俊浩.数据库系统设计中面向对象技术研究 [J].计算机工程与设计,2007,28 (14):3539-3541.]
[6]LI Tongying.Development of main memory mechanism database used for HLA real-time simulation [J].Computer Engineering and Design,2008,29 (3):573-575 (in Chinese).[李同英.用于HLA实时仿真的内存机制数据库开发 [J].计算机工程与设计,2008,29 (3):573-575.]
[7]LI Bing,ZHANG Leihui.Finite element method based on steady-state analysis of pipeline [J].Surface Engineering of Oil and Gas Field,2008,5 (27):16-17 (in Chinese). [黎冰,张烈辉.基于有限单元法的管网稳态分析 [J].油气田地面工程,2008,5 (27):16-17.]
[8]HE KunJin,CHEN ZhengMing,LIU Jing.Graphic system based on user-defined feature and its application in pipe net modeling[J].Computer Engineering and Design,2007,28(22):5549-5551 (in Chinese).[何坤金,陈正鸣,刘景.自定义特征的图形系统在管网建模上的应用 [J].计算机工程与设计,2007,28 (22):5549-5551.]
[9]LIU Jing,CHEN Zhengming,WANG Feng,et al.Design of pipe net modeling system used in water power characteristics analysis[J].Computer Engineering and Design,2006,27(15):2782-2784 (in Chinese).[刘景,陈正鸣,王丰,等.用于水力特性分析的管网建模系统设计 [J].计算机工程与设计,2006,27 (15):2782-2784.]
[10]Romero Javier,Mosquera Ignacio.Evolution of LNG carrier design [C].Maritime Transportation and Exploitation of Ocean and Coastal Resources,Proceedings of the 11th International Congress of the International Maritime Association of the Mediterranean,2005:883-892.
[11]GUAN Xinfan.Handbook of modern pump technology [M].Beijing:Aerospace Press,1995 (in Chinese).[关醒凡.现代泵技术手册 [M].北京:宇航出版社,1995.]
[12]TAN Minggao,LIU Houlin,YUAN Shouqi.Caculation of hydraulic loss in centrifugal pumps [J].Journal of Jiangsu University,2007,28 (5):405-408 (in Chinese).[谈明高,刘厚林,袁寿其.离心泵水力损失的计算 [J].江苏大学学报,2007,28 (5):405-408.]
[13]LU Jian.Least squares method and its application [J].West China,2007,6 (12):19-21(in Chinese).[陆健.最小二乘法及其应用 [J].中国西部科技,2007,6 (12):19-21.]
[14]ZHANG Jun.VC++proficient of example [M].Bingjing:Machinery Industry Press,2009 (in Chinese).[张军.Visual C++实例精通 [M].北京:机械工业出版社,2009.]
[15]ZHANG Xueping.Research progress about class testing of object-oriented software [J].Computer Engineering and Design,2006,27 (11):1954-1956 (in Chinese).[张雪萍.面向对象软件类测试研究新进展 [J].计算机工程与设计,2006,27 (11):1954-1956.]