首页/文章/ 详情

APDL语言简介(一)

7月前浏览13759

本文摘要(由AI生成):

本文主要介绍了APDL语言在ANSYS Mechanical APDL环境中的应用,包括定义和使用标量参数、定义和使用数组参数、提取数据库信息、变量表达式和函数、向量以及矩阵的运算等功能。APDL语言是一种脚本语言,具有丰富的内部函数库,可以实现参数化的建模与分析。


本文节选自我参与编写的《工程结构优化设计方法与应用》(中国铁道出版社,2015年)

8.1.1 APDL语言简介

APDL全称为ANSYS Parametric Design Language,即ANSYS Mechanical APDL环境的参数化设计语言,实质是一种脚本语言。其核心功能包括:

定义和使用标量参数;

定义和使用数组参数;

提取数据库信息;

变量表达式和函数(包含了丰富的内部函数库);

向量以及矩阵的运算;

程序流程控制,循环、分支

宏以及用户程序

下面对以上功能进行简单介绍。

(1) 定义和使用标量参数

标量参数(常数或变量)可以通过*SET命令或赋值语句来定义。

通过*SET命令定义参数变量,其一般格式为*SET,Par,Value,其意义为定义一个取值为Value的变量参数Par,例如:

*SET,pi,3.14159

即定义一个取值为3.14159的参数pi。

也可以采用赋值号“=”来定义标量参数,其一般格式为Par=Value,其意义完全等同于*SET,Par,Value命令,也可用下面的形式定义上面的参数pi:

pi=3.14159

注意:ANSYS不区分变量名称的大小写。

(2) 定义和使用数组参数

除了标量参数之外,ANSYS系统还允许定义数组参数,定义参数化数组命令的基本格式如下:

*DIM,Par,Type,IMAX,JMAX,KMAX,Var1,Var2,Var3

其中各参数的意义为:

Par:要定义的数组参数名;

Type:要定义的数组类型,可以是“ARRAY”(数值数组,一般意义的数组),“TABLE”(数值表,需要定义0行0列0页的数表,数据范围在表外可插值),“CHAR”(字符型数组,每个元素包含至多8个字符),“STRING”(字符串数组,每个元素仅能包含1个字符);

IMAXJMAXKMAX:三维数组各维的维数,即行、列、页数;

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操作命令所引用,即命令的选项可以引用变化的参数,以实现参数化的建模与分析。

(3)      提取数据库信息;

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

(4)      变量表达式和函数(包含了丰富的内部函数库);

参数表达式由参数、数字以及加、减、乘、除、乘方等运算符组成,下面列举了一些常见的参数表达式:

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命令可以设置角度的单位,缺省情况下为弧度,可以根据需要设置为角度。

(5)      向量以及矩阵的运算

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


Mechanical APDL
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2018-12-29
最近编辑:7月前
尚晓江
博士 | 博士 技术专家 海内存知己,天涯若比邻
获赞 629粉丝 11002文章 77课程 25
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