CNN 管已知故障分类但不可解释,VAE 管未知异常发现但无法分类,规则引擎管可解释指标但覆盖面有限。三路融合——不是"越多越好",是缺了任何一路都会漏判或误判。
焊接质量,抽检的代价有多大?
动力电池极耳焊接,一个虚焊点没检出来,可能整批电芯报废。但现实是:多数工厂靠抽检——每批抽几个做拉力测试。抽到了算运气好,抽不到就流出去了。
为什么不能全检?因为一次焊接只有 50-200ms,人工目检跟不上节拍,焊后拉力和金相分析是破坏性的——测一个就废一个。要全检,只能在焊接进行时通过信号判定。
青璃的在线监测系统就是在焊接时同时采集 4 路模拟量(功率/振幅/频率/压力),10KHz 采样,每个焊点 2000 个数据点,200ms 内完成判定——不用抽检,每个焊点都有结果。
三路并行判定:CNN 分类已知故障 → VAE 检测未知异常 → 规则引擎提供可解释指标 → 258 维融合 → OK/NG/unknown + 置信度分级
为什么不能只用 CNN 一个模型?
只用 CNN 的问题:它能告诉你这是"normal"还是"abnormal"还是"不确定"——但它说不清为什么。操作员看到"不确定",不知道是功率漂了还是振幅异常。遇到训练数据里没有的故障类型,CNN 会自信地给出错误分类。
加上 VAE:VAE 只用正常焊接数据训练,没见过任何故障。当出现全新的故障模式时,VAE 重建误差会飙升——它发现不了"这到底是什么故障",但能发现"这不对劲"。
再加上规则引擎:焊接时间、峰值功率、功率曲线形态、超声振幅——四项指标和最近 6 组的基线对比,偏移百分比明明白白输出("功率曲线偏移 78%"),操作员一看就懂。
三路融合:不是加法,是互锁
CNN 输出 256 维特征 + VAE 输出 1 维重建误差 + 规则引擎输出 1 维命中数 = 258 维融合向量。两层层全连接融合后输出最终判定。置信度 >0.95 自动判定,0.90-0.95 标记抽检,<0.90 转人工审核。
已知故障检出率 98%,未知异常检出率 90%,误报率 3%,自动判定率 85%。这不是"三路取最大值"能得到的——是让三路互相纠偏。
确定性传输:不完整的数据比没数据更危险
传统数据传输有个致命问题:数据还没收齐就发出去了。推理引擎拿到不完整的焊接信号,做出来的判定是错的。
确定性传输的做法:焊完→4 通道数据全量打包→组装成推理窗口→校验完整性→指定时间窗口发送。不完整就丢弃,要求重发。推理引擎永远拿到完整数据。
采集链路:焊机同步触发 → 4 路 10KHz → per-weld 打包 → 推理窗口组装 → 完整性校验 → 定时发送 NPU
INT8 给 CNN,INT16 给 VAE
RK3588 的 NPU 只有 6TOPS,要同时跑 CNN+VAE+融合层。CNN 分类容忍精度损失,INT8 量化后 BatchNorm 吸收了误差,效果几乎不变。VAE 要精确计算重建误差——把误差算大了,正常焊点也会被误判为异常。所以 VAE 保留 INT16。融合层 INT8 足够,规则引擎跑 CPU。总推理延迟不到 100ms。
闭环进化:unknown → 人工审核标注 → 累积 3000 条触发重训 → 自动重新量化 → 部署。模型越用越准。
从 200ms 判定开始,到持续进化闭环结束
采集→判定→审核→标注→训练→量化→部署——不是一次性交付。系统上线后,每一次"不确定"的判定都是训练数据,每积累到预设数量就自动触发重训和量化。模型不会因为环境的微小变化而退化,反而会越来越适应具体产线的信号特征。
