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://xiahunao.cn/news/2773847.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Qt Windows和Android使用MuPDF预览PDF文件

文章目录 1. Windows MuPDF编译2. Android MuPDF编译3. 引用 MuPDF 库4. 解析本地PDF文件 1. Windows MuPDF编译 使用如下命令将MuPDF的源码克隆到本地 git clone --recursive git://git.ghostscript.com/mupdf.git直接用VS,打开 mupdf/platform/win32/mupdf.sln …

FPGA_vga显示

一 VGA 1.1 VGA VGA是视频图像阵列,是一种使用模拟信号进行视频传输的标准协议。 1.2 VGA接引脚定义 VGA分公母两种,RGB显示标准。 1.3 VGA显示器 VGA显示器采用图像扫描的方式进行图像显示,将构成图像的像素点,在行同步信号…

如何在 emacs 上开始使用 Tree-Sitter(windows)

文章目录 如何在emacs上开始使用Tree-Sitter(windows) 如何在emacs上开始使用Tree-Sitter(windows) 参考:“How to Get Started with Tree-Sitter”。 首先要有一个可运行的emacs,并且它支持Tree-Sitter&…

【C++】中的 inline 用法

1、引入 inline 关键字的原因 在 c/c 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据&a…

Python环境下基于辛几何模态分解的信号分解方法

基于辛几何的分析方法是一种保护相空间几何结构的新型分析方法,主要用于求解动力学和控制系统中矩阵或Hamilton矩阵的特征值问题,用来解决在动力学和控制系统理论的2n2n矩阵或哈密顿矩阵的特征值问题,已应用到结构损伤信号、奇异微分方程等系…

Visio 2019下载安装教程,保姆级教程,附安装包

前言 Visio是负责绘制流程图和示意图的软件,便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。帮助您创建具有专业外观的图表&#xff0c…

mac电脑安装cocoapods出错,以及安装最新版本ruby方法

macbook安装cocoapods时碰到一个报错:大概率是ruby的版本太低导致的 sudo gem install cocoapods ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. ... Could not create Makefile due to some reason, probably lack of neces…

redisson源码解析

由于synchronized跟ReetrantLock是JVM级别的锁,在分布式情况下失效,这时候我们通常会选择redisson基于redis封装好的分布式锁。下面我们一起来分析以下redisson的源码。 使用方式 流程 getLock源码 给命令执行器赋值给看门狗时间赋值,默认30…

年假作业day2

1.打印字母图形 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int i,j; char k; for(i1;i<7;i) { for(j1;j<i;j) { printf("%c",_); } for(j0,…

GetBilibiliVideo:一个下载B站视频的开源神器,让你轻松管理你的二次元世界。

正文&#xff1a; 引言 在广大ACG爱好者和内容创作者之间&#xff0c;哔哩哔哩&#xff08;Bilibili&#xff09;已经成为了不可或缺的视频分享与学习平台。为了满足用户对B站视频离线观看及备份的需求&#xff0c;我精心开发了一个名为 GetBilibiliVideo 的开源工具&#xf…

如何将mongodb+django部署到云服务器上(备份)

在有了一台云服务器之后&#xff0c;我们就可以把写在本机上的程序&#xff0c;搬到服务器上了。采用WinSCP在本机和服务器之间交换文件&#xff1b;FinalShell来操作服务器。 1、mongodb-本机到服务器 主要是三个步骤&#xff1a;dump本地数据库-上传-导入&#xff0c;详情请…

tkinter绘制组件(41)——菜单按钮

tkinter绘制组件&#xff08;41&#xff09;——菜单按钮 引言布局函数结构按钮部分菜单显示完整代码函数 效果测试代码最终效果 github项目pip下载结语 引言 TinUI5的新控件&#xff0c;菜单按钮&#xff0c;menubutton。 这是一个与TinUI菜单&#xff08;menubar&#xff0…

ctfshow——命令执行

文章目录 web 29——通配符*绕过web30——调用其他命令执行函数web 31——参数逃逸web 32-web 36——配合文件包含伪协议web 37-web 39——文件包含web 40—— web 29——通配符*绕过 i不区分大小写&#xff0c;直接?csystem(tac fl*.php); web30——调用其他命令执行函数 调用…

网络攻防模拟与城市安全演练 | 图扑数字孪生

在数字化浪潮的推动下&#xff0c;网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟&#xff0c;为安全专业人员提供实战经验&#xff0c;从而提升应对网络威胁的能力。同时&#xff0c;在城市安…

故障诊断 | 一文解决,TCN时间卷积神经网络模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,TCN时间卷积神经网络模型的故障诊断(Matlab) 模型描述 时间卷积神经网络(TCN)是一种用于序列数据建模和预测的深度学习模型。它通过卷积操作在时间维度上对序列数据进行特征提取,并且可以处理可变长度的输入序列。 要使用TCN进行…

最大子数组和[中等]

一、题目 给定一个长度为n的环形整数数组nums&#xff0c;返回nums的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上&#xff0c;nums[i]的下一个元素是nums[(i 1) % n]&#xff0c;nums[i]的前一个元素是nums[(i - 1 n) % n]。 子数…

spring boot和spring cloud项目中配置文件application和bootstrap加载顺序

在前面的文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 日志配置 logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10000000 seconds" debug…

freeRTOS总结(十五)软件定时

1&#xff0c;软件定时器的简介&#xff08;了解&#xff09; 定时器&#xff1a; 从指定的时刻开始&#xff0c;经过一个指定时间&#xff0c;然后触发一个超时事件&#xff0c;用户可自定义定时器的周期 硬件定时器&#xff1a; 芯片本身自带的定时器模块&#xff0c;硬件定…

【从Python基础到深度学习】1. 安装Python PyCharm

前言&#xff1a; 为了帮助大家快速入门机器学习-深度学习&#xff0c;从今天起我将用100天的时间将大学本科期间的所学所想分享给大家&#xff0c;和大家共同进步。【从Python基础到深度学习】系列博客中我将从python基础开始通过知识和代码实践结合的方式进行知识的分享和记…

使用easyExcel 定义表头 字体 格式 颜色等,定义表内容,合计

HeadStyle 表头样式注解 HeadFontStyle 表头字体样式 HeadStyle(fillPatternType FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor 22) HeadFontStyle(fontHeightInPoints 12) 以下为实现效果