搅拌摩擦焊有限元仿真分析学习笔记(一)——comsol、abaqus相关案例学习


嗯。。。
总之在老师的【强烈建议】之下,最近又开始做搅拌摩擦焊的仿真。。。
说起有限元分析,那我第一个想到的肯定是大名鼎鼎的ansys。
关于仿真分析的需求,我需要的是热场仿真,然后是移动热源的仿真,然后是动力学的仿真,然后是和matlab/simulink联合的仿真。
我把需求整理好之后,问了一下大佬,大佬说我这个仿真涉及到了多个物理场,用ansys做会比较复杂,建议我用comsol,于是我就首先尝试了comsol。

❤ 2022.12.23 ❤

COMSOL搅拌摩擦焊官方案例

关于comsol我是一个纯小白,或者说,关于有限元仿真,我也几乎是一个纯小白,除了当年在本科的时候学过一点点的最最最基础的知识之外,几乎就没有接触过。
毕竟我不是研究材料和工艺的嘛,我用有限元分析只是为了能代替实际的实验来验证我的控制方面的工作。那我最希望的当然是能有现成的案例拿来直接用了哈哈哈。。。
谁想到comsol官方真的有这么一个案例。。。

→→→铝板摩擦搅拌焊接

在这里插入图片描述

大概l流程就是

△ 原理及分析

〇 首先这个模型是用稳态对流扩散模型来模拟搅拌摩擦焊过程的稳定状态的
在这里插入图片描述
〇 然后是分析产热和散热
在这里插入图片描述
得到热传导方程
在这里插入图片描述

〇 搅拌针摩擦产热
在这里插入图片描述
在这里插入图片描述
〇 轴肩摩擦产热
在这里插入图片描述
〇 上下表面散热
在这里插入图片描述


△ 操作流程

〇 建立变量表
在这里插入图片描述
〇 建立几何模型
在这里插入图片描述
〇 配置变量表达式
在这里插入图片描述
在这里插入图片描述
〇 配置环境热辐射、热通量及热源
在这里插入图片描述
〇 配置材料属性
在这里插入图片描述
〇 划分网格
在这里插入图片描述
〇 计算求解
在这里插入图片描述


△ 分析

首先这个方法操作过程比较简单,同样模拟的结果也比较简单,他只能得到稳态的结果,如果想得到在热平衡前的某一时刻的状态就不行了。而且不能模拟搅拌头压入母材的过程。
总之只是做到这样的程度对于我的课题来说是不行的,但是又没有找到更多的使用comsol实现复杂的搅拌摩擦焊有限元仿真的案例,于是我打算把目光放宽一些,先看看其他的软件又没有能够参考的案例,然后再考虑后续的问题。


❤ 2023.1.2 ❤

ABAQUS搅拌摩擦焊有限元仿真

不知不觉时间就被拖到了2023年。。。。。

在我问了几个大佬查了一些资料后,发现用abaqus来实现搅拌摩擦焊有限元仿真的案例比较多,同时我也在b站上找到了一个(仅有的一个)从头到尾实现仿真分析的操作教程。

→→→(详细教程)基于Abaqus的搅拌摩擦焊(FSW)模拟

在这里插入图片描述

在这里感谢这位up主的无私分享。
不得不说,对于一个没有基础没有指导的人来说,从头开始来实现一个仿真的课题实在是有难度。。。几乎所有的案例视频都是卖仿真结果的广告,论文里面不会有具体的操作流程,而掌握了这门技术的人也不会轻易透露自己的所学。
哪怕是跟着那些入门教程一步一步的学习,知道了软件的使用方法,但是具体到某一个课题上也没有办法直接上手,各种模型各种方法各种公式,怪不得别人一个仿真就能发一篇论文。。。


下面是我复现视频里面仿真模型的过程

△ 操作流程

视频里用的是英文版,我用的软件加了汉化。
实践证明,用中文版并没有比英文版更能让我理解软件的功能。。。
但是毕竟中文亲切一点,不过总体来说,使用熟练的情况下,英文表示的更准确。。。(这里吐槽一下官方的中文翻译。。)

○ 创建模型

创建两个板和一个搅拌头
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
不知道为啥视频里要用方形的搅拌头。。。不过先跟着做吧


○ 配置材料属性

在这里插入图片描述
这里分别定义焊材和搅拌头的材料属性
〇 这个是焊材的
在这里插入图片描述
注意这里面的属性都要勾选 【与温度相关的数据】
数据是up主提供的表格里面的,一般有限元分析的论文里也会提到相关的数据。
需要注意的是 【塑性】 这里选择 【Johnson-Cook】 模型,并且在 【依赖于变化率】 中设定相关系数。
在这里插入图片描述

※ 那么。。。JC模型到底是什么呢。。。。

〇 搅拌头的材料属性
在这里插入图片描述
搅拌头就没有考虑与温度相关,可能是因为主要研究的是焊材的变化吧。


〇 创建对应section,并将属性赋予对应零件模型
在这里插入图片描述

在这里插入图片描述


○ 模型装配

在这里插入图片描述
装配成这个样子(操作起来还挺麻烦的,还是三维建模软件好用。。。)
在这里插入图片描述


○ 分析步设置

在这里插入图片描述
这一步配置关系到仿真的时间,但是具体怎么控制时间我还没搞清楚,看来得去学一学abaqus教程了。

