matlab接触刚度编程,关于接触刚度的定义

所有的接触问题都需要定义接触刚度,两个表面之间渗 量的大小取决了接触刚度,过大的接触刚度可能会引起总刚矩阵的病态,而造成收敛困难,一般来谘,应该选取足够大的接触刚度以保证接触渗透小到可以接受,但同时又应该让接触刚度足够小以使不会引起总刚矩阵的病态问题而保证收敛性。

程序会根据变形体单元的材料特性来估计一个缺省的接触刚度值,你能够用实常数FKN来为接触刚度指定一个比例因子或指定一个真正的值,比例因子一般在0.01和10之间,当避免过多的迭代次数时,应该尽量使渗透到达极小值。

为了取得一个较好的接触刚度值,又可需要一些经验,你可以按下面的步骤过行。

1、 开始时取一个较低的值,低估些值要比高估些值好因为由一个较低的接触刚度导致的渗透问题要比 过高的接触刚度导致的收敛性困难,要容易解决。

2、 对前几个子步进行计算

3、 检查渗透量和每一子步中的平衡迭代次数,如果总体收敛困难是由过大的渗透引起的(而不是由不平衡力和位移增量引起的),那么可能低估了FKN的值或者是将FTOLN的值取得大小,如果总体的收敛困难是由于不平衡力和位移增量达到收敛值需要过多的迭代次数,而不是由于过大的渗透量,那么FKN的值可能被高估。

4、 按需要调查FKN或FTOLN的值,重新分析。

在有限元分析中,接触单元通常用来描述两物体相互接触或滑动的界面。近年来,ANSYS开发了一系列的接触单元。刚开始有节点对节点单元CONTAC12和CONTAC52,接着有节点对地单元CONTAC26,然后有节点对面单元CONTAC48和CONTAC49。最近几年,我们引入一类面对面接触单元CONTA169和CONTA174,同时还有一种新的节点对节点单元CONTA178。

虽然接触单元的参数具有多样性,但我们在使用他们时可谨记重要的一点,他们具有一个共同的特点,即除了CONTA178的KEYOPT(2)=0或1外,所有的接触单元都有接触刚度。在现实中实际上相邻结构之间只是一种空隙,但在有限元分析中,这种空隙是一带有刚度的接触单元,这是因为通过刚度矩阵来实现接触算法的。一些接触单元要求使用者输入刚度值,同时另外的接触单元若没有输入则使用缺省值。分析工程师所面对的问题就是针对给定的条件确定一个合理的刚度值。如果过高,问题将会不收敛,如果过低,可能得到错误的结果。那么我们所面对的问题是怎样才能找到一个正确的刚度值?

我认为唯一的方法就是我们必须试用不同的值直到找到正确的值。也就是刚开始我们应该使用一个较小的值,然后稳步的增加直到分析的结果不再有什么变化。那么对于我们这一特定分析的问题,这一点就是我们所想要的合适值。

我们可举例说明,如图1所示,平行放置两个悬臂梁,并有少许的交迭,下面的左边固支,上面的右边固支,当在上面梁的自由端施加一个向下位移时,梁变形弯曲并接触下面的梁,然后一起向下运动。用SOLID45单元划分梁,用TARGE170和CONTA174面面接触单元来描述相互作用。在此基础上,把CONTA174单元的刚度从非常低变到非常高,从而来观察它对结果的影响和收敛的迭代次数。图2说明了下梁自由端的偏移随接触单元刚度的变化情况,当刚度增加时,偏移量接近一个常数值(我们可以假定它是一个"正确"的结果。)图3说明求解所需的迭代次数,当接触单元刚度增加时,求解所需的迭代次数也是增加的,并服从指数关系。如果刚度过高,问题很有可能根本就不收敛。图4说明在上梁自由端接触单元的渗透量,当刚度增加时,渗透量降低。

从这些图可知,当接触单元的刚度为10e6时,可获得合理精确的结果。任何大于该值的刚度对下梁的偏移量没有什么影响,而求解所需的迭代数却显著的增加。对于这个题目,10e6的刚度是很适合的。但是,如果改变边界条件、网格密度、两梁之间的相对位置、材料特性或梁的几何形状,能获得满意结果的接触刚度值将是不同的。比如,如果网格密度增加,则接触单元数将增加,每一个单元上的载荷将降低。如果接触单元数增加两倍,一个合适的接触单元刚度值应为原来的一半。

由于每个题目都是不一样的,所以在求解之前并没有通用的方法来确定接触单元刚度的最佳值。我们不得不试算一个我们认为合适的值然后查看计算结果。一个有经验的分析工程师可能只查看一个计算结果来判定所取值的合适度,但对于大多数情况而言,最好用一个合理而不过度精确的刚度值进行第一次求解,然后用10倍于该值的刚度进行第二次求解,如果两者结果相差很小,而迭代数增加很多,那么我们则正好取得了曲线上的突变点,从而获得相当好的结果。

接触单元刚度问题仅仅是一个例子,即对于分析工程师来说,总是置疑于分析结果的正确与否是非常重要的,并要意识到数值仿真的局限性和潜在的假设及他们怎样影响所分析问题的结果。

这是接触问题的计算方法。

接触问题的关键在于接触体间的相互关系(废话),此关系又可分为在接触前后的法向关系与切向关系。

法向关系:

在法向,必须实现两点:1)接触力的传递。2)两接触面间没有穿透。

ANSYS通过两种算法来实现此法向接触关系:罚函数法和拉格朗日乘子法。

1.罚函数法

是通过接触刚度在接触力与接触面间的穿透值(接触位移)间建立力与位移的线性关系:

接触刚度*接触位移=法向接触力

对面面接触单元17*,接触刚度由实常数FKN来定义。

