4. 形状优化基础与网格变形

尺寸优化改变的是梁的截面、壳的厚度、弹簧的刚度这类“参数”;形状优化改变的是结构本身的几何边界——孔的位置、圆角的半径、加强筋的走向、外轮廓的起伏。在 OptiStruct 中,形状优化并不重新划分网格,而是通过网格变形把设计域内的节点按一定规则移动,从而在保持网格拓扑不变的前提下改变结构形状。理解这一点,是掌握形状优化的起点。

形状设计变量:从“节点位移”到“可调参数”

形状优化的最小单元是形状设计变量。它本质上是一组节点位移的加权组合:设计变量取 0 时结构处于初始形状,取 1 时结构处于扰动后的形状,中间值则按线性插值得到过渡形状。因此一个形状变量可以同时控制成百上千个节点的移动,而这些节点的移动方向与比例由形状基向量决定。

在 HyperMorph 中,形状变量通常由三类操作生成:Morph 变形(直接拖动网格节点或控制柄)、Domain 域变形(对一组节点施加整体形变,如拉伸、弯曲、扭转)、以及Shape 形状基(把已有的变形结果保存为可复用的基向量)。工程上更常用的是“先做一次手工变形,再把它注册为形状变量”,这样既直观又便于控制。

一个形状变量 = 一组节点位移向量 × 一个标量系数。系数范围通常取 0~1,也可取负值表示反向变形;多个形状变量叠加时,总位移是各基向量的线性组合。

网格变形技术:让网格“跟着形状走”

网格变形不是简单地把节点坐标加上一个常数,而是通过扰动向量场在网格上传播。OptiStruct 支持多种变形方式,常见的有:

  • 直接节点扰动:手动指定若干节点的位移,其余节点通过形函数插值跟随。适合局部小范围调整,如倒角、圆角。
  • 域变形(Domain Morph):把网格划分为若干变形域,每个域内节点按统一规则移动。适合整体拉伸、弯曲、扭转。
  • 自由变形(Free-form Deformation, FFD):用控制体包裹结构,通过移动控制点间接驱动网格。适合复杂曲面的整体形状调整。
  • 形状基叠加:把多个已保存的变形基按权重叠加,生成新的形状。适合多工况、多目标下的形状组合。

无论哪种方式,核心都是保持网格质量。变形过程中如果单元过度扭曲,会出现负体积、雅可比为负等问题,导致求解失败。因此变形后必须检查单元质量,必要时限制变形幅度或重新划分局部网格。

形状优化中的网格变形与形状基向量 初始网格 设计域节点 变形 变形后网格 节点按基向量移动 注册 形状基向量 位移向量场(可复用) 形状变量叠加关系 基向量 A(系数 α) + 基向量 B(系数 β) = 总位移 = α·A + β·B 约束:节点位移上限、单元质量下限、可制造性边界(拔模方向、最小圆角、对称性) 目标:在满足约束下,使结构刚度最大 / 质量最小 / 应力峰值最低

节点扰动控制:变形不能“失控”

形状优化最怕的是网格变形过大导致求解失败。因此必须对节点扰动施加控制,常见手段包括:

  • 位移上下限:为每个形状变量设定最大/最小系数,例如 0~0.8,防止变形超出设计空间。
  • 节点固定:把装配面、连接孔、对称面附近的节点设为不可移动,保证接口尺寸不变。
  • 对称约束:对对称结构,强制左右两侧节点位移镜像,避免优化结果出现不对称。
  • 网格质量监控:在变形后检查最小雅可比、最大长宽比、翘曲度,超限则自动回退或提示。

实际项目中,建议先做一次“变形预演”:把形状变量从 0 拉到 1,观察网格是否出现明显畸变。如果局部单元已经严重扭曲,说明该区域的变形域划分不合理,需要重新划分域或增加过渡区。

形状基向量与工程可制造性

形状基向量是形状优化的“素材库”。一个成熟的优化流程通常先建立若干条基向量,例如:

  • 基向量 1:外轮廓整体外扩,用于增加截面惯性矩;
  • 基向量 2:加强筋高度变化,用于调整局部刚度;
  • 基向量 3:孔位偏移,用于改善应力集中;
  • 基向量 4:圆角半径变化,用于降低缺口应力。

这些基向量可以单独使用,也可以组合使用。OptiStruct 会在优化过程中自动调整各基向量的系数,寻找最优组合。但必须注意:数学上的最优形状未必是可制造的。例如,优化结果可能给出一个内凹的拔模面,或者一个小于刀具半径的圆角,这些在冲压、铸造或注塑中都无法实现。

工程可制造性约束必须在优化前就加入,而不是等优化完再“修形状”。常见做法包括:限制拔模方向上的最小角度、设定最小圆角半径、约束壁厚变化范围、保持对称性、避免出现倒扣结构。

在 OptiStruct 中,可以通过 MORPH 卡片定义形状变量,通过 DESVAR 关联设计变量与形状基,通过 DVPREL1 或 DVPREL2 建立设计变量与属性之间的线性关系。一个典型的形状优化输入片段如下:

DESVAR, 1, shape_A, 0.0, 1.0, 0.5
DESVAR, 2, shape_B, 0.0, 0.8, 0.3
DVPREL1, 10, MORPH, 1, , , 1.0, 0.0
DVPREL1, 11, MORPH, 2, , , 1.0, 0.0
DRESP1, 1, MASS, MASS
DRESP1, 2, COMP, STRESS, 1
OBJECTIVE, MIN, MASS
CONSTRAINT, 1, STRESS, , 250.0

这段卡片的意思是:定义两个形状变量,初始值分别为 0.5 和 0.3,取值范围 0~1 和 0~0.8;目标是最小化质量,约束是应力不超过 250 MPa。求解器会在每次迭代中调整这两个系数,驱动网格变形,重新计算刚度和应力,直到收敛。

结果判读与常见问题

形状优化完成后,不要只看目标函数下降了多少,还要检查三件事:

  1. 形状是否合理:变形后的几何是否出现尖角、薄壁、倒扣或明显不连续。
  2. 网格质量是否达标:最小雅可比是否大于 0.3,长宽比是否小于 5,翘曲度是否在允许范围内。
  3. 约束是否满足:应力、位移、频率等约束是否全部在限值以内,有无违反。

如果优化结果不可制造,通常需要回到形状基向量阶段,增加制造约束或调整变形域。例如,把拔模方向作为节点移动的约束方向,或者把最小圆角半径作为形状变量的下限。形状优化不是一次性的“黑箱计算”,而是“建模—变形—优化—检查—修正”的迭代过程。

掌握形状设计变量、网格变形、节点扰动控制和形状基向量这四个环节,就能在 OptiStruct 中把形状优化从“能跑”推进到“能用”。下一阶段,我们将进入尺寸与形状联合优化的建模方法,把两类变量放在同一个优化模型中协同求解。