ABAQUS经验总结.docx

上传人:b****8 文档编号:9553394 上传时间:2023-02-05 格式:DOCX 页数:23 大小:27.80KB
下载 相关 举报
ABAQUS经验总结.docx_第1页
第1页 / 共23页
ABAQUS经验总结.docx_第2页
第2页 / 共23页
ABAQUS经验总结.docx_第3页
第3页 / 共23页
ABAQUS经验总结.docx_第4页
第4页 / 共23页
ABAQUS经验总结.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

ABAQUS经验总结.docx

《ABAQUS经验总结.docx》由会员分享,可在线阅读,更多相关《ABAQUS经验总结.docx(23页珍藏版)》请在冰豆网上搜索。

ABAQUS经验总结.docx

ABAQUS经验总结

例如要取缸套的主推力侧上一列节点的径向位移(缸套轴线平行于Z轴),然后按照Z坐标画出径向位移曲线。

总的方法是先选上要分析的节点,然后按空间位置顺序记录节点编号,根据编号生成一个Path,再以这个path为横坐标,以要分析的量(如径向位移)为纵坐标画X-Y图。

1.   选出要分析区域节点:

这列节点共有几十个,一个一个选太慢,打开要分析的odb文件,选择DisplayGroup中的【ReplaceSelected】按钮,在目标类型中选择【Nodes】,然后结合视图方向、框选方法(矩形、圆形、多边形框)和选择方式(individually或者byangle)选出需要的节点集合,例子中的一列节点只有Z坐标不同,因此把视图方向调整到Z轴垂直于屏幕,这时一列点在屏幕上变成了一个点,在这一个点的位置上框选就可以得到一列点了。

在individually选择方式下,【shift+框选】是将选到的加入到已有选择中,【Ctrl+框选】是将选到的从已有选择中去除。

例如要在一个曲面上选一列节点,可以先用【byangle】方式将整个曲面选上,然后调整到合适的视图方向上切换到【individually】方式,用【Ctrl+框选】去掉多余的节点。

2.   按顺序记录节点编号:

Path对顺序很敏感,节点号顺序的调整会改变最后plot的数据点顺序。

要按照Z坐标大小顺序画出径向位移曲线,就必须按顺序记录节点编号。

上一步选好节点按中键确定后,屏幕上是空白,因为ABAQUS不会显示单独的节点,打开显示节点编号开关(在【CommonPlotOptions->Labels】中),这样屏幕上会显示出要选的那些节点的编号,按顺序记录下来。

号码之间用逗号分隔,冒号表示连续和间隔,例如:

1.2(1号和2号节点),1:

10(表示1,2,…,10),1:

9:

2(表示1,3,5,…,9)。

3.   生成目标表格和曲线,两种方法:

a)用上面排好的节点序列生成一个Path,然后基于这个path生成一个X-Y图(CreateX-Ydata->Path),在【X-YDataManager】中双击生成的图线可以得到相应的二维表格;b)菜单【Report->FieldOutput】,这种方法将二维表格数据写入一个文件,本身不能出图,但是可以对计算结果求和,因此可以用来求接触力、压力的合力(但要注意这里的求和是数值相加,不是矢量求和,因此只适用于各个力方向基本一致的情况下的合力估计)。

有时候历史变量输出的太多会出现

“Thenumberofhistoryoutputrequests(22466)inthisanalysisstephasexceededthemaximumvalueof10000specifiedbytheAbaqusenvironmentvariable'max_history_requests.'”错误,解决办法是:

在abaqus_v6.env中加一句“max_history_requests=0”即可。

abaqus_v6.env文件在C:

\ABAQUS\6.7-1\site\下。

比如两个接触面之间有0.1mm的缝隙,在压力作用下发生接触,只要将ContactControls下的稳定因子设为1即可正常计算(Interaction模块,主菜单Interaction->ContactControls->Create->Stabilization->AutomaticStabilization->factor设为1);

对于缝隙不均匀的情况,比如一端宽0.1mm,一端宽0.2mm,减小网格尺寸和稳定因子对计算结果几乎没有影响;

[04/08]关于ABAQUS历史输出变量

   [折叠]

在帮助文档AnalysisUser’sManual中4.2.2节Nodalvariables部分定义了节点输出(用*NodeOutput关键字表示)可以包括的变量,从中可以看到应力(S)是不能作为节点计算结果输出的,只能作为单元积分点计算结果输出。

