1、第二章参数化建模M2-2第二章参数化建模 ANSYS优化的基本要求 (拓朴优化除外 ) 就是要将模型参数化。 在此模型中 , 我们要 :A. 定义参数化模型B. 复习某些 APDL语言基础C. 按要求建立一个参数化模型并建立一个分析文件D. 做一、二个课堂练习M2-3参数化建模A. 定义与目的什么是参数化建模 ? 用 参数 (变量 ) 而不是数字建立和分析的模型 通过简单地改变模型中的某些参数值 , 就可建立和分析一个新的模型。H1 H2 H1A1A1A2A2A2M2-4参数化建模定义与目的 ANSYS 不仅允许你对几何变量,而且还可对其他特征“参数化”,即: 材料特性 载荷 约束数 最大纵向
2、变形 最低温度 最大应力M2-5参数化建模定义与目的 基本要求是用作 DV, SV, 和 OBJ 的那些量必须参数化。例如: 如要体积最小 (目标函数 ), 则总体积必须作为一个参数。 如果高度 H1设为设计变量 , 则模型的几何参数必须建立一个 H1项。 如果设计有一个压应力 (状态变量 )的限制作为约束条件 , 则 最大压应力必须作为一个参数。M2-6参数化建模定义与目的 每次进行优化都要从参数化建模开始 。 参数化建模的 “输出” 是分析文件 , 该文件作为优化程序的“输入” 。分析文件搜寻设计域进行优化设计初始设计参数化建模和加载求解参数化结果M2-7参数化建模定义与目的 该 分析文件
3、 包含完成参数化分析的 ANSYS 命令 : 建模 加载 求解 查看结果M2-8参数化建模定义与目的 在分析文件中要注意 : 犹如 .log 文件一样要将非重要命令 (绘图 , 列表 , 图形控制等 ) 移去。 把分析文件想象成优化必须要 “ 存储”的参数化模型的一种格式。 优化程序多次执行分析文件 , 每次都用新的参数值。 因为参数化模型中的那些参数很重要 , 我们将首先复习 一些 APDL 语言的基本概念。M2-9参数化建模B. APDL 语言基础什么是 APDL语言 ? APDL是 ANSYS Parametric Design Language( ANSYS参数设计语言) 的缩写 ,
4、一种脚本语言,可使模型参数化并使一般任务自动化。 用 APDL语言 , 可以 : 用参数而不是数字输入模型尺寸 , 材料参数等。 从 ANSYS 数据库提取信息 , 如接点坐标或最大应力值。M2-10参数化建模 APDL语言基础 用 APDL语言还可以 : 在参数间进行数学运算。 用数组参数创建向量和矩阵并对其操作。 对最常用的命令或宏定义缩写字(快捷方式) 。 创建一个带 if-then-else分支, do-loops循环和用户提示的宏来执行一系列的任务。M2-11参数化建模 APDL语言基础 本节 , 将只集中介绍 APDL语言的基本功能 : 如何定义参数 如何使用参数 如何从 ANSY
5、S 数据库提取信息及如何用此信息给参数赋值 APDL语言的其他功能 , 请参考“ APDL Programmers Guide.”M2-12参数化建模 - APDL 语言基础定义参数 要定义参数 , 用格式Name=Value 可由输入窗键入或用标量参数对话框 (Utility Menu Parameters Scalar Parameters.) Name 为参数名 , 8个或更少字符 Value 可为一数 , 一个预定义的参数 , 一个数学函数 , 一个参数化表达式 , 或一个字符串。M2-13参数化建模 - APDL 语言基础参数定义 例如 :inrad=2.5outrad=8.2num
6、holes=4thick=outrad-inrade=2.7e6density=0.283bb=cos(30)pi=acos(-1)g=386massdens=density/gcircumf=2*pi*radarea=pi*r*2dist=sqrt(y2-y1)*2+(x2-x1)*2)slope=(y2-y1)/(x2-x1)theta=atan(slope)jobname=proj1M2-14参数化建模 - APDL 语言基础参数定义一些命名规则 : 参数名必须是由字母开头的 8个或 8个以下字符的组合。 只允许字母 , 数字 , 和下划线“ _” 。 避免下划线 _ 作为起始字符存给
7、ANSYS 使用。 参数名 不 分 大小写 , 即 , “ RAD” 和 “ Rad” 是相同的。所有参数 内部都是以大写形式存储的。 避免使用通用的 ANSYS 标号, 诸如 STAT, DEFA, 和 ALL。M2-15参数化建模 - APDL 语言基础使用参数 要 使用 一个参数 , 只要在对话框中或在命令中相应的域处输入他的名字。 例如 , 要定义一个矩形可用参数 w=10 和 h=5, 可用菜单 :Preprocessor Create Rectangle By 2 Corners + 或命令 :/prep7blc4,w,hM2-16参数化建模 - APDL 语言基础使用参数注意 :
8、 当使用一个参数时 , ANSYS 立即替换其值 。 前例中的矩形是以 10x5 的面积 , 而不是作为 w x h保存的 。 也就是说 , 当矩形产生后,如果要改变 w 或 h的值 , 此面积不会被改变 。 大多数参数是会被替换的,这也就是为什么要用命令文件 (即分析文件 )的形式存贮参数化模型的理由。M2-17参数化建模 - APDL 语言基础使用参数 使用参数的其他例子 :jobname=proj1/filnam,jobname ! 作业名/prep7ex=30e6mp,ex,1,ex ! 杨氏模量force=500fk,2,fy,-force ! 作用在 KP 2点的力fk,6,fx,
9、force/2 ! 作用在 KP 6点的力M2-18参数化建模 - APDL 语言基础获取数据库信息 数据库信息的获取和给参数赋值 , 可用 *GET 命令, 或 Utility Menu Parameters Get Scalar Data. 有大量的信息 ,包括模型和结果数据 。 详见 *GET 命令的描述。M2-19参数化建模 - APDL 语言基础获取数据库信息 例如 :*get,x1,node,1,loc,x ! x1 = X coordinate of node 1 CSYS*/post1*get,sx25,node,25,s,x ! sx25 = X stress at node
10、 25 RSYS*get,uz44,node,44,u,z ! uz44 = UZ displacement at node 44 RSYS*nsort,s,eqv ! Sort nodes by von Mises stress*get,smax,sort,max ! smax = maximum of last sortetable,vol,volu ! Store element volumes as volssum ! Sum all element table columns*get,totvol,ssum,vol ! totvol = sum of vol column*CSYS
11、= 在激活的坐标系中 (CSYS)RSYS =在激活的结果坐标系中 (RSYS)M2-20参数化建模 - APDL 语言基础获取数据库信息 有些数据可用 get 函数获取例如 :x1=nx(1) ! x1 = 接点 1 CSYS* 处的 X坐标nn=node(2.5,3,0) ! nn = 在 (2.5,3,0) CSYS*或临近处的接点/post1ux25=ux(25) ! ux25 = 接点 25 RSYS*处的 UXtemp93=temp(93) ! temp93 = 93接点的温度width=distnd(23,88) ! width = 23 和 88 接点间的距离*CSYS =在激
12、活的坐标系中 (CSYS)RSYS =在激活的结果坐标系中 (RSYS)M2-21参数化建模 - APDL 语言基础获取数据库信息 可在一个字段处直接用 get 函数 , 就象一个参数一样 . 例如 :k,10,kx(1),ky(3) ! KP 10 用 KP 1处的 X值, KP 3处的 Y值 CSYS*k,11,kx(1)*2,ky(3) ! CSYS*f,node(2,2,0),fx,100 ! 接点 (2,2,0) CSYS* 处的力 FX*CSYS =在激活的坐标系中 (CSYS)M2-22参数化建模 - APDL 语言基础获取数据库信息 APDL 语言小结 : 定义参数可用格式:
13、Name=Value. Value 可以是一个数 , 一个预先定义的参数 , 一个数学函数 , 一个 参数表达式 , 或一个字符串。 可用 *GET命令 或 get 函数从 ANSYS 数据库中获取数据 . 从 ANSYS 存储数据的实际格式中获取数据 (数字或字串 ), 不用参数名的形式 .M2-23参数化建模C. 过程 / 指导 一个参数化模型建立和分析的过程除在需要的地方使用参数之外 与通常的 ANSYS 分析没有什么两样 :1. 定义参数2. 在需要的地方用参数建立模型3. 加载并在需要的地方使用参数求解4. 查看结果和参数化要求的数据5. 建立分析文件M2-24参数化建模过程 / 指
14、导第 1步 - 定义参数 用标准格式 Name=Value 定义参数 , 可在输入窗中或在标量参数对话框中进行 (Utility Menu Parameters Scalar Parameters.)。 在这一步中,无须定义所有的参数 , 可将所有参数的定义放在以后的编辑中轻易地一起进行 (如有必要的话 )。 用作 DVs的参数,其值的定义只用于初始设计。M2-25参数化建模过程 / 指导第 2,3步 - 用参数建模 , 分网和加载 在需要的地方用参数而不是数字建模。 建模和加载要避免使用交互图形或实体号操作 , 特别是在布尔操作后。要用选择逻辑,组件名,或 get 函数。注意 : 图形检出器
15、总是要在命令中加入实体号 , 即使用 “ Pick All” 命令或键入一个参数名也是如此。 因为实体号在优化过程中会改变, 所以最好避免在参数化建模的时候使用图形检出的方法来选取实体。M2-26参数化建模过程 / 指导例如 , 不 推荐在参数化模型中使用以下方法 (除非是非常简单的情况):SFL,4,PRES,500 ! 压力加在 4号线上F,32,FY,-7500 ! 力加在 32节点处而要 , 使用选择逻辑或 get 函数 :LSEL,S,LOC, ! 由位置选线SFL,ALL,PRES,500 ! 在所有选择线上加压力LSEL,ALLF,NODE(1.5,3,0),FY,-7500 !
16、 由 get函数得到节点号M2-27H1 H2A1, A2, A3参数化建模过程 / 指导 记住: 你可以用参数化表达式 和 /或 if-then-else 分支来修改参数。 例如 : 如直径 diameter定义为一个参数 , 在用 CYLIND 或 CYL4 命令时,可以用 diameter/2来定义一个圆柱体。 如果构架桥用 1/2对称法建模 , 对称平面上的纵杆横截面积应为 A2/2.M2-28参数化建模过程 / 指导 如果在一个壳模型中,厚度 thk 定义为参数, 且只有三个壳厚可用(即 , 1/8” , 3/16” , 1/4” ), 则可有如下 if-then-else 结构 :
17、et,1,63 ! 壳单元类型*if,thk,lt,2.5/16,thenthk=1/8 ! 用 1/8 if thk 3.5/16*elsethk=3/16 ! 否则用 3/16*endifr,1,thk ! 定义壳厚M2-29参数化建模过程 / 指导第 4步 - 结果的参数化 这就是说要获得结果数据并以参数化形式保存。 通常用通用前处理器 POST1来完成。 结果数据 , 如,最大变形 , 最大冯 -密塞斯应力 , 和总体积 , 是状态变量和目标函数的典型用例 。 用 *GET 命令 (Utility Menu Parameters Get Scalar Data.) 或get 函数来获取结果数据。M2-30参数化建模过程 / 指导第 5步 - 创建分析文件 分析文件包括用于建立和分析参数化模型的输入命令。 优化程序用其进行多个设计方案的循环。分析文件搜寻设计域进行优化设计初始设计参数化建模和加载求解参数化结果