2. 优化结果文件体系解析

在OptiStruct完成一次拓扑优化或形貌优化之后,求解器并不会只留下一个“结果文件”。一次完整的优化分析通常会在工作目录下生成一组相互关联的文件,它们分别承担模型描述、迭代记录、结果场输出、日志诊断和重启动等不同职责。如果只盯着.h3d或.mvw看,很容易在后续重构与再验证时丢失关键信息。理解这套文件体系,本质上是在回答三个问题:优化过程留下了什么、哪些数据是重构必需的、再验证时应该从哪里取输入。

一、OptiStruct优化分析的主要输出文件类型

以常见的拓扑优化为例,在HyperMesh中提交OptiStruct求解后,工作目录中通常会出现以下文件(不同版本和求解设置下略有差异):

文件典型内容在重构/再验证中的作用
*.fem求解器输入卡片,包含网格、材料、属性、边界条件、优化响应与约束定义重构的原始模型依据,再验证时通常以此为基准修改
*.out求解日志、迭代历史、目标函数与约束的收敛曲线、警告与错误判断优化是否收敛、约束是否满足、迭代是否异常
*.h3d各迭代步的位移、应力、密度、单元贡献等结果场查看密度分布、识别材料保留/去除区域,是重构的直接视觉依据
*.mvwHyperView结果会话文件,预置了结果页、云图、剖切等视图快速复现优化结果查看环境,便于对比不同迭代步
*.stat / *.log求解状态、CPU时间、内存占用、模块调用记录排障与性能分析,确认求解是否正常结束
*.sh / *.bat提交脚本,记录求解命令与参数复现同一求解设置,保证再验证条件一致
*.dens / *.grid密度结果或网格重映射数据(视设置而定)用于提取密度阈值、生成等值面或导出几何

需要特别注意的是,.h3d是二进制结果容器,它保存的是“场数据”,而不是“模型定义”。也就是说,仅凭.h3d无法还原材料、载荷、约束和优化响应,这些信息仍然在.fem和.out中。重构时如果只拿.h3d去建模,等于丢掉了优化问题的全部约束条件。

二、结果数据的组织方式:迭代步、结果页与单元贡献

OptiStruct的优化结果按“迭代步(Iteration)”组织。每个迭代步对应一次设计变量更新后的有限元求解,.h3d中会为每个迭代步保存一组结果页。以拓扑优化为例,常见的输出包括:

  • Density(密度):单元密度值,通常0~1,接近1表示材料保留,接近0表示可去除;
  • Element Contribution / Strain Energy:单元应变能或贡献量,用于判断哪些单元对刚度贡献大;
  • Displacement / Stress:位移与应力场,用于检查约束是否满足、应力是否超限;
  • Objective / Constraint:目标函数与约束的迭代历史,通常在.out中以表格形式给出。

在HyperView中打开.h3d后,结果页通常按“Subcase → Iteration → Result Type”的层级展开。重构时最常看的是最后一个收敛迭代步的密度云图,但中间迭代步同样有价值:如果密度分布在后期出现剧烈振荡,说明优化可能未稳定收敛,此时直接按最后一步重构存在风险。

判断收敛的实用依据:查看.out中目标函数与约束的迭代曲线,若连续若干步目标变化小于设定容差(如OBJTOL=0.001),且约束满足,可认为收敛。若迭代在最大步数处被截断,应谨慎对待结果。

三、重构所需的关键信息

从优化结果走向可制造的几何模型,需要从文件中提取以下几类关键信息:

  1. 密度阈值:决定哪些单元被视为“材料”。常用做法是取0.3~0.5之间的等值面,具体阈值需结合.out中的质量分数或体积约束反推。
  2. 设计空间边界:来自.fem中的设计区域定义,重构后的几何不能超出该空间。
  3. 对称/拔模/挤压约束:若优化中定义了这些制造约束,重构时必须保留,否则再验证结果会与优化结果偏离。
  4. 载荷与边界条件:来自.fem的SPC、LOAD、SUBCASE卡片,是再验证的输入来源。
  5. 材料与属性:来自.fem的MAT1、PSHELL等卡片,重构后若改变厚度或材料,需在再验证中同步更新。

