TMS BOOK · ACADEMY 讲义

仿真—试验相关性验证(Correlation)

大纲的完整展开版——讲师授课蓝本 / 学员自学材料

J7-01 仿真—试验相关性验证(Correlation)

课程代码 J7-01 · 板块 J 仿真分析 CAE / J7 数字化仿真方法 时长 约 3.5 小时(7 讲 + 1 次相关性判读实操) 适合对象 高级仿真/试验工程师;模型 sign-off 责任人(必修) 前置 J1-04 整车热管理系统级联合仿真,或任一 J1–J3 CAE 模型基础;L7-03 试验数据分析与不确定度评估 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 J7-01 大纲的完整展开版


引言:Correlation 交出的不是分数,是一张带边界的资质证

换一个座位来开场:这一次你不是出报告的人,是引用报告的人。仿真组交来一份相关性验证报告,结论一行——「模型与试验吻合良好,误差 3.0 K」(该数为教学假设值,不对应任何平台,⛔ 禁止照抄取用)。你手上的事很具体:要拿这套模型去预测一个没做过试验的工况,预测值要进设计决策。这份报告帮不了你——⛔ 不是因为 3.0 K 这个数太大或太小,而是因为有四个问题它一个都没回答:这个数是在哪些工况、哪些部件、哪个响应量上比出来的?温度和压降是按同一种口径判的吗?出这个数的试验与数值,够不够资格分辨这个量级的偏差?报告签发之后模型改过版、台架换过传感器没有,这个结论今天还算不算数?

这四问不是吹毛求疵,它们指向同一件事:「模型准不准」这个问句本身是不完整的——精度永远是对某个域、某个响应量、某个口径说的,脱离这三样,「误差 3.0 K」只是一个没有射程的数字。CAE 模型不是自动可信的,是需要「考证」的:求解器再成熟,也只保证「把你给它的方程在给定的离散上解对」,⛔ 不保证「这组方程与这套参数、这套边界,是这台真实设备的合格代表」——后一件事只能靠与试验比对来回答,这场考试就是 Correlation(仿真—试验相关性验证)。于是全课的第一根钉子在引言里立起:

钉子①:Correlation 交出的不是一个「误差 X%」的分数,而是一张带边界的资质证。一份能被别人引用的相关性结论,必须同时说清四件事:① 在哪个域内有效——工况 × 部件 × 响应量的覆盖矩阵,最终收口成可信域;② 对每个响应量用什么误差口径判——温度绝对判、比率量相对判、动态量判在时间轴上、逻辑量判分类对错;③ 判据有多大分辨力——比的是比较误差 E 与确认不确定度 u_val,而 u_val 由三本账合成;④ 有效期到什么时候——什么变更触发重跑。四件里少任何一件,那个误差数字都不能支撑工程决策——因为读者无从判断它管不管自己要用的那个点。

⛔ 这不是把结论写复杂:问句不完整,合格的回答就必须自带这四样。⚠ 「四件事」是本课归纳的判据结构,⛔ 不是任何标准的原文条款。图 1 把它画成读者视角的四道岔口——从今天起,你读任何一份相关性报告,都可以按这张图走一遍。

流程决策图。顶端入口框:读者拿到一份只写着模型误差 3.0 K 的报告,要判断它管不管自己那个点,该数为教学假设值。往下依次经过四道菱形岔口,各带独立文字标签:第一道,这个数在哪个域内有效(工况 × 部件 × 响应量)?第二道,这个响应量用什么误差口径判的?第三道,判据有多大分辨力(E 与 u_val 比过没有)?第四道,结论的有效期到什么时候(什么变更触发重跑)?每道岔口两条出边:报告写了,向下继续;报告没写,横向汇入同一个终止框——这个数不能支撑工程决策,不是因为它不准,是因为无从判断它管不管我这个点。四道全部通过后到达另一个终止框:可引用,且引用时须连同这四项一起引。图右一个小框注明:四件事是本课归纳的判据结构,不是任何标准的原文条款。本图为定性流程示意,不得据图取任何数值或门槛;图中 3.0 K 为教学假设值,不对应任何平台,禁止照抄取用
图1 读者视角的四道岔口:这份报告管不管你那个点。该读出三件事:① 四道岔口任缺一道,路径都终止在同一个「不可引用」框——⛔ 不存在「缺一项但可以将就用」这条出边;② 终止的理由写在框里,是「无从判断」,⛔ 不是「误差大」;③ 走通时带走的是四项声明,⛔ 不是一个数。⚠ 本图为定性流程示意,⛔ 不得据图取任何数值或门槛;图中 3.0 K 为教学假设值,不对应任何平台,⛔ 禁止照抄取用。

第③件事要在引言里多说两句,因为全课的第二根钉子就钉在那里。钉子②:过关判定比的是 E = S − D 与 u_val 这一对,⛔ 不是「误差 ≤ 误差带」这一对。这里 S 是仿真值、D 是试验值,E 是比较误差,方向全课固定为「仿真减试验」、不换向(E > 0 表示仿真偏高);u_val 是确认不确定度,由三本账平方和合成——u_val = √(u_num² + u_input² + u_D²):数值账 u_num(网格/步长/迭代收敛得够不够)、输入账 u_input(物性、部件特性、边界条件的散布)、试验账 u_D(测量链路自身的不确定度)。只拿试验侧的 u_D 当底线,等于把数值未收敛与输入散布造成的那部分偏差,全部记进「建模有错」这本账,然后动手整改一个并不存在的缺陷。反过来同样成立、而且更隐蔽:u_val 大到把工程上不可接受的偏差都淹没时,正确结论是这套「试验 + 模型」的组合判不了这件事,⛔ 不是「模型合格」。