穿透值在程序中通过分离的接触体上节点间的距离来计算。接触刚度越大,则穿透就越小,理论上在接触刚度为无穷大时,可以实现完全的接触状态,使穿透值等于零。但是显而易见,在程序计算中,接触刚度不可能为无穷大(否则病态),穿透也就不可能真实达到零,而只能是个接近于零的有限值。

以上力与位移的接触关系可以很容易地合并入整个结构的平衡方程组K*X=F中去。并不改变总刚K的大小。这种罚函数法有以下几个问题必须解决:

1)接触刚度FKN应该取多大?

2)接触刚度FKN取大些可以减少虚假穿透,但是会使刚度矩阵成为病态。

3)既然与实际情况不符合的虚假穿透既然是不可避免的,那么可以允许有多大为合适?

因此,在ANSYS程序里,通常输入FKN实常数不是直接定义接触刚度的数值,而是接触体下单元刚度的一个因子,这使得用户可以方便地定义接触刚度了,一般FKN取0.1到1中间的值。当然,在需要时,也可以把接触刚度直接定义,FKN输入为负数,则程序将其值理解为直接输入的接触刚度值。

对于接近病态的刚度阵,不要使用迭代求解器,例如PCG等。它们会需要更多的迭代次数,并有可能不收敛。可以使用直接法求解器,例如稀疏求解器等。这些求解器可以有效求解病态问题。

穿透的大小影响结果的精度。用户可以用PLESOL,CONT,PENE来在后处理中查看穿透的数值大小。如果使用的是罚函数法求解接触问题,用户一般需要试用多个FKN值进行计算,可以先用一个较小的FKN值开始计算,例如0.1。因为较小的FKN有助于收敛,然后再逐步增加FKN值进行一系列计算,最后得到一个满意的穿透值。

FKN的收敛性要求和穿透太大产生的计算误差总会是一对矛盾。解决此矛盾的办法是在接触算法中采用扩展拉格朗日乘子法。此方法在接触问题的求解控制中可以有更多更灵活的控制。可以更快的实现一个需要的穿透极限。

2.拉格朗日乘子法与扩展拉格朗日乘子法

拉格朗日乘子法与罚函数法不同,不是采用力与位移的关系来求接触力,而是把接触力作为一个独立自由度。因此这里不需要进行迭代,而是在方程里直接求出接触力(接触压力)来。

Kx=F+Fcontact

从而,拉格朗日乘子法不需要定义人为的接触刚度去满足接触面间不可穿透的条件,可以直接实现穿透为零的真实接触条件,这是罚函数法所不可能实现的。使用拉格朗日乘子法有下列注意事项:

1)刚度矩阵中将有零对角元,使有些求解器不克使用。只能使用直接法求解器,例如波前法或系数求解器。而PCG之类迭代求解器是不能用于有零主元问题的。

2)由于增加了额外的自由度,刚度阵变大了。

3)一个可能发生的严重问题,就是在接触状态发生变化时,例如从接触到分离,从分离到接触,此时接触力有个突变,产生chattering(接触状态的振动式交替改变)。如何控制这种chattering,是纯粹拉格朗日法所难以解决的。

因此,为控制chattering,ANSYS采用的是罚函数法与拉格朗日法混合的扩展拉格朗日乘子法。在扩展拉格朗日法中,可以采用实常数TOLN来控制最大允许穿透值。还有最大允许拉力FTOL。这两个参数只对扩展拉格朗日乘子法有效。

在扩展拉格朗日乘子法里,程序按照罚函数法开始,与纯粹拉格朗日法类似,用TOLN来控制最大允许穿透值。如果迭代中发现穿透大于允许的TOLN值,(对178单元是TOLN,而对面面接触单元171-174则是FTOLN)则将各个接触单元的接触刚度加上接触力乘以拉格朗日乘子的数值。因此,这种扩展拉格朗日法是不停更新接触刚度的罚函数法,这种更新不断重复,直到计算的穿透值小于允许值为止。

尽管与拉格朗日法相比,扩展拉格朗日法的穿透并不是零,与罚函数法相比,可能迭带次数会更多。扩展拉格朗日法有下列优点:

1)较少病态,个接触单元的接触刚度取值可能更合理。

2)与罚函数法相比较少病态,与单纯的拉格朗日法相比,没有刚度阵零对角元。因此在选择求解器上没有限制,PCG等迭代求解器都可以应用。

3)用户可以自由控制允许的穿透值TOLN。(如果输入了TOLN,而使用罚函数法,则程序忽略它)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
贴一个介绍Matlab关于接触分析的文章-接触分析.doc 分享…… 文章目录如下 一般的接触分类............................................................................................. 1 ANSYS接触能力........................................................................................... 1 点─点接触单元............................................................................................. 1 点─面接触单元............................................................................................. 2 面─面的接触单元......................................................................................... 2 执行接触分析................................................................................................. 3 面─面的接触分析......................................................................................... 3 接触分析的步骤:......................................................................................... 3 步骤1:建立模型,并划分网格.................................................................. 4 步骤二:识别接触对..................................................................................... 4 步骤三:定义刚性目标面............................................................................. 4 步骤4:定义柔性体的接触面...................................................................... 8 步骤5:设置实常数和单元关键字............................................................ 10 步骤六:....................................................................................................... 21 步骤7:给变形体单元加必要的边界条件................................................ 22 步骤8:定义求解和载 步选项.................................................................. 22 第十步:检查结果....................................................................................... 23 点─面接触分析........................................................................................... 25 点─面接触分析的步骤............................................................................... 26 点-点的接触............................................................................................... 36 接触分析实例(GUI方法)........................................................................ 39 非线性静态实例分析(命令流方式)....................................................... 42
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值