在所有涉及不同部件接触的案例中,如果没有正确地定义接触,可能会出现部件穿透等不符合物理现象的过程。但如何合理地设置接触参数,是一件非常值得研究和探讨的事情。
想要正确合理地定义接触,必须理解背后的原理,理解每一种接触类型以及参数的含义。
下面让我们来对背后的原理一探究竟~
为什么采用罚函数法?
在有限元分析理论中,存在多种处理接触问题的数值方法。而罚函数数值方法,是在求解稳定性、效率、精度等方面综合考虑的时候最理想的方法。因此,很多隐式/显式求解器都把它作为了首选方案。不仅仅是拉格朗日问题,甚至流固耦合问题也在使用罚函数接触算法。
简单来讲,罚函数法就像在从点和主面间加了一个隐形的弹簧,从点一旦进入离主面很近的某个范围(图中天蓝色部分),就会受到这个“隐形弹簧”的作用力从而远离主面。我们把描述这个“隐形弹簧”力与位移的函数称为罚函数。
<主面和从点受罚函数约束>
在RADIOSS求解器中,对于拉格朗日问题,提供两类接触:非线性罚函数接触算法和线性罚函数算法。非线性罚函数算法是RADIOSS求解器独有的。两者之间区别在于,只要设置合理,当使用非线性罚函数法的时候,绝不会产生网格交叉(intersection)。而使用线性罚函数算法时,如果变形剧烈,就有可能会产生网格交叉。从另一方面来视频,非线性罚函数法是真正符合物理意义的。
<非线性和线性罚函数>
从数值的实现方法上看,接触的种类包括:
接触类型有
TYPE19非线性罚函数接触算法(2017版本新增),在求解初始化过程中,会被自动解析成两个对称的TYPE7点面接触和一个TYPE11线线接触。
TYPE7
对于不存在网格交叉(intersection),没有严重网格穿透(penetration)的有限元模型,可以选择TYPE7接触。在RADIOSS求解器中的接触算法,可以真实考虑每个部件的厚度,所以需要仔细了解gap的计算方法。
》Igap:定义计算所使用的gap值
这里,理解gap的物理意义很关键。
对于壳单元(2D),网格代表的是中面而不是表面。想象我们定义两块钢板的接触,很明显,二者都是有厚度的。两个中面不可能紧紧地贴在一起,它们至少相隔厚度和的一半。我们定义的gap值,就是两个中面间的最小距离。这是真正符合物理意义的。当小于这个距离的时候,也就可以理解为发生了穿透(penetration)。
可以通过设置不同Igap参数,采用不同公式来计算gap值。
→Igap=0:当不输入任何参数的时候Igap=0,即默认值。在求解器初始化模型的过程中,会自动将Igap设置为默认值1000,即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]}
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中勾选createsymmetricinterface自动生成对称的面面接触。
对于自接触创建,我们可以在HyperCrash中,定义一个TYPE7接触,勾选Selfimpact,一次选中需要创建自接触的组件。这样HyperCrash会自动创建自接触组件作为主面和从点。
<对称接触和自接触定义>
TYPE11
在某些极限情境下,由于网格之间的相对平行运动。我们会发现定义了TYPE7,由于主面无法正常搜索到从点,仍会发生网格交叉。如下图,就是一种不违反TYPE7规则,但违反物理现象的网格交叉:
<加入TYPE11前>
这时我们需要加入一个线对线的接触类型TYPE11
<加入TYPE11后>
TYPE24
对于TYPE24定刚度罚函数接触,无需输入gap值,RADIOSS会自动计算接触gap,计算方法与TYPE7Igap=1的计算公式相似。接触刚度选取跟非线性罚函数法相同。
对于低速碰撞、电子产品跌落模拟,推荐INACTI=5。
TYPE24的使用,不必局限于电子家电行业的跌落问题。对于网格质量不高,碰撞速度也不是特别高的时候,完全可以使用TYPE24接触来降低网格修改的工作量。