基于WPF的脐带缆设计系统研发

2018-05-15 08:31王颖隋国荣
软件导刊 2018年4期

王颖 隋国荣

摘 要:水下生产系统脐带缆作为水下控制系统的关键组成部分之一,是连接上部设施和水下生产系统之间的“神经和生命线”。根据不同用途脐带缆的应用特点,以及国内外主要脐带缆制造商的产品现状和技术特点,明确了脐带缆设计系统的功能需求。结合各种先进的软件开发技术,对脐带缆基本组件进行建模,研发出一套基于WPF(Windows Presentation Foundation)的脐带缆设计系统,采用数据驱动的方式实现灵活的可编辑与可配置性,3D技术可以准确展现脐带缆截面设计过程中各组件的分布情况以辅助设计,从而有效地缩短项目生产周期,节省人力物力成本,具有很强的实用性。

关键词:WPF;水下生产系统;脐带缆;三维仿真

DOI:10.11907/rjdk.172466

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)004-0097-04

Abstract:As one of the key components of the underwater control system, umbilical cable is the “nerve and lifeline” between the upper facilities and underwater production system. According to the characteristics of umbilical application for different purposes, and the product status and technical characteristics of the major umbilical manufacturers at home and abroad, the functional requirements of umbilical cable design system are clarified, and the basic components of umbilical cable are modeled with various advanced software development technique. A set of WPF (Windows Presentation Foundation) based umbilical cable design system is developed, using data-driven way to achieve flexible editableFlexible edition and configurability is achieved by the data-driven method, 3D technology can accurately show the componet distribution in the process of umbilical cable cross-section design to assist the design, which can effectively shorten the project production cycle, save manpower and material resources and has strong practicality.

Key Words:WPF; underwater production system; umbilical cable; three-dimensional simulation

0 引言

水下生產系统脐带缆主要由电缆、光缆、液压或化学药剂管(钢管或软管)、聚合物护套、铠装钢丝以及填充物等组成,主要用于水上设备和水下生产系统之间电力、信号、水压以及化学介质等的传输[1]。脐带缆的结构设计不只是简单地将各个单元进行罗列排布,而应根据工程应用要求,同时考虑材料选择、结构分析、工艺设计、力学分析等要素,是多学科的综合[2]。国外脐带缆技术起步较早,已经有一些针对不用应用目的和使用需求的脐带缆所开发的脐带缆设计软件。例如,Knapp研发的CableCAD软件具有较为完备的图形建模系统、有限单元自动生成系统、结构分析系统等,但目前仍局限于二维模型的建立与分析;USAP是Aker Solution公司开发的软件,主要针对单独螺旋单元缠绕中心核的脐带缆结构,可以同时计算极端应力和评估疲劳[3]。目前国内能用于脐带缆设计与分析的软件有“光电复合脐带缆”和“水下生产系统脐带缆”设计分析软件。这两款软件是863计划课题“水下生产系统脐带缆关键技术研究”Ⅰ期的研究成果,但存在人机交互不够友好、结构模型不够丰富、分析功能不足等问题。因此,利用新技术研发的脐带缆设计系统应具有更加友好的用户界面、丰富的结构模型、完善的分析功能,并具有可扩展性、可配置性等特点。

根据脐带缆设计系统的应用特点,结合各种先进软件开发技术,并考虑到系统设计的通用性,提出以下设计思路:采用面向对象技术进行脐带缆设计系统的分析与实现,利用模块化软件结构和框架提高系统的通用性和扩展性,优化界面布局和功能实现方法,提升人机交互界面的友好性和灵活性。

1 总体设计

脐带缆设计是一个循环往复的过程,需要进行反复设计和修改。首先根据掌握的各构件材料性能、功能要求以及工艺可行性,进行初步的截面设计,然后根据实际工况要求进行力学计算,初步判断各单元位置和结构尺寸是否满足力学要求,并利用计算中得出的外径重量比等参数,对初步截面设计进行修正,之后再进行力学计算,循环数次,最后得到符合要求的脐带缆结构设计[4]。

