2. 拓扑优化理论基础

拓扑优化要在给定设计域内回答一个根本问题:材料应该放在哪里、留多少。连续体拓扑优化最主流的求解框架是变密度法(Variable Density Method),它把“材料有无”这一离散问题松弛为每个单元一个连续变化的相对密度变量 ρe,取值范围 [0, 1]。ρe=1 表示实体材料,ρe=0 表示孔洞,中间值则代表一种“假想材料”。这样做的直接好处是:设计变量连续可导,可以用成熟的梯度型数学规划算法(如 MMA、GCMMA、SLP)高效求解,而不必面对组合爆炸的 0/1 整数规划。

但松弛带来一个必须解决的副作用:如果直接把单元刚度按 ρe 线性缩放,即 Ee=ρeE0,优化器会发现“中间密度”非常划算——它既能贡献刚度,又只消耗少量材料,于是结果会布满灰色单元,无法制造。为此需要引入材料惩罚,让中间密度的刚度收益远低于其材料代价,迫使设计变量向 0 或 1 两端聚集。SIMP(Solid Isotropic Material with Penalization)正是最经典的惩罚插值模型。

SIMP 插值模型与惩罚机制

SIMP 将单元弹性模量写成密度的幂函数:

E_e(ρ_e) = E_min + ρ_e^p · (E_0 − E_min)

其中:
  E_0    实体材料弹性模量(ρ=1)
  E_min  孔洞材料弹性模量,取 E_0/1000 量级,防止刚度矩阵奇异
  p      惩罚因子,通常取 p = 3
  ρ_e    单元相对密度,设计变量,0 ≤ ρ_e ≤ 1

惩罚因子 p 的作用可以从“比刚度”角度理解。单元刚度贡献约为 ρepE0,而材料用量正比于 ρe。单位材料提供的刚度即 ρep−1E0。当 p>1 时,ρe 越小,这个比值越低;p=3 时,ρe=0.5 的单元只能提供 0.25 倍实体刚度,却要占用 0.5 的材料,性价比极差。优化器在满足刚度约束的前提下会主动把中间密度推向两端,从而得到接近 0/1 的清晰构型。p 太小(如 p=1)惩罚不足,结果灰糊;p 太大(如 p=5)则非凸性增强,容易陷入局部解并出现棋盘格、网格依赖等数值不稳定。

工程实践中常采用连续化策略:前若干次迭代用较小的 p(如 1→2)让设计快速铺开,再逐步升到 p=3 细化边界。这比一开始就用 p=3 更稳健,尤其对多工况、多约束问题。

优化列式与灵敏度

以最小柔顺度(即最大刚度)为目标、材料体积为约束的经典列式如下:

min  c(ρ) = U^T K U = Σ_e ρ_e^p · u_e^T k_0 u_e
s.t. K U = F
     V(ρ) = Σ_e ρ_e · v_e ≤ f · V_0
     0 < ρ_min ≤ ρ_e ≤ 1

目标灵敏度: ∂c/∂ρ_e = −p · ρ_e^(p−1) · u_e^T k_0 u_e
体积灵敏度: ∂V/∂ρ_e = v_e

灵敏度是梯度算法的“方向盘”。目标灵敏度为负,说明增大 ρe 会降低柔顺度(提高刚度),但体积约束会限制总用量。优化器据此在“加材料提刚度”和“减材料省体积”之间做权衡,最终把材料集中到传力路径上。ρmin 一般取 0.001,避免单元刚度完全为零导致求解失败。

中间密度抑制与数值不稳定

仅有 SIMP 惩罚还不够,连续体拓扑优化常见三类数值问题:棋盘格(相邻单元密度黑白交替)、网格依赖(网格越细,构型越碎)、局部极值。抑制手段主要有:

  • 密度过滤:对每个单元,用其邻域内单元的密度加权平均,权重随距离衰减。过滤半径 rmin 通常取 1.5~3 倍单元尺寸,它同时抑制棋盘格并引入最小长度尺度,缓解网格依赖。
  • 灵敏度过滤:对灵敏度而非密度做同样加权,计算更简单,是 OptiStruct 等商业软件的常用做法。
  • Heaviside 投影:在过滤后加一层阈值投影,把中间密度进一步推向 0/1,可得到更锐利的边界,但需配合连续化参数。

判断结果是否“干净”,可看两个指标:一是中间密度单元占比,通常希望 ρ∈(0.2, 0.8) 的单元少于 5%~10%;二是目标函数随迭代的收敛曲线,应平稳下降并趋于平台,若持续振荡则需检查过滤半径、惩罚因子或网格质量。

变密度法 SIMP 拓扑优化核心链路 设计域离散 N 个有限单元 设计变量 ρₑ ∈ [0,1] 初始 ρₑ = f(体积分数) SIMP 材料插值 Eₑ = E_min + ρₑᵖ(E₀−E_min) 惩罚因子 p = 3 中间密度刚度收益低 有限元求解 K(ρ) U = F 得位移场 U 算柔顺度 c = UᵀKU 灵敏度 ∂c/∂ρₑ ∂V/∂ρₑ 梯度方向 密度/灵敏度过滤 + 数学规划更新 邻域加权平均,半径 r_min ≈ 1.5~3 倍单元尺寸 MMA / GCMMA 更新 ρₑ,满足体积约束 抑制棋盘格、网格依赖,推动密度向 0/1 聚集 迭代收敛判断 收敛与结果判读 目标函数变化 < 容差(如 0.1%) 中间密度单元占比 < 5%~10% 构型清晰、传力路径连续 关键参数速查 惩罚因子 p:1(无惩罚,灰糊)→ 3(常用)→ 5(易局部解);过滤半径 r_min:过小残留棋盘格,过大丢失细节;ρ_min:0.001 防奇异。 连续化策略:p 由 1 逐步升至 3,配合过滤,可显著提升收敛稳定性与构型清晰度。

工程实现要点与示例参数

在 OptiStruct 中,拓扑优化通过 TOPO 卡片定义设计变量,DESVAR 关联密度,MAT1 提供 E0,惩罚与过滤在 OPTIMIZATION 子面板设置。一个典型的教学示例:设计域 200 mm × 100 mm × 5 mm,网格 2 mm,材料 E0=210 GPa、ν=0.3,左端固支、右端下角施加 500 N 集中力,体积分数约束 f=0.4,惩罚 p=3,过滤半径 rmin=4 mm(2 倍单元尺寸)。迭代约 60~80 次后,目标柔顺度从初始约 12.5 N·mm 降至约 3.8 N·mm 并趋于平台,中间密度单元占比约 4%,构型呈现清晰的桁架式传力路径。这些数值属于合理假设的示例,实际结果随网格、载荷与约束不同而变化。

若结果出现大面积灰色或棋盘格,优先检查:惩罚因子是否被误设为 1;过滤半径是否小于单元尺寸;体积分数是否过高(如 f>0.6 时中间密度天然增多);网格是否过粗导致边界无法分辨。

理解变密度法、SIMP 插值、材料惩罚与中间密度抑制这条逻辑链,是后续在 OptiStruct 中正确设置拓扑优化参数、判读优化结果并做出工程决策的基础。密度变量是“因”,SIMP 惩罚是“手段”,中间密度抑制是“保障”,三者共同决定了最终构型是否可制造、可解释。