仿真过程分为两个部分,一个是搅拌头的下压过程,一个是搅拌头沿焊缝平移的焊接过程。

〇 下压过程
在这里插入图片描述
时间为1s

在这里插入图片描述
在这里插入图片描述

※ up说质量缩放能够加快运算速度,对这个参数还不太理解


〇 焊接过程
时间我想设置成10s,但是不知道哪里没设置好,结果变成了仿真过程是10s,但是输出的动画只有1s。。。。
在这里插入图片描述
在这里插入图片描述

视频里这里和上面的步骤是一样的参数,我做了修改,但是好像没改对
在这里插入图片描述

最后是这样
在这里插入图片描述

♦ 另外 这里可以创建仿真过程的输出,想得到焊接过程的受力情况,大概就要从这里下手了
在这里插入图片描述


○ 创建相互作用

〇 首先创建相互作用属性
第一个是搅拌头表面与母材的接触,注意要勾选与温度相关
在这里插入图片描述

※ 那么。。。什么是罚函数。。。。

在这里插入图片描述

然后是轴肩与母材表面的接触
这里与上面不一样的地方就是 【法向行为】【接触刚度】 不一样
在这里插入图片描述


〇 然后建立接触

把搅拌头与轴肩分别与两个面建立接触
在这里插入图片描述
在这里插入图片描述
这一步up的操作是有问题的,不过在视频的评论区有人指出来了,我已经改正


〇 建立对流换热

分别配置板材与搅拌头的表面热交换
在这里插入图片描述
在这里插入图片描述


〇 创建刚体

将搅拌头配置为刚体,在搅拌头中心创建一个点,整个搅拌头以其为基准运动
在这里插入图片描述


○ 创建载荷

在这里插入图片描述
〇 首先建立板材底部的约束
将板材的底面和侧面设为完全固定
在这里插入图片描述

〇 配置下压过程

以搅拌头中心点为基准,设置搅拌头沿y轴方向的运动
在这里插入图片描述

幅值Amp-1参数如下
在这里插入图片描述

※ 这个参数我还不太理解,大概意思是幅值乘以y方向的速度(-1)等于板厚(单位m,这里多了0.1mm),然后前面的时间/频率是幅值乘以100

〇 配置焊接过程

搅拌头沿z轴运动
在这里插入图片描述
Amp-2
在这里插入图片描述
这里我和视频配置的参数不一样,我觉得视频里面的过程太快了,运动的距离也比较短,于是我改了一下,而且视频里面的操作也有问题,在视频后面up改过来了。

〇 配置搅拌头的旋转
在这里插入图片描述
注意这里的单位是弧度/时间


○ 划分网格

在这里插入图片描述

〇 板材划分网格

首先设置全局种子
在这里插入图片描述

然后点这个生成网格

在这里插入图片描述

在这里插入图片描述

设置网格单元类型
在这里插入图片描述


〇 搅拌头网格划分

搅拌头的网格和板材的网格是不一样的,要选择四面体网格

※ 我也不知道为什么

在这里插入图片描述

同样也是设置全局种子,这里和上面参数一样

在这里插入图片描述

然后是生成网格

在这里插入图片描述

然后是刷新网格属性
在这里插入图片描述

※ 关于这两个不同的模式 【standard】【Explicit】 有什么区别,我找到一篇文章,但是看了之后依然不明白。。。
→→→ABAQUS中Standard分析模块和Explicit分析模块的区别

在这里插入图片描述


○ 建立温度场

〇 首先将所有节点设置为一个set

其实前面的步骤也有up设置set以方便操作的步骤,只是我没写,诶嘿~

在这里插入图片描述

〇 回到 【载荷】 页面

【预定义场管理器】 中新建一个温度场,区域选择刚刚创建的set
在这里插入图片描述

这一步非常卡,我的电脑尽力了。。。

完成之后整个网格就会变黄

在这里插入图片描述

※ 小技巧:如果这里电脑太卡,只要在这里的分析步不要选择initial就好了。。。
在这里插入图片描述


○ 运算求解

在这里插入图片描述

打开 【作业管理器】 ,新建一个Job
这里主要注意 【精度】【并行】

在这里插入图片描述

吐槽一下翻译。。。这里的 【两者】 应该翻译成 【双精度】 。。。我无语。。。。

并行的话,大概就是选择使用多个处理器,选的越多速度越快,占用cpu百分比越多,电脑散热的轰鸣声越大。。。
我试了一下,大概是系统会把一个物理核心识别成两个处理器,所以4核大概最多可用8个处理器,同时cpu的占用率也会到100%。。。
我用虚拟机跑的话,情况也差不多,毕竟虚拟机相当于把物理核心分配给虚拟系统使用嘛。
在这里插入图片描述

配置完成之后点 【提交】 就开始求解了

(图片略)


○ 结果与分析

在这里插入图片描述
就会显示运算结果
在这里插入图片描述

点这个按钮就会以云图来显示
在这里插入图片描述

点这个按钮就会显示动画
在这里插入图片描述

这个显示的是应力
在这里插入图片描述

这个显示的是温度
在这里插入图片描述

温度场长这样
在这里插入图片描述

这个搅拌头上的2400℃着实有点夸张。。。


△ 总结分析

