声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 工程软件 Ansys 查看内容

关于ansys中收敛的介绍

2016-8-11 14:45| 发布者: ksj1982| 查看: 1255| 评论: 2|原作者: 不详|来自: CAE技术联盟微信公众平台

摘要:   在进行求解过程中的一些中间值的误差对于结果的影响的大小,当中间量的误差对于你的数值积分的结果没有产生影响,就说明你的积分方法是稳定的,最终你的数值积分的结果就会收敛于精确解;当中间量的误差导致数值 ...
  一、何为收敛?
  在这里我引用一个会员的提问来解释这个问题:
  Q:结构非线性静力分析经常出现收敛这个词,如:收敛容限,收敛准则,收敛的解,位移收敛检验等,请解释,thanks!
  A: 个人是这样理解的:
  谈到收敛总会和稳定性联系在一起,简单的说,就是在进行求解过程中的一些中间值的误差对于结果的影响的大小,当中间量的误差对于你的数值积分的结果没有产生影响,就说明你的积分方法是稳定的,最终你的数值积分的结果就会收敛于精确解;当中间量的误差导致数值积分结果与精确解有很大的差别时,就说明你的方法稳定性不好,你的数值积分结果不会收敛于精确解。
  我想当你对于稳定性和收敛的概念真正理解后,那些名词对于你来说,并不是问题,力学的问题最终都会和数学联系在一起,建议你看看数值积分方面的教程,学好了数学,力学对于你来说就是a piece of cake。

  Q:那么说收不收敛,最终都是因为采用的计算方法和计算参数选取的问题了?
  A:就本人所学的专业来说,很大程度上取决于所采用的算法,我学的是结构工程,举个例子吧 :当在进行结构动力时程分析时,采用的几种方法有线性加速度法,威尔逊-theta法,对于线性加速度法,当时间步长大于周期的0.5倍时,计算结果很可能出现不收敛,而当时间步长小于0.1倍的周期时,才有可能获得稳定的计算结果;而威尔逊-theta法,实质上就是线性加速度法的修正形式,很多实例表明当theta值大于1.37时,这种算法是无条件稳定的。当然影响计算结果是否收敛的原因有很多,比如初始条件,我所指的仅仅是我所学专业的一个问题的很小的一个方面。
  A: 说白了,就是数学。牵涉到实际的计算问题时,才发现数学实在是太有用了,不过可惜数学实在学得不好。
  A: 收敛的问题,就好像你往水里扔一块石头激起的波浪,慢慢会平息下来,这就收敛了。计算的时候就是这样,数据在每次迭代的时候在精确解的周围震荡,最后无限趋向于精确解。我想学过级数的人就应该知道,里面就有个无穷级数的和收敛的问题。
  数学真的非常重要,特别是研究做的比较深入以后,有些东西别人没做过,要靠自己推导,有些迭代方法也需要自己证明是否收敛,或者方法的可靠性等等,都需要比较扎实的数学基础。有时候想解决一个问题,却苦于没有数学工具,这让我觉得学校教育应该在现代数学的一些方面多做些介绍,至少应该让人大概知道一个问题应该朝哪个方面去想,就算不懂,学起来也有个方向。
  A: 首先说明,我对收敛问题没有做过专门研究,只是在学习中多次遇到,说说我对收敛的理解,当然,也提出点疑问。
  1)收敛问题,是不是可以定义为当前解法中解是不是趋近于真实解的问题。
  2)我觉得现在有一种,或者说一类方法,就是求问题数值解的问题。这类问题并不要求或难以求出解析解。对这类问题的一个解决思路是:假设初始解,通过目标函数对初始解进行反馈,调整,从而去接近于真实解或最优解。这类解法有一个重要的问题,就是下一步的解要比当前解更趋近于真实解的问题。我认为这就是收敛问题的由来。
  A: 你提到了几个数值积分方法,都有一定的局限性。
  哈尔滨工业大学的王焕定教授提出过一种“高阶单步法”,据说,这个方法是无条件稳定,且可在大步长的情况下获得良好的计算精度。可能的话,向您推荐这个方法。

  二、引起不收敛的因素
  1、模型——主要是结构刚度的大小。
  对于某些结构,从概念的角度看,可以认为它是几何不变的稳定体系。但如果结构相近的几个主要构件刚度相差悬殊,在数值计算中就可能导致数值计算的较大误差,严重的可能会导致结构的几何可变性——忽略小刚度构件的刚度贡献。
  如出现上述的结构,要分析它,就得降低刚度很大的构件单元的刚度,可以加细网格划分,或着改用高阶单元(BEAM->SHELL,SHELL->SOLID)。构件的连接形式(刚接或铰接)等也可能影响到结构的刚度。

  2、线性算法(求解器)。
  ANSYS中的非线性算法主要有:稀疏矩阵法(SPARSE DIRECT SOLVER)、预共轭梯度法(PCG SOLVER)和波前法(FRONT DIRECT SLOVER)。稀疏矩阵法是性能很强大的算法,一般默认即为稀疏矩阵法(除了子结构计算默认波前法外)。预共轭梯度法对于3-D实体结构而言是最优的算法,但当结构刚度呈现病态时,迭代不易收敛。为此推荐以下算法:
  1)、BEAM单元结构,SHELL单元结构,或以此为主的含3-D SOLID的结构,用稀疏矩阵法;
  2)、3-D SOLID的结构,用预共轭梯度法;
  3)、当你的结构可能出现病态时,用稀疏矩阵法;
  4)、当你不知道用什么时,可用稀疏矩阵法。

  3、非线性逼近技术。
  在ANSYS里还是牛顿-拉普森法和弧长法。牛顿-拉普森法是常用的方法,收敛速度较快,但也和结构特点和步长有关。弧长法常被某些人推崇备至,它能算出力加载和位移加载下的响应峰值和下降响应曲线。但也发现:在峰值点,弧长法仍可能失效,甚至在非线性计算的线性阶段,它也可能会无法收敛。
  为此,尽量不要从开始即激活弧长法,还是让程序自己激活为好(否则出现莫名其妙的问题)。子步(时间步)的步长还是应适当,自动时间步长也是很有必要的。

  4、加快计算速度。
  在大规模结构计算中,计算速度是一个非常重要的问题。下面就如何提高计算速度作一些建议:
  充分利用ANSYS MAP分网和SWEEP分网技术,尽可能获得六面体网格,这一方面减小解题规模,另一方面提高计算精度。
  在生成四面体网格时,用四面体单元而不要用退化的四面体单元。比如95号单元有20节点,可以退化为10节点四面体单元,而92号单元为10节点单元,在此情况下用92号单元将优于95号单元。
  选择正确的求解器。对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。对于工程问题,可将ANSYS缺省的求解精度从1E-8改为1E-4或1E-5即可。

  5、荷载步的设置直接影响到收敛。
  应该注意以下几点:
  1、设置足够大的荷载步(将MAXMIUM SUBSTEP=1000000),可以更容易收敛,避免发散的出现(nsub,nsbstp,nsbmx,nsbmn);
  2、设置足够大的平衡迭代步数,默认为25,可以放大到很大(100)(eqit,eqit);
  3、将收敛准则调整,以位移控制时调整为0.05,以力控制为0.01
  CNVTOL,lab,value,toler,norm,minref)。
  4、对于线性单元和无中间节点的单元(SOLID65和SOLID45),关闭EXTRA DISPLACEMENTS OPTIONS(在OPTIONS中)。
  5、对于CONCRETE材料,可以关闭压碎功能,将CONCRETE中的单轴抗压强度设置为-1(tadata,mat,shrcf-op,shrcf-cl,UntensSt,UnCompSt(-1))。

  三、如果不收敛,可以考虑以下方法改进
  1、放松非线性收敛准则
  (CNVTOL Sets convergence values for nonlinear analysis)。
  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如果发现问题不收敛,求解就会终止,并且最后的不收敛结果会导入结果文件供分析。用户必须在后处理之前知道求解是不收敛的,ANSYS用以下方法指定求解是不收敛的:
  1、错误文件:会清楚的指出不收敛的解,并且会对不收敛的可能加以说明;
  2、通用后处理器post1中的查询命令result summary,不收敛的求解结果会被指定为子步数目为999999。

  五、收敛增强工具(只针对热分析)
  ANSYS中收敛增强工具用于加速收敛,提高收敛,如果求解控制被关闭,这些工具必须谨慎选取,选取不正确会妨碍收敛。
  Nonliner——Line seach 当热传到率有很大改变时会通过减少比例因子来增加N-R存储的热流向量,当有非常的非线性情况出现,如相变或热冲击分析,使用这个工具很有效,缺省时关闭。
  Nonliner——predictor(收敛提高预测器)根据前面的结果预测温度的结果,他在模型的非线性相应随时间变化过程中改变平滑的情况下非常有效,ANSYS缺省条件下自动预测每个子步后的结果,预测器可以使用手工打开和关闭。
  Nonliner——monitor 定义3个变量来跟踪模型特定节点的温度相应和范例热流率。

  六、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中取较大值。现假如TOLER的缺省值是0.1的话,这个准则是不是可以理解成后一次的SRSS是前一次的SRSS的0.1倍就收敛啦?
  我是这样理解的例如下面的命令流:
  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。他们分别是累积迭代次数和绝对收敛范数,用来判断非线性分析是否收敛。

