 
      之前做的一个优化案例,视频观看人数不少,看来大家对这个内容感兴趣,整理了一份文字版。
 
    
  
微观结构的拓扑优化可以帮助设计超材料(metamaterial), 这些材料可以具备独特的力学性能并且重量更轻,并结合3D打印技术使其得以实现。本文基于Altair SimLab(求解器为Optistruct)复现了一个点阵结构拓扑优化的案例,展示了不同边界条件下单个晶胞的优化结果,如有需要,还可在后处理中将若干个晶胞进行叠加获得点阵结构。  
超材料(Metamaterials)是指通过人工设计和制造,具有天然材料不具备的特殊性质的材料,它们的独特性能主要来源于其结构,而不是成分。通过对微观结构进行拓扑优化设计,可以针对特定的使用条件,设计出针对该工况性能更高的力学材料,同时减轻重量。随着3D打印技术的日趋成熟,使这种构想不再仅仅停留在图纸上,让超材料得以展现出广阔的工程应用前景。下图展示了一些经过了拓扑优化的点阵结构的3D打印样品[1]。  
 
  
(参考资料链接:[1] Da, Daicong. Topology Optimization Design of Heterogeneous Materials and Structures. Wiley, 2023.)  
Optistruct默认使用基于梯度的SIMP(Solid Isotropic Material with Penalization)算法进行拓扑优化,SIMP算法是一种常用的结构拓扑优化方法,通过引入相对密度在0到1之间变化的材料,寻找在一定材料用量条件下具有最大刚度(或最小柔度)的结构材料最佳分布形式。  
优点:结构设计变量(单元密度)与优化问题直接挂钩,优化算法收敛性好,灵敏度计算简单;适用于基于有限元的离散设计灵敏度计算;计算效率高,尤其在低CPU时间预算下能产生高质量解决方案。  
缺点:优化出的拓扑结构边界不够清晰,特别是过滤半径较大时,灰度区域没有物理意义,设计若无后处理无法直接用于制造;基于梯度的SIMP算法在某些问题中可能会收敛到局部最优解(可在组合优化中使用Optistruct的全局优化功能)。  
对于这个问题,SimLab中进行前处理的设置比HyperMesh更为简单,简洁明了的图标对于初学者来说也很容易知道它的功能是什么,如果需要进一步的介绍,只需把鼠标放在图标上,点击F1即可跳转到帮助文档中该图标的介绍。接下来,我们就按照步骤,展示一下SimLab中的设置过程:  
3.1几何创建  
 
  
快速创建一个尺寸为10mm*10mm*10mm的晶格;
3.2 几何切分
 
  
3.3 材料设置  
右键选中几何体,在自带的材料库中随便选一个Steel即可。这里材料选择对优化结果并无影响,但不能为空。  
 
  
3.4 网格划分  
在Mesh模块下点击Hex Mesh进行六面体网格划分,这里有多种划分方式,选择适合模型的即可,这里我们选择了Cartesian Hex Mesh,网格尺寸设置为0.25mm。  
 
  
 
  
3.5 创建Solution—静力学分析  
我们需要创建两个Solution,第一个是静力学分析(Static Stress Analysis),之后才能创建第二个Solution即优化分析(Optimization)。  
静力分析步设置如下所示:  
 
  
3.6 施加边界条件  
在Analysis-->Loads下选中Pressure, 选中晶格六个面中间的正方形小面,对这些小面施加100MPa的压力。  
 
  
3.7 提交计算—静力分析  
 
  
在Solution中,右键点击Result,在弹框中选中Update即可开始进行计算。当计算完成,Result前面的圆形图标会自动变绿,这时即可查看计算结果了。  
 
  
3.8 创建Solution—拓扑优化  
现在我们可以来创建拓扑优化分析步了,在Solution下选中Optimization,在弹出的Define Optimization窗口中输入Solution的名字,选择其优化方法(这里是Topology)。  
 
  
3.9 拓扑优化参数设置  
接下来,我们来完成拓扑优化的基本设置,在SimLab中,将我们需要进行的基本设置的图标整齐的排练在一起,我们按顺序点击并设置即可:  
 
  
首先点击Design Space,选中整个晶格为我们的设计区域;  
之后,点击Design Constraint, 设置设计约束,其中最小成员尺寸0.5mm, 最大成员尺寸1.2mm,如下图所示:  
 
  
点击Response,定义响应,这里我们定义两个响应,一个是体积分数,一个是柔度。  
 
  
点击Constraint定义约束:体积分数<10%, 即将上限设置为0.1  
 
  
点击Objective设置目标为刚度最大化(即柔度Compliance最小化)  
 
  
3.10 提交计算及查看结果  
 
  
计算完成后我们通过滑动Shape Explorer中的密度值,来调节优化结果的呈现效果。  
*调节DISCRETE的值(可选)  
为了使得优化结果更分明,更便于3D打印。我们可以提高DISCRETE的值——DISCRETE参数通过调整优化算法,使密度更倾向于收敛到 0(无材料)或 1(完全材料),从而减少“灰度”区域,提高设计的可制造性。  
DISCRETE的值可以在拓扑优化的Solution中,点击Setting—> Solver Settings,进行设置,如果不设置,其默认值为1。  
 
  
下图展示了本例中,仅仅修改了DISCRETE参数后优化结果的差异。可以明显看到,DISCRETE=3.0的结果更“黑白分明”,更好的体现优化的效果。  

 
  
(左图:DISCRETE=1.0, 右图:DISCRETE=3.0)  
用同样的方法,我们可以研究不同受力条件下,晶格的优化结果。  
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
将得到的单胞结构组合成点阵结构,即可得到不同力学特性的超材料,如下图所示,即为上图中第一行的优化结果所得晶胞所组成的点阵结构:  
 
  
小结  
本优化在SimLab中完成,尽管SimLab不主打优化,但主要想借助这个案例熟悉SimLab+OS的基本设置。从效果来看,还是非常方便易用的,SimLab本身设置简单,如果说HyperMesh是Photoshop, SimLab就类似仿真届美图秀秀,处理一些常用问题是非常方便的(例如振动,静力学分析,跌落,优化,热流固耦合的散热问题等),但对于更复杂的仿真类型,有部分高级功能还并未做到SimLab中,只能在HyperMesh中找到,但这也是保持SimLab轻巧好用的关键;优化本身是一门艺术,虽然操作层面上在许多软件中都能较方便完成(主要步骤无外乎就是基于静力学分析的结果,再定义设计域,响应,约束和目标),但具体的参数设置是关键,例如本例中,体积约束上限也是多次尝试后选取了较好的结果,本例中是直接采用尝试过后所获得的最佳参数进行演示的,大家也可以自行尝试不同参数设置对应的结果,当然,除了一些探索性的工作,实际当中更多时候参数是根据实际制造约束,设计目标定义的;本例中没有展示并行计算的设置,如果需要并行计算优化过程,需要在第一步准静态分析时就在“Format and Execute”中设置,后续的拓扑优化会延续这个设置。