新浪博客

关于ABAQUS中增量步的理解

2014-10-05 16:17阅读:
整理自我在仿真论坛里发的新人贴
问题:
比如我一个step里施加10KN的荷载,Time period设置为1,incrementation里,Maximum number 设置成100,那我的increment size 初始就是不是就是0.01?是不是意思就是把10KN等分成100个0.1KN叠加来加载?每一次增加一个0.1KN(每次增加的量就是按照increment size 占 time period的比值算的?),abaqus会计算出这个状态下系统平衡时候的参数,比如应力应变什么的,如果不收敛,就把增量减小再算(荷载增加一次,按照平衡状态计算系统的应力应变这类参数的过程貌似叫迭代),减小几次还不收敛就退掉(所谓收敛是不是就是系统还能满足平衡状态?)
但是当我设置过Amplitude,里面定义了力关于时间的增量之后,abaqus运算的时候是看我Amplitude的设置还是step里的?


四个问题整理如下:
Q1:increment size = time period / Maximum number of incrementes?
Q2:每次增加的力的大小 = 施加的荷载 × time period / Maximum number of incrementes?
Q3:迭代是不是就是力增加了一点之后,按平衡状态算下应力应变的这个过程?所谓收敛就是根据之前定义的材料属性,边界条件,系统满足平衡要求?
Q4:step里的设置和load里Amplitude的设置,区别联系?这两个是怎么一起作用的?


以下是坛友 Valehtelija
的回答:
Q1:初始增量步会受到最小增量步的限制。
Q2:力加载依照增量步大小线性变化不适用于弧长法。
Q3:迭代是求解非线性方程的一种数值计算方法,隐式和显式的差别在于非线性方程组的解耦,显式算法无需迭代。这些东西可以去读读数值分析的教材。另外除非有刚体位移和接触定义不正确(aba会提示)的问题,aba迭代算法一般都是收敛的。平常说的不收敛并不是说算法发散,而是在五次(或者七次,忘记了。。可以自己设置)迭代后由位移计算所得反力跟实际受力的差大于设定的收敛容差,就停止迭代了。不收敛跟算法的收敛速度有关,有可能的话可以瞅瞅弧长法的原理。
Q4:你可以把amplitude里每一个时间间隔近似看做一个分析步~个人理解,仅作参考。
我的理解:
首先先大概说下abaqus计算的过程,一个step(分析步)有自己运行的总时间,如果施加一个荷载,abaqus会根据initial占总的time period的比例逐步累积来施加荷载,当连续几个过程都收敛的时,abaqus会增大incrementation,知道incrementation(增量步的)max值,这个可以看做是abaqus减少运算量的一个措施吧。相应的,如果计算不收敛,那么abaqus会减小incrementation来计算,即又一次迭代,当减小到min值时还不收敛,就退出计算。
那如果设置了Amplitude会发生什么呢?我们施加的荷载,力也好,位移也好,很多时候都不是线性的,这个时候,就要设置Amplitude。按照我的理解,Amplitude和step最好共用一个时间轴(就是Amplitude最大时间等于step里面的time period),这样子不浪费。Amplitude给荷载的加载提供一个趋势参考,比如Amplitude里定义的曲线里,0.5的时间对应的参数是0.1,那么这个时候就增加0.1倍总荷载的荷载值。


总结如下:
Q1:不一定,这个可以自己定,因为不一定每次迭代都收敛的。
Q2:没有Amplitude的时候,是这样的。但是increment size会根据收敛情况变化,范围是你设置的最大和最小值。
Q3:迭代就是一个计算过程(我理解的就是F=kx),有几种算法,忘记叫啥了,以后用到了再研究。收敛就是算出来这个位移值可以用的意思。
Q4:Amplitude见楼上。这里举个栗子,比如有个力,在一个step的整个过程中都在作用,而且没变,那么可以设置一个Amplitude,在step period里都为1。
Ps:看仿真论坛的东东,要有仿真论坛的账号,搞模拟必备。

我的更多文章

下载客户端阅读体验更佳

APP专享