ANSYS优化设计揭密(适合初学者)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ANSYS优化揭密

引子

时下ANSYS高手颇多,但还有很多FEA战友对ANSYS的优化过程用之不熟,这里抛砖引玉,写下自己对ANSYS优化模块的使用心得,不当之处敬请指正。

deform@smth

Aug. 14,2002 1.认识ANSYS优化模块

1.1 什么时候我需要它的帮忙?

什么是ANSYS优化?我想说明一个例子要比我在这里对你絮叨半天容易理解的多。

注意过普通的水杯吗?底面圆圆的,上面加盖的哪一种。仔细观察一下,你会发现比较老式的此类水杯有一个共同特点:底面直径=水杯高度。

图1 水杯的简化模型

为什么是这样呢?偷偷的告诉你:因为只有满足这个条件,才能在原料耗费最少的情况下使杯子的容积最大。可不是,在材料一定的情况下,如果水杯的底面积大,其高度必然就要小;如果高度变大了,底面积又大不了,如何调和这两者之间的矛盾?其实这恰恰就反应了一个完整的优化过程。

在这里,一个水杯的材料是一定的,所要优化的变量就是杯子底面的半径r 和杯子的高度h,在ANSYS的优化模块里面把这些需要优化的变量叫做设计变量(DV);优化的目标是要使整个水杯的容积最大,这个目标在ANSYS的优化过程里叫目标函数(OBJ);再者,对设计变量的优化有一定的限制条件,比如说整个杯子的材料不变,这些限制条件在ANSYS的优化模块中用状态变量(SV)来控制。

闲话少说,下面我们就来看看ANSYS中怎么通过设定DV、SV、OBJ,利用优化模块求解以上问题。

首先参数化的建立一个分析文件(我假设叫volu.inp),水杯初始半径为R =1,高度为H=1(DV),由于水杯材料直接喝水杯的表面积有关系,这里我假设水杯表面积不能大于100,这样就有S=2πRH+2πR2<100(SV),水杯的容积为V=πR2H (OBJ)。

File:volu.inp

R=1

H=1

S=2*3.14*R*H+2*3.14*R*R

V=10000/(3.14*R*R*H)

然后再建一个优化分析文件(我假设叫optvolu.inp),设定优化变量,并求解。

File:optvolu.inp

/clear,nostart

/input,volu,inp

/opt

opanl,volu,inp

opvar,R,dv,1,10,1e-2

opvar,H,dv,1,10,1e-2

opvar,S,sv,,100,1e-2

opvar,V,obj,,,1e-2

opkeep,on

optype,subp

opsave,optvolu,opt0

opexec

最后,哈,打开Ansys6.1,在命令输入框中键入”/input,optvolu,inp”,整个优化过程就开始了。

图2 ANSYS优化过程图

几秒钟的优化过程结束后,让我们来看一下优化的结果:

/opt

optlist,all

图3 优化结果1

上图中左右带*的SET 22是最优解,由此可以看出,要想在表面积一定的情况下使水杯容积最大,的确有这样一个规律 H=D=2*R。有兴趣的同志可以用求极值的方法演算一下,一定会得到相同的答案。(话外语:原来那些无盖的糖瓷盆有一个规律是H=R,也是为了满足瓷盆容积最大。)

ANSYS的优化模块是用来求解工程分析中的优化例子的,但上面一个例子说明即使这样于工程毫无关系纯数学极值问题,也能够轻松求解。不过在细节处会有一些技巧,后面再仔细分析。(其实用ANSYS的优化模块完全能解决数学上比较负责的极值问题,不过现在有了Matlab、Mathematica,大概也没有人愿意来用ANSYS献丑了)

1.2 ANSYS优化设计基础

前面写了一个例子,来说明ANSYS的基本优化过程。在这一节中,我们结合这个例子来说明一下优化模块中的一些概念。

1.2.1 优化模块中的三大变量:

设计变量(DV):即自变量。例子中的opvar,R,dv,1,10,1e-2就是用来定义一个设计变量R,其上限为10,下限为1,公差为10-2(公差和优化过程的收敛有关)。ANSYS优化模块中允许定义不超过60个设计变量。

状态变量(SV):用来体现优化的边界条件,是设计变量的函数。例子里面opvar,S,sv,,100,1e-2就是定义了一个状态变量S,它的上限为100,无下限,公差为10-2。从文件volu.inp中可以看到,S=2*3.14*R*H+2*3.14*R*R。可见,定义这样一个状态变量,即是限制水杯的表面积(可以认为表示材料的多少)不大于100。在ANSYS优化模块中用户可以定义不超过100个状态变量。

目标函数(OBJ):最终的优化目的。它必须是设计变量的函数,而且只能求其最小值。看到volu.inp里面目标函数的定义了吧V=10000/(3.14*R*R*H),为了把求最大体积转化为求最小值,只好对它求倒数了;如果知道目标函数的上限,还可以用一个大数减目标函数的方法来转换。例子中opvar,V,obj,,,1e-2就是定义了一个目标函数V,它的公差是10-2。

1.2.2 ANSYS优化模块中的两种求解模式

ANSYS优化模块的求解有两种运行模式,一种是在GUI方式下运行,即已经打开ANSYS的分析界面后进行分析;另一种是Batch模式,无需打开ANSYS分析界面,后台运行求解。

前面例子的运行过程其实就是一个典型的GUI方式体现,它涉及到两个重要的文件:一个就是类似volu.inp的ANSYS分析文件,如果是一个工程问题,该文件中应该有参数定义、参数建模、求解、结果提取、目标函数赋值的一个全过程(由于优化求解是一个不断跌代的过程,ANSYS分析文件其实是包涵了一个完整的循环)。另一个文件是类似optvolu.inp的优化控制文件,基本语句就那么几条,无非是定义三大变量、优化方式、优化控制等几条,用户拿过去稍稍替换下就可以用在不同的问题上。(注:细心的读者可能会提问,既然ANSYS分析文件包涵了一个完整的循环,但是整个优化过程中是要求设计变量不断改变的,每次循环都有一个参数重定义的过程,不会使设计变量恢复初始值吗?这一点勿用担心,正是由于有了另一个优化控制文件,优化过程只在第一次进行完全的参数定义工作,在后续循环中,优化控制文件中声明的设计变量定义将被忽略)。有了这样两个文件,简单的在命令窗口把优化控制文件输入进去(其中的opanl 命令会自动调用指定的ANSYS分析文件),就可以完成整个优化过程。以上说明的是完全使用命令流的GUI方式,至于如何在菜单中进行优化过程的定制,窃以为没有命令流方式快捷,这里就不再赘述了。

相关文档
最新文档