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

柔顺机构的拓扑优化

[复制链接]
发表于 2010-7-14 23:16:18 | 显示全部楼层 |阅读模式 来自 陕西西安
柔顺机构的拓扑优化:
看了一阵104 LINE COMPLIANT MECHANISM DESIGN CODE BY OLE SIGMUND, MAY 2002,但是感觉疑点重重,很不开窍,啥都不会,也没个人交流。诸位大虾,谁能跟我回答一下最简单柔顺机构的拓扑优化,反相器:
1,
为啥要在输入和输出端加两个弹簧,有用吗?程序中用这两个弹簧的思想还是不太理解
2,
目标函数应该是MAX Uout,可是我看程序中没有说求MAX Uout
3,
不知道大家看这个最简单的柔顺机构反相器咋样,我感觉有点不是很理解它的思想,Sigmund99行经典拓扑优化我还能看得懂,可是这个104的最简单的柔顺机构拓扑优化老是感觉有问题,它的目标是MAX Uoutdc=penal*x(ely,elx)^(penal-1)*Ue1`*
KE*Ue2,
就这些内容了吗?应该具体看看那些论文,谁具体谈一下,谢了!

郁闷,没人交谈,学习始终没长进!
 楼主| 发表于 2010-7-14 23:17:11 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
%%%% A 104 LINE COMPLIANT MECHANISM DESIGN CODE BY OLE SIGMUND, MAY 2002 %%%
function topm(nelx,nely,volfrac,penal,rmin);
% INITIALIZE
x(1:nely,1:nelx) = volfrac;
loop = 0;
change = 1.;
% START ITERATION
while change > 0.01
loop = loop + 1;
xold = x;
% FE-ANALYSIS
[U,c]=FE(nelx,nely,x,penal);
% OBJECTIVE FUNCTION AND SENSITIVITY ANALYSIS
[KE] = lk;
for ely = 1:nely
for elx = 1:nelx
n1 = (nely+1)*(elx-1)+ely;
n2 = (nely+1)* elx +ely;
Ue1 = U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);
Ue2 = U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],2);
dc(ely,elx) = penal*x(ely,elx)^(penal-1)*Ue1'*KE*Ue2;
end
end
% FILTERING OF SENSITIVITIES
[dc] = check(nelx,nely,rmin,x,dc);
% DESIGN UPDATE BY THE OPTIMALITY CRITERIA METHOD
[x] = OC(nelx,nely,x,volfrac,dc);
% PRINT RESULTS
change = max(max(abs(x-xold)));
disp([' It.: ' sprintf('%4i',loop) ' Obj.: ' sprintf('%10.4f',c) ...
' Vol.: ' sprintf('%6.3f',sum(sum(x))/(nelx*nely)) ...
' ch.: ' sprintf('%6.3f',change )])
% PLOT DENSITIES
colormap(gray); imagesc(-x); axis equal; axis tight; axis off;pause(1e-6);
end
%%%%%%%%%% OPTIMALITY CRITERIA UPDATE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [xnew]=OC(nelx,nely,x,volfrac,dc)
l1 = 0; l2 = 100000; move = 0.1;
while (l2-l1)/(l2+l1) > 1e-4 & l2>1e-40
lmid = 0.5*(l2+l1);
xnew = max(0.001,max(x-move,min(1.,min(x+move,x.*(max(1e-10,-dc./lmid)).^0.3))));
if sum(sum(xnew)) - volfrac*nelx*nely > 0;
l1 = lmid;
else
l2 = lmid;
end
end
%%%%%%%%%% MESH-INDEPENDENCY FILTER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [dcn]=check(nelx,nely,rmin,x,dc)
dcn=zeros(nely,nelx);
for i = 1:nelx
for j = 1:nely
sum=0.0;
for k = max(i-floor(rmin),1):min(i+floor(rmin),nelx)
for l = max(j-floor(rmin),1):min(j+floor(rmin),nely)
fac = rmin-sqrt((i-k)^2+(j-l)^2);
sum = sum+max(0,fac);
dcn(j,i) = dcn(j,i) + max(0,fac)*x(l,k)*dc(l,k);
end
end
dcn(j,i) = dcn(j,i)/(x(j,i)*sum);
end
end
%%%%%%%%%% FE-ANALYSIS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [U,Uout]=FE(nelx,nely,x,penal)
[KE] = lk;
K = sparse(2*(nelx+1)*(nely+1), 2*(nelx+1)*(nely+1));
F = sparse(2*(nely+1)*(nelx+1),2); U = sparse(2*(nely+1)*(nelx+1),2);
for elx = 1:nelx
for ely = 1:nely
n1 = (nely+1)*(elx-1)+ely;
n2 = (nely+1)* elx +ely;
edof = [2*n1-1; 2*n1; 2*n2-1; 2*n2; 2*n2+1; 2*n2+2; 2*n1+1; 2*n1+2];
K(edof,edof) = K(edof,edof) + x(ely,elx)^penal*KE;
end
end
% DEFINE LOADS AND SUPPORTS (HALF FORCE INVERTER)
din=1;
dout=2*nelx*(nely+1)+1;
F(din,1) = 1;
F(dout,2) = -1;
K(din,din)=K(din,din)+0.1;
K(dout,dout)=K(dout,dout)+0.1;
fixeddofs = union([2:2*(nely+1):2*(nely+1)*(nelx+1)],[2*(nelx+1)*(nely+1)-3]);
alldofs = [1:2*(nely+1)*(nelx+1)];
freedofs = setdiff(alldofs,fixeddofs);
% SOLVING
U(freedofs, = K(freedofs,freedofs) \ F(freedofs,;
U(fixeddofs,= 0;
Uout=U(dout,1);
%%%%%%%%%% ELEMENT STIFFNESS MATRIX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [KE]=lk
E = 1.;
nu = 0.3;
k=[ 1/2-nu/6 1/8+nu/8 -1/4-nu/12 -1/8+3*nu/8 ...
-1/4+nu/12 -1/8-nu/8 nu/6 1/8-3*nu/8];
KE = E/(1-nu^2)*[ k(1) k(2) k(3) k(4) k(5) k(6) k(7) k(8)
k(2) k(1) k(8) k(7) k(6) k(5) k(4) k(3)
k(3) k(8) k(1) k(6) k(7) k(4) k(5) k(2)
k(4) k(7) k(6) k(1) k(8) k(3) k(2) k(5)
k(5) k(6) k(7) k(8) k(1) k(2) k(3) k(4)
k(6) k(5) k(4) k(3) k(2) k(1) k(8) k(7)
k(7) k(4) k(5) k(2) k(3) k(8) k(1) k(6)
k(8) k(3) k(2) k(5) k(4) k(7) k(6) k(1)];
回复 不支持

使用道具 举报

发表于 2011-2-6 12:05:04 | 显示全部楼层 来自 湖北武汉
min Uout是对的,因为是x方向的反向位移做大。
弹簧的作用是明显的,模拟被接触件刚度,没有弹簧,很难做到反向位移最大。
Ue2是OK的,因为要计算节点位移敏度,推导采用伴随法。
Sigmund的程序是错误的!因为Y轴方向反了,对应变能最小化是没有问题的,对反向位移器的优化,结构分析对结果是有影响的。
qq709925682,有问题联系。
回复 不支持

使用道具 举报

发表于 2011-7-17 12:32:02 | 显示全部楼层 来自 四川成都
请问一下 柔顺机构是什么样的机构呢/ 不理解柔顺机构的含义。请赐教,多谢
回复 不支持

使用道具 举报

发表于 2011-7-17 12:37:57 | 显示全部楼层 来自 湖北武汉
本帖最后由 yygao56 于 2011-7-17 12:39 编辑

柔性机构是通过其部分或全部具有柔性的构件变形而产生位移的机械机构。无论是柔性机构还是刚性机构都用于传递或者转化运动,力或能量。与刚体连接机构不同的是,柔性机构不仅可以通过运动副的运动过程来获得可运动性,还可以从柔性部件的部分或者全部变形获得运动。
柔性机构传递力和运动具有的优点:
1)可以大量减少为完成特定目的而所需的部件数量,这些部件的减少可以简化制造过程降低制造和集成的时间和费用。
2)柔性机构可以不用或尽量少用铰链等运动副无摩擦、磨损、传动间隙不需润滑。刚体机构的转动和滑移连接引起的振动和噪声也可通过柔性机构来降低。
3)因为柔性机构依赖于柔性部件的变形因而能量被柔性部件以应变能的形式储存。这些存储的能量类似于弹簧变形中的内能将弹簧效应集成到柔性机构设计中。这很容易在后期或以不同的方式被用来存储或传送释放的能量。这种能量存储性质可能对特殊的力变形特性有用或引起一个机构趋向于特定位置。这种通过存储的弹性能产生精微的运动的能力,也使得柔性机构很适合于MEMS器件。
4)使用柔性机构可以比相应的刚体机构在质量方面有显著降低这在航空及其它应用中是一个显著的优点。
5)由于微观尺度效应,微观器件所受的非线性表面力要远远大于其惯性力。非线性表面力也是造成微观器件发生损毁的主要原因。微型柔性机构可通过整体的柔性设计大大降低这种表面力,所以在这种意义上柔性机构适合于MEMS环境。
6)柔性机构的另一个优点是很容易小型化这就使得柔性微型机构可以使用类似于集成电路制造的技术和材料来制造。微型柔性机构微尺度,无摩擦,无磨损等特点,使其很适合于MEMS系统。

4# wg6689

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-17 23:26:47 | 显示全部楼层 来自 上海浦东新区
本帖最后由 TYNGOD 于 2011-7-17 23:37 编辑

第一,柔性机构要具备运动功能,即柔性机构能产生一定的变形以满足其设计目标的运动要求;同时其还要具备结构功能,即柔性机构必须具有一定的刚性。以便把输入端的作用力传递给输出端的物体上。
第二,柔性结构一方面为了满足输出运动的要求,要具有足够的柔性;另一方面要具有足够的刚度以适应外界载荷。在柔性结构设计中,须同时考虑形变和最小变形能,即同时考虑结构的变形量与结构的刚性。
所以,柔性结构的拓扑优化设计是一个多目标优化设计问题。

下面举一个微夹钳例子:
微夹钳的设计区域如下图所示,长度为500mm,宽度为500mm,作用在结构左边中点的水平载荷为1N,材料的弹性模量E=1Pa,泊松比u=0.3,体积比上限值为25%,Kin=Kout=1.0N/m。
微夹钳的目标是把图中的左侧的输入位移转化为右侧的钳中的夹持动作。



拓扑优化结果如下图所示:




大家可以参考以下文章:
1、罗震. 基于变密度法的连续体结构拓扑优化设计技术研究.华中科技大学博士论文.2005
2、李震.柔性机构拓扑优化方法及其在微机电系统中的应用.大连理工大学博士论文.2005
3、Ole Sigmund. On the Design of Compliant Mechanisms Using Topology Optimization. Mech.Struct.& Mach. 1997

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-17 23:40:48 | 显示全部楼层 来自 上海浦东新区
6# TYNGOD




拓扑迭代过程,。。。上传个图片好难啊!!

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2011-7-19 01:28:52 | 显示全部楼层 来自 湖北武汉
本帖最后由 kmani 于 2011-7-19 04:38 编辑

我在optistruct里面试着做了下,╮(╯▽╰)╭,得到的结果和你们算的差别挺大的


就调整了一下参数,结果就变成这样了:中间多了一个棒


这是将输入力反向之后的结果图:貌似这种结果更好

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-19 09:24:00 | 显示全部楼层 来自 上海
赞一下kmani  
可以把.fem文件传上来给大家学习一下不?
回复 不支持

使用道具 举报

发表于 2011-7-19 12:24:07 | 显示全部楼层 来自 湖北武汉
本帖最后由 kmani 于 2011-7-23 02:08 编辑

9# zkong

我把他们的模型简化了一下:用恒力代替弹簧力(不会用弹簧)。
然后就是定义三个响应:体积比,柔度,钳子作用部分的竖直方向的位移;
四个约束:体积比为0.15,位移大于等于52.5mm,全局应力最大20Mp,模型上下对称;
一个目标函数:柔度最小;

具体计算时的设置:迭代步最高设为300,计算精度为0.002,离散系数,0.75,网格大小为4.
我不太清楚他们在编程计算时具体考虑了哪些约束,这些是按着自己的想法做的,感觉还有不少问题。

这是调整网格以及部分参数后的结果:
相应的fem:
一下是将力反向之后的结果图,图片的名称是一些主要参数
相应的fem:

因为看到这样的结果图里面存在许多单元宽度突变的地方,这样可能会疲劳断裂,于是又加了循环次数大于1000000的约束:

      
将离散系数由默认的1改为10之后,终于得到了与编程相似的结果;

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-19 13:50:19 | 显示全部楼层 来自 上海
10# kmani

Kmani, 学习啦!!牛!!
回复 不支持

使用道具 举报

发表于 2011-7-19 15:06:54 | 显示全部楼层 来自 湖北武汉
11# TYNGOD
过奖了,这个用OS做没有多大难度,多半时间是电脑再算,我就干别的事去了
回复 不支持

使用道具 举报

 楼主| 发表于 2011-8-22 15:56:49 | 显示全部楼层 来自 陕西西安
这么多人回复,感谢!!!
回复 不支持

使用道具 举报

发表于 2011-9-23 12:14:54 | 显示全部楼层 来自 北京
学习了
偶也是初学者
崇拜
回复 不支持

使用道具 举报

发表于 2011-11-13 08:36:28 | 显示全部楼层 来自 北京
博大精深阿,自己也在摸索这方面东西,也承蒙论坛里几位老师的指点
但是我还有几个疑问
1)如果微机构,尺寸可能是um了,自己感觉只是个比例问题,但是采用默认的单位制,在建模的时候转化成了mm,比如500um*500um,我就转化成0.5mm*0.5mm,但是结果显示不出来,不知道这方面怎么处理的。
2)6#的TYNGOD 中的弹簧那个是额外加的么,为什么要采用这么一种处理方式阿?
3)7#楼处的动画怎么实现的哦?

初学者问题比较多,也许比较可笑,往前辈们不吝赐教!谢谢
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 12:20 , Processed in 0.062164 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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