原文地址:http://muchong.com/html/201209/4936556.html

在ansys output windows 有 force convergenge valu 值 和 criterion 值,当前者小于后者时,就完成一次收敛。
非线性计算是一个迭代计算的过程,曲线表示两次迭代之间的误差,图中分别表示力和位移在迭代过程中的每次迭代之间的误差 
两条线的意思分别是:
F L2: 不平衡力的2范数
F CRIT: 不平衡力的收敛容差,
如果前者大于后者,说明没有收敛,要继续计算。
U为位移。
当然,如果若以弯矩M为收敛准则,那么就对应 M L2 和 M CRIT。
图中那两条线,紫的是残差力,即({F} - {Fnr}),蓝的是收敛准则,当残差在准则以下时,求解收敛。
建议不要使用位移收敛准则,因为位移收敛准则是个相对量。


ANSYS的非线性收敛准则
CNVTOL, Lab, VALUE, TOLER, NORM, MINREF
ANSYS中,非线性收敛准则主要有力的收敛,位移的收敛,弯矩的收敛和转角的收敛。一般用力的控制加载时,可以使用残余力的2-范数控制收敛;而位移控制加载时,最好用位移的范数控制收敛。
When SOLCONTROL,ON, TOLER Defaults to 0.005 (0.5%) for force and moment, and 0.05 (5%) for displacement when rotational DOFs are not present. 
When SOLCONTROL,OFF, defaults to 0.001 (0.1%) for force and moment.
收敛精度一般可放宽至 5%,以提高收敛速度。 
加快收敛的方法有一下几种: 
  1可以增大荷载子步数,nsubst,nsbstp,nsbmn,carry 
  2修改收敛准则,cnvtol,lab,value,toler,norm,minref 
  3 打开优化的非线性默认求解设置和某些强化的内部求解算法, solcontrol,key1,key2,key3,vtol(一般情况下,默认是打开的) 
  4重新划分网格,网格的单元不宜太大或太小, 一般在5~10厘米左右 
  5 检查模型的正确性 
关于ansys中收敛准则(cnvtol)理解
ansys中依据缺省的收敛准则,程序将对不平衡力SRSS与VALUE*TOLER的值进行比较;而VALUE的缺省值是在SRSS和MINREF中取较大值。
下面的命令流: 
  cnvtol,f,5000,0.0005,0 
  cnvtol,u,10,0.001,2 
  如果不平衡力(独立的检查每一个自由度)小于等于5000*0.0005(也就是2.5),并且如果位移的变化小于等于10*0.001时,认为子步是收敛的。 

  ANSYS中收敛准则,程序默认力与位移共同控制,并且收敛的控制系数好像是0.001。这样的收敛精度一般很难使塑性分析收敛,对于一般的塑性分析收敛问题,前几个荷载步(弹性阶段)用力与位移共同控制,进入塑性后用力控制或位移控制,也可以先用力后用位移控制(位移控制比较容易收敛),至于控制系数取多少,自己根据需要逐步放大直至收敛!也有人建议最后用能量来控制收敛,
convergence value 是收敛值,convergence norm是收敛准则。ansys可以用cnvtol命令,如:cnvtol,f,10000,0.00001,2,,其中f是指采用力结果,10000是收敛绝对值,0.00001是收敛系数,2是收敛2范数。 
收敛准则应该是指选取那种结果进行收敛判定,通常有三种选择,分别是力(f),位移(u)、和能量。当然这三种形式可以单独使用也可以联合使用。收敛准则的另一层意思应该是选取什么范数形式(1、2、3范数)。一般结构通常都选取2范数格式。 
而收敛值只是收敛准则中的一部分,如cnvtol命令中的收敛绝对值与收敛系数的乘积就应该是你所指的收敛值(convergence value)。 
        ansys 使用收敛准则有L1,L2,L~~(无穷大)三个收敛准则。 
