拓扑优化(SIMP法)
理论与物理
什么是拓扑优化?
老师,什么是拓扑优化?
拓扑优化是优化设计区域内材料的有无(0/1)。自动决定在哪里开孔、在哪里保留材料。由Bendsøe & Kikuchi于1988年提出。
SIMP法
SIMP(Solid Isotropic Material with Penalization)是最广泛使用的拓扑优化方法。为每个单元分配设计变量 $\rho_e$(0~1的密度):
$$ E_e = \rho_e^p E_0 $$
SIMP(Solid Isotropic Material with Penalization)是最广泛使用的拓扑优化方法。为每个单元分配设计变量 $\rho_e$(0~1的密度):
通过 $p$(惩罚指数,通常$p = 3$)抑制中间密度,使其趋近于0/1。
优化问题
典型的数学表述:
是"在将材料控制在$V^*$以下的同时,找到最刚硬的结构"对吧。
正是如此。通过FEM计算每次迭代的位移→计算灵敏度(各单元密度变化时目标函数的变化)→更新密度→迭代直至收敛。
总结
SIMP法的"SIMP"由Bendsoe(1989)命名
拓扑优化的代表方法SIMP(Solid Isotropic Material with Penalization),是Bendsoe(1989年)在简化Bendsoe & Kikuchi(1988年)的均匀化法后提出的方法。将每个单元的密度ρ设为0~1的连续变量,通过刚度Eρ^p表示,惩罚参数p抑制中间密度,从而得到接近0或1的清晰材料布局。名称的由来是Bendsoe在1989年的论文标题中写了"Solid Isotropic...",后来被缩写成首字母缩写。
各项的物理意义
- 惯性项(质量项):$\rho \ddot{u}$,即"质量×加速度"。您有过急刹车时身体被向前甩出的经历吗?那种"被带走的感觉"正是惯性力。物体越重越难启动,一旦启动也越难停止。地震时建筑物摇晃,也是因为地面突然移动而建筑物的质量"被落下"。静力分析中此项设为零,这是"因为缓慢施加力所以加速度可以忽略"的假设。对于冲击载荷或振动问题,此项绝对不能省略。
- 刚度项(弹性恢复力):$Ku$ 和 $\nabla \cdot \sigma$。拉弹簧时会感觉到"想要恢复原状的力"吧?那就是胡克定律 $F=kx$,也是刚度项的本质。那么提问——铁棒和橡皮筋,用相同的力拉伸,哪个伸得更长?当然是橡皮筋。这种"难以拉伸的程度"就是杨氏模量 $E$,它决定了刚度。常见的误解:"刚度高=强度高"是不对的。刚度是"不易变形的程度",强度是"不易破坏的程度",是不同的概念。
- 外力项(载荷项):体积力 $f_b$(重力等)和表面力 $f_s$(压力、接触力等)。可以这样想——桥上卡车的重量是"作用在整个内部上的力"(体积力),轮胎压路面的力是"只作用在表面上的力"(表面力)。风压、水压、螺栓紧固力……全都是外力。这里容易犯的错误:弄错载荷的方向。本想"拉伸"却变成了"压缩"——听起来像笑话,但在3D空间中坐标系发生旋转时确实会发生。
- 阻尼项:瑞利阻尼 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。试着弹一下吉他的弦。声音会一直持续吗?不,会逐渐变小。这是因为振动能量通过空气阻力或弦的内部摩擦变成了热能。汽车的减震器也是同样的原理——故意吸收振动能量来提高乘坐舒适性。如果阻尼为零会怎样?建筑物在地震后会一直摇晃不停。实际上不会这样,所以设置适当的阻尼很重要。
假设条件与适用范围
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 位移 $u$ | m(米) | 以mm输入时,载荷·弹性模量也需统一为MPa/N系 |
| 应力 $\sigma$ | Pa(帕斯卡)= N/m² | MPa = 10⁶ Pa。与屈服应力比较时注意单位制不一致 |
| 应变 $\varepsilon$ | 无量纲(m/m) | 注意工程应变与对数应变的区别(大变形时) |
| 弹性模量 $E$ | Pa | 钢:约210 GPa,铝:约70 GPa。注意温度依赖性 |
| 密度 $\rho$ | kg/m³ | mm系中为tonne/mm³(钢约为 10⁻⁹ tonne/mm³) |
| 力 $F$ | N(牛顿) | mm系用N,m系也用N统一 |
数值解法与实现
SIMP法的算法
1. 将所有单元的初始密度设为 $\rho = V^*/V_{total}$
2. 用FEM计算位移和应力
3. 计算灵敏度 $\partial C / \partial \rho_e$(伴随法)
4. 更新密度(OC法或MMA法)
5. 迭代直至收敛(通常50~200次迭代)
求解器
总结
无密度过滤的SIMP会产生棋盘格图案
众所周知,如果不使用密度过滤执行SIMP拓扑优化,会出现相邻单元交替为ρ=0/1的"棋盘格图案(checkerboard pattern)"这一数值病态。Bourdin(2001年)提出的Helmholtz PDE(偏微分方程)滤波器可以自然地控制最小构件尺寸(rmin),现已作为标准实现被集成到OptiStruct、Tosim和ABAQUS中。通过将rmin的设置与制造约束(最小壁厚、拔模斜度)对应起来,可以同时管理设计性和可制造性。
线性单元(1次单元)
节点间进行线性插值。计算成本低,但应力精度低。注意剪切锁定(可通过减缩积分或B-bar法缓解)。
二次单元(带中间节点)
可以表现曲线变形。应力精度大幅提高,但自由度约增加2~3倍。建议:应力评估很重要时使用。
完全积分 vs 减缩积分
完全积分:有过约束(锁定)风险。减缩积分:有沙漏模式(零能量模式)风险。根据情况选择合适的方法。
自适应网格
基于误差指标(ZZ估计量等)的自动细化。高效提高应力集中部位的精度。有h法(单元细分)和p法(增加阶次)。
牛顿-拉夫逊法
非线性分析的标准方法。每次迭代更新切线刚度矩阵。在收敛半径内具有二次收敛性,但计算成本高。
修正牛顿-拉夫逊法
切线刚度矩阵使用初始值或每隔几次迭代更新。每次迭代成本低,但收敛速度为线性。
收敛判定标准
力残差范数: $||R|| / ||F_{ext}|| < \epsilon$(通常 $\epsilon = 10^{-3}$〜$10^{-6}$)。位移增量范数: $||\Delta u|| / ||u|| < \epsilon$。能量范数: $\Delta u \cdot R < \epsilon$
载荷增量法
不一次性施加全部载荷,而是分小步增加。弧长法(Riks法)可以超越载荷-位移关系的极值点进行追踪。
直接法 vs 迭代法的比喻
直接法是"用笔算精确解联立方程"的方法——可靠但大规模问题耗时过长。迭代法是"通过反复猜测逼近正确答案"的方法——最初是粗略的答案,但每次迭代精度都会提高。就像查字典时,从第一页开始按顺序找(直接法)不如先估计大概位置翻开,再前后调整(迭代法)更高效,原理相同。
网格阶次与精度的关系
1次单元是"用直尺近似曲线"——用直线折线表现,因此精度有限。2次单元是"柔性曲线"——可以表现曲线变化,即使网格密度相同,精度也显著提高。但是,每个单元的计算成本会增加,因此需要根据总体的成本效益来判断。
实践指南
拓扑优化的实务
汽车轻量化(支架、悬架臂)、航空航天(结构件)、3D打印(自由形状)。
实务检查清单
空客A380的机翼安装支架是SIMP优化的杰作
空客A380的客舱天花板面板安装支架(2006年首飞)作为使用OptiStruct进行SIMP拓扑优化设计的零件在业界非常有名。相比传统手工设计品,在满足疲劳寿命约束的同时重量减轻了30%,并获得了Altair的EngineeringImpact奖。目前OptiStruct作为标准的拓扑优化工具在空客所有机型中使用,每年有超过1000个零件优化通过此工具实施。
分析流程的比喻
分析流程其实和烹饪非常相似。首先采购食材(准备CAD模型),进行预处理(网格生成),开火烹饪(求解器执行),最后装盘(后处理可视化)。这里有个重要的问题——烹饪中最容易失败的工序是哪里?其实是"预处理"。网格质量差的话,无论使用多么优秀的求解器,结果都会一团糟。
初学者容易掉入的陷阱
您确认过网格收敛性吗?是不是认为"计算能运行=结果正确"?这其实是CAE初学者最容易掉入的陷阱。求解器一定会根据给定的网格返回"一个差不多的答案"。但如果网格太粗,那个答案就会与现实相差甚远。至少用3个级别的网格密度确认结果是否稳定——如果忽略这一点,就会陷入"因为是计算机给出的答案所以应该正确"这种危险的错觉。
边界条件的思考方式
边界条件的设置,和考试的"出题"是一样的。如果题目出错了呢?无论计算多么精确,答案都是错的。"这个面真的是完全固定的吗?""这个载荷真的是均匀分布的吗?"——正确建模现实的约束条件,其实是整个分析中最重要的步骤。
软件比较
拓扑优化的工具
なった
詳しく
報告