22.webp.jpg


  ansys在每荷载步的迭代中计算非线性的收敛判别准则和计算残差。其中计算残差是所有单元内力的范数,只有当残差小于准则时,非线性叠代才算收敛。ansys的位移收敛是基于力的收敛的,以力为基础的收敛提供了收敛量的绝对值,而以位移为基础的收敛仅提供表现收敛的相对量度。一般不单独使用位移收敛准则,否则会产生一定偏差,有些情况会造成假收敛。(ansys非线性分析指南--基本过程Page.6) 。因此ansys官方建议用户尽量以力为基础(或力矩)的收敛误差,如果需要也可以增加以位移为基础的收敛检查。ANSYS缺省是用L2范数控制收敛。其它还有L1范数和L0范数,可用CNVTOL命令设置。在计算中L2值不断变化,若L2
  由于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。

  非线性收敛非常麻烦,与网格精度、边界条件、荷载步等一系列因素有关,单元的特点对收敛的影响很大,单元的形态不好收敛则困难些;合理的步长可以使求解在真解周围不至于振荡,步长过小,计算量太大,步长过大,会由于过大的荷载步造成不收敛。网格密度适当有助于收敛,网格太密计算量太大,当然太稀计算结果会有较大的误差。究竟多少往往要针对问题进行多次试算。




发表评论

最新评论

引用 Pseudo-lover 2016-8-16 13:20
六面体网格的优势是怎样体现的呢
引用 think2015 2016-8-17 13:04
介绍的很全面  感谢分享

查看全部评论(2)

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-13 02:33 , Processed in 0.046578 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部