总结一下不同单元之间的连接问题

 

    论坛里常有人问不同单元之间的连接问题,我自己也一直被这个问题所困绕,最近从ANSYS工程分析进阶实例上知道了ANSYS中不同单元之间的连接原则。感觉收收获不小,现把它上传与大家共享。
一般来说,按“杆梁壳体”单元顺序,只要后一种单元的自由度完全包含前一种单元的自由度,则只要有公共节点即可,不需要约束方程,否则需要耦合自由度与约事方程。例如:
(1)杆与梁、壳、体单元有公共节点即可,不需要约束方程。
(2)梁与壳有公共节点怒可,也不需要约束写约束方程;壳梁自由度数目相同,自由度也相同,尽管壳的rotz是 虚的自由度,也不妨碍二者之间的关系,这有点类同于梁与杆的关系。
(3)梁与体则要在相同位置建立不同的节点 ,然后在节点处耦合自由度与施加约束方程。
(4)壳与体则也要相同位置建立不同的节点  ,然后在节点处耦合自由度与施加约束方程。

例如:

杆与梁、壳、体单元有公共节点即可,不需要约束方程。
梁与壳有公共节点即可,也不需要约束写约束方程;壳梁自由度数目相同,自由度也相同,尽管壳的rotz是虚的自由度,也不妨碍二者之间的关系,这有点类同于梁与杆的关系。
梁与体则要在相同位置建立不同的节点,然后在节点处耦合自由度与施加约束方程。
壳与体则也要相同位置建立不同的节点 ,然后在节点处耦合自由度与施加约束方程。

举例:

有一长为100mm的矩形截面梁,截面为10X1mm,与一规格为20mmX7mmX10mm的实体连接,约束实体的端面,在梁端施加大小为3N的y方向的压力,梁与实体都为一材料,弹性模量为30Gpa,泊松比为0.3。本例主要讲解梁与实体连接处如何利用耦合及约束方程进行处理。

命令流如下:

FINI

/CLE

/FILNAME,BEAM_AND_SOLID_ELEMENTS_CONNECTION !定义工作文件名

/TITLE,COUPLE_AND_CONSTRAINT_EQUATION !定义工作名

/PREP7

ET,1,SOLID95 !定义实体单元类型为SOLID95

ET,2,BEAM4 !定义梁单元类型为BEAM4

MP,EX,1,3E4 !定义材料的弹性模量

MP,PRXY,1,0.3 !定义泊松比

R,1 !定义实体单元实常数

R,2,10.0,10/12.0,1000/12.0,10.0,1.0 !定义梁单元实常数

BLC4,,,20,7,10 !创建矩形块为实体模型

WPOFFS,0,3.5 !将工作平面向Y方向移动3.5

WPROTA,0,90 !将工作平面绕X轴旋转90度

VSBW,ALL !将实体沿工作平面剖开

WPOFFS,0,5 !将工作平面向Y方向移动5

WPROTA,0,90 !将工作平面绕X轴旋转90度

VSBW,ALL !将实体沿工作平面剖开

WPCSYS,-1 !将工作平面设为与总体笛卡儿坐标一致

K,100,20,3.5,5 !创建关键点

K,101,120,3.5,5 !创建关键点

L,100,101 !连接关键点生成梁的线实体

LSEL,S,LOC,X,21,130 !选择梁线

LATT,1,2,2 !指定梁的单元属性

LESIZE,ALL,,,10 !指定梁上的单元份数

LMESH,ALL !划分梁单元

VSEL,ALL !选择所有实体

VATT,1,1,1 !设置实体的单元属性

ESIZE,1 !指定实体单元尺寸

MSHAPE,0,2D !设置实体单元为2D

MSHKEY,1 !设置为映射网格划分方法

VMESH,ALL !划分实体单元

ALLS !全选

FINI !退出前处理

/SOLU !进入求解器