由这两根钉子推出全课统一的结论写法:⛔ 不是「通过/不通过」两档,而是三档——判不了、未观察到可辨偏差、存在可辨偏差。三档不是「优良中」的程度评级,是三种方向完全不同的下一步动作:第一档说明本次验证对该响应量没有分辨力,下一步是把 u_val 压下来(修试验、做数值收敛研究、量化输入散布),⛔ 不是放行;第二档只能按它的字面写,一个字的额外承诺都不能加;第三档进第 6 讲的分层诊断。⚠ 三档是本课归纳的结论枚举,⛔ 不是大纲既有、⛔ 不是任何标准的原文条款。与它配套还有一条贯穿全课的纪律:本课交出的是判据的结构,⛔ 不交判据的数值——允许偏差多大、分辨力要几倍,必须由本项目按「判错的后果」自己定,⛔ 禁止抄上一代平台、⛔ 禁止抄软件文档或论文里的示例值。

还要先打一个招呼:第③件事里埋着本课的反钉子——有一个在试验报数语境里被当作稳妥、甚至值得表扬的习惯动作,搬进 validation 判据里方向恰好相反,而且它的诱因就藏在本课自己的叙事里,学得越认真越容易做反。它具体是哪个动作、做反之后会在报告里写出什么,引言不展开;第 4 讲会用一组教学假设的数字演示「仿真值与试验值一个数都不动,不确定度的评定口径一变,结论就翻面」,反钉子一节再逐个点破。

沿这四道岔口,全课七讲建立三层判断力。会设计:第 1 讲把「模型可信」拆成四件事,分清五类 V&V 活动——分界判据是数据流向,⛔ 不是活动叫什么名字——再把「一次通过不等于永久有效」落成触发条件表,并一次性钉死全课的符号与口径;第 2 讲整讲做第①件——覆盖矩阵怎么搭成三维、选点规则为什么必须事先冻结、标定集与独立验证集怎么分才不是自证自明。会判读:第 3 讲做第②件——误差口径按响应量的标度类型选,一套口径打天下,必然在某几类响应量上给出没有意义的数;第 4 讲做第③件——E 与 u_val 怎么比、三本账怎么合、判据的分辨力为什么必须前置检查;第 5 讲把标定(Calibration)单独讲透——它是一个优化问题,⛔ 不是「调到像」,与验证的分界全靠数据流向守住;第 6 讲讲不达标之后的分层诊断——第一刀先把残差拆成偏置与散布,再按固定顺序逐层过账、⛔ 不许跳层。会交付:第 7 讲做第④件并收口——可信域按六个维度声明、外推分三档、报告按最小要素表写全,最后把四件事收成可签字的一页。典型案例是钉子①的一次完整反演——那个模型塌掉的只有第①件(验证矩阵没覆盖高温边界工况,报告里也没有可信域声明去拦住外推;⚠ 「把域内的结论用到了域外」这件事的账同样记在第①件——越界使用是「域」的边界没被声明、没被守住,⛔ 不记在第④件有效期上,那是最常见的一种错记,案例节第 5 条逐条拆);动手做的第③步,交付物就是这四件事的填空。

带着开场那四个问题进第 1 讲——先把「模型可信」这四个字拆开。

第 1 讲 为什么要做 Correlation:验证的定位、有效期与 sign-off

大纲开篇那句「CAE 模型不是自动可信的,是需要考证的」,第一眼读像一句态度宣言。这一讲要做的是把它变成可执行的判断:先把「模型可信」拆成四件可核对的事(1.1);再把验证、标定、解验证这几件互相冒充的活动用一条数据流向判据分开(1.2);把「一次通过不等于永久有效」落成一张触发条件表(1.3);把「谁来定过关标准」拆成结构与数值两层(1.4);最后交代本课的射程边界(1.5)与标准引用的口径(1.6)。

动笔之前,先钉符号。本课同时出现三套符号系统——试验计量的(u、U、u_c)、数值方法的(u_num)、统计的(RMSE、R²_corr)——撞名极多:有两个量连公式形状都一模一样,只是合成的对象完全不同。下表把全课要用的符号与口径一次性钉死,全课不改;后文任何一处与本表冲突,以本表为准。

