• 沒有找到結果。

ANSYS APDL参数化有限元分析技术及其应用实例 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "ANSYS APDL参数化有限元分析技术及其应用实例 - 万水书苑-出版资源网"

Copied!
10
0
0

加載中.... (立即查看全文)

全文

(1)

第 4 章

数组参数及其用法

4.1 数组参数类型与概念

前面讲述了变量参数,它只能存储一个参数值,而数组参数是按多个行、列与面的结构 存储多个参数值,包含多个元素。ANSYS 的数组按照维数可以分为以下 3 类: (1)一维数组:只有一列数据,相当于一个列矢量,可以直接用于矢量运算。 (2)二维数组:二维阵列数据结构,由行与列组成,每一列相当于一个矢量,即二维数 组可以看成由多个一维数组即列矢量构成。 (3)三维数组:三维阵列数据结构,由行、列和面组成,每个面相当于一个二维数组。 如图 4­1 所示是二维数组概念的图示,它有 m 行长和 n 列宽,即是一个维数为 m×n 的二 维数组。每行由行下标 i 确定,i 从 1 到 m 之间变化。每列由列下标 j 确定,j 从 1 到 n 之间变 化。对于确定的行与列下标就可以确定一个数组元素,其下标的通用形式是(i,j)。 图 4­1  二维数组概念的图示 如图 4­2 所示是三维数组概念的图示,它有 m 行长、n 列宽和 3 个面,即是一个维数为  m×n×3 的三维数组。可以这样理解,图 4­2 所示的三维数组是由 3 个图 4­1 所示的二维数组扩 

4

(2)

展而成的。推广之后的三维数组概念可以表达为,三维数组有 m 行长、n 列宽和  p 个面,面 的下标为 k,变化范围从 1 到 p。每个三维数组元素由下标(i,j,k)确定。 图 4­2  三维数组概念的图示  ANSYS 允许定义 3 种数组类型,如下: (1)ARRAY 数值型数组。  ARRAY 数值型数组是默认的数组类型,用于存储整型或实型数据,行、列和面的下标是 从 1 开始的连续整数。 (2)CHAR 字符型数组。  CHAR 字符型数组用于存储字符串的数组,行、列和面的下标是从 1 开始的连续整数。 (3)TABLE 表。  TABLE  表用于存储整数或实数,是一种特殊的数值型数组,可以实现在数组元素之间的 线性插值算法。可以给每一行、列和面定义数组下标,并且下标为实数(而不是连续的整数), 可以根据下标实现数据插值算法。 另外,还有 STRING 字符串数组,即利用*DIM,,STRING 可以将字符串输入到数组中,其 列和面的下标从 1 开始,行号由字符在字符串中的位置确定。 注意 这 3 种类型的数组都不能超过(2 31  -1)/8 字节长度。对于双精度数组而言,每 个数据项不能超过 8 个字节长度,所以数值大小不能超过(2 31  -1)/8。

4.2 定义数组参数

定 义数 组参 数有 两种 途径 ,即 利用 *DIM  命令 定义 ,或 者利 用菜 单  Utility  Menu>  Parameters>Array Parameters>Define/Edit 以交互方式进行定义。 定义数组之后, 如果是 ARRAY  和 TABLE 类型的数组元素将被初始化为 0(除 TABLE 类型的 0 行和 0 列之外,它们被初始 化为“极小值” ),如果是 CHAR 类型的数组元素则被初始化为一个空值。

利用*DIM 命令定义数组的格式如下: 

(3)

其中,Par 是数组名;Type 是数组类型,标识字有 ARRAY(默认) 、CHAR、TABLE 和  STRING;IMAX、JMAX、KMAX  分别是数组下标(I、J、K)的最大值;Var1、Var2、Var3  是 Type = TABLE 时对应行、列和面的变量名。 利用*DIM 命令定义数组实例如下:  *DIM,A,,4  !定义一维 ARRAY 数组,维数为 4[×1×1]  *DIM,B,Array,12,12  !定义二维 ARRAY 数组,维数为 12×12[×1]  *DIM,C,,4,3,3  !定义三维 ARRAY 数组,维数为 4×3×3  *DIM,Force,TABLE,5  !定义 Table 表,维数为 5[×1×1]  *DIM,Str_Name,CHAR,5  !定义 CHAR 字符数组,维数为 5[×1×1]  利 用 菜 单 交 互 方 式 进 行 数 组 定 义 , 选 择 菜 单 路 径  Utility  Menu>Parameters>Array  Parameters>Define/Edit 弹出如图 4­3 所示的定义数组参数对话框, 单击 Add 按钮接着弹出如图  4­4 所示的增加新数组参数对话框, 参照*DIM 命令定义数组的格式说明进行新数组参数定义, 最后单击 OK/Apply 按钮确认定义数组。 图 4­3  定义数组参数对话框 图 4­4  增加新数组参数对话框

