MCLink Cortex · RLab 实测

做过非定常 CFD 的人都知道,算完往往只是开始:求解器吐出的监测文件格式五花八门,要先读进来;三套网格做网格无关性,要手算 Richardson 外推和 GCI;拿到试验数据,还得先处理传感器毛刺,再和仿真对比。这些工作重复、琐碎,任何一步做错,结论就站不住。
MCLink Cortex是我们打造的工程智能体平台。平台上挂着一组可扩展的智能体,它们操控本地的求解器和工具软件,把一件专项工作从头跑到尾。
RLab是其中负责仿真和试验数据分析的智能体:可以挂接自研算法,完成统计、分析和 AI 训练数据准备。
这篇文章,我们用流体工程师最熟悉的 Re = 100 圆柱绕流,把 RLab 的主要能力走一遍:读入求解器监测文件、做网格无关性评估、一句话生成新算子、把算子编成流水线处理试验信号并与仿真对比,最后把后处理经验写成“技能”。每一个关键数字,我们都用独立脚本做了复核。
我们把一个二维非定常算例的力系数监测文件(.dat,带 # 注释表头,三列:无量纲时间、Cd、Cl)上传到 RLab。它判断这是一种没见过的格式,随即自己写了一个解析器:模型生成约 2600 字符的 Python 代码,静态检查通过后在沙箱里用这份文件实测,第一次就解析成功,得到 1501 行 × 3 列。

确认后,解析器被保存下来,下次遇到同类文件直接调用。CSV、Excel、Parquet、JSON、带文字层的 PDF 报告和表格截图,RLab 可以直接读入;其他格式(例如各家求解器自己的监测文件),就按这种“写解析器—沙箱验证—人工确认”的方式扩展。
同一算例我们算了三套网格,圆柱直径方向分别为 10、14、20 个格点,加密比约 1.4:
我们只问了一句:各量是否单调收敛、观测精度阶多少,给出 Richardson 外推值和细网格 GCI,哪些结论可信。


RLab 按 Celik 等(2008)的 GCI 流程逐量处理,几处判断很到位:
St 单调收敛:
Cd 非单调:
提醒看绝对值:
接下来是试验数据。尾流测点的脉动压力信号里混着传感器干扰造成的单点尖峰。内置的中值滤波会对每个点都做替换,连正常波形一起抹平;更合适的是 Hampel 滤波:只替换判为尖峰的点,其余原样保留。这个算法内置库里没有,我们就在“用 AI 生成”里用一段话描述它:滑动窗口取局部中位数和 MAD,偏离超过若干倍稳健标准差的点视为尖峰,替换为局部中位数,另输出一列标记哪些点被替换。

RLab 交回一个完整的候选算子:参数定义、中文说明、输入校验一应俱全,还自带 3 个测试用例(例如在全零序列中放一个幅值 100 的尖峰,检查能否被识别和替换)。用例在沙箱里全部跑通后,才出现“确认并保存”按钮;保存后,它和内置算子一样,可以在对话和流水线里调用。

我们把新算子和内置的 FFT 串成一条流水线:试验信号 → Hampel 去尖峰 → FFT 频谱分析。每一步的结果都存为带血缘的派生数据集,点任何一步都能看到那一步的数据。


参数可以让 AI 推荐。在 FFT 节点点“推荐”,它根据时间列 t 的间隔(0.15)算出采样率 6.67,并提醒能分析的最高频率是采样率的一半(约 3.33)。

去尖峰这一步,我们完整保留了实际过程。对 Hampel 节点,AI 推荐的参数是窗口半宽 3、阈值 4 倍稳健标准差、稳健标准差下限 min_sigma = 1e-6。按这组参数,800 个点里被替换了 129 个,而真正的尖峰只有 8 个。原因在于:这段信号的噪声很小,7 点窗口内的 MAD 主要反映噪声,而正常波峰、波谷处的曲率就足以让样本偏离局部中位数超过阈值。
标记列让这个问题一眼可见。我们把 min_sigma 设为 0.05:这个值与相邻点差分估出的短时波动量级相当(约 0.048),又远小于尖峰的偏离量(约 1.6~2.1)。重新运行后只替换了 8 个点,正好是全部尖峰,没有误判。

再看频谱。原始信号和去尖峰后的主峰都落在 0.1667 这个频点上(记录长度 120 个时间单位,频率分辨率 0.0083),抛物线插值后约为 0.170,与第二节细网格算出的 St = 0.1699 一致。去尖峰后,谱峰以外的噪声底降到原来的七分之一左右(这些频点幅值的中位数从 0.012 降到 0.0017);0.34 附近的 2 倍频分量也保留得很完整。

流水线搭好后,切到“运行 · 小程序”,界面只剩“选择数据 → 运行”。测试人员换一份试验数据点一下就能跑,处理过程依然可追溯。

算法库管“能做什么”,技能库管“该怎么做好”。我们把非定常力系数后处理的经验用大白话写给“AI 生成技能”:先判断是否进入统计稳态,按周期取 Cl 包络,剔除初始瞬态;统计窗口取整数个周期;St 用过零点和 FFT 两种方法互相校核,并报告频率分辨率;Cd 的脉动频率是 Cl 的 2 倍,不要把它当成脱落频率。
它生成了一份名为 cfd-vortex-shedding-an alysis 的技能,并标明成本:常驻目录约 119 token,正文 1061 token,用到时才加载。技能生成后处于“待审阅”状态,我们逐条审阅后才启用。在随后的对话里,智能体分析力系数监测文件时自动加载了这份技能,第一步就按技能的要求画出全段时程,并指出 t = 0 时的 Cd = 45.3 是启动冲击,必须剔除。

从“解析器”到“算子”“流水线”再到“技能”,团队的经验不再只存在个人脑子里,而是沉淀为平台能力。
| 结果可追溯 | |
| 主动把关 | |
| 能力可扩展 | |
| 经验可沉淀 | |
| 过程可控 |
一圈实测下来,我们的体会是:对 CFD 和试验工程师,智能体的价值不在于替你“说出一个答案”,而在于把读数据、算指标、查收敛、比仿真与试验这些环节串起来,每一步都摊开给你看、交给你把关。
RLab 是 MCLink Cortex 平台上的仿真与试验数据分析智能体。它与平台上的其他智能体一起,目标是把一件专项工作从头跑到尾。
欢迎体验:如需试用,或希望用您自己的仿真、试验数据做一次演示,欢迎在公众 号后台留言或联系我们。
关于演示数据:文中算例为二维圆柱绕流,Re = 100,由格子玻尔兹曼方法计算,计算域 25D × 20D(阻塞比 5%)。时间、频率均按圆柱直径 D 和来流速度 U 无量纲化,频率即斯特劳哈尔数。受阻塞效应和阶梯边界影响,Cd 和 Cl 幅值明显高于文献中无阻塞的二维结果(Cd 约 1.33、Cl 幅值约 0.33),St 比文献值(约 0.164~0.166)高约 3%。“试验信号”为演示用构造数据:取细网格尾流测点(圆柱中心下游 2D、偏离中心线 0.5D)的脉动压力系数时程,叠加标准差为信号 5% 的高斯噪声,并在 1% 的随机位置加入 4~7 倍信号标准差的单点尖峰,用以模拟传感器干扰。