ANSYS的非线性收敛准则
ansys非线性问题
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的01倍就收敛啦?
请指点
我是这样理解的例如下面的命令流:
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 重新划分单元试试,后续会得到不同的答案。
Q:我在计算一个大型结构,地震荷载,BEAM188计算时间太长一个小时可能计算了1秒总共40秒,而且越来越慢,不小心早上还停了电如何能使计算加快?
或者怎么才能即使突然结束以后还能继续算?
谢谢!
A:调整优化非线性计算的收敛和速度可以说几乎是一种艺术,即没有固定的可循规则,呵呵。
我的经验是,你的结构的"非线性"越小,非线性的变化越规则,就越容易收敛。想象一下如果你是手算这个非线性问题,对你来讲较容易的,对ANSYS的相应算法也会容易些。
可以把你的地震时程分析拿出几点,做一下静态的非线性分析,同时调整模型看看分析出来的结果是否合理。如果这一步还没有做,那花大量时间做出的时程分析是废品的可能性十分之大。
一定要记住有限元分析是一个"简化"问题的过程。建立一个模型一定要由浅到深,线性的模型没有搞透不要贸然进攻非线性,静态没有搞透不要碰时程分析。
A:影响非线性收敛稳定性及其速度的因素很多,我们可以看看这几点:
1、模型——主要是结构刚度的大小。对于某些结构,从概念的角度看,我们可以认为它是几何不变的稳定体系。但如果结构相近的几个主要构件刚度相差悬殊,或者悬索结构的索预应力过小(即它的刚度不够大),在数值计算中就可能导致数值计算的较大误差,严重的可能会导致结构的几何可变性——忽略小刚度构件的刚度贡献。
如果还不能理解,我们可以进一步说:我们有一种通用的方法判断结构的几何可变性,即det(K)=0。
在数值计算中,要得到det(K)恒等于零是不可能的,我们也就只能让它较小时即认为结构是几何可变的。
对于上述的结构,他们的K值是很小的,故而也可判断为几何可变体系。事实上这类结构在实际工程中也的确是非常危险的。
为此,我们要看看模型有没有问题。如出现上述的结构,要分析它,就得降低刚度很大的构件单元的刚度,可以加细网格划分,或着改用高阶单元(BEAM->SHELL,SHELL->SOLID)。构件的连接形式(2刚接或铰接)等也可能影响到结构的刚度。
2、线性算法(求解器)。ANSYS中的非线性算法主要有:稀疏矩阵法(SPARSE DIRECT SOLVER)、预共轭梯度法(PCG SOLVER)和波前法(FRONT DIRECT S
LOVER)。稀疏矩阵法是性能很强大的算法,一般默认即为稀疏矩阵法(除了子结构计算默认波前法外)。预共轭梯度法对于3-D实体结构而言是最优的算法,但当结构刚度呈现病态时,迭代不易收敛。为此推荐以下算法:
1)、BEAM单元结构,SHELL单元结构,或以此为主的含3-D SOLID的结构,用稀疏矩阵法;
2)、3-D SOLID的结构,用预共轭梯度法;
3)、当你的结构可能出现病态时,用稀疏矩阵法;
4)、当你不知道用什么时,可用稀疏矩阵法。
3、非线性逼近技术。在ANSYS里还是牛顿-拉普森法和弧长法。牛顿-拉普森法是我们常用的方法,收敛速度较快,但也和结构特点和步长有关。弧长法常被某些人推崇备至,它能算出力加载和位移加载下的响应峰值和下降响应曲线。但也发现:在峰值点,弧长法仍可能失效,甚至在非线性计算的线性阶段,它也可能会无法收敛。
为此,我们尽量不要从开始即激活弧长法,还是让程序自己激活为好(否则出现莫名其妙的问题)。子步(时间步)的步长还是应适当,自动时间步长也是很有必要的。
A:如何加快计算速度
在大规模结构计算中,计算速度是一个非常重要的问题。下面就如何提高计算速度作一些建议:
充分利用ANSYS MAP分网和SWEEP分网技术,尽可能获得六面体网格,这一方面减小解题规模,另一方面提高计算精度。
在生成四面体网格时,用四面体单元而不要用退化的四面体单元。比如95号单元有20节点,可以退化为10节点四面体单元,而92号单元为10节点单元,在此情况下用92号单元将优于95号单元。
选择正确的求解器。对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。对于工程问题,可将ANSYS缺省的求解精度从1E-8改为1E-4或1E-5即可。
波前法,PCG法都是方程组求解方法的一种。
方程组解法:
(1) 直接解法:a.稀疏矩阵法;b. 波前解法
a. 稀疏矩阵法:占内存大,但运算次数少;通过变换刚度矩阵的顺序使得非零元素最少
b. 波前解法: 波前法的特点是:刚度矩阵K和载荷列阵P不按自然编号进入内存而按计算时参加运算的顺序排列; 在内存中只保留尽可能少的一部分K和P的元素。
(2) 迭代解法:
JCG法;PCG法;ICCG法
JCG法:可解实数、对称、非对称矩阵
PCG法:高效求解各种矩阵(包括病态),但仅解实、对称矩阵
ICCG法:类似JCG,但更强
对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。
因篇幅问题不能全部显示,请点此查看更多更全内容