找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3216|回复: 6

[ANSYS] ANSYS中变量数组函数初级教程

[复制链接]

19

主题

51

回帖

817

积分

助理工程师

UID
399
威望
0
机械币
157
活力
-6
发表于 2014-9-13 13:49:45 | 显示全部楼层 |阅读模式
ANSYS中变量数组函数初级教程

一、参数介绍

1、参数的概念和类型:
参数是指APDL中的变量与数组。
变量参数有两种类型:数值型和字符型。
数组参数有三种类型:数值型、字符型和表,表是一种特殊的数值型数组,允许自动进行线性差值。
在APDL中任何参数都不需要单独声明参数(不同于C语言)。数值型参数,无论整形还是实型都按照双精度进行存储,被使用但未被赋值的参数程序将默认一个接近0的极小值。字符型参数储存字符串,赋值方法是将字符创括在一对单引号中(最大长度8个字符)。

2、参数命名规则
1)必须以字母开头,长度不超过32个字符
2)只能包含字母,数值和下划线。
3)一般不能以下划线开头,以下划线开头的参数为系统隐含参数,只用于GUI和宏中。
4)以下划线结尾的参数用*STATUS命令或组列表显示,用*DEL删除。
5)不能使用宏专用的局部参数名:ARG1~ARG9和AR10~AR99.
6)不能使用*ABBR命令定义的缩写。
7)不能使用ANSYS表示子(Lable)如TEMP,UX,PRES等等。
举例一些无效参数名:
Fjsdklfjsklfjsklfjkslfjksdfjdkslfjsdklfjsdklfjs123434343(长度超过32)
S@B(含非法字符@)
UX(系统自由度标识符)
12ddd(以数字开头)

19

主题

51

回帖

817

积分

助理工程师

UID
399
威望
0
机械币
157
活力
-6
 楼主| 发表于 2014-9-13 13:50:19 | 显示全部楼层
二、变量的定义与赋值

一般定义变量与赋值有以下6种,但本文只介绍常用的几种:
1)利用命令*set定义并赋值
2)利用“=”定义并赋值
3)利用GUI:utility menu——parameters——scalar parameters 定义赋值
4)在启动时利用驱动命令进行定义与赋值(建议初学者不要使用)
5)利用*get提取ANSYS数据库数据进行定义与赋值
6)利用*ask命令定义并赋值

1、利用*set定义变量并赋值
格式 *set,par,value,val2,val3……val10
Par——参数名
Valu——参数的赋值,数值或字符串
Val2~val10——对数组赋值(见例子4)
举例:*set,length,12(定义length并赋值为12)
*set,width,length(定义width并赋值为length的值12)
*set,abc_111,’good’(给abc_111定义为字符good)
*set,B(1),1,2,3,4(给数组B赋值,B(1)=1, B(2)=2, B(3)=3, B(4)=4)

2、利用“=”定义并赋值
“=”可以直接用来定义和赋值变量,作为一种速记符实际是通过内部调用*set实现参数定义与赋值的。
格式:name=value
name——参数名
vulue——赋给参数的数值或字符,字符必须放在一对单引号内并且不得超过8个字符。
例子:width=12
Length=width(12)
abc_111=‘good’
B(1)=1, B(2)=2, B(3)=3, B(4)=4

3、利用GUI或命令输入窗口进行变量定义与赋值。
1)在ansys命令输入窗口直接1,2输入。
2)利用利用GUI:utility menu——parameters——scalar parameters 定义赋值

4、删除变量
1)*set,par,(赋空值,字符型空为‘’)
2)name=(赋空值,字符型空为‘’)
3)利用上图delete
例子:width=
(width为空值注意不是0)
Abc_123=’’
(abc_123为空值)

5、列表显示变量参数
1)利用*status命令显示已定义的参数(变量,数组,表)
2)利用GUI:utility menu——list——other——parameters
utility menu——List——status——parameters——all para
3)利用GUI显示指定参数:
utility menu——list——other——named parameters
utility menu——List——status——parameters——named parameters