符号 含义与全课口径 单位
S 仿真值(Simulation),与 D 配对出现,是 E = S − D 的被减侧 随响应量
D 试验值(Data),被比对的基准侧:e_rel 的分母、S 对 D 回归的横轴一律取 D 侧 随响应量
E 比较误差 E = S − D,方向固定为「仿真减试验」,全课不换向,E > 0 表示仿真偏高;带符号量,第 6 讲的诊断靠方向,⛔ 不得只报绝对值丢符号;结论表述为「建模误差落在 E ± u_val」,⛔ 不是「误差是 E」 随响应量(温度类 K)
e_abs 单点绝对偏差(S − D 取绝对值,无符号),温度类判据用它与 ΔT_允许 比。⚠ 它与 E 是同一个量的两种写法——e_abs 就是 E 取绝对值那一侧的名字(后文写作 丨E丨 时指的就是它),⛔ 不是另一个量;但报出与诊断时⛔ 不得用它顶替带符号的 E,第 6 讲按偏差方向排查,丢了符号就失灵 随响应量(温度类 K)
e_rel 单点相对误差 (S − D)/D × 100%,分母固定取试验值 D(⛔ 不取 S);只对比率量有意义,对以 °C 计的温度⛔ 禁用;只作单点判据,⛔ 不得聚合成「平均相对误差」当结论 %
u 标准不确定度,全课 u 系一律 k = 1 随响应量
U 扩展不确定度 U = k·u,报出时必须标 k;⛔ 不得把 U 直接代进平方和合成(那一项贡献直接翻倍) 随响应量
u_c 测量侧合成不确定度 √(Σu_i²)——合的是同一个测量结果的各测量分量,是 u_D 的来源;与 u_val 公式形状一样而合成对象完全不同,⛔ 两者不得互相代入 随响应量
u_D u_val 三本账之一:试验(测量)侧不确定度,是 u_c 的产物;评定方法归 L7-03 试验数据分析与不确定度评估 随响应量(温度类 K)
u_num u_val 三本账之二:数值不确定度(离散、时间步、迭代收敛;1D 系统模型没有网格,对应的是步长与容差);量化口径归 J2-01 CFD 基础、湍流模型与网格划分(Fluent/STAR-CCM+);未量化时显式写「本次未量化」并写明影响方向,⛔ 不得记 0,也⛔ 不得随手塞大 随响应量(温度类 K)
u_input u_val 三本账之三:输入参数不确定度(物性、UA、泵曲线、边界条件散布);量化与传播归 J7-06 仿真不确定度量化(UQ)与稳健/可靠性设计:从确定性单点到带分布的裕度;状态三选一(已量化/已引用他处/本次未量化)必须写明 随响应量(温度类 K)
u_val 确认不确定度 u_val = √(u_num² + u_input² + u_D²),站在判据右边;把它估大=放松判据;与 ΔT_允许 是两个东西(分辨力 vs 工程可接受偏差),⛔ 不可互代 随响应量(温度类 K)
ΔT_允许 温度类响应量的允许绝对偏差,是按响应量×工况×用途分档的一族值,⛔ 不是单个值;全课⛔ 不给任何档位数值(平台相关量) K
κ 分辨力倍数,前置检查判据 u_val ≤ ΔT_允许/κ 中的参数(本课自建判据的参数,⛔ 非标准既有);⛔ 不给值,由企业规范给定
δT 温度偏差 δT = S − D,即 E 在温度类响应量上的叫法——同一个差值、同一个方向,⛔ 不是另一个量;列它只为钉住「温度的三种角色」:绝对温度 T、温差/温升 ΔT、温度偏差 δT 量纲相同而含义完全不同,⛔ 不得互算、⛔ 不得比大小。⚠ 全课报数一律写 E 或 丨T_sim − T_test丨,⛔ 不另用 δT 出数 K
R²_corr 相关系数的平方口径的 R²;全课⛔ 禁止裸写 R²,必须带口径下标;R² ⛔ 不得单独作过关判据
R²_1to1 以 S = D 为模型的决定系数口径的 R²,可为负(负值合法,含义=比直接用试验均值当预测还差)
NRMSE_range / NRMSE_mean / NRMSE_span 归一化 RMSE 的三种分母口径:极差 / 均值 / 量程;全课⛔ 禁止裸写 NRMSE,必须带分母下标;极差口径⛔ 不得跨项目比较;对以 °C 计的温度⛔ 不用均值口径 %

为什么要在第一讲开头就把这张表钉死,四条理由,每条都对应一个真会发生的事故:

u_c 与 u_val 都叫「合成不确定度」、都用平方和合成、公式形状一模一样,而合成的对象完全不同。u_c 合的是同一个测量结果的各个测量分量(热电偶、采集通道、标定链路),它是试验侧那本账 u_D 的来源;u_val 合的是三本不同的账(数值、输入、试验)。把 u_c 直接当 u_val 用,等于把 u_num 与 u_input 静默记成 0——判据右边被砍掉两项,数值未收敛与输入散布造成的偏差会全部记进「建模有错」这本账。

R² 有两种口径,同一组数可以一个接近满分、一个是负数。相关系数的平方口径(R²_corr)只回答「趋势像不像」,以 S = D 为模型的决定系数口径(R²_1to1)才回答「值贴不贴」。两种口径给出完全相反印象的算例在第 3 讲逐点复算。所以全课禁止裸写 R²——不带下标的 R² 是一个不知道在说什么的数。

NRMSE 的分母有三种口径在流通(极差、均值、量程),同一个 RMSE 换个分母,报出的百分比可以差一倍以上(第 3 讲有逐点复算)。不声明分母的 NRMSE 同样是一个没有含义的数。

温度在本课出现在三种角色里——绝对温度 T、温差/温升 ΔT、温度偏差 δT = S − D(δT 就是 E 在温度类响应量上的叫法,⛔ 不是另一个差值;全课出数一律写 E)——三者量纲都是 K(或 °C),含义完全不同:⛔ 不得互算、⛔ 不得比大小。「电芯温度 45 °C」「进出口温差 8 K」「仿真比试验高 2 K」是三个不同种类的量,后文只要出现温度,先问它是哪个角色。

这张表最容易被用错的三处:① 把 E 写成「试验减仿真」——一旦方向反了,第 6 讲按偏差方向做的诊断会全部指反;② 报告里 u 与 U 混用——把 k = 2 的 U 当 u 代进平方和,那一项的贡献直接翻倍;③ 把 e_rel 的分母写成仿真值——分母必须是被比对的基准 D,两种写法在偏差大时给出不同的数。

⚠ 另有三个只在后文才用到的符号(残差分解的两项与时间常数),按约定在第 3 讲首次出现处定义,本讲不预支。


1.1 「模型准不准」是一个不完整的问句——精度永远是对某个域、某个响应量、某个口径说的

