ansys-APDL编程 - 图文 下载本文

同一个例子,可通过下面的命令实现:

*DIM,Ttxy,table,4,5,2,TIME,X-COORD,Y-COORD *TREAD,Ttxy,t3data,txt,,2

3.11.6 插入值

访问表数组时,ANSYS可在已定义的值之间进行插值。 下面的例子说明了ANSYS如何在TABLE数组中进行插值:

给定 A 为TABLE 数组参数,ANSYS 程序能计算A(1)和A(2)之间的任意值,如: A(1.5) 等于20.0 (12.0 和28.0的中值) A(1.75) 等于 24.0 A(1.9) 等于26.4

同样,如果PQ 是一个TABLE数组参数 PQ(1.5,1) 等于-3.4 (2.8 和 -9.6的中值) PQ(1,1.5) 等于 3.5 (2.8和 4.2的中值) PQ(3.5,1.3) 等于 14.88

可以利用该特性使用TABLE数组参数来描述函数y=f(x):用j=0列作为自变量x的值,j=1列作为y的值。例如,对于一个如下所示由5个点描述的时间相关力函数:

第 26 页

图 3-7 时间相关力函数

指定函数为一个 TABLE数组参数,其数组元素为力的值,从1到5的行下标值是时间值0.0 到9.3。该参数可表示如下:

ANSYS 能计算出(通过线性插值)在FORCE参数中没有定义的时间处的力值。在上面的例子中,ANSYS可以计算出FORCE(9)的值为89.4375。如果参数位置超过了数组的维数,那么该参数的值为最后的参数值,并不采用外推法。例如,ANSYS将给FORCE(5,2)赋值560.0,给FORCE(12)赋值0.0。

从这些例子中可以看到TABLE数组参数在分析中是非常有用的。其典型应用有时间历程载荷函数、响应谱曲线、压力曲线、材料-温度曲线、磁性材料的B-H曲线等等。运行时,TABLE数组参数比ARRAY类型参数需要更多的机时。

3.11.6.1 把获取值存入数组参数或恢复数组参数值

可以通过*VGET 命令 (Utility Menu>Parameters>Get Array Data)(与*GET命令类似)获取ANSYS提供的值,并把它们储存在一个数组中。

必须为*VGET命令生成的数组参数确定起始位置。当KLOOP为缺省值时,循环将按顺序处理实体元。例如,*VGET,A(1),ELEM,5,CENT,X返回单元5的质心的x坐标值,并储存在数组A的第一个值中,然后继续获取单元6,7…,直到填满数组。在这个例子中,如果KLOOP为4,那么就会返回质心的x、y和z坐标值。

可以通过*VPUT 命令 (Utility Menu>Parameters>Array Operations>Put Array Data)来恢复数组参数的值。

*VPUT命令使用和上面描述的*VGET命令相同的参数,但是作用与之相反。在ANSYS命令参考手册(ANSYS Commands Reference)的命令描述部分讨论了*VPUT命令。

ANSYS程序直接输出向量,不进行坐标系统的转换。*VPUT能替换已经存在的数组内容,但不能产生新的内容。在数据库中被改变的自由度结果可被所有后续的操作利用。其他临时更改的结果主要用于即时打印和显示。

注意-使用该命令时要非常小心,因为它能更改整个数据库部分。*VPUT命令不支持*VGET列出的所有内容,因为把值放置在某些位置会使ANSYS数据库发生矛盾。

第 27 页

3.11.6.2 列出数组参数

和标量参数一样,可用*STATUS命令来列出数组参数。下面的例子说明了*STATUS命令的用法:

*STATUS

ABBREVIATION STATUS-

ABBREV STRING

SAVE_DB SAVE RESUM_DB RESUME QUIT Fnc_/EXIT POWRGRPH Fnc_/GRAPHICS ANSYSWEB Fnc_HomePage

PARAMETER STATUS- ( 5 PARAMETERS DEFINED) (INCLUDING 2 INTERNAL PARAMETERS)

NAME VALUE TYPE DIMENSIONS MYCHAR hi CHARACTER

MYPAR ARRAY 4 6 1 MYPAR1 .987350000 SCALAR

*STATUS,XYZ(1),5,9 ! 列出XYZ 中5 行到 9 行的参数

PARAMETER STATUS- XYZ ( 4 PARAMETERS DEFINED) LOCATION VALUE 5 1 1 -8.98000000 6 1 1 9.01000000 7 1 1 -30.6000000 8 1 1 51.0000000 9 1 1 -51.9000000

*STATUS,FORCE(1),,,0 ! 列出参数FORCE,包括 j=0 列

PARAMETER STATUS- FORCE ( 4 PARAMETERS DEFINED) LOCATION VALUE

1 0 1 0.000000000E+00 2 0 1 0.800000000 3 0 1 7.20000000 4 0 1 8.50000000 5 0 1 9.30000000 1 1 1 0.000000000E+00 2 1 1 560.000000 3 1 1 560.000000 4 1 1 238.500000 5 1 1 0.000000000E+00

第 28 页

*STATUS,T2(1,1) ! 列出参数T2

PARAMETER STATUS- T2 ( 4 PARAMETERS DEFINED) LOCATION VALUE 1 1 1 0.600000000 2 1 1 2.00000000 3 1 1 -1.80000000 4 1 1 4.00000000 1 2 1 7.00000000 2 2 1 5.00000000 3 2 1 9.10000000 4 2 1 62.5000000 1 3 1 2.000000000E-04 2 3 1 -3.50000000 3 3 1 22.0000000 4 3 1 1.000000000E-02 *STATUS,RESULT(1) !列出参数RESULT

PARAMETER STATUS- RESULT ( 4 PARAMETERS DEFINED) LOCATION VALUE

1 1 1 SX (CHAR) 2 1 1 SY (CHAR) 3 1 1 SZ (CHAR)

3.11.7 写数据文件

可以通过*VWRITE命令把数组中的数据写到格式化(表格式)的数据文件中。该命令最多可带有10个数组向量作为参数,并把这些向量中包含的数据写入当前打开的文件(*CFOPEN 命令)中。每个向量的格式由*VWRITE命令后紧接的FORTRAN 77数据描述符确定(因此不能从ANSYS输入窗口执行该命令)。数组向量要指定起始元素位置(如MYARRAY(1,2,1))。可以用表达式来计算数据文件中每一行的位置。关键词SEQU将从1开始写一个连续的整数列。

数据文件中每一行的格式由数据描述符决定。命令的每一个参数都要带有一个描述符。在描述符行不要有FORMAT这个词。可以使用实数格式或字符格式描述符,不能使用整形或直接列表描述符。

3.11.7.1 数据格式描述符

若对FORTRAN的数据描述符不熟悉,本部分将从头说明如何格式化数据文件。要获得更多的信息,请参阅FORTRAN 77编译器文件。

一定要给*VWRITE命令所带参数中的每一个数据项提供一个数据描述符。 通常地,对任何数字值都可以采用F描述符(浮点数)。F描述符的语法为: Fw.d

其中,w指数据宽度,d 指小数点右边的阿拉伯数字的个数。

第 29 页