基于等几何分析的拓扑优化
GAMES302 第 10 讲:基于等几何分析的拓扑优化
主讲人:徐岗(杭州电子科技大学)。本讲围绕拓扑优化的概念、SIMP/BESO/Level-set/MMC 四条主线,以及优化结果的后处理、CAD 重建和与下一讲体细分 IGA 的衔接展开。
SIMP 作为最经典的密度法,是理解本讲的入口
一、前置知识回顾
在进入拓扑优化之前,先把上一讲与本讲之间的知识链补齐。这里最容易断掉的有四个点。
1. L09 形状优化
L09 讨论的是形状优化,核心是改变边界外形,而不是改变孔洞拓扑。
- 设计变量通常是边界控制点、法向位移、参数曲线控制量
- 优化对象是边界形状、局部曲率、厚度分布
- 设计空间里的孔洞数量和连通关系一般保持不变
这意味着形状优化的自由度更集中,也更容易和 CAD 直接对接,但它解决不了“要不要开洞”“该不该分叉”“载荷路径如何重排”这类问题。拓扑优化正是为了解这部分问题而出现。
2. 有限元 / IGA 分析
不管是 FEM 还是 IGA,拓扑优化都离不开“结构响应求解”。
- FEM:把结构离散成单元,求位移、应变、应力、柔度等响应
- IGA:用 B-spline / NURBS / T-spline
等基函数直接做几何与分析统一
本讲中一个关键背景是:IGA 和 CAD 共享几何表示语言,因此对拓扑优化的后处理、几何重建、边界光顺非常友好。
3. 灵敏度分析
拓扑优化大多是梯度驱动的。无论你用 OC、MMA、level-set,还是 BESO 的阈值更新,背后都离不开目标函数对设计变量的导数。
最常见的量是柔度
C = fTu
其中
- f 是载荷
- u 是位移解
- C
越小,通常表示结构越“硬”
对设计变量求导,就是每轮更新最关键的方向信息。
4. 密度场
SIMP、过滤、体积分数约束这些概念,本质上都在围绕一个连续标量场展开:
ρ(x) ∈ [0, 1]
- ρ = 1 表示实体
- ρ = 0 表示空洞
- 中间值代表“灰度材料”
拓扑优化的难点之一,就是如何把连续密度场推向清晰的 0/1 结构,同时保持数值稳定和制造可行性。
id="二背景动机为什么需要拓扑优化">二、背景动机:为什么需要拓扑优化
结构优化大体可分为三层:尺寸优化、形状优化、拓扑优化。
- 尺寸优化:改厚度、截面、孔径大小
- 形状优化:改边界轮廓,但拓扑不变
- 拓扑优化:连孔洞都允许生成、删除、重连
拓扑优化的价值在于它回答的是“结构应该长成什么样”这个更前面的设计问题。它更接近概念设计阶段,常用于:
- 轻量化设计
- 载荷路径发现
- 高刚度 / 低质量结构设计
- 创成式设计(Generative Design)
- 与增材制造结合的复杂结构生成
一个直观理解是:形状优化像“修剪一棵树的外轮廓”,拓扑优化像“重新决定树枝怎么长”。前者是在已有骨架上微调,后者在重建骨架。
拓扑优化的本质是寻找最佳载荷路径,而不是简单修边
三、拓扑优化的主流路线图
从表示方式看,本讲的四类方法可以分成两大阵营:
| 路线 | 表示方式 | 代表方法 | 典型特点 |
|---|---|---|---|
| 材料描述模型 | 直接给单元/点赋密度 | SIMP、BESO | 实现简单,数值方法成熟 |
| 边界描述模型 | 用隐式/显式边界函数描述结构 | Level-set、MMC | 边界更清晰,更接近几何建模 |
等几何分析的加入,让这个问题进一步变化:几何、分析、优化可以在同一个样条框架里统一处理。课件里最强调的点也是这一条:IGA 能减少几何近似误差,也让拓扑优化更容易和 CAD 互通。
四、SIMP:最经典的密度法
4.1 基本思想
SIMP 全称是 Solid Isotropic Material with Penalization,也常被解释为“带惩罚项的固体各向同性材料插值法”。它的核心是:
- 把设计域离散成若干单元
- 给每个单元一个密度变量 class="math inline">ρe ∈ [0, 1]
- 用密度去插值材料刚度
- 通过惩罚因子把中间密度压向 0 或 1
经典刚度插值写成:
E(ρe) = Emin + ρep (E0 − Emin)
其中:
- class="math inline">E0:实体材料弹性模量
- class="math inline">Emin:避免刚度矩阵奇异的极小刚度
- p:惩罚因子,通常 class="math inline">p > 1
相应地,单元刚度矩阵常写成:
Ke(ρe) = (Emin + ρep(E0 − Emin))Ke0
4.2 为什么要有惩罚因子 class="math inline">p
如果直接线性插值,ρ = 0.5 的单元就相当于“半实体半空洞”,这在力学上不够明确,也不利于制造。惩罚因子把中间密度的“单位体积刚度收益”压低。
举个很直白的对比:
- ρ = 0.5,若 class="math inline">p = 1,刚度约为
class="math inline">0.5E0
- ρ = 0.5,若 class="math inline">p = 3,刚度约为
class="math inline">0.125E0
- 但体积仍然占了 50%
这样一来,中间密度就“性价比很差”,优化算法更愿意把它推向纯实体或纯空洞。
课件中也强调了这个经验:
- p 太小,灰度区会很多
- p
太大,迭代会变慢,甚至导致数值不稳定
- 工程上常先用较小 p
启动,再逐步加大到 3 左右
4.3 标准优化模型
在静力学最小柔度问题中,SIMP 的标准形式可写成:
minρ C = fTu
满足
K(ρ)u = f
∑eveρe ≤ V*
0 < ρmin ≤ ρe ≤ 1
其中 V* 是体积分数约束,表示材料总量不能超过给定比例。
4.4 迭代流程
SIMP 的典型迭代是“分析 → 灵敏度 → 更新 → 过滤 → 收敛判断”的循环:
- 初始化密度场,常取均匀分布
- 进行有限元 / IGA 分析,求位移场 class="math inline">u
- 计算目标函数与灵敏度
- 做灵敏度过滤或密度过滤,抑制棋盘格
- 用 OC 或 MMA 更新密度
- 检查体积约束和收敛条件
- 不收敛则回到第 2 步
4.5 灵敏度表达式的直观理解
柔度对密度的导数常写成:
这里的含义很清楚:
- 单元应变能越大,说明这个位置越“重要”
- 重要位置应该保留材料
- 应变能低的位置可以删掉
所以 SIMP 的优化本质上就是在问:哪部分材料贡献了最多结构刚度,哪部分是“冗余的”。
4.6 过滤技术为什么重要
SIMP 的经典问题有三类:
- 灰度单元过多
- 网格依赖
- 棋盘格现象
传统 FEM 下通常要用灵敏度过滤、密度过滤、Heaviside projection 等方式控制。
而课件特别指出:基于 IGA 的 SIMP 拓扑优化天然带有更强的平滑/过滤效果,因为 NURBS 基函数具有局部支撑、较高连续性,一个控制点影响的不只是一个单元,而是一片区域。
在 IGA 框架下,基函数的局部支撑性本身就具有过滤味道
4.7 例题
1:悬臂梁柔度最小化的 SIMP 迭代流程
例题 1:悬臂梁最小柔度
设设计域为悬臂梁,左端固支,右端中部受集中载荷。目标是在体积分数约束下最小化柔度。
-
初始时所有单元密度取
class="math inline">ρe = 0.5
。 -
做一次结构分析,求出位移场
class="math inline">u
。 -
计算每个单元的应变能,得到灵敏度。
-
高应变能区域保留,低应变能区域减密度。
-
经过若干轮迭代,材料逐渐沿主载荷路径聚集,形成上、下弦杆和斜腹杆类似的结构骨架。
这个过程说明,SIMP 不是“删单元”的简单规则,而是通过全局响应不断重排材料分布。
4.8 例题
2:为什么惩罚因子会推动 0/1 设计
例题 2:灰度单元为何会被压掉
比较两个候选单元:A 的密度 ρ = 1,B 的密度 ρ = 0.5。若 p = 3,则 B 的刚度权重只有 0.125,但体积还占一半。
从优化角度看,B 是一种“低回报高占用”的材料状态。只要约束允许,算法就倾向于把 B 推向两端:
-
若它真的重要,就把密度推高到 1;
-
若它贡献有限,就把密度降到 0。
这就是惩罚因子驱动 0/1 设计的根本逻辑。
4.9 SIMP 的优缺点
优点
- 模型简单,易于编程和教学
- 灵敏度分析清楚,和梯度法天然兼容
- 适合大规模数值实验
- 与 FEM、IGA 都可以顺利耦合
缺点
- 灰度区域需要额外处理
- 对网格较敏感
- 传统实现容易出现棋盘格
- 得到的是密度场,不直接是几何边界
适用场景
- 载荷路径探索
- 轻量化初步设计
- 作为其他方法的基准参考
- 需要高通用性和成熟数值框架的工程问题
五、BESO:双向渐进结构优化
5.1 基本思想
BESO 全称 Bidirectional Evolutionary Structural Optimization。它可以理解成“带回退机制的删减优化”。和早期 ESO 相比,BESO 的核心改进在于:
- 不只删材料
- 也允许把先前删掉的区域重新加回来
这点很重要,因为单纯只删不加很容易误删掉真正有用的结构区域。
5.2 工作机制
BESO 通常按单元灵敏度或应变能密度排序:
- 低效单元:逐步转为空洞
- 高效空洞区域:必要时转回实体
- 每轮维持目标体积或进化比
从直觉上看,BESO 更像一种“进化式筛选”方法。
5.3 优缺点
优点
- 思路直观
- 不依赖连续密度插值的强假设
- 可以较自然地得到 0/1 结果
- 对工程人员解释起来简单
缺点
- 阈值与进化比需要经验调参
- 结果对参数敏感
- 收敛过程不如连续优化平滑
- 容易受误删和局部极值影响
5.4 适用场景
- 快速概念筛选
- 结构去除/补充逻辑明确的问题
- 需要明显 0/1 结果的设计任务
- 复杂参数化不想做太多连续插值时
5.5 和 SIMP 的关系
课件里给出的一个重要判断是:当 SIMP 采用足够强的惩罚并结合过滤时,得到的结果会接近 BESO 那种黑白清晰的结构。
也就是说,BESO 和 SIMP 在工程结果上并不是完全割裂的两类,而是同一类问题上的不同更新策略。
从方法谱系上看,SIMP 和 BESO 属于材料描述型方法,而 MMC 更偏显式几何表达
id="六level-set用零水平集描述边界">六、Level-set:用零水平集描述边界
6.1 基本思想
Level-set 方法不直接优化密度,而是用隐函数 ϕ(x) 表示边界:
ϕ(x) = 0
- class="math inline">ϕ(x) > 0:材料域
- class="math inline">ϕ(x) < 0:空洞域
- class="math inline">ϕ(x) = 0:边界
这意味着边界始终是清晰的,不需要密度后处理来切边。
6.2 演化方程
边界演化通常通过 Hamilton–Jacobi 型方程完成:
其中 Vn 是法向速度,由灵敏度信息决定。
6.3 为什么它吸引人
和 SIMP 相比,Level-set 有一个天然优势:
- 输出就是边界
- 孔洞合并、分裂、闭合都能通过零水平集自然发生
- 边界表达更像几何对象,而不是灰度图
6.4 代价在哪里
它也有明显代价:
- 需要维护符号距离函数性质
- 要做重初始化
- 设计变量通常是隐函数参数,不如密度法直观
- 在某些问题上实现复杂度更高
6.5 优缺点总结
优点
- 边界清晰
- 适合处理拓扑变化
- 几何意义强
缺点
- 实现复杂
- 需要重初始化和数值稳定控制
- 对参数化方式和速度场设计依赖较强
适用场景
- 需要精细边界控制的问题
- 结构边界质量要求高的问题
- 对孔洞演化过程要求可解释的设计任务
6.6 课件中的 IGA 视角
在课件的 IGA 版本里,Level-set 与参数化样条结合,可以让边界更新更平滑,也更容易与 CAD / 几何表示对接。这也是为什么本讲会把它放在“基于 IGA 的拓扑优化”框架里讲。
七、MMC:Moving Morphable
Components
7.1 核心想法
MMC 是本讲非常重要的一条路线。它的思想不是把材料当作连续密度去抹,而是把结构拆成若干个可移动、可变形、可旋转的几何组件。
每个组件的几何参数本身就是设计变量,例如:
- 中心位置
- 长度
- 厚度
- 方向角
- 曲线骨架参数
于是优化问题就从“哪里有材料”变成“组件怎么摆、怎么长、怎么连”。
7.2 代表性优势
- 结果更显式,几何解释更直接
- 较少依赖复杂后处理
- 更容易控制制造约束
- 与 CAD 的思路更近
7.3 局限
- 组件数量和表达能力限制了设计空间
- 初始组件布置影响较大
- 对复杂三维问题,建模和参数调节仍然有成本
7.4 和 level-set / SIMP 的关系
从方法谱系看:
- SIMP:密度型,连续插值
- Level-set:隐式边界型
- MMC:显式几何型
MMC 其实非常适合与 IGA、CAD 工作流结合,因为它天然倾向于“几何先行”的表达方式。
7.5 适用场景
- 需要明确几何结构表达的场合
- 需要嵌入制造约束的工程设计
- 想减少后处理成本的设计流程
- 对 CAD 互操作性要求高的任务
八、后处理与 CAD 重建
拓扑优化结果经常不是最终可制造模型,而是一个中间态。尤其是 SIMP、BESO 这类方法,通常输出的是离散密度场或像素/体素式结果,必须继续处理。
8.1 为什么必须后处理
- 密度场不能直接导入 CAD 系统
- 边界可能锯齿化
- 结果可能包含孤立小碎块
- 需要满足制造、公差、曲率连续性要求
8.2 典型流程
- 阈值化:把密度场转为黑白结构
- 去噪 / 去孤岛:删除极小碎片
- 边界提取:得到结构外壳或中性面
- 光顺:减少尖角与锯齿
- 曲面拟合:用样条曲线/曲面逼近轮廓
- CAD 重建:转换成 NURBS / B-spline 表示
- 工艺检查:壁厚、圆角、支撑、可加工性验证
8.3 IGA 为什么特别合适
这里是本讲和 IGA 最关键的连接点:
- IGA 的几何基函数与 CAD 兼容
- 计算和几何表达统一
- 边界更光顺
- 后处理负担显著下降
课件中也明确指出,拓扑优化要想真正进入工程流程,不能只停留在数值图像阶段,而必须完成 CAD 语义重建。
8.4 约束信息的保留
在更复杂的后处理中,常常还要保留:
- 固支点
- 载荷点
- 保护区域
- 禁止修改的边界
这类信息如果丢失,后续 CAD 重建会改变原始物理意义。课件里的后处理流程就专门强调了“读入约束信息”和“导出优化结果与约束信息”的步骤。
九、和后续 L11 体细分 IGA
的衔接
这一讲的结尾其实已经把下一讲的门打开了。
L10 的核心问题是:如何把拓扑优化结果做得更好看、更准、更能进 CAD。
L11 的体细分 IGA 则会继续向前推进:
- 更强的局部细化能力
- 更灵活的网格 / 样条细分
- 更适合复杂几何和多尺度分析
- 为拓扑优化提供更高质量的分析底座
换句话说,L10 解决“怎么优化出结构”,L11 会进一步解决“怎么在更强的 IGA 体系里分析和表达这些结构”。
十、复习速查表
| 关键词 | 一句话记忆 |
|---|---|
| 形状优化 | 只改边界,不改拓扑 |
| 拓扑优化 | 允许开孔、分裂、重连载荷路径 |
| SIMP | 密度插值 + 惩罚因子,把灰度压向 0/1 |
| BESO | 双向进化,能删也能加 |
| Level-set | 用零水平集表示边界 |
| MMC | 用可移动可变形组件直接描述几何 |
| 柔度最小化 | 让结构更硬,常作为最经典目标 |
| 体积分数约束 | 控制材料总量,避免“无限加料” |
| 灵敏度分析 | 告诉算法哪块材料最值得保留 |
| 后处理 | 把数值结果变成可制造 CAD 模型 |
| IGA 优势 | 几何表示和分析统一,和 CAD 更近 |
速记公式
E(ρ) = Emin + ρp(E0 − Emin)
min C = fTu, K(ρ)u = f
∑eveρe ≤ V*, 0 ≤ ρe ≤ 1
ϕ(x) = 0 ⇒ 边界
四法对照
- SIMP:最通用,最适合打基础
- BESO:最直观,适合进化式删补
- Level-set:边界最清晰
- MMC:几何最显式,最接近 CAD 思路
十一、课程要点回收
- 拓扑优化和形状优化的差别,核心在于是否允许改变拓扑。
- SIMP 是最标准的密度法,惩罚因子 class="math inline">p
是把中间密度压向黑白结构的关键。
- BESO、Level-set、MMC
分别代表三种不同的结构表示哲学:进化式、隐式边界式、显式组件式。
- IGA 在本讲中不只是“分析工具”,更是让优化结果和 CAD
更自然衔接的几何底座。
- 拓扑优化的终点不是一张漂亮的密度图,而是可制造、可重建、可验证的工程结构。
十二、参考来源
本地材料
/Users/zhengxinyu/MyDoc/高级图像学/GAMES302-slides/GAMES302-10.pdf/Users/zhengxinyu/MyDoc/高级图像学/课程笔记/games302-10-iga-topology-optimization.md
网页参考
TopOpt in Python — Background in Topology Optimization
https://topopt.readthedocs.io/en/documentation/TopOpt.html用于确认 SIMP、体积约束、柔度最小化、SIMP 插值与灵敏度/MMA 的标准叙述。
A Comprehensive Review of Isogeometric Topology Optimization
https://link.springer.com/article/10.1186/s10033-020-00503-w用于确认 ITO 的分类、CAD/CAE 统一、密度法与边界法的整体框架。
A Comprehensive Review of Explicit Topology Optimization Based on Moving Morphable Components
https://link.springer.com/article/10.1007/s11831-023-10053-8用于确认 MMC 属于显式拓扑优化的重要分支,以及其在几何可解释性上的优势。
Level-set methods for structural topology optimization: A review
https://dl.acm.org/doi/10.1007/s00158-013-0912-y用于确认 level-set 方法的分类、边界演化和数值实现脉络。
DTU Topology Optimization background
https://topopt.readthedocs.io/en/documentation/TopOpt.html作为 SIMP/过滤/灵敏度/MMA 的经典工程参考。
id="十三把课件内容再压实一遍页码线索与知识脉络">十三、把课件内容再压实一遍:页码线索与知识脉络
这一讲的幻灯片结构比较清楚,可以按“概念 → 方法 → 例子 → 工程化”四段来记。
1. 概念段
- 第 3 至 7 页主要在讲结构优化、拓扑优化、创成式设计的关系
- 这一段的重点不是公式,而是先把“为什么要允许拓扑变化”讲明白
- 核心关键词是:设计空间、约束、载荷路径、材料高密度区、低密度区
2. 方法段
- 第 21 至 28 页讲 SIMP
- 第 30 至 35 页讲 BESO
- 第 43 至 48 页讲 level-set
- 第 50 至 57 页讲 MMC
这些方法各自的共同底座都是:先做分析,再算灵敏度,再更新设计变量。区别只在于设计变量的物理意义不同。
3. 工程化段
- 第 60 至 68 页讲后处理、约束保持、CAD 重建
- 这部分说明数值优化结果如何走向制造与建模系统
- 也解释了为什么 IGA 讲拓扑优化时,不能只停留在“算出一张图”
4. 结尾段
- 第 72 页把本讲和整个 IGA 课程串起来
- 这里的逻辑其实很顺:分析工具越接近
CAD,拓扑优化越容易落地
课堂上最值得记住的一句话
拓扑优化不是简单“删材料”,而是围绕载荷路径、几何表达和制造约束,重新组织结构本身。
十四、SIMP / BESO /
Level-set / MMC 的横向比较
为了便于复习,这里把四种方法放在同一个坐标系里看。
| 维度 | SIMP | BESO | Level-set | MMC |
|---|---|---|---|---|
| 设计变量 | 密度 | 单元存在性 / 进化状态 | 隐函数参数 | 组件几何参数 |
| 边界表达 | 间接 | 间接 | 直接 | 直接 |
| 黑白程度 | 依赖惩罚与过滤 | 通常较高 | 很高 | 很高 |
| 后处理需求 | 较高 | 较高 | 中等 | 较低 |
| 几何可解释性 | 一般 | 一般 | 较好 | 很强 |
| 实现难度 | 低到中 | 中 | 中到高 | 中到高 |
| 与 CAD 关系 | 间接 | 间接 | 较近 | 最接近 |
这个表的价值在于帮助你做方法选择:
- 如果你要一个最稳妥、最容易上手的框架,选 SIMP
- 如果你想快速得到黑白结构,BESO 很合适
- 如果你特别在意边界质量,level-set 更有优势
- 如果你要和 CAD、制造约束深度结合,MMC 更有潜力
十五、几个常见误区
误区
1:拓扑优化就是把材料删掉
这句话太窄了。严格讲,拓扑优化是在给定约束下寻找最优材料布局,删减只是实现方式之一。真正关心的是:材料怎么分布才能让结构性能最优。
误区 2:SIMP 的灰度一定是坏事
灰度区在某些早期迭代里并不坏,它提供了连续优化的过渡空间。问题出在最终设计阶段如果仍然保留大量灰度,就缺乏物理和制造意义。
误区 3:IGA
只是更高级的有限元
IGA 的意义不只是“高阶”。它把几何建模和分析统一起来,这一点对拓扑优化尤其重要,因为优化结果最后总要回到几何与制造语言。
误区 4:后处理只是画图好看
后处理其实是工程闭环的一部分。没有后处理,拓扑优化只能停留在数值实验;完成 CAD 重建后,才有机会进入真实设计链条。
id="十六从算法角度再看一遍完整闭环">十六、从算法角度再看一遍完整闭环
一个典型的拓扑优化闭环可以概括成:
- 定义设计域:给定几何、边界、载荷、约束
- 选择设计变量:密度、隐函数、单元状态或组件参数
- 建立材料模型:SIMP 插值、显式边界或组件映射
- 求解结构响应:FEM / IGA 分析
- 计算灵敏度:得到目标函数下降方向
- 更新设计:OC、MMA、阈值移动、边界演化
- 施加过滤 / 平滑:抑制数值伪影
- 收敛判断:体积分数、目标函数变化、设计变量变化
- 后处理与重建:转为 CAD 可用模型
这个闭环的本质是:优化不是终点,几何化与工程化才是终点。
id="十七和创成式设计的关系再补一句">十七、和创成式设计的关系再补一句
课件里提到的“创成式设计”在商业软件里经常被包装成自动出方案的功能。底层看,它大多还是以下几类技术的组合:
- 拓扑优化
- 参数化建模
- 制造约束过滤
- 结果重建与光顺
也就是说,创成式设计更像一个产品层的总称;拓扑优化是其最核心的算法引擎之一。
十八、复习时的三问法
你复习这一讲时,可以强制自己回答三组问题:
1. 它改的是什么?
- 形状优化:边界
- 拓扑优化:材料布局和连通性
2. 它靠什么更新?
- SIMP:密度 + 惩罚
- BESO:进化删补
- Level-set:边界速度
- MMC:组件几何参数
3. 它最后怎么落地?
- 后处理
- CAD 重建
- 制造约束检查
- 与 IGA / CAD 工具链衔接
如果这三问能答顺,说明这一讲的主干已经抓住了。
十九、复习清单
MMC 的优势不只在“显式”,更在于它把几何参数直接变成优化变量