以上就是仿真的操作流程,再次感谢这位up主的无私分享。
不过呢,虽然实现了搅拌摩擦焊的仿真,但是还是有很多需要改进的地方。

比如说在模型里底面和侧面是完全固定的,所以能得到这样的一个应力分布图,但是实际上板材是用夹具压住的,应力应该集中在端面上。
在这里插入图片描述

而且在这个模型里虽然考虑了网格的变形,但是并没有模拟出搅拌针压入后板材的材料流动情况,最明显的就是没有在搅拌头处形成钥匙孔。
在这里插入图片描述

还有就是这个2400度的高温。。。虽然发生在搅拌头上,但是看着挺吓人的。。。
在这里插入图片描述

另外还有就是,虽然up详细分享了操作过程,但是并没有说明建模的原理,应用了什么模型,运用了哪些公式,对我我这种盲人摸象的初级选手,看的知其然不知其所以然。


❤ 2023.1.4 ❤

ABAQUS搅拌摩擦焊CEL模型

在查阅了一些资料以后,我发现应用CEL(Couple Euler-Lagrange method,耦合欧拉-拉格朗日法)来实现搅拌摩擦焊的仿真是比较流行且较为准确的方法。
但是并没有找到 免费 的案例。。。
不过也有几篇文章和视频很有参考价值

首先这篇文章给出了一些关键步骤的配置
→→→Abaqus搅拌摩擦焊仿真

然后这个视频也是上面的up主分享的,应该是从youtube上面搬运来的老外做的cel模型搅拌摩擦焊仿真,据下面的评论说过程有问题,按其操作会报错,我还没有试,等我试一试的
→→→基于abaqus的CEL方法的搅拌摩擦焊模拟

剩下参考的就是一些论文了,在这里感谢如下文章的作者
《搅拌摩擦焊焊接过程多维力测试研究》
《基于ABAQUS的搅拌摩擦焊仿真模拟分析》


△ 操作流程

因为没有完整的案例可供参考,所以这里的步骤是我一步一步摸索的,每个步骤不一定对,我也会即使更正。

○ 建立几何模型

引用文献里面的描述

由于采用了 CEL 方法分析,所以在对焊件建模时,需要建立两个焊件模型,一个为欧拉体焊件三维模型,参与仿真加工过程;另一个为三维可变形实体焊件,其作用是对欧拉体进行材料指派,不参与仿真过程。三维可变形实体尺寸与实际焊件尺寸相同。

〇 建立欧拉域
在这里插入图片描述
欧拉域比板厚多4mm
在这里插入图片描述
在这里插入图片描述

〇 建立板材模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

〇 建立搅拌头模型
在这里插入图片描述
这里类型选择 旋转

在这里插入图片描述
在这里插入图片描述
〇 模型拆分
视频里没有讲一个东西,就是为了细化网格做的模型拆分
按照这篇文章的内容我来操作一下

※ 其实外国老哥后面又补上了,但是他没说。。。

在这里插入图片描述

首先建立基准面
在这里插入图片描述
然后拆分几何元素
在这里插入图片描述

板材也切开
在这里插入图片描述


※ abaqus中的单位

这里补充一下,关于abaqus里面的单位制,我查了一下,abaqus里面其实是没有单位的,需要自己来换算,可以用m也可以用mm,但是后面配置各种参数的时候需要和对应的单位相匹配,这里我搬了一个单位对照表

→→→ABAQUS中单位制的规定以及使用心得

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

abaqus不同单位制转换表
在这里插入图片描述

上一个仿真案例用的是m制单位,这里为了和视频中保持一致所以使用mm制。


○ 定义材料属性

这里按照视频的数据来定义

〇 铝合金

在这里插入图片描述

在这里插入图片描述

〇 钢

在这里插入图片描述

※【?】这里定义完之后应该还得给零件配置对应的属性吧。。。
(【!】后来这位大哥想起来了。。。)


※ abaqus中的温度

关于abaqus中用的是摄氏度还是开尔文度,软件里面并没有要求,需要按照仿真需求自己定义。
大部分的仿真需要定义的参数都是对应温度的变化,此时无论是摄氏度还是开尔文温度并不影响。
但是如果涉及到温度的绝对值,比如说材料的熔点,那么在全局中定义使用摄氏度还是开尔文度就很必要了。

〇 设置绝对零度

在左侧的树形图中选择 【编辑属性】
在这里插入图片描述
【绝对零度】 设置为 -273.13 则默认使用摄氏度。
如果设置为 0 则默认使用开尔文温度。

参考链接:
→→→abaqus中的温度,到底是摄氏度还是开尔文温度?


〇 创建section

· 搅拌头

在这里插入图片描述

在这里插入图片描述

指派给搅拌头

在这里插入图片描述

· 欧拉域

选择欧拉

在这里插入图片描述

直接在这里选择

在这里插入图片描述

指派

在这里插入图片描述

※ 【?】板材部分不需要么?
(【!】按照文章里面所说,这个仿真模型里参与运算的只有欧拉域,板材模型的作用只是用来切分欧拉域,所以后面各种设定都不需要对板材模型进行操作。。。)
【?】我还是不太懂欧拉域是怎么回事。。。。


○ 模型装配

装配成如图所示
在这里插入图片描述


【↓↓↓↓↓我的改动↓↓↓↓↓】

