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

[OptiStruct] 柔性机构拓扑优化

[复制链接]
发表于 2013-12-3 17:04:15 | 显示全部楼层 |阅读模式 来自 陕西西安
位移作为约束或目标时怎么确定它的方向?反相器:
在图右是原始设计区域,左侧上下固定,中间受力,右侧中间点(图中黑点)有位移输出,当要求此点位移输出(要求向左)作为目标时,怎么设置目标函数呢,以及相应的约束呢?
图左是我优化出来的结果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2013-12-3 17:09:15 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
fem文件如下, 图片entities可以看到我的设置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-3 17:16:48 | 显示全部楼层 来自 陕西西安
If the objective is a function, how to set it in a topolgy problem? Several obstacles have occered when I have a try in compliant mechanisms. Hope you who know and best master the optistruct can help me improve and thanks very much.
回复 不支持

使用道具 举报

发表于 2013-12-6 00:39:59 | 显示全部楼层 来自 湖南长沙
本帖最后由 202 于 2013-12-6 11:54 编辑

设计目标:要求黑点向左(Y轴负方向)位移最大化
所以响应之一为:节点141位移响应disp,方向为dof2(Y轴)
目标函数为min(disp) ,disp最小,即Y轴负方向最大值(节点141为图中黑点)

目标函数迭代过程:



节点141位移值从0.006迭代到-3.74(Y轴方向)

体积迭代过程:


最终体积为vol=201(volf=0.125)

------------------------------------------------------
原模型中体积响应为VOL,即总体积
约束为:vol>0.3  (体积下限值0.3)
而设计区域的总体积为1600
0.3相对于1600太小,且约束的为体积下限


改体积响应为volf,约束改为体积分数上限volf<0.3。
优化结果:


目标函数迭代过程:



节点141最终位移为-3.82
体积分数迭代过程为:

最终体积分数vol=0.134 (vol=214)
----------------------------------------------------------------
一个问题,在这里约束体积下限或下限,只要选值合适,迭代结果差不多。
但一般拓扑优化问题出于轻量化目的都会约束体积上限。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 16:00:45 | 显示全部楼层 来自 陕西西安
202 发表于 2013-12-6 00:39
设计目标:要求黑点向左(Y轴负方向)位移最大化
所以响应之一为:节点141位移响应disp,方向为dof2(Y轴) ...

目标:min(disp)就能使得node141(黑点)向左最大吗?
回复 不支持

使用道具 举报

发表于 2013-12-7 16:12:57 | 显示全部楼层 来自 湖南长沙
prograck 发表于 2013-12-7 16:00
目标:min(disp)就能使得node141(黑点)向左最大吗?

disp最小即Y方向负值最大,向左最大
可以看目标函数的迭代过程,从0到-3.7

点评

可以加你QQ吗? qq2765059838  发表于 2013-12-7 16:51
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 16:31:13 | 显示全部楼层 来自 陕西西安
202 发表于 2013-12-6 00:39
设计目标:要求黑点向左(Y轴负方向)位移最大化
所以响应之一为:节点141位移响应disp,方向为dof2(Y轴) ...

为什么我做的时候: error: all the sensitives of response 3( objective) are zero.
response 2 : volfrac
response 3 : disp(node141)  
objective : min disp   
dconstraints : volfrac upper bound: 0.3
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 16:35:06 | 显示全部楼层 来自 陕西西安
error: all the sensitives of response 3( objective) are zero.
response 1 which was global compliance was deleted by me.  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 16:36:39 | 显示全部楼层 来自 陕西西安
202 发表于 2013-12-7 16:12
disp最小即Y方向负值最大,向左最大
可以看目标函数的迭代过程,从0到-3.7

你能把你的fem文件贴上来吗?

点评

202
不怎么用Q,有问题可站短  发表于 2013-12-7 18:01
回复 不支持

使用道具 举报

发表于 2013-12-7 17:05:38 | 显示全部楼层 来自 湖南长沙
prograck 发表于 2013-12-7 16:36
你能把你的fem文件贴上来吗?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

点评

那我的错在哪里了呢?  发表于 2013-12-7 17:23
那我的错在哪里了呢?  发表于 2013-12-7 17:18
回复 不支持

使用道具 举报

发表于 2013-12-7 17:53:03 | 显示全部楼层 来自 湖南长沙
本帖最后由 202 于 2013-12-7 18:03 编辑
prograck 发表于 2013-12-7 16:35
error: all the sensitives of response 3( objective) are zero.
response 1 which was global complianc ...

1.将Y方向的力从约束组件“constraint”移出至“force”组件,可运行优化计算
拓扑结果如下:

位移到10的n次方,应该是优化结果不连续,中间段单元缺失

