找回密码
 注册
Simdroid-非首页
查看: 4314|回复: 62

[OptiStruct] 如何同时满足质量和应变能最小?

[复制链接]
发表于 2011-9-28 15:02:39 | 显示全部楼层 |阅读模式 来自 安徽芜湖
对于一个拓扑结构,如何同时满足质量和应变能最小?
发表于 2011-11-24 21:25:44 | 显示全部楼层 来自 上海
Simdroid开发平台
可以考虑设计一个新的评价变量,比如汽车设计中经常会要求车身扭转刚度很大,而质量要求很轻,通常设计一个新变量称为轻量化系数K=扭转刚度/质量,使得K最大就行了,让程序自己去寻找满足K最大来平衡设计,扭转刚度可以进一步表示为转角的函数,这样最后就转化为K是一个与扭转角和质量的函数,因为质量在分母上,固定刚度值,肯定是质量越小K越大,另一方面,质量一定,扭转刚度越大K越大,那么两个同时变化就让程序自己去挑选,这样构造出来的函数就可以用来表征两个目标,以其寻找一个同时满足两个要求的平衡值。其实这个函数不一定要有物理意义。

评分

1

查看全部评分

回复 7 不支持 0

使用道具 举报

发表于 2011-10-26 21:48:15 | 显示全部楼层 来自 上海浦东新区
本帖最后由 zkong 于 2011-10-26 21:49 编辑

我对多学科优化了解不多,以我有限的认识,所谓多学科优化只不过是在不同的物理域求解响应,而共享设计变量 ,比如调整一个设计参数,影响结构机械性能的同时,也影响热、磁、气动等性能。 广义上来看,不管涉及到多少个物理域,抽象到数学层面,每个物理域的响应都是对设计变量的函数,最后还是绕不开多目标优化的问题。 所以,在我看来多学科只是玩一个概念和噱头而已,在数学上并不是一个新的问题;多目标优化的算法可以应用于多学科优化,但是,反过来,多学科优化的研究成果不可能对多目标优化问题有什么贡献。

只要涉及到多目标,大部分问题都没有唯一解,要么通过主观的加权,得到单一的目标函数,要么得到一组解(每个解对不同的目标的权重不同),让用户自己去选择自己更喜欢的。

点评

我看到最热情最详细,最有见解的师傅  发表于 2015-6-27 14:27
回复 4 不支持 0

使用道具 举报

发表于 2011-9-29 11:43:40 | 显示全部楼层 来自 上海
两种方法,通过加权把两个目标定义为单一目标。

1. 把质量和应变能定义为DRESP1, 用DRESP2 定义一个公式  DRESP2 = w1 * MASS + w2 * Compliance

2. DOBJREF, 同样需要给一个主观的权重 (NEGREF/POSREF).

不管用哪种定义方式,权重是有主观因素的,在质量和刚度中间找到一个平衡点。 一般建议把有明确设计要求的设为约束, 另一个设置为目标。

应变能一般适合做目标函数(不适合做约束,因为很少有实际问题提出应变能的设计要求)。



评分

1

查看全部评分

回复 2 不支持 0

使用道具 举报

发表于 2013-11-5 09:50:23 | 显示全部楼层 来自 湖北武汉
nibam11 发表于 2012-8-29 11:55
你好,请问怎样把应变能和频率放在同一个优化模型之中,应变能是静强度工况中的,频率是模态工况中的,如 ...

典型问题,用compliance index
回复 1 不支持 0

使用道具 举报

 楼主| 发表于 2011-9-29 09:44:42 | 显示全部楼层 来自 安徽芜湖
是啊,是个多目标的问题,不知道在optistruct中如何实现,我看到有人实现了应变能和频率多目标的问题,所以想问问质量和应变能同时最小怎么实现
回复 1 不支持 0

使用道具 举报

发表于 2011-9-28 18:03:43 | 显示全部楼层 来自 湖北武汉
应变能最小作为目标函数,体积作为约束函数。算不算基本上满足了要求?
回复 不支持

使用道具 举报

发表于 2011-9-28 18:43:27 | 显示全部楼层 来自 湖北宜昌
本帖最后由 shalldy 于 2011-9-28 18:44 编辑

这不是标准的拓扑优化问题么,很简单,版主已经回答了。
回复 不支持

使用道具 举报

发表于 2011-9-28 21:31:37 | 显示全部楼层 来自 江苏镇江
1、体积比作为约束函数
2、体积大小作为约束函数的话,必须先计算出体积。然后设置体积响应 小于计算的体积大小。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-29 07:59:15 | 显示全部楼层 来自 安徽芜湖
我也是这样做的,可体积比如果设置为0.3或者0.5,优化出来的结果明显不一样,说明体积不是最小的,怎样能保证应变能最小的情况下,体积也是最小呢?
回复 不支持