原因是节点应力是根据单元积分点应力计算结果外插得到的,因此节点应力只能在场变量(而且是节点所在单元有输出)的情况下才能输出。

如果在abaqus/cae中强行定义节点应力输出,INP文件中不会有相应的关键字,如果在INP文件中强行定义,求解时处理INP文件阶段会出错退出。

由于应力历史变量只能在单元积分点上输出,而在abaqus/cae中不能生成基于element型的set,除非直接使用网格模型做Part,但这样的模型往往不好操作,变通的方法是写由abaqus/cae生成INP文件,再手工修改这个INP文件,在其中添加一个element型的set,然后让其输出应力历史变量。

具体步骤:

1.       记住要输出的单元编号,例如为27,在INP文件的*Assembly部分定义一个element型的set:

*Elset,elset=Set-Name,instance=Part-Name

27,

2.       在*EndStep前加上:

*Output,history,frequency=10

*ElementOutput,elset=Set-Elem-forMeshPart

MISES,

[03/29]ABAQUS子程序VDLOAD学习笔记

   [折叠]

使用的INP文件(beam.inp):

*Heading

loadwasaddedincae

**Jobname:

Job-CAEModelname:

Explicit-NoMove

*Preprint,echo=NO,model=NO,history=NO,contact=NO

**

**PARTS

**

*Part,name=beam

*Node

1,0.,0.

2,50.,0.

3,100.,0.

4,150.,0.

5,200.,0.

6,250.,0.

7,300.,0.

8,350.,0.

9,400.,0.

10,450.,0.

11,500.,0.

*Element,type=B21

1,1,2

2,2,3

3,3,4

4,4,5

5,5,6

6,6,7

7,7,8

8,8,9

9,9,10

10,10,11

*Elset,elset=_PickedSet2,internal,generate

1,10,1

*Elset,elset=_PickedSet3,internal,generate

1,10,1

**Section:

Section-1Profile:

Profile-1

*BeamSection,elset=_PickedSet2,material=Material-1,poisson=0.3,temperature=GRADIENTS,section=RECT

10.,5.

0.,0.,-1.

*EndPart

**

**

**ASSEMBLY

**

*Assembly,name=Assembly

**

*Instance,name=beam-1,part=beam

*EndInstance

**

*Elset,elset=forLoad,instance=beam-1

6,7

*Nset,nset=_PickedSet12,internal,instance=beam-1

1,

*Nset,nset=_PickedSet13,internal,instance=beam-1

11,

*Surface,type=ELEMENT,name=forLoadSPos,internal

forLoad,SPOS

*EndAssembly

**

**MATERIALS

**

*Material,name=Material-1

*Damping,alpha=5.

*Density

7.8e-09,

*Elastic

210000.,0.3

**

**BOUNDARYCONDITIONS

**

**Name:

BC-1Type:

Displacement/Rotation

*Boundary

_PickedSet12,1,1

_PickedSet12,2,2

**Name:

BC-2Type:

Displacement/Rotation

*Boundary

_PickedSet13,2,2

**----------------------------------------------------------------

**

**STEP:

Step-1

**

*Step,name=Step-1

*Dynamic,Explicit

0.5

*BulkViscosity

0.06,1.2

**

**LOADS

**

**Name:

Load-1Type:

Concentratedforce

*Dsload

forLoadSPos,PNU,1.

**

**OUTPUTREQUESTS

**

*Restart,write,numberinterval=1,timemarks=NO

**

**FIELDOUTPUT:

F-Output-1

**

*Output,field,timeinterval=0.005

*NodeOutput

U,

*ElementOutput,directions=YES

S,

**

**HISTORYOUTPUT:

H-Output-1

**

*Output,history,variable=PRESELECT

*EndStep

使用的for文件(Gas.for):

subroutinevdload(

1nblock,ndim,stepTime,totalTime,

1amplitude,curCoords,velocity,dirCos,jltyp,sname,value)

C

include'vaba_param.inc'

C

dimensioncurCoords(nblock,ndim),velocity(nblock,ndim),

1dirCos(nblock,ndim,ndim),value(nblock)

character*80sname

C