为了满足脐带缆设计流程的要求,系统应具备以下基本功能:①一套完善的数据结构。对于确定的结构数据,有与之对应的唯一的2D、3D图形和电磁热与力学输出;②对基本单元进行建模,基本单元亦可组合成自定义单元,便于进行结构上的组合。针对较为常见的脐带缆结构,系统应具有一定的自动布局能力;③可配置的材料性能表,可添加材料密度、电阻率、拉伸模量、泊松比等参数。通过系统设计得到的结构数据结合材料性能表,可得到力学性能和电磁热性能输出。

本软件系统的逻辑结构主要围绕:电缆模型、结构设计、参数输入、结构输出、电磁热力输出展开,如图1所示。

2 系统架构设计及技术概述

脐带缆设计系统采用三层架构体系,底层为数据层,用于脐带缆设计数据存储;中间层为数据交换及逻辑处理层,用于与数据层进行数据交换以及进行系统运行的逻辑处理;最高层为表示层,实现用户界面,将数据和流程展示给用户[5]。

脐带缆设计系统的研发综合应用多种语言和技术:开发工具使用Visual Studio 2013,软件框架建立在Microsoft.NET Framework 4.6上,综合应用C#、XML(eXtensible Markup Language,可扩展标记语言)、XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)进行开发。C#是一种编程语言,用于软件系统框架搭建与复杂逻辑控制;XML用于定义数据驱动文件及配置文件,具有简单开放、自我描述、统一规范等特性;XAML是XML的子集,用于软件界面布局和外观设计,是WPF、Silverlight等技术的脚本语言。同时,应用WPF技术进行用户界面开发。

WPF应用程序相对于传统的Windows应用程序,主要有以下区别和优势:

(1)界面描述与程序代码可分离。通过对可扩展应用程序標记语言XAML的声明式编程,WPF可实现软件系统界面描述与程序代码的分离,使设计人员和程序员可更好地协作。WPF运行在.NET架构下,为用户界面、2D/3D图形、文档和媒体提供了统一的描述和操作方法。

(2)图形效果丰富。WPF应用程序在底层使用DirectX(一套硬件加速的图形API),这意味着可以使用丰富的图形效果,创建出现代化的用户界面和可视化效果。用户可定义集合表面、材料、3D变换、灯光和摄像机,从而高效地完成3D图形开发[6]。

3 系统功能模块分析及设计

根据脐带缆设计系统的功能需求,采用面向对象的方法对系统进行分析与设计。对脐带缆结构本身及软件系统进行分析,将对象的共性抽象出来,对其进行分类,使用类来描述同一类问题,然后对类进行封装和继承。通过类的封装、继承和多态3种重要特性作为基本建模原则,采用自底向上的分析、设计方法,极大地提高了软件的通用性和扩展性[7]。

3.1 单元建模与数据结构

脐带缆具有可按层次关系进行复杂组合的结构特性,一般为螺旋结构,由以下基本单元组成:电单元、光单元、管单元、填充单元、护套单元和铠装钢丝单元等。脐带缆具有多层性,由内到外层次分明,外层构件以一定角度螺旋缠绕于内层之上[8]。不同功能的脐带缆由不同的基本单元组成,单元的排列方式、角度等位置关系直接影响脐带缆的力学性能,包括拉伸刚度、弯曲刚度等[9]。

本系统从脐带缆复杂的几何结构中对基本单元进行抽象,归纳为束丝单元、圆线单元、管单元和包带单元。其中,束丝单元可派生为导体、光纤和钢丝;圆线单元可派生为铠装和填充;管单元可派生为钢管、软管、绝缘、护套和编织。每个单元有各自的属性,包括内外径、材料、颜色、排列方式(直或绞合)等。这些单元可先组合成自定义单元,最后再附加到脐带缆整体设计中。从脐带缆的多层性出发,本系统遵循由内而外的设计原则,每一层可添加基本单元或自定义单元。层也有自己的属性,包括内外径、节径比、排列方式等,每一层叠加组合成最终的脐带缆设计方案。

3.2 界面设计

用户界面设计是对软件操作逻辑、人机交互的整体设计,主要确定软件界面的逻辑结构、分类和层级关系等[10]。脐带缆设计系统采用XAML语言实现界面元素的外观、布局和显示,采用C#语言实现界面元素的行为和复杂逻辑控制,可做到界面显示与底层逻辑的分离。

脐带缆设计系统的主界面窗口主要由菜单栏、功能区、2D绘图区、设计树、属性区、单元区和方案区组成,如图2所示。