视频里老哥吧搅拌头贴在了欧拉域上 ,可是文章里说要贴在路合金板材上,其实从逻辑来看确实应该贴在板材上,因为之前都是无效的计算,浪费时间。从仿真的角度来说也没有什么用,甚至可能会出问题,所以我这里把他改成搅拌头与板材模型相接触。

当然这里改动之后,分析步与载荷部分都需要做相应的修改。

修改后
在这里插入图片描述

【↑↑↑↑↑我的改动↑↑↑↑↑】


○ 分析步

〇 创建分析步
在这里插入图片描述

配置分析步如图,据说cel方法不支持质量缩放,所以不用设置,不过运算过程要好几天。。。

在这里插入图片描述
〇 编辑场输出请求

原来控制动画帧数的设置在这里呀
在这里插入图片描述

配置每一步的动画帧数
按需求更改输出变量(这里先默认了)
在这里插入图片描述


○ 相互作用

〇 新建相互作用属性

在这里插入图片描述

摩擦系数设为0.4 其他默认

在这里插入图片描述
〇 设置参考点

为什么要在顶面上设置参考点。。。
(好吧我知道了因为好选中。。。)

在这里插入图片描述

〇 创建约束

在这里插入图片描述

选择搅拌头

在这里插入图片描述

在这里插入图片描述
然后参考点选刚建立的参考点
在这里插入图片描述

〇 创建相互作用

※ CEL方法只支持 【通用接触】

· initial阶段

在这里插入图片描述

在这里插入图片描述

· 压入阶段

底面热交换
在这里插入图片描述

选择底面

在这里插入图片描述

环境对流

在这里插入图片描述

选择侧面和顶面

在这里插入图片描述

※ 这就完了?总觉得少了好多步骤。。。
难道最高端的料理只需要最朴素的食材??

※ 【?】那篇文章里面说,这一步需要切分欧拉域,抑制铝合金板材,但是视频里没有讲
(【!】外国老哥后面补上了。。。)


○ 设置载荷

〇 创建载荷,

在这里插入图片描述

选择搅拌头上表面
在这里插入图片描述

在这里插入图片描述

按照前面的单位制,这里应该是100Mpa

※【?】这里没有对欧拉域施加约束!?
(【!】后面施加了欧拉域的边界条件,但是只是设置了边界沿法线方向的位移,并不是约束,不知道有没有影响。。。)


↓↓↓↓↓我的修改↓↓↓↓↓

【!!!】重要提示(2023.1.6)
这个操作是错误的,不能同时给节点设置边界条件和约束,我这里先删除约束试一试。
修改之后见这里 跳转到 【修改之后】

视频中没有对欧拉域的约束,我不是很放心,看到评论里有人说因为约束有问题报错,所以这里我参照上个案例做一下欧拉域的约束。

新建边界条件

在这里插入图片描述

选中欧拉域的底面和侧面

在这里插入图片描述

完全固定

在这里插入图片描述

↑↑↑↑↑我的修改↑↑↑↑↑


〇 创建边界条件

在这里插入图片描述

选择搅拌头的约束点
在这里插入图片描述

初始阶段,完全固定

※ 这里视频老哥是从下压步骤开始的,并没有在初始阶段固定搅拌头,不过在文章里和上一个案例中都是这样操作的,所以我也就这样操作了。

在这里插入图片描述

在这里插入图片描述

· 下压阶段

至于参数我没有按照视频的配置,而是参考文章并且按照我的时间距离计算了下压速度

我在这里让搅拌头下压量稍微超过了一点板厚

在这里插入图片描述

· 保持阶段

在这里插入图片描述

· 焊接阶段

这里我没有设置太高,只设置了5mm/s 先试试,文章说速度太高会有沟道
在这里插入图片描述


【↓↓↓↓↓我对这个步骤的修改↓↓↓↓↓】

视频里外国老哥把搅拌头的位移和旋转放在一起了,这样虽然比较直观,但是根据视频下面的评论,貌似这样的话,搅拌头的移动速度突变会造成仿真错误。
实际情况应该是有个加速的过程,可以在 【幅值】 里面设置加速度曲线,但是这样的话就会影响搅拌头的转速,所以这里我打算参考上面那个实例,把搅拌头的位移和旋转分开来。

※ 关于这个幅值的设定,一开始没什么头绪,看了这些资料之后大概了解了
→→→【ABAQUS】什么是幅值Amplitude?如何设置Amplitude?
→→→Abaqus中幅值曲线介绍

〇 搅拌头的位移

压入阶段

※ 因为前面都搅拌头的相对位置做了修改,但是并没有更改压入阶段的时间参数,所以这里将搅拌头的压入速度作了修改

在这里插入图片描述

保持阶段

在这里插入图片描述

焊接阶段

在这里插入图片描述

加速度曲线Amp-1

在这里插入图片描述

※ 这里的加速度曲线我不确定在时间达到0.5s后,幅值是会归零还是保持,我看文章里设置的曲线是这样的
在这里插入图片描述
这个跟瞬时已经没有区别了吧。。。
好吧我承认我有赌的成分。。。。。。

〇 搅拌头旋转

在这里插入图片描述

在这里插入图片描述

最后是这样

在这里插入图片描述

【↑↑↑↑↑我对这个步骤的修改↑↑↑↑↑】


〇 限制欧拉域的边界条件

x方向

