当前位置: 首页 > article >正文

COMSOL接触(高度非线性)仿真常见报错及解决方法总结

前言

        由于COMSOL采用隐式求解器,相较于使用显式求解器的Dyna、Abaqus等软件。要在COMSOL中实现结构接触这一高度非线性问题难度较大,报错时有发生。究其原因,是当物体之间相互接触时,物体受到的应力、运动路径会发生突变,这使得仿真容易在模型开始接触时报错。因此,对COMSOL求解器及模型结构进行合理地设置避免报错是十分必要的。
        本文共总结了三种常见报错,以及六种可能解决该问题的调试方法,以期在COMSOL中实现高度非线性问题建模(接触等)。


一、模型介绍

        此模型来源于文章复现。二维板件接触仿真模型,等效电路为二阶RLC电路。当脉冲电流通入线圈时,板件受到电磁力的作用发生塑性形变。当两板件的形变位移之和达到板件间隙距离时就会发生高速碰撞。该模型复现初期,在未优化之前仿真到接触时刻均会报错。
Alt
        具体文章细节可查看知网链接:针对H型线圈的电磁脉冲焊接仿真及线圈截面结构影响分析

二、常见报错

1、非线性求解器不收敛,达到最大牛顿迭代次数;
2、无法计算弹塑性应变变量;
3、重复误差测试失败,可能已达到奇点。

三、解决方法

3.1 检查网格质量

        模型剖分的网格质量低很容易报错,出现报错时首先要检查网格质量。检查网格质量的方法为选择网格-统计信息。检查单元质量直方图最左侧是否有点。如果有说明网格质量很低,需要对网格进行优化。

网格信息统计
单元质量直方图

3.2 设置变量的缩放比例

        由于软件自动确定的比例因子不一定合理,因此需要手动设置变量的缩放因子。该模型板件开始接触时的最大应力为4.56×108 N/m2,因此将接触压力的比例因子设置为1e8。设置方法为选择研究-求解器配置-解-因变量-接触压力
        具体可参考COMSOL官网提供的解决方法:手动设置变量的缩放比例
在这里插入图片描述

3.3 局部细化求解步长

        当板件开始碰撞时,板件受到的应力及运动路径会发生突变,即模型的运动状态会发生突变。当这种变化过大时,仿真很容易报错。解决方法是使用更短的计算步长使这种过渡更平滑。而计算步长过短会使计算效率降低,因此可以对模型开始接触时的一小段时间的计算步长进行局部细化。
        如该模型板件在7.4us时发生碰撞,因此将7us~8us的步长设置为0.01us,其余时间段步长设置为0.05us,设置方法如下图所示。经过一段时间的测试,我认为这种方法是解决模型接触仿真报错最有效的方法。
        具体可参考COMSOL官网提供的解决方法: 错误:无法计算弹塑性应变变量
在这里插入图片描述

3.4 设置瞬态求解器

        瞬态求解器采用全耦合子特征,定位到方法和终止栏。将雅可比矩阵更新设置为在每次迭代中,并将最大迭代次数增加到25或更大的值。设置方法如下图。
        具体可参考COMSOL官网提供的解决方法: 提高非线性瞬态模型的收敛性
在这里插入图片描述

3.5 设置合适的初始接触压力

        该模型板件开始接触时的最大应力为4.56×108 N/m2,因此设置接触压力初始值为1e8。设置方法为选择固体力学-接触-初始值
在这里插入图片描述

3.6 局部细化几何尖锐部位的网格

        自适应网格难以划分尖角部位,可以局部细化较为尖锐部位的网格。如果该部位不重要的话,可以考虑去除。这也是提高求解收敛性的常见方法。具体可参考链接: comsol出现奇点怎么办。若将二维板件四个顶点倒圆角处理后按前述方法统计网格信息,网格质量得到了明显提高。

总结

        以上就是今天要分享的内容,以一个接触仿真模型为例,对网上COMSOL接触仿真报错解决方法进行了整理,同样适用于高度非线性模型的调试,希望对您的学习有所帮助。欢迎留言讨论及点赞、收藏。


http://www.kler.cn/a/230877.html

相关文章:

  • aspose-words字体转换
  • Mathtype与word粘贴快捷键冲突word中Mathtype始终灰色
  • 【大数据面试题】004 Flink状态后端是什么
  • 机器学习 | 一文看懂SVM算法从原理到实现全解析
  • 嵌入式学习Day14 C语言 --- 位运算
  • Python程序员面试题精选及解析(2)
  • JAVA中的模版设计模式
  • 【前端模板】bootstrap5披萨餐厅网站Pizza King平台(电商适用,附源码)
  • RabiitMQ延迟队列(死信交换机)
  • 3.2-媒资管理之MinIo分布式文件系统+上传图片
  • 从零学习Linux操作系统 第二十五部分 文本处理工具
  • 编码技巧——基于Socket通信的接口调用
  • C程序设计(第5版)谭浩强习题解答 第10章 对文件的输入输出
  • vue-cil的watch函数详解
  • Git - 每次 git pull/push 时需要账号和密码解决方案
  • 什么是VPS服务器技术
  • watch 和 watchEffect 的使用
  • Fink CDC数据同步(一)环境部署
  • c# List集合操作帮助类
  • 杭州融资融券利率一般最低是4.5%,两融有哪些核心注意事项?