2.去除设计参数中的最小成员尺寸控制“mindim=2”
拓扑结果:


位移结果:

位移最大值166

节点141Y轴向位移迭代结果:


最终目标点Y轴位移-1.21(其X轴位移为-7.13)
加了一个X方向的力,但位移响应仅考虑了Y轴向响应,所以最终结果不协调。
-------------------------------------------------------
加最小成员尺寸控制参数,单元需细化
优化目标不能只考虑Y轴向位移


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 21:20:25 | 显示全部楼层 来自 陕西西安
本帖最后由 prograck 于 2013-12-7 21:53 编辑
202 发表于 2013-12-7 17:53
1.将Y方向的力从约束组件“constraint”移出至“force”组件,可运行优化计算
拓扑结果如下:

1.将Y方向的力从约束组件“constraint”移出至“force”组件==》 什么意思?原来的力100N(y轴正向)本来就加载在载荷集中器force啊,什么叫做从constrait里移出,再说constraint里加载的是约束啊,哪里有什么力??
2.error: all the sensitives of response 3( objective) are zero 我的模型和你的不差不多嘛,怎么会有这种error?
3.位移到10的n次方,应该是优化结果不连续,中间段单元缺失===》经常出现这种情况,displacement能跳到非常大,为什么呢?中间单元缺失是什么意思?
4.从上面地方可以学习相应的hyperworks 操作详细理解。你说的这些方法在哪里可以查阅到?
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 21:36:11 | 显示全部楼层 来自 陕西西安
202 发表于 2013-12-7 17:53
1.将Y方向的力从约束组件“constraint”移出至“force”组件,可运行优化计算
拓扑结果如下:

能不能把你做的fem文件也贴上,我好查看理解,有些话语说的不能理解啊。
回复 不支持

使用道具 举报

发表于 2013-12-7 22:27:40 | 显示全部楼层 来自 湖南长沙
prograck 发表于 2013-12-7 21:36
能不能把你做的fem文件也贴上,我好查看理解,有些话语说的不能理解啊。 ...


1.你模型中两个力不在同一个组件,其中一个在约束的组件中,你可以认真查看
2.error: all the sensitives of response 3( objective) are zero 这个是因为位移响应两次迭代结果都为零,所以计算中断
把力移出约束组件以后disp响应不再为零,可以顺利迭代
3.位移到10的n次方,约束不足,所以应该是拓扑结果单元不连续。这里主要是由于设置了最小成员尺寸,去掉尺寸约束后位移结果趋于正
4.hyperworks有一个进阶教程系列的参考书,其中有讲OS的,另外就是帮助文档了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

点评

把力移出约束组件以后disp响应不再为零,可以顺利迭代 这句话啥意思:力也有可能加载在constraint里面吗  发表于 2013-12-7 22:58
载荷器constraint里不是只能加约束吗,怎么可能加力 啊  发表于 2013-12-7 22:47
我只设置了一个力 啊  发表于 2013-12-7 22:34
回复 不支持

使用道具 举报

发表于 2013-12-7 22:46:19 | 显示全部楼层 来自 湖南长沙
prograck 发表于 2013-12-7 21:36
能不能把你做的fem文件也贴上,我好查看理解,有些话语说的不能理解啊。 ...




你在2楼和8楼传的文件不一样

8楼有两个力,请认真查看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2013-12-7 22:57:41 | 显示全部楼层 来自 湖南长沙
202 发表于 2013-12-7 22:27
1.你模型中两个力不在同一个组件,其中一个在约束的组件中,你可以认真查看
2.error: all the sensitiv ...

一个cardimage为空的载荷集,可以放置力,也可以放置约束,所以两者在同一个载荷集也可以定义。就像一个组件里可以既有壳单元又有实体单元
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 23:03:44 | 显示全部楼层 来自 陕西西安
好像真是的,这可能是因为加载时没有 make Force current, 而是让 Constraint current了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2013-12-7 23:06:35 | 显示全部楼层 来自 湖南长沙
cardimage为空的载荷集,就像没有特殊标签的纸箱,可以放置任何不需标签的物品。
这个箱子叫什么名字和它能装什么东西毫无关系。
你可以把力定义在叫“constraint”的载荷集里
也可以把约束定义在叫“force”的载荷集里
这些都可以做实例去验证
回复 不支持

使用道具 举报

 楼主| 发表于 2013-12-7 23:17:57 | 显示全部楼层 来自 陕西西安
这种又是什么错误?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2013-12-7 23:27:46 | 显示全部楼层 来自 湖南长沙
prograck 发表于 2013-12-7 23:17
这种又是什么错误?

大部分都是约束不足导致模型整体刚体位移

点评

看我的21楼  发表于 2013-12-8 11:25
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-5 02:32 , Processed in 0.052213 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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