使用道具 举报

发表于 2011-9-29 08:11:05 | 显示全部楼层 来自 湖北武汉
tigerwards 发表于 2011-9-29 07:59
我也是这样做的,可体积比如果设置为0.3或者0.5,优化出来的结果明显不一样,说明体积不是最小的,怎样能保 ...

体积比不同的时候,优化结果确实会明显不同了。
所以一般是固定一个体积比的情况下计算得出结果~~

总版主的意思是体积最小作为约束,同时应变能最小,感觉有两个目标函数。。。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-29 09:46:03 | 显示全部楼层 来自 安徽芜湖
还请zkong版主出手回答我的问题,谢谢了
回复 不支持

使用道具 举报

发表于 2011-9-29 16:25:45 | 显示全部楼层 来自 江苏镇江
w1 * MASS + w2 *Compliance,,好像很难确定这个加权系数  吧。。。质量和应变能  压根风马牛不相及。量纲也不一样。。

这个加权系数   不好整出来。。。
回复 不支持

使用道具 举报

发表于 2011-10-8 07:34:07 | 显示全部楼层 来自 北京
你可以把目标函数进行归一化处理,这样稍微好点。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-8 08:15:35 | 显示全部楼层 来自 安徽芜湖
楼上的大哥,请问怎么进行归一化处理呢?我没弄过,能不能详细说说呢?
回复 不支持

使用道具 举报

发表于 2011-10-12 23:59:30 | 显示全部楼层 来自 上海
归一化可以把质量除以初始质量,Compliance除以初始的compliance。这样把两个数字调整到一个数量级上1.0左右,然后用w1,w2 相对更有意义一点。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-13 09:01:52 | 显示全部楼层 来自 安徽芜湖
那怎样得到每一步迭代的质量和应变能?
回复 不支持

使用道具 举报

发表于 2011-10-14 08:40:20 | 显示全部楼层 来自 湖北武汉
tigerwards 发表于 2011-10-13 09:01
那怎样得到每一步迭代的质量和应变能?

以应变能作为目标函数的时候,质量(或体积)作为约束。每一步的目标函数的值,约束函数的值是可以知道的吧...
回复 不支持

使用道具 举报

发表于 2011-10-14 09:35:29 | 显示全部楼层 来自 上海
tigerwards 发表于 2011-10-13 09:01
那怎样得到每一步迭代的质量和应变能?

这不应该是一个问题,你优化这些响应,软件肯定会计算和报告这些数值的。

一般在.out文件中可以看到。

或者在HM中就可以计算模型的总质量,做一次分析就能知道总应变能。

回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-15 08:29:42 | 显示全部楼层 来自 安徽芜湖
我的意思是要是编公式进行计算的话,每一步迭代的质量就是个变值,我在out文件中可以看到这些,但是我怎么让计算机知道我要使用这些变量,或者说我如何引用out文件中每一步迭代的质量
回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-15 08:29:56 | 显示全部楼层 来自 安徽芜湖
我的意思是要是编公式进行计算的话,每一步迭代的质量就是个变值,我在out文件中可以看到这些,但是我怎么让计算机知道我要使用这些变量,或者说我如何引用out文件中每一步迭代的质量
回复 不支持

使用道具 举报

发表于 2011-10-15 09:32:50 | 显示全部楼层 来自 上海
本帖最后由 zkong 于 2011-10-15 12:56 编辑

你的公式是  OBJ = w1 * MASS /  MASS0  + w2 * COMP / COMP0

w1, w2 是权重, MASS0和COMP0 是初始设计的质量和总应变能 (它们在你的目标函数中是常数, 不随着优化迭代而改变),MASS和COMP是质量和应变能响应(随着优化迭代改变)

MASS0 - 你可以用HM中的"Mass calc"工具,也可以用指定OptiStruct做一次分析(不做优化),这样在.out文件中也会输出质量(mass = ...), 把这个数字记下来 (比如 2.345);
COMP0 通过一次分析也可以得到,把这个数字记下来 (比如 6.789)。

假设你取w1=0.5, w2=0.5, 那么优化的目标函数可以定义为:
OBJ = w1 * MASS /  MASS0  + w2 * COMP / COMP0 = 0.5 * MASS / 2.345 + 0.5 * COMP / 6.789 = (0.5/2.345) * MASS + (0.5/6.789) * COMP,

你可以把 (0.5/2.345) 和 (0.5/6.789) 作为修正后的w1'  和  w2'  定义到你的公式里。




回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-15 10:59:49 | 显示全部楼层 来自 安徽芜湖
谢谢了,我来试试看
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 05:08 , Processed in 0.048625 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表