COMSOL拓扑优化:从SIMP到MMC
作者:极度喜欢上课
拓扑优化(Topology Optimization)是一种寻找材料在设计空间中最优分布的数学方法。它的核心目标是在满足性能约束的前提下,实现材料用量最小化,或在给定材料用量下实现性能最大化。
目前主流的拓扑优化方法有四种,分别是:SIMP(变密度法)、ESO/BESO(进化结构法)、Level Set(水平集法)和MMC/MMV(可移动变形组件/空洞法)。其中使用最广泛的是SIMP,MMC/MMV则是2014年由大连理工大学郭旭老师提出来的一种拓扑优化方法。本文主要介绍SIMP在COMSOL里面的实现过程,以及分享我们团队(极度喜欢上课)一些关于MMC方法的尝试。
SIMP是COMSOL的内置拓扑优化方法。如图1所示,当添加了“拓扑优化”接口之后,COMSOL就会自动添加“变密度模型”。注意看方程的表达式,仔细观察就能发现其实“变密度模型”包含了四种伪密度变量,分别是theta_c(θc)、theta_f(θf)、theta(θ)和theta_p(θp)。theta_c是最初的伪密度变量,变化范围是0到1之间,数值分析的时候如果直接使用theta_c,容易导致棋盘格现象,所以需要将theta_c经过一次亥姆霍兹过滤,然后得到theta_f,theta_f也不能在数值分析中直接被使用,因为此时theta_f的边界不够清晰,所以还需要将theta_f经过一次双曲正切投影,得到边界更清晰的theta。其实如果直接使用theta来进行有限元分析,理论上也是可行的,但是由于theta的变化范围是0到1之间,当theta等于0的时候,对于固体力学来说,为完全“空”的材料,容易导致数值求解的不稳定,所以theta还需要经过一次插值,最典型的就是SIMP插值,得到theta_p,默认的theta_p的变化范围是0.001到1之间,最大值和最小值之间相差3个数量级,既能满足识别“空”材料的要求,又不会完全为“空”,保证了数值求解的稳定性。插值除了能让数值求解更稳定之外,它还能让theta进一步趋向0或1,减少0.5附近的中间变量。

图1
如图2所示,展示了四种伪密度的分布情况。左上角的为theta_c,右上角的为theta_f,左下角的为theta,右下角的为theta_p。关于图2相关内容的学习,可以观看我们团队(极度喜欢上课)发布在B站的第三十五期公开课和第五十三期公开课。

图2
在理解了COMSOL“变密度模型”四种伪密度的原理之后,当然得实际上手实操一下,我们团队(极度喜欢上课)在B站发布了大量的关于COMSOL拓扑优化基础的公开课,涵盖传热、固体力学以及流体力学等方向,欢迎大家学习。
如果基础的公开课已经都学会了,欢迎学习我们团队(极度喜欢上课)发布的第16次和第17次课程。如图3所示,展示了两套课程的大纲。16次课程涉及COMSOL“变密度模型”关于固体力学、传热以及流体力学等方向更高级的应用;17次课程则是为需要对COMSOL进行二次开发的同学所打造的基础课程,课程涉及COMSOL和MATLAB之间的数据交互以及COMSOL“变密度模型”的自定义搭建。

图3
除了上述的内容,我们团队其实还对COMSOL内置的拓扑优化方法进行了很多有趣的探索,例如如图4所示,我们尝试做过基于初始特定形状的拓扑优化;如图5所示,尝试做过多材料的拓扑优化;如图6所示,尝试做过周期性结构的拓扑优化;如图7所示,尝试过将传热相变和拓扑优化进行耦合,制作了一个瞬态的翅片拓扑优化案例;如图8所示,还尝试做过考虑蒙皮包裹的固体力学拓扑优化。

图4

图5

图6

图7

图8