在这里插入图片描述

y方向

在这里插入图片描述

z方向

在这里插入图片描述

〇 预定义温度场

此时,视频中的外国大哥想起来了自己没有给零件指派材料。。。

※【?】指派完材料属性之后,大哥就直接跳过了设置温度场直接去划分网格了?
(【!】好吧,大哥终于还是想起来了。。。)


※ 切分欧拉域

【载荷】 模块中选择 【体积分数工具】

在这里插入图片描述
在实例中选择对应欧拉域

在这里插入图片描述
然后再选择板材模型
在这里插入图片描述

在这里插入图片描述

确定,就完成了切分

相当于欧拉域减去铝板。

※ 按照文章里的说法,铝板模型的作用只是用来切分欧拉域,而不参与运算,所以这里要把铝板模型 【抑制(Suppress) 】 掉,我用的中文版,没找到抑制,不过大概是这个

在这里插入图片描述


〇 指定欧拉域的材料

在这里插入图片描述

选择欧拉域,离散场,编辑区域

在这里插入图片描述

从set里面选择这个

在这里插入图片描述

最后是这个

※ 文章说的是直接选取欧拉域,视频里是从set里面选的,大概是一样的吧

在这里插入图片描述

〇 创建欧拉域温度场

在这里插入图片描述

区域还是欧拉域

在这里插入图片描述

〇 创建搅拌头温度场

在这里插入图片描述

选择搅拌头

在这里插入图片描述

※ 【?】这里操作和上一个案例不一样的地方是,上一个案例先划分网格,然后给每个节点设置初始温度(所以整个模型会变黄。。。),而这个案例是各一个实体设置初始温度,我不了解这两种方法的区别


○ 网格划分

〇 欧拉域网格划分

· 定义全局种子

这里全局尺寸选择2,点应用可以预览效果

在这里插入图片描述

· 细化网格

为了细化焊接区域网格,选择 【为边布种】

然后选择网格细化的区域边线, 【近似单元尺寸】 设为0.5

在这里插入图片描述

· 划分网格如图

在这里插入图片描述

· 设置网格类型

记得勾选 【热耦合】

在这里插入图片描述

〇 搅拌头网格划分

· 修改网格控制属性为 【四面体】

※ 按说,搅拌头为复杂几何体,用四面体网格更合理,但是文章里说他用四面体网格会出问题,推荐用六面体网格,这里我先试一试吧

在这里插入图片描述

· 全局种子设为0.5

在这里插入图片描述

· 划分网格

在这里插入图片描述

· 指派网格属性

※ 视频里老哥没有指派网格属性,但是文章里说要选择 【温度-位移耦合】 ,不然没有温度

在这里插入图片描述


此时老哥想起来了热力场的问题了。。。


○ 提交运算

在这里插入图片描述

说实话我的心里是很忐忑的。。。
实在是不想用我的小笔记本跑。。。(更何况我是在虚拟机里做的。。。)
听说要跑好几天甚至半个月,天。。。。

设置精度

在这里插入图片描述

纠结之下,我还是选择了双精度和完全,我倒是要看看需要多久。。。。

并行的话
我分给虚拟机2个核,所以是四个处理器

在这里插入图片描述

激动人心的时刻到了。。。
虽然没有抱多大希望。。。。

在这里插入图片描述

提交。。。。半个月后见。。。。

❤ 2023.1.6 ❤

嗯。。。报错了。。。
在这里插入图片描述
我去查了一下

在这里插入图片描述

真没想到百度题库里会有这个答案。。。。

好吧看来我确实想多了。。。不应该同时给约束和边界条件,这样


在这里插入图片描述

❤ 2023.1.7 ❤

昨天在我自己的笔记本上提交了一下,结果估计了一下求解时间,大概要69天。。。
这谁忍得了

于是我去找了一个云计算平台,叫北鲲云,租了一台16核的服务器,费劲巴拉安装好软件之后,提交
嚯!速度提升了35%只需要45天了!
在这里插入图片描述
(跑了一上午,终于跑了0.01s,然鹅我的仿真过程一共有10s。。。)
。。。。

于是我又租了个cpu更好的(价格也更贵,3.2/h)的服务器,这个更是重量级,居然只需要1个月!!

好吧,在算力上不能实现数量级的突破的情况下,只好通过简化模型,缩短仿真时间,减少输出帧数,但是总觉得杯水车薪啊。。。

毕竟完整的焊接过程至少要1min左右,再考虑到后面的动力学输出,又不能帧率过低,

CEL模型不能质量缩放真是太垃圾了!

○ 模型修改1

首先在 【分析步】 阶段将输出间隔由每秒100帧改为10帧

在这里插入图片描述

然后缩短模型尺寸,减少单元数量

在这里插入图片描述

刷新一下网格

在这里插入图片描述

提交。。。

啊 报错了。。。
在这里插入图片描述
大概意思是有单元变形太大了,看来还是因为修改了尺寸所以出问题了。

重新划分了网格也还是不行

于是我把修改之前的文件拿过来只修改了输出间隔,没有修改模型尺寸,于是就没有报错,看来还是因为修改了尺寸哪里定义出错了
在这里插入图片描述

但是呢。。。我发现修改输出间隔对计算速度丝毫(至少我没感觉出来)没有影响。。。
依然是2分10秒左右计算0.00019s左右的仿真时间,算起来还是要两个多月。。。。。。。

