张发荣
(中国铁建高新装备股份有限公司,云南 昆明 650215)
APDL 是ANSYS Parametric Design Language 的缩写,即ANSYS 参数化设计语言。 在参数化的分析过程中,APDL 可以简单地修改其中的参数达到反复分析各种尺寸、不同载荷大小的多种设计方案或者序列性产品,极大地提高分析效率,减少分析成本。
在铁路大型养路机械(以下简称“大机”)的车体结构设计中, 利用APDL 对车体进行参数化建模,修改起来非常方便,省去了反反复复的模型钱,有效地缩短了静强度计算时间,提高了设计效率。
APDL 也不是尽善尽美的, 在用APDL 进行大机车体的静强度分析时,为保证计算规模和计算精度之间的平衡,笔者一般会选用壳单元shell181 与梁单元beam188 结合的方式进行, 力求在最小的计算规模下,最大限度地还原车体的三维结构,以保证计算的准确性。
就笔者常用的beam188 单元来说,其单元几何如图1 所示。 该单元由整体坐标系中节点I、J、K 定义,单元x 轴的方向由I 节点指向J 节点。 用户可通过定义节点K 控制单元的方向,此时单元x 轴和x 轴位于由I、J、K 三点确定的平面之内。
图1 beam188 的单元几何
通过APDL 划分梁单元时,最麻烦的是定义方向节点K。
要对一组同一截面号、同一单元号和材料号的线段进行划分梁单元时,只有这组线段共线(此处为狭义的共线,表示在同一直线上,下同)且方向相同,才能批量划分;否则,就得为它们分别指定方向节点。 如不这样操作,生成的梁单元的截面和偏置方向就会发生旋转或反向,无法满足预期。 就算是方向相反的共线线段,也不行。
大机的车体模型本就复杂,加之建模过程中的布尔操作, 让原本就几百上千根要划分梁单元的线段在数量至少又上升一个量级。 如果手动为每条线指定方向节点,不但操作起来极其烦琐,而且大量的重复代码,写起来费时费力,执行起来也效率低下,实在不可取。
几经思考, 笔者开发了批量划分梁单元的插件Beamit, 一劳永逸地解决了用APDL 划分梁单元的难题。 为了进一步提高效率,笔者又开发了批量调整线的方向的插件Frontit,与beamit 配合使用,实现效率翻番。
Frontit 的实现逻辑如图2 所示。 该插件有一个参数,用于指定要调整的方向,其有效值为1,2,3,分别表示调整所选线的方向为X,Y,Z 轴的正向。
图2 调整线的方向的实现逻辑
Beamit 的实现逻辑如图3 所示。 Beamit 带三个参数,依次表示:梁单元参考方向,材料号,单元号。
图3 划分梁单元的实现逻辑
(1)1 号参数为必填参数,其有效值为±1,±2,±3,分别对应X,Y,Z 轴的正负向。
(2)2、3 号参数为选填参数, 预置默认值均为2。未输入时自动调用默认值。 当梁单元的材料号和单元号不为2 时,必须输入。
下面列出Beamit 中部分功能的代码实现。
a)获取线的数量和最小线号的代码如下:
*get,ar21,line,,COUNT
*get,ar22,line,,num,MIN
b)为最小线号定义方向节点及划分网格的代码如下所示:
*get,ar23,LINE,ar22,kp,1
*get,ar24,kp,,num,MAXD
k,ar24+1,kx(ar23)+ar31,ky(ar23)+ar32,kz(ar23)+ar33
latt,ar25,,ar26,,,ar24+1
lmesh,ar22
两个插件都加入了报错提示功能。
a)选择集中没有线段时,会提示:“HAS NO LINE SELECTED”;
b)方向参数非法时,会提示:“Wrong direction”。
其效果如图4 所示。 报错功能的加入,不但增强了互动性,而且降低了命令流运行出错时排查错误的成本,极大地增加了两个插件的实用性。
图4 插件报错提示
图5 为使用两个插件进行梁单元划分的某大机车体骨架有限元模型。
图5 某大机车体骨架梁单元模型
除了批量划分梁单元外,Beamit 还能通过简单的循环,快速实现一些规律梁单元的划分。
Fini$/CLEAR$/PREP7
k,,60$k,,60,,150$l,1,2
/PSYMB,LDIR,1$LPLOT
et,1,188 $keyopt,1,3,2 $mp,ex,1,2.06e5 $mp,prxy,1,0.3
CSYS,1$a=18$LGEN,a,ALL,,,,360/a$CSYS,4
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! WPROTA,45
! WPROTA,90
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sectype,1,BEAM,HREC$SECDATA,6,4,0.5,0.5,0.5,0.5$SECOFFSET,CENT
SECNUM,1$lsel,ALL$LESIZE,all,2
*DO,i,1,a$lsel,s,,,i$beamit,1,1,1$WPROTA,360/a$*ENDDO
/eshap,1$EPLOT
直接运行和去掉两句注释中的一句,分别可以得到图6 中的三种效果。
图6 示例
APDL 是一种高效率、低成本的参数化建模方式,但是对于梁单元的划分较为烦琐、低效。 经笔者开发的两个插件Beamit 和Frontit,不但可以高效、快速地完成梁单元的批量划分,而且可以简单、快速地实现一些规律梁单元的划分, 从而一劳永逸地解决了APDL 梁单元划分的难题,实现效率翻番。