在工程中,一般使用收敛容差(0.05)就可以拉。 
建议使用位移收敛准则( cnvtol,u,0.05,,, )与力收敛准则( cnvtol,f,0.05,,, )。因为仅仅只使用一个收敛准则,会存在较大的误差。 
假如你只能是使用一个收敛准则,建议你提高收敛容差(0.01以下)。 


      ansys计算非线性时会绘出收敛图,其中横坐标是cumulative iteration number 纵坐标是absolute convergence norm。他们分别是累积迭代次数和绝对收敛范数,用来判断非线性分析是否收敛。 
      ansys在每荷载步的迭代中计算非线性的收敛判别准则和计算残差。其中计算残差是所有单元内力的范数,只有当残差小于准则时,非线性叠代才算收敛。ansys的位移收敛是基于力的收敛的,以力为基础的收敛提供了收敛量的绝对值,而以位移为基础的收敛仅提供表现收敛的相对量度。一般不单独使用位移收敛准则,否则会产生一定偏差,有些情况会造成假收敛.(ansys非线性分析指南--基本过程Page.6) 。因此ansys官方建议用户尽量以力为基础(或力矩)的收敛误差,如果需要也可以增加以位移为基础的收敛检查。ANSYS缺省是用L2范数控制收敛。其它还有L1范数和L0范数,可用CNVTOL命令设置。在计算中L2值不断变化,若L2<crit的时候判断为收敛了。也即不平衡力的l2范数小于设置的criterion时判断为收敛。由于ANSYS缺省的criterion计算是你全部变量的平方和开平方(SRSS)*valuse(你设置的值),所以crition也有小小变化。如有需要,也可自己指定crition为某一常数, CNVTOL,F,10000,0.0001,0 就指定力的收敛控制值为10000*0.0001=1。另外,非线性计算中用到的一个开关是SOLCONTROL 
        如关闭SOLCONTROL 选项,那么软件默认收敛准则:力或弯矩的收敛容差是0.001,而不考虑位移的收敛容差;如果打开SOLCONTROL 选项,同样的默认收敛准则:力或弯矩的收敛容差是0.005,而位移收敛容差是0.05。 
        非线性收敛非常麻烦,与网格精度、边界条件、荷载步等一系列因素有关,单元的特点对收敛的影响很大,单元的性态不好收敛则困难些;合理的步长可以使求解在真解周围不至于振荡,步长过小,计算量太大,步长过大,会由于过大的荷载步造成不收敛。网格密度适当有助于收敛,网格太密计算量太大,当然太稀计算结果会有较大的误差。究竟多少往往要针对问题进行多次试算。 
如果不收敛,可以考虑一下方法改进 
  1.放松非线性收敛准则。 
          (CNVTOL #Sets convergence values for nonlinear analyses). 
  2.增加荷载步数。 
          (NSUBST #Specifies the number of substeps to be taken this load step) 
  3.增加每次计算的迭代次数(默认的25次) 
          (NEQIT #Maximum number of equilibrium iterations allowed each substep) 
  4 重新划分单元试试,后续会得到不同的答案。


Ansys 牛顿-拉普森法用如下方程迭代到一个收敛解:
          [KT]{deta u} = {F} - {Fnr}
以增量形式逐渐施荷加载。
在每一载荷增量中完成平衡迭代来使得增量求解达到平衡。
求解平衡方程[KT]{Deta u} = {F} - {Fnr} 
    [KT]=切线刚度矩阵
   {deta u} =位侈增量
   {F} =外部载荷向量
   {Fnr} =内部力向量
迭代进行,直到{F} - {Fnr}在允许误差范围内。程序反复求解此方程(二分载荷增量), 直到残差(失衡力), {F} - {Fnr}, 小到可以接受的程度.
对于此残差, 最大可接受值称为力收敛准则.
数学上表达为:
    如果:  ||{R}|| < (eR*Rref)
    那么:  求解收敛.
式中 
||{R}|| 是残差的矢量范数(范数是将一个向量转换为单一的标量值的算子).
L1 残差范数: ||{R}||1 = Sigma|Ri|(累加)
L2 (SRSS) 残差范数:||{R}||2 = sqrt(Sigma(Ri*Ri))
残差范数极限: ||{R}|| = max(|Ri|)
(eR Rref) 是力收敛准则
eR  是容差系数,  Rref 是参考力值
Rref 可以是所有施加的力和反力的范数, ||{F}||
对大部分工程应用, 缺省收敛准则工作得很好:
  ||{R}||2 < (0.5% * ||{F}||2)
对于特殊情况, 你可以改变此准则.
你可以收紧或放松收敛准则.
准则越紧, 精度越好, 但是越难以收敛.
你还可以选择其它项去检查收敛.
可以用力、力矩、位移和转动准则.
另外, 你可以改变用于测量收敛项的范数.
L1、L2或极限范数.

2.jpg