❤ 2023.1.9 ❤

○ 模型修改2

芜湖,在大佬的指点下,我尝试了增加密度降低比热容的方法。
而且在修改材料属性的时候,我发现视频里外国老哥的参数是有问题的。

另外我在查资料的时候发现不管是文献里还是各种技术贴,各种单位真是天马行空。。。

不过幸运的看到了一个不知道哪位好心人的文件,直接给出了不同单位制之间的转换关系

→→→ 【Abaqus不同单位制转换表】 ←←←

其他参数还是和【模型修改1】之前保持一致

在北鲲云租用16核的服务器
在这里插入图片描述
提交。。。。
等待。。。
等待。。。
大约2个小时左右,结果仿真结果如下

在这里插入图片描述

在这里插入图片描述
【job4:practice20230108】

从正面来看,大飞边引人瞩目,反面留下了明显的沟道。

我查看了一下搅拌头的模型和压入量,发现搅拌头只有2.5mm,压入量我设置为3.1mm,不知道是不是这个原因。

我将压入量更改为2.6mm,搅拌头增加一定的锥形。

在这里插入图片描述

在这里插入图片描述
谁想到情况反而更糟糕了!

虽然从正面看好像还挺漂亮的

在这里插入图片描述

但是。。。

在这里插入图片描述

这次不但没有修正,反而在材料内部形成了更大的隧道。

在这里插入图片描述
【job5:practiceCEL20230109】

于是我就想,会不会是因为我用的材料数据没有和温度相关呢?


❤ 2023.1.10 ❤

于是为了验证是不是我用的材料数据的问题,我把材料属性都改为了一套和温度相关的数据。

并且调整搅拌头压入位置,使其压入过程材料溢出不会触及边界。

下压量改为2.5mm,不破坏最下面一层网格。

但是。。。

OMG!这是什么鬼!!

在这里插入图片描述
【job6:practiceCEL20230109-1】

难道是我的操作问题?

于是我把修改材料属性之后的操作基本又重复了一遍,还是不行,看来是材料属性的问题。


经过排查,我感觉有问题可能性最大的是jc方程的参数,于是我把参数修改为之前看的up的另一个不是cel模型的搅拌摩擦焊视频中的参数(注意Mpa和pa的转换)

但是。。。依然不行

在这里插入图片描述
【job8:practiceCEL20230109-1】

那么问题出在哪里呢?

对比了材料的基本数据之后感觉差别不大,不应该出现这么明显的差距,那么还是JC方程参数的问题。

按说JC方程的参数是根据材料的基本属性以及实验测量计算出来的,可能得和材料的属性匹配。

【?】这里我只是猜测

那么从哪里能找到一套符合实际的材料属性呢?


其实我还是有一些怀疑,会不会是我的操作有问题。。。

于是我决定再把属性改回外国老哥的数据试试。。。

确定了,就是材料属性的问题,我把材料改回外国老哥的数据之后就恢复了,焊缝之中还是有隧道,但是也有不一样的地方,这次隧道没在地面而是在内部。
另外基本也确定输出帧率会影响仿真计算时间以及输出仿真结果文件的大小。
【job10:practiceCEL20230110】


这次打算尝试按照up的视频中的方法对欧拉域进行修改,看看对隧道缺陷有没有改善。
大致看了下,up提供的改进方法和外国老哥的方法相比,只是在指派材料的时候只选择了欧拉域中的铝板部分,而不是整个欧拉域。
说来也是,欧拉域上半部分是真空的,怎么会有材料呢?

操作之后,结果并没有什么变化,依然有隧道缺陷。。。。

[job11:practiceCEL20230111]

※ 虽然up提供的方法操作起来有一定的道理,但是我查看其他案例并没有切分欧拉域这个操作,而是舍弃建立板材模型再切分欧拉域的操作,直接在欧拉域中分割出板材的区域,然后给该区域进行材料指派。
于是我查了一下资料,大概意思是切分欧拉域的操作一般用于欧拉域所在区域几何形状比较复杂的情况,如果欧拉域的几何形状比较规则(就比如搅拌摩擦焊的情况),就不用先进行离散场操作再切分,而是直接材料指派就行了!


在确定运算结果出问题的原因是材料属性设置的问题之后,我准备修改焊接参数看看效果。

这次尝试增加转速,降低焊速,看看有没有什么效果
104r/s(100rpm)增加到312r/s(300rpm),5mm/s减少为3mm/s
焊接时间改为10s(同时改变输出帧数)

没用。。。
【job12:practiceCEL20230111-1】


将搅拌头改为圆柱体,并添加螺纹。
螺纹方向为正,搅拌针逆时针转动。

计算速度相对于不加螺纹增加了几十倍(约100h)放弃。。。
【job13:practiceCEL20230111-1】


使用solidworkds建立带螺纹搅拌头模型
在这里插入图片描述

速度依然缓慢。。。放弃。。。

【job14:practiceCEL20230111-1】

我咨询了up主,是不是加了螺纹之后会极大提高运算量及运算时间,up说不会,建议我从头再操作一遍。。。


❤ 2022.1.28 ❤

同志们过年好!
过完年准备开工了。。。

△ 3mm螺纹搅拌头的从头开始

