作者简介  

本文作者:江丙云

本文由作者发布于iCAETube公众号,技术邻CAE学院授权转载。

江丙云,上海交通大学博士,CAEMC-国际注册CAE工程管理咨询工程师,《汽车实用技术》编委会副秘书长。专职于汽车零部件、3C电子产品分析和优化;熟悉Abaqus(达索技术支持专家认证),专注于联合仿真和复材分析等;编著有《ABAQUS工程实例详解》、《ABAQUS Python二次开发攻略》、《ABAQUS分析之美》和《ANSYS Workbench有限元分析工程实例详解》等4本专著。

求解非线性分析的工程师都经历过:收敛困难。这里提出寻找收敛问题原因的一点想法。

01

检查作业诊断

Abaqus/Viewer打开odb结果文件,菜单Tools-->Job Diagnostics 。作业诊断提供所有警告和错误,以及残差和接触信息。最有用的功能之一是视口中的突出显示选择复选框。

警告选项卡中,用户可以看到数值奇点和零点(如果适用)的位置,可能会了解导致这些警告的原因。在残差选项卡中,可以显示具有最大残差的节点。查看此节点的迭代会出现收敛困难,通常会显示导致问题的模型区域。这个地区发生了什么意外事件吗? 在接触选项卡中,可以查看最大接触力误差和最大穿透误差的位置。

02

查看警告信息

查看何时发出警告以及是否可能指向该问题。例如,如果求解程序尝试以较大的增量进行第一次尝试并发出与负特征值相关的警告,然后减少时间增量并在下一个增量中获得收敛而没有任何困难或警告,则可能是警告是只是尝试过大的时间步骤的结果。

如果警告消息重复并且发生重复削减,则可能表示稳定性问题。某些警告非常具体,其他警告可能会因不同的根本原因而发生,需要更多经验才能解决问题。

03

查看边界条件

不收敛的一个原因是边界条件不足,不合理的边界条件可能导致局部极端变形,模型也可以过度约束或受约束。在约束条件下,并非所有刚体运动都被抑制,导致一个或多个自由度,零刚度和通常零枢轴警告。过度约束也会导致零枢轴警告。

尽管Abaqus检查过度约束并尝试解决它们,但这并不总是可行的,例如,如果由于接触而在一段时间后开始发生过度约束。建议检查与过度约束相关的所有警告消息,不要认为Abaqus能够正确解决过度约束。

04

查看接触

接触也是收敛困难的主要原因,因为接触的开始会给力 - 位移关系带来不连续性,这增加了牛顿法求解的难度。这就是Abaqus在接触变化时使用单独的严重不连续迭代的原因。

接触不收敛的一个可能来源是接触初始状态。如果问题依赖于稳定性的接触但开始并没有接触,则求解难以开始。特别是在使用负载控制的情况下:基本上将负载应用于没有刚度的物体并且可以发生刚体运动。如果开始使用位移控制来确保发生接触通常可以解决收敛问题。Abaqus当然提供接触稳定功能,以帮助在接触前自动控制静态问题中的刚体运动。

可以通过使用自动稳定在接触控制中定义。通过自动稳定,当表面彼此靠近但不接触时施加阻尼,因此对负载部件的位移具有阻力,并且不再能够进行刚体运动。因为这意味着允许表面接触,所以在应用它的步骤期间,阻尼减小,默认为0。建议检查粘性耗散是否过大,例如将ALLSD与ALLIE进行比较。也可以应用解决点6中提到的不稳定性的技术。

另一个潜在的接触非收敛源是没有为实际接触的表面定义接触,这可能导致不切实际的结果,非常大的变形和不收敛。例如,自接触较容易被忽视。当Abaqus强大的通用接触被应用时,通常不会发生这种情况。

05

查看材料

当应变增加时材料中的应力不增加(刚度不为正)时,会发生收敛问题。当包括损伤的实验数据用于定义模型而未建立损伤模型时会发生收敛问题。检查模型中的(最大)应力和应变是否超出了材料定义的损伤范围。

如果使用Abaqus的超弹性模型的材料拟合选项,则材料的稳定性可能会受到限制,通过右键单击材料并选择“Evaluate”,可以查看Abaqus计算的稳定性限制。

当使用塑料材料模型并且载荷到达定义曲线的末端时,Abaqus用水平线外推曲线:(塑性)应变可以增加,但应力不增加(完全可塑性)。在这种情况下,刚度为零。如果在单个单元中发生,通常模拟将运行没有问题,当模型的大部分单元是理想塑性时,可能成为一个问题,通常表明材料的负载太大。

06

采用阻尼解决不稳定

可能导致不收敛的最常见原因是存在不稳定性。模型开发的原则之一是模型不应该比描述的目标行为更复杂。考虑到这一点,通过假设为静态运行来降低模型的复杂性似乎是合理的。然而,这种简化可能使模型更难以解决。一般来说,负荷下材料的行为由牛顿第二定律描述:

F = m x a(力等于质量乘以加速度)

当假定静态行为时,加速度等于零,因此所有力的总和必须等于零:力平衡。当系统从一个平衡状态移动到下一个平衡状态并且所有状态之间也处于平衡状态时,静态假设是有效的。但情况总是这样吗?以初始未与负载控制接触的两个部件为例。为什么这种情况可能实际存在?因为负载部件的初始位移将由其惯性决定。

某种惯性或阻尼效应通常有助于获得收敛解决方案。在Step定义中,可以选择自动稳定,例如,使用默认指定的耗散能量分数。

这类似于添加了一个额外的粘性力,与节点位移成比例除以模型中所有节点的时间步长,具有稳定效果,检查粘性耗散是否过大,例如将ALLSD与ALLIE进行比较。