是什么。「CAE 模型不是自动可信的」这句话的工程含义不是「软件算不准」。求解精度再高的软件,保证的也只是「把给定的方程在给定的离散上解对」——那属于 verification(验证求解);而 validation(确认)问的是另一个问题:这组方程与这套参数、这套边界,是不是这台真实设备的合格代表。软件替你答不了后者,所以模型要「考证」。而要考证,先得把「模型可信」这个模糊说法拆成四件可核对的事:

在哪个域内有效——工况 × 部件 × 响应量的覆盖矩阵,收口成可信域; ② 对每个响应量用什么误差口径判——温度绝对判、比率量相对判、动态量判在时间轴上、逻辑量判分类对错; ③ 判据有多大分辨力——比的是 |E| 与 u_val,而 u_val 由 u_num/u_input/u_D 三本账合成; ④ 有效期到什么时候——什么变更触发重跑。

四件里少任何一件,那个「误差 X%」的数字都不能支撑工程决策——因为读者无从判断它管不管自己要用的那个点。⛔ 这不是把结论写复杂,是因为「模型准不准」这个问句本身不完整:精度永远是对某个域、某个响应量、某个口径说的,脱离这三样的「准不准」没有答案。⚠ 这四件事是本课归纳的判据结构,⛔ 不是任何标准的原文条款。

四件事在本课的展开路线:第①件第 2 讲整讲做;第②件第 3 讲做;第③件第 4 讲做;第④件本讲 1.3 先给触发条件表、第 7 讲把它落进可签字的一页;第 6 讲回答不达标时通常是哪一件先塌。

为什么。热管理模型里最大的不确定性通常不在求解器,而在经验关联式的选型与射程、部件特性参数、边界条件、以及被简化掉的物理——换热系数用哪条关联式、它的原始数据覆盖到哪个雷诺数区间、泵曲线取的是哪个批次的样件、进风温度是实测的还是上游模型给的。这些东西求解器再准也不会替你判,而它们恰恰决定了模型在你要用的那个点上给不给得出对的数。

工程量级。⛔ 本课不给「模型误差里各来源占多少」的比例——那是平台与模型形式相关量,答案由本项目的分层诊断给出(第 6 讲)。

易错点。

  • 把「网格无关性做过了」当成「模型验证过了」。网格收敛研究属于解验证(solution verification),它的产出 u_num 是 u_val 的一项——它是判据的一部分,⛔ 不是 validation 本身。
  • 把软件供应商的验证案例集当成本项目模型的资质。那验证的是软件,⛔ 不是你搭的这个模型:你的几何、你的关联式选型、你的边界,供应商一个都没碰过。
  • 把「以前这个模型用得挺准」当资质。那是经验,不是可被引用的结论——它没有域、没有口径、没有有效期,别人无从核对,也无从判断它管不管新的那个点。

1.2 五类活动只有「数据流向」一条可操作分界——「标定后误差小」因此证明不了模型已验证

是什么。「把仿真结果和试验数据画在一张图上比一比」这件事,其实处在一个五类活动的全集里,各类的问句与判据式互不相同(⚠ 这个五分类是本课按「先画全集、再逐项核射程」归纳的,其中①与⑤两支是本课补的,⛔ 不是大纲或标准的既有分类):

代码验证(Code verification)——问「求解器把方程解对了没有」,判据是收敛阶与制造解残差。⚠ 方法⛔ 不在本课射程内; ② 解验证(Solution verification)——问「这一次算例的离散、时间步与迭代收敛够不够」,判据是网格/步长收敛研究给出的 u_num; ③ 确认(Validation)——问「模型形式与参数是不是真实设备的合格代表」,判据是 |E| 与 u_val 的比较。本课就是这一类; ④ 标定(Calibration)——问「哪一组参数让误差最小」,判据是目标函数取到极小、且参数落在物理可能区间; ⑤ 预测/外推使用(Prediction)——问「要用的这个点在不在可信域内」,判据是对可信域逐维核对(第 7 讲展开)。⚠ 它不是验证活动,而是验证结论的消费端——可信域正是为它划的。

⛔ 只沿「仿真对试验比一比」这条线想,必漏①②两整类——而 u_num 恰恰从②来,不做解验证就配不出 u_val,第 4 讲的判据右边直接缺一项。

为什么必须先分开。这几类活动的输出都长成同一个样子——一个「误差数字」——而含义互不相同:代码验证给的是制造解残差;解验证给的是 u_num,它站在判据右边(进 u_val),不是被判的对象;标定给的是拟合残差,可以被压到趋近 0 而不说明任何事;只有确认给的才是 E,才有信息量。四个数字在报告里长得一模一样,混着用时,读者拿到的「误差 X%」就失去了全部信息量。

分界判据是数据流向,⛔ 不是活动叫什么名字。可当场判真假的追问有三句:

① 这次比对用到的这批数据,此前有没有参与过任何一次参数调整(包括手动试凑)? ② 这次比对之后,有没有回头改过模型的任何参数、关联式、网格或边界? ③ 改完之后,报出的误差是用改前的模型算的,还是改后的?

三问里任何一问的答案指向「用过/改过」,这一步就是标定,它的误差⛔ 不能当 E 报——无论它被写在报告的哪一节、叫什么名字。这条判据比「看名字」可靠的原因在实务里:「微调一下边界」「把换热系数校一校」「把接触热阻拟合一下」往往写在「模型建立」一节,读者以为验证是后面那一节做的,而数据早已流进模型。若这一步根本没用到试验数据、只在数值设置上做收敛,那它既不是标定也不是确认,是解验证。

