APDL学习笔记.docx
《APDL学习笔记.docx》由会员分享,可在线阅读,更多相关《APDL学习笔记.docx(15页珍藏版)》请在冰豆网上搜索。
![APDL学习笔记.docx](https://file1.bdocx.com/fileroot1/2022-12/18/92f00e7c-83aa-476b-96e3-c9be72b55a43/92f00e7c-83aa-476b-96e3-c9be72b55a431.gif)
APDL学习笔记
APDL参数化语言(脚本语言)
1.1简介
程序的输入可根据指定的函数、变量以及选用的分析类型来确定,是进行优化设计和自适应网格的最主要基础。
APDL具有下列功能:
(1)标量参数;
(2)数组参数;(3)表达式和函数;(4)分支和循环;(5)重复功能和缩写;(6)宏;(7)用户程序
优点:
在重复计算时,可以利用第一次(前一次)分析时生成的LOG文件,对这个文件作适当的修改即可得到自己的命令流文件,再添加些APDL控制命令,就得到APDL命令的文件。
在使用APDL命令流方式中,当选择实体模型时,建议先选择,再施加操作;如果网格发生变化,最好根据几何特征、材料属性来选。
操作命令按使用范围分类:
2.2参数化变量使用
参数即APDL的变量,不必定义参数类型,默认为双精度型。
参数类型有两种:
标量和数组,其中数组参数包括:
数值型、字符型、字符串型和表格类型等。
2.2.1参数名的命名规则和格式
1参数的命名
参数名的命名约定为:
(1)必须以字母开头
(2)只能包含字母、数字和下划线;(3)长度不能超过32个字符。
注意:
1)参数名不能和ANSYS已有的标签名相同。
2)名称ARG1至ARG9和AR10至AR99被保存为局部参数,一般只能在宏中使用,因此不要将它们作为“通用”的参数使用。
3)不要用下划线“_”作为参数名的开头。
2
2参数的定义
(1)在执行过程中指定参数值,可用“*SET”命令对指定的参数赋值,格式为:
*SET,name,valve
也可以用“=”调用“*SET”。
格式:
Name=ValueName参数名,Value参数值(数值型或字符型,字符型时用’’括起来且长度不能超过8个字符)
(2)从ANSYS系统中获取参数的值的两种方法:
*GET命令和在线“取值函数”
*GET命令格式:
*GET,Par,Entity,ENTNUM,Item1,IT1NUM,Item2,IT2NUM(6个部分,空的用,,代替)
其中:
Par:
贮存返回值。
Entity:
将要返回项的关键词,如NODE,ELEM,KP,LINE,VOLU等。
ENTNUM:
实体编号,若为0则代表所有实体。
Item1:
对于一个特定的实体,其项的名称。
“取值函数”
通过取值函数能够取出某项的值,并将它直接投入到当前软件的运行中。
(取值函数见《ANSYS参数化编程与命令手册》P18)
2.2.4参数表达式与函数
1.参数表达
参数表达由参数、数字和加减乘除等运算符组成。
运算符:
+、-、*(乘)、/、**(乘方)
运算顺序:
1)先算圆括号;2)指数运算;3)乘法或除法;4)符号运算;5)加法或减法;6)逻辑运算
注意:
圆括号能够嵌套4层,每对圆括号内可以完成9次运算。
在表达式得算子之间要避免出现空格,特别在’*’前不要有空格。
注释符号最好采用“!
”开头。
2参数函数
包括:
正弦余弦、开根号、取绝对值等等(见《ANSYS参数化编程与命令手册》P29)
角度单位(弧度和度的转化):
改为度:
*AFUN,DEG;改为弧度:
*AFUN,RAD
2.3参数化数组
1.数组类型
按大小可分为:
一维(行)、二维(行、列)、三维(行、列、页)、四维(行、列、页、书)、五维(行、列、页、书、书架)
按数组元素类型分为:
数值型数组(ARRAY):
默认数组类型,其行标、列标和页标必须是以1开始的连续整数,数组元素的内容可以是整数或实数。
字符型数组(CHAR):
每个元素都由不超过8个字符的字符值组成,其行标、列标和页标必须是以1开始的连续整数。
表格型数组(TABLE):
行、列、页标可以用实数定义,数组元素的内容可以是整数或实数。
字符串型数组(STRING):
特点见《ANSYS参数化编程与命令手册》P31。
表格数组的生成方法:
命令:
*DIM,Par,Type,IMAX,JMAX,KMAX,Var1,Var2,Var3,CSYSID
2.数组的定义(确定数组类型和大小)
命令:
*DIM,Par,Type,IMAX,JMAX,KMAX,Var1,Var2,Var3,CSYSID
Par:
指定的参数名
Type:
参数类型(ARR4指4维的数值型数组)
IMAX,JMAX,KMAX:
行列页标号的范围,默认值为1
Var1,Var2,Var3:
标题(对于表格型的默认值为行列页)
3数组元素的赋值
1)指定单个数组元素的值
给数组的某列赋值,可用*SET命令或者“=”进行赋值,每个“=”可以给10个数组元素赋值。
4数组参数的运算
1)向量运算(列向量)
*VOPER:
对两个数组向量进行计算(求和,叉积等)
例:
*VOPER,z
(1),x(1,1),ADD,y(1,1)矩阵x,y第一列相加,结果放在向量z中
*VFUN:
对一个数组向量进行函数运算
例:
*VFUN,a3
(1),PWR,x(1,2),2对向量的第2列的每个元素进行平方运算,结果放在a3中
2)矩阵运算
数值型数组参数之间的数学运算,相乘,转置,解方程组等
2.5.3DO循环
1.DO-LOOPS
格式:
*DO,Par,IVAL,FVAL,INC
…………………….
ENDDO
Par:
循环变量名称(不能使用字符参数)
IVAL,FVAL,INC:
循环变量的初值、终值,增量,INC默认值为1,也可以是负值或实数。
2.DO-WHILE循环
当循环次数不确定,满足某个条件循环才结束。
*DOWHILE,Parm
*ENDDO
3隐含的“:
”循环
格式:
(X:
Y:
Z)其中Z的默认值为1
例如:
n,(1:
6),(2:
12:
2)
执行6个命令:
n,1,2n,2,4n,6,12
2.5.4有条件分支(*IF)
格式:
*IF,VAL1,Oper,VAL2,Base
VAL1:
比较过程中第1个数值或者数值型参数。
Oper:
比较运算:
EQ(等于),NE(不等于)、(LT)小于、(GT)大于、LE(小于或等于)、GE(大于或等于)、(ABLT)绝对值小于、(ABGT)绝对值大于
VAL2:
比较过程中第2个数值或者数值型参数。
Base:
当比较的结果成立(即为真)时,将要发生的动作
1)如果将THEN赋给Base,那么*IF命令将成为一个IF-THEN-ELSE结构
*IF条件THEN
……………….
*ELSEIF
………….
*ELSE
…………
*ENDIF
2)如果将STOP赋给Base,那么程序可根据某特定的条件退出ANSYS。
前处理器
4.1建立实体模型
4.1.1生成关键点
1.“K”命令
功能:
按坐标生成一个关键点
格式:
K,NPT,X,Y,Z
NPT:
关键点编号,如果为0,自动指定当前可用关键点编号的最小值;如果指定一个有相同编号的关键点,将覆盖前一次的定义,注意:
只有当关键点没有依附在高级图元和划分网格之前,其坐标值才能重新指定。
2.“KL”命令
功能:
在已存在的线上按指定位置生成一个关键点。
格式:
KL,NL1,RATIO,NK1
NL1:
线的编号。
如果是一个负数,则对变量RATIO来说,线的方向将方向。
RATIO:
生成关键点的位置与线长之间的比率,其值0.0~1.0,默认为0.5。
NK1:
关键点的编号
4.1.2生成线
LSTR命令
功能:
由两点生成一条直线
格式:
LSTR,P1,P2
“L”命令
由两点生成一条线(直线或弧形)
格式:
L,P1,P2,NDIV,SPACE,XV1,YV1,ZV1,XV2,YV2,ZV2,
P1,P2:
线开始、结尾的关键点编号
NDIV:
该线上将要划分单元的等分数,通常不用。
划分线段用:
LESIZE
SPACE:
A间隔比率(通常不用)
XV1,YV1,ZV1:
与直线P1端点斜率相关的斜率矢量位置(激活坐标系下)
XV2,YV2,ZV2:
与直线P2端点斜率相关的斜率矢量位置
LARC命令
功能:
三点生成一段圆弧
格式:
LARC,P1,P2,PC,RAD
P1,P2:
圆弧线始端、末端关键点的编号
PC:
定义弧平面或线曲率中心的关键点,不能在P1,P2直线上,可以不在曲率中心。
弧形的曲率半径,如果为空,系统自动计算。
CIRCLE命令
功能:
生成圆弧线
格式:
CIRCLE,PCENT,RAD,PAXIS,PZERO,ARC,NSEG
PCENT:
圆中心的关键点
RAD:
圆弧半径
PAXIS:
定义圆轴线的关键点,如果默认,轴线与工作面正交
PZERO:
定义与圆正交平面的关键点
ARC:
圆弧的长度(度)
NSEG:
沿圆周生成的线段数
4.1.3生成面
1.“A”
功能:
由关键点生成任意形状的面
格式:
A,P1,P2,P3,P4,……..P18
(至少三个关键点,最多18),关键点必须按照顺时针或逆时针顺序输入。
“AL”命令
功能:
通过已定义的边界线生成一个面
格式:
AL,L1,L2,L3,L4,…L10(至少3条)
注意:
线号的顺序可以任意,但要收尾相接。
“BLC5”命令
功能:
通过中心点和角点生成矩形面或块体
格式:
BLC5,XCENTER,YCENTER,WIDTH,HEIGHT,DEPTH
XCENTER,YCENTER:
矩形面或块体中心的坐标值
WIDTH:
定义矩形面和块体的宽度,与X轴平行
HEIGHT:
定义矩形面和块体的高度,与Y轴平行
DEPTH:
块体深度,与Z轴平行
“BLC4”命令
通过两个角点或Z方向的深度生成一个矩形或块体
格式:
BLC4,XCORNER,YCORNER,WIDTH,HEIGHT,DEPTH
矩形面或块体第一个角点在工作面的X,Y坐标值。
“RECTNG”命令
功能:
在工作平面上生成平面
格式:
RECTNG,X1,X2,Y1,Y2
X1,X2:
矩形在工作平面X方向坐标值变化范围
Y1,Y2:
矩形在工作平面Y方向坐标值变化范围
“CYL4”命令
功能:
在工作平面生成一个圆面或圆柱体
格式:
CYL4,XCENTER,YCENTER,RAD1,THETA1,RAD2,THETA2,DEPTH
XCENTER,YCENTER:
圆面或圆柱体中心X,Y值
RAD1,RAD2:
圆面或圆柱体的内、外半径(任意一个为0或空,或相等即为圆或圆柱)
THETA1,THETA2,圆面或圆柱体开始、结束的角度。
“CYL5”命令:
功能:
通过端点生成一个圆形和圆柱体
格式:
CYL5,XEDGE1,YEDGE1,XEDGE2,YEDGE2,DEPTH
XEDGE1,YEDGE1:
圆面或圆柱体直径一个端点X,Y坐标值
XEDGE2,YEDGE2:
圆面或圆柱体直径另一个端点X,Y坐标值
DEPTH:
Z方向的深度
4.3实体模型的修改
1.”KMODIF”命令
功能:
修改已存在的关键点
格式:
KMODIF,NPT,X,Y,Z
NPT:
关键点的编号,也可以为ALL
X,Y,Z:
新的坐标
2.“KDIST”命令
计算并输出两关键点间的距离
格式:
KDIST,KP1,KP2
“NDELE”命令
功能:
删除所选的节点
格式:
NDELE,NODE1,NODE2,NINC
NODE1,NODE2,NINC:
确定要删除节点的范围,按增量NINC从NODE1到NODE2。
“EDELE”命令
功能:
删除所选的单元
格式:
EDELE,IEL1,IEL2,NINC
“UPGEOM”命令
功能:
将分析所得到的位移加到有限元模型的节点上,并更新有限元模型的几何模型(不改变实体模型几何体)
格式:
UPGEOM,FACTOR,LSTEP,SBSTEP,Fname,Ext,--
“MP”命令
功能:
指定一个与温度相关的线性材料性能或常数(非线性材料用TP)
格式:
MP,Lab,MAT,CO,C1,C2,C3,C4
Lab,MAT(参考《ANSYS参数化编程与命令手册》P178)
C0,C1,…:
多项式的常数项和系数
注意:
一般单载荷步求解用线性材料性能,多载荷步用非线性材料属性。
(载荷步就是为获取解而设置的加载条件)
多项式中的常数项和系数可以通过对离散的温度点进行线性插值求得。
若为2次或更高次的性能指定适宜的温度步时,必须使用命令“MPTEMP”,或’MPTGEN’
“MPTEMP”命令
功能:
为材料属性定一个温度表
格式:
MPTEMP,STLOC,T1,T2,T3,T4,T5,T6
STLOC:
确定输入温度的起始位置,默认值为最后填充值加1
T1,T2,T3,T4,T5,T6:
指定从STLOC开始将要赋给6个位置的温度值。
4.4.2设置实常数
1.”R”命令
功能:
定义单元的实常数
格式:
R,NSET,R1,R2,R3,R4,R5,R6
NSET:
设置实常数的编号
R1,R2,R3,R4,R5,R6:
实常数的值或为表格边界条件输入的表格名称(%tabname%),如果超过6个,可使用命令“RMORE”
4.5单元设置与网格划分
ANSYS软件平台提供了网格映射划分和自由适应划分的策略。
映射划分用于曲线、曲面、实体的网格划分方法,可使用三角形、四边形、四面体、五面体和六面体,通过指定单元边长、网格数量等参数对网格进行严格控制,映射划分只用于规则的几何图素,要求对应的线或面的单元数要相同。
1、网格疏密
网格疏密是指在结构不同部位采用大小不同的网格,这是为了适应计算数据的分布特点。
在计算数据变化梯度较大的部位(如应力集中处),为了较好地反映数据变化规律,需要采用比较密集的网格。
划分疏密不同的网格主要用于应力分析(包括静应力和动应力)。
在结构温度场计算中也趋于采用均匀网格。
2、单元阶次
许多单元都具有线性、二次和三次等形式,其中二次和三次形式的单元称为高阶单元。
选用高阶单元可提高计算精度,因为高阶单元的曲线或曲面边界能够更好地逼近结构的曲线和曲面边界,且高次插值函数可更高精度地逼近复杂场函数,所以当结构形状不规则、应力分布或变形很复杂时可以选用高阶单元。
但高阶单元的节点数较多,在网格数量相同的情况下由高阶单元组成的模型规模要大得多,因此在使用时应权衡考虑计算精度和时间。
在有应力集中和刚度突变的地方,应该采用高阶单元来对其进行网格划分。
增加网格数量和单元阶次都可以提高计算精度。
因此在精度一定的情况下,用高阶单元离散结构时应选择适当的网格数量,太多的网格并不能明显提高计算精度,反而会使计算时间大大增加。
为了兼顾计算精度和计算量,同一结构可以采用不同阶次的单元,即精度要求高的重要部位用高阶单元,精度要求低的次要部位用低阶单元。
不同阶次单元之间或采用特殊的过渡单元连接,或采用多点约束等式连接。
平面单元类型:
Plane42 :
2维实体。
该元素即可用于平面单元(平面应力或平面应变)也可用于轴对称单元。
该元素由4个节点定义,每个节点2个自由度:
x,y方向。
具有塑性,徐变,膨胀,应力强化,大变形,大应变能力。
PLANE82:
二维8节点实体。
该元素是plane42的高次形式。
它为混合(四边形-三角形)自动网格划分提供了更精确的求解结果,并能承受不规则形状而不会产生任何精度上的损失。
8节点元素具有位移协调形状,适用于模拟弯曲边界。
该元素由8个节点定义,每个节点2个自由度,x,y方向。
可用于平面单元也可用于轴对称单元。
具有塑性,徐变,膨胀,应力强化,大变形,大应变能力。
并提供不同的输出选项。
Plane83 :
二维8节点实体。
用于承受非轴对称荷载的2维轴对称结构。
如弯曲,剪切或扭转。
该元素每个节点3个自由度:
x,y,z方向。
对于非扭转节点,这3个方向分别代表半径,轴向和切线方向。
该元素是plane25的高次形式。
它为混合(四边形-三角形)自动网格划分提供了更精确的求解结果,并能承受不规则形状而不会产生任何精度上的损失。
该元素也是plane82的一般轴向形式,其荷载不需要对称。
Plane183:
2维8节点实体。
具有二次位移,适用于模拟不规则网格。
该元素由8个节点定义,每个节点2个自由度,x,y方向。
可用于平面单元也可用于轴对称单元。
具有塑性,超弹性,应力强化,大变形,大应变能力。
可用来模拟几乎不能压缩的次弹性材料和完全不能压缩的超弹性材料的变形。
支持初始应力。
并提供不同的输出选项。
加载与求解
5.1指定分析类型
5.1.1指定分析类型与重启动
格式:
ANTYPE,Antype,Status,LDSTEP,SUBSTEP,Action
Antype:
默认值为:
静态(STATIC)
STATICH或0:
静态分析,适用于所有自由度。
BUCKLE或1:
稳定性分析,仅对结构自由度有效
MODAL或2:
模态分析
Status:
指定分析状态:
NEW:
指定一次新的分析(默认)
5.2.2施加载荷
对结构施加载荷时,可以将载荷施加在实体模型或有限元模型上,但在系统求解时,载荷将被自动转换到有限元模型上。
载荷施加在实体上的优缺点:
1)施加在实体模型上的载荷与有限元网格无关,当网格被改变时,不会影响所施加的载荷。
2)不能显示所有实体模型载荷。
载荷施加在有限元模型上的优缺点:
1)可直接应用于缩减分析中
2)可以直接将约束施加在所选的节点上
3)单元的修改会使载荷失效,要求用户删除在修改前的载荷,并在修改后重新施加载荷
命令:
功能:
“DA”:
在所选的面上施加自由度约束
格式:
DA,AREA,Lab,Value1,Value2
AREA:
要施加约束的面号
Lab:
有效的标签名,自由度标签:
UX、UY、UZ、ROTX、ROTY、ROTZ、TEMP
Value1:
自由度值(实数部分)
Value2:
为FLOTRAN自由度,当值为0时,
工作平面和坐标系转换
“CSWPLA”命令
功能:
在工作平面的原点处定义一个局部坐标系
格式:
CSWPLA,KCN,KCS,PAR1,PAR2
KCN:
赋给该坐标系的参考编号,必须大于10,
KCS:
坐标系统的类型。
若为0或CART,为直角坐标系;若为1或CYLIN为柱坐标系;2或SPHE球坐标系;3或TORO为环形坐标系
PAR1:
适应于椭圆或类似球体或环形系统,如果KCS=1或2,PAR1是椭圆的Y轴半径与X轴半径的比值,默认为1;
PAR2:
仅适应于类似球体系统。
如果KCS=2,PAR2是椭圆的Z轴半径与X轴半径的比值,默认为1;
“CSYS”
功能:
激活一个预先已经定义的坐标系
格式:
CSYS,KCN
KCN:
将要激活的坐标系的参考号。
若为0:
直角坐标系;1:
用Z轴为旋转轴的柱坐标系;2:
球坐标系;4或WP:
工作平面;5:
用Y轴为旋转轴的柱坐标系;若为11或更大的数:
由用户已定义的局部坐标系
ANSYS取值函数
有关实体状态的取值函数
NSEL(N)
ESEL(E)
KSEL(K)
LSEL(L)
ASEL(A)
VSEL(V)
表示某个实体状态,其返回值-1,没有选中,0,没有定义,1,被选中
有关下一个被选实体的取值函数
NDNEXT(N)
ELNEXT(E)
KPNEXT(K)
LSNEXT(L)
ARNEXT(A)
VLNEXT(V)
表示编号大于N,E,K,L,A,V的下一个被选实体
有关实体位置的取值函数
CENTRX(E)
CENTRY(E)
CENTRZ(E)
单元E在中心位置的X,Y,Z的坐标系(直角坐标系),有所选的节点决定
NX(N)
NY(N)
NZ(N)
KX(K)
KY(K)
KZ(K)
节点N或关键点K在激活坐标系中X,Y,Z的坐标值
LX(L,LFRAC)
LY(L,LFRAC)
LZ(L,LFRAC)
线段L在长度比率为LFRAC(0~1)时的X,Y,Z的坐标值
有关最靠近某位置的节点或关键点编号的取值函数
NODE(X,Y,Z)
KP(X,Y,Z)
被选择的节点嘴靠近X,Y,Z位置的节点或关键点编号(在激活的坐标系下,如果存在多个节点或关键点,那么取其最小值)
有关距离的取值函数
DISTND(N1,N2)
DISTKP(K1,K2)
节点或关键点两点之间的距离
DISTEN(E,N)
单元E的中心点与节点N之间的距离,中心点将由单元上被选择的节点确定
有关角度的取值函数
ANGLEN(N1,N2,N3)
ANGLEK(K1,K2,K3)
节点或关键点两条边之间的夹角,缺省时单位为弧度,其中所选择的3个节点中,N1或K1是顶点
有关最靠近实体的节点,关键点和单元的取值函数
NNEAR(N)
最靠近节点N的被选节点
KNEAR(K)
最靠近关键点K的被选关键点
ENEARN(N)
最靠近节点N的被选单元,单元的位置将由被选节点确定
有关面积的取值函数
AREAND(N1,N2,N3)
AREAKP(K1,K2,K3)
由节点或关键点3点为顶点围成的三角形的面积
ARNODE(N)
从选择且与节点N的相关的单元分配给节点N的面积,对于二维平面,返回与节点相关的边面积,对于轴对称体,返回与节点相关的边缘表面积,对于三维实体,返回与节点相关的端面积
有关节点和关键点的方向余弦
NORMNX(N1,N2,N3)
NORMNY(N1,N2,N3)
NORMNZ(N1,N2,N3)
NORMKX(K1,K2,K3)
NORMKY(K1,K2,K3)
NORMKZ(K1,K2,K3)
由节点或关键点三点确定的平面法线在X或Y或Z方向的方向余弦
有关节点与单元连接性的取值函数
ENEXTN(N,LOC)
与节点N相连接的单元。
当多个单元共享同一个节点时,在结果列表中,LOC表示为位置,并在列表的结束处返回一个零
NELEM(E,NPOS)
单元E中,NPOS位置处的节点编号
与单元面相关的取值函数
ELADJ(E,FACE)
与单元E的第FACE面相连接的单元,单元面号与表面载荷的主常数是一致的,只有具有相同维数和形状的单元才被考虑。
如果有多个单元时,将返回A-1,如果没有相邻近的单元则返回为A-0
NDFACE(E,FACE,LOC)
单元E中第FACE面中的第LOC位置处的节点,单元面号与表面载荷的主常数是一致的,LOC是面上的节点位置(对IJLK面上,LOC=1是在节点I处,LOC=2是在节点J处)
NMFACE(E)
是指包含所选择节点单元E的面号,输出的面号就是表面载荷的主常数,如果某个面上(如线和面单元)存在有多个载荷常数,则输出其最新的主常数号
ARFACE(E)
对于二维平面实体和三维体积实体来说,返回容纳所选节点的单元E的面的面积,对于轴对称单元,面积是一个360的环单元。
有关结果的自由度的取值函数
UX(N)
UY(N)
UZ(N)
ROTX(N)
ROTY(N)
ROTZ(N)
表示节点N的UX,UY,UZ,ROTX,ROTY,ROTZ的值
TEMP(N)
表示在节点N的温度TEMP值,对于“SHELL131”和“SHELL132”单元来说,当KEYOPT(3)=0或1,要用TBOT(N),TE2(N),...TTOP(N)来代替TEMP(N)
PRES(N)
表示节点N处压力值
VX(N)
VY(N)
VZ(N)
表示节点N处的流体速度VX,VY,VZ
ENKE(N)
表示节点N处的紊流动能
ENDS(N)
表示节点N处的紊流能量消耗
VOLT(N)
表示节点N处的电势
MAG(N)
表示节点N处的磁标势
AX(N)
AY(N)
AZ(N)
表示节点N处的磁矢势AX,AY,AZ