-图文教程-
非线性求解原理
--Abaqus非线性--
01
前言
❖ 关键词_
# Abaqus
# 非线性求解原理
❖非线性模型的计算效率常取决于模型的收敛性,有时也会出现不收敛致使计算终止的情况,我们该如何控制非线性模型的收敛性呢?
❖首先我们要了解非线性的求解原理,本篇章就非线性求解原理进行简易介绍_
❖部分内容来源于网络整理,部分内容来源于个人理解_
❖可能存在理解错误或不足的情况,欢迎指正交流_
02
正文
❆静力平衡的基本条件是内力(I)和外力(P)达到平衡_
❆在非线性问题中,模型中的外力P可以是位移u和时间t等独立变量的非线性函数_
❆在非线性问题中,模型中的内力I可能是下列变量的非线性函数_
✦位移
✦应变
✦时间
✦温度
✦用户定义场变量
✦其他变量
❆非线性问题的求解,基于增量/迭代技术;
❆通常将载荷作为时间的函数,分解为许多小的增量;
❆每个增量步中都可以得到一个近似解;
❆为了得到足够精确的近似解,可能在单个增量步中进行多轮迭代;
❆Abaqus常用的两种增量/迭代方法_
✦Newton-Raphson(牛顿-拉普森法)
✦Quasi-Newton(拟牛顿法)
❆一旦迭代产生一个收敛解, Abaqus将采用一个新的载荷增量, 并重复迭代过程;
❆载荷与时间的关系是通过分析步来定义的;
❆每个Step(即分析步)都被分解成一个时间增量序列;
❆用户需要指定[初始时间增量],即第一个增量步的大小;
✦这是一个预估值,建议初始增量步的大小是整个增量(即该Step时间步长)的0.01~0.1;
❆Abaqus使用自动时间增量算法,确定所有其他时间增量大小;
✦即第一个增量步指定大小,之后所有增量步的大小由Abaqus通过算法确定;
❆当[增量步大小]小于所设定的[增量步最小值]时会终止计算;
✦因此[增量步最小值]不能设置的过大,以防止计算提前终止,该值采用默认的1E-05即可;
❆当[增量步步数]达到[增量步最大步数]时也会停止计算;
❆非线性问题的求解效率取决于增量步的大小;
❆用户需要指定[初始时间增量],即第一个增量步的大小;
❆对于每个增量步,通过数个平衡迭代步后,试图找到一个收敛解;
❆Abaqus增量步控制准则举例_
✦当连续两个增量步中的迭代次数小于或等于4次,增量步会自动增大为原来的1.5倍;
✦当一个增量步中的迭代次数达到10次,仍然没有收敛,增量步会自动减小为原来的25%;
【注意】
资料里是这么说的,但实际上似乎有些出入,有时似乎并没有严格按照这个规则来,当然也可能是博主采用超算平台计算的原因_
❆另附一个模型计算的*.sta文件内容_
❆STEP为分析步步数,一个计算中可以设置多个STEP,但是本案例中只包括一个STEP;
❆INC为增量步步数;
❆ATT为每个增量步的尝试次数;
❆INC OF TIME/LPF是增量步大小;
❆SEVERE DISCON ITERS和EQUIL ITERS是增量步的两种迭代方式的迭代次数,了解不多;
❆TOTAL ITERS是增量步的迭代总次数;
❆STEP TIME/LPF是当前增量步所在的STEP时间步位置与该STEP时间步长的比值,一个增量步的STEP TIME/LPF与该增量步大小之和就是下一个增量步的STEP TIME/LPF;
❆STEP TIME/LPF逐渐递增到1即代表该STEP计算完成;
❆TOTAL TIME/FREQ考虑多个STEP计算时的情况,与STEP TIME/LPF原理类似,不大好解释,涉及到多个STEP计算时应该一看就能明白;
--------
■收敛性较好的情况下,通常每个增量步仅尝试一次就可以成功找到该增量步的收敛解;
■然后下一个增量步的大小将提高到之前的增量步大小的1.5倍;
■创建STEP时我们设置了该STEP即分析步的初试时间增量为0.01,即该STEP的第一个增量步大小为0.01,同时第2个增量步大小也是0.01,第3个增量步大小为0.01*1.5=0.015,第4个增量步大小为0.015*1.5=0.0225,以此类推;
■收敛性不好的情况下该增量步可能需要经过多次尝试,即1U、2U、3U、4U、5U等,同时会降低该增量步的大小,比如第5个增量步第一次尝试即1U没有找到该增量步收敛解,此时该增量步的大小为0.03375,然后就降低增量步大小到原来的1/4(即0.03375/4=0.008438)进行第5增量步的第2次尝试_
■如果成功找到该增量步的收敛解则进入下一增量步且下一增量步的大小增加到当前增量步大小的1.5倍;
■如果未能找到该增量步的收敛解,则继续降低增量步大小至当前增量步大小的1/4并进行下一次尝试;
■依次类推_
❆当一个增量步的尝试次数过多时会终止计算,在Abaqus中最大尝试次数的默认设置为5次,即一个增量步在进行5次尝试都没有找到该增量步的收敛解时会终止计算并退出;
✦在收敛性不好的情况下可在设置中适当提高该值;
❆当增量步小于创建STEP时所设置的即增量步最小值时也会终止计算;
【注意】
❖不建议新手用户对Abaqus的默认求解设置进行修改,Abaqus当前的默认求解设置是经过验证的,是适用性很强且非常合理的,在出现不收敛的情况时应该优先考虑自己的模型问题,关于收敛性控制我们后期篇章再行介绍;
▓ 关系梳理
■ Step分析步
■ Increment增量步
■ Iteration迭代步
❆一个模型可以设置一个或多个Step分析步;
❆每个Step分析步会被分解成多个Increment增量步;
✦增量步的步数由增量步的大小决定,常取决于模型的收敛性,后面再进行详细介绍;
❆每个Increment增量步会包含多个Iteration迭代步;
✦即每个Increment增量步会经过多次迭代来求取一个足够精确的近似解;
▓ 局部收敛准则VS全局收敛准则
✦局部收敛:要求模型中的每个节点都必须满足一个或多个收敛条件,才能认为迭代已经收敛;
✦全局收敛:通过检查在整个模型上求和的量(如能量平衡),以确定收敛性;
✦Abaqus采用局部收敛会更保守且确保得到正确的解;
▓ 我们需要什么样的”求解策略”?
✦精度_残差必须足够小,以保证近似解接近问题的精确数学解;
✦效率_残差必须足够大,以保证迭代计算的物理时间可以接受;
▓ 修改_Abaqus/Standard的收敛准则_
✦关键字:*CONTROLS
✦收敛准则过于宽松_求解结果不够精确;
✦收敛准则过于严格_更难收敛;
✦在更改收敛标准之前,先检查模型本身的潜在问题,一般也都是模型本身的问题;
✦通常默认值是比较合理的,不建议新手用户改动;
❆可在STEP模块下_Other菜单_General Solution Controls_Manager_进行设置_
✦I0和IR:迭代步次数限制,用于控制增量步增大或减小;
✦IA:允许出现不收敛迭代的次数,即之前所讲的允许增量步的尝试次数,对应Monitor窗口中的IU至5U,对于部分难收敛的非线性问题,可以考虑增大IA值;
▓ Abaqus/Viewer:可视化诊断
❆可在Visualization模块下_Tools菜单_Job Diagnostics进入可视化诊断界面_
✦该JOB即计算任务中所有的增量步、迭代等都可以在此查看,可通过Highlight selcetion in viewport对所需要查看的问题点进行高亮显示,然后对症下药,提高收敛性_