另一种方法是使用动态隐式步骤,选择准静态应用。

这使用了Euler Backward方案,该方案具有基于实际质量的粘性效果。在这种情况下,解决了时间相关的问题,因此时间尺度应该是合理的。检查相对于内部能量的动能是否很小。

-END-

 【培训推荐】

【7月25-28日 北京】压力容器静动强度评定、疲劳断裂计算、热应力高温蠕变分析、结构优化与可靠性

【7月20-21日 上海】最后一天报名!Abaqus UMAT用户子程序二次开发技术培训

【8月16-19日 北京】焊接、螺栓连接结构与过盈装配结构有限元计算研修班

点击阅读原文,查看更多培训

abaqus中元素过度失真是什么意思_[ABAQUS]非线性收敛问题的六个建议相关推荐

  1. abaqus中元素过度失真是什么意思_Abaqus三维多晶体脚本建模Voronoi多面体建模

    hello,大家好呀.今天是2020-12-09.又到了今天的脚本时间,昨天因为我忙着别的事了,所以托更了一天了,抱歉抱歉.今天给大家带点硬核的东西,三维多晶体Voronoi多边形建模. 如果有做晶体 ...

  2. python语言在abaqus中的应用 仿真秀_Python语言在Abaqus中的应用(18讲)-掌握Python编程实现ABAQUS高效仿真...

    本课适合那些人学习: 1.理解有限元基本概念.熟悉Abaqus/CAE分析流程的工程师: 2.学习型仿真工程师 3.使用Abaqus软件进行有限元分析的工程师 4.高校教师.博(硕)士研究生 对学员的 ...

  3. python在abaqus中的应用光盘文件下载_python语言在abaqus中的应用随书光盘.rar-讲义文档类资源...

    关闭 致敬爱的网友及本站会员的一封信 敬爱的小伙伴们大家好! 作为码农集市(coder100)平台的站长,我不得已采取这样的方式来和各位来到我们平台逛逛的小伙们做一次推心置腹的畅谈.真诚的希望您能够抽 ...

  4. python在abaqus中的应用光盘文件下载_Python语言在Abaqus中的应用DVD光盘

    关闭 致敬爱的网友及本站会员的一封信 敬爱的小伙伴们大家好! 作为码农集市(coder100)平台的站长,我不得已采取这样的方式来和各位来到我们平台逛逛的小伙们做一次推心置腹的畅谈.真诚的希望您能够抽 ...

  5. python在abaqus中的应用代码下载_Python-(source-code)-in--Abaqus Python语言在Abaqus中的应用(源码) - 下载 - 搜珍网...

    Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码)/Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码 ...

  6. python怎么重复程序_利用Python程序完成ABAQUS中的一些重复性操作

    对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程.比如对上百个点施加集中力,比如建立几百个耦合约束.这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错. 利 ...

  7. python利用集合的无重复性_利用Python程序完成ABAQUS中的一些重复性操作

    对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程.比如对上百个点施加集中力,比如建立几百个耦合约束.这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错. 利 ...

  8. 基于python脚本的参数化建模_Python在ABAQUS中

    Python在ABAQUS中 所属分类:其他 开发工具:Python 文件大小:17325KB 下载次数:0 上传日期:2020-11-25 11:47:17 上 传 者:qwe12334 说明:   ...

  9. abaqus python二次开发攻略_Python 进行 Abaqus 二次开发的基础知识

    1.Python 一切皆对象的特点 Object(对象):可以是数据,可以是函数,也可以是包含若干数据和函数的打包整体.对象可以包括成员和方法. Member(成员):对象包含的子对象,子对象可以是数 ...

最新文章

  1. .ipynb文件转.py文件
  2. oninput,onpropertychange,onchange的用法和区别
  3. java pid 获取句柄_获取进程pid、根据进程pid获取线程pid、获取线程进程句柄
  4. GitHub的DGit改进了平台的可靠性、性能以及可用性
  5. 【在虚拟环境下完美解决】1698: error: (-215:Assertion failed) empty() in function cv::CascadeClassifier
  6. FileBeat + Pipeline 解析日志 保存至ElasticSearch(实战)
  7. 信息学奥赛一本通(1131:基因相关性)
  8. 002A demo of the Spectral Co-Clustering algorithm
  9. mybatis # 和$ 获取接收参数值的区别
  10. 如何正确地开启Facebook广告营销大门?
  11. vue-cli3以上框架解决跨域问题
  12. oracle tochar fm,oracle的to_char中的fm-Oracle
  13. 模糊pid控制算法matlab程序解读,基于Matlab的模糊PID控制研究
  14. 大学生爱情兵法-洪亚非-听课笔记
  15. CSV文件分割工具开发-python版
  16. raid0,1,3,5,6,10,50的物理磁盘容量和逻辑容量的关系。
  17. css table thead tr border生效
  18. C#——检测鼠标滑轮事件
  19. 2023年1月综合预订类APP用户洞察——旅游市场复苏明显,三年需求春节集中释放
  20. unity 摄像头跟着鼠标移动_unity第三视角移动,摄像机跟随

热门文章

  1. codis3数据迁移探索
  2. Django源码分析8:单元测试test命令浅析
  3. flask源码学习-helloworld与本地启动流程
  4. RESTful视图之Request 与 Response
  5. C语言字符串大小写转换_只愿与一人十指紧扣_新浪博客
  6. 基于OpenCV的数字识别系统
  7. 从入门到放弃心得 | 我为什么弃用GAN?
  8. 7个最佳的学习Python编程的开源库
  9. 线性求[1,P-1]的逆元
  10. Linux服务器安装软件