周纯家 发表于 2011-8-31 17:31:29

【悬赏求答案】抗横向干扰(柔度最大化)拓扑优化matlab

本帖最后由 yygao56 于 2011-9-1 09:00 编辑



========by yygao56=============
这个帖子的问题专业性太强,故悬赏求高手的答案
积分+仿真币
赏金或许没有太多实际的用途,但较高的积分和仿真币也是Simwe论坛里实力的见证

yygao56 发表于 2011-8-31 18:21:09

本帖最后由 yygao56 于 2011-8-31 18:21 编辑

问题1,2:
目标函数1和目标函数2是倒数关系
而你的优化目标正好是一个求目标函数最大化设计,一个求目标函数最小化设计。
从你两个曲线图来看,其收敛结果也正好一个是另一个的倒数,其目标函数,约束函数什么的等于是一回事
所以最终优化的拓扑结构相同。
问题3:
柔度最大化怕是不好求,柔度最大,即刚度最小,或者说是应变能最大。
这样等于是求最差的结构是什么,对工程实际没有什么意义;
另外从算法上来说,求一个刚度最差的结构,大概只有更差,没有最差吧

kmani 发表于 2011-8-31 19:10:01

楼主,我们版大是这方面的高高才生,看看版大的解释很好吧。不要太激动哦。

周纯家 发表于 2011-8-31 20:56:42

谢谢两位神仙师姐,蛮久以前我也常看这论坛,不过后面发了几次关于拓扑优化的求助帖子都没人回复,随后已经大半年不曾登入这论坛了,今天我看你一天的帖子,印象最深的就是你们了,一个是yygao56 ,kmani ,还有417332551,谢谢你们,我看到你们很热心的帮助大家回复帖子解答疑问和上传自己的压箱宝典资料,难能可贵呀,99行经典程序以前在没有任何注释的前提下,我看了个把月(本人资质愚笨了一点)才弄懂这程序怎么编制的,呵呵,要是以前你们上传了资料我想我很快会进入状态的,谢谢你们,无私助人者朋友达天下,yygao56 ,kmani 你们两位美女我看你们都是成双成对一起出现,呵呵,像姐妹一样

yygao56 发表于 2011-8-31 21:06:53

kmani 发表于 2011-8-31 19:10 static/image/common/back.gif
楼主,我们版大是这方面的高高才生,看看版大的解释很好吧。不要太激动哦。 ...

:lol 我就说呢,kmani,我们三个(还有417332551..)用美女头像的....

周纯家 发表于 2011-8-31 21:48:40

关于yygao56说的, 目标函数1和目标函数2是倒数关系这句没问题,优化目标正好是一个求目标函数最大化设计,一个求目标函数最小化设计,这句话我其实是在设置目标函数时并不明确这两个函数到底是求最大化还是最小化,也就是说我随便设置两个函数c=c1/c2和c=c2/c1(上下对调位置),利用同样的OC子程序,结果拓扑图形一样,曲线图一个是上升和下降
重新说下我的题目吧:我的要求是:矩形区域x向柔度最大化,y向柔度最小化,(至于你说的柔度最大化没有意义这个我以后考证,暂时先不讨论)我建立目标函数是采用c=cx/cy或者c=cx/cy(cx表示x向柔度,cy表示y向柔度),首先我不知道这样建立目标函数对不对?或者有人建议应该是建立多目标函数才对。假设对的前提下,这样两个式子(c=cx/cy或者c=cx/cy)求得的是最大化还是最小化我也没底,
还有一个问题和上面问题相关的就是特征值是k/m,(灵敏度是m/k,有待考证)所以上面那个对调位置的目标函数(拓扑图形相同)解决了,我这个也一并解决了,谢谢yygao56再次帮我解答,可以加我qq358939206,谢谢神仙师姐

周纯家 发表于 2011-8-31 22:07:53

不管目标函数对不对调,其中的oc我采用的就是这个程序(这个oc好像不止针对求最小化,位移最大化我发现也是用这个,所以个人推测,最大化还是最小化主要取决于目标函数,不知对不对?)要求一个目标函数的最大化还是最小化,到底是哪段程序控制它最大化还是最小化?目标函数or敏度求解还是oc优化算法??
function =OC(nelx,nely,x,volfrac,dc,m)
l1 = 0; l2 = 100000; move = 0.1;                                             
while (l2-l1)/(l2+l1)> 1e-4 &&l2 >1e-40                                 
lmid = 0.5*(l2+l1);
x(:,:,m+1) =max(0.001,max(x(:,:,m)-move,min(1.,min(x(:,:,m)+move,x(:,:,m).*(max(1e-10,-dc./lmid).^0.3)))));
if sum(sum(x(:,:,m+1))) - volfrac*nelx*nely > 0
    l1 = lmid;
