基于NAPA Designer的钻台结构参数化设计
2023-10-27唐旭东周书敏张鹏飞
唐旭东 周书敏 张鹏飞
(中国船舶及海洋工程设计研究院 上海 200011)
0 引 言
NAPA Designer是由芬兰NAPA公司开发的全新一代船舶三维设计软件,主要用于船舶和海洋工程总体和结构设计,与船级社专用软件和其他通用软件之间有较多接口,并逐渐融入其他功能且日臻完善。早期NAPA软件的结构模块(NAPA Steel)基于Linux系统开发,用户通过宏命令进行二次开发[1-2],界面和交互功能都相对较弱。新一代的NAPA Designer软件基于Windows系统平台开发,提供了基于C#语言的二次开发接口。尽管目前公开的二次开发实例较少,但基于NAPA Designer软件提供的大量二次开发接口以及C#语言简单、类型安全和面向对象等诸多优点[3],更具开发应用前景。
钻台结构是钻井船或钻井平台中核心模块(即钻井模块)的载体,是井架和众多钻井设备的支撑结构[4]。钻台通常由钻台面和支腿结构组成,钻台面布置井架、钻机、转盘、绞车、立根盒和司钻房等钻井设施,钻台面通过支腿与钻井船或钻井平台的主体结构连接。钻台结构设计既要满足作业功能的需求,又受到船体/平台尺度和重量控制等因素的制约,在初步设计阶段可能存在较多不确定因素,需要根据实际空间布置需求及结构强度要求等作多种方案的对比优化。
本文以某钻井船的钻台结构为研究对象,基于NAPA Designer软件开发了钻台结构的参数化设计模块,可快速获取多个钻台结构方案,用于可视化展示、提取质量重心以及三维有限元分析等工作。
1 参数化设计流程
参数化设计是将工程本身编写为函数与过程,通过修改初始条件并经计算机计算得到工程结果的设计过程。本文钻台参数化设计以钻台布置需求为基础,提取钻台面高度、主桁结构位置和钻台支腿尺寸等为设计参数,通过二次开发的界面进行数据交互,输出得到钻台结构模型,并以质量重心控制、规范强度要求等作为约束,形成设计方案供优化选择。
钻台参数化设计过程中,首先需对钻台的结构特征进行分析,提取出关键控制参数。钻台结构通常由钻台面和支腿两部分组成。钻台面以井架支撑底座、转盘、钻井绞车和其他重型设备底座为基础布置主桁框架,再选择合适的位置通过钻台支腿与主船体或平台的主体结构相连接[5]。钻台结构的关键参数主要包含钻台面高度、边界范围、主桁结构位置、支腿和支撑肘板尺寸,以及各构件的板厚、材质等,图1是某钻井船钻台结构示意图。
图1 钻台结构示意图
其次,根据特征参数建立参考面和板元。在NAPA Designer软件中,参考面一般是指没有厚度的几何面,基于参考面生成的可赋板厚、材质等属性的对象为面对象(或称板元)。参考面是建立结构板架的基础,既可作为板架的基础面,也可作为板架的边界,通过指定参考面和边界对象生成板元。板元与参考面及边界之间存在拓扑关系,通过修改后者的控制参数即可实现关联板架的动态更新。
随后,将生成的板元添加到结构树中,即可对板元指定结构类型、板厚、材质、加强筋、开孔等特性,构成一个完整的结构板架。通过该步骤的重复,将钻台面甲板、周界围壁板、主桁结构、支腿围壁板和支腿支撑肘板等分别建立板元并添加到结构树中赋予属性,完成整个钻台结构初步模型。
最后,通过钻台模型提取质量重心数据并判断其是否满足设计要求,且通过钻台与周围设备干涉检查,判断布置空间是否满足设计需求。此外,根据计算需求生成有限元网格模型,导入通用有限元软件进行强度分析,根据计算结果判断强度是否满足设计需求;根据设计要求对模型方案进行反馈、修改与优化,最终完善后的模型可用于材料明细统计、辅助出图和进一步细化分析计算等。
在NAPA Designer软件中,从提取控制参数建立参考面,到由参考面建立板元并添加到结构树,再到添加属性形成结构板架,最后由各板架组成完整的钻台结构模型。在这一系列过程中,各控制参数零散地分布在各类不同层次的构件定义中,不便于识别和修改。因此,通过二次开发自定义交互界面,将各控制参数集中在一个界面,不仅显示直观,也便于管理和批量化操作。参数化设计流程见下页图2。
图2 参数化设计流程
2 参数化设计实现过程
参数化设计实现过程主要包含开发自定义界面进行数据交互,根据特征参数建立参考面,由参考面建立板元并添加到结构树,添加筋和开孔等特性后形成结构板架,再由多个板架形成三维模型,最后进行布置干涉检查、质量重心统计和有限元分析等。
2.1 自定义界面
NAPA Designer软件提供了基于C#语言的二次开发接口NAPA Designer Scripting,通过NAPA对象模型读写NAPA数据库,并且提供可视化交互界面(包含对话框和图形等)[6],为NAPA Designer用户开发定制化的功能提供便捷。Scripting代码通过NAPA Designer提供的“Script Editor”模块编写和调试,代码框架通常由引用命名空间、主程序和用户界面等部分组成(见图3),其中引用命名空间为包含一系列命令的集合,例如:使用结构建模相关命令需引用Napa.Core.Steel,使用对话框需引用Napa.Gui、System.ComponentModel等。
图3 Scripting代码一般框架
主程序是实现用户需求的关键代码,包括用户界面显示数据的初始化、数据读写处理、驱动模型生成等,可由多个子程序构成。用户界面是基于对话框型式的可视化界面,主要用于参数化模型中关键控制参数的人机交互。
用户界面基于对话框,由各类控件组成,在钻台参数化设计中,主要采用编辑框、选择框等控件即可满足常规信息的交互。定义控件的代码主要包含类别(Category)、显示名称(DisplayName)、读写函数(get; set;)和其他附加属性。通过Category实现控件的分组,DisplayName为控件显示在界面的名称,在读写函数中定义参数名称和数据类型,参数名称为代码中引用的名称,具有唯一性;数据类型可包含整型、双精度型、字符串型和布尔型等,指定类型后,控件只能输入相应类型的数据。数据类型与功能见表1。
表1 数据类型与功能
以生成型材库的选择控件为例,可通过自定义函数(GetProfileAlternative)读取模型中型材库名称并转换为数组,动态选择(DynamicAlternatives)属性使控件以列表框呈现,列表内容即为型材库名称数组中的内容。主要代码和实现效果如图4所示。
图4 控件实现示例
针对钻台参数化设计过程中不同类型的参数制定相应的控件,将控件按区域进行分组并形成用户自定义界面,如图5所示。
图5 用户自定义界面
2.2 建立参考面
建立参考面之前首先要创建NAPA坐标系。坐标系是参数化建模的基准,NAPA Designer软件采用船舶坐标系,即纵向轴(X)向艏、横向轴(Y)向左、垂向轴(Z)向上为正,长度单位为m。通过分段式定义肋骨间距、纵骨间距、强框间距和垂向骨材间距。在NAPA Designer软件中,通常X向坐标以#10、#10.5、#10+0.3等形式表达,Y向坐标以#L10、#L-10等形式表达,Z向坐标以#V10、#V10+0.1等形式表达,各向坐标也可通过绝对值进行定义,具体根据用户使用习惯确定。
NAPA Designer软件中的参考面主要有平面、折角面和曲面等类型,其中平面主要用于甲板、舱壁等结构的参考面,折角面主要用于阶梯型平台、有折角的内壳舱壁等结构的参考面,曲面主要用于外板、圆柱体和流线形上建外围壁等结构的参考面。在钻台参数化设计中,参考面主要是平面,由位置和法线方向2个参数确定,实际涉及的参考面较多,但定义方法一致,本文仅列出其中一部分,见表2。
表2 参考面输入参数
以钻台甲板1为例,参考面名称为 S.DFDK1,法线方向为Z方向,位置为28.0 m,定义参考面的语句为:
参考面的法线方向一般确定后无需变化,因此只需关注具体位置。程序首先判断模型数据库中是否存在名称为“S.DFDK1”的参考面,若存在则提取其定义语句并解析出数值28.0,否则就采用预设值显示在用户界面对应的控件中。用户修改该值后,生成新的定义语句(strDefString),调用Geometry.RunDefinition(strDefString),即可完成相应参考面的创建或更新。其主要代码见下页图6。
图6 创建或更新参考面的主要代码
2.3 建立板元
作为结构板架的最小组成单元,板元基于参考面,并以其他参考面、坐标值或参数化曲线为边界而创建(见图7):甲板、舱壁大平面板等具有封闭边界的板元以参考面为边界;大肘板、桁材等存在自由边的板元通过参考面+参数化曲线创建。NAPA Designer软件的参数化曲线(parametric curve,PCUR),可用于构建板元的自由边边界、面内开孔等。
图7 典型板元
通过代码创建和修改板元的实现过程与更新参考面的过程类似,不同的是需将板元加入结构树中。结构树是组织和管理整个结构模型的集合,只有加入结构树中的对象,才能赋予其板厚、材质、加强筋等特性。结构树中添加和删除对象的操作主要通过IHierarchicalArrangement接口实现,见图8。修改自定义界面中的控制参数,即可控制加入结构模型中的板元对象,实现参数化控制的目的。
图8 结构树添加对象主要代码
2.4 添加结构属性
板元加入结构树后,可赋予其材质、加强筋、板厚和开孔等特性,即成为1个板架结构。二次开发中创建各类属性涉及的主要接口/方法见表3。
表3 创建属性涉及的主要接口/方法
以创建加强筋为例,根据用户设定的位置批量化创建板元上的加强筋,通过代码语言判断避开舱壁和主桁位置,以避免构件重合。首先读取用户界面的设定参数,通过代码将其解析为数组,存储需要创建筋的坐标位置;随后根据数组内的各项数据创建加强筋的轨迹线,并设定筋的类型、尺寸、朝向、材质、端部边界和端切形式等参数;最后通过IEditableStiffener接口创建加强筋Stiffeners,并赋予目标板元,见下页图9。
图9 创建加强筋主要代码
在NAPA Designer软件中结构板架上的板厚、材质、加强筋和开孔等属性也可通过共享方式赋予其他对象,见下页图10。将肘板A上的加强筋复制到肘板B和肘板C,若修改肘板A上加强筋,其余肘板的属性则随之更新。
在钻台结构中,有较多相似结构,通过代码moSrc.ShareSteelDefinitions(moDesArray),将源结构moSrc的属性复制到一组目标结构moDesArray中,实现属性的快速设置,并具有关联性,主要代码见图11。此外,也可通过设置取消构件属性的关联性,对各板元结构分别单独修改。
图11 属性共享主要代码
2.5 设计验证与方案优化选择
生成参数化模型后,可分别对布置空间、质量重心进行验证。若满足设计需求,则导出有限元模型对结构强度进行评估,判断是否符合规范[7]要求;若不满足,则需调整参数,对模型进行修改。通过参数化设计,可快速制定多种方案进行比较,并结合设计需求进行优化。
对于布置空间的干涉检查,NAPA Designer软件可导入设备的三维模型,用户可在三维空间内更直观地判断结构模型是否与设备存在干涉,以及设备周围是否有足够的安装和维护空间。钻台结构与防喷器转运设备之间的模型干涉检查参见图12。
图12 模型干涉检查
质量重心通过IHierarchicalArrangement接口遍历钻台所在结构树节点下的所有对象,分别提取板、加强筋和肘板等的质量、材质和重心位置,导出csv格式文件并利用Excel软件进行材料明细统计,同时将汇总的质量、重心以提示框形式展示(见图13),以便判断方案是否满足质量重心的控制要求。
图13 材料明细及质量重心汇总
结构强度评估需结合其他有限元分析软件。NAPA Designer软件提供了有限元网格(finite element meshing, FEM)划分模块,通过简单设置即可快速生成较高质量的有限元网格模型,还可根据需要对局部网格进行细化[8],再导入有限元分析软件进行计算。
3 应用实例
通过用户界面对钻台箱体高度、钻台支腿高度、支腿宽度以及是否增加钻台支腿肘板等参数的调节,快速生成4种方案模型并提取相应的质量重心,见图14。
图14 各方案模型及质量重心对比
利用NAPA Designer软件的有限元网格划分模块,将各设计方案模型快速转化成三维有限元模型,进行结构强度分析,得到初步的强度计算结果供设计比较和优化。各设计方案对比见下页图15和图16。
图15 各方案变形对比
图16 各方案应力水平对比
此外,还可根据设计需求对钻台面边界范围、骨材间距、支腿肘板尺寸等各种参数进行修改,通过更多组合方案的比较,筛选出最优方案。
4 结 语
NAPA Designer本身是基于参数化设计理念的船体结构三维设计软件,界面简洁、操作简单。在此平台上通过二次开发,定制生成更具针对性和实用性的用户界面,并将可标准化、系列化的结构通过特征化参数进行表达,可快速进行结构设计方案的制定和设计模型的三维展示。通过对比各设计方案反馈的信息(质量、强度等),有助于建模或编程经验较少的设计人员快速优化并确定方案,减少设计反复性,缩短设计周期,显著提高设计效率。
本文以钻台为研究对象,对NAPA Designer软件参数化建模和二次开发进行探索,实现了通过自定义界面进行数据交互并驱动钻台参数化模型的创建、更新和质量重心统计等功能,同时借助其网格划分模块输出有限元模型用于结构计算。
本文仅对设计结果进行了结构强度分析,在此基础上,还可通过纳入更多设计参数,完善结构细节,可进一步将该软件功能拓展到振动分析和疲劳分析等方面。此外,基于NAPA Designer软件的参数化设计,也可推广应用于船舶与海洋工程中较规则但需根据不同设计输入经常变化尺度的相关结构设计中,以提高设计效率。