3. 设计变量建模实战

在OptiStruct多目标优化流程中,设计变量是连接“几何模型”与“数学优化问题”的桥梁。HyperMesh的Optimization面板提供了三类基础设计变量:尺寸变量(size)、形状变量(shape)与拓扑变量(topology)。它们分别对应不同的设计空间表达方式,也决定了后续响应、约束与目标的建立方式。本节以一个简化的支架结构为例,说明如何在HyperMesh中实际创建这三类变量,并把它们与属性、单元或节点正确关联。

一、三类设计变量的本质差异

尺寸变量作用于属性(property),典型对象是壳单元的厚度(T)或梁单元的截面尺寸。它不改变网格形状,只改变单元属性值,因此优化后几何拓扑保持不变,适合板厚分布优化、复合材料铺层厚度优化等场景。

形状变量作用于节点(node),通过定义节点扰动方向与幅值来改变结构外形。它通常借助HyperMorph生成,可控制圆角、加强筋位置、翻边高度等。形状变量不改变网格连接关系,但会改变节点坐标,因此需要保证变形后网格质量仍可接受。

拓扑变量作用于单元(element),通过单元密度(density)在0~1之间连续变化,决定材料保留或删除。它允许结构发生孔洞、开槽、材料重分布等根本性变化,适合概念设计阶段的材料布局探索。

三类变量可以同时存在于一个优化任务中,但建议先分别验证其单独效果,再组合使用,避免设计空间过大导致收敛困难或结果难以解释。

二、尺寸变量创建与属性关联

在HyperMesh中创建尺寸变量的一般路径为:Optimization → size → create。以支架底板为例,假设底板由PSHELL属性plate_mid定义,初始厚度为2.0 mm。我们希望厚度在1.0~3.0 mm之间变化,步长0.1 mm。

Optimization → size → create
  name:        t_plate_mid
  type:        thickness
  property:    plate_mid
  initial:     2.0
  lower bound: 1.0
  upper bound: 3.0
  move limit:  0.1
  cards:       PSHELL

关键点在于property选择:必须选中实际承载的PSHELL,而不是单元集合。若模型中存在多个PSHELL,可一次创建多个尺寸变量,或使用desvar批量关联。创建完成后,可在Optimization → size → review中检查变量列表、初始值与上下限。若变量未出现在列表中,通常是因为属性未被正确选中,或卡片类型与变量类型不匹配。

尺寸变量的响应通常包括质量、体积、应力、位移等。例如,将t_plate_mid与mass响应关联后,优化器即可在满足应力约束的前提下搜索最小质量对应的厚度分布。

三、形状变量创建与节点关联

形状变量依赖HyperMorph。首先需要在Morph面板中建立域(domain)、手柄(handle)或直接使用shape变量。以支架侧板翻边高度为例,操作流程如下:

  1. 进入Morph → create → domains,框选侧板区域,生成一个morph域。
  2. 进入Morph → create → handles,在翻边顶部创建手柄,并设置扰动方向为Z向。
  3. 进入Optimization → shape → create,选择该手柄,设置幅值范围-5~+5 mm。
  4. 在shape → review中预览变形效果,确认网格无翻转、无穿透。

形状变量的核心是节点扰动方向与幅值。方向定义错误会导致优化结果与预期相反,因此建议在创建后先用Morph → animate检查变形方向。若翻边需要同时沿Z向和Y向变化,可创建两个形状变量并分别控制,或使用组合变量。

形状变量会改变节点坐标,若变形后单元雅可比为负或长宽比过大,OptiStruct会在优化过程中报错或提前终止。建议在创建形状变量后先做一次静力分析,确认模型仍可正常求解。

四、拓扑变量创建与单元关联

拓扑变量通过Optimization → topology → create创建。与尺寸、形状不同,拓扑变量通常作用于一个设计区域,而非单个属性。以支架中间腹板为例,假设设计区域由单元集合design_region定义,材料为钢,体积分数目标为0.3。

Optimization → topology → create
  name:        topo_web
  design area: design_region
  material:    steel
  volume frac: 0.3
  draw direction: Z
  member size: 3.0

其中volume frac表示保留材料体积占设计区域总体积的比例;draw direction用于控制拔模方向,适合铸造件;member size用于控制最小成员尺寸,避免出现过于细碎的材料分布。创建后需在topology → review中确认设计区域单元数量与材料属性。

拓扑优化的结果通常以单元密度云图呈现。密度接近1的区域表示材料应保留,接近0的区域表示可删除。实际工程中,还需结合OSSmooth或HyperMesh的等值面提取功能,将密度结果转化为可再设计的几何模型。

五、变量关联与检查清单

三类变量创建完成后,必须与响应、约束和目标建立关联,否则优化器无法识别设计空间。建议按以下顺序检查:

检查项尺寸变量形状变量拓扑变量
作用对象PSHELL/PBEAM属性Morph手柄/节点单元集合
典型上下限1.0~3.0 mm-5~+5 mm体积分数0.2~0.5
常见响应质量、应力、位移应力、模态、位移柔度、体积、频率
结果形式厚度分布云图变形后几何密度云图

完成关联后,可在Optimization → opti control中设置最大迭代次数、收敛容差等参数,然后提交OptiStruct求解。若求解日志中出现“no design variables”或“design variable not linked”,应返回检查变量是否被响应或约束引用。

HyperMesh 三类设计变量建模与属性关联 尺寸变量 Size 作用对象:PSHELL / PBEAM 参数:厚度 T 范围:1.0 ~ 3.0 mm 步长:0.1 mm 结果:厚度分布云图 不改变网格拓扑 形状变量 Shape 作用对象:Morph 手柄 / 节点 参数:扰动方向 + 幅值 范围:-5 ~ +5 mm 依赖:HyperMorph 域 结果:变形后几何 改变节点坐标 拓扑变量 Topology 作用对象:单元集合 参数:单元密度 0~1 体积分数:0.3 拔模方向:Z 结果:密度云图 允许孔洞与材料删除 响应与约束关联 质量 / 体积 应力 / 位移 模态频率 柔度 / 体积分数 → 目标函数 → 约束条件 → 约束条件 → 目标 / 约束 OptiStruct 求解 检查:变量是否被响应引用 · 属性/单元是否正确选中 · 变形后网格质量是否合格

最后需要强调:三类变量的关联属性不是一次性动作,而是贯穿建模、求解与后处理的连续检查。尺寸变量要确认PSHELL卡片被正确引用;形状变量要确认Morph域与手柄方向一致;拓扑变量要确认设计区域单元未被其他属性覆盖。只有变量、响应、约束三者形成闭环,OptiStruct才能正确构造优化问题并给出可信的权衡方案。