ASEL,S,LOC,X,0 !选择实体的端面

DA,ALL,ALL !约束实体端面

ALLS !全选

FK,101,FY,-3.0 !在两端施加Y向压力

CP,1,UX,1,21 !耦合节点1和节点21X方向自由度

CP,2,UY,1,21 !耦合节点1和节点21Y方向自由度

CP,3,UZ,1,21 !耦合节点1和节点21Z方向自由度

CE,1,0,626,UX,1,2328,UX,-1,1,ROTY,-ABS(NZ(626)-NZ(2328)) !设置约束方程

CE,2,0,67,UX,1,4283,UX,-1,1,ROTZ,-ABS(NY(67)-NY(4283)) !设置约束方程

CE,3,0,67,UZ,1,4283,UZ,-1,1,ROTX,-ABS(NY(67)-NY(4283)) !设置约束方程

ALLS !全选

SOLVE !保存

FINI !退出求解器

/POST1 !进入通用后处理

PLNSOL, U,Y, 0,1.0 !显示Y方向位移

PLNSOL, S,EQV, 0,1.0 !显示等效应力

ETABLE,ZL1,SMISC,1 !读取梁单元上I节点X方向的力

ETABLE,ZL2,SMISC,7 !读取梁单元上J节点X方向的力

ETABLE,MZ1,SMISC,6 !读取梁单元上I节点Z方向的力矩

ETABLE,MZ2,SMISC,12 !读取梁单元上J节点Z方向的力矩

PLETAB,ZL1 !显示梁单元X方向的力

PLETAB,MZ1 !显示梁单元Z方向力矩

    上面所述的不同单元之间的接连方法主要是用耦合自由度和约束方程来实现的,有一定的局限性,只适用于小位移,下面介绍一种支持大位移算法的方法,MPC法。
        MPC即Multipoint Constraint,多点约束方程,其原理与前面所说的方程的技术几乎一致,将不连续、自由度不协调的单元网格连接起来,不需要连接边界上的节点完全一一对应。
MPC能够连接的模型一般有以下几种。
solid 模型-solid 模型
shell模型-shell模型
solid 模型-shell 模型
solid 模型-beam 模型
shell 模型-beam模型
     在 ANSYS中,实现上述MPC技术有三种途径。
(1)通过MPC184单元定义模型的刚性或者二力杆连接关系。定义MPC184单元模型与定义杆的操作完全一致,而MPC单元的作用可以是刚性杆(三个自由度的连接关系)或者刚性梁(六个自由度的连接关系)。
(2)利用约束方程菜单路径Main Menu>preprocessor>Coupling/Ceqn>shell/solid Interface创建壳与实体模型之间的装配关系。
(3)利用ANSYS接触向导功能定义模型之间的装配关系。选择菜单路径Main Menu>preprocessor>Modeling>Creat>Contact Pair,弹出一序列的接触向导对话框,按照提示进行操作,在创建接触对前,单击Optional setting按钮弹出Contact properties对话框,将Basic选项卡中的Contact algorithm即接触算法设置为MPC algorithm。或者,在定义完接触对后,再将接触算法修改为MPC   algorithm,就相当于定义MPC多点约束关系进行多点约束算法。

 

单元类型的选择问题

初学ANSYS的人,通常会被ANSYS所提供的众多纷繁复杂的单元类型弄花了眼,如何选择正确的单元类型,也是新手学习时很头疼的问题。
     单元类型的选择,跟你要解决的问题本身密切相关。在选择单元类型前,首先你要对问题本身有非常明确的认识,然后,对于每一种单元类型,每个节点有多少个自由度,它包含哪些特性,能够在哪些条件下使用,在ANSYS的帮助文档中都有非常详细的描述,要结合自己的问题,对照帮助文档里面的单元描述来选择恰当的单元类型。
