本文摘要(由AI生成):
本文主要介绍了APDL语言在ANSYS Mechanical APDL环境中的应用,包括定义和使用标量参数、定义和使用数组参数、提取数据库信息、变量表达式和函数、向量以及矩阵的运算等功能。APDL语言是一种脚本语言,具有丰富的内部函数库,可以实现参数化的建模与分析。
APDL全称为ANSYS Parametric Design Language,即ANSYS Mechanical APDL环境的参数化设计语言,实质是一种脚本语言。其核心功能包括:
定义和使用标量参数;
定义和使用数组参数;
提取数据库信息;
变量表达式和函数(包含了丰富的内部函数库);
向量以及矩阵的运算;
程序流程控制,循环、分支
宏以及用户程序
下面对以上功能进行简单介绍。
标量参数(常数或变量)可以通过*SET命令或赋值语句来定义。
通过*SET命令定义参数变量,其一般格式为*SET,Par,Value,其意义为定义一个取值为Value的变量参数Par,例如:
*SET,pi,3.14159
即定义一个取值为3.14159的参数pi。
也可以采用赋值号“=”来定义标量参数,其一般格式为Par=Value,其意义完全等同于*SET,Par,Value命令,也可用下面的形式定义上面的参数pi:
pi=3.14159
注意:ANSYS不区分变量名称的大小写。
除了标量参数之外,ANSYS系统还允许定义数组参数,定义参数化数组命令的基本格式如下:
*DIM,Par,Type,IMAX,JMAX,KMAX,Var1,Var2,Var3
其中各参数的意义为:
Par:要定义的数组参数名;
Type:要定义的数组类型,可以是“ARRAY”(数值数组,一般意义的数组),“TABLE”(数值表,需要定义0行0列0页的数表,数据范围在表外可插值),“CHAR”(字符型数组,每个元素包含至多8个字符),“STRING”(字符串数组,每个元素仅能包含1个字符);
IMAX,JMAX,KMAX:三维数组各维的维数,即行、列、页数;
Var1,Var2,Var3:对“TABLE”类型,与行、列、页对应的变量名的缺省值;
定义了参数化数组之后,可以通过*SET命令为数组的各元素进行赋值,也可采用直接赋值语句。
例如,通过*DIM命令定义一个4×3的ARRAY数组C并赋值:
*DIM,C,ARRAY,4,3
C(1,1)=1,2,3,4
C(1,2)=5,6,7,8
C(1,3)=9,10,11,12
于是得到数组C为:
例:*DIM定义一个6×1的TABLE数组F并赋值:
*DIM,F,TABLE,6,1,1
F(1,0)=0.0,1.0,2.2,3.0,4.0,5.5
F(1,1)=0.0,1.6,1.8,3.6,3.9,5.6
定义的数表F,可以通过菜单项Utility Menu>Parameters>Array Parameters>Define/ Edit 来查看,如图1-43a所示。对于TABLE型数组,定义数据点以外的数值可以通过插值得到,比如我们定义当F第0列取0.5以及3.6时的F值分别作为参数F1以及F2:
*SET,F1,F(0.5)
*SET,F2,F(3.6)
则有F1=0.8,F2=3.78。
字符型以及字符串型的数组元素则可以直接通过赋值语句来定义。各种方式定义的参数可以被各种ANSYS操作命令所引用,即命令的选项可以引用变化的参数,以实现参数化的建模与分析。
ANSYS程序提供了用于从数据库中提取参数值的*GET命令,其一般格式为:
*GET,Par,Entity,ENTNUM,Item1,IT1NUM,Item2,IT2NUM
其中各参数的意义为:
Par:提取的参数被赋给的变量名称;
Entity:提取参数信息的实体项目类型,可为NODE、ELEM、KP、LINE、VOLU等;
ENTNUM:实体的编号;
Item1,IT1NUM:要提取的信息类型及其编号;
Item2,IT2NUM:要提取的信息类型及其编号(第2组);
为了向读者介绍*GET的使用,下面提供一些例子。
提取100号单元的材料类型号并赋给变量MAT100:
*GET,MAT100,ELEM,100,ATTR,MAT
提取节点10的Y坐标赋给变量Y10:
*GET,Y10,NODE,10,LOC,Y
提取当前被选择节点的最大ID号并赋给变量NMAX:
*GET,NMAX,NODE,NUM,,NMAX
提取101号单元的体积并赋给变量V101:
*GET,V101,ELEM,101,VOLU
在通用后处理器中,提取节点25的x方向应力分量赋予变量sx25:
/POST1
*GET,sx25,node,25,s,x
参数表达式由参数、数字以及加、减、乘、除、乘方等运算符组成,下面列举了一些常见的参数表达式:
c=a+b
r0=(r1+r2)/2
m=SQRT((x2-x1)**2+(y2-y1)**2)
第3个表达式中的SQRT为引用的参数函数,SQRT(X)表示变量X的开平方值。ANSYS程序提供了大量的参数函数形式,下面列举一些参数函数的具体应用:
Pi=ACOS(-1) !计算圆周率的值
Y=RAND(-1,1) !Y是-1到1之间的随机变量
Z=LOG10(A) !计算A的常用对数(10为底)
通过菜单项Utility Menu>Parameters>Angular Units或者*AFUN命令可以设置角度的单位,缺省情况下为弧度,可以根据需要设置为角度。
APDL提供了强大的向量和矩阵运算功能。比如,可以利用APDL的*MOPER命令求解联立线性方程组,对n阶线性方程组,其方法如下:
*DIM,C,,n
*MOPER,C(1),A(1,1),SOLV,b(1)
例如:
*DIM,A,,2,2 $ *DIM,B,,2, $ *DIM,C,,2
A(1,1)=1,2 $ A(1,2)=2,3 $ B(1)=7,12
*Moper,c(1),A(1,1),SOLV,B(1)
运行上述命令得到:
C={3,2}T