上半部横排五个方框:代码验证(求解器把方程解对了没有)、解验证(这一次算例的离散、时间步与迭代收敛误差,即 u_num 的来源)、确认(模型形式对不对,主蓝加粗描边标「本课」)、标定(用试验数据反求参数)、预测与外推使用(标「它不是验证活动,是验证结论的消费端」);代码验证框灰底标「本课不讲,只给去向」。下半部一棵判别树:入口问「现在这一步在做哪件事」,第一问「有没有用试验数据去改模型」,改了通向标定框;没改则问第二问「这批数据从前参与过任何一次参数调整吗」,参与过仍通向标定框,连线上写「报告里把它写在验证那一节也不算」,从未参与才通向确认框;主干旁另一条支路「根本没用到试验数据,只在数值设置上做收敛」通向解验证框。树右侧一个警示红框写「判据是数据流向,不是这一步叫什么名字、写在哪一节」。本图为定性结构与流程示意,不得据图读取任何数值
图2 该读出三件事:① 活动有五类,「把仿真和试验画在一张图上比一比」只是其中第三类(确认);② 把标定、确认、解验证分开只需要两个问句,且两个问的都是数据流向;③ 解验证是 u_num 的唯一来源——跳过它,第 4 讲判据右边的 u_val 就配不出来。⚠ 五类里代码验证与预测使用两支是本课补的归纳;框的大小与位置⛔ 不代表工作量或重要性。本图为定性结构与流程示意,⛔ 不得据图读取任何数值。

由此直接推出本课钉子的第一次敲:「标定后误差小」⛔ 推不出「模型已验证」。标定是求 θ* = argmin_θ Σ(y_sim(θ,x_i) − y_test,i)²——「误差小」是这个优化问题的解按定义就该有的性质:优化器的目标函数就是那个残差,把它压小是标定这一步的定义本身,⛔ 不是模型好的证据。它对模型形式对不对、能不能外推、有没有把别处的建模错误吸收进参数,一个字都没说。这个错之所以最常见,是因为报告里两个数字长得一模一样(都是「误差 X%」),而一个是拟合残差、一个是 E;且标定后的对比图看起来非常好,说服力极强——说服力最强的图,恰恰是信息量最少的那张。

中央一个闭合回环:试验数据 D 进入优化器(框内写目标函数 Σ(S−D)²),输出参数 θ*,代入模型得到仿真值 S,S 与 D 相减得到残差,残差又回到优化器。回环外侧一支打叉的警示红箭头把同一批 D 与同一批 S 引向右边的「验证结论:误差很小」框,旁注「这一步把标定的目标当成了模型好的证据」。回环下方两行说明:「误差被压小是标定这一步的定义」「它对模型形式对不对不提供任何信息」。图右画正确形态:另一批标着「从未参与任何一次参数调整」的数据 D_ind 单独引到「独立验证」框,两条数据通路之间一条竖分隔线标「这里必须换一批数据」。本图为定性结构示意,不得据图读取任何数值
图3 该读出三件事:① 左边是一个闭环——被报出的残差正是优化器刚刚压小的那个量,输出又回到自己的输入,它不产生关于模型形式的任何新信息;② 被打叉的那支箭头就是「自证自明」这个说法的具体形态:数据在回环里走过一圈,再被拿来当验证结论;③ 右边那条通路与左边的唯一区别是数据从未进入过闭环,⛔ 不是数据更多或更好。本图为定性结构示意,⛔ 不得据图读取任何数值。

工程量级。两处都⛔ 不给数,且都有理由:① 「允许微调的幅度」不存在——任何幅度的调整都改变数据流向,这是二值判断而不是程度判断;② 「拟合残差与 E 的典型差距」不给——它取决于可调参数个数、数据量与模型形式,这个差距本身正是过拟合程度的度量,须由本项目的独立验证集回答(标定与过拟合第 5 讲展开)。

易错点。

  • 用同一批数据先标定再算误差,把这个误差当 E 报。这就是图 3 里被打叉的那支箭头——自证自明。
  • 把标定集上的 RMSE 写进 Correlation 报告的结论栏。与上一条同型,只是换了个更体面的指标名。
  • 把「只调了一个参数」当成没标定。三问问的是有没有调过,不问调了几个。
  • 把「用另一组同类工况标的」当成独立。同一台样件同一次装配下的两组工况,独立性取决于误差源是否共享(同一支热电偶、同一次贴装)——⛔ 不能只看工况号不同。
  • 把「标定用部件级数据、验证用系统级数据」当成天然独立。若部件级参数直接决定系统级响应,两者共享同一批误差,独立性要逐项核。
  • 用留一法交叉验证代替独立验证集。交叉验证的每一折仍来自同一批数据、同一次试验、同一套误差源——它能查过拟合,⛔ 不能替代覆盖边界工况的独立验证集。
  • 矫枉过正,认为「标定过的模型就不能用于验证」。可以,条件有两条:验证用的数据从未参与过标定,且验证集覆盖可信域的边界(独立验证集的必要条件第 2 讲展开)。
  • 把 u_num 与 E 相加当「总误差」。u_num 站在判据右边(进 u_val),E 站在左边,⛔ 不是同一侧的量。
  • 把「先做 verification 再做 validation」当成可选顺序。u_num 是 u_val 的一项——不做解验证,判据右边就缺一项,这不是流程洁癖,是判据式的构成。

1.3 一次通过不等于永久有效:有效期由触发条件表定义,其中四类最容易被漏

是什么。「一次通过不等于永久有效」要落成一张触发条件表才有约束力——每一类触发条件写清「变了什么、为什么它会让旧结论失效、要重跑到哪一步」。触发条件的全集有八类(⚠ 其中④⑤⑥⑧四支是本课补的归纳,⛔ 不是大纲既有;它们恰恰是最容易被漏的四类):

