ANSYS生死单元技术在焊接过程模拟中的应用

1 概述

焊接模拟计算在CAE仿真是比较大的一块内容,也是比较复杂的一个过程,几个比较关键的问题是热源函数的描述、单元的融覆、热源的移动等等,通过单纯的GUI操作,无论使ANSYS还是Abaqus都不大可能完成这个过程,通常需要借助软件的内置语言。

本次主要介绍单元生死的应用,单元生死主要用于单元缺失的场合,比如凝固溶解过程,断裂过程,焊接过程等等,这些过程都是非线性或者时间历程过程,计算需要很多子步和迭代,为了在此过程中避免一遍一遍修改单元,便引入生死单元的概念,通俗的讲就是通过一些方法让单元失效,具体的改变是单元的弹性模量的改变,当单元死时,修改其弹性模量为非常小的值,让其在求解过程中不起作用。

详细地说,激活单元死这个状态时,ANSYS程序将单元刚度矩阵乘以很小的因子,程序默认值为1E-6,死单元的单元载荷为0,从而不对载荷向量生效,同样的,死单元的质量、阻尼、比热等等参数也设置为0,单元的应力应变也因此为0。


2 前处理

前处理包括单元定义、材料定义和建模,单元定义是需要注意单元属性,此次定义13号二维耦合单元,具有温度和位移自由度。

材料属性包括结构参数和热参数,具体包含弹性模量,泊松比,屈服强度,塑性属性,材料密度,热膨胀系数,热传导系数,比热容。焊接时温度较高,定义材料通常需要定义多个温度下的值。例如定义各材料在各温度点下的屈服应力和屈服后的弹性模量:

tb,bkin,1,5  

tbtemp,20,1  

tbdata,1,1200e6,0.193e11  

tbtemp,500,2  

tbdata,1, 933e6,0.150e11  

tbtemp,1000,3  

tbdata,1, 435e6,0.070e11  

tbtemp,1500,4  

tbdata,1, 70e6,0.010e11  

tbtemp,2000,5  

tbdata,1, 7e6,0.001e11

建立的二维模型如图1所示,中间三角区域为焊接区域。

21.1.png

图1 几何模型



划分网格后如图2所示:

21.2.png

图2 Mesh



3 单元排序

焊接区域的单元排序是一个必要的过程,只有将单元按照坐标顺序排列好,激活才好控制。

由于焊接时单元是从底部一层一层铺,因此需要将三角区域的单元按照Y坐标排序。单元的坐标是其形心处的坐标,如果一层的单元Y坐标一致,则将这一层再按照X坐标排序。

排序用ANSYS的APDL实现,通过Do循环一遍一遍的遍历单元。

其主要流程如图3所示:

21.3.png

图3 遍历过程

在进行这个过程之前,需要先选出焊接区域的所有单元,之后:

*get,nse,elem,,count       !焊接区域单元数目nse

*dim,ne,,nse              !定义数组,存储单元编号

*dim,nex,,nse             !定义数组,存储坐标x

*dim,ney,,nse             !定义数组,存储坐标y  

*dim,neorder,,nse         !定义数组,存储按照坐标排序的单元标号

mine=0  

!**************************************************************

*do,i1,1,nse  

 esel,u,elem,,mine           !提出排序了的单元

 *get,nse1,elem,,count        !得到剩下的单元数目nse1

 ii=0  

 *do,i,1,emax  

   *if,esel(i),eq,1,then       !表示单元是否被选中

     ii=ii+1  

     ne(ii)=i  

   *endif        

 *enddo                    !此段循环用于得到剩下的单元的编号

 *do,i,1,nse1  

   *get,ney(i),elem,ne(i),cent,y  

   *get,nex(i),elem,ne(i),cent,x  

 *enddo                   !此段循环得到剩下单元的坐标

 miny=1e20  

 minx=1e20                !定义辅助常数,用于比较

 *do,i,1,nse1  

   *if,ney(i),lt,miny,then  

     miny=ney(i)  

     minx=nex(i)  

     mine=ne(i)  

   *else  

     *if,ney(i),eq,miny,then  

       *if,nex(i),lt,minx,then  

         miny=ney(i)  

         minx=nex(i)  

         mine=ne(i)  

       *endif  

     *endif  

   *endif  

 *enddo    !此段循环用于将剩下的单元经过坐标比较,找到Y最小(X最小的单元编号)

 neorder(i1)=mine   !得到这个编号的单元并存储

*enddo  

注意循环的时候会有图4的这个警告,这个没有关系,因为第一步剔除单元操作时实际并没有剔除成功,因为第一步循环时mine=0。

21.4.png

图4 Wanrning


4 加载求解

温度载荷,结构约束,无需多说。

焊接一个单元的时间假设为5s,起始时间为0,通过得到的单元数可以知道整个历程的时间。

求解之前先将所有焊接区域的单元杀死,通过循环遍历实现,命令是ekill,每次杀死一个单元:

*do,i,1,nse  

 ekill,neorder(i)  

 esel,s,live  

 eplot  

*enddo

杀死后单元如图5所示:

21.5.png

图5 杀死单元

求解过程的APDL为:

*do,i,1,nse  

 ealive,neorder(i)  

 esel,s,live  

 eplot

 esel,all  

 !******下面的求解用于建立温度的初始条件******

 t=t+dt1  

 time,t  

 nsubst,1  

 *do,j,1,4  

 d,nelem(neorder(i),j),temp,max_tem  

 *enddo  

 solve  

 !****下面的求解用于保证初始的升温速度为零****

 t=t+dt1  

 time,t  

 solve  

 !*********下面的步骤用于求解温度分布**********

 *do,j,1,4  

  ddele,nelem(neorder(i),j),temp  

 *enddo  

 t=t+dt-2*dt1  

 time,t  

 nsubst,nsub1  

 solve  

*enddo  

t=t+50000  

求解完之后,继续求解冷却过程,冷却过程只需给一个时间就行。



5 计算结果

最后的应力分布如图6,因为在左端施加位移约束,最后由于焊接变形,右边发生翘曲。

21.6.png

图6 Mises应力

不同时刻的应力云图:


21.7.png

21.8.png

21.9.png


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空