ASME V&V 20 验证度量标准

分类: V&V / ASME V&V | 综合版 2026-04-12
ASME V&V 20 validation metric framework - comparison error E versus validation uncertainty u_val diagram
ASME V&V 20 におけるバリデーションメトリクスの概念図 — 比較誤差Eとバリデーション不確かさu_valの関係

理论与物理

什么是验证指标

🧑‍🎓

老师,验证指标具体计算什么?如果只是看仿真和实验是否一致,直接计算误差百分比不就可以了吗?

🎓

问得好。确实很多人只看“仿真值与实验值相差百分之几”。但仅凭这个是不够的。为什么呢?因为实验数据和仿真都存在不确定性

例如,假设实验测得的应力是100 MPa。仿真结果是105 MPa。误差5%,这样不行吗?但如果实验的测量精度是$\pm8$ MPa呢?如果仿真的网格依赖性有$\pm3$ MPa呢?那5 MPa的差异可能就在不确定性范围内,实际上或许可以说“是一致的”。

🧑‍🎓

原来如此……也就是说,不仅需要误差的大小,还需要一个机制来判断这个误差是否是“有意义的差异”。

🎓

没错。ASME V&V 20(计算流体动力学与传热学验证与确认标准)正是将这个判断框架标准化的产物。验证指标是指,在考虑双方不确定性的基础上,定量评估仿真结果与实验数据一致程度的指标

比较误差 E 的定义

🧑‍🎓

具体是用什么公式计算呢?

🎓

起点是比较误差 E(Comparison Error)。这个很简单:

$$ E = S - D $$

其中 $S$ 是仿真结果(Simulation outcome),$D$ 是实验数据(experimental Data)。

🎓

因为是带符号的差值,所以如果仿真比实验大则$E > 0$,小则$E < 0$。如果想用“相对误差”,有时会使用$E/D$,但在ASME V&V 20的基本框架中,更多使用基于绝对值的$E$。

🧑‍🎓

这里我明白了。但按刚才的说法,只看这个$E$本身是没有意义的,对吧?

🎓

是的。仅凭$E$无法判断“这个差异是否显著”。所以接下来要计算验证不确定性 $u_\text{val}$,并与$E$进行比较。

验证不确定性 $u_\text{val}$

🧑‍🎓

验证不确定性具体是哪些不确定性的总和呢?

🎓

ASME V&V 20将不确定性大致分为三类:

  • $u_\text{num}$(数值不确定性):网格依赖性、时间步长依赖性、迭代收敛残差等,由离散化引起的不确定性。通常用GCI(网格收敛指数)进行评估。
  • $u_\text{input}$(输入参数的不确定性):材料物性值、边界条件、初始条件的测量精度或波动。例如,如果杨氏模量为$210 \pm 5$ GPa,那么$\pm5$ GPa就是输入不确定性。
  • $u_\text{exp}$(实验的不确定性):传感器精度、测量位置偏差、环境变动等,实验数据侧的不确定性。

如果假设这些不确定性源相互独立,则可以用RSS(平方和的平方根)进行合成:

$$ u_\text{val} = \sqrt{u_\text{num}^2 + u_\text{input}^2 + u_\text{exp}^2} $$
🧑‍🎓

平方和的平方根,这和误差传播时的思路是一样的呢。

🎓

正是如此。和GUM(测量不确定度表示指南)的思路相同。但需要注意两点。第一,如果不确定性源之间存在相关性,则需要添加相关项。第二,这里所说的不确定性通常以标准不确定度($k=1$,约68%置信区间)处理,但有时也会用95%置信区间($k=2$)处理,因此在报告中必须注明使用的是哪一种。

各不确定性成分的具体评估方法
  • $u_\text{num}$的评估:在三个或更多网格级别上求解,应用Richardson外推法。GCI = $F_s \cdot |(\hat{f}_\text{fine} - \hat{f}_\text{coarse})/\hat{f}_\text{fine}| / (r^p - 1)$。安全系数$F_s$通常为1.25(三水平外推时)或3.0(两水平时)。
  • $u_\text{input}$的评估:使用灵敏度系数法($u_\text{input}^2 = \sum_i (\partial S/\partial x_i)^2 u_{x_i}^2$)或蒙特卡洛法进行评估。参数较多时,拉丁超立方采样效率较高。
  • $u_\text{exp}$的评估:根据GUM,合成Type A(统计评估:重复测量的标准偏差)和Type B(系统评估:校准证书、传感器规格书)。