这些信息分散在不同文件中,因此建议在重构开始前先做一次“信息盘点”:打开.out确认收敛与约束,打开.h3d确认密度分布,打开.fem确认设计空间与工况。三者对齐后,再进入几何重构。

OptiStruct 优化结果文件体系与重构/再验证数据流 OptiStruct 求解 拓扑/形貌/尺寸优化 模型与定义文件 *.fem *.sh 网格/材料/载荷/约束/响应 结果场文件 *.h3d *.mvw 密度/应力/位移/迭代步 日志与状态文件 *.out *.stat *.log 收敛/约束/警告/错误 几何重构 密度阈值提取 等值面/平滑/简化 再验证 重构模型重新求解 对比刚度/应力/质量 若偏差超限,返回调整阈值或重构策略 重构与再验证必须对齐的关键信息 ① 密度阈值(0.3~0.5,结合质量分数反推) ② 设计空间边界(来自 *.fem) ③ 制造约束(对称/拔模/挤压) ④ 载荷与边界条件(SPC/LOAD/SUBCASE) ⑤ 材料与属性(MAT1/PSHELL) ⑥ 收敛状态(*.out 迭代历史) 再验证输入来源:以 *.fem 为基准,替换设计区域几何,保留工况与材料,重新提交求解并对比目标响应。

四、再验证的输入来源与对齐原则

再验证不是“重新做一次优化”,而是把重构后的几何放回原工况下做一次普通有限元分析,检查其刚度、应力、质量等指标是否满足原优化问题的约束。因此再验证的输入来源必须与优化阶段严格对齐:

  • 工况:直接复用.fem中的SUBCASE、SPC、LOAD卡片,不要重新定义;
  • 材料与属性:若重构后厚度或截面发生变化,需在.fem中更新PSHELL/PSOLID,并记录变更;
  • 设计区域:重构几何替换原设计空间,非设计区域保持不变;
  • 评价指标:与优化阶段的目标函数和约束一一对应,例如原优化以柔度最小为目标,再验证就看柔度或刚度是否接近优化预测值。
常见误区:直接用.h3d中的密度云图导出STL后不做任何清理就提交再验证。这样得到的模型表面粗糙、存在大量细小特征,网格质量差,求解结果往往失真。正确做法是先做等值面提取、平滑和必要的特征简化,再重新划分网格。

五、一次典型的信息盘点流程

假设工作目录中有bracket_opt.fem、bracket_opt.out、bracket_opt.h3d和bracket_opt.mvw。可以按以下顺序快速盘点:

1. 打开 bracket_opt.out
   - 搜索 "Objective" 与 "Constraint" 迭代表
   - 确认最终迭代步目标值、约束是否满足、是否收敛
2. 打开 bracket_opt.h3d(HyperView)
   - 选择最后一个迭代步
   - 查看 Density 云图,记录密度分布形态
   - 查看 Displacement/Stress,确认无异常
3. 打开 bracket_opt.fem(文本编辑器)
   - 确认设计区域(DESIGN 卡片)
   - 确认工况(SUBCASE/SPC/LOAD)
   - 确认材料与属性(MAT1/PSHELL)
4. 记录关键参数:密度阈值、质量分数、目标柔度、约束上限
5. 进入几何重构,完成后以相同工况提交再验证

这套流程的价值在于:把“看结果”变成“取数据”。重构和再验证所需要的每一个输入,都能在上述文件中找到明确来源。只要在动手重构之前完成一次信息盘点,后续的几何处理和再验证就有了可追溯的依据,也能在结果偏差时快速定位是阈值选择问题、几何简化问题,还是工况对齐问题。

最后需要强调,不同优化类型(拓扑、形貌、自由尺寸、尺寸)的输出文件侧重点不同。拓扑优化最依赖密度场和.h3d;形貌优化更关注.h3d中的形状变化和.out中的起筋方向;尺寸优化则主要看.out中的设计变量迭代历史和.fem中的属性更新。理解本节的文件体系,是为后续各类型重构建立统一的“数据地图”。