Hyperworks/RADIOSS中的接触和接触穿透问题解决方法
(1)TYPE7
对于不存在网格交叉(intersection),没有严重网格穿透(penetration)的有限元模型,可以选择TYPE 7接触。在Hyperworks/RADIOSS求解器中的接触算法,可以真实考虑每个部件的厚度,所以需要仔细了解gap的计算方法。
Igap:定义计算所使用的gap值
对于壳单元(2D),网格代表的是中面而不是表面,二者都是有厚度的。两个中面不可能紧紧地贴在一起,它们至少相隔厚度和的一半。我们定义的gap值,就是两个中面间的最小距离。当小于这个距离的时候,也就可以理解为发生了穿透(penetration)。
可以通过设置不同Igap参数,采用不同公式来计算gap值。
Igap=0:当不输入任何参数的时候Igap=0,即默认值。在求解器初始化模型的过程中,会自动将Igap设置为默认值0,即Gap恒定,此时计算所使用的Gap=Gapmin。但,当Gapmin没有输入的时候,RADIOSS在计算初始化的时候,会根据单元网格厚度和大小自动重新计算Gapmin。
其中,tm是主面壳单元的平均厚度。
lmin是所有主面单元(壳或体)的最小边长。
Igap=1:可变Gap
Gap=max[Gapmin, gs+gm]
其中,Gapmin与之前定义相同。
gm=tm/2,tm为主面壳单元厚度,对于实体单元为0。
gs=ts/2,其中ts是与从节点相连的壳单元的最大厚度。如果从节点不与任何单元连接或仅仅与实体或弹簧连接则为0。
Igap=2:带Gap缩放因子的变Gap
Gap=max{Gapmin, min[Fscale*(gs+gm),Gapmax]}
其中,Gapmin与之前定义相同。
gm = tm/2,其中 tm 主壳单元的厚度,对于主实体单元为0。
gs = ts/2, 其中ts是与从节点相连的壳单元最大厚度,如果从节点不与任何单元连接或仅仅与实体或弹簧连接则为0。
Gapmax 是一个Gap上限(如不指明,没有上限)。
Igap=3:带有Gap缩减因子和网格尺寸更正的变Gap
如下图所示,如果有自接触定义,当Gap值大于网格尺寸时会发生初始穿透。这种问题就可通过设置 Igap= 3来解决。
此时,Gap = max {Gapmin,min[Fscale*(gs + gm),%mesh_size*(gs_l+gm_l),Gapmax]}
其中,gm_l = 主面单元最小边缘长度。
gs_l=与从节点相连的单元的最小边缘长度。
%mesh_size=网格尺寸百分比(默认为0.4)。
对于Igap=1, 2, 3,最好都设置Gapmin为一个很小的数,比如0.5mm(此标准适用于汽车碰撞模型,其他模型按照网格尺寸和厚度适当修改)。
要记住,所有非线性罚函数接触算法不允许初始交叉(intersection)。当存在初始穿透的情况,处理方法如下:
此曲线可以理解为,当没有进入gap范围的时候,没有接触刚度。当逐渐进入,并接近penetration极限的时候,接触刚度不断增加,在极限位置达到非常大。
这里可以根据自己不同的问题,选择不同的接触刚度计算方法。对于汽车碰撞,跌落等问题,可以使用Istf=2或者4。
推荐选Istf=2,避免单元被删除后,自由的从节点造成的接触计算时间步长降低的问题。
在汽车碰撞模拟中,推荐如下参数:
对于面面接触,A组件作为主面、B作为从点的接触,再定义一个B为主面、A为从点的对称接触。可以通过HyperMesh手动定义,也可以在HyperCrash中勾选create symmetric interface自动生成对称的面面接触。
对于自接触创建,可以在HyperCrash中,定义一个TYPE7接触,勾选Self impact,一次选中需要创建自接触的组件。这样HyperCrash会自动创建自接触组件作为主面和从点。