撰文/ 中船重工(武汉)船舶与海洋工程装备设计有限公司 何勇
目前,市面上主流的通用结构有限元分析前处理器种类众多,包括Patran、Ansys、Abaqus、HyperMesh 和Femap 等。这五款软件在国内船舶行业均有应用,其中Patran 的用户数量很多。本文结合笔者多年运用Patran 进行船舶结构有限元建模积累的经验,为广大同行介绍一些建模方面的技巧,以期对读者有一些帮助。
一、网格划分与编辑技巧
1. 根据现有的节点撒种子
对于具有曲线边界的面,例如首尾区域垂向加强的横舱壁,横舱壁与外板交线上的网格种子并不是等间距的,此时可先在横舱壁与甲板的交线上生成等间距的节点,然后将这些节点投射到横舱壁与外板的交线上,最后用Create\Mesh Seed\Tabular 方法(Coordinate Type 选Node and Point)根据投射得到的节点生成网格种子,这样得到的网格种子可以保证横向对齐。
2. 径向扫略
由低阶单元变换得到高阶单元时,Sweep\Element\Extrude 是一种经常使用的方法,此方法为线性扫略。但径向扫略的作用也不容忽视,图1 所示的立柱环筋的创建就是一个典型的例子。
径向扫略通过Sweep\Element\Radial Cyl. 方法实现。扫略时,Axis 填写扫略平面的法向,Radial Distance填写扫略距离,为正时背离原点扫略,为负时指向原点扫略。
3. 跨越边界的单元的修改
通过扫略创建甲板边板壳单元时,在非平行中体区域,会出现最外侧的一行单元跨越甲板边线的情况,此时需移动节点将其拉回到甲板边线上。有些用户习惯使用Modify\Node\Move 方法实现这个目标,但这种方法要求输入节点要移动到的新位置,而这个位置的坐标通常是未知的,因此需先通过求交点的方法找到这个位置。
更快捷的做法是使用Modify\Node\Project 方法,Project onto 选Surface,Direction 选Define Vector,即将节点沿指定的方向投射到指定的面上。为此,先用Create\Surface\Extrude 方法将甲板边线沿垂向扫略成一个面,然后将节点沿横向投射到这个面上,这样可一次性完成所有节点的移动。
4. 单元切割
手工修改网格时,经常需要对单元进行切割,可通过Modify\Tria|Quad\Split 方法进行,该方法提供了多种切割模式。例如,对于四边形单元,有图2(a)所示的6 种模式。可以看到,这6 种切割模式还是不够丰富的,作为补充,Utilities>FEM-Elements>Break Elements 菜单命令提供了更全面的切割模式,如图2(b)所示,用户可按需选用。
二、单元赋属性技巧
在Patran 中,单元赋属性是一项很繁重的工作,因为与其他前处理器不同,Patran 中没有当前材料、板厚和梁截面的概念,因此所有单元必须指定属性。此外,船舶结构包含大量的加强筋,用梁单元模拟这些加强筋时,赋属性需指定方向矢量和偏置矢量,比较耗时。因此掌握一些单元赋属性的技巧非常有必要。
1. 自动赋属性
使用Create\Element\Edit 方法手工创建单元时,可单击操作面板上的Select Existing Prop 按钮,在弹出的Property Sets 面板中选择适当的单元属性集,将新创建的单元添加到所选择属性集的作用区域中,从而实现自动赋属性的功能。
2. 在单元坐标系中填写梁单元的偏置矢量
默认情况下,梁单元的偏置矢量以梁端节点的分析坐标系(默认情况下为全局坐标系)为参考进行填写。这种填法的不便之处在于用户需要随时判断偏置矢量的非零分量及其正负。例如,甲板纵骨的偏置矢量是Z 分量非零且为负;左舷舷侧纵骨和右舷舷侧纵骨的偏置矢量虽然都是Y 分量非零,但前者为负,而后者为正。当加强筋腹板不与某个主坐标平面平行时,偏置矢量的三个分量可能均为非零,填写尤其麻烦。那么是否有一种更高效且不易出错的填写方法,使偏置矢量不随加强筋的类型和方向而变呢?答案是肯定的,那就是在单元坐标系中填写偏置矢量。
图3 为底边舱斜板(与水平面成45°)纵骨(左舷,规格为L125x80x8)的偏置矢量在全局坐标系和单元坐标系中的填写方法,两种方法产生的实际效果都如图4 所示,可以看出在单元坐标系中填写更为方便。
将参考坐标系切换为单元坐标系的方法为向右拖动Input Properties 面板中的水平滚动条,将Offset @ Node1/2 文本框最右侧的下拉列表选项切换为Element(默认为Analysis)。切换后便可在单元坐标系中填写偏置矢量。为方便读者参考,图5 列出了三种常用加强筋截面(单元类型为CBEAM)的单元坐标系。
3. 使用局部坐标系作为梁单元的方向矢量
默认情况下,梁单元的方向矢量以第一个节点的分析坐标系(默认为全局坐标系)为参考进行填写。在某些情况下,这种填法非常麻烦,图6 所示的起重机立柱垂向加强筋就是一个典型的例子。
图6 中各垂向加强筋每隔45°均匀分布。很显然,在全局坐标系中,各加强筋的方向矢量各不相同,这就意味着要为每根加强筋分别定义一个属性集。事实上,Patran支持在用户自己定义的局部坐标系中填写方向矢量,方法为在填写Bar Orientation 时,先输入方向矢量,然后空一格再输入“Coord n”(n 为局部坐标系的编号),这样就表示方向矢量以编号为n 的局部坐标系为参考。对于上例,可以以立柱的中心为原点创建一个柱坐标系(假设为Coord 2),这样加强筋的方向矢量均沿该柱坐标系的径向并指向原点,即方向矢量可填为“<-1 0 0> Coord 2”。
三、其他常用技巧
1. 组的导出与导入
计算书送审或者在不同版本的Patran 之间传递有限元模型时,通常会用到bdf 文件,但是bdf 文件中并无模型分组的信息,当导入bdf 文件重新构建模型时,读入的节点和单元将位于一个组中。如果模型比较复杂,不分组时模型操作是非常不便的,因此有必要重新生成原数据库文件中的组,步骤如下。
(1)执行Utilities>Group>Groups To Session File菜单命令,将创建组的命令写入一个对话文件。
(2)导入bdf 文件后,执行File>Session>Play 菜单命令播放上一步生成的对话文件。
2.Region 工具的使用
有时我们希望把某些节点或单元归到一起,供后续的某些操作使用,但是为避免分组过多,且不希望把节点或单元放到一个组里,此时可以借助Regions 工具。创建Region的菜单命令为Tools>Regions,创建好的Region 可以作为载荷/ 边界条件和单元属性集的作用区域,使用方法为在Select Application Region 面板中将Select 切换为Region。
3.PCL 表达式的应用
有时我们在Patran 中输入的数据可能需要通过计算才能得到,此时大多数用户的做法是先用计算器等外部工具算好再填入Patran,利用PCL 表达式可以省略这个中间过程。以图a)偏置矢量的填写为例,用户可以输入“<0`121*cosd(45)` `-121*sind(45)`>”,单击Apply 按钮后Patran 将自动将表达式替换为其结果。用户需特别注意表达式两侧的撇号,此符号位于键盘左上角,与“~”占据同一个键。
表1 和表2 列出了PCL 的算术运算符和一些常用的数学函数。
说明:表中以d 结尾的三角函数以角度为单位,以r结尾的三角函数以弧度为单位。