2. 工况载荷与边界条件的参数化建模

在OptiStruct多工况优化中,载荷与边界条件不是“一次性画上去的图形”,而是一组可被工况(Subcase)反复引用的参数化实体。理解这一点,是掌握多工况建模的关键:HyperMesh中的载荷与约束本质上是卡片(Card)与集合(Set)的组合,工况通过引用这些集合来组装分析工况。因此,参数化建模的核心不是重复创建载荷,而是建立“载荷/约束定义一次、工况多次引用”的引用关系。

一、载荷与约束的卡片化本质

在HyperMesh的OptiStruct用户配置(OptiStruct User Profile)下,每一个载荷或约束都对应一张求解器卡片。常见的载荷卡片包括:

  • FORCE:集中力,需指定节点、方向矢量、幅值;
  • MOMENT:集中力矩;
  • PLOAD4:压力载荷,作用于壳单元或面;
  • GRAV:重力/加速度惯性载荷,通过加速度矢量与方向定义;
  • RLOAD2 / TLOAD1:频响与瞬态载荷(本节暂不展开)。

约束卡片主要是SPC(单点约束),通过SPCADD可对多个SPC集合做叠加。这些卡片在HyperMesh中通常以Load Collector(载荷集合)的形式组织,每个Load Collector对应一个卡片类型,并拥有唯一的名称与ID。参数化的第一步,就是给每个载荷集合起一个语义化名称,例如LC_FORCE_Y、LC_SPC_BASE,而不是默认的loadcol1。

二、工况(Subcase)与引用关系

工况在OptiStruct中由SUBCASE卡片定义,每个工况通过LOAD、SPC、METHOD等关键字引用对应的集合ID。例如:

SUBCASE 1
  LABEL = 工况A_垂向冲击
  LOAD  = 10
  SPC   = 20
  METHOD = 30

SUBCASE 2
  LABEL = 工况B_侧向制动
  LOAD  = 11
  SPC   = 20
  METHOD = 30

这里工况1与工况2共享同一个约束集合(SPC=20)和同一个求解方法(METHOD=30),但引用了不同的载荷集合(LOAD=10与LOAD=11)。这正是参数化建模的价值:约束只定义一次,载荷按工况切换,工况组合通过引用关系自动组装。

在HyperMesh中,可以通过Analysis → Optimize → Subcase面板或直接编辑.fem文件来创建工况。推荐在HyperMesh中创建,因为界面会自动维护ID引用关系,避免手工编辑导致的ID冲突。

三、载荷步与工况组合的建立流程

实际建模时,建议按以下顺序组织:

  1. 创建约束集合:将所有边界条件(如底座固定、对称面约束)放入一个或多个SPC Load Collector,命名如SPC_BASE。
  2. 创建载荷集合:按载荷类型和方向分别建立Load Collector,例如FORCE_Y_UP、FORCE_X_BRAKE、GRAV_Z。
  3. 创建工况:在Subcase面板中新建工况,指定其引用的LOAD与SPC集合ID。
  4. 检查引用完整性:确认每个工况的LOAD与SPC均指向已存在的集合,且ID不重复。

对于多工况优化,还需要注意:OptiStruct的优化求解器会同时处理所有工况,目标函数与约束通常按工况加权或取极值。因此,工况的命名与分组应清晰反映其物理含义,便于后续在DESOBJ、DRESP等卡片中引用。

四、参数化建模的引用关系图解

下图展示了载荷集合、约束集合与工况之间的引用关系。左侧是定义层(Load Collector),右侧是引用层(Subcase),箭头表示引用方向。可以看到,多个工况可以共享同一个约束集合,而载荷集合则按工况独立引用。

载荷/约束集合与工况的引用关系 定义层:Load Collector SPC_BASE (ID=20) 底座固定约束 FORCE_Y_UP (ID=10) 垂向集中力 FORCE_X_BRAKE (ID=11) 侧向制动力 GRAV_Z (ID=12) 重力惯性载荷 引用层:Subcase SUBCASE 1 工况A_垂向冲击 LOAD=10 SPC=20 SUBCASE 2 工况B_侧向制动 LOAD=11 SPC=20 SUBCASE 3 工况C_重力+垂向 LOAD=10+12 SPC=20 共享约束 约束引用 载荷引用 惯性载荷引用

五、参数化建模中的常见问题与检查要点

在实际操作中,最容易出现的问题不是卡片写错,而是引用关系断裂。例如:修改了某个Load Collector的ID,但工况中的LOAD字段没有同步更新,导致求解器报“LOAD ID not found”。因此,建议在提交计算前做一次引用完整性检查:

  • 每个SUBCASE的LOAD、SPC、METHOD字段是否都指向已存在的集合ID;
  • 是否存在未被任何工况引用的“孤立”载荷集合(可能是误建或遗漏);
  • 同一工况中是否重复引用了同一类型的集合(如两个SPC),此时需用SPCADD合并;
  • 工况的LABEL是否清晰表达了载荷组合与约束状态,便于后续优化结果解读。
在HyperMesh中直接删除Load Collector时,若该集合已被工况引用,软件通常会提示“该集合被引用,是否继续删除”。若强行删除,工况中的引用ID会变成无效值,求解时直接报错。建议先解除引用,再删除集合。

六、从参数化建模到多工况优化

当工况与载荷/约束的引用关系建立完成后,多工况优化的输入就准备好了。后续在DESOBJ中定义目标(如最小化所有工况的最大柔度),在DRESP中定义约束(如各工况下节点位移不超过许用值),OptiStruct会自动遍历所有SUBCASE并组装灵敏度信息。此时,工况的命名与分组是否清晰,直接决定了优化结果的可读性与可维护性。

因此,参数化建模不仅是“把载荷加上去”,更是为后续优化建立一套可追溯、可复用、可扩展的工况引用体系。建议在项目初期就制定命名规范,例如LC_载荷类型_方向、SUBCASE_工况编号_描述,并在整个优化流程中保持一致。