您好,欢迎访问这里是您的网站名称官网!
全国咨询热线+86 0000 88888
欧陆娱乐-欧陆注册登录中心

欧陆新闻

NEWS CENTER
三维拓扑优化柔顺机构的问题?
发布时间:2024-03-11 12:20浏览次数:

Kai Liu写的这篇《An efficient 3D topology optimization code written in Matlab》,其中柔顺机构那一节的程序,我照着敲的,为什么运行出来提示


无法执行赋值,因为左侧的大小为 14385-by-1,右侧的大小为 14385-by-2。

出错 top3dmechanism (line 95)

U(freedofs,:)=K(freedofs,freedofs)\\F(freedofs,:);


看了好几遍,确实没哪个地方敲错,源程序跑悬臂梁的没问题,有没有人遇到过这个问题?

根据matlab的错误提示,我刚才把

U=U(:,1);

ce=reshape(sum((U(edofMat)*KE).*Ud(edofMat),2),[nely,nelx,nelz]);

改成

Ue=U(:,1);

ce=reshape(sum((Ue(edofMat)*KE).*Ud(edofMat),2),[nely,nelx,nelz]);

然后就算出来了,但是拓扑图有一点点的不一样,不过问题应该不大

这么做是对的吗?还是说作者那个地方写错了


xdm我还有个问题,文章中给OC法改了下增加了收敛性,我试了下原OC法确实算不出来,那么我

换个优化方法比如SQP,那么我应该怎么增加收敛性呢?

作者的代码不一定对...明显维数不一样

能跑起来就对了呗……


话说专业不一样我真的不太懂...不晓得你做的啥

收敛性的话只有改参数了呗 改步进系数?换个算法?

是line 74b弄错了,U从nx2变成了nx1。 换一个变量就行,不影响灵敏度计算。

原OC只适合全负灵敏度问题,OC用于柔顺机构的话必须用一些artifact,比如人为的把正灵敏度变成一个很小的负数,或者直接取绝对值。

据我所知,柔顺机构收敛性不是很好,建议用一些自适应的优化方法比如MMA。SQP很容易很快收敛到局部最优,其效果可能还不如MMA和OC.

在线客服
联系电话
全国免费咨询热线 +86 0000 88888
  • · 专业的设计咨询
  • · 精准的解决方案
  • · 灵活的价格调整
  • · 1对1贴心服务
欧陆APP下载
回到顶部

平台注册入口