判定标准:$|E|$ vs $u_\text{val}$

🧑‍🎓

得到$E$和$u_\text{val}$后,如何决定“合格/不合格”呢?

🎓

判定很简单。ASME V&V 20的基本思路如下:

  • 当 $|E| \leq u_\text{val}$ 时:比较误差落在不确定性范围内。在此条件下,无法区分仿真与实验的差异是模型误差所致还是不确定性所致。可以判断为验证成功。
  • 当 $|E| > u_\text{val}$ 时:存在无法用不确定性解释的差异。即存在模型形式误差(model form error)。需要改进模型。
🧑‍🎓

请稍等。$|E| \leq u_\text{val$这个条件,如果不确定性很大,岂不是什么都“合格”了?

🎓

问得尖锐!确实如此,这正是V&V 20重要思想的关键点。$|E| \leq u_\text{val}$并非证明“仿真是正确的”,而是意味着“在当前的知识水平(不确定性大小)下,无法检测出模型误差的存在”

因此,验证的质量由$u_\text{val}$的大小决定。为了减小不确定性,需要不断努力进行更精密的实验、使用更精细的网格、获取更准确的物性值。

💡 直观理解:以射击靶为例,$E$相当于“子弹偏离中心多少”,$u_\text{val}$相当于“靶子的大小”。如果子弹击中靶子($|E| \leq u_\text{val}$),则枪法合格。但如果靶子直径有1米,谁都能击中。要证明枪法好(模型的精度),就需要击中更小的靶子。

面积指标(Area Metric)

🧑‍🎓

$E$和$u_\text{val}$的比较是针对每个点的评估吧。如果响应是分布的情况怎么办?比如整个温度分布的一致性。

🎓

很好的视角。这种情况下使用的就是面积指标(Area Validation Metric)。这是Ferson等人(2008)提出的方法,比较仿真结果和实验数据各自的累积分布函数(CDF)。

$$ d_\text{area} = \int_{-\infty}^{\infty} |F_S(y) - F_D(y)| \, dy $$

其中$F_S(y)$是仿真结果的CDF,$F_D(y)$是实验数据的CDF。

🎓

$d_\text{area}$取值为0或正数,如果两个CDF完全一致,则$d_\text{area} = 0$。这个指标的优点在于:

  • 反映分布形状(不仅是平均值,还包括波动、偏斜等)
  • 可以将多个响应量汇总为一个数值
  • 易于设定阈值(例如:若$d_\text{area} < 0.1$则合格)

例如,在汽车碰撞试验中比较加速度时间历程时,可以将每个时刻的值视为样本构建CDF,然后用面积指标进行统一评估。

🧑‍🎓

CDF的面积差,原来如此。比逐点比较更容易把握整体情况。

u-pooling法

🧑‍🎓

如果有多个验证点——例如10个测量点或5种条件下的实验——如何进行综合评估呢?

🎓

解决这个问题的方法是u-pooling法(Ferson & Oberkampf, 2009)。思路如下:

  1. 在每个验证点$i$,构建实验数据$D_i$的CDF $F_{D_i}$
  2. 确定仿真值$S_i$在该CDF上的位置:$u_i = F_{D_i}(S_i)$
  3. 如果模型完美,$u_i$应服从$[0, 1]$上的均匀分布
  4. 将收集到的$\{u_1, u_2, \ldots, u_n\}$的CDF与标准均匀分布$U[0,1]$的CDF进行比较
$$ u_i = F_{D_i}(S_i), \quad i = 1, 2, \ldots, n $$
🎓

如果这个$u_i$显著偏离均匀分布,就证明模型存在系统性偏差。例如,如果$u_i$整体偏向0,则可知“仿真存在系统性低估”;如果偏向1,则是“系统性高估”。

在实际工作中,通常使用Kolmogorov-Smirnov检验(KS检验)或Anderson-Darling检验来统计检验偏离均匀分布的程度。

🧑‍🎓

也就是说,可以把不同条件下的结果汇总起来,判断“这个模型整体上怎么样?”。真是非常方便的方法。

可靠性指标(Reliability Metric)

作为验证指标的另一种形式,还有可靠性指标

$$ r = P(|S - D| \leq \delta_\text{req}) $$

其中$\delta_\text{req}$是工程要求(容许误差),$r$表示“仿真满足要求的概率”。当$S$和$D$中任意一个或两者都具有概率分布时,可以进行基于可靠性的判定。这在航空航天等有“故障概率$10^{-6}$以下”严格要求的领域非常有效。

数值解法与实现

不确定性的量化方法

🧑‍🎓

理论我明白了。但实际中$u_\text{num}$和$u_\text{input}$这些,具体怎么得出数值呢?有规范的操作步骤吗?

🎓

关于$u_\text{num}$,最广泛使用的是Richardson外推法 + GCI。我们来整理一下步骤:

  1. 在三个或更多网格密度级别(粗、中、细)上求解同一问题。设代表性网格尺寸为$h_1 > h_2 > h_3$。
  2. 设定细化比 $r = h_1 / h_2$(通常$r \approx 1.3\sim2.0$)。
  3. 求表观收敛阶数$p$:
$$ p = \frac{\ln\!\left(\frac{f_1 - f_2}{f_2 - f_3}\right)}{\ln(r)} $$
🎓

这里$f_1, f_2, f_3$分别是粗、中、细网格下的解值。然后计算GCI(网格收敛指数):

$$ \text{GCI}_\text{fine} = \frac{F_s}{r^p - 1} \left| \frac{f_2 - f_3}{f_3} \right| $$

安全系数$F_s = 1.25$(三水平外推时)。这个$\text{GCI}_\text{fine}$就是数值不确定性$u_\text{num}$的估计值。

🧑‍🎓

用三个网格求解,根据收敛方式估计“距离真解有多远”,是这样吧。

与蒙特卡洛法的组合

🧑‍🎓

$u_\text{input}$这边怎么处理呢?如果输入参数有10个甚至20个,全部求灵敏度系数似乎很麻烦……

🎓

没错,参数多的时候灵敏度系数法计算成本很高。这时蒙特卡洛法就派上用场了。步骤如下:

  1. 设定每个输入参数的概率分布(正态分布、均匀分布等)
  2. 使用拉丁超立方采样(LHS)等方法生成$N$个样本集($N = 100 \sim 10{,}000$左右)
  3. 对每个样本执行仿真,得到响应的分布
  4. 响应的标准偏差就是$u_\text{input}$

但是,如果一次仿真需要几个小时(如CFD),执行$N=1000$次是不现实的。因此,在实际应用中,通常会引入代理模型(响应面法、克里金法、PCE:多项式混沌展开)来降低计算成本。

通过灵敏度分析进行贡献度分解

🧑‍🎓

当$u_\text{val}$太大而无法使用时,我想知道“减少哪个不确定性最有效”。

🎓

这时就变得重要的是不确定性贡献度分解(Uncertainty Budget)。查看$u_\text{val}^2 = u_\text{num}^2 + u_\text{input}^2 + u_\text{exp}^2$中各项的比率。

例如在实际项目中,如果$u_\text{val} = 12.5$ MPa:

不确定性成分值 [MPa]平方贡献率对策
$u_\text{num}$3.26.6%网格细化
$u_\text{input}$11.077.4%提高材料试验精度
$u_\text{exp}$5.016.0%测量系统校准
$u_\text{val}$(合成)12.5100%
🎓

在这个例子中,$u_\text{input}$占主导地位(77.4%),因此即使细化网格,整体不确定性也几乎不会下降。由此可知,提高材料物性值的精度是性价比最高的方法。能够做出这样的判断,正是V&V 20框架的优势所在。

实践指南

验证计划的制定方法

🧑‍🎓

老师,实际进行验证时,第一步应该做什么?直接计算$E = S - D$就可以吗?

🎓

那是初学者常犯的错误。首先必须制定验证计划。ASME V&V 20推荐使用“PIRT(现象识别与排序表)”,按以下顺序推进:

  1. 确定验证对象的SRQ(系统响应量):比较什么?最大应力?温度分布?流速剖面?笼统地说“结果是否一致”是不行的。必须明确具体的响应量。
  2. 设定所需的精度要求:确定$\delta_\text{req}$(容许误差)。没有这个就无法判断“合格”。
  3. 制定实验计划:在哪些参数范围内,测量多少次。选择能够充分减小不确定性的测量方法。
  4. 先完成代码的校核(Verification):在验证之前,先完成代码校核和解的校核。在存在数值错误的状态下进行验证是没有意义的。
関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

V&V構造解析流体解析熱解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
关于作者