(4)

4.3 赋值数组参数

给数组元素赋值有以下几种基本方法: (1)利用*SET 命令或“=”给单个或多个数组元素赋值,与 Scalar 变量相同。 (2)利用*VEDIT 命令或按其等价菜单方式编辑数组。 (3)利用*VFILL 命令或者其等价菜单方式填充数组向量。 (4)利用*VREAD 命令用数据文件赋值 ARRAY 数组(具体参见 6.2 节介绍)。 (5)利用*TREAD 命令用数据文件赋值 TABLE 表(具体参见 6.3 节介绍)。 4.3.1 利用*SET 命令或“=”给单个或多个数组元素赋值 利用*SET 命令或“=”可以同时给单个或多个数组元素赋值,赋 值对象为第一个数组元素名,赋值数据是一个列矢量,赋值结果是按 列下标递增顺序从第一个赋值数组元素依次赋值。注意,一次最多只 能给 10 个连续的数组元素赋值, 当只给一个元素赋值时与变量赋值完 全一致。 实例 1: 如图 4­5 所示, 首先定义一维数组为 12×1 的数组参数 A, 然后利用“=”进行赋值,命令如下:  *DIM,A,,12,1,1  A(1)=1,2,3,4,5,6,7,8,9,10  A(11)=11,12  实例 1 说明:第一次赋值是从第 1 个元素开始连续给前 10 个元 素赋值,并且一次最多赋值 10 个元素;第二次赋值是从第 11 个元素开始连续给最后 2 个元 素赋值。 实例 2:如图 4­6 所示,首先定义二维数组为 4×3 的数组参数  B,然后利用“=”进行赋值,命令如下:  *DIM,B,,4,3,1  B(1,1)=11,21,31,41  !定义第一列的 4 个元素  B(1,2)= 12,22,32,42  !定义第二列的 4 个元素  B(1,3)= 13,23,33,43  !定义第三列的 4 个元素 实例 2 说明:对于二维数组,赋值顺序是首先按列进行赋值, 在一列中则是遵循一维数组赋值规律。由此,还可以推广到三维数组,首先按面定义元素,并 遵循二维数组赋值规律。 实例 3:如图 4­7 所示,首先定义一维数组为 4×1 的字符型数 组参数 C,然后利用“=”进行赋值,命令如下:  *DIM,C,CHAR,4,1,1  C(1)= 'Case1','Case2','Case3','Case4'  !*  按列顺序赋值 实例  3  说明:字符型数组赋值基本与数值型数组参数赋值方 法一致。  1  2  3  4  5  6  A  7  8  9  10 11 12 é ù ê ú ê ú ê ú ê ú ê ú ê ú ê ú ê ú = ê ú ê ú ê ú ê ú ê ú ê ú ê ú ê ú ê ú ë û 图 4­5  数组 A(12,1,1)  11 12 13  21 22 23  B  31 32 33  41 42 43 é ù ê ú ê ú = ê ú ê ú ë û 图 4­6  数组 B(4,3,1)  Case1  Case2  C  Case3  Case4 é ù ê ú ê ú = ê ú ê ú ë û 图 4­7  字符型数组 C(4,1,1)

(5)

4.3.2 利用*VEDIT 命令或按其等价菜单方式编辑数组

利用*VEDIT 命令或者等价菜单 Utility  Menu>Parameters>Array  Parameters>Define/Edit 以 交互方式编辑数组元素, 这两种途径只能编辑 ARRAY 或 TABLE 类型的数组, 不能编辑 CHAR  类型的数组。如图 4­8 所示的编辑数组元素的赋值对话框提供了强大的功能: (1)提供按面即二维表格结构形式的数组元素编辑界面。 (2)提供大型数组编辑的导向控制:导向方向控制、数组面的选择、数组元素显示范围。 (3)初始化某一行或列(仅对 ARRAY 有效)。 (4)对行或列数据进行删除、拷贝和插入操作(仅对 ARRAY 有效)。 实例: 假如需要编辑图 4­6 所示的数组 B(4,3,1), 选择菜单 Utility Menu>Parameters> Array  Parameters>Define/Edit 弹出定义数组参数对话框,单击 Add 按钮弹出增加新数组对话框,Par  输入 B,Type 选择 Array,I、J、K 依次设置为 4、3、1,然后单击 OK 按钮定义数组 B(4,3,1); 接着,选中 Currently  Defined  Array  Parameters 列表中的数组参数 B,单击 Edit 按钮弹出如图  4­8 所示的编辑数组参数 B 的对话框,并按图示在各元素位置填写元素的赋值,最后选择对话 框菜单 File>Apply/Quit 结束编辑操作并返回定义数组参数对话框。

