abaqus 实例

abaqus 实例
abaqus 实例

焊接ABAQUS建模实例

一、网格的建立或导入

在定义材料属性时,往往要根据单元的集合来定义,这些集合首先需要在part中定义。当采用hypermesh来划分网格时,在hypermesh中定义的SET只存在于assembly中,而在part中没有,因此需要重新在part中定义这些集合,通常情况下可以通过修改inp文件来实现,具体操作步骤如下:

1.导入hypermesh所生成的inp文件,具体操作为:

File——import——models,出现Import models 对话框,File filter选择*.inp,然后选择所要导入的inp文件。

2. 建立新的job,重新生成inp文件,具体操作如下:

在analysis模型树中,右击job——create,输入新的job名称,例如weld,点击continue,然后点击ok。

单击模型树job前的+,会出现刚才生成的weld,右键job,选择write input,就会在文件夹中生成新的inp文件。

3. 选用记事本或者写字板打开刚才生成的weld.inp文件,选择你需定义的材料单元集合,将它们复制到*end part之前,并删除后面的instance=part-1-1,保存。

4.重新用abaqus打开刚才修改后的inp文件,就可以进行后续的建模和分析了。

二、材料的定义

材料的定义分为两个过程,首先定义材料性能参数,然后将这些材料性能参数赋予给具体的单元。

1.材料参数的定义。右击material——create,出现edit material对话框,输入材

料的名称,例如weld、base 、haz。焊接过程需要定义的材料参数主要有density、elastic、plastic、expansion、conductivity、specific heat 、latent heat。

下面以elasticity为例作一个简单的介绍,单击对话框的mechanical——elasticity——elastic,会出现如下的对话框

如果材料性能是温度的函数,把use temperature-dependent data 前的框选上。然后输入材料参数。

2.将材料属性赋予单元。首先建立材料属性,再将材料属性赋予单元。具体步

骤:

右击section——create,输入材料属性的名字,例如sections-weld,其他不变,点击continue,出现edit section对话框,在material的下拉菜单中选择weld,点击确定。

将材料属性赋予单元的具体操作为点击assign,选择sections

再选择界面右下角的sets,会出现region slection 对话框,在里面选择你所需赋予材料属性的单元集合。例如选择SETWELD,再单击continue。出现edit sections

assignment对话框,在sections下拉菜单中选择相应的材料属性,例如sections-weld,点击确定。

三、定义装配

将模型树的assembly展开,右击instances——create,单击ok就可以了

四、创建分析步

分析步的创立

分析步创建的合理性直接关系到计算的收敛性、精度以及时间。

创建步骤如下:

右击steps——create,出现create step对话框,在name栏中输入分析步号(可以按软件默认的值),分析步类型选择coupled temp-displacement,如图

点击continue,出现edit step对话框,在time period中输入分析步的时间,

然后点击incrementation,在incrementation中定义分析步步长及相关参数。

分析步的步长有自动步长和固定步长两种,通常情况下,在焊接的初始阶段由于收敛性较差,宜采用自动步长,自动步长可以通过设定自动步长的最大值和最小值来保证计算的精度。采用自动步长时主要涉及到以下几个参数的设定:

1.最大步长数(MAX number of increments),软件默认的是100,如果

收敛性比较好的话,通常不需要怎么修改,为安全起见可以设为

1000.

2.初始步长(Initial increment)初始步长一般需要设的小一点,以保证

收敛性,通常情况下,初始焊接时设为第一步步长的1%就差不多了。

3.最小增量步(min increment)最小增量步越小,收敛域越大,但是并

不能从根本上起到调节收敛性的作用,收敛性的好坏决定于材料属

性、网格的划分以及边界条件和载荷。

4.最大增量步(max increment)通过适当减小最大增量步可以保证计

算精度。软件默认的最大增量步是整个步长,可以设定增量步的最

大值刚好满足每一步走一个单元格,或者每一步走几分之一个单元

格。

5.每一小步允许的最大温度变化范围焊接时设为100-200就可以了

当然也可以采用固定步长,固定步长的最大值最好是在保证收敛的情况下,满足每一步走一个单元格。采用固定步长时,要注意最大步长数(MAX number of increments)的设定,需要大于分析步的总时间/固定步长。

当涉及到填丝过程时,由于填丝过程是依靠分析步号来控制的,每一个分析步可以打开一个单元,因此就需要创建很多的分析步。如何来实现填丝过程,将在Interaction中讨论。