(1)设计树:将当前脐带缆结构以树形显示,在右键菜单中可方便地对某一单元或层进行属性修改。

(2)属性区:显示当前选择的单元或层的属性信息。

(3)单元区/方案区:一个项目下可设计多个方案备选,保存在方案区;一个方案下可保存多个自定义单元,保存在自定义单元区,点击自定义单元即可添加至脐带缆的当前层或下一层中。

(4)2D绘图区:显示当前设计脐带缆的二维截面图,可对图形进行放大、缩小、更改背景颜色等操作。

(5)功能区:包含回退/重做、打印、显示3D图、添加单元、配置材料性能表等操作。

脐带缆设计系统添加单元的窗口如图3所示。图3为添加束丝单元的窗口,可在窗口内设定束丝单元参数和层参数。点击“计算”按钮,可在窗口中直接得到相关计算结果,包括截面积、电阻等参数,以辅助当前设计,判断是否符合标准规范。计算结果随当前添加的单元而不同。

3.3 三维图形显示

脐带缆结构的3D显示对于脐带缆设计具有重要意义,可以直观地发现设计中的问题,比如绞合方向错误、单元重叠等问题,并使用户在设计时具有直观概念。在本系统中,脐带缆三维图形的显示使用WPF中的以下组件共同创建:①建立一个透视相机(Perspective Camera)并设置其坐标,以决定整个脐带缆模型的可见区域;②物体网格(Mesh)。通过利用GeometryModel3D类对象的Geometry属性创建一个网格,从而定义一个三维脐带缆模型的形状;③物体材质(Material)。通过在模型表面创建一种材质,以定义脐带缆模型的表面显示;④一个光源(Light)。通过定义一个光源以照亮模型,使其可见[11]。

在上述方法下,本系统实现了将脐带缆中各小结构按由里到外不同的剥皮高度呈3D显示,如图4所示。如果想调整各层纵向长度的比例,可以修改层间高度差调节的数值;按住鼠标左键任意方向拖动鼠标,可以改变3D图形视角;按住鼠标右键上下拖动,可以改变3D图形大小。

4 功能测试

为了证明本文所研究的脐带缆截面设计系统的有效性,针对南海东部海域流花油田的某一项目,将本文系统与国外流行的脐带缆设计软件CableCAD进行对比,如表1所示。

从表中可以看出,本系统设计结果与CableCAD设计结果数值基本吻合。

5 总结与展望

本文成功开发了一套基于WPF的脐带缆设计系统,介绍了脐带缆建模过程,分析了界面设计及3D显示功能中涉及的关键技术,并对功能进行了测试。结果表明,本系統运行稳定,显示内容丰富,界面友好,计算结果可靠,操作方便快捷,具有重要的工程应用价值。

参考文献:

[1] 郭宏,屈衍,李博,等.国内外脐带缆技术研究现状及在我国的应用展望[J].中国海上油气,2012,24(1):74-78.

[2] 杨志勋.脐带缆结构设计与分析方法研究[D].大连:大连理工大学,2012.

[3] 马国君.考虑温度场效应的脐带缆截面结构设计与优化[D].大连:大连理工大学,2015.

[4] 高欢,郭宏,孙科沸,等.水下生产系统脐带缆初步结构设计[J].电线电缆,2011(6):12-16.

[5] 周光亮.浅释.net三层架构的设计与实现[J].科技信息:学术版,2008(26):202,204.

[6] MATTHEW MACDONALD,王德才.WPF编程宝典[M].北京:清华大学出版社,2013.

[7] 林云.面向对象技术与软件工程[J].科技信息,2010(6):259-260.

[8] 郭宏,屈衍,卢青针,等.深水水下生产系统脐带缆结构设计[C].第十五届中国海洋(岸)工程学术讨论会论文集,2011:155-160.

[9] 郭宏,高欢.水下生产系统脐带缆温度场与载流量分析的有限元方法[J].电线电缆,2013(3):5-8.

[10] 王鹏,崔静.新一代界面技术WPF的架构及应用[J].成都纺织高等专科学校学报,2011,28(1):18-20.

[11] 尚旭明,张立成.基于WPF的三维仿真系统的研究与应用[J].计算机技术与发展,2016,26(9):39-42.

(责任编辑:黄 健)