接触问题及其解决方法综述•本技术手册提供了在Marc和Mentat中使用接触经常遇到的问题的解决方法。
•MARC用直接约束法处理接触问题,在整个过程中跟踪运动接触体的轨迹,当发生接触时,使用边界条件直接约束运动体——两者的运动约束转化成了节点自由度的约束和节点力的约束。
如果程序能够预测出什么时候发生约束,这种方法非常准确。
在Marc中通过CONTACT选项执行这个程序。
因为不需要预先知道那里发生接触,所以在本程序中不用提前指定参考单元,可以模拟复杂的接触。
•Marc中接触的详细用法见《程序输入手册》“接触”一章。
•Marc中接触的详细求解过程见《理论手册》(卷A)中的附录。
•下面对接触的用法分别做一下解释:接触分析的设置•在接触分析中最常见的问题怎样解决?下面的介绍可能对你有所帮助:a. 增加LOADCASE中的载荷步数。
b. 确保在JOBS的INITIAL LOADS中包括固定边界条件。
c. 接触分析允许两个或多个接触体之间发生任意大的相对变形。
在一些分析中的变形不可避免地会超出几何线性分析中小变形的设定范围(最大旋转角度的正切值约定于角度本身,使用弧度值)。
如果是这种情况,激活LARGE DISP参数。
d. 线-线之间的接触会出现数值问题,导致收敛困难。
如果他们落入接触区域的容限之内,Marc的接触算法将会设置接触的节点。
容限缺省值设置为定义的所有接触体的最小单元边长的1/20。
在有些情况下,这个值太大了,尤其是线-线接触。
线-线网格不是拓扑相等的,可能一个或另外一个网格上的多数节点落入接触区域容限内,人为设置接触应力。
在接触区域容限设置时推荐使用偏离系数。
而且下降的接触区域容限推荐使用系数5或10。
接触体使用解析选项,接触的线或面使用nurbs曲线或coons曲面,很可能消除这个问题。
一种特殊情况是接触表面上的网格是连续的。
即一个网格上的节点和其他网格上的节点一致。
在这种情况下,因为所有的节点都是一致的,不应该设置人为应力。
但是,实践证明如果接触体定义为离散的而不是解析的可能生成人为应力。
e. 通过运行一个虚构的一个增量步(没载荷)的载荷工况,看在只有接触的条件下是否有应力产生,调试接触模型。
这将提供任何几何问题或解析接触定义(如果使用)的信息。
f. 在有边界条件的单元节点,当发生接触时,边界条件自动消失,代之接触条件。
如果单元后来不再接触,Marc不会恢复消失了的边界条件,这可能会导致刚体模态。
g. 确保在RUN窗口下的“Extended Precision Input File”选项被激活——这有很多不同:如果单元的坐标系已经输入单位系统,这些单位导致很多明显数值,趋向于产生机器四舍五入误差。
改变单位使尺寸更“大”,即使用mm而不是m。
h. 将“iterative increment splitting”(第一个接触片的域7)设置为3(在JOBS“iterativepenetration”检查)。
这是2001版本中的新方法,在很多情况下,优于先前的增量分离程序。
在2003版本中这很可能变成缺省值。
推荐使用这个设置。
在旧的增量分离程序中当接触即将发生时,增量被分离,不幸地是这会导致输出文件中“多重”变量的混乱。
使用新的功能在同一个增量中考虑了每个方面。
注意在2001版本中使用自动增量加载(弧长)时,因为存在一个缺陷,不能使用迭代穿透探测。
i. 缩放比例:因为当使用米做单位时,一些穿透的数值量级非常小。
为了避免圆整误差也许必须将模型量纲(和模型所有相关的数量,如杨氏模量等)由米改为毫米。
j. 网格重划分:修改接触区域周围的网格,减小节点与节点重合的可能性。
一个法向穿透公式可以处理这种情况执行,但是对于存在摩擦的问题处理起来更困难些,使用一个调和公式虽然可以减小这种情况,并不能完全消除它。
k. 如果在分析过程中只有几个接触节点,如果使用大的载荷增量步在迭代过程中接触可能丢失(即,一个接触体完全穿过另外一个)。
推荐通过细分接触面两边的网格来消除这个问题。
•怎么样探测在特定方向上或大的相互渗透的接触?下面几条可能有所帮助:a. 在输出文件中包括“contact”输出(PRINT 5)给出接触细节。
b. 包括接触节点并不是排除接触片——在拐角处,可能包括角点——但是除非接触片是在没有必要的90度角的片段周围将被删除,否则是接触的。
c. 调用反复接触探测。
d. 错误指定接触容限。
•迭代不收敛?在橡胶材料的接触中,这可能是由于摩擦系数定义的太小或没有定义。
在一些几何外形中,这可能导致无限循环,比如橡胶在两个可能的平衡状态振荡。
此时禁止使用一个小的摩擦系数。
•当只在一个方向上约束接触体时,施加的压力载荷与接触法向力和摩擦力平衡,也会导致收敛困难。
在数值上,为了实现平衡可能引起大量的循环。
如果没有摩擦力可能能够收敛的很好,因为摩擦力的增加导致接触非线性明显增加——这些附加的摩擦剪切力可以引起接触体运动——如果这些剪切力没有外部力平衡(正如它们在每个增量步肯定不会在第一个迭代步得出一样),这可能导致循环——如果在空间内没有限制这个分量的力,情况将恶化。
出现这种情况,推荐将压力载荷改为确定位移。
通过这种方式,因为指定了接触体的位置,平衡摩擦容易多了。
作用力通过反作用力直接得到。
为了更容易的得到这些力,可以将确定位移边界条件改为设置刚性接触平面——同样限定平面位移。
在Mentat中,直接得到刚性平面上的作用力,作为一个单独的值。
改变只是为了取消压力载荷,建立确定位移边界条件,这可以通过载荷表施加到所有需要的节点上。
•拉伸接触力大于指定的分离力应力a. 这可能是选择“suppress chattering”选项或减少缺省的允许分离的值9999引起的结果。
b. 根据节点应力指定摩擦力。
c. 根据力指定分离。
d. 将迭代收敛容限改为0.01,使之更严格,既指定残余力范数也指定位移范数。
•接触力的意外向量a. 这可能是由于接触区域的单元长度不等。
接触力纯粹是一个节点值并且不考虑网格疏密。
b. 当出现分离力时也可能产生新的接触力,因此导致局部重叠和附近的接触力失真。
接触体的编号依据•为了避免穿透,接触体的排序和编号必须遵从几个原则:a. 最小的编号的接触体网格划分的要更好(反之更粗)。
b. 最小编号的接触体要求更软。
c. 最小编号的接触体要求凸角。
然而,因为可能不止存在一个接触体和原则冲突或者一个接触体自身发生接触。
这些都可以通过接触表来实现。
•对更简单的接触情况,推荐首先指定网格划分的更好的接触体。
对多个接触体的情况一般使用“automatic”检测接触顺序更容易些。
如果在接触区域被接触体的网格较粗,而被接触体的最小网格小于主动接触体的最小网格,接触探测可能会失效(这是探测谁接触谁的方式,最小网格单元的接触体接触另外一个)。
•使用网格自适应,为了保证网格细化的变化被正确的考虑,必须指定“automatic”接触探测。
•可用的探测方式有:DEFAULT(探测:缺省值):首先检查第一个接触体的节点关于第二个接触体的接触,然后检查第二个接触体的节点关于第一个接触体的接触。
如果激活单面接触(可以在JOBS菜单中指定),那么只对第一个接触体的节点关于第二个接触体进行探测。
AUTOMATIC(探测:自动):这个程序可以断定两个可变形接触体在外部边界有最小的单元边界(如果是壳单元就是最小厚度)。
然后只是检查一个接触体关于另外一个接触体的接触节点,而不进行其他检查。
FIRST->SECOND(探测:第一_第二):这种定义只是检查第一接触体关于第二个接触体的接触节点,而不进行其他检查。
SECOND->FIRST (探测:第二_第一):这种定义只是检查第二接触体关于第一个接触体的接触节点,而不进行其他检查。
DOUBLE-SIDED(探测:双边):这否决了在JOBS菜单中定义的单边接触。
接触表•不制定接触表,认为所有接触体彼此之间都可能发生接触。
•使用接触表的好处是减小了接触探测的复杂性,也提高了接触探测的速度。
•接触表不考虑接触体的定义和作业设置。
•使用接触表指定摩擦系数。
摩擦是一个交界面的属性而不是一个体属性。
如果摩擦系数通过接触体指定,遵从以下原则:a.对刚体和变形体的接触,使用刚体摩擦系数。
b. 对变形体和变形体之间的接触,摩擦系数使用两个接触体摩擦系数的平均值。
•不推荐在Jobs里指定“双边”/“单边”接触。
这里使用“单边”意味着使用第一对第二接触探测命令。
•注意如果用户想取消两个接触体之间已经存在的接触,只是选择不同的接触表,在这个接触表中相关的接触体设置为不接触,是不行的,你还必须释放接触体之间的接触。
概要•对二维问题,接触体可以最多有80个“洞”,对三维问题,对洞的数目没有限制。
•分析中最多可以有99个接触体。
一些可以是变形体,其他的是刚体。
然而,在任何刚性表面的前面必须在输入文件中定义变形表面。
•节点和表面不能出现在不同接触体上。
•接触变化采用了修正的Newton-Raphson解法:在一个增量步中无论什么时候接触状态发生变化,接触约束调整需要新的平衡方程,并且需要更多的循环建立平衡。
这些附加的循环,只是由于接触的变化,而在这个增量步为了决定是否需要减小载荷步骤和预计的数目进行的对比,并不计算在内。
因此,只考虑真正的Newton-Raphson迭代。
为了下一增量步的载荷步骤,前面使用的增量循环被累加。
这保证了当前面的增量过程中接触变化时时间步不会增加。
•当一个节点从一个接触体分离时,节点的突然释放可能导致迭代不稳定。
为了消除这种情况,使用“release”选项。
这会逐步增加一个释放力。
•刚体的线/面法线方向错误可能导致穿入刚体。
因为缺省的分离力很大,这在载荷增量步的早期并不明显,但是输入更大的载荷分析将会失败。
通过“flip”线/面的方向修正这种情况。
•使用稀疏迭代求解器导致边界条件被不同处理。
激活APPBC参数(见输入手册)。
在接触体重合的接触区域,近似于确定边界条件,会产生“tying”错误。
•在滑线分析中被载荷路径经历的全部刚度可以明显的变化,这主要是由于在任意迭代中接触节点的编号是变化的。
在几何非线性分析中遇到通孔、屈曲等,使用弧长程序。
然而,在接触分析本身并不需要这种工具。
•可以和滑线一起使用高阶单元(也就是存在中间节点),但是我们一般建议使用低阶单元(只存在角节点)。
•“***错误:网格生成器失效,错误编号:1”这可能是位移边界条件施加在了接触体边界上。
这是不允许的。
位移边界条件需要定义在刚体上。
这也可能是没有清除一些节点,导致接触体边界模糊。
•“***错误:接触体1节点538的dfolo3中存在太多的约束”这可能和步长太大有关——尤其对接触位移。