触发条件 为什么旧结论失效
① 设计变更(几何、构型、部件选型) 模型对应的对象已经不是原来那台设备
② 控制策略与标定变更 系统的运行轨迹变了,原验证工况可能不再代表实际运行
③ 模型本体变更(换子模型、换关联式、参数库更新) 被验证的模型已经不是原来那个模型
④ 求解器/软件版本升级(含物性库版本)⚠ 本课补 同一份模型文件在新版本上算出的可以不是同一个 S
⑤ 网格/时间步/求解设置变更 ⚠ 本课补 它改的是 u_num——模型没变、试验没变,而判据右边变了
⑥ 试验基准侧变更(台架改造、传感器更换、测点移位、数据处理口径变化)⚠ 本课补 模型一个字没改,而基准变了——D 的产生方式变了,旧的 E 不再是同一个量
⑦ 使用域扩展(要用到可信域之外的新工况) 新点不在资质证覆盖的域内,须先补验证
⑧ 样件批次漂移 ⚠ 本课补 当初对标用的样件已不代表当前量产件,基准悄悄换了对象

重跑的形式分三档——全量重跑/只补几个点/只重算 u_val——每一类触发后选哪一档,由本项目的验证计划与变更流程按影响面定,⛔ 本课不给对应关系与时限(它取决于变更的影响面与项目节奏)。

为什么第⑥类最反直觉。相关性结论是一对东西之间的关系——这个模型,与这套试验基准。台架改造、传感器更换、测点移位、数据处理口径变化,都改变了 D 的产生方式,于是旧的 E = S − D 不再是同一个量——模型侧没有任何人做任何事,资质证已经失效了。第⑤类同理但更隐蔽:换网格或步长,看起来「模型没变」(几何、关联式、参数都没动),而它改的是 u_num,判据的右边变了——原来的「未观察到可辨偏差」可能翻面。⛔ 只沿「设计改了就重跑」这条最熟悉的线索想,④⑤⑥⑧四类必被整类漏掉——而漏掉的方式不是表上少一行,是那类变更发生时没有任何人意识到该查有效期

一条自左向右、不带日期刻度的时间轴,起点标「本次相关性结论生效」。轴上方八个事件标记:设计变更(几何、构型、部件选型);控制策略与标定变更;模型本体变更(换子模型、换关联式、参数库更新);求解器、软件与物性库版本升级;网格、时间步与求解设置变更;试验基准侧变更(台架改造、传感器更换、测点移位、数据处理口径变化);使用域扩展;样件批次漂移。每个事件下引一条竖线落到轴上,轴在该处断开并转灰,断口处写「有效期到此为止,须重跑」。第四、五、六、八这四个标记另加「最容易被漏」的标注框;试验基准侧变更再加一行「模型一个字没改,而基准变了」;网格与求解设置变更再加一行「它改的是 u_num,判据右边变了」。轴末尾一个灰框写「谁重跑、拿什么重跑、凭什么证明重跑的是同一个模型——见 J7-07」。本图为定性示意,不得据图读取任何时长或先后关系
图4 该读出三件事:① 触发条件有八类,其中第⑥类(试验基准侧变更)里模型本身没有任何改动,有效期照样终止;② 每一类都独立地终止有效期,⛔ 不需要凑够几条才算失效;③ 第⑤类改的既不是模型也不是试验,而是判据右边的 u_val。⚠ 八类里④⑤⑥⑧是本课补的归纳;时间轴无刻度,事件的先后位置仅为排布,⛔ 不表示发生顺序或概率,⛔ 不得据图读取任何有效期时长。

射程声明:触发条件表在本课,落地机制不在。「谁重跑、拿什么重跑、凭什么证明重跑的是同一个模型」——包括流程固化、模型资产管理、版本与快照标识、仿真报告的评审出口判据——归 J7-07 仿真任务的输入、交付与模型资产管理,本课只给触发条件与分级重跑的判据形式,⛔ 不给流程模板与责任矩阵。这条边界必须显式写出而不是默默不写:读者拿到一张触发条件表却没有落地机制,会以为「记住这几条」就够了,而实务里失效的恰恰是落地环节——没人被指定、旧模型找不回来、拿不出证据证明重跑的是同一个模型。未写明的边界会被默认成「不存在这件事」,那正是最危险的默认。

工程量级。⛔ 不给任何一类的重跑范围与时限——见上文,属项目变更流程层的决定。

易错点。

  • 把「重跑」理解成整份验证从头做一遍,于是因为成本太高而干脆不重跑。分级重跑(全量/补点/只重算 u_val)才是可执行的——把重跑做成全有全无,结果一定是全无。
  • 只在设计变更时重跑,忽略④⑤⑥⑧。尤其⑥:基准侧的变更常常发生在试验部门,模型的属主根本不知道。
  • 重跑后只更新误差数字,不更新可信域与有效期。报告读起来还是旧的那张资质证——四件事里第①件与第④件没跟上。
  • 在本课语境里自造一套重跑流程模板。那会给它一个它没有的权威,且与 J7-07 仿真任务的输入、交付与模型资产管理 的口径可能冲突——本课交的是触发条件,不是流程。
  • 把「模型版本」理解成文件名后缀。能证明「重跑的是同一个模型」的是快照标识与依赖清单,那是 J7-07 仿真任务的输入、交付与模型资产管理 的活。
  • 触发条件表写进了报告,却不写有效期的终止条件。读者无从判断这份报告今天还算不算数——表的意义正在于让「过期」可判。

1.4 判据的结构本课给,判据的数值必须本项目自己定——⛔ 不许抄上一代,也不许抄软件示例

