李 敏,张世联
(上海交通大学,上海200204)
船体横剖面特性包括剖面面积、剖面中和轴高度、剖面惯性矩等,是船体结构设计和强度计算中的重要参数,在有限元分析过程中经常使用。例如,在舱段有限元分析中施加舱段边界MPC 约束时需要剖面中和轴高度;某些情况下对有限元计算结果进行理论分析验证时,需要剖面惯性矩。
现有计算剖面特性的软件大部分需单独建立剖面模型,并未直接基于有限元模型(如法国船级社(BV)Mars 2000 软件),给有限元直接计算分析带来不便。唐旭东[1]提出了基于PCL 语言的剖面特性计算方法,该方法以Patran 内部的质量特性计算程序为基础,通过计算剖面处单元的质量、质心和转动惯量推导出剖面特性值。该方法忽略了梁单元的偏心,且计算结果相当于单元前后剖面特性的平均值,对于船体梁剖面特性变化较大的部位有一定误差。中国船级社(CCS)CSR-DSA 插件可计算剖面中和轴位置,但基于相同方法,存在同样的问题,且该插件未给出剖面面积和惯性矩。
本文基于PCL 语言编写直接从Patran 模型数据库中读取单元和节点信息计算剖面特性的程序。通过选定剖面处单元和节点,直接从单元几何信息出发,计算剖面处纵向单元剖面积、静距、惯性矩,并给出剖面水平中和轴高度及对中和轴的惯性矩。程序考虑梁单元偏心,并可根据用户选取的剖面单元和节点智能识别出纵向单元,剔除不应计入剖面特性的横向单元,操作非常方便。程序计算完全基于所选剖面处的几何信息,对于剖面特性变化较大的部位(如靠近船首、尾处)也能准确计算剖面特性值。
PCL(Patran Command Language)是MSC 公司有限元分析软件Patran 的二次开发语言,其语法与C、FORTRAN和VB 语言相似。PCL 语言具有强大的处理能力,能够直接对Patran 模型进行存取、修改和计算,控制Patran 批量建模和加载,并且支持开发交互式的用户界面,大幅拓展了Patran 的二次开发应用。
剖面面积、到基线的静矩和惯性矩为:
式中:Ai为各单元的剖面积;Zi为各单元形心距基线高度;I0i为各单元自身惯性矩,按2.2 节计算。
中和轴高度按下式计算:
中和轴惯性矩按下式计算:
根据材料力学,对于高为h、宽为b 的垂直矩形剖面,其自身惯性矩为:
在舭部和靠近船首尾剖面处外板倾斜,骨材也因垂直于外板而与水平方向呈一定夹角,以下推导任意夹角下板单元、梁单元自身惯性矩计算公式。
对于图1(a)中倾斜板单元剖面,计算时通常将其等效为图1(b)所示的垂直长方形剖面,其剖面惯性矩为:此等效方法没有完全计入阴影区域三角形对剖面惯性矩的贡献。设三角形自身惯性矩为i0,面积为A,三角形形心距斜边高度为Δh,几何参数如图1(c)所示。该等效方法的惯性矩损失为:
由几何关系,三角形面积为:
三角形形心高度为:
将式(8)和式(7)带入式(6)得:
图1 倾斜板材剖面等效方法示意图Fig.1 Equivalent method for section of inclined plate
故该倾斜板单元自身惯性矩为:
船用钢材主要有扁钢、球扁钢、角钢和T 型材,在Patran 模型中球扁钢通常等效为角钢。
倾斜扁钢自身惯性矩的计算方法与倾斜板材相同。倾斜T 型材如图2所示。设其腹板自身惯性矩为Iv1和Ih1;定义同上节Iv和Ih;T 型材面板自身惯性矩为Iv2和Ih2;腹板和面板剖面积分别为A1和A2;腹板和面板形心距T 型材形心的距离分别为v1和v2,腹板与水平方向的夹角为θ。应用倾斜板单元自身惯性矩公式,可推导得倾斜T 型材自身惯性矩公式:
式中:Iv为T 型材腹板剖面垂直于水平方向时的自身惯性矩;Ih为T 型材腹板剖面沿水平方向时的自身惯性矩。
倾斜T 型材自身惯性矩计算公式在形式上与倾斜板材相同。
图2 倾斜T 型材剖面Fig.2 Section of inclined T-profile
倾斜角钢如图3所示,同理可推导得:
式中:Iv为角钢腹板剖面垂直于水平方向时的自身惯性矩;Ih为角钢腹板剖面沿水平方向时的自身惯性矩。
由于角钢剖面不具有对称性,自身惯性矩计算公式比扁钢和T 型材多出惯性积项。
程序计算流程如图4所示。
程序需用户选取剖面处的所有节点和剖面一侧单元,根据选取的单元和节点编号从Patran 模型数据库中读取相应单元几何尺寸和坐标,需使用以下PCL 函数[2-6]:
图3 倾斜角钢剖面Fig.3 Section of inclined angle
图4 计算流程Fig.4 Calculation flow
db_ get_ nodes 获取节点坐标;
db_ get_ elem_ etop 获取单元拓扑类型;
db_ get_ elem_ topology_ data 获取拓扑数据;
db_ get_ nodes_ for_ elems 获取节点编号;
db_ get_ region_ for_ elements 获取属性域;
db_ get_ prop_ value 获取单元属性;
db_ get_ beam_ section 获取梁单元剖面类型;
bl_ get_ std_ beam_ section_ data 获取梁单元剖面尺寸。
横向单元不应计入剖面特性,但选取剖面单元时认为去除横向单元非常麻烦,且容易失误。因此程序开发了纵向单元的智能识别功能,根据单元节点与用户选取的剖面节点的相对关系,筛选出应计入剖面特性的纵向单元,具体方法如下:
对于选中的板单元(包括三角形和四边形单元),若恰有2 个单元节点属于用户选取的剖面节点组,则该板单元为纵向单元,应计入剖面特性。其余情况均不计入,如图5 中1 ~3 号单元。
对于各梁单元,若恰有一个单元节点属于用户选取的横剖面节点组,则该梁单元为纵向单元,应计入剖面特性,否则不应计入。
图5 局部有限元结构剖面示意图Fig.5 Section of local FEM model
对筛选后的板单元和梁单元,根据剖面节点坐标、板厚、梁剖面尺寸,梁偏移方向及偏移量,按第2 节原理计算剖面特性。
程序用户界面如图6所示,界面包括一个开关按钮选择是否考虑梁偏移、2 个选择文本框输入剖面单元和节点、1 个文本框输出剖面计算结果,以及2 个按钮控制程序运行和退出。创建控件需使用以下PCL 函数:
ui_ form_ create 建立窗体;
ui_ text_ create 建立文本框;
ui_ toggle_ create 建立开关按钮;
ui_ selectframe_ create 建立选择框;
ui_ selectdatabox_ create 建立选择文本框;
ui_ button_ create 建立控制按钮。
选取某中半横剖面(见图7)和某首部横剖面(见图8),采用本程序、Mars2000和CCS 的CSR-DSA插件计算剖面特性值,结果分别见表1和表2,可以得到:
1)对剖面面积,本程序计算结果与Mars2000 一致;
2)对中和轴高度,在中横剖面处三者计算结果相差很小,在首部剖面处本程序计算结果和Mars2000 高度吻合,而CSR-DSA 计算结果与二者相比有一定偏差;
3)对剖面惯性矩,本程序计算结果与Mars2000 高度吻合。
图6 程序界面Fig.6 The program interface
图8 某首部横剖面Fig.8 The bow section
表1 中横剖面计算结果对比Tab.1 Comparison of results of the midship section
表2 首部横剖面计算结果对比Tab.2 Comparison of results of the bow section
本文推导了倾斜板和骨材剖面自身惯性矩计算公式,并基于PCL 语言编写了直接从Patran 模型数据库读取剖面节点、单元信息,计算剖面面积、中和轴高度、惯性矩的程序。程序计及梁单元的偏心,实现了智能识别纵向单元的功能,对剖面特性变化大的部位也能够精确地计算出剖面特性值,计算结果与Mars2000 高度吻合。程序为船体有限元分析提供便利,同样适用于其他有限元结构的剖面特性计算,有一定的实用价值。
[1]唐旭东.利用PCL 语言查看船体剖面特性[J].船舶结构,2011,22(3):27-29.
[2]Patran PCL and customization[M].MSC,2010.
[3]Patran PCL reference manual[M].MSC,2010.
[4]唐友宏,陈宾康.用MSC.Patran 的PCL 二次开发用户界面[J].船海工程,2002(3):20-22.
[5]张军彦,李昌华,李晓辉.基于MSC.Patran 界面的PCL二次开发[J].现代电子技术,2010(16):17-22.
[6]刘斌,韩庆,钟小平.基于MSC.PCL 的飞机结构稳定性系统开发[J].科学技术与工程,2010,10(28):7082-7088.