3. 仿真数据来源与实验设计

仿真数据驱动性能预测的第一道关口不是模型算法,而是数据本身。如果样本点分布不合理、参数覆盖不充分,后续无论用响应面、Kriging 还是神经网络,都只能拟合出一张“局部好看、全局失真”的代理模型。本节围绕仿真数据的来源与实验设计展开,重点解决三个问题:参数如何进入仿真模型、样本点如何布置、批量仿真如何组织与回收。

一、参数化建模:把设计变量变成可驱动的输入

参数化建模的目标是让几何、材料、边界条件中的关键量成为可被脚本或 DOE 工具修改的变量。以某悬臂梁振动仿真为例,设计变量可定义为:梁长 L(200–400 mm)、截面宽度 b(10–30 mm)、厚度 h(5–15 mm)、弹性模量 E(190–210 GPa)、端部质量 m(0.5–3.0 kg)。这些变量必须满足几何约束,例如 h < b,否则批量运行会大量报错。

参数化实现通常有三种路径:CAD 尺寸驱动(如 SolidWorks 方程式、Creo 参数)、脚本重建几何(Python + FreeCAD/OpenCASCADE)、以及仿真软件内置参数(ANSYS Workbench 参数集、COMSOL 参数)。工程上更稳妥的做法是“几何参数 + 网格参数 + 求解参数”分层管理:几何参数决定形状,网格参数决定计算量,求解参数决定收敛性。三者若混在一起,DOE 表会变得难以解释。

参数命名建议使用英文短名并带单位后缀,如 L_mm、E_GPa,避免中文路径和空格,否则批量脚本在跨平台调用时容易失败。

二、DOE 实验设计:从全因子到空间填充

DOE 的本质是在有限预算下选择最有信息量的样本点。常见方法对比如下:

方法样本量优点局限适用场景
全因子kⁿ可估计全部交互维度爆炸≤3 因子、低水平
正交试验约 n·k均衡分散、可分析主效应边界覆盖弱因子筛选、稳健设计
拉丁超立方自定义 N空间填充好、任意样本量不保证正交性代理模型训练
中心复合/Box-Behnken较少可拟合二次响应面仅适合低维优化与响应面

正交试验的核心是正交表 Lₙ(mᵏ),例如 L9(3⁴) 表示 9 次试验、4 个三水平因子。它的任意两列水平组合出现次数相同,因此可以分离主效应。但正交表样本点往往集中在设计空间的中部与角点,对非线性强、边界敏感的性能指标(如共振频率、屈曲载荷)覆盖不足。

拉丁超立方采样(LHS)则把每个维度分成 N 个等概率区间,在每个区间内随机取一点,再随机配对。这样每个维度的一维投影都均匀,样本量可自由设定。工程中常用“优化拉丁超立方”(OLHS)进一步最大化最小距离,避免点聚集。对于 5 因子、60 样本的悬臂梁问题,LHS 通常比正交表更适合训练 Kriging 模型。

DOE 样本分布对比:正交试验 vs 拉丁超立方 正交试验 L9(3⁴) 投影 因子 A 因子 B 点分布规则,边界与内部覆盖不均 拉丁超立方 N=9 投影 因子 A 因子 B 每维分层,空间填充更均匀

三、批量运行策略:让 60 次仿真自动跑完

有了 DOE 表,下一步是把每一行参数写入模型并提交求解。批量运行的核心是“模板 + 参数替换 + 任务队列 + 结果回收”。以 ANSYS Workbench 为例,可导出 .wbpj 参数集,用 Python 的 subprocess 调用 RunWB2 -B -R script.wbjn 批处理;若用 COMSOL,则通过 comsolbatch -inputfile model.mph -pname L,b,h -plist 200,10,5 ... 逐点运行。

更通用的做法是维护一张 CSV 任务表:

run_id, L_mm, b_mm, h_mm, E_GPa, m_kg, status, f1_Hz, f2_Hz
001, 200, 10, 5, 190, 0.5, done, 42.1, 263.5
002, 250, 15, 8, 200, 1.2, done, 31.7, 198.4
003, 300, 20, 10, 210, 2.0, running, , 
004, 350, 25, 12, 195, 2.8, pending, , 

批量运行中必须处理三类异常:几何失败(参数组合导致重建报错)、网格失败(长细比过大)、求解不收敛(接触或非线性)。建议在脚本中设置“失败重试 + 降级网格 + 记录日志”三级策略,并把失败样本单独标记,避免污染训练集。对于 60 个样本的悬臂梁模态分析,单次求解约 20–40 秒,串行约 30 分钟;若用 4 进程并行,可压缩到 8–10 分钟。

不要直接把失败样本的空白结果填 0 或均值,这会在代理模型中制造虚假的“低性能区”。正确做法是剔除或单独建模,并在数据表中保留失败原因字段。

四、从样本到数据集:检查与交付

批量运行结束后,应做三项检查:其一,样本在设计空间中的分布是否覆盖边界,可用散点矩阵图观察;其二,响应值是否存在异常跳变,例如频率突然为负或数量级错误;其三,参数与响应之间的相关性是否符合物理直觉,例如梁长增加、一阶频率下降。若发现某因子几乎不影响响应,可在下一轮 DOE 中缩小其范围或固定为常数,把预算留给更敏感的因子。

最终交付的数据集应包含:设计变量表、响应值表、仿真设置摘要(网格尺寸、求解器、收敛标准)、失败记录、以及一份可复现的批量脚本。这份数据集既是代理模型的训练输入,也是后续验证与不确定度量化的基础。只有样本来源清晰、实验设计合理、批量运行可控,仿真数据驱动性能预测才具备可信的起点。