第二章参数化建模M2-2第二章参数化建模•ANSYS优化的基本要求(拓朴优化除外)就是要将模型参数化。•在此模型中,我们要:A.定义参数化模型B.复习某些APDL语言基础C.按要求建立一个参数化模型并建立一个分析文件D.做一、二个课堂练习M2-3参数化建模A.定义与目的什么是参数化建模?•用参数(变量)而不是数字建立和分析的模型•通过简单地改变模型中的某些参数值,就可建立和分析一个新的模型。H1H2H1A1A1A2A2A2M2-4参数化建模定义与目的•ANSYS不仅允许你对几何变量,而且还可对其他特征“参数化”,即:–材料特性–载荷–约束数–最大纵向变形–最低温度–最大应力M2-5参数化建模定义与目的•基本要求是用作DV,SV,和OBJ的那些量必须参数化。例如:–如要体积最小(目标函数),则总体积必须作为一个参数。–如果高度H1设为设计变量,则模型的几何参数必须建立一个H1项。–如果设计有一个压应力(状态变量)的限制作为约束条件,则最大压应力必须作为一个参数。M2-6参数化建模定义与目的•每次进行优化都要从参数化建模开始。•参数化建模的“输出”是分析文件,该文件作为优化程序的“输入”。分析文件搜寻设计域进行优化设计初始设计参数化建模和加载求解参数化结果M2-7参数化建模定义与目的•该分析文件包含完成参数化分析的ANSYS命令:–建模–加载–求解–查看结果M2-8参数化建模定义与目的•在分析文件中要注意:–犹如.log文件一样要将非重要命令(绘图,列表,图形控制等)移去。–把分析文件想象成优化必须要“存储”的参数化模型的一种格式。–优化程序多次执行分析文件,每次都用新的参数值。–因为参数化模型中的那些参数很重要,我们将首先复习一些APDL语言的基本概念。M2-9参数化建模B.APDL语言基础什么是APDL语言?•APDL是ANSYSParametricDesignLanguage(ANSYS参数设计语言)的缩写,一种脚本语言,可使模型参数化并使一般任务自动化。•用APDL语言,可以:–用参数而不是数字输入模型尺寸,材料参数等。–从ANSYS数据库提取信息,如接点坐标或最大应力值。M2-10参数化建模APDL语言基础•用APDL语言还可以:–在参数间进行数学运算。–用数组参数创建向量和矩阵并对其操作。–对最常用的命令或宏定义缩写字(快捷方式)。–创建一个带if-then-else分支,do-loops循环和用户提示的宏来执行一系列的任务。M2-11参数化建模APDL语言基础•本节,将只集中介绍APDL语言的基本功能:–如何定义参数–如何使用参数–如何从ANSYS数据库提取信息及如何用此信息给参数赋值–APDL语言的其他功能,请参考“APDLProgrammer’sGuide.”M2-12参数化建模-APDL语言基础定义参数•要定义参数,用格式Name=Value–可由输入窗键入或用标量参数对话框(UtilityMenuParametersScalarParameters...)–Name为参数名,8个或更少字符–Value可为一数,一个预定义的参数,一个数学函数,一个参数化表达式,或一个字符串。M2-13参数化建模-APDL语言基础参数定义•例如:inrad=2.5outrad=8.2numholes=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=‘proj1’M2-14参数化建模-APDL语言基础参数定义一些命名规则:•参数名必须是由字母开头的8个或8个以下字符的组合。•只允许字母,数字,和下划线“_”。•避免下划线_作为起始字符存给ANSYS使用。•参数名不分大小写,即,“RAD”和“Rad”是相同的。所有参数内部都是以大写形式存储的。•避免使用通用的ANSYS标号,诸如STAT,DEFA,和ALL。M2-15参数化建模-APDL语言基础使用参数•要使用一个参数,只要在对话框中或在命令中相应的域处输入他的名字。•例如,要定义一个矩形可用参数w=10和h=5,–可用菜单:PreprocessorCreateRectangleBy2Corners+–或命令:/prep7blc4,,,w,hM2-16参数化建模-APDL语言基础使用参数注意:•当使用一个参数时,ANSYS立即替换其值。•前例中的矩形是以10x5的面积,而不是作为wxh保存的。也就是说,当矩形产生后,如果要改变w或h的值,此面积不会被改变。•大多数参数是会被替换的,这也就是为什么要用命令文件(即分析文件)的形式存贮参数化模型的理由。M2-17参数化建模-APDL语言基础使用参数•使用参数的其他例子:jobname=‘proj1’/filnam,jobname!作业名/prep7ex=30e6mp,ex,1,ex!杨氏模量force=500fk,2,fy,-force!作用在KP2点的力fk,6,fx,force/2!作用在KP6点的力M2-18参数化建模-APDL语言基础获取数据库信息•数据库信息的获取和给参数赋值,可用*GET命令,或UtilityMenuParametersGetScalarData...•有大量的信息,包括模型和结果数据。详见*GET命令的描述。M2-19参数化建模-APDL语言基础获取数据库信息•例如:*get,x1,node,1,loc,x!x1=Xcoordinateofnode1[CSYS]*/post1*get,sx25,node,25,s,x!sx25=Xstressatnode25[RSYS]**get,uz44,node,44,u,z!uz44=UZdisplacementatnode44[RSYS]*nsort,s,eqv!SortnodesbyvonMisesstress*get,smax,sort,,max!smax=maximumoflastsortetable,vol,volu!Storeelementvolumesasvolssum!Sumallelementtablecolumns*get,totvol,ssum,,vol!totvol=sumofvolcolumn*CSYS=在激活的坐标系中(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=在激活的坐标系中(CSYS)RSYS=在激活的结果坐标系中(RSYS)M2-21参数化建模-APDL语言基础获取数据库信息•可在一个字段处直接用get函数,就象一个参数一样.例如:k,10,kx(1),ky(3)!KP10用KP1处的X值,KP3处的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语言小结:–定义参数可用格式:Name=Value.–Value可以是一个数,一个预先定义的参数,一个数学函数,一个参数表达式,或一个字符串。–可用*GET命令或get函数从ANSYS数据库中获取数据.–从ANSYS存储数据的实际格式中获取数据(数字或字串),不用参数名的形式.M2-23参数化建模C.过程/指导•一个参数化模型建立和分析的过程除在需要的地方使用参数之外与通常的ANSYS分析没有什么两样:1.定义参数2.在需要的地方用参数建立模型3.加载并在需要的地方使用参数求解4.查看结果和参数化要求的数据5.建立分析文件M2-24参数化建模过程/指导第1步-定义参数•用标准格式Name=Value定义参数,可在输入窗中或在标量参数对话框中进行(UtilityMenuParametersScalarParameters...)。•在这一步中,无须定义所有的参数,可将所有参数的定义放在以后的编辑中轻易地一起进行(如有必要的话)。•用作DVs的参数,其值的定义只用于初始设计。M2-25参数化建模过程/指导第2,3步-用参数建模,分网和加载•在需要的地方用参数而不是数字建模。•建模和加载要避免使用交互图形或实体号操作,特别是在布尔操作后。要用选择逻辑,组件名,或get函数。注意:图形检出器总是要在命令中加入实体号,即使用“PickAll”命令或键入一个参数名也是如此。因为实体号在优化过程中会改变,所以最好避免在参数化建模的时候使用图形检出的方法来选取实体。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!由get函数得到节点号M2-27H1H2A1,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结构:et,1,63!壳单元类型*if,thk,lt,2.5/16,thenthk=1/8!用1/8ifthk2.5/16*elseif,thk,gt,3.5/16,thenthk=1/4!用1/4ifthk3.5/16*elsethk=3/16!否则用3/16*endifr,1,thk!定义壳厚M2-29参数化建模过程/指导第4步-结果的参数化•这就是说要获得结果数据并以参数化形式保存。•通常用通用前处理器POST1来完成。•结果数据,如,最大变形,最大冯-密塞斯应力,和总体积,是状态变量和目标函数的典型用例。•用*GET命令(UtilityMenuParametersGetScalarData...)或get函数来获取结果数据。M2-30参数化建模过程/指导第5步-创建分析文件•分析文件包括用于建立和分析参数化模型的输入命令。•优化程序用其进行多个设计方案的循环。分析文件搜寻设计域进行优化设计初始设计参数化建模和加载求解参数化结果M2-31参数化建模过程/指导•分析文件中的命令流紧跟在用以建立和分析参数化模型的过程之后:–参数定义(给初值)–几何定义命令–分网命令–加载和加边界条件命令–求解命令–获取结果命令M2-32参数化建模过程/指导•有两种方法建立分析文件:–“倒出”存于ANSYS数据库中的log命令–编辑一个log文件(jobname.log).本讲座将集中介绍其中的第一种方法M2-33参数化建模过程/指导•要“倒出”存于ANSYS数据库中的log命令,选择UtilityMenuFileWr