2. 优化结果文件体系解析
在OptiStruct完成一次拓扑优化或形貌优化之后,求解器并不会只留下一个“结果文件”。一次完整的优化分析通常会在工作目录下生成一组相互关联的文件,它们分别承担模型描述、迭代记录、结果场输出、日志诊断和重启动等不同职责。如果只盯着.h3d或.mvw看,很容易在后续重构与再验证时丢失关键信息。理解这套文件体系,本质上是在回答三个问题:优化过程留下了什么、哪些数据是重构必需的、再验证时应该从哪里取输入。
一、OptiStruct优化分析的主要输出文件类型
以常见的拓扑优化为例,在HyperMesh中提交OptiStruct求解后,工作目录中通常会出现以下文件(不同版本和求解设置下略有差异):
| 文件 | 典型内容 | 在重构/再验证中的作用 |
|---|---|---|
*.fem | 求解器输入卡片,包含网格、材料、属性、边界条件、优化响应与约束定义 | 重构的原始模型依据,再验证时通常以此为基准修改 |
*.out | 求解日志、迭代历史、目标函数与约束的收敛曲线、警告与错误 | 判断优化是否收敛、约束是否满足、迭代是否异常 |
*.h3d | 各迭代步的位移、应力、密度、单元贡献等结果场 | 查看密度分布、识别材料保留/去除区域,是重构的直接视觉依据 |
*.mvw | HyperView结果会话文件,预置了结果页、云图、剖切等视图 | 快速复现优化结果查看环境,便于对比不同迭代步 |
*.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),且约束满足,可认为收敛。若迭代在最大步数处被截断,应谨慎对待结果。三、重构所需的关键信息
从优化结果走向可制造的几何模型,需要从文件中提取以下几类关键信息:
- 密度阈值:决定哪些单元被视为“材料”。常用做法是取0.3~0.5之间的等值面,具体阈值需结合
.out中的质量分数或体积约束反推。 - 设计空间边界:来自
.fem中的设计区域定义,重构后的几何不能超出该空间。 - 对称/拔模/挤压约束:若优化中定义了这些制造约束,重构时必须保留,否则再验证结果会与优化结果偏离。
- 载荷与边界条件:来自
.fem的SPC、LOAD、SUBCASE卡片,是再验证的输入来源。 - 材料与属性:来自
.fem的MAT1、PSHELL等卡片,重构后若改变厚度或材料,需在再验证中同步更新。
这些信息分散在不同文件中,因此建议在重构开始前先做一次“信息盘点”:打开.out确认收敛与约束,打开.h3d确认密度分布,打开.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中的属性更新。理解本节的文件体系,是为后续各类型重构建立统一的“数据地图”。