CFD 仿真质量 AI 校验系统架构方案
项目进度
CFD 仿真质量 AI 校验系统架构方案
副标题:一次度量,多处消费(Measure Once, Consume Many) 定位:在仿真结果收敛的前提下,自动判断计算正确性的基础设施规划 版本:v0.1(草案)
1. 背景与问题定义
1.1 核心痛点
CFD 仿真中,“收敛"只是正确性的必要条件,而非充分条件。求解器残差达标后,结果仍可能因以下原因失真:
| 错误类别 | 典型表现 | 检测手段 |
|---|---|---|
| 假收敛 | 残差达标但关键物理量仍在漂移 | 监控量平台期判断 |
| 物理设置错误 | 边界条件、湍流模型、物性参数不对 | 守恒审计 + 物理直觉对质 |
| 网格引起的错误 | 假扩散、数值振荡、关键区域欠解析 | 散度 / y+ / 网格质量 + 网格无关性 |
| 数值病态 | 非物理压力峰值、局部速度爆炸 | 有界性检查(值域、极值定位) |
| 结果"合理但错误” | 流场看着正常,量级/分布不对 | 与基准数据/历史同类算例对比 |
1.2 核心命题
CFD 的各种智能化应用,差异不在数据管道,而在"对同一份度量结果问的问题不同"。
无论做失真判定、密度场预测还是发散预警,需要的基础操作高度一致——把一个仿真算例变成一组结构化的空间分布和时间序列。差异只出现在最后一公里:打什么标签、训什么目标、回答什么问题。
2. 总体架构:三段式结构
┌─────────────────────────────────────────────────────┐
│ 第一段:度量层(MEASURE)—— 领域知识的沉淀地 │
│ 统一读取结果/网格/日志 → 计算物理量算子 │
│ 守恒通量 | 有界性 | 散度场 | 梯度场 | 误差指示子 | y+ │
│ 残差历史 | 网格质量 | 积分量(阻力/总压损失/流量) │
├─────────────────────────────────────────────────────┤
│ 第二段:表征层(REPRESENT)—— 标准化的中间接口 │
│ 算例指纹 = 特征向量 + 场分布 + 时序曲线 │
│ (按算例类型分类归档,形成"算例画像库") │
├─────────────────────────────────────────────────────┤
│ 第三段:消费层(CONSUME)—— 每个应用只是不同的问法 │
│ 失真判定 | 密度场预测 | 发散预警 | (可继续扩展) │
└─────────────────────────────────────────────────────┘
2.1 度量层(MEASURE)
职责:统一读取各类求解器的结果文件、网格文件、求解日志,计算标准化的物理量算子。
算子清单(首批):
- 守恒审计:进出口质量/能量净不平衡(阈值 < 1%)
- 有界性:温度/组分/湍流量是否出现负值或超物理值域
- 连续性:全场 ∇·v 是否在容差内
- 壁面 y+:是否落在所用湍流模型要求的区间
- 双重收敛判定:残差 + 监控量平台期(波动 < ±0.5%)
- 网格质量报告:skewness、非正交度、负体积
- 残差历史时序、积分量(阻力系数、总压损失、流量)的时空统计
技术要点:
- 需先解决结果文件统一读取层(OpenFOAM / Fluent / 自研格式),这是全系统第一个技术风险点
- 实现以 Python + PyVista 为主,脚本由 AI 辅助生成,领域规则由仿真经验定义
- 输出统一格式的结构化"体检报告"(每项检查:通过/警告/失败 + 数值 + 定位)
2.2 表征层(REPRESENT)
职责:把度量层输出固化为标准化的"算例指纹",按算例类型(外流/内流/传热/多相等)分类归档,形成画像库。
指纹结构:
- 特征向量:积分量、场分布统计量(分位数、梯度分布、极值位置)
- 场分布:关键物理量的空间分布切片
- 时序曲线:残差历史、监控量历史
设计原则:表征入库是强制副产品——即使暂时没有应用消费它,也要存。标签的半衰期很长,是后续所有智能化的数据地基。
2.3 消费层(CONSUME)
三个首批应用,覆盖仿真全生命周期的质量管控点:
| 失真判定 | 发散预警 | 密度场预测 | |
|---|---|---|---|
| 时间相位 | 事后(结果出了) | 事中(求解进行时) | 事前(还没开始算) |
| 输入表征 | 结果场的度量分布 | 残差/监控量的时序 | 几何 + 边界条件的编码 |
| 问的问题 | “这个结果可信吗?” | “它会发散吗?” | “哪里该加密?” |
| 标签从哪来 | 人工判定 + 规则触发 | 事后回看残差曲线 | 度量层自动生成(粗细双算误差分布) |
| 方法 | 规则审计 + 画像偏离 | 时序异常检测 | 监督回归(几何→密度场) |
| 对底座的依赖 | 完全依赖 | 完全依赖 | 标签构造完全依赖 |
三个应用的技术分层(以失真判定为例):
- L0 确定性物理审计:规则引擎,价值的 70%,最先实现,拦截大部分"收敛但错误"
- L1 统计异常检测:按算例类型建"正常行为画像",Isolation Forest / One-Class SVM 打分
- L2 基准对比:标准算例库自动比对(确证性证据,如圆柱绕流 St 数)、自动网格无关性(三级网格 + Richardson 外推)
- LLM 综合判读:输入体检报告 + 异常分数 + 对比结果 + 云图,输出"可信度评级 + 疑点定位 + 建议动作"的人话版报告;判断规则由领域经验写入 prompt,人工抽检验收
3. 关键设计特性
3.1 不变性
度量层和表征层对所有应用共享,是一次性投入;消费层的每个应用都是轻量追加。底座贵,消费便宜——这是该架构在经济上成立的根本原因。
3.2 自洽闭环
密度场预测的标签本身就是度量层的输出:对历史算例做"粗细两遍求解",用度量算子算出误差空间分布,直接作为密度场训练标签(MeshingNet 方法)。底座不仅为应用提供推理时的输入,还为应用提供训练时的标签,无需额外数据来源。
3.3 渐进式智能化
同一"算例指纹"接口依次承载:
- 规则阶段:指纹直接过 if-else 审计(零训练数据)
- 统计阶段:指纹进异常检测模型(只需正常样本,约 50+ 算例)
- 监督阶段:指纹带标签进回归/分类(需标注数据)
接口不变,智能化程度递增——底座投入从第一天起不会作废。
3.4 全生命周期覆盖
事前(网格密度预测,防欠解析)→ 事中(发散预警,防白烧算力)→ 事后(失真判定,防错误结论出门)。三者合起来构成完整的仿真质量闭环,公共底座即"仿真质量数据中心"。
4. 数据飞轮
跑算例 → 度量层自动分析 → 结构化表征入库(副产品:标签自动沉淀)
↑ ↓
└──── 优化建议回流(加密位置/参数调整)← 应用模型迭代
- 每个新算例经底座分析后,表征自动入库
- 人工只在判读环节做少量标注(LLM 辅助判读降低标注成本)
- 数据积累反哺三个应用模型;应用模型反向产出优化建议,影响下一个算例
- 底座是飞轮的轴,应用是飞轮的叶片——轴必须先立起来
5. 实施路线图
| 阶段 | 周期 | 内容 | 验收标准 |
|---|---|---|---|
| 阶段一:度量层 MVP | 1~2 个月 | 选 1 类最熟算例,固化手工检查项清单;AI 辅助写 Python 脚本(PyVista 读结果 → 算散度/守恒/极值 → 出 JSON 体检报告) | 跑通 20~30 个历史算例,人工核对报告靠谱率 |
| 阶段二:表征入库 + 标签积累 | 2~3 个月 | 每个跑过的算例打标签(正确/假收敛/网格问题/设置问题…),结构化沉淀 | 建立带标签的历史算例库(可复用飞书表格做标签管理) |
| 阶段三:统计异常检测 | 按数据量触发 | 同类型算例 50+ 后上 Isolation Forest | 画像偏离度打分与人工判断一致率达标 |
| 阶段四:LLM 综合判读 | 迭代式 | 报告 + 数据 + 云图喂给 LLM,人工验收判断质量,迭代 prompt | 判读结论可用率、误报/漏报率达标 |
| 阶段五:密度场预测(终局) | 依赖算例库多样性 | 粗细双算自动造标签,训练几何→密度场模型 | 前置网格预测接入实际前处理流程 |
6. 风险与边界
- 数据格式是第一个坑:不同求解器输出格式不统一,读取层需最先攻坚
- 不追求"全自动判对错":系统正确形态是"可信度分数 + 疑点清单",最终判断留给人——同时提高组织接受度
- 标签体系反向成为测试标准:缺陷分类学 + 重现条件 + 影响面标注,与测试资产化目标互相成就
- 密度场预测的适用边界:稳态、特征可预判的问题效果好;瞬态强非线性问题(涡脱落、转捩、燃烧)仍需在线自适应兜底,前置预测用于压缩在线加密面积,而非完全替代
7. 一句话总结
把"分析仿真结果"从每次应用时的临时动作,升级为一次性的基础设施投资——度量即资产,表征即接口,应用即消费。
项目文档
调研记录
0 篇暂无内容
需求文档
0 篇暂无内容
进度日志
0 篇暂无内容
复盘
0 篇暂无内容