独善其身 发表于 2016-5-4 11:01

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]
查看完整版本: ANSYS的形状优化过程