open(unit=17,file='e:

\aa.txt',status='old',position='append')

write(17,*)'stepTime=',stepTime

write(17,*)'ndim=',ndim

write(17,*)'curCoords=',curCoords

write(17,*)'jltyp=',jltyp

value=1

write(17,*)'sname=',sname

write(17,*)'value=',value

write(17,*)''

close(17)

return

end

命令行:

abaqusjob=beamuser=gasinteractive

分析:

ABAQUS/Explicit每个增量步(Increment)都会调用用户子程序,这里就是gas.for,因此上面打开/关闭文件的动作会进行很多次,为避免后面打开文件将原有的内容删掉,就必须显式地指明打开的是一个已存在的文件(status='old'),写文件的位置在原文件末尾(position='append')。

nblock表示载荷作用区域内对象的个数,当载荷类型为Pressure,作用在一些单元的面上时,nblock就是单元的数量。

stepTime表示当前时间,就是每个增量步发生时候的时间,时间起点为当前载荷步,如果要总时间,用totalTime。

当模型为二维时,ndim值为2,三维时ndim值为3。

curCoords(nblock,ndim)是一个二维数组。

curCoords(ki,kj)表示当前增量步时间下,序号为ki的点的位置坐标的序号为kj的坐标分量。

在二维梁模型中,“点”表示有载荷作用的单元的中点,ki取值范围为1~nblock,kj取值范围为1~ndim。

jltyp表示载荷的类型,与INP文件中的定义相一致,具体参见ABAQUS文档。

sname表示当载荷类型为surface-basedload(jltyp=0)时,载荷作用面的名称,与INP文件中的定义相一致,具体参见ABAQUS文档。

[03/24]ABAQUS用户子程序安装过程

   [折叠]

软件版本

Microsoft.Visual.Studio.2005.Professional.Edition.DVD

Intel.Visual.Fortran.Compiler.Pro.v9.1.032

ABAQUS6.7

安装顺序

原则是保证VC2005在IntelFortran之前装,因为这样装IntelFortran与VC2005集成的组件才有效,可以按VC2005-IntelFortran-ABAQUS或者ABAQUS-VC2005-IntelFortran顺序装,VC2005只装VC++即可。

安装过程

分为三个步骤:

先装软件,再修改环境变量,最后是验证安装是否成功。

1)  机器上已经安装了abaqus6.7。

安装VC2005时选择custom方式,只装VC++,其他的诸如SQLServer之类的都不需要装,也不需要更改VC2005默认的安装路径;安装IntelFortran时选择所有项目;

2)  更改环境变量PATH、INCLUDE和LIB,方法是在各自原有的内容后增加:

PATH:

C:

\ProgramFiles\MicrosoftVisualStudio8\Common7\IDE;

C:

\ProgramFiles\MicrosoftVisualStudio8\VC\bin;

C:

\ProgramFiles\MicrosoftVisualStudio8\Common7\Tools;

C:

\ProgramFiles\MicrosoftVisualStudio8\SDK\v2.0\bin;

C:

\ProgramFiles\MicrosoftVisualStudio8\VC\VCPackages;

C:

\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\bin

LIB:

C:

\ProgramFiles\MicrosoftVisualStudio8\VC\lib;C:

\ProgramFiles\MicrosoftVisualStudio8\SDK\v2.0\Lib;C:

\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Lib

INCULDE:

C:

\ProgramFiles\MicrosoftVisualStudio8\VC\include;C:

\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include;

注:

LINK_F90这个变量不需要增加;上面的都假设VC2005装在了C盘默认目录下。

3)  验证:

a) 用记事本生成下面两个文件:

bbb.for文件

SUBROUTINEDLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,

1JLTYP,SNAME)

C

INCLUDE'ABA_PARAM.INC'

C

DIMENSIONTIME

(2),COORDS(3)

CHARACTER*80SNAME

WRITE(6,*)'INCREMENTNUMBER',KINC

WRITE(6,*)'STEPTIME',TIME

(1)

WRITE(6,*)'ELEMENTNUMBER',NOEL

WRITE(6,*)'INTEGRATIONPOINTNUMBER',NPT

WRITE(6,*)'COORDS:

X',COORDS

(1)

F=1.0*COORDS

(1)

WRITE(6,*)'FORCE',F

WRITE(6,*)''

RETURN

END

beam.inp文件

*Heading

**Jobname:

Job-1Modelname:

beam

*Preprint,echo=NO,model=NO,history=NO,contact=NO

**

**PARTS

**

*Part,name=PART-1

*EndPart

**

**ASSEMBLY

**

*Assembly,name=Assembly

**

