2. OptiStruct优化求解流程回顾
在进入收敛诊断与可信度评估之前,有必要把 OptiStruct 一次完整优化求解的链路重新梳理清楚。原因很直接:绝大多数“不收敛”并不是求解器本身出了问题,而是链路上某一环的输入、定义或映射关系存在缺陷。只有把链路拆开,才能知道在哪个环节埋入检查点、在哪个环节读取收敛信息、在哪个环节判断结果是否可信。
一、完整链路的五个阶段
OptiStruct 的优化求解可以理解为一条从物理模型到数学规划、再回到物理结果的闭环链路,包含五个阶段:
- 有限元建模:网格、材料、属性、连接、边界条件与载荷工况。这一阶段决定的是“物理问题是否被正确描述”。
- 设计变量定义:拓扑优化的单元密度、尺寸优化的板厚/截面、形状优化的节点扰动、自由尺寸优化的壳单元厚度变量等。设计变量决定“哪些量可以被改变、改变范围多大”。
- 响应与约束定义:把工程要求翻译成可计算的响应量,如柔度、质量、体积分数、位移、应力、频率、屈曲因子,再施加上下限形成约束。
- 优化求解:OptiStruct 内部完成灵敏度分析、近似模型构建、对偶/原问题求解、设计更新,形成一次次迭代。
- 结果与收敛判定:读取目标函数、约束违反量、设计变量变化率,判断是否满足收敛准则,并评估结果的可信度。
这五个阶段不是单向的,而是带反馈的闭环:求解阶段的收敛信息会反过来提示前四个阶段是否需要修正。下图给出这条链路以及各阶段对应的收敛评估切入点。
二、各阶段的关键输入与常见陷阱
有限元建模阶段最容易被忽视的是网格与连接。拓扑优化中,若存在大量畸形单元或未正确耦合的刚性连接,灵敏度计算会出现局部异常,表现为目标函数在最初几次迭代就剧烈跳动。建议在优化前先做一次静力分析,确认位移与应力分布符合工程直觉,再进入优化。
设计变量定义阶段的核心是可行域。以拓扑优化为例,若体积分数上限设为 0.15,而载荷与边界条件又要求较高刚度,可行域可能非常狭窄,求解器会在边界附近反复试探。此时应先用较宽松的体积分数(如 0.3)跑通链路,再逐步收紧。
响应与约束阶段最常见的问题是约束冲突。例如同时约束某个节点的位移上限和整体柔度上限,而两者在物理上相互制约,就会导致无可行解。判断方法是查看 .out 文件中的约束违反量,若某约束始终无法满足且数值稳定,基本可判定为冲突约束。
优化求解阶段需要关注的是迭代历史。OptiStruct 默认的收敛准则包括:目标函数变化率小于目标容差、约束违反量小于约束容差、设计变量变化率小于变量容差,三者同时满足才判定收敛。若迭代次数达到上限仍未满足,求解器会以“达到最大迭代次数”结束,此时结果未必不可用,但必须评估。
三、收敛评估的三个切入点
结合链路,收敛评估可以归纳为三个切入点:
- 入口检查:在提交优化前,检查模型、变量、约束三者的自洽性。这一步成本最低,却能排除大部分“假不收敛”。
- 过程观察:在迭代过程中观察目标函数、约束违反量、设计变量变化率三条曲线。正常收敛应表现为目标单调下降或平稳、约束违反量逐步趋近于零、变量变化率逐步减小。
- 出口判定:在求解结束后,读取收敛状态、迭代次数、最终目标值与约束值,并结合工程合理性判断结果是否可信。
四、一个可复用的检查清单
下表给出提交优化前建议逐项确认的内容,可直接作为操作检查表使用。
| 阶段 | 检查项 | 判断依据 |
|---|---|---|
| 建模 | 网格质量、连接耦合、载荷路径 | 静力分析位移/应力合理,无异常集中 |
| 变量 | 变量类型、上下限、初始值 | 可行域非空,初始设计满足约束 |
| 约束 | 响应定义、上下限、约束数量 | 无冲突约束,约束违反量初始可控 |
| 求解 | 迭代次数、收敛容差、输出频率 | 迭代曲线可读,收敛信息完整输出 |
| 结果 | 目标值、约束值、变量分布 | 结果符合工程直觉,可解释 |