是什么。「谁来定过关标准」的答案不能是「做模型的人自己定」。把 sign-off 拆成两层,责任就清楚了:

  • 判据的结构——本课给:先判分辨力(u_val ≤ ΔT_允许/κ,不满足即「判不了」),再比 |E| 与 u_val;逐响应量、逐工况分档;结论必须带域与有效期。这套结构收口成本课归纳的三档结论(判不了/未观察到可辨偏差/存在可辨偏差,第 4 讲展开判定顺序)。
  • 判据的数值——ΔT_允许 的各档、κ、各类比率量的允许相对误差——由本项目定,本课一个都不给

定数值的依据是判错的后果:同样大小的一个温度偏差——比如 2 K(这里只是示意的量级,⛔ 不是任何判据值)——落在电芯温度上可能改变热失控裕度的结论,落在风道出风温度上可能只影响舒适性主观评价。⇒ 误差带必须按响应量与工况分档,一刀切必然一头过严、一头过松。分档的相对方向是可给的:稳态点严于瞬态峰值点、电芯温度严于风道出风温度——⚠ 这是相对严格性的方向,⛔ 不是数值。

为什么⛔ 禁止抄上一代平台、⛔ 禁止抄软件供应商的示例。上一代的误差带是与上一代的模型形式、试验能力、决策门槛配套的:他们的测量链路能分辨到哪一级、他们的决策拿这个数去冒多大的险,都长在那组数里。抄过来,等于静默继承一套与本项目无关的裕度——而且没有人知道继承了什么。软件文档与论文里的示例值同理:它们是演示用的,不背你的决策后果。

工程量级。⛔ 不给任何档位值——本节的全部内容就是解释为什么不给、以及该由谁给。

易错点。

  • 让做模型的人既定判据又出结论。利益冲突会让判据向「可达」的方向漂——不是谁不诚实,是判据可协商时它一定被协商。
  • 把软件文档或论文里的示例误差带当成「行业标准」。它们既不是标准,也不对应你的决策后果。
  • 只定「过关线」,不定分辨力要求。于是判据在测量能力不足时静默失效——u_val 比 ΔT_允许 还宽时,「落在带内」不再说明任何事。这正是本课反钉子的组织层根源:判据的松紧竟然由不确定度的评定口径决定,而没有任何一条规则看着这件事。

1.5 本课的射程边界:判据式三项里有两项要从别处取,取不到就显式记「本次未量化」

是什么。本课给的是 validation 的判据、计划与诊断顺序。以下八件事⛔ 都不在本课射程内,只给去向:

① u_input 的量化与向输出的传播 ⇒ J7-06 仿真不确定度量化(UQ)与稳健/可靠性设计:从确定性单点到带分布的裕度; ② u_num 的量化(网格收敛指数的口径、r 与 p 的取法)⇒ J2-01 CFD 基础、湍流模型与网格划分(Fluent/STAR-CCM+); ③ 试验测量不确定度的评定方法与分量算法 ⇒ L7-03 试验数据分析与不确定度评估; ④ 发散、振荡、不守恒这类数值伪迹的排查清单 ⇒ J7-08 一维系统模型的数值内核与「跑飞」排查:DAE/代数环、步长与容差、一致初值与守恒自检(它们属 verification 一侧,结果异常先判是哪一半再进清单,第 6 讲会再讲一次这条分界); ⑤ 「谁重跑、拿什么重跑、凭什么证明是同一个模型」与仿真报告评审出口判据 ⇒ J7-07 仿真任务的输入、交付与模型资产管理; ⑥ 模型用于控制器标定时的额外门槛(灵敏度方向与增益量级)⇒ K6-13 虚拟标定:把标定动作前移到 MIL/SIL/HIL、自动寻优与回归标定; ⑦ 标定产出入基准库的门槛、跨源置信排序与退役流程(谁摘、怎么摘、引用方越界怎么拦)⇒ Q3-04 热管理数值型基准库治理:口径标注、跨源置信排序、退役与入库门槛;⚠ 出去的只是「流程」这一半——入库数值必须自带的退役条件(什么变更触发失效重验)在本课,见 7.7 的第⑤项元信息; ⑧ 结构动力学的模态相关性方法本体 ⇒ L6-04 结构动态特性试验:模态、动刚度与传递率实测

为什么必须先写边界、再讲内容。本课的判据式 u_val = √(u_num² + u_input² + u_D²) 三项里有两项要从别处取(u_num 从解验证来、u_input 从不确定度量化来),u_D 也要靠试验侧按 L7-03 试验数据分析与不确定度评估 的口径评出来。不先把「从哪取、取不到怎么办」说清,读者会默认把取不到的项当 0——而这个默认不会被任何检查覆盖:判据照样能算出一个数,结论照样能写出来,只是右边悄悄少了两本账。

中心一个主蓝实线框写「本课:validation 的判据、计划与诊断顺序」,框内三行列出本课交付物:判据的结构(三档结论、四件事、分辨力前置)、验证计划的设计判据、分层诊断顺序。围绕它八个灰色虚线框,每框一件不在本课射程内的事与去向:u_num 的量化见 J2-01;u_input 的量化与向输出的传播见 J7-06;试验侧不确定度评定见 L7-03;数值伪迹(发散、振荡、不守恒)排查见 J7-08;流程固化与报告评审出口见 J7-07;控制器标定门槛见 K6-13;基准数值入库治理见 Q3-04;结构动力学相关性见 L6-04。每条连线带箭头标出流向:向内的箭头表示本课要用它的产出(u_num、u_input、u_D),向外的箭头表示本课把问题交出去。中心框下一行警示红字写「本课不交判据的数值:误差带、κ、标定与验证集划分比例、覆盖矩阵规模、可信域边界一律由本项目确定」。本图为定性结构示意,不得据图读取任何数值
图5 该读出三件事:① 三条向内的箭头正是 u_val 的三本账——本课不量化它们,但判据缺一条都配不出;② 五条向外的箭头是本课明确不答的问题,各自的去向在图上可直接读到;③ 本课交的是判据的结构而不是数值,中心框底那一行列出的量⛔ 一个都不在本课给出。框的大小⛔ 不代表内容多少。本图为定性结构示意,⛔ 不得据图读取任何数值。