图 4­8  编辑数组元素的赋值对话框

4.3.3 利用*VFILL 命令或者其等价菜单方式填充数组向量

使用*VFILL  命令或等价菜单  Utility  Menu>Parameters>Array  Parameters>  Fill  来填充  ARRAY 或  TABLE 类型数组参数的一个列矢量,填充的数据必须服从某种分布规律或者是一 系列的随机数。*VFILL 命令的使用格式如下:  *VFILL,ParR,Func,CON1,CON2,CON3,CON4,CON5,CON6,CON7,CON8,CON9,CON10  其中,ParR 是参数列矢量名,对于二维或三维数组代表其中的某列矢量;Func 是填充数 据服从的函数规律,包括以下几种: (1)DATA 选项:将指定的 CON1~CON10 数值填充到列矢量中。 (2)RAMP 选项:按 CON1+((n-1)*CON2)规律进行填充列矢量。

(3) RAND 选项: 以基于均匀分布的随机数填充列矢量, 即 RAND(CON1,CON2), 其中 CON1  代表随机数下限(默认为 0.0),CON2 代表随机数上限(默认为 1.0)。

(6)

CON1 代表均值(默认为 0.0),CON2 代表标准方差(默认为 1.0)。

(5)TRIA 选项:以基于三角分布的随机数填充列矢量,即 TRIA(CON1,CON2,CON3), 其中 CON1 代表随机数下限(默认为 0.0),CON3 代表峰值位置,CON2 代表随机数上限。

(6)BETA  选项:以基于  BETA  分布的随机数填充列矢量,即  BETA(CON1,CON2,  CON3,CON4), 其中 CON1 代表随机数下限 (默认为 0.0), CON2 代表随机数上限, CON3 与 CON4  代表 alpha 与 beta 参数值且必须为正数(默认为 1.0)。

(7)GAMM  选项:以基于  GAMMA  分布的随机数填充列矢量,即  GAMM(CON1,  CON2,CON3),其中 CON1 代表随机数下限(默认为 0.0),CON2 与 CON3 代表 alpha 与 beta  参数值且必须为正数(默认为 1.0)。  CON1~CON10 代表需要指定的数值。 实例:定义一个维数为 12×2 的数组 AB(12,2),其第一列元素以服从均值为 0,标准方差 为 100 的正态分布的随机数进行填充,第二列元素以服从 RAMP 的函数规律且下限为 20,上 限为 200 的随机数进行填充,执行该过程的命令如下:  *DIM,AB,ARRAY,12,2  !定义维数为 12×2 的数值型数组  *VFILL,AB(1,1),GDIS,0,100,  !填充数组的第一列矢量  *VFILL,AB(1,2),RAMP,20,200,  !填充数组的第二列矢量  *STATUS,AB,1,12,1,2,1,,  !列表显示二维数组 AB(12,2)的所有元素 最后列表显示 AB(12,2)所有元素的结果如图 4­9 所示, 注意每次填充的结果是由当次计算 所决定的。 图 4­9  列表显示二维数组 AB(12,2)的所有元素

(7)

4.4 列表显示数组参数

数组参数也是用*STATUS 命令或者其等价菜单进行显示。列表数组参数的菜单如下:  Utility Menu>List>Other>Parameters  Utility Menu>List>Status>Parameters>All Parameters  Utility Menu>List>Other>Named Parameter  Utility Menu>List>Status> Parameters>Named Parameters  实例:在 4.3 节的实例 1 最后就是利用*STATUS 命令列表显示数组 AB(12,2)的所有元素, 显 示 的 方 式 如 图  4­9  所 示 。 为 了 实 现 等 效 的 菜 单 操 作 , 首 先 选 择  Utility  Menu>List>  Other>Named Parameter 弹出如图 4­10 所示的对话框, 参照图 4­10 所示进行设置, 就可以得到 如图 4­9 所示的结果。 图 4­10    *STATUS 列表显示指定范围数组参数的对话框

4.5 曲线图形显示数组参数列矢量

使用*VPLOT 命令或等价菜单 Utility Menu>Plot>Array Parameters 绘制数值型数组参数的 列矢量,由于 ARRAY 类型数组的数据是无序的,故只能用柱状图表示数组参数。*VPLOT 命 令的使用格式如下:  *VPLOT, ParX, ParY, Y2, Y3, Y4, Y5, Y6, Y7, Y8 

其中,ParX 是 X 轴上的列矢量名;ParY, Y2, Y3, Y4, Y5, Y6, Y7, Y8 是 Y 轴上映射的 8 个 列矢量,即可以同时绘制 8 个列矢量曲线。