else
    l2 = lmid;
end
end

yygao56 发表于 2011-9-1 08:56:21

周纯家 发表于 2011-8-31 22:07 static/image/common/back.gif
不管目标函数对不对调,其中的oc我采用的就是这个程序(这个oc好像不止针对求最小化,位移最大化我发现也是 ...

目标函数的最大最小主要与敏度分析有关;
“矩形区域x向柔度最大化,y向柔度最小化”以及“抗横向干扰”等问题,估计很多人没有做过,太专业了难以回答。
当然了,如果被人轻易回答出来了,也体现不了你研究的创新性。我给你悬赏求答案吧,看是否有人做过这方面的能回答一下。

周纯家 发表于 2011-9-1 09:14:31

周纯家 发表于 2011-9-1 09:32:55

以上是我做的题目叉指式微加速度计的工作原理,简单地说就是x向受到一个力的话,它左右偏移,产生间隙变化,这个间隙通过电路转化成其他变量检查出来。也就是x方向是工作的,y方向是非工作的,所以有“抗横向干扰”这个概念,抗横向干扰=1阶模态频率/2阶模态频率(或者个人理解抗横向干扰=x向模态频率/y向模态频率,至于求出的是抗横向干扰最大化还是最小化,目前自己也有点蒙了)
根据以上工作原理我提出:矩形区域x向柔度最大化,y向柔度最小化,这命题本身是不是有问题?像yygao56 说的,柔度最大化是没有实际意义的,

周纯家 发表于 2011-9-1 09:41:38

像yygao56说的目标函数的最大最小主要与敏度分析有关;我的目标函数上下对调位置,敏度求解也相应对调了,但我的拓扑图形还是几乎一摸一样,曲线却上升下降刚好相反,

周纯家 发表于 2011-9-1 09:48:36

关键部分程序发送上来,供大家指教哪儿有问题
% FE-ANALYSIS   
=FE(nelx,nely,x,penal,m);
% OBJECTIVE FUNCTION AND SENSITIVITY ANALYSIS,先求解c,下面一段敏度分析需要用到c值
= lk;
cx = 0.;
cy = 0.;
for ely = 1:nely
    for elx = 1:nelx
      n1 = (nely+1)*(elx-1)+ely;
      n2 = (nely+1)* elx   +ely;
      %%%%Compliant Mechanisms for MEMS
      UeX = U(,1);
      UeY = U(,2);
      cx = cx + x(ely,elx,m)^penal*UeX'*KE*UeX;
      cy = cy + x(ely,elx,m)^penal*UeY'*KE*UeY;   
    end
end
   c=cy/cx;
% OBJECTIVE FUNCTION AND SENSITIVITY ANALYSIS求解敏度
= lk;
cx = 0.;
cy = 0.;
for ely = 1:nely
    for elx = 1:nelx
      n1 = (nely+1)*(elx-1)+ely;
      n2 = (nely+1)* elx   +ely;
      %%%%Compliant Mechanisms for MEMS
      UeX = U(,1);
      UeY = U(,2);
      cx = cx + x(ely,elx,m)^penal*UeX'*KE*UeX;
      cy = cy + x(ely,elx,m)^penal*UeY'*KE*UeY;   
      dcx(ely,elx) = -penal*x(ely,elx,m)^(penal-1)*UeX'*KE*UeX;
      dcy(ely,elx) = -penal*x(ely,elx,m)^(penal-1)*UeY'*KE*UeY;
      dc(ely,elx)=dcy(ely,elx)/cx+(c*dcx(ely,elx)/cx);         
    end
end

虫小虫 发表于 2012-6-19 15:47:17

遇到同样问题的人飘过~

虫小虫 发表于 2012-11-13 11:10:45

现在再看这个关于柔度最大化的问题,确实像2楼版主所说的,单纯的柔度最大没有意义,区域中不存在材料是柔度最大化的最佳情形。我们真正需要考虑的是具有传力路径条件下的柔度最大化,而且需要考虑结构机械加工的可行性。
页: [1]
查看完整版本: 【悬赏求答案】抗横向干扰(柔度最大化)拓扑优化matlab