验证与确认(V&V)— CAE仿真质量保证
教授,我经常听到V&V这个词,验证和确认到底有什么区别?感觉都是在"检查仿真对不对"……
这是V&V里最容易混淆的一点。有个经典的区分方式:验证(Verification)是在问"你有没有把方程算对?"——数学层面,程序代码是不是正确实现了预期的数值方法,网格够不够细。确认(Validation)是在问"你算的这套方程,是不是真实物理问题的正确描述?"——物理层面,你的模型假设和边界条件有没有正确表达实际情况。两个都通过,才能说仿真结果是可信的。
能举个具体的例子吗?比如一个翼型升力系数的仿真……
好例子。验证层面:你要检查网格是不是足够细,把网格加密一倍后,$C_L$ 变化量小于设定的收敛阈值(比如0.5%),这就算验证通过了网格收敛性这一项。确认层面:你用同样的几何和来流条件,跟风洞实验数据对比,看 $C_L$ 偏差是否在可接受范围内(比如3%)。如果模型选了全湍流而实际流场有层流段,那即使网格再细,偏差也会很大——这就是确认失败的典型原因。
1. V&V 核心定义
权威定义来源于 ASME V&V 10-2019 和 DoD 5000.61:
| 术语 | 英文 | 本质问题 | 层面 |
|---|---|---|---|
| 验证(Verification) | Verification | "Are we solving the equations right?" 方程是否被正确求解? |
数学/数值层面 |
| 确认(Validation) | Validation | "Are we solving the right equations?" 是否在解正确的方程? |
物理/模型层面 |
| 不确定度量化(UQ) | Uncertainty Quantification | "How confident are we in the result?" 结果的置信区间是多少? |
统计层面 |
V&V 框架中的误差来源分类:
- 数值误差(Numerical Error):离散化误差(网格/时间步)、舍入误差、迭代收敛误差——验证活动的目标
- 建模误差(Modeling Error):物理模型假设不当(湍流模型选择、材料本构模型、几何简化)——确认活动的目标
- 输入不确定性(Input Uncertainty):材料参数、边界条件、几何尺寸的测量误差——不确定度量化的目标
2. 验证方法
2.1 网格收敛性分析(Mesh Convergence Study)
网格收敛分析我知道是把网格加密然后看结果变化,但具体怎么判断"已经收敛了"?有没有定量准则?
业界最常用的定量方法是GCI(网格收敛指数,Grid Convergence Index),这是基于Richardson外推的误差估算。你需要至少三套网格,算出收敛率 $p$,然后用GCI公式估算最细网格的误差上限。如果GCI小于2%到3%,一般认为网格已充分收敛。航空和核电的仿真报告里,GCI分析是强制要求提交的。
以三套网格 $h_1 < h_2 < h_3$($h$ 为特征网格尺寸)的关键量 $f_1, f_2, f_3$ 为例:
步骤1:计算网格细化比 $r = h_2/h_1$(通常取 $\sqrt{2}$ 或 2)
步骤2:计算表观收敛阶次 $p$:
$$p = \frac{\ln\left(\dfrac{f_3 - f_2}{f_2 - f_1}\right)}{\ln r}$$步骤3:Richardson外推估算精确解 $f_{exact}$:
$$f_{exact} \approx f_1 + \frac{f_1 - f_2}{r^p - 1}$$步骤4:计算GCI(网格收敛指数):
$$GCI_{12} = \frac{F_s \left|\dfrac{f_2 - f_1}{f_1}\right|}{r^p - 1}$$其中安全因子 $F_s = 1.25$(三套或更多网格)或 $F_s = 3.0$(两套网格)。$GCI < 2\%$ 通常表示结果充分收敛。
2.2 制造解法(Method of Manufactured Solutions,MMS)
MMS是软件代码验证(Code Verification)的黄金标准。基本思路:
- 人为构造一个满足特定解析形式的"制造解" $\phi^{MS}$(不必有物理意义)
- 将 $\phi^{MS}$ 代入控制方程,反推出源项 $Q$(称为强制函数)
- 用数值求解器求解含源项 $Q$ 的方程,得到数值解 $\phi^{num}$
- 与解析解 $\phi^{MS}$ 比较,计算误差 $E = \|\phi^{num} - \phi^{MS}\|$
- 验证 $E$ 随网格加密按理论精度阶次衰减(如2阶格式应满足 $E \propto h^2$)
MMS的强大之处在于:它能测试求解器在非零源项、复杂边界条件等情况下的正确性,是发现代码Bug的高效手段。
2.3 基准问题(Benchmark Problems)
与已知解析解或公认高精度数值解对比:
- 结构FEM:Timoshenko梁、圆筒受内压、旋转圆盘(均有解析解)
- CFD:Lid-Driven Cavity(Ghia等,1982高精度谱方法参考值)、Taylor-Green涡
- 热传导:有解析解的矩形域稳态热传导
3. 确认方法
3.1 实验数据对比
确认活动的核心:将仿真结果与实验测量值定量对比。正确的对比流程:
- 明确"确认量(Validation Metric)"——选择对模型假设最敏感的物理量进行对比
- 量化实验不确定度 $u_{exp}$(测量仪器精度、重复性等)
- 量化仿真不确定度 $u_{sim}$(网格、时间步、迭代收敛残差)
- 计算确认误差 $E = |S - D|$(仿真值 $S$ 与实验值 $D$ 之差)
- 若 $E \leq u_{val} = \sqrt{u_{exp}^2 + u_{num}^2}$,则认为模型通过确认
3.2 不确定度量化(Uncertainty Quantification,UQ)
UQ是什么?仿真结果不是一个确定值吗,为什么要谈不确定度?
仿真的输入参数——比如材料的杨氏模量、载荷大小、焊接接头的几何误差——在实际工程中都是有分散性的,不是精确已知的。UQ的目标就是量化这些输入不确定性如何传播到输出结果的不确定性上。最简单的方法是蒙特卡洛法——把输入参数按统计分布随机采样几千次,每次都跑仿真,看输出结果的分布。但这样计算量巨大。工程上更常用灵敏度分析+多项式混沌展开(PCE)来高效近似。
主要UQ方法:
| 方法 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 蒙特卡洛法(MC) | 随机采样 $N$ 次仿真,统计输出分布 | 简单通用;适用任意分布 | 收敛慢(误差 $\propto 1/\sqrt{N}$);计算成本高 |
| 拉丁超立方抽样(LHS) | 分层随机采样,减少采样点 | 比MC高效;覆盖率更均匀 | 高维时效率仍有限 |
| 多项式混沌展开(PCE) | 用正交多项式基函数近似随机响应面 | 计算高效;可解析提取方差信息(Sobol指数) | 高维输入时多项式项数爆炸(维数诅咒) |
| 灵敏度分析(SA) | 扰动各输入参数,计算对输出的偏导数 | 识别最影响结果的参数;指导实验优先级 | 局部方法只在标称值附近有效 |
4. FEA / CFD 项目中的典型 V&V 工作流程
在实际项目里,V&V工作应该从什么时候开始做?是仿真做完之后再检查吗?
V&V应该从项目开始就规划,而不是仿真做完之后的事后检查。项目启动时就要想清楚:目标量是什么?可接受的误差是多少?有没有实验数据用于确认?需要做多少套网格?这些决定了整个V&V计划。如果等到仿真全做完才发现网格不满足收敛、或者实验数据根本不够,返工代价非常高。在航空和核电项目里,V&V计划(V&V Plan)是项目开始前必须编制并审批的文件。
FEA 项目 V&V 典型步骤
- 建立V&V计划:定义仿真目的、目标量(QoI)、可接受误差准则、验证基准、确认数据来源
- 代码/求解器验证:运行基准问题(Benchmark),确认求解器精度阶次符合预期
- 网格独立性研究:至少3套网格,计算GCI,确认关键量的网格误差在容限内
- 边界条件敏感性分析:评估载荷施加方式、约束条件对结果的影响
- 材料模型验证:用材料标准试验数据(拉伸曲线、疲劳S-N曲线)确认本构模型参数
- 模型确认:将仿真结果与实验测量值(应变片、光学测量、疲劳试验寿命)比较,计算确认误差
- 不确定度报告:汇总数值误差、模型误差和输入不确定性,给出结果的综合置信区间
CFD 项目额外注意事项
- 湍流模型选择:不同湍流模型($k$-$\varepsilon$、$k$-$\omega$ SST、LES)对分离流、逆压梯度区域精度差异很大,需在确认中明确记录
- 时间步收敛:非定常仿真除网格收敛外,还需验证时间步独立性($\text{CFL}$ 数影响)
- 周期收敛:时域仿真需运行足够多周期,确认统计量(平均值、RMS)达到稳定
5. V&V 相关国际标准
5.1 ASME V&V 10-2019(固体力学仿真)
为固体力学计算模型的V&V提供系统框架,包括:确认层级体系(Validation Hierarchy)、不确定度来源分类、确认指标定义,以及如何在有限实验数据情况下进行插值确认。适用于结构FEA、热力学和材料仿真。
5.2 ASME V&V 20-2009(流体动力学仿真)
专为CFD仿真制定的V&V标准。核心方法:
- 系统误差(Systematic Numerical Error)的量化(GCI方法)
- 确认不确定度 $U_{val}$ 的计算
- 验证量 $E$ 与 $U_{val}$ 的比较规则
被美国核监管委员会(NRC)、航空航天机构广泛引用。
5.3 NASA-STD-7009A(2016)
NASA内部标准,规定NASA项目中仿真模型必须满足的可信度等级(Credibility Level,CL 1–5)评估框架。覆盖:V&V成熟度、UQ完整性、代码质量保证、文档化程度等维度。
特点:引入风险权重系数——仿真结果对决策的影响越大,要求的可信度等级越高。
5.4 ISO 26262 / SOTIF(功能安全)
汽车功能安全标准中,仿真工具本身(如FEM求解器、CFD软件)的确认被要求以"工具置信等级(TCL)"的方式记录,确认仿真工具的输出是否可信地用于安全分析。
5.5 FDA 仿真指南(Assessing the Credibility of Computational Modeling, 2023)
FDA发布的医疗器械计算建模可信度评估指南,要求申请人基于影响-风险框架制定模型可信度策略,包括:模型证据等级、V&V活动文档化、不确定度对安全结论的影响分析。
6. 航空 / 核工业的认证文件要求
航空和核电的V&V要求比普通工业严格多少?提交给监管机构的文件具体要写什么内容?
严格程度不是一个量级的。航空FEA报告(静力试验报告的配套文件)里,必须包含:模型描述(单元类型、网格统计)、网格收敛研究结果、材料数据溯源、边界条件说明、与实测值的对比表格、以及一份专门的"分析假设与局限性"章节——你必须白纸黑字写清楚你的仿真在哪些地方做了简化、这些简化的误差影响有多大。核电更严格,一份关键部件的应力分析报告,独立审查团队的审查时间可能比建模计算时间还长。
航空适航认证中的仿真文件
| 文件类型 | 内容要求 | 监管条款 |
|---|---|---|
| 应力分析报告(Stress Report) | FEM模型说明、网格独立性、材料许用值、安全系数计算、与试验相关性 | FAR 25.303 / CS 25.303(安全系数) |
| 疲劳/损伤容限报告 | 裂纹扩展分析、检查间隔计算(基于Paris法则)、断裂力学数据来源 | FAR 25.571 / CS 25.571 |
| 颤振分析报告 | 结构模态数据(GVT相关性)、气动力系数验证、颤振速度余量(≥设计俯冲速度的15%) | FAR 25.629 / CS 25.629 |
核电仿真的强制V&V要求
- 独立审查:关键分析(RPV应力、地震分析)必须经独立的合格工程师(QA)审查,并有审查记录
- 软件合规性:用于安全级分析的软件(如Abaqus、ANSYS)本身必须通过NRC认可的验证测试矩阵(Verification Test Suite)
- 材料数据可追溯:输入的材料参数必须有明确数据来源,通常是ASME Code Cases或经资质实验室认证的试验数据
- 修订控制:每次模型修改都需记录在文件修订历史中,修改原因和对结论的影响必须说明