工程量级。无——本节是射程条,它的产出就是上面那八条去向。

易错点。

  • 把「去向某课」理解成「那门课会给我一个数」。去向给的是方法与口径,数仍然是平台相关量,要靠本项目按那套口径自己算。
  • 取不到 u_num 时把它当 0。判据偏严——数值未收敛造成的偏差会被记成建模缺陷,然后有人去整改一个不存在的建模错。
  • 取不到时反过来随手塞一个大值。判据偏松——u_val 被撑大,真实的建模偏差被淹没。正确做法只有一条:显式写「本次未量化」,并写明它对结论的影响方向——让读者知道判据右边缺了哪一项、缺项朝哪边偏。

1.6 三个标准各管一件事:本课未核任何一份原文,只写去向、不转述条款

是什么。本课引用的三个标准,各管一件事,⛔ 射程互不相通:

  • ASME V&V 20——CFD 与传热的验证确认方法;
  • ASME V&V 10——固体力学的验证确认,FEA 相关性可参照;
  • JJF 1059.1——测量不确定度的评定与表示。

三者的版次与年份以现行目录为准,引用前须核。⚠ 必须写在明面上的一句话:本课未取到上述任何一份原文。讲义中 E = S − D 与 u_val 三分量合成的写法出自本课大纲,与 ASME V&V 20 的确认判据口径一致,⛔ 但本课未核原文——条款内容与适用前提(尤其输入参数是否由同一次试验测得)须按现行版本核。因此本课对这三个标准的引用纪律是:只写标准号与它管什么,⛔ 不转述条款内容、⛔ 不给限值、⛔ 不写版次年份

为什么这条对本课特别要紧。本课的核心判据式就长在标准体系上,读者很容易把讲义里的每一句都当成标准原文的转述——而本课的三档结论、四件事、分辨力前置检查都是本课归纳的,⛔ 不是标准条款。「讲义作者没有核过原文」这件事本身必须写在明面上,否则等于给了这些归纳一个它们没有的权威。

工程量级。⛔ 不给版次、不给条款号——这正是本节要立的规矩本身。

易错点。

  • 写成「按 ASME V&V 20 规定,|E| ≤ u_val 即为通过」。错在两处:把本课归纳的三档结论安到了标准头上;且「|E| ≤ u_val ⇒ 通过」本身就是被本课否掉的两档结构读法(分辨力不满足时它该出「判不了」)。
  • 用 JJF 1059.1 的评定方法去评 u_num 与 u_input。它管的是测量不确定度——u_num 是数值收敛性质的量、u_input 是输入散布传播的量,都不是测量量,⛔ 拿甲侧的方法管乙侧就是跨射程引用。
  • 引用二手转述值当标准值。来源分三级、每级都要标明:标准原文 > 行业协会/手册 > 供应商数据表。供应商值必须写清是哪个产品、哪个组合;同一个量在不同出处给出不同值时,两个都记、各带出处,⛔ 不得单值化。
  • 拿 ASME V&V 10 的条款去管热工侧(或反过来)。V&V 10 在本课地图里的位置只有一个:做 FEA 相关性时可参照;模态相关性那套「固有频率偏差 + 振型相关」的判据本体在 L6-04 结构动态特性试验:模态、动刚度与传递率实测,⛔ 与热工口径不得互套(第 3 讲末尾会再守一次这条边界)。

本讲小结:验证的定位立在四件可核对的事上——域、口径、分辨力、有效期(本课归纳的判据结构,⛔ 非标准条款),四件少一件,误差数字就不能支撑决策。① 「模型准不准」是不完整的问句:软件保证的是解对方程(verification),validation 问的是「这套方程与参数是不是这台设备的合格代表」。② 五类活动的可操作分界只有一条——数据流向:用过试验数据改模型就是标定,⛔ 无论写在报告哪一节;「标定后误差小」是优化问题按定义就有的性质,⛔ 推不出「模型已验证」——换一批从未进过闭环的数据,才有 E 可言。③ 一次通过不等于永久有效:八类触发条件各自独立终止有效期,最容易被漏的四类是软件版本、数值设置、试验基准侧变更与样件批次漂移——其中基准侧那一类,模型一个字没改,资质证照样作废;落地机制归 J7-07 仿真任务的输入、交付与模型资产管理。④ sign-off 分两层:判据的结构本课给,判据的数值由本项目按判错的后果分档定,⛔ 禁止抄上一代、⛔ 禁止抄软件示例;只定过关线不定分辨力,判据会在测量能力不足时静默失效。⑤ 本课射程之外的八件事只给去向;u_val 三本账里取不到的项,⛔ 不记 0、⛔ 不塞大,显式写「本次未量化」加影响方向。⑥ 三个标准各管一件事,本课未核原文,只写去向不转述条款。⇒ 四件事的第①件——覆盖矩阵怎么搭、独立验证集怎么留——是下一讲整讲的事。

后面还有 6 讲正文 · 关键公式 · 案例拆解 · 常见误区 · 动手做

会员专属

后续为会员深水区内容——四库数据与深度拆解。

查看会员方案