*Instance,name=PART-1-1,part=PART-1

*Node

1,0.,0.

2,20.,0.

3,40.,0.

4,60.,0.

5,80.,0.

6,100.,0.

*Element,type=B31

1,1,2

2,2,3

3,3,4

4,4,5

5,5,6

*Elset,elset=BEAM,generate

1,5,1

**Region:

(Section-1-BEAM:

BEAM),(BeamOrientation:

BEAM)

**Section:

Section-1-BEAMProfile:

Profile-1

*BeamSection,elset=BEAM,material=STEEL,temperature=GRADIENTS,section=RECT

0.2,5.

0.,0.,-1.

*EndInstance

*Nset,nset=ENDS,instance=PART-1-1

1,6

*Nset,nset=_M4,internal,instance=PART-1-1

6,

*Nset,nset=_M5,internal,instance=PART-1-1

1,

*EndAssembly

**

**MATERIALS

**

*Material,name=STEEL

*Elastic

210000.,0.3

*ELSET,ELSET=PY

BEAM

**

**BOUNDARYCONDITIONS

**

**Name:

Disp-BC-1Type:

Symmetry/Antisymmetry/Encastre

*Boundary

_M4,ENCASTRE

**----------------------------------------------------------------

**

**STEP:

Step-1

**

*Step,name=Step-1

*Static

**

**LOADS

**

**Name:

CFORCE-1Type:

Concentratedforce

*DLOAD

PY,PYNU

**

**OUTPUTREQUESTS

**

**

**FIELDOUTPUT:

F-Output-1

**

*Output,field,variable=PRESELECT

**

**FIELDOUTPUT:

F-Output-2

**

*Output,field

*ElementOutput

SF,

**

**HISTORYOUTPUT:

H-Output-1

**

*Output,history

*NodeOutput,nset=ENDS

CF1,CF2,CF3,CM1,CM2,CM3,RF1,RF2

RF3,RM1,RM2,RM3,U1,U2,U3,UR1

UR2,UR3

*ElPrint,freq=999999

*NodePrint,freq=999999

*EndStep

b) 在AbaqusCommand提示符后输入:

abaqusjob=beamuser=bbbinteractive

运行完毕并没有提示出错后,当前目录下应该出现文件名为beam,扩展名不同的几个文件,打开beam.dat文件,可以找到bbb.for文件中WRITE语句指定的输出内容,详见笔记“ABAQUS用户子程序学习小结”

[01/19]用ABAQUS进行多体分析的步骤

   [折叠]

第一阶段:

总体分析

1.        画草图:

上面需要表明的信息包括(参考[石亦平2006]图8-19):

a)       各个部件(Part)的名称;

b)       各个部件上每一个参考点的名称和位置坐标,一般就是与其他部件连接的点,部件包括柔体、刚体和显示刚性体(本身为柔体,通过定义一个参考点,并施加显示体约束生成);

c)        各个连接单元的名称;

d)       每个连接单元要用到的两个参考点的名称;

e)       每个连接单元要用到的局部坐标系的名称、位置坐标和方向(便于后面输入坐标直接建立局部坐标系);

2.        自由度分析:

保证系统中不会出现过约束或者欠约束,步骤参考[石亦平2006]p261“连接单元类型和边界条件”;

3.        建立每个部件:

位置由第1.b)步给出;

4.        定义材料属性:

显示刚性体改为柔体,可以不定义材料属性;

5.        装配:

一般情况下各个part的位置都是装配后的位置,如果需要移动,可以用【Instance-Translate】来移动;

6.        划网格;

第二阶段:

刚体分析

目的:

检验系统中是否存在过约束和欠约束;

原则:

刚体加显示约束,未来柔体(在第三阶段要转化为柔体的Part)加刚体约束。

7.        定义各个参考点:

按照第1.b)步生成各个参考点,如果模型比较复杂,最好为每个参考点建立一个Set,这样后面建立约束和连接单元都会很方便;

8.        建立约束:

a)       建立柔体与参考点(如A)之间的显示体约束,以生成各个显示刚性体;

b)       如果体上除A外还有其他参考点(如B),各点之间要建立刚体约束,B的RegionType选“Tie(nodes)”;

9.        定义连接单元的基准坐标系:

坐标原点无所谓,关键是坐标轴方向;

10.    定义连接单元:

ABAQUS中建立运动副的方法是:

有PartA和PartB,质心参考

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1