声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 工程软件 Ansys 查看内容

ANSYS的形状优化过程

2016-5-11 11:14| 发布者: yzhan79| 查看: 722| 评论: 0|原作者: 不详|来自: 新浪CAE学习笔记的博客

摘要:   1 概述   优化设计是一种寻找确定最优设计方案的技术。所谓“最优设计”,指的是一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。也就是说,最优设计方案就是一个 ...

  1 概述

  优化设计是一种寻找确定最优设计方案的技术。所谓“最优设计”,指的是一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。也就是说,最优设计方案就是一个最有效率的方案。

  ANSYS程序提供了两种优化的方法,这两种方法可以处理绝大多数的优化问题。零阶方法是一个很完善的处理方法,可以很有效地处理大多数的工程问题。一阶方法基于目标函数对设计变量的敏感程度,因此更加适合于精确的优化分析。

  2 关键词

  设计变量:优化结果的取得就是通过改变设计变量的数值来实现的
  状态变量:约束设计的数值
  目标函数:设计变量的函数,也就是说,改变设计变量的数值将改变目标函数的数值。
  设计变量,状态变量和目标函数总称为优化变量。
  分析文件:命令流输入文件,包括一个完整的分析过程(前处理,求解,后处理)。它必须包含一个参数化的模型,用参数定义模型并指出设计变量,状态变量和目标函数。
  一次循环:指一个分析周期,可以理解为执行一次分析文件。
  优化数据库:优化数据库记录当前的优化环境,包括优化变量定义,参数,所有优化设定,和设计序列集合。

  3 过程

  (1)生成循环所用的分析文件

  该文件必须包括整个分析的过程。可以对设计的任何方面进行优化:尺寸,形状,材料性质,支撑位置,所加载荷等,唯一要求就是将其参数化。设计变量可以在程序的任何部分初始化,一般是在PREP7中定义。这些变量的初值只是在设计计算的开始用得到,在优化循环过程中会被改变。

  建模求解如下:
  1.   /PREP7

  2.   H=1000

  3.   TK16=6.35/H !设置参数变量并附初值

  4.   TK27=6.35/H

  5.   TK38=6.35/H

  6.   TK49=6.35/H

  7.   TK50=4/H

  8.   ET,1,PLANE42

  9.   MP,EX,1,6.89E10

  10.   MP,NUXY,1,0.3

  11.   K,1

  12.   K,5,254/H

  13.   KFILL ! 在第1至第5个关键点之间生成2,3,4关键点

  14.   K,6,,TK16

  15.   K,7,63.5/H,TK27

  16.   K,8,127/H,TK38

  17.   K,9,190.5/H,TK49

  18.   K,10,254/H,TK50

  19.   SPLINE,6,7,8,9,10

  20.   L,1,6

  21.   L,2,7

  22.   L,3,8

  23.   L,4,9

  24.   L,5,10

  25.   LSEL,S,LINE,,5,9

  26.   LESIZE,ALL,,,1

  27.   LSEL,ALL

  28.   A,1,2,7,6

  29.   A,2,3,8,7

  30.   A,3,4,9,8

  31.   A,4,5,10,9

  32.   ESIZE,,4

  33.   AMESH,ALL

  34.   /SOLU

  35.   NSEL,S,LOC,Y

  36.   DSYM,SYMM,X !对选择的节点施加x方向的对称约束

  37.   NSEL,S,LOC,X

  38.   DSYM,ASYM,Y !对选择的节点施加x方向的反对称约束

  39.   NSEL,ALL

  40.   FK,10,FX,66725*4 !在10号关键点施加集中载荷,实现弯矩

  41.   DK,1,ALL,0 !在1号关键点施加全约束

  42.   SOLVE

  43.   FINISH
复制代码

  第一主应力结果如下:

