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.rhkb.cn/news/253357.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看NodeJs版本和查看NPM版本

Windows10 Dos命令下 查看NodeJs版本和查看NPM版本 NodeJs的命令是:node -v Npm的命令是:npm -v 下图: 记录下!~

java hutool工具类实现将数据下载到excel

通过hutool工具类,对于excel的操作变得非常简单,上篇介绍的是excel的上传,对excel的操作,核心代码只有一行。本篇的excel的下载,核心数据也不超过两行,简洁方便,特别适合当下的低代码操作。 下载…

RabbitMQ的延迟队列实现[死信队列](笔记一)

关于死信队列的使用场景不再强调,只针对服务端配置 注意: 本文只针对实现死信队列的rabbitMQ基本配置步骤进行阐述和实现 目录 1、docker-compose 安装rabbitMq2、查看对应的版本及插件下载3、安装插件和检测 1、docker-compose 安装rabbitMq a、使用d…

Leetcode—61. 旋转链表【中等】

2024每日刷题(114) Leetcode—61. 旋转链表 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) …

[C++]类和对象(下)

一:再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值,虽然构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化 构造函数体中的语…

AI监控+智能充电桩系统如何缓解新能源汽车充电难问题

在新能源汽车行业的快速发展中,充电桩作为重要的配套设施,其建设和发展至关重要。随着新能源汽车销量的增长,补能需求也日益迫切,这为充电桩行业的发展提供了巨大的机遇。然而,充电桩行业在快速发展的同时,…

私人银行市场调研:投资资产总规模将突破90万亿元

私人银行目标客户是具有富裕的资产或很高收入的私人顾客"私人银行的门槛很高,其服务对象不是一般大众客户,而是社会上的富裕人士,或称为高净资产客户(HNw-HighNetworth)。私人银行客户的金融资产一般在100万美元以上,远远高于…

Java设计模式-责任链模式

责任链模式 一、概述二、结构三、案例实现四、优缺点五、源码解析 一、概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门…

Vue中对虚拟DOM的理解

作为现代前端开发中的主流框架之一,Vue.js是一个非常流行的JavaScript框架,其核心概念之一就是虚拟DOM(Virtual DOM)。在本篇文章中,我们将深入探讨Vue中虚拟DOM的概念,并讨论为什么它在前端开发中如此重要…

git 合并多条提交记录

我要合并多条提交记录(合并前7条为一条),实现如下效果: 使用git rebase // 查看前10个commit git log -10 // 将7个commit压缩成一个commit;注意:vim编辑器 git rebase -i HEAD~4 // add已经跟踪的文件 g…

Qt 常见容器类用法(二)

目录 QList类 QLinkedList类 QList类 对于不同的数据类型&#xff0c;QList<T>采取不同的存储策略&#xff0c;存储策略如下&#xff1a; 如果T是一个指针类型或指针大小的基本数据类型(该基本类型占有的字节数和指针类型占有的字节数相同)&#xff0c;QList<T>…

pytorch基本数据类型

目录 1. tensor2. 数据类型3. 数据类型的创建和使用3.1 数据类型check3.2 Dimension为0的tensor3.2 Dimension为1的tensor3.3 Dimension为2的tensor3.4 Dimension为3的tensor3.5 Dimension为4的tensor 1. tensor 下图为python数据类型与pytorch的对应关系 在pytorch中是没有s…

STM32 硬件随机数发生器(RNG)

STM32 硬件随机数发生器 文章目录 STM32 硬件随机数发生器前言第1章 随机数发生器简介1.1 RNG主要特性1.2.RNG应用 第2章 RNG原理框图第3章 RNG相关寄存器3.1 RNG 控制寄存器 (RNG_CR)3.2 RNG 状态寄存器 (RNG_SR)3.3 RNG 数据寄存器 (RNG_DR) 第3章 RNG代码部分第4章 STM32F1 …

前端vite+vue3——自动化配置路由布局

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐ 自动化配置路由&#x1f496;引入vite版本自定义目录映射&#x1f496;自动化读取文件下的路由&#x1f496;main入口加载路由&#x1f496;入口app.vue配置&#x1f496;layout基础布局配置&#x1f496;效果 ⭐总结⭐结束 ⭐前言…

Stable Diffusion 模型下载:Samaritan 3d Cartoon SDXL(撒玛利亚人 3d 卡通 SDXL)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 由“PromptSharingSamaritan”创作的撒玛利亚人 3d 卡通类型的大模型&#xff0c;该模型的基础模型为 SDXL 1.0。 条目内容类型大模型基础模型SDXL 1.0来源CIVITA…

Linux------命令行参数

目录 前言 一、main函数的参数 二、命令行控制实现计算器 三、实现touch指令 前言 当我们在命令行输入 ls -al &#xff0c;可以查看当前文件夹下所有文件的信息&#xff0c;还有其他的如rm&#xff0c;touch等指令&#xff0c;都可以帮我们完成相应的操作。 其实运行这些…

8.0 Zookeeper 四字命令教程详解

zookeeper 支持某些特定的四字命令与其交互&#xff0c;用户获取 zookeeper 服务的当前状态及相关信息&#xff0c;用户在客户端可以通过 telenet 或者 nc&#xff08;netcat&#xff09; 向 zookeeper 提交相应的命令。 安装 nc 命令&#xff1a; $ yum install nc …

算法提升——LeetCode123场双周赛总结

周赛题目 三角形类型 II 给你一个下标从0开始长度为3的整数数组nums&#xff0c;需要用它们来构造三角形。 如果一个三角形的所有边长度相等&#xff0c;那么这个三角形称为equilateral。 如果一个三角形恰好有两条边长度相等&#xff0c;那么这个三角形称为isosceles。 如…

【Docker】Docker Image(镜像)

文章目录 一、Docker镜像是什么&#xff1f;二、镜像生活案例三、为什么需要镜像四、镜像命令详解docker rmidocker savedocker loaddocker historydocker image prune 五、镜像操作案例六、镜像综合实战实战一、离线迁移镜像实战二、镜像存储的压缩与共享 一、Docker镜像是什么…

Python学习路线 - Python高阶技巧 - 拓展

Python学习路线 - Python高阶技巧 - 拓展 闭包闭包注意事项 装饰器装饰器的一般写法(闭包写法)装饰器的语法糖写法 设计模式单例模式工厂模式 多线程进程、线程并行执行多线程编程threading模块 网络编程Socket客户端和服务端Socket服务端编程实现服务端并结合客户端进行测试 S…