Chapter05ANSYS命令基础与观念.docx
《Chapter05ANSYS命令基础与观念.docx》由会员分享,可在线阅读,更多相关《Chapter05ANSYS命令基础与观念.docx(20页珍藏版)》请在冰豆网上搜索。
![Chapter05ANSYS命令基础与观念.docx](https://file1.bdocx.com/fileroot1/2023-1/1/5b91d5d1-1689-4ede-9581-fa85325afa06/5b91d5d1-1689-4ede-9581-fa85325afa061.gif)
Chapter05ANSYS命令基础与观念
第5章
ANSYS命令:
基础与观念
OverviewofANSYSCommands:
FundamentsandConcepts
接下来连续3章是对ANSYS的较基础、较重要、较常用的命令做系统化的介绍,这个介绍会深入到某一程度,尤其是观念性的讲解。
作者希望透过命令的介绍,让你可以对ANSYS的功能更进一步的认识。
ANSYS有超过1000个command,可是绝大部分你可能都用不上,因为ANSYS发展到现在已经有四十几年,很多的命令是因应过去所需而设计的,很多命令已过时而用不上。
另外当然有有一些虽未过时,但是却很偏门,很少应用。
在这3章里,共挑选了200多个命令来介绍。
为了要有系统地介绍这些命令,我们在本章第1节中对这些命令做一个系统化的组织,这种组织不见得与ANSYS说明书上的分类相同,因ANSYS必须对所有命令(包括过时的命令)分类,以至于有时做一些比较奇怪的分类,对那些步了解ANSYS发展历史的人来说,有些分类法实在令人难以理解。
在这里我们的分类可以抛开这种包袱,只挑一些符合现代观念的命令,以现代的观念来做分类及介绍。
对于每一个命令,我们着重于观念性的介绍,至于详细地使用说明,你可以参照Ref.5。
根据本章第1节的分类后,我们依此分类将其均分成3章来讨论这些命令。
本章着重在较基础、较具观念性、并且大多适用在各个模块的命令。
第6章介绍前处理的命令。
第7章介绍解题模块(solution)的命令及后处理(包括/POST1及/POST26模块)的命令。
本章第2节介绍与准备工作(setup)有关的命令,包括进入或离开某一模块。
第3节介绍ANSYS数学式的语法及内容,包括参数名称的规定、运算符号、及ANSYS函数库。
第4节介绍坐标系统及相关的命令。
第5节介绍模型组成的组件(modelentities),包括keypoints、lines、areas、volumes、nodes、elements等,及如何去选取这些组件(以供后续操作)。
第5.1节ANSYS命令分类
ClassificationofANSYSCommands
5.1.1ANSYS程序结构
... !
Setup
... !
Defineparameters
/PREP7 !
Enterpreprocessor
... !
Buildsolidmodel
... !
Defineattributetables
... !
Generatemesh
FINISH !
Backtobeginlevel
/SOLU !
Entersolver
... !
Specifyloads
... !
Specifysolutionoptions
... !
Solvethemodel
FINISH !
Backtobeginlevel
/POST1 !
Entergeneralpostprocessor
... !
Readasetofresults
... !
Plotorprintresults
FINISH !
Backtobeginlevel
/POST26 !
Entertimehistorypostprocessor
... !
Storesolutiononvariables
... !
Plotorprintvariables
Figure5-1典型的ANSYS分析程序
为了ANSYS的命令做分类,我们依照前两章所讨论的三个例子(Procedures3-1、4-1、及4-2),将一个典型的ANSYS程序从图3-12进一步地修改为Figure5-1。
Procedures3-1、4-1、及4-2应该有助于你了解Figure5-1的ANSYS程序。
一般进行ANSYS分析,我们通常会在最开始做一些准备工作,这些工作包括了跳出任何模块(FINISH)确保现在是处于beginlevel、清除数据库(/CLEAR)、定义一些参数等等。
接着进入前处理模块(/PREP7)。
在前处理模块中先去建一个实体模型(几何模型),然后利用这个实体模型去做元素切割的动作。
但在元素切割动作前,要先去定义元素属性表然后再去指定将要切割的元素的属性是什么,接着才是切割的工作。
前处理完成后必须跳出此模块(FINISH),准备进入解题模块,而我们目前所得到的是一个不含负载的分析模型。
接着进入解题的模块(/SOLU),在此模块要做的两件工作是:
先去指定负载,再执行解题的命令(通常是SOLVE)。
但是对较复杂的问题而言(动态分析、非线性分析等),在执行解题之前需先设定一些与解题有关的参数(solutionoptions)。
结束解题的计算工作后,结果是储存在jobname.RST(resultsofstructuralanalysis)档案内,你必须对jobname.RST档案的内容有一些了解。
跳出解题模块后,通常会先进入一般后处理模块(/POST1,generalpostprocessing)去做一般性的后处理的工作;必要的话可以跳出/POST1,再进入历时后处理模块(/POST26,time-historypostprocessing);当然必要时仍可跳出此/POST26再重新进入/POST1、/POST26等。
Figure5-1只是典型的ANSYS程序(而非唯一的程序形式);有些程序,譬如说设计优化,我们暂时不把它列在所谓「典型」的程序中。
5.1.2ANSYS命令分类
根据Figure5-1的程序,我们可以将ANSYS命令依此来分类,如Figure5-2所示。
注意,Figure5-2是命令的分类,并不是程序,譬如在Preprocessing这一大类之前的命令,在执行时并不一定是在Preprocessing之前;我们只是将命令尽量平行于一个典型的ANSYS程序来分类。
我们先把所有命令分成五大类:
Preprocessing、Solution、GeneralPostprocessing、Time-HistoryPostprocessing、及「一般」。
「一般」这一大类我们将它们放在Figure5-2的最前面,包括SetUp、Enter/LeaveaModule、ParametersandExpressions、CoordinateSystems、EntitiesSelections、及Components;这些大部分通用于各模块;除此之外,它们也是需要更多观念上解说的命令。
●SetUp
●Enter/LeaveaModule
●ParametersandExpressions
●CoordinateSystems
●EntitiesSelections
●Components
●Preprocessing
⏹SolidModeling
◆Keypoints
◆Lines
◆Areas
◆Volumes
◆Primitives
◆Booleans
⏹ElementAttributes
◆ET Table
◆MP Table
◆R Table
◆CSTable
◆AttributesAssignment
⏹MeshGeneration
◆Nodes
◆Elements
◆MeshSize/Shape
◆Auto-Meshing
●Solution
⏹Loads
◆LoadsonAnalysisModel
◆LoadsonSolidModel
◆InitialConditions
⏹SolutionOptions
⏹Solve
●GeneralPostprocessing
⏹BasicCommands
⏹ElementTables
⏹PathOperations
⏹GraphicsControls
●Time-HistoryPostprocessing
Figure5-2ClassificationofANSYSCommands
SetUp命令包括FINISH、/CLEAR等。
严格来说,ParametersandExpressions这个类别并不包含任何命令,而是提供了参数(parameters)及数学式(expressions)的语法。
ANSYS语言和FORTRAN很相似,你可以将一个数学运算结果指定给一个变量(在ANSYS中称为参数),譬如A=B+C。
等号左边是一个参数,而等号右边称为一个数学式(expression)。
Enter/LeaveaModule是指如/PREP7、/SOLU、/POST1、/POST26、及FINISH的命令。
CoordinateSystems这个类别包括建立CStable及指定使用坐标系统的命令;在3.3.7小节我们提过元素属性之一是其坐标系统,但是坐标系统不只使用在此而已,从模型的建立到应力的输出都需要参照适当的坐标系统,这其中有许多观念有待说明。
EntitiesSelection这一类别是指如NSEL的命令。
一个实体模型是由keypoints、lines、areas、及volumes四种组件(entities)所组成,而一个分析模型则是由nodes及elements二种组件所组成。
当我们要操作某些组件(指定负载等)时,我们需要先将这些组件选择出来。
相同的一些组件可以把它组成一个组件(component);Component这个类别即在介绍相关命令。
Figure5-2中其他命令类别,相较之下比较容易理解。
我们将Preprocessing命令分为三种:
SolidModeling、ElementAttributes、及MeshGeneration。
SolidModeling分类为Keypoints、Lines、Areas、Volumes、Primitives、及Booleans;前四者是提供作为bottom-up的方式来建立实体模型,后两者则是提供作为top-down的方式来建立实体模型。
ElementAttributes分类为ETTable、MPTable、RTable、CSTable、及AttributesAssignment。
其中CSTable事实上已包含在前述CoordinateSystem类别中。
MeshGeneration则分类为Nodes、Elements、MeshSize/Shape、及Auto-Meshing。
要产生一个网格(mesh)基本上有两个方式,一个没有先建立实体模型而直接去定义nodes的坐标及elements的node编号,这种方式称为directgeneration;通常简单的、规则性的问题可以这种方式反而会比较方便。
不过大部分的情形时,我们是采用第二个方式:
首先去建立一个实体模型,再用自动切割的命令(automeshing),让ANSYS去帮你做切割。
不过在切割之前,我们要先给ANSYS一些「暗示」或「要求」:
elementsize的大小、element的形状等。
ANSYS会尽量满足你的要求。
Solution这个命令类别分为Loads、SolutionOptions、及Solve三类。
Loads这一类别又分为:
LoadsonAnalysisModel、LoadsonSolidModel、及InitialConditions。
负载可以指定在分析模型上(即nodes或elements上)也可以指定在实体模型上面(即keypoints、lines、areas、或volumes)。
除此之外,动态问题的问题,还需要指定初始条件(initialconditions,即t=0时的配置)。
GeneralPostprocessing命令分为BasicCommands、ElementTables、PathOperations、及GraphicsControls。
BasicCommand包括诸如PLDISP、PLNSOL、PLESOL等命令(后两者的差别我们会加以说明),一般这些就够用了,不过对于较复杂的问题而言,可能需要将每个元素的输出数据存放在一个「元素表」(elementtable)中,然后在来操作这个元素表。
Pathing意指沿着模型指定一条「路径」,然后沿着这条路径,以x-yplot的形式画出某一反应值出来(横轴是延着路径的长度,纵轴是某一反应值)。
GraphicControls的命令是为了要让图画的更好看,更清楚。
第5.2节准备工作
SetUpCommands
5.2.1ANSYS数据库与档案结构
Figure5-3ANSYSDataManagementScheme
当你要使用诸如SET(/POST1命令,将在相关章节讨论)、SAVE、或RESUME(后两个命令将在下一小节讨论)这些命令时,你必须先了解ANSYS数据库(database)与相关档案的结构。
我们把ANSYS数据管理方法示意在Figure5-3中。
图中有三个区块,左边代表数据库(ANSYS数据库是指主记亿体中结构化的数据),右边是两个磁盘档案,文件名分别是jobname.DB及jobname.RST档案(记着,RST代表resultsofstructuralanalysis)。
箭头符号代表它们之间的存取关系。
我们先来看一下主记亿体里面的数据库,DATABASE内分成三个区域,分别储存modeldata、loads、及计算后的results。
Modeldata包括描述solidmodel及analysismodel的所有数据,但不包括loads。
需要将modeldata及loads分开储存是因为一个model可以定义一组以上的loads。
解题完了以后,数值解会同时写在DATABASE中及jobname.RST中,但是方式有点不一样:
写在DATABASE中是覆盖原有的数值解,而写在jobname.RST中是附加在档案的最后面。
也就是说DATABASE中同一时间只有一组数据组(最新计算的结果),而jobname.RST储存了所有数据组。
记得DATABASE是在主存储器中,当你离开ANSYS时,主存储器的数据也一起被清除。
所以如果你要离开ANSYS又要保留DATABASE时,可以利用SAVE命令将整个DATABASE储存在jobname.DB档案中。
下一次再启动ANSYS后可以使用RESUME将jobname.DB读入DATABASE,恢复原来位离开ANSYS前的状态。
在你的工作目录(workingdirectory,请参阅3.1.2小节)上有许多档案,除了jobname.DB、jobname.RST档案外,还有两个档案你也要知道他的存在的:
一个是jobname.ERR,另一个是jobname.LOG;这两个档案都是纯文本档,前者是储存错误或警告信息,后者是纪录所有执行过的命令,你可以将jobname.LOG内的命令重新执行。
5.2.2SetUp命令
01
02
03
04
05
06
07
FINISH
/CLEAR
/TITLE,Title
/FILNAME,Fname
/SHOW,Fname,Ext
RESUME,Fname,Ext,Dir
SAVE,Fname,Ext,Dir
进入前处理之前的准备工作除了设定一些参数的初始值外之外,你可能会用到以上的命令。
FINISH命令是跳出任何模块,使用在ANSYS程序的最开始是为了确保目前是在在beginlevel[Sec.3.3.4]。
/CLEAR命令是用来清除DATABASE,此命令限定必须在beginlevel下使用。
/TITLE命令用来指定一个标题,这个标题会出现在graphicswindow[Sec.3.1.3]的下方。
这个标题通常是整个项目的标题,但是你还是可以随时改变,让你较容易去区别目前的图形输出。
/FILNAME命令是用来改变目前的jobname的,记得一进入GUI时就有一个初始的jobname[Sec.3.1.2]。
注意,ANSYS执行中会在工作档案中会产生许多档案,这些档案都是以当时的jobname为档名,当你用/FILNAME更改jobname后,这些已经存在的档名并不会跟着改名。
/SHOW命令在指定图形输出的目的地,内定是graphicswindow,但是你可以指定图形输出至磁盘文件。
当你指定一个档名时,ANSYS会以自己特定的图形格式一张一张地连续存在此档案中,以后你必须以Display(ANSYS公用程序,请参考Sec.3.1.1)来观看。
这通常不是很方便的,我们通常希望以通用的、标准的图形文件格式(如JPEG、TIFF、PostScript等)来储存。
你可以在/SHOW命令的第一个参数输入格式名称(譬如/SHOW,JPEG),然后ANSYS以后的图形输出就会以每一张一个档案的方式储存在你的工作目录里面,档案的名字会是如jobname001.JPG、jobname002.JPG等。
SAVE命令是将DATABASE整个储存到一个档案,你通常不会在准备工作的阶段输入这个命令,更有可能的是在程序的最后部分要离开ANSYS之前,但是我们将SAVE命令放在这里讨论只不过要和RESUME命令一起介绍罢了。
RESUME是把储存在磁盘档案里的数据(和DATABASE一样的数据结构)读入DATABASE内(请参考Figure5-3)。
RESUME常常作为准备工作命令之一:
把以前的数据读到DATABASE里面,可以继续以前的工作。
5.2.3进入与离开模块
01
02
03
04
05
06
07
/PREP7
/SOLU
/POST1
/POST26
/OPT
FINISH
/EXIT
如果你了解图3-13的意义,那么以上这几个命令是很容易了解的:
/PREP7、/SOLU、/POST1、/POST26、/OPT分别是进入前处理模块、解题模块、一般后处理模块、历时后处理模块、及设计优化模块。
FINISH是跳出某一模块,回到beginlevel。
最后/EXIT命令是完全离开ANSYS。
第5.3节ANSYS数学式
ANSYSExpressions
5.3.1ANSYS数学式
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
X=A+B
P=(R2+R1)/2
D=-B+(E**2)-(4*A*C)
XYZ=(A
INC=A1+(31.4/9)
M=((X2-X1)**2-(Y2-Y1)**2)/2
PI=ACOS(-1)
Z3=COS(2*THETA)-Z1**2
R2=SQRT(ABS(R1-3))
X=RAND(-24,R2)
*AFUN,DEG
THETA=ATAN(SQRT(3))
PHI=ATAN2(-SQRT(3),-1)
*AFUN,RAD
X249=NX(249)
SLOPE=(KY
(2)-KY
(1))/(KX
(2)-KX
(1))
以上都是符合ANSYS语法的「命令」,,它们的意义是将等号右边数学式(expressions)的计算值指定给等号左边的参数(parameters)。
参数的使用不须事先「宣告」(除非是array参数[Ref.20]),但是名称必须符合规定[Sec.5.3.2]。
在进入前处理前的准备阶段,我们常将一些重要的设计参数放在这个部分并且设定初始值,以后设计的变更只要改变这些初始值就可以了。
当然,指定参数值不一定要在进入前处理前的准备阶段,而是可以在程序的任何模块内。
ANSYS的数学式基本上和FORTRAN的语法是非常类似的。
一个数学式可以很实用地(但是不够严谨)做如下的定义:
一个数学式是常数、参数、函数、运算符号、及括号的有意义的组合(Anexpressionisameaningfulcombinationofconstants,parameters,functions,operators,andparentheses)。
以上的定义不够严谨的地方在于对「有意义的组合」没有进一步的定义,但是我想你应该有足够的背景去了解什么是「有意义的组合」。
正式的定义请参考Ref.20,3.8ParametricExpressions。
接下来的3个小节将分别讨论参数名称的规定(Sec.5.3.2)、运算符号(Sec.5.3.3)、及函数(Sec.5.3.4)。
以上的16个例子,大部分的例子是可以直接去理解,但是有一些必须加以说明。
第4个例子含有逻辑运算符号,当两个运算符(operands)经逻辑运算后,若是true则结果取第一个运算符的值,若是false则结果取第二个运算符的值。
已结果。
第7、8个例子用到三角函数,内定的角度单位是radian,因为要和FORTRAN一致。
第11个例子是使用*AFUN命令将角度单位改为degree。
注意,第14行又改回radian。
第16个例子使用到array参数,array参数必须事先宣告,与FORTRAN语法相似,请参阅Ref.20。
5.3.2参数名称
ANSYS参数名称的规定几乎完全和FORTRAN的变量名称一样,不一样的只是长度而已。
ANSYS参数名称不分大小写(caseinsensitive),第一个字必须以英文字母为开头,第二个字以后可以是英文字母、数字、还有底线(_,underscore),有意义的长度是8个字之内,超过8个字的部分会被视为不存在。
合法的参数名称如:
ABC,PI,X_OR_Y;不合法的参数名称如:
NEW_VALUE,2CF3,M&E。
若需进一步了解,请参阅Ref.20,3.2.GuidelinesforParameterNames。
5.3.3ANSYS运算符号
Figure5-4列出ANSYS的运算符号:
加、减、乘、除、指数、小于、及大于。
前面4个是你很熟悉的:
指数符号(**)对FORTRAN的使用者来说也是很熟悉,但是若你从来没学过FORTRAN则会有点陌生。
最后两个是逻辑运算符号,当两个运算符(operands)经逻辑运算后,若是true则结果取第一个运算符的值,若是false则结果取第二个运算符的值。
若需进一步了解,请参阅Ref.20,3.8.ParametricExpressions。
Figure5-4ANSYSOperators
5.3.4ANSYS数学函数
Figure5-5FORTRAN-LikeFunctions
ANSYS内建的函数可以分成两类:
(一)和FORTRAN内建完全一样的的数学函数,所以称为FORTRAN-LikeFunctions,如Figure5-5所示;
(二)称为ANSYSGETFunctions,如Figure5-6所示,我们将在下一小节讨论。
Figure5-5中的数学函数大部分可以一目了然,少部分需进一步理解的,或是没有列在Figure5-5的