当创建的分析步较多时,在cae里面添加会比较麻烦,可以先创建一个分析步,然后建立一个job,生成inp文件,可以再inp文件里不断地复制粘贴分析步来完成,复制粘贴后只需把分析步的名称修改一下就可以了。

收敛容差的调整

软件默认的计算精度一般比较高,收敛容差小。在实际计算的过程中,可以适当的增加收敛容差来增加计算的收敛性。

具体操作步骤为点击step模块中的other——general solution control——edit,选择step-1,点击continue。然后选择specify。

通常情况下修改Rαp 和Rαn就可以了,

Rαp是指在迭代次数小于一定值(I p)时的收敛容差,可以将Rαp增大到0.1左右,具体可以看我的模型

Rαn是指在迭代次数大于一定值(I p)时的收敛容差。Rαn大于Rαp。

五、网格的划分

由于网格已经通过hypermesh划分,在此步骤中,主要定义网格的类型。

具体操作是,在mesh模块中,点击element type,然后选中所有单元。继而弹出element type 对话框,在对话框的family中选中coupled temperature-displacement ,其他的不变,点击ok就可以。

六、定义输出变量(Field output request)

在计算过程中,许多结果是不必要输出的。这一步操作完全是为了节省硬盘空间。

操作步骤为右击Field output request——manager,点击edit,然后出现edit Field output request 对话框。

在定义时主要涉及两个方面的内容: 一、输出什么东西;二、什么时候输出。

首先来看第一个,输出什么东西完全根据自己需要,如果只考虑应力应变的话,只需要输出EE、PE、NT、S、U。可以点击小三角展开选项选择所需要输出的量。

至于什么时候输出,如果整个计算过程是由很多小的分析步构成,那个每个分析步只需要输出最后一个子分析步的结果就可以了。具体操作是Frequency选择last increment。(在我的模型中,第1步初始焊接过程中采用的是每一子分析步输出一次结果,往后的分析步是输出最后一个子分析步的结果,第87步以后又是采用没一子分析步输出一次结果)

七、Interaction

在这个模块中,主要涉及到散热、辐射以及填丝。

散热(surface film condition)。

在进行定义之前,首先将所有和外界接触的表面定义到一个集合里面。具体操作是tools——surface——create,然后选择所有和外界接触的表面,点击done。

在选择面时,由于是通过单元选择的,所以需要将individually改成by angle

右击interaction——manager,选择create,出现edit interaction对话框,输入interaction名称,选择分析步,从第一步开始。然后选择surface film condition ——continue,选择右下角的surface,然后选择所定义的表面。(如果焊缝表面和母材表面的散热不同,可以在上一步中定义不同的表面集合。)点击continue。在Film coefficient中输入散热系数(这个我设的和材料的导热系数差不多),在sink temperature中输入环境温度。

辐射(surface radiation)的定义方式和散热差不多。点击create,在edit interaction对话框中选择surface radiation,后面的操作和散热一样。在对话框中输入辐射率和环境温度。

填丝(model change)

填丝过程就是在焊前将单元杀死,在焊接时再将单元打开。具体操作是在第一步先预留几排个单元(相当于初始熔池,一般3、4排单元就可以了),将其他单元依次杀死。在后续的分析步中,每一步打开一排单元。因此,当采用填丝时需要建立很多的分析步用以控制单元的生死。

首先来看单元的杀死,具体操作是

右击interaction——manager,在出现edit interaction对话框后,点击create,输入interaction名称,例如,model change1.分析步选择step1,然后选择model change,点击continue。出现另一个edit interaction对话框。在此对话框中,region type选择elements,然后点击edit,点击界面右下角的sets,出现region selection 对话框,选择所需要杀死的单元集合(前面提到,在第一步焊接过程中,需要预留初始熔池的尺寸,因此,所需杀死的单元从set4或者set5开始),假如选择的是set4,点击continue,再点击ok就可以了。

此过程只完成了对集合set4的杀死,实际上需要将set4往后的单元全部杀死,手动添加太过于麻烦,同样可以通过修改inp文件来完成,具体操作和定义分析步时一样,只需复制粘贴就可以了。但需注意的是,所有单元的杀死都是在第一个分析步完成的,因此都需定义在第一个分析步中。

单元的激活

单元的激活相对来说简单点,具体操作还是在interaction——manager对话框。举例如下,假如第二步焊到了set4了,因此,在第二步需要将set4打开,而其他分析步维持原状。