[attach]74140[/attach]
  图1

  (2)在ANSYS数据库里建立与分析文件中变量相对应的参数


  提取结果并赋值给相应的参数。这些参数一般为状态变量和目标函数。提取数据的操作用*GET命令(Utility Menu>Parameters>Get Scalar Data)实现。通常用POST1来完成本步操作,特别是涉及到数据的存储,加减或其他操作。

  1.   /POST1

  2.   SET,LAST

  3.   ETABLE,EVOL,VOLU !建立单元表,并取出每个单元的体积EVOL=每个单元的体积

  4.   PRNSOL,S,PRIN !列出节点的主应力

  5.   NSEL,U,LOC,X,0,230/H !选择介于0到230/H的节点

  6.   *GET,STRS,SORT,,MAX !取出最大的应力值并赋给strs

  7.   NSEL,ALL

  8.   SSUM !体积相加

  9.   *get,TVOL,ssum,,item,EVOL !取出结构总体积

  10.   TVOL=TVOL*2 !由于分析时只计算了结构的一半,总体积要乘2

  11.   NSEL,U,LOC,X,250/H,265/H !选择介于250/H到265/H的节点

  12.   PRNSOL,U,Y !列表显示出所选节点在y向的位移值

  13.   NSORT,U,Y,,1 !位移值升序排列

  14.   PRNSOL,U,Y !列出排序后的结果

  15.   *GET,DEFL,SORT,,MAX !取出最大的位移值赋给defl

  16.   *STATUS,PARM !显示当前参数变量的状态值

  17.   DEFL=ABS(DEFL)

  18.   DIF1=TK16-TK27 !设置参数值,以保证曲线的光滑性

  19.   DIF2=TK27-TK38

  20.   DIF3=TK38-TK49

  21.   lgwrite,scratch,lgw !将数据命令写成logfile
复制代码

  LGWRITE将数据库内部的命令流写到文件Jobname.LGW中。内部命令流包含了生成当前模型所用的所有命令。

  (3)进入OPT,指定分析文件

  /OPT
  opanl,scratch,lgw !指定分析文件

  (4)声明优化变量


  允许有不超过60个设计变量和不超过100个状态变量,但只能有一个目标函数。对于设计变量和状态变量可以定义最大和最小值。目标函数不需要给定范围。每一个变量都有一个公差值,这个公差值可以由用户输入,也可以选择由程序计算得出,程序计算按照0.01x(max-min)。

  1.   opvar,TVOL,Obj,,,1/H !定义优化目标函数,收敛误差为1,结构总体积TVOL为目标函数

  2.   opvar,STRS,sv,,206E6 !定义状态变量即优化过程的约束条件,范围为0到12.5/H

  3.   opvar,DEFL,sv,,12.5/H

  4.   opvar,DIF1,sv,,1/H

  5.   opvar,DIF2,sv,,1/H

  6.   opvar,DIF3,sv,,1/H

  7.   opvar,TK16,dv,4/H,7/H !定义设计变量及其变化范围为4/H到7/H

  8.   opvar,TK27,dv,4/H,7/H

  9.   opvar,TK38,dv,4/H,7/H

  10.   opvar,TK49,dv,4/H,7/H

  11.   opsave,INITIAL,opt !保存所有的优化数据到文件optp里
复制代码

  (5)选择优化工具或优化方法

  优化方法是使单个函数(目标函数)在控制条件下达到最小值的传统化的方法。有两种方法是可用的:零阶方法和一阶方法。
  零阶方法(直接法):这是一个完善的零阶方法,使用所有因变量(状态变量和目标函数)的逼近。该方法是通用的方法,可以有效的处理绝大多数的工程问题。
  一阶方法(间接法):本方法使用偏导数,即,使用因变量的一阶偏导数。此方法精度很高,尤其是在因变量变化很大,设计空间也相对较大时。但是,消耗的机时较多。
  optype,SUBP !设置优化方式,子问题逼近算法,零阶算法

  (6)指定优化循环控制方式

  每种优化方法和工具都有相应的循环控制参数,比如最大迭代次数等。
  OPSUBP,30 !指定迭代次数

  (7)进行优化分析

  在OPEXE执行时,优化循环文件(Jobname.LOOP)会根据分析文件生成。所有优化变量和其他参数在每次迭代后将存储在优化数据文件(Jobname.OPT)中。
  opexe !执行优化


  (8)看设计序列结果(OPT)和后处理(POST1/POST26)

  1.   PARSAV,,RSET1 !将参数的值输出到文件中且文件名为rset1

  2.   oplist,all,,1 !列表显示所有序列

  3.   /AXLAB,Y,TVOL !设置曲线输出时y轴的说明

  4.   plvaropt,TVOL !绘图显示目标函数随优化次数的变化规律

  5.   FINISH

  6.   /POST1

  7.   PLNSOL,U,SUM,0,1 !显示结构在优化后的总位移分布

  8.   PLNSOL,S,EQV,0,1 !显示结构在优化后的应力分布

  9.   FINISH
复制代码

  部分优化序列如图2:

[attach]74141[/attach]
  图2


  目标变量随迭代的变化如图3:

[attach]74142[/attach]
  图3


  优化后的总位移分布如图4:

[attach]74143[/attach]
  图4


  优化后的应力分布如图5:

[attach]74144[/attach]
  图5



最新评论

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-10 09:45 , Processed in 0.030832 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部