3. 强度与刚度的力学本质

在结构优化中,强度与刚度是两个最常被同时提及、却最容易在建模阶段被混淆的概念。它们都源于同一个位移场,却通过不同的数学路径进入优化模型:强度关心材料是否会被“拉坏”,刚度关心结构是否“变形过大”。理解这两条路径的分岔点,是正确设置 OptiStruct 优化三要素(设计变量、约束、目标)的前提。

一、从位移场出发:应力、应变与柔度的共同源头

有限元求解的核心结果是节点位移向量 u。对线弹性问题,静力平衡方程为 K u = F,其中 K 为整体刚度矩阵,F 为外载荷向量。一旦解出 u,后续所有力学量都是它的派生量:

  • 应变:单元内应变 ε = B ue,B 为应变-位移矩阵,反映位移的空间梯度。应变是无量纲量,描述材料局部被拉伸或剪切的程度。
  • 应力:由本构关系 σ = D ε 得到,D 为弹性矩阵。对金属材料,σ 的单位是 MPa 或 GPa,是判断材料是否屈服或破坏的直接依据。
  • 位移:节点位移 u 本身,单位是 mm 或 m,是刚度最直观的度量对象。
  • 柔度:定义为 C = FT u,即外力在位移上做的功的两倍(在线弹性下等于两倍应变能)。柔度越小,结构越刚。

这四者的关系可以概括为:位移是自变量,应变是位移的梯度,应力是应变的线性映射,柔度是位移与外力的加权积分。强度约束作用在应力上,刚度目标作用在柔度或位移上,二者共享同一个位移解,但在优化中的角色完全不同。

强度与刚度的力学分岔:同一位移场,两条优化路径 位移场 u K u = F 求解结果 强度路径:应变 → 应力 ε = B uₑ(应变-位移矩阵) σ = D ε(本构关系) 单位:MPa / GPa 强度约束(不等式) σ_vm ≤ σ_allow 刚度路径:位移 → 柔度 u = K⁻¹ F(节点位移) C = Fᵀ u(柔度) 单位:mm / N·mm 刚度目标(最小化) min C = Fᵀ u OptiStruct 优化模型 设计变量 x → 约束 σ_vm(x) ≤ σ_allow → 目标 min C(x) 强度约束与刚度目标共享同一位移解,但进入优化的数学角色不同

二、强度约束的数学表达:从应力到不等式

强度约束的本质是“材料不失效”。对延性金属,常用 von Mises 等效应力作为判据。在 OptiStruct 中,强度约束通常写成:

σ_vm(x) ≤ σ_allow = σ_yield / SF

其中 x 为设计变量(如壳单元厚度、拓扑密度),σ_yield 为材料屈服强度,SF 为安全系数。例如某铝合金 σ_yield = 280 MPa,取 SF = 1.5,则 σ_allow ≈ 186.7 MPa。优化过程中,每个迭代步都会计算各单元的 σ_vm,并检查是否越界。

需要特别注意的是,应力对设计变量的灵敏度计算比柔度复杂得多。在拓扑优化中,当单元密度趋近于 0 时,应力会出现“奇异性”问题,直接使用 σ_vm 约束容易导致收敛困难。工程上常采用应力松弛或全局应力约束(如 P-norm 凝聚)来改善数值稳定性。这也是为什么很多教材建议:先用柔度目标获得合理拓扑,再引入应力约束进行二次优化。

三、刚度目标的数学表达:柔度最小化

刚度目标在 OptiStruct 中最常见的写法是柔度最小化:

min C(x) = Fᵀ u(x)
s.t.  K(x) u(x) = F
      Σ xₑ vₑ ≤ V_f · V₀
      0 < x_min ≤ xₑ ≤ 1

这里 C 是柔度,V_f 是体积分数,V₀ 是设计域总体积。柔度最小化等价于在给定材料用量下最大化整体刚度。与强度约束不同,柔度是位移的二次型,其灵敏度可以通过伴随法高效计算:

∂C/∂xₑ = -uᵀ (∂K/∂xₑ) u

这个表达式只依赖位移场和刚度矩阵对设计变量的导数,计算成本低,因此柔度最小化成为拓扑优化中最稳健、最常用的目标函数。

四、强度与刚度的协同:不是二选一,而是分层处理

强度与刚度在优化中并非对立,而是需要分层协同。一个典型的工程流程是:

  1. 第一阶段:以柔度最小化为目标,体积分数为约束,获得传力路径清晰的拓扑构型。此阶段不直接施加应力约束,避免奇异性导致早熟收敛。
  2. 第二阶段:在获得的拓扑基础上,引入 von Mises 应力约束,以质量或柔度为目标进行尺寸/形状优化,使应力分布均匀化。
  3. 第三阶段:检查关键位移是否满足刚度要求(如最大位移 ≤ 0.5 mm),若柔度目标已间接控制位移,则无需额外约束;若存在局部位移热点,可补充位移约束。
判断依据:若优化结果中最大应力远低于许用应力,而位移接近限值,说明刚度是主控因素;反之,若应力接近许用值而位移很小,说明强度是主控因素。OptiStruct 的 OUTPUT 中可同时输出 COMPLIANCE 和 STRESS,用于判断主控约束。

五、一个可复现的示例参数设置

假设一块 200 mm × 100 mm × 5 mm 的铝合金板,左端固支,右端下角施加 500 N 向下集中力。材料 E = 71000 MPa,ν = 0.33,σ_yield = 280 MPa。设计域为板中部 120 mm × 60 mm 区域,体积分数上限 0.4。

优化设置项 取值 说明
设计变量 单元密度 xₑ ∈ [0.01, 1] 拓扑优化,SIMP 插值,惩罚因子 p=3
目标函数 min C = Fᵀ u 柔度最小化,等价于刚度最大化
体积约束 Σ xₑ vₑ ≤ 0.4 V₀ 材料用量不超过设计域的 40%
强度约束(第二阶段) σ_vm ≤ 186.7 MPa SF = 1.5,P-norm 凝聚指数 p=8
位移检查 u_max ≤ 0.5 mm 作为后处理验证,不直接约束

运行后,若柔度从初始的约 120 N·mm 降至约 35 N·mm,且最大 von Mises 应力约 150 MPa,则说明结构在满足强度约束的同时实现了刚度提升。若最大应力超过 186.7 MPa,则需要提高体积分数上限或调整安全系数,重新迭代。

常见误区:把刚度目标误写成“最小化位移”。位移是向量,不能直接作为标量目标;柔度是位移与外力的标量积,才是可微、可优化的目标函数。若确实需要控制某点位移,应将其写成位移约束,而非目标。

总结来说,强度约束回答“材料会不会坏”,刚度目标回答“结构变形大不大”。二者共享位移解,但强度约束是应力空间的不等式,刚度目标是位移空间的二次型。在 OptiStruct 中,正确的做法是:用柔度最小化驱动拓扑生成,用应力约束保证材料安全,用位移检查兜底刚度需求。理解这条分岔路径,后续的灵敏度分析、约束凝聚和收敛判断才能有的放矢。