如何利用APDL实现ANSYS隐式分析单元失效功能

如何利用APDL实现ANSYS隐式分析单元失效功能

Please Share Us

点击此处查看 ✿水哥原创ANSYS视频教程清单 ✿

水哥专属答疑服务已开通,点此此处查看详情

利用单元失效技术,可以跟加合理的模拟实际结构在受外部荷载作用达到极限情况下的反应。然而,对于ANSYS经典或者Workbench常规模块的隐式分析来讲,默认是没有提供单元失效功能的,也即无论外部荷载多大,构件也不会出现断裂情况,当然用特殊单元或者特殊的计算模块除外。

这个问题的原因在于算法。默认的 ANSYS 算法是隐式算法,用于求解 KX=F 方程,这种算法更加精确,但不能计算断裂失效等效果,而相应的显式算法可以根据每一步的结果确定材料是否失效,例如LS-DYNA可通过材料定义失效准则,当然也可单独通过定义关键字*mat_add_erosion来进行。

这里首先说明下单元失效的底层逻辑,所谓单元失效,也即当单元的某个参数,通常是应力超过了一定范围后,从整个计算系统中删除的一种效应。这里所谓的删除并不是将单元删除,而是通过对单元刚度乘以一个极小的数值,从而将其对整体刚度的贡献降低到最低以达到类似删除的效果。

根据上面的逻辑,如果要在ANSYS隐式分析中实现单元失效,则可通过单元生死技术来实现。

这个过程中的还有一个难点便是要每一次分析完后要进入后处理对单元的应力进行判定,选择大于某个参数的单元,然后集中杀死。为了保证分析的连续性,也即后续一步是在上面一步的基础上继续进行分析,重启动技术也是必不可少的。

所以,在隐式分析中要实现单元失效,需要联合使用单元生死+重启动。

下面以一个简单的钢构件拉伸试验,来演示整个过程。钢构件材料为Q345,材料模型为BKIN. 钢构件的尺寸如下所示。构件一端固定,另外一端施加位移荷载拉伸。

如何利用APDL实现ANSYS隐式分析单元失效功能

第一步:在SC中进行建模,由于模型对称,只建立四分之一,导入HM进行网格划分,最后导出为CDB文件。网格如下所示。

如何利用APDL实现ANSYS隐式分析单元失效功能2

第二步:边界加载

由于模型对称,沿构件长度方向分别施加垂直于面的约束,构件端部一端为固定,一端施加位移荷载。

第三步:初次计算

在具体实现单元失效之前,应首先进行构件试算,例如 这里需要确定构件被拉伸多少时,构件才会屈服。经过试算,当拉伸0.04mm时,构件中部会出现应力达到屈服强度现象。因而后续加载的位移不宜过大,在试算的极限数值左右最好。

第四步: 单元失效复核计算,这里单元失效定义为 当单元的米塞斯应力在屈服强度附近时即认为失效,将其杀死,并重新加载计算。

具体过程如下:

1、首先确定计算的荷载步数,因为每一步计算完成后都需要进入后处理进行判定,找到应力已经大于设置数值的单元,故为了更加方便观测失效的整个过程,可适当将计算的步数增大。这里设为20步,实际上结构在第10步的时候 已经出现了单元失效。

2、前一步计算完成后,进入后处理,找到单元应力大于设定值的单元,并存为组。

3、将变量和单元的分组信息写出到文件。

4、进入重启动,载入上一步变量和单元分组的存储信息文件,因为重启动分析 变量和分组信息不能继承于前面的分析,所以需要有一个先存文件,后导入文件的流程。

5、将前面步骤找到的需要杀死的单元单独选择出来,然后用ekill命令杀死单元,值得注意的是,这里杀死的单元不仅仅是前一步的,还应包括前面多次分析找到的单元,因为重启动分析并不会保存单元生死信息,所以需要写一个循环将前面所有步的单元在统统杀一遍。

6、重新加载求解

7、观测结果。

整个过程的核心代码如下所示:

/solu
nsubst,10,1000,10
autots,on
cnvtol,m,-1
cnvtol,f,,0.05
cnvtol,u,,0.05
eresx,no         !关闭节分点外推
nlgeom,on
!重启动设置
rescontrol,define,last,last,0,dele
!计算步数
steps=20
!每一步的计算时间
timeinc=1
time,timeinc
nsel,s,loc,x,30
d,all,ux,0.004
allsel,all
solve
!下面为单元失效计算
*do,i,1,steps-1
/post1
allsel,all
set,last
etable,mystress,s,eqv
!选择单元应力大于340,小于345的单元
esel,r,etab,mystress,340,345
!将单元存为一个数组
cm,myelem%i%,elem
!获取单元数目
*get,ele_num,elem,,count
finish
allsel,all
!写出单元分组和变量
cmwrite,temp%i%,cm
parsav,all,myname,txt
!重启动,读入单元分组和变量
/solu
antype,,rest
parres,change,myname,txt
!杀死前面的所有单元
*do,j,1,i
/input,temp%j%,cm
*get,exists,comp,myelem%j%,type
*if,exists,ne,0,then
cmsel,s,myelem%j%
ekill,all
*endif
*enddo
nsubst,10,1000,10
autots,on
allsel,all
time,timeinc*(i+1)
nsel,s,loc,x,30
d,all,ux,0.004*(i+1)
allsel,all
solve
finish
*enddo

结构最终的位移状态和应力状态如下所示:

如何利用APDL实现ANSYS隐式分析单元失效功能3

从位移图可见,结构加载端基本为位移加载最大值,而约束端则将近为0,中间变化的区域主要为被杀死单元,从侧面也说明,单元并没有被删除。

如何利用APDL实现ANSYS隐式分析单元失效功能4

从应力云图可见,由于中间单元被杀死后,可认为结构从中间断裂了,自然而然应力基本为0,被杀死的单元同时也是被显示了,如图中阴影的部分。

为了更好的优化结果显示,可将被 杀死的单元 隐藏显示,最终的位移和应力云图如下所示:

如何利用APDL实现ANSYS隐式分析单元失效功能5

如何利用APDL实现ANSYS隐式分析单元失效功能6

祝好

本模型CDB文件,HM文件以及配套的命令流下载:

 

欢迎扫描如下二维码关注本站微信公众号:ANSYS结构院

有时间麻烦帮忙点击下公众号文末的广告哦, 权当码字的辛苦费,感谢大家!

Please Share Us
如何利用APDL实现ANSYS隐式分析单元失效功能-峰设教育
如何利用APDL实现ANSYS隐式分析单元失效功能
此内容为付费阅读,请付费后查看
20积分
付费阅读
已售 9
© 版权声明
THE END
喜欢就支持一下吧
点赞1赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容

YOU MAY LIKE…