理论教育 使用参数的方法及实战案例

使用参数的方法及实战案例

时间:2023-10-23 理论教育 版权反馈
【摘要】:不必明确声明参数类型。这样就可以不用中间参数L1和L2。例如,使用该命令来删除参数QR:QR=2)使用*SET命令,但不给参数赋值。

使用参数的方法及实战案例

1.参数

参数是APDL的变量,它们更像Fortran变量,而不像Fortran参数。不必明确声明参数类型。所有数值变量都以双精度数储存。被使用但未声明的参数都被赋予一个接近0的值或极小值(例如,若参数A被定义为A=B,但B没被定义,则赋给A一个极小值)。

2.参数命名规则

参数名称必须以字母开头,且只能包含字母、数值和下画线。

下面列出一些有效和无效的参数名。

有效参数名:ABC,PI,X_OR_Y。

无效参数名:NEW_VALUE(超过8个字符),2CF3(以数值开头),M&E(含非法字符“&”)。

注意:要避免参数名与经常使用的ANSYS标识字相同,如自由度(DOF)标识字(TEMP,UX,PRES等);常用标识字(ALL,PICK,STAT等);用户定义标识字(如用ETABLE命令定义的标识字);数组类型标识字(如CHAR,ARRAY,TABLE等)。参数名不能以下画线(_)开头,这类参数名只能用于GUI和应用于ANSYS的宏中。

名称为从ARG1到ARG9和从AR10到AR99的参数被保留为局部参数。

3.定义参数

若要定义参数,可以把值赋给参数,也可以提取ANSYS提供的值,再把这些值赋给参数。还可以用“*GET”命令或各种内嵌获取函数从ANSYS中提取的值。下面对其进行详细说明。(1)在运行过程中给参数赋值

可以用“*SET”命令定义参数。如下面的例子:

978-7-111-35546-5-Chapter03-18.jpg

也可以用“=”作为一种速记符来调用*SET命令(这更方便),其格式为Name=Value,这里Name是参数名,Value是赋给该参数的数值或字符。对于字符参数,赋给的值必须被括在单引号中,并不能超过8个字符。下面的例子说明“=”的用法:

978-7-111-35546-5-Chapter03-19.jpg

在GUI中,可以直接在ANSYS输入窗口或标量参数对话框的“Selection”域(通过Utility Menu|Parameters|Scalar Parameters菜单项访问)中输入“=”。

(2)赋ANSYS提供的值给参数

1)*GET命令的用法。

GUI:Utility Menu|Parameters|Get Scalar Data。

从某个特定的项目(如一个点、一个单元、一个面等)中提取ANSYS提供的数据并赋给某个用户命名的参数。各种关键词、标识字和数字结合在一起来确定被提取的项目。例如

*GET,A,ELEM,5,CENT,X

表示返回单元5的质心的X坐标值并赋给参数A。

*GET命令的使用格式为:

*GET,Par,Entity,ENTNUM,Iteml,IT1lNUM,Item2,IT2NUM

这里,Par是将被赋值的参数名;Entity是被提取项目的关键词,有效的关键词是NODE,ELEM,KP,LINE,AREA,VOLU等,在ANSYS Commands Reference(ANSYS命令参考手册)中的*GET部分对其有完整的说明;ENTNUM是实体的编号(若为0指全部实体);Item1是某个指定实体的项目名。例如,如果Entity是ELEM,那么Item1要么是NUM(选择集中的最大或最小的单元编号),要么是COUNT(选择集中的单元数目)。

可以把*GET命令看成是对一种树结构从上至下的路径搜索,即从一般到特殊的确定。

可用下面的例子来说明*GET命令的用法。下面的第一条命令用于获得单元97的材料属性(MAT参考号)并赋给单元BCD:

978-7-111-35546-5-Chapter03-20.jpg

2)内嵌获取函数的用法。

对于某些项目,可以用内嵌的获取函数来代替*GET命令。获取函数返回项目的值并直接用于当前运行之中。这样就不必先把值赋给参数,然后再在运行中调用该参数,从而可以省去起中间作用的参数。例如,要计算两个节点的X坐标的平均值,可以采用如下的*GET函数。

①使用下面的命令把节点1的X坐标值赋给参数L1:

*GET,L1,NODE,1,LOC,X

②再使用*GET命令把节点2的X坐标值赋给参数L2。

③使用计算中间值的函数MID=(L1+L2)/2。

更简便的方法是使用节点坐标的获取函数NX(N),该函数返回节点N的X坐标值。这样就可以不用中间参数L1和L2。例如:

MID=(NX(1)+NX(2))/2(www.daowen.com)

获取函数的参数可以是参数,也可以是其他的获取函数。例如,获取函数NELEM(ENUM,NPOS)返回在单元ENUM上NPOS处的节点编号,联合函数NX(NELEM(ENUM,NPOS))返回该节点的X坐标值。本书附录A给出了可用的获取函数。

(3)排列显示参数

一旦定义了参数,就可以用*STATUS命令把它们排列显示出来。如果仅用*STATUS命令(没有附加参数),列表将显示目前所有已定义的参数。

通过Utility Menu|List|Other|Parameters或Utility Menu|List|Status|Parameters|AllParameters菜单项也可以得到参数的列表显示。

注意:以下画线(_)开头或结尾的参数不能由*STATUS命令显示出来。

4.删除参数

可通过如下两种途径来删除参数。

1)使用“=”命令,其右边为空。例如,使用该命令来删除参数QR:

QR=

2)使用*SET命令(Utility Menu|Parameters|Scalar Parameters),但不给参数赋值。例如,使用该命令来删除参数QR:

*SET,QR,

令某个数值参数为0并没有删除该参数。同样,令某个字符参数为空的单引号('')或单引号中为空格也没有删除该参数。

5.数字参数值的置换

只要在有关数字命令的地方用到参数,该参数值都会被自动置换。假如没有给该参数赋值(即该参数还没被定义),程序会自动赋给它一个接近0的值(),通常不会发出警告。

注意:大多数情况下,某参数在一个命令中使用之后,再被定义,不会再更新该命令。例如:

978-7-111-35546-5-Chapter03-21.jpg

6.参数公式

参数公式包括对参数和数值的运算,如加、减、乘、除等。例如:

978-7-111-35546-5-Chapter03-22.jpg

(1)运算符号

+(加)、-(减)、*(乘)、/(除)、**(求幂)、<(小于)、|(大于)。

(2)ANSYS运算的顺序

1)圆括号中的运算(最里面最优先)

2)求幂(从右到左)

3)乘和除(从左到右)

4)一元联合(如+A或-A)

5)加和减(从左到右)

6)逻辑判断(从左到右)

因此一个诸如Y2=A+B**C/D*E的公式按如下顺序求值:最先求B**C,第二步求/D,第三步求*E,最后求+A。为了更清楚,可以在公式中使用圆括号。圆括号最多可嵌套4层,在每套圆括号中最多可有9次运算。一般来说,在公式的运算符之间不要有空格。特别是在*之前不能有空格,这是因为如果这样,接下来的输入行(以*开头)将被作为一条命令来解释,而不再是公式的一部分了。

7.带参数的函数

一个带参数的函数是数学运算的程序序列,其运行结果会返回一个值,例如SIN(X),SQRT(B)和LOG(13.2)。表3-1完整地列出了当前可用的ANSYS函数。

表3-1 ANSYS可用的函数

978-7-111-35546-5-Chapter03-23.jpg

下面是一些带参数函数的例子:

978-7-111-35546-5-Chapter03-24.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