3. 仿真模型作为试验对象
在物理试验中,试验对象是真实的样件、设备或工艺系统;而在仿真驱动的试验设计中,试验对象变成了一个可执行的仿真模型。这个转变看似只是"换了个对象",实际上改变了 DOE 的全部工程约束:输入不再是旋钮和料仓,而是模型参数与边界条件;输出不再是仪表读数,而是求解器写出的场量或标量;一次"试验"的代价不再是材料与工时,而是 CPU 核时与排队时间。本节要解决的核心问题是:如何把一个仿真模型规范地"包装"成可被 DOE 调用的试验对象。
一、把仿真模型抽象为输入—输出映射
任何可用于 DOE 的仿真模型,都可以写成如下映射形式:
y = f(x, p, θ) + ε
x : 可控设计变量(几何尺寸、材料参数、载荷幅值、边界条件)
p : 不可控但可观测的环境变量(环境温度、来料波动)
θ : 模型自身的数值设置(网格密度、时间步长、收敛容差)
y : 关注的响应量(最大应力、压降、温升、频率、效率)
ε : 数值噪声或随机性带来的偏差
关键动作是把"仿真能算什么"收敛为"DOE 需要什么"。一个常见的错误是直接把求解器输出文件当作响应:例如把整个应力场作为 y,会导致后续代理模型无法处理。正确做法是先定义响应提取规则——从场量中抽取标量或少量特征,如"第 3 秒时刻螺栓孔边缘的最大等效应力"。这条规则必须写成可复现的脚本,而不是靠人工在云图上读数。
输入侧同样需要规范化。设计变量必须给出名称、单位、基准值、上下限和类型(连续/离散/分类)。例如某散热器仿真中,翅片厚度 t ∈ [0.8, 2.0] mm 连续,翅片数 N ∈ {8, 10, 12, 14} 离散,冷却液类型为分类变量。只有把这三类变量都显式登记,DOE 采样器才能正确生成试验矩阵。
二、确定性仿真与随机性仿真的区别
确定性仿真指:给定完全相同的输入,求解器每次返回完全相同的输出。大多数结构静力、稳态传热、层流 CFD 属于此类。此时 ε 主要来自网格离散误差和收敛容差,属于系统性偏差而非随机波动,可以通过网格无关性验证来控制。
随机性仿真则不同:输入相同,输出仍会波动。典型来源包括:
- 蒙特卡洛类方法:如辐射换热中的蒙特卡洛射线追踪、颗粒输运的随机游走,本身依赖随机数种子。
- 湍流模型:LES/DES 对初场和扰动敏感,同一工况不同初场会给出不同的瞬时场。
- 迭代初值与并行归约顺序:某些非线性求解器在收敛边界附近对浮点求和顺序敏感。
对随机性仿真,单次运行的结果不能直接作为响应值。工程上通常采用两种处理:一是固定随机种子,把"随机"变成"可复现的伪随机",使 ε 可控;二是对每个设计点重复运行 n 次(n 常取 3~5),用均值作为响应、用标准差作为噪声估计。若标准差与响应量级之比超过 5%,说明该设计点的仿真重复性不足,应先收紧收敛容差或增加网格,而不是继续加大 DOE 规模。
三、计算成本:DOE 规模的真实约束
物理试验的成本模型是"每次试验花多少钱",仿真试验的成本模型则是"每次运行花多少核时,以及要排队多久"。设单次仿真耗时 T_run,DOE 需要 N 个设计点,则总机时约为 N × T_run。这个乘积是 DOE 方案能否落地的硬约束。
以一个散热器参数化仿真为例(示例假设值):单次稳态 CFD 运行约 25 分钟,使用 8 核并行。若采用全因子设计,4 个变量各 5 水平,需要 5⁴ = 625 次运行,总机时约 625 × 25 min ≈ 260 小时,按 8 核折算约 2080 核时。若改用拉丁超立方采样 60 个点,总机时降到约 25 小时。两者在信息量上的差距,往往远小于 10 倍的成本差距——这正是代理模型存在的经济基础。
| DOE 方案 | 设计点数 N | 单次耗时 | 总机时(示例) | 适用场景 |
|---|---|---|---|---|
| 全因子 5⁴ | 625 | 25 min | ≈260 h | 变量少、单次极快 |
| 正交表 L25 | 25 | 25 min | ≈10.4 h | 主效应筛选 |
| 拉丁超立方 | 60 | 25 min | ≈25 h | 代理模型训练 |
| 中心复合设计 | 30 | 25 min | ≈12.5 h | 响应面拟合 |
除机时外,还有三类隐性成本必须计入:参数化建模与网格自动重构的脚本开发时间;失败运行(网格畸变、发散、超时)的重试成本;以及结果提取与数据清洗的人工成本。经验上,一个稳定可批量运行的仿真流程,其前期封装工作量常达到总工作量的 40% 以上。
四、代理模型引入的动机
当 DOE 从"做几十次仿真看趋势"升级为"在几千个候选点上做优化、做可靠性分析、做多目标权衡"时,直接调用仿真模型就不可行了。代理模型(也称元模型、响应面)的作用,是用少量仿真样本训练一个廉价近似函数 ŷ = g(x),使后续的采样、寻优、敏感性分析都在 g 上进行,只在最终候选点回到仿真模型验证。
引入代理模型的动机可以归纳为三条:
- 成本动机:把单次评估从分钟级降到毫秒级,使遗传算法、粒子群等需要上万次评估的优化方法变得可行。
- 噪声动机:代理模型对随机性仿真的重复结果做平滑拟合,抑制 ε 对优化方向的干扰。
- 耦合动机:在多学科耦合中,用代理模型替代某个子系统,可切断迭代回路,避免整体求解不收敛。
但代理模型不是免费的。它引入两类新误差:拟合误差(模型形式不足以描述真实响应)和采样误差(样本点分布不合理导致局部失真)。因此必须建立验证环节:留出 20% 左右的样本作为测试集,计算 R² 与最大相对误差;对 Kriging 类模型还应检查预测方差。只有当测试集 R² 大于 0.9、最大相对误差小于 5%(示例阈值,需按工程精度要求调整)时,才认为代理模型可用于后续优化。
五、本节可交付成果:仿真试验对象定义表
把上述内容固化为一张可直接填写的定义表,是本节最实用的产出。它既是 DOE 采样的输入,也是后续代理模型训练与验证的依据。
| 类别 | 字段 | 示例填写 |
|---|---|---|
| 输入变量 | 变量名 / 符号 | 翅片厚度 t |
| 单位 | mm | |
| 类型 | 连续 | |
| 基准值 / 范围 | 1.2 / [0.8, 2.0] | |
| 在模型中的映射 | geometry.fin_thickness | |
| 输出响应 | 响应名 / 符号 | 最高结温 T_max |
| 单位 | ℃ | |
| 提取规则 | t=300 s 时芯片表面节点最大值 | |
| 目标 / 约束 | 最小化;约束 T_max ≤ 85 | |
| 仿真属性 | 确定性 / 随机性 | 确定性 |
| 单次耗时 / 核数 | 25 min / 8 核 | |
| 重复次数 n | 1 | |
| 代理模型 | 计划样本数 | 60(LHS) |
| 验证指标 | 测试集 R² ≥ 0.9,最大相对误差 ≤ 5% |
填写这张表的过程,本身就是一次对仿真流程的体检:如果某个变量的"在模型中的映射"写不出来,说明参数化建模尚未完成;如果某个响应的"提取规则"无法脚本化,说明它还不适合进入 DOE。把这张表填完整,仿真模型才真正成为一个合格的试验对象。