6、存储与恢复变量
1)存储变量到指定文件中使用PARSAV命令或选择菜单 utility menu——parameters——save parameter
格式如下:
PARSAV,LAB,文件名,扩展名
LAB包括scalar和all
Scalar——要存储的变量名(不包括数组表)
All——存储所有参数包括数组和表
2)从一个文件中恢复已存在的参数使用PARRES命令选择菜单
Utility menu——parameters——restore parameters
格式如下:
Parres,lab,文件名,扩展名
Lab——new和change
New——表示恢复的参数将覆盖程序内存中的变量(replace)
Change——表示恢复的参数将以合并方式增加到程序内存中(merge)

19

主题

51

回帖

817

积分

助理工程师

UID
399
威望
0
机械币
157
活力
-6
 楼主| 发表于 2014-9-13 13:50:29 | 显示全部楼层
三、数组及其应用

1、ANSYS允许定义的数组类型
1)ARRAY数值型数组——ARRAY数值型数组是缺省的数组类型,用于存储整行式或实型数据,行列和面的下标从1开始的连续整数。
2)CHAR字符型数组——CHAR字符型数组用于存储字符串的数组,行列面的下标是从1开始的连续证书。
3)table表——table表用于存储整数或实数,是一种特殊的数值型数组,可以实现在数组元素之间的线性差值算法。可以给每一行,列面定义数组下标,并且下标为实数(而不是连续的整数),可以根据下标实现数据差值算法。
4)STRING字符串数组,可用*DIM,STRING可以将字符串输入到数组中,其列与面下标从1开始,行号由字符在字符串中的位置确定。
以上三种类型的数组都不能超过(2-1)/8字表长度。

2、定义数组参数
利用*DIM命令或利用utility menu——parameters——array parameters——define/edit定义数组,如果是array和table类型的数组元素将被初始化为0,如果是char类型的数组元素则被初始化为一空值。
利用*DIM格式如下:
*DIM,par,type,imax,jmax,kmax,var1,var2,var3
其中:par——数组名
Type——数组类型(array char table)缺省为array
Imax~kmax——数组下标(i,j,k)的最大值
Var1~var3——type=table时对应行列面的变量名

3、赋值数组参数
1)利用*set命令或“=”给单个或多个数组元素赋值与scalar变量赋值是格式相同。
2)利用*set或“=”赋值时,赋值对象为第一个元素名,赋值数据是一个列矢量,赋值结果是按列下标递增顺序从第一个赋值数组依次赋值。注意,一次最多只能给10个连续数组元素赋值,当只给一个元素赋值时与变量赋值完全一致。
举例:
(1)*DIM,,12,1,1
定义数组A为一个array类型,12行1列
A(1)=1,2,……12
给每个元素赋值为其行标
(2)*DIM,B,array,4,3,1
定义数组B为一个array类型4行3列
B(1,1)=11,21,31,41
B(1,2)=12,22,32,42
B(1,3)=31,32,33,43
B=
注意此赋值的下标! 对于二维数组,赋值顺序按照列进行赋值,注意此规律。三维也是一样的。
(3)*DIM,C,char,4,1,1
C(1)=‘a’,‘b’,‘c’,‘d’

3)利用*VEDIT命令或等价GUI utility menu——parameter——array parameters——define/edit定义数组(不能编辑字符型数组)

4)列表显示数组参数
通过*status
或GUI:list——parameters(与变量显示一样的操作!)实现!

5)曲线图形显示数组参数
使用*VPLOT或通过GUI:utility menu——plot——array parameter绘制数值型数组参数的列矢量,由于array类型数组的数据是无序的故只能用柱状图;
*vplot,parx,pary,y2,y3,…y8
其中,parx是x轴上的列矢量名
Pary,y2….是y轴上映射的8个列矢量
例如:
*DIM,A,ARRAY,5,1,1
A(1)=1,2,3,4,5
*vplot,,A

6)删除数组参数
删除数组参数与删除变量很类似,也可以用*set或“=“进行赋空值删除,对于字符参数则赋值为‘’,删除时只需删除变量名及第一个元素的名称,或使用utility menu——parameter——array parameter——define/edit。
举例:删除一个一维数组A(12,1,1)命令如下:
A(1)=
或*set,A(1)

7)数组的储存和恢复——此操作基本与变量相同,请参看变量的操作。