从头开始做一个3mm螺纹搅拌头的仿真,虽然现在对于整个仿真流程我已经基本熟悉了,但是完整的流程还是只操作过一次,这次再一边看视频一边回顾下流程。过程就不记录那么详细了。

○ 确定材料属性

上一个案例因为材料属性的设置问题出现了很多情况,但是我又没有材料属性的数据,只能用视频里提到的数据,于是这次在动手建立模型之前我先去查了各种文献搜集材料属性。

· 6061-T6铝合金

与温度相关的材料属性:
在这里插入图片描述

来源《搅拌摩擦焊接残余应力及残余变形数值分析》

J-C方程参数:
在这里插入图片描述

来源《基于 CEL 方法搅拌摩擦焊材料流动及缺陷的模拟》

· 7055铝合金

与温度相关的材料属性:
在这里插入图片描述

J-C方程参数:
在这里插入图片描述

来源《基于 CEL 模型的搅拌摩擦焊接 7055 铝合金仿真模拟》

关于J-C方程参数中的7055铝合金的熔点,我找遍这篇文章以及他所参考的原文,依然没有给出相应数据。。。难道说这对研究材料的大佬们来说属于常识?

当然这些数据使用的时候需要根据单位的不同进行转换。


○ 建立模型

这次我只建立欧拉域的模型。

在这里插入图片描述

搅拌头导入之前制作的三维模型

在这里插入图片描述


○ 定义属性

按照论文中的数据,转化为对应的单位后,将6061铝合金及7055铝合金的属性参数录入工程。
在这里插入图片描述

其中7055铝合金的熔化温度因为没有数据,所以就用600来暂时代替,不知道会不会有太大影响。
在这里插入图片描述

〇 创建截面
在这里插入图片描述

〇 截面指派
在这里插入图片描述
在这里插入图片描述


○ 装配

在这里插入图片描述


○ 分析步

〇 创建分析步
在这里插入图片描述

输出间隔0.02s
在这里插入图片描述

〇 添加历程输出

这里我添加一个输出搅拌头的反作用力
在这里插入图片描述


○ 相互作用

〇 配置相互作用属性
在这里插入图片描述

这里关于钢和铝合金的摩擦系数,百度知道上是这么说的。。。

在这里插入图片描述
所以0.4应该算是合理的值,

生热之前用的是1,但是up给的案例都用的0.9,我觉得0.9比较符合实际
在这里插入图片描述

法向行为就默认了
在这里插入图片描述

〇 设置参考点并创建约束

在这里插入图片描述

〇 创建相互作用

在这里插入图片描述

关于上下底面的膜层散热系数,我没有查到相关资料,老外视频里是4和0.25,up的案例里是1和0.1及0.8和0.08,我暂时取1和0.1.
在这里插入图片描述
在这里插入图片描述

○ 载荷

〇 设置边界条件

· 搅拌头

初始阶段
在这里插入图片描述

压入阶段

材料厚度3mm,搅拌头高度2.5mm,下压时间5s,为了让搅拌头充分压入,这里多压0.1mm,也就是下压速度0.502mm/s
旋转速度100rpm对应104r/s左右,这里取800rpm,也就是832r/s,方向因为有螺纹,螺纹方向为正螺纹,为了让材料有向下填充的趋势,所以这里使螺纹顺时针旋转,也就是数值为正。
在这里插入图片描述

停留阶段

在这里插入图片描述

焊接阶段

焊接速度这里用120cm/min,也就是2mm/s,比较接近实际

在这里插入图片描述

· 欧拉域

在这里插入图片描述

〇 预定义温度场

· 欧拉域

因为这里没有用到切分欧拉域,所以直接指派

【!】注意要把选中的区域设为有材料属性的区域,也就是1和0的位置不要反了。

在这里插入图片描述

预定义温度24℃

在这里插入图片描述
完成

在这里插入图片描述
为了不让搅拌头的温度影响最后结果的显示,这里就不给搅拌头设置温度场了。


○ 网格划分

这里我把外侧网格尺寸设为2mm,焊接区域网格设为0.2mm,一共有245000个网格,看来计算量有的算了。。。

在这里插入图片描述

搅拌头的网格大小我设为了0.2, 又是挑战算力的参数

在这里插入图片描述


○ 提交作业

这个工程是我学习搅拌摩擦焊有限元分析知识的集大成,不知道运算起来会不会顺利。。。

激动人心的时刻。。。。

在这里插入图片描述

首先在我的虚拟机上估算下时间

好吧报错了。。。
在这里插入图片描述

大概意思是请求数太多了?
可能是我的运算单元确实有点多吧。。。看来不能完全按照实际情况去建立模型,必须要适当的去简化或者使用别的方法了。。。。


建立3mm板材、螺纹搅拌头的仿真模型。
只建立欧拉域模型,不建立板材模型
使用与温度相关的6061铝合金参数。

可能因为网格太多,提交作业后报错

【job1:practiceCEL3mm20230129】


在上一个工程基础上减小板材尺寸,放大网格,缩减仿真时间

在实验室电脑上试了下还是报错

【job2:practiceCEL3mm20230212】


在工程里复制model1为model2,将螺纹搅拌头替换为圆锥搅拌头,其他不变

出问题了,搅拌头没有动,为啥呢?

【job3:practiceCEL3mm20230212 model2】