实例 1:参见图 4­5 所示的一维数组为 12×1 的数组参数 A,可以绘制 A(12)数组的曲线显 示图,命令如下: 

(8)

对应命令的等价菜单操作是,选择菜单 Utility Menu>Plot>Array Parameters 弹出如图 4­11  所示的曲线显示数组参数对话框,参照图 4­11  所示进行设置,单击  OK/Apply 按钮,在图形 窗口中显示如图 4­12 所示的结果。 图 4­11  曲线显示数组参数对话框 图 4­12  曲线显示数组参数 A(12)  最后,补充说明如何进行人工设置曲线显示标识功能。对于默认条件下绘制的参数曲线, 在曲线图中全部采用默认的标识字,如曲线 1 标识字是 COL 1,曲线 2 标识字是 COL 2,其他 依次类推。另外,列数指定该曲线包含的相关变量。还可以利用/GCOLUMN 命令给各曲线指 定自己需要的标识字,它是一个长度不超过 8 个字符的字符串。

(9)

实例  2:在程序开始部分利用/GCOLUMN  命令给各曲线分别指定标识字  string01  和  string02,结果如图 4­13 所示。命令如下:  /gcol,1,string01  /gcol,2,string02  *DIM,xxx,ARRAY,10  * DIM,yyy, ARRAY,10,2  xxx( 1,1) =1e6  xxx( 2,1) = 1e6 + 1e5  xxx( 3,1) = 1e6 + 2e5  xxx( 4,1) = 1e6 + 3e5  xxx( 5,1) = 1e6 + 4e5  xxx( 6,1) = 1e6 + 5e5  xxx( 7,1) = 1e6 + 6e5  xxx( 8,1) = 1e6 + 7e5  xxx( 9,1) = 1e6 + 8e5  xxx(10,1) = 1e6 + 9e5  yyy( 1,1) = 1  yyy( 2,1) = 4  yyy( 3,1) = 9  yyy( 4,1) = 16  yyy( 5,1) = 25  yyy( 6,1) = 36  yyy( 7,1) = 49  yyy( 8,1) = 64  yyy( 9,1) = 81  yyy(10,1) = 100  yyy( 1,2) = 1  yyy( 2,2) = 2  yyy( 3,2) = 3  yyy( 4,2) = 4  yyy( 5,2) = 5  yyy( 6,2) = 6  yyy( 7,2) = 7  yyy( 8,2) = 8  yyy( 9,2) = 9

(10)

yyy(10,2) = 10  *VPLOT,xxx(1,1), yyy(1,1) ,2  图 4­13  用户指定标识字举例

4.6 删除数组参数

删除数组与删除变量很类似,也可以利用*SET 命令与“=”进行赋空值删除,对于字符参数 则赋值为''。删除时只需删除变量名即第一个元素名称;或者选择菜单  Utility  Menu>Parameters>  Array  Parameters>Define/Edit  弹出如图  4­3  所示的定义数组参数对话框,选中  Currently  Defined  Array Parameters 列表中需要删除的数组参数,然后单击 Delete 按钮进行删除。 实例:如果 A(12,1,1)是一维数值型数组,则删除命令如下:  A(1)=  或者  *SET,A(1),

4.7 存储与恢复数组参数

存储和恢复数组参数的命令及其等价菜单与存储和恢复变量参数的命令及其等价菜单完 全一致。为了存储数组参数到参数文件中,PARSAV 命令的 Lab 项必须设置成 ALL,表示存 储所有参数,包括数组和表。恢复数组参数则与恢复变量的命令和菜单完全一样。

參考文獻

相關文件

原因: 技術進步,加上對可攜帶音樂設備的需求增加(黑膠唱片 > 錄音帶 > CD- ROM > 迷你光碟 > SD咭 >

if left_sum>=right_sum and left_sum>=cross_sum return (left_low,left_high,left_sum). else if right_sum>=left_sum and right_sum>=cross_sum

(主頁 > 學校行政及管理 > 財務管理 > 學校財務注意 事項 > 學校及其教職員收受利益和捐贈事宜參考資料 ). EDB ScExO Ind Prog

• 爸爸媽媽認識 -> 成為朋友互相了解 -> 時常都希望在一起,願 意互相遷就,令彼此開心 -> 想永遠一起生活,建立家庭並願意

学校现有教学仪器设备超过1亿元,学校图书馆纸质藏书125万册,电子图书

主頁 > 課程發展 > 學習領域 > 中國語文教育 > 中國語文教育- 教學 資源 > 中國語文(中學)-教學資源

If amendment is necessary, please proceed before submission: Back to Form E Main Menu > Enter Step 1: Update by Student > Select Retrieve Record after

EDB Home >Curriculum Development >Major Levels of Education >Collaborative Research and Development (“Seed”) Projects >2022/23 School