19

主题

51

回帖

817

积分

助理工程师

UID
399
威望
0
机械币
157
活力
-6
 楼主| 发表于 2014-9-13 13:50:37 | 显示全部楼层
四、表参数的概念和定义

由于表参数(table)不同于一般数组,所以在这里着重的讲讲:

1、table表类型参数是数值型的数组参数,与array数组类似,但包含0行0列(其他数组都是从1开始),每个面的下标值放在该面的0,0处。表的下标可以是递增的整数或实数。表数组赋值是通过行和列的下标进行的,如果不赋值,程序自动赋最小值,表允许通过线性差值计算表数组中以定义元素之间的任意值!
注意:
1)每个面的0,0元素值为该面的下标,若表为一二维表,只有一个面则无需赋值
2)0行0列的下标只有在差只是才会使用
显示(list)与数组规则相同注意imax为1开头,不包括0行0列。
对于表赋值建立建议使用GUI。若用APDL则为A(0,0,1)=….A(0,1,1)=…A(0,N,1)=…
可直接用*STATUS,TABLE

2、曲线图显示表参数的列矢量:与ARRAY一样使用*VPLOT,二者的差别是table类型数组的数据是有序的,采用曲线进行表示。

3、表差值及表载荷应用
表参数最大的特点就是提供按行列面的下标进行线性差值的功能。可以用于定义随某一变量(如时间)变化的边界条件载荷,相应谱曲线,压力曲线,材料温度曲线,磁性材料的B-H曲线。

19

主题

51

回帖

817

积分

助理工程师

UID
399
威望
0
机械币
157
活力
-6
 楼主| 发表于 2014-9-13 13:50:45 | 显示全部楼层
五、使用函数加载器与编辑器

1、函数编辑器定义一个函数的一般步骤:
(1)打开函数编辑器,选择菜单路径utility——parameter——function
(2)选择函数类型:单个方程还是多值函数(分段函数),如果是后者,必须键入函数变量名,即状态控制变量,同时六状态也被激活。
(3)选择角度单位,度还是弧度。该选项仅决定方程如何被运算而不影响*AFUNC的设置
(4)定义方程:利用基本变量,方程变量和按键定义单个方程表达式,或者定义最多6个不同定义域的方程表达式。

1)点击regime1选项卡,首先指定状态控制变量的最大和最小取值区间,然后定义该取值区间对应的方程表达式,可将每个状态控制下的方程储存起来,在其他状态控制中重复使用。
2)同理对regime2进行设置,只需制定当前区间最大值
1.输入一个注释描述函数(可选),选择菜单路径function——file——command
2.保存函数editor——save and type in name 输入文件名,.func为扩展名,如果需要这些被存储的函数,首先将其加载到ansys中,并定义一系列的方程变量,以表参数名的形式给某个分析使用。

2、使用函数加载器:
(1)打开函数载入器,选择parameter——function——read from file 打开保存的函数
(2)在table parameter name 中输入表变量名
(3)对话框下部对应每个状态的函数表达式和状态表。单击函数表,即显示每个指定方程变量的数据输入区,如果需要使用材料ID变量,可以在其输入区输入。
(4)在每个定义的状态中重复以上过程。
(5)直到你为函数中所有的状态的所有变量提供赋值,才能保存为表格式参数使用。
注意:在ansys分析中用函数加载必须的两个步骤:
1利用函数编辑器创建任意方程或函数
2在利用函数加载器加载函数,并以函数定义表参数

0

主题

19

回帖

12

积分

初入机械村

UID
20831
威望
0
机械币
4
活力
0
发表于 2014-11-11 16:48:26 | 显示全部楼层
tks,tks,tks

0

主题

19

回帖

12

积分

初入机械村

UID
20831
威望
0
机械币
4
活力
0
发表于 2014-11-13 08:31:06 | 显示全部楼层
太深奥了!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|机械村 ( 渝ICP备17010994号-1|渝公网安备50022702001048号 )

GMT+8, 2024-11-24 16:02 , Processed in 0.024765 second(s), 3 queries , Gzip On, Redis On.

Powered by 机械村

Copyright © 2012- Jixiecun.com

快速回复 返回顶部 返回列表