缩短每个步骤的时间1+1+8,减少输出帧率每秒10帧,排查问题所在

我想起来了,在设定搅拌头的载荷的时候要选取参考点。。。

谢特!搅拌头压多了。。。应该压2.5我压了3

【job4:practiceCEL3mm20230212-1】


调整下压量为2.6,再来

好,不错,下面调整时长和帧率

【job5:practiceCEL3mm20230212-1 model2】


调整为3+3,+14,50帧

很顺利,结果也很正常,戴尔电脑仿真时间7.5小时

在这里插入图片描述

【job6:practiceCEL3mm20230212-2 model2】


用惠普电脑再重复一遍看看能提速多少

(15个核)计算时间6小时

【job7:】


用2个核试试

(2个核)计算时间12个小时

这多核的优势不显著啊。。。

【job8:】


复制model2为model3,将板材材料改为7055铝合金,其他不变。

在这里插入图片描述
稍微有一点变化。。。

【job9:practiceCEL3mm20230219 model3】


Abaqus应用技巧

❤ 2023.4.8 ❤

△ 网格局部细化/过渡网格技巧

我在仿真5mm板材的模型时遇到的问题,为了完整模拟整个板材的焊接过程,我用了比较大的模型尺寸,但是用之前视频里的局部网格细化方法来细化焊接区域网格时,会将焊接区域以外的网格也做了细化处理,大大增加了运算量!

甚至为了仿真一段38s的焊接过程用了三天三夜,仿真结果300个g!
在这里插入图片描述
后来看到了网格细化/过度网格的技巧

→→→abaqus网格划分

视频中讲了渐变网格和过渡网格的建立方法。

我直接在我的模型中尝试了

○ 操作步骤

· 在 “部件” 模块选择“拆分面”按钮
在这里插入图片描述

· 选择一面进入草图编辑

在这里插入图片描述

· 有警告

在这里插入图片描述

· 继续

· 我算了一下,我的焊接区域为3013150mm,如果铺设0.5mm宽的六面体网格共有46.8w个单元我去。。。

不过貌似欧拉域的空间区域不参与运算,那么也就是305150,于是就是18w个单元,还好吧。。。

· 绘制草图

在这里插入图片描述

· 然后删除尺寸标记

· 先镜像

在这里插入图片描述

· 再线性阵列

在这里插入图片描述

· 完成,现在长这样

在这里插入图片描述

· 我感觉还是太细了,再整一层,过程略

在这里插入图片描述

· 最后处理成了这样

在这里插入图片描述

· 然后把模型切分一下

· 生成网格

○ 修正优化

奇怪 怎么变颜色了

在这里插入图片描述
奥我知道了,不同坐标的网格不能同时细化,要像视频中这样

在这里插入图片描述
于是我弄成了这样

在这里插入图片描述

· 划分网格
全局种子设为4mm,焊接区域种子为0.5mm

最终效果是这样
在这里插入图片描述

中间那个部分还是有点逼死强迫症。。。

我再改一改

最后改成了这样。。。

在这里插入图片描述

划分网格之后。。。

在这里插入图片描述
强迫症表示好难受。。。。。

· 检查一下网格

在这里插入图片描述

0 error,0 warning b( ̄▽ ̄)d

49.56w个网格也不少呢好家伙

计算一下看看要多久

○ 修正优化2

〇 遇到问题与原因分析

哎呀出问题了

在这里插入图片描述

这是崩坏呀!

查看一下变化过程

压入阶段还挺正常的

在这里插入图片描述

哦 不对!这哪里正常了!怎么只剩中间一道焊缝区域了!?

我先继续看。。。

随着焊接的进行,材料被扯动变形

在这里插入图片描述

最后变成了这样

在这里插入图片描述

好吧,我猜是这样,切分材料后欧拉域没有被正常定义,对欧拉域的约束也失效了。

下面开始修改

首先我发现之所以运行提交时没有报错,是因为我在切分模型时并没有使定义和约束失效,而是改变了定义和约束中集的定义。

于是我重新定义了各种集,首先就是欧拉域中填充部分的集,然后就是底面与非底面的集,然后就是XYZ约束中对应的集。

这里面需要注意的是,因为我使用了大量的切分面,所以选择表面时会比较痛苦,但是对于XYZ的约束并没有只要求是表面约束,所以在用框选的方式选择表面时注意框选之后再将体的部分排除出去。

提交运行。。。

○ 修正优化3

又发现了新的问题。

在这里插入图片描述

在粗网格与细网格交接的地方出现了变形。

在这里插入图片描述
我想了一下,感觉是之前网格出现强迫症患者不适的地方。。。

完整的欧拉域的模型里确实这里产生了应力的突变
在这里插入图片描述

〇 修改

· 这次禁用了最外层竖直方向的网格过度

在这里插入图片描述

· 然后重新定义被影响到的集

· 划分网格

在这里插入图片描述
· 尝试渐变网格

这里选择“单向”,不得不说,这里又是翻译的锅,明明应该翻译成单向,结果整成了单精度。。。
在这里插入图片描述

网格过度从1mm到8mm,让网格大小不会有突变

效果:
在这里插入图片描述

统计一下网格数量
在这里插入图片描述
52.26w个。。。又多了不少。。。

提交运行

猜你喜欢

转载自blog.csdn.net/ooorczgc/article/details/128420157
今日推荐