ANSYS的形状优化过程
1 概述
优化设计是一种寻找确定最优设计方案的技术。所谓“最优设计”,指的是一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。也就是说,最优设计方案就是一个最有效率的方案。
ANSYS程序提供了两种优化的方法,这两种方法可以处理绝大多数的优化问题。零阶方法是一个很完善的处理方法,可以很有效地处理大多数的工程问题。一阶方法基于目标函数对设计变量的敏感程度,因此更加适合于精确的优化分析。
2 关键词
设计变量:优化结果的取得就是通过改变设计变量的数值来实现的
状态变量:约束设计的数值
目标函数:设计变量的函数,也就是说,改变设计变量的数值将改变目标函数的数值。
设计变量,状态变量和目标函数总称为优化变量。
分析文件:命令流输入文件,包括一个完整的分析过程(前处理,求解,后处理)。它必须包含一个参数化的模型,用参数定义模型并指出设计变量,状态变量和目标函数。
一次循环:指一个分析周期,可以理解为执行一次分析文件。
优化数据库:优化数据库记录当前的优化环境,包括优化变量定义,参数,所有优化设定,和设计序列集合。
3 过程
(1)生成循环所用的分析文件
该文件必须包括整个分析的过程。可以对设计的任何方面进行优化:尺寸,形状,材料性质,支撑位置,所加载荷等,唯一要求就是将其参数化。设计变量可以在程序的任何部分初始化,一般是在PREP7中定义。这些变量的初值只是在设计计算的开始用得到,在优化循环过程中会被改变。
建模求解如下:
/PREP7
H=1000
TK16=6.35/H !设置参数变量并附初值
TK27=6.35/H
TK38=6.35/H
TK49=6.35/H
TK50=4/H
ET,1,PLANE42
MP,EX,1,6.89E10
MP,NUXY,1,0.3
K,1
K,5,254/H
KFILL ! 在第1至第5个关键点之间生成2,3,4关键点
K,6,,TK16
K,7,63.5/H,TK27
K,8,127/H,TK38
K,9,190.5/H,TK49
K,10,254/H,TK50
SPLINE,6,7,8,9,10
L,1,6
L,2,7
L,3,8
L,4,9
L,5,10
LSEL,S,LINE,,5,9
LESIZE,ALL,,,1
LSEL,ALL
A,1,2,7,6
A,2,3,8,7
A,3,4,9,8
A,4,5,10,9
ESIZE,,4
AMESH,ALL
/SOLU
NSEL,S,LOC,Y
DSYM,SYMM,X !对选择的节点施加x方向的对称约束
NSEL,S,LOC,X
DSYM,ASYM,Y !对选择的节点施加x方向的反对称约束
NSEL,ALL
FK,10,FX,66725*4 !在10号关键点施加集中载荷,实现弯矩
DK,1,ALL,0 !在1号关键点施加全约束
SOLVE
FINISH
第一主应力结果如下:
图1
(2)在ANSYS数据库里建立与分析文件中变量相对应的参数
提取结果并赋值给相应的参数。这些参数一般为状态变量和目标函数。提取数据的操作用*GET命令(Utility Menu>Parameters>Get Scalar Data)实现。通常用POST1来完成本步操作,特别是涉及到数据的存储,加减或其他操作。
/POST1
SET,LAST
ETABLE,EVOL,VOLU !建立单元表,并取出每个单元的体积EVOL=每个单元的体积
PRNSOL,S,PRIN !列出节点的主应力
NSEL,U,LOC,X,0,230/H !选择介于0到230/H的节点
*GET,STRS,SORT,,MAX !取出最大的应力值并赋给strs
NSEL,ALL
SSUM !体积相加
*get,TVOL,ssum,,item,EVOL !取出结构总体积
TVOL=TVOL*2 !由于分析时只计算了结构的一半,总体积要乘2
NSEL,U,LOC,X,250/H,265/H !选择介于250/H到265/H的节点
PRNSOL,U,Y !列表显示出所选节点在y向的位移值
NSORT,U,Y,,1 !位移值升序排列
PRNSOL,U,Y !列出排序后的结果
*GET,DEFL,SORT,,MAX !取出最大的位移值赋给defl
*STATUS,PARM !显示当前参数变量的状态值
DEFL=ABS(DEFL)
DIF1=TK16-TK27 !设置参数值,以保证曲线的光滑性
DIF2=TK27-TK38
DIF3=TK38-TK49
lgwrite,scratch,lgw !将数据命令写成logfile
LGWRITE将数据库内部的命令流写到文件Jobname.LGW中。内部命令流包含了生成当前模型所用的所有命令。
(3)进入OPT,指定分析文件
/OPT
opanl,scratch,lgw !指定分析文件
(4)声明优化变量
允许有不超过60个设计变量和不超过100个状态变量,但只能有一个目标函数。对于设计变量和状态变量可以定义最大和最小值。目标函数不需要给定范围。每一个变量都有一个公差值,这个公差值可以由用户输入,也可以选择由程序计算得出,程序计算按照0.01x(max-min)。
opvar,TVOL,Obj,,,1/H !定义优化目标函数,收敛误差为1,结构总体积TVOL为目标函数
opvar,STRS,sv,,206E6 !定义状态变量即优化过程的约束条件,范围为0到12.5/H
opvar,DEFL,sv,,12.5/H
opvar,DIF1,sv,,1/H
opvar,DIF2,sv,,1/H
opvar,DIF3,sv,,1/H
opvar,TK16,dv,4/H,7/H !定义设计变量及其变化范围为4/H到7/H
opvar,TK27,dv,4/H,7/H
opvar,TK38,dv,4/H,7/H
opvar,TK49,dv,4/H,7/H
opsave,INITIAL,opt !保存所有的优化数据到文件optp里
(5)选择优化工具或优化方法
优化方法是使单个函数(目标函数)在控制条件下达到最小值的传统化的方法。有两种方法是可用的:零阶方法和一阶方法。
零阶方法(直接法):这是一个完善的零阶方法,使用所有因变量(状态变量和目标函数)的逼近。该方法是通用的方法,可以有效的处理绝大多数的工程问题。
一阶方法(间接法):本方法使用偏导数,即,使用因变量的一阶偏导数。此方法精度很高,尤其是在因变量变化很大,设计空间也相对较大时。但是,消耗的机时较多。
optype,SUBP !设置优化方式,子问题逼近算法,零阶算法
(6)指定优化循环控制方式
每种优化方法和工具都有相应的循环控制参数,比如最大迭代次数等。
OPSUBP,30 !指定迭代次数
(7)进行优化分析
在OPEXE执行时,优化循环文件(Jobname.LOOP)会根据分析文件生成。所有优化变量和其他参数在每次迭代后将存储在优化数据文件(Jobname.OPT)中。
opexe !执行优化
(8)看设计序列结果(OPT)和后处理(POST1/POST26)
PARSAV,,RSET1 !将参数的值输出到文件中且文件名为rset1
oplist,all,,1 !列表显示所有序列
/AXLAB,Y,TVOL !设置曲线输出时y轴的说明
plvaropt,TVOL !绘图显示目标函数随优化次数的变化规律
FINISH
/POST1
PLNSOL,U,SUM,0,1 !显示结构在优化后的总位移分布
PLNSOL,S,EQV,0,1 !显示结构在优化后的应力分布
FINISH
部分优化序列如图2:
图2
目标变量随迭代的变化如图3:
图3
优化后的总位移分布如图4:
图4
优化后的应力分布如图5:
图5
转自:http://blog.sina.com.cn/s/blog_6465f2ed0102x1i5.html
页:
[1]