# SPC智能预测预警技术文档 ## 1. 文档目标 本文档用于设计 `MES-Manager_View` 中 AI 助手的 SPC 智能预测预警功能。功能基于现有质量数据查询结果,分析测量值趋势、Cp/Cpk 工序能力参数趋势,并在 AI 助手界面输出商业软件级别的预测预警结果。 本阶段只编写技术设计文档,不修改任何代码、不提交、不推送。 ## 2. 功能目标 SPC 智能预测预警需要实现以下能力: | 能力 | 说明 | |---|---| | 质量趋势预警 | 根据测量值随时间变化识别超限、接近规格限、连续漂移、波动变大等风险 | | Cp/Cpk 能力预警 | 根据滚动窗口计算 Cp、Cpk,判断工序能力是否下降 | | 风险分级 | 输出正常、关注、预警、严重四级结果 | | 图表展示 | 在 AI 助手中展示测量值趋势图、Cp/Cpk 趋势图、风险点 | | 结果解释 | 说明触发规则、计算依据、样本范围、置信度 | | 商业化输出 | 使用规范表格、清晰颜色、可追溯明细和建议措施 | ## 3. 数据来源约束 所有数据必须来自项目已有 HMI 查询能力,不允许直连数据库。 质量数据查询链路: ```text AI助手 -> MCP Server -> queryQualityData() -> MESCommonBase.ashx -> CreateData 参数结构 -> 质量数据_发动机质量数据_各个工位_视图_发动机型号_综合查询 ``` 禁止事项: - 不直接连接 SQL Server。 - 不在 AI 服务中拼 SQL。 - 不新增数据库依赖。 - 不修改质量数据查询页面底层业务逻辑。 - 不绕过项目已有函数查询数据。 ## 4. 推荐分析对象 预测预警应优先针对单一工序特性分析。 推荐查询粒度: ```text 工位号 + 测量位置 + 测量项目 ``` 示例: ```text 查询质量数据 工位号 OP10 测量位置 缸盖螺栓 测量项目 扭矩 做SPC智能预警 ``` 如果用户未提供完整条件: | 缺失条件 | 处理方式 | |---|---| | 未提供工位号 | 允许分析,但提示可能混合多个工位 | | 未提供测量位置 | 允许分析,但提示可能混合多个测量位置 | | 未提供测量项目 | 允许分析,但提示可能混合多个测量项目 | | 无任何条件 | 使用全时间范围最新数据分析,置信度标记为低 | ## 5. 输入参数设计 | 参数 | 来源 | 说明 | |---|---|---| | query | 用户原始问题 | 用于解析意图和筛选条件 | | stationNumber | 自然语言解析 | 工位号 | | testPosition | 自然语言解析 | 测量位置 | | testItem | 自然语言解析 | 测量项目 | | engineId | 自然语言解析 | 工件编号 | | startTime | 自然语言解析 | 开始时间 | | endTime | 自然语言解析 | 结束时间 | | analysisSize | 系统默认 | 分析样本数,默认 150 | | displaySize | 系统默认 | 展示样本数,默认 50 | | windowSize | 系统默认 | Cp/Cpk 滚动窗口大小,默认 25 | | windowStep | 系统默认 | 滚动窗口步长,默认 10 | 如果当前查询接口只能稳定返回 50 条,则第一版使用最新 50 条完成分析;后续可扩展分页获取更多分析样本,但 AI 界面仍只展示最新 50 条。 ## 6. 数据字段映射 | 标准字段 | 兼容字段 | 用途 | |---|---|---| | 生产日期 | 操作时间、完成时间、时间 | 趋势排序、X轴 | | 工位号 | 指南工位号、工位编号 | 工位识别 | | 工位名称 | 工序名称、工位名称 | 展示 | | 工件编号 | 发动机号、工件编号 | 明细追溯 | | 测量位置 | 位置 | 测点识别 | | 测量项目 | 测量内容、项目 | 特性识别 | | 测量值 | 实际值、value、Value | 核心分析值 | | 上限值 | USL、上限 | 规格上限 | | 下限值 | LSL、下限 | 规格下限 | | 理论值 | 目标值、中心值 | 目标中心线 | | 合格标志 | 是否合格、合格 | 不合格识别 | ## 7. 预警等级设计 | 等级 | 分数范围 | 含义 | 建议颜色 | |---|---:|---|---| | 正常 | 0-19 | 数据稳定,未发现明显风险 | 绿色 | | 关注 | 20-39 | 存在轻微趋势或接近边界 | 蓝色/黄色 | | 预警 | 40-69 | 存在明显质量风险 | 橙色 | | 严重 | 70-100 | 已超限或能力严重不足 | 红色 | 最终等级取所有命中规则中的最高风险等级,并结合累计风险分数输出。 ## 8. 测量值趋势预警规则 | 规则 | 判断条件 | 风险等级 | |---|---|---| | 超规格上限 | 测量值 > 上限值 | 严重 | | 低于规格下限 | 测量值 < 下限值 | 严重 | | 已不合格 | 合格标志为不合格、NG、false、0 | 严重 | | 接近规格限 | 距离上限或下限小于规格宽度 10% | 关注 | | 高危接近规格限 | 距离上限或下限小于规格宽度 5% | 预警 | | 连续上升 | 最近 5 个有效测量值连续上升 | 预警 | | 连续下降 | 最近 5 个有效测量值连续下降 | 预警 | | 均值偏移 | 最近窗口均值较历史窗口偏移超过规格宽度 10% | 预警 | | 波动增大 | 最近窗口标准差大于历史窗口标准差 1.5 倍 | 关注/预警 | ## 9. Cp/Cpk 工序能力计算 计算公式: ```text Mean = 测量值平均值 Sigma = 样本标准差 Cp = (USL - LSL) / (6 * Sigma) Cpu = (USL - Mean) / (3 * Sigma) Cpl = (Mean - LSL) / (3 * Sigma) Cpk = min(Cpu, Cpl) ``` 判断标准: | Cpk | 等级 | 说明 | |---:|---|---| | >= 1.67 | 优秀 | 工序能力充足 | | 1.33 - 1.67 | 正常 | 满足常规质量要求 | | 1.00 - 1.33 | 关注 | 工序能力边缘 | | 0.67 - 1.00 | 预警 | 工序能力不足 | | < 0.67 | 严重 | 工序能力严重不足 | Cp 与 Cpk 的关系解释: | 情况 | 说明 | |---|---| | Cp 高、Cpk 高 | 工序稳定且居中 | | Cp 高、Cpk 低 | 波动不大,但过程中心偏移 | | Cp 低、Cpk 低 | 波动大且能力不足 | | Cp 正常、Cpk 连续下降 | 存在逐步偏移风险 | ## 10. Cp/Cpk 趋势预警规则 采用滚动窗口计算能力趋势: | 参数 | 默认值 | |---|---:| | 窗口大小 | 25 条 | | 窗口步长 | 10 条 | | 最少窗口数 | 3 个 | 规则: | 规则 | 判断条件 | 风险等级 | |---|---|---| | Cpk 低于合格线 | 最近窗口 Cpk < 1.33 | 关注 | | Cpk 低于预警线 | 最近窗口 Cpk < 1.00 | 预警 | | Cpk 严重不足 | 最近窗口 Cpk < 0.67 | 严重 | | Cpk 连续下降 | 最近 3 个窗口 Cpk 连续下降 | 预警 | | Cpk 快速下降 | 最近窗口较上一窗口下降超过 20% | 预警 | | 中心偏移 | Cp >= 1.33 且 Cpk < 1.00 | 预警 | ## 11. 风险评分建议 | 事件 | 分数 | |---|---:| | 测量值超限 | +70 | | 存在不合格标志 | +60 | | Cpk < 0.67 | +70 | | Cpk < 1.00 | +45 | | Cpk < 1.33 | +25 | | Cpk 连续下降 | +35 | | 接近规格限 5% | +35 | | 接近规格限 10% | +20 | | 连续 5 点上升或下降 | +30 | | 波动增大 1.5 倍 | +25 | | 样本不足 | 不加分,但降低置信度 | | 多工位或多测点混合 | 不加分,但降低置信度 | ## 12. AI 助手触发词 只有明确出现以下触发词时才进入预测预警: ```text SPC预测预警 智能预警 质量预警 趋势预警 异常预测 失控风险 CPK预警 Cpk趋势预警 工序能力预警 过程能力预警 预测这个工位是否有风险 ``` 不应触发预警的普通问题: ```text 查询质量数据 显示最新50条质量数据 绘制SPC基本趋势图 绘制直方图 查看Cpk趋势图 质量数据查询模块有什么功能 ``` ## 13. AI 输出格式 AI 助手输出应固定包含以下模块。 ### 13.1 预警结论表 | 项目 | 内容 | |---|---| | 风险等级 | 正常 / 关注 / 预警 / 严重 | | 风险分数 | 0-100 | | 分析对象 | 工位号 / 测量位置 / 测量项目 | | 样本数量 | 有效测量值数量 | | 时间范围 | 最早生产日期 - 最新生产日期 | | 当前 Cp | 最近窗口 Cp | | 当前 Cpk | 最近窗口 Cpk | | Cpk 趋势 | 上升 / 平稳 / 下降 | | 置信度 | 高 / 中 / 低 | | 结论摘要 | 一句话说明主要风险 | ### 13.2 规则命中表 | 规则 | 是否命中 | 风险等级 | 说明 | |---|---|---|---| | 规格超限 | 是/否 | 严重 | 是否存在超上限或低下限 | | 接近规格限 | 是/否 | 关注/预警 | 是否接近 USL/LSL | | 连续漂移 | 是/否 | 预警 | 是否连续上升或下降 | | 均值偏移 | 是/否 | 预警 | 最近均值是否偏移 | | 波动增大 | 是/否 | 关注/预警 | 标准差是否增大 | | Cpk 能力不足 | 是/否 | 关注/预警/严重 | Cpk 是否低于阈值 | | Cpk 连续下降 | 是/否 | 预警 | 能力是否持续变差 | ### 13.3 Cp/Cpk 趋势表 | 窗口 | 样本范围 | 平均值 | 标准差 | Cp | Cpk | 判断 | |---|---|---:|---:|---:|---:|---| | W1 | 第1-25条 | | | | | | | W2 | 第11-35条 | | | | | | | W3 | 第21-45条 | | | | | | ### 13.4 改进建议表 | 风险 | 建议 | |---|---| | 测量值接近上限 | 检查设备补偿、夹具状态、刀具磨损或拧紧参数 | | 测量值接近下限 | 检查装配不到位、零件批次或工艺参数偏低 | | Cpk 下降 | 优先确认过程中心是否偏移,再检查波动来源 | | 波动变大 | 检查设备稳定性、环境、人员操作和来料一致性 | | 已超限 | 建议立即停线确认、隔离相关工件并追溯前后批次 | ## 14. 图表设计 ### 14.1 测量值趋势预警图 图表内容: - X 轴:生产日期或样本序号。 - Y 轴:测量值。 - 折线:测量值。 - 辅助线:上限值、下限值、理论值、平均值。 - 风险点: - 红色:超限点。 - 橙色:接近规格限点。 - 蓝色:正常点。 ### 14.2 Cp/Cpk 趋势图 图表内容: - X 轴:滚动窗口编号。 - Y 轴:Cp / Cpk。 - 折线: - Cp - Cpk - 辅助线: - 1.67 优秀线。 - 1.33 合格线。 - 1.00 预警线。 - 0.67 严重线。 - Cpk 低于 1.00 的点应突出显示。 ## 15. MCP 工具设计 新增工具名称: ```text predict_quality_spc_warning ``` 输入: | 参数 | 类型 | 默认值 | 说明 | |---|---|---|---| | query | string | 空 | 用户原始问题 | | stationNumber | string | 空 | 工位号 | | testPosition | string | 空 | 测量位置 | | testItem | string | 空 | 测量项目 | | engineId | string | 空 | 工件编号 | | startTime | string | 1900-01-01 00:00:00 | 开始时间 | | endTime | string | 2099-12-31 23:59:59 | 结束时间 | | analysisSize | number | 150 | 分析样本数 | | displaySize | number | 50 | 展示样本数 | | windowSize | number | 25 | 滚动窗口大小 | | windowStep | number | 10 | 滚动窗口步长 | 输出: | 字段 | 说明 | |---|---| | html | 预警表格 HTML | | charts | ECharts 图表配置 | | data.rows | 原始查询数据 | | data.displayRows | 展示用明细数据 | | data.analysis | 预警分析结果 | | data.capabilityWindows | Cp/Cpk 滚动窗口结果 | | data.params | 实际查询参数 | | data.confidence | 置信度说明 | ## 16. AI 路由优先级 AI 助手应按以下顺序处理用户问题: 1. 页面导航。 2. 模块功能说明。 3. SPC 智能预测预警。 4. 指定图表绘制。 5. 普通质量数据查询。 6. DeepSeek 普通问答。 这样可以避免: - 普通质量数据查询误触发预警。 - 普通图表绘制误触发预警。 - 用户明确要求预警时只返回普通表格。 ## 17. 置信度设计 | 条件 | 置信度 | |---|---| | 单工位、单测量位置、单测量项目,样本 >= 100 | 高 | | 单工位、单测量位置、单测量项目,样本 50-99 | 中 | | 样本 10-49 | 低 | | 多工位混合 | 低 | | 多测量位置混合 | 低 | | 多测量项目混合 | 低 | | 缺少上下限 | 低,仅做趋势判断 | | 样本少于 10 | 极低,仅做超限判断 | ## 18. 异常处理 | 场景 | 输出 | |---|---| | MES 后端不可用 | 查询入口已定位,但接口调用失败 | | 无数据 | 未查询到符合条件的质量数据 | | 无测量值 | 无法进行趋势和能力分析 | | 无上下限 | 无法计算 Cp/Cpk,仅输出测量值趋势 | | 标准差为 0 | Cp/Cpk 不可计算,提示样本无波动 | | 样本不足 10 | 仅做基础超限判断 | | 多测点混合 | 输出低置信度提示 | | 多测量项目混合 | 输出低置信度提示 | ## 19. 测试方案 ### 19.1 意图识别测试 | 输入 | 期望 | |---|---| | 查询质量数据 | 普通表格,不触发预警 | | 查询质量数据 显示最新50条 | 普通表格,不触发预警 | | 查询质量数据 做SPC预测预警 | 触发预警 | | 工位 OP10 测量位置 A 测量项目 扭矩 做CPK预警 | 触发预警 | | 绘制Cpk趋势图 | 图表绘制,不触发预警 | | 质量数据查询模块有什么功能 | 功能说明,不查询数据 | ### 19.2 计算规则测试 | 场景 | 期望 | |---|---| | 存在测量值 > 上限值 | 严重 | | 存在测量值 < 下限值 | 严重 | | Cpk = 1.5 | 正常 | | Cpk = 1.2 | 关注 | | Cpk = 0.9 | 预警 | | Cpk = 0.5 | 严重 | | 最近 3 个窗口 Cpk 连续下降 | 预警 | | 最近 5 个测量值连续上升 | 预警 | | 无上下限 | 不计算 Cp/Cpk | ### 19.3 UI 测试 | 项目 | 期望 | |---|---| | 预警结论表 | 样式规范,风险颜色明确 | | 明细表 | 最多显示 50 条 | | 趋势图 | 显示测量值、USL、LSL、理论值 | | Cp/Cpk 图 | 显示 Cp、Cpk 和能力阈值线 | | 窗口缩放 | 图表跟随 AI 助手窗口缩放 | | 大数据结果 | 不交给 DeepSeek 重写大表,避免卡顿 | ## 20. 实施节点 1. 增加预警意图识别,只识别明确预警触发词。 2. 复用现有质量数据查询函数获取数据。 3. 增加测量值清洗、时间排序、上下限识别能力。 4. 增加 Cp/Cpk 计算函数。 5. 增加滚动窗口能力趋势计算。 6. 增加风险规则引擎。 7. 增加预警 HTML 表格生成。 8. 增加测量值趋势图和 Cp/Cpk 趋势图。 9. 接入 AI 助手聊天路由。 10. 完成静态检查、接口测试和 UI 验收。 ## 21. 验收标准 - 用户明确要求预警时,AI 输出预警结论、规则命中、Cp/Cpk 趋势、图表和建议。 - 用户普通查询质量数据时,不自动预警。 - 所有查询仍依赖现有 HMI 查询入口,不直连数据库。 - Cpk 低于 1.00 时必须给出预警。 - 测量值超规格限时必须给出严重风险。 - 样本不足或数据混合时必须提示置信度降低。 - 输出结果符合商业软件展示要求,规范、稳定、可解释、可追溯。 ## 22. Assumptions - 第一版使用规则引擎,不引入机器学习训练模型。 - 默认展示最新 50 条质量数据。 - 推荐分析粒度为单一工位、单一测量位置、单一测量项目。 - 如果接口无法返回 150 条分析样本,则先使用 50 条完成预警。 - 所有结果以 AI 助手界面展示为主,不新增独立页面。 - 本阶段只输出技术文档,不修改代码。