有关多目标优化设计完整过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有关多目标优化设计完整过程
由于做项目,我在仿真论坛上搜索过N次,只是查到说多目标要用加权和方法。但是没有具体步骤,经过一些时间郁闷,看了几天的help,终于搞出来了。
我的经验如下,不一定正确(我个人感觉是正确的),我用的是9.0版。我只是把我发现在问题,解决问题的过程说出来,可能语句不太通顺。
1. 我们用optistruct时只能有一个objective.如下图:
我只用过min,其他三个我没有用过。特别是后两个,谁用过说一下。
2.我们可以设置多个response,可以把很多response用dconstraint约束,但是只能有一个objective。有时我们需要同时满足某几个response的最小值或是最大值。但是deconstraint 只能设置response的上限或是下,不能设置为min或是max。(听说可以将上限和下限设置成相近的值可以使约束近似定为某一确定的值)。
3.多目标其实在help里有说明,如下。
DRESP2 – Design Response via equations for design optimization
Description
When a desired response is not directly available from OptiStruct, it may be calculated using DRESP2. This response can be a functional combination of any set of responses that are the result of a design analysis iteration. These responses can be used as a design objective or as design constraints. The DRESP2 card identifies the equation to use for the response relationship and the input values to evaluate the response function.
我看过一些论文,现在还没有什么新的理论可以实现多目标(可能我没有发现),现在对多目标的处理情况是response用函数关联起来,将不同的response设置为函数的变量,把多目标处理成为一个单目标。方程形式如下:f=w1*response1+w2*response2
W1,w2 为权值。
Optistruct 中就是如此处理的,
首先在dequation
中设置方程,如下图:
我对设置方程还有些地方没有弄明白,我只是举个简单的例子。(希望哪位高人能把编辑方程的详细过程,及要注意的地方,单独发个帖子,特别是复杂的方程的编写过程。)
4. 写方程。
我以单工况情况下最小化compliance 和最大化一阶固有频率为例子,(这个最简单,多工况的情况,和这个差不多).
写方程时,我们不能简单的将方程写成f=w1*response1+w2*response2形式,因为
w1*response1的值和w2*response2值可能会相差太大,并且两者的值很可能不是同时变大或是同时变小。所以我们要对两个response 作一定的数学处理。(至于为什么要这样,大家可以想明白)。数学处理的方法很简单,我主要是通过看这篇论文想到的: 汽车车架结构多目标拓扑优化方法研究 范文杰,范子杰,苏瑞意 (强烈推荐) Multiobjective optimal topology design of structures T.-Y . Chen, S.-C. Wu
Uni®ed topology design of static and vibrating structures using multiobjective optimization Seungjae Min, Shinji Nishiwaki, Noboru Kikuchi
1min 2222max 2max min 1max min ()()min (){[](1)[]}m
k k k k k k C C F w w w C C ρρρ=-Λ-Λ=+--Λ-Λ∑ (1) 至于为什么这样处理,都至少是本科生了,这个我想不需要说明(数学处理的方法肯定不只这一种,这个比较简单,也好理解,谁要是有其他的处理方法,大家讨论一下) 这里只讨论一个工况情况下,k=1,k w =1, 方程1里面的参数自己看论文去。 1()C ρ是我们设置的参数,为柔度,
max 1C 怎么得到:以原模型做分析,原模型的柔度应该是最小的,因为我们要减小模型的柔度,提高刚度。它的值可以在out 文件中取得。
min 1C 怎么得到:将增加了设计区域的模型进行拓扑优化,objective 设为compliance 最小,经过优化可以得到最小的compliance 值,out 文件中可以取得。
()ρΛ为我们设置的变量,一阶固有频率。
max Λ怎么得到:将增加了设计区域的模型进行拓扑优化,objective 设为frequency 最大,out 文件中可以得到优化后最大值。
min Λ怎么得到:将原模型进行分析,得出的值为最小值,因为我们要得到比这个大的值。
W为权值,0至1之间,我们可以设置不同的权值,得出不同的结果,然后作出比较。写方程:
我是用
这在help里面有,大家自己看。
x1-10123-x2
f(x1,x2)=rss(0.3*(),0.7*())
100-10123-60
注意左边必需有变量的列表,我当时就搞了好久才试出来。我对编写方程不熟,看了好久也没有完全搞懂,很希望有位高手出来说说。
5.将方程中的变量和要优化的response联系起来。
(1)首先要定义要用到的response,本例中是compliance最小,和frequency最大。(2)然后定义一个类型为function的response。
(3)在dequation中选已经定义的方程。其他有关no regiond之类的设置我不懂,大家讨论。
(4)点击edit.