何为收敛?
Q:结构非线性静力分析经常出现收敛这个词,如:收敛容限,收敛准则,收敛的解,位移收敛检验等
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 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中收敛增强工具用于加速收敛,提高收敛,如果求解控制被关闭,这些工具必须谨慎选取,选取不正确会妨碍收敛。
Nonliner——Line seach 当热传到率有很大改变时会通过减少比例因子来增加N-R存储的热流向量,当有非常的非线性情况出现,如相变或热冲击分析,使用这个工具很有效,缺省时关闭。
Nonliner——predictor(收敛提高预测器)根据前面的结果预测温度的结果,他在模型的非线性相应随时间变化过程中改变平滑的情况下非常有效,ANSYS缺省条件下自动预测每个子步后的结果,预测器可以使用手工打开和关闭。
Nonliner——monitor 定义3个变量来跟踪模型特定节点的温度相应和范例热流率。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删