在manager中,model change1是将set4杀死的,从manager中可以看到,model change1 在第一步创建(creat),在后续的分析步中均维持上一个分析步的状态(propagated),将set4激活的办法是,先点击step2下的propagated ,edit interaction对话框的右侧Deactivate按钮会处于激活状态,点击Deactivate,就可以将在第一步中杀死的单元激活了。依此类推,在第3个分析步中激活set5,第四个分析步中激活set6.。。。。。

此后续过程也可以通过修改inp文件来完成,但需注意的是,不同集合是在不同分析步中激活的。

通过点击activate可以将单元重新杀死。

八、载荷的定义

Load——create,

把所有网格都选上,点击done,distribution选择user-defined。幅值为1.

九、边界条件的定义

自由焊接时,只需不让工件随意移动就可以了。一般可以x=0面(垂直x 轴的面就可以)上选几个点限制x方向的位移,y、z方向的位移类似。具体操作如下:

BC——create,选择displacement。

然后在x=0的面上选择几个点(三个端点就可以)限定他们在整个计算过程

中的位移。将U1设为0。如果是y、z方向的位移,则将U2、U3设为0.

如果是强拘束条件下焊接,则往往需要固定几排点限定其横向和厚度方向位移。

十、预定义场

焊接时需要预置焊件的初始温度。

具体操作是:

Predefined field——create,category选择other,然后选择temperature。

选择所有的单元,点击done,在magnitude中输入初始温度。

十一、修改attribute

在model的下拉菜单里面选择edit attribute,进入你需要编辑的模型。

选中Absolute zero temperature前面的框,在后面输入绝对零度(-273.15)。

波尔兹曼常数为5.6e-08

十二、编辑关键字(edit keywords)

这一步只有在计算氢扩散的时候需要进行。

在计算氢扩散时,需要调用*.fil文件,这个文件需要在焊接过程中额外输出,不能在field output定义,需要根据field output的格式在keyword中定义。具体操作如下,在每一个分析步中加入如下两行关键字。

进入关键字界面的方式和进入attribute 相同。

编辑关键字时常遇到的问题:

1、在添加关键字后常常由于关键字添加的位置不对导致错误,在提

交Job后,会提示*conflict 不是软件默认的关键字,这个时候就

需要重新修改关键字,将所有带有* conflict 的那一行全部删除。

(一般情况下,如果一个关键字编辑出错的话,会出现4个

*conflict,将他们全部删除)

2、带有两个**的只是提示说明语句,如果关键字编辑出错,修改时

不要管它们。

十三、建立job

前面有提到job的建立方式,这么不再重复。但是要注意的是子程序的调用。在进入edit job界面后,点击general。选择你所需调用的子程序。

需要注意的是子程序的调用路径不能有中文

十四、提交job

右击Job——manager,选择你要计算的job,然后点击submit就可以了。

通过monitor可以监控整个计算过程,例如收敛情况如何,这一点在计算开始的时候很重要,如果明显感觉不收敛就不要算了。如果只提示警告(warning)没有提示(error)就不用管。

如果显示出错,可以从message file中查看是怎么出错的。

Abaqus 在计算过程中可以时刻观看计算结果,可以再计算过程查看计算结

果是否与预期相符,如果不相符就没必要计算了。

如果不想计算了,可以通过Kill来终结整个计算过程。

十五、结果的输出

这里面没什么难的,但是涉及的内容比较多,随便看几个书上的例题就知道了,这里我就不多说了。简单提几个吧:

云纹图的输出:

在file下拉菜单中,选择Print,然后出现print对话框。将destination的printer 改为file。文件格式(format)选择tiff或png。文件名自己搞定。

线的建立

在提取数据时,通常需要提取某一条线上的值,这里将告诉你一个创建这条直线的简便办法。

在result界面的tool下拉菜单中选择query,然后现在stress linearization

在对话框中,输入直线的名字,然后选中save stress line to path,点击select in viewport,在模型中选择直线的起始点和终点。Model shape 选择undeformed,直线上的节点数量可以根据自己的需要自行确定。然后点击ok就可以了。在这个过程中创立的直线就能出现在path中,接着就可以输出这条直线上的应力应变值或者氢的浓度分布。(特别注意的是,这种直线的创建方法仅限于应力应变的输出,但是在氢扩散时也得借助这种方式,具体操作是在输出氢浓度分布的结果前,先打开一个焊接过程的结果,在这个模型上建立你所需输出氢浓度分布的直线,只要cae不关闭,这条直线在后续的分析过程会一直存储在path中。因此,当你再打开氢扩散的结果文件时,这条直线还是会存在的)

其他的也就没什么难的了,我就不写了,预祝师兄早日成功。

相关主题
相关文档
最新文档