1.该选杆单元(Link)还是梁单元(Beam)?
这个比较容易理解。杆单元只能承受沿着杆件方向的拉力或者压力,杆单元不能承受弯矩,这是杆单元的基本特点。
梁单元则既可以承受拉,压,还可以承受弯矩。如果你的结构中要承受弯矩,肯定不能选杆单元。
对于梁单元,常用的有beam3,beam4,beam188这三种,他们的区别在于:
1)beam3是2D的梁单元,只能解决2维的问题。
2)beam4是3D的梁单元,可以解决3维的空间梁问题。
3)beam188是3D梁单元,可以根据需要自定义梁的截面形状。
2.对于薄壁结构,是选实体单元还是壳单元?
      对于薄壁结构,最好是选用shell单元,shell单元可以减少计算量,如果你非要用实体单元,也是可以的,但是这样计算量就大大增加了。而且,如果选实体单元,薄壁结构承受弯矩的时候,如果在厚度方向的单元层数太少,有时候计算结果误差比较大,反而不如shell单元计算准确。
      实际工程中常用的shell单元有shell63,shell93。shell63是四节点的shell单元(可以退化为三角形),shell93是带中间节点的四边形shell单元(可以退化为三角形),shell93单元由于带有中间节点,计算精度比shell63更高,但是由于节点数目比shell63多,计算量会增大。对于一般的问题,选用shell63就足够了。
     除了shell63,shell93之外,还有很多其他的shell单元,譬如shell91,shell131,shell163等等,这些单元有的是用于多层铺层材料的,有的是用于结构显示动力学分析的,一般新手很少涉及到。通常情况下,shell63单元就够用了。
3.实体单元的选择。
      实体单元类型也比较多,实体单元也是实际工程中使用最多的单元类型。

常用的实体单元类型有solid45, solid92,solid185,solid187这几种。

       其中把solid45,solid185可以归为第一类,他们都是六面体单元,都可以退化为四面体和棱柱体,单元的主要功能基本相同,(SOLID185还可以用于不可压缩超弹性材料)。Solid92, solid187可以归为第二类,他们都是带中间节点的四面体单元,单元的主要功能基本相同。

     实际选用单元类型的时候,到底是选择第一类还是选择第二类呢?也就是到底是选用六面体还是带中间节点的四面体呢?
     如果所分析的结构比较简单,可以很方便的全部划分为六面体单元,或者绝大部分是六面体,只含有少量四面体和棱柱体,此时,应该选用第一类单元,也就是选用六面体单元;如果所分析的结构比较复杂,难以划分出六面体,应该选用第二类单元,也就是带中间节点的四面体单元。
    新手最容易犯的一个错误就是选用了第一类单元类型(六面体单元),但是,在划分网格的时候,由于结构比较复杂,六面体划分不出来,单元全部被划分成了四面体,也就是退化的六面体单元,这种情况,计算出来的结果的精度是非常糟糕的,有时候即使你把单元划分的很细,计算精度也很差,这种情况是绝对要避免的。
     六面体单元和带中间节点的四面体单元的计算精度都是很高的,他们的区别在于:一个六面体单元只有8个节点,计算规模小,但是复杂的结构很难划分出好的六面体单元,带中间节点的四面体单元恰好相反,不管结构多么复杂,总能轻易地划分出四面体,但是,由于每个单元有10个节点,总节点数比较多,计算量会增大很多。
     前面把常用的实体单元类型归为2类了,对于同一类型中的单元,应该选哪一种呢?通常情况下,同一个类型中,各种不同的单元,计算精度几乎没有什么明显的差别。选取的基本原则是优先选用编号高的单元。比如第一类中,应该优先选用solid185。第二类里面应该优先选用solid187。ANSYS的单元类型是在不断发展和改进的,同样功能的单元,编号大的往往意味着在某些方面有优化或者增强。
       对于实体单元,总结起来就一句话:复杂的结构用带中间节点的四面体,优选solid187,简单的结构用六面体单元,优选solid185。