3. 镀层结合力批次抽检结果趋势判定

为什么结合力抽检不能只看单批合格率

镀层结合力抽检通常是破坏性试验(弯曲、划格、热震等),每批只抽 3~5 件,单批结果只有“合格/不合格”两种。单批不合格可能只是抽样随机性,也可能是前处理、酸洗、活化或电流密度出现了系统性劣化。要区分二者,必须把连续批次的二项结果放到时间轴上,用不合格率的趋势与游程特征来判断。

本例采用“不合格数控制图(p 图 / np 图思路)+ 游程与连续段判定”的组合方法:先按历史基线确定不合格率的控制上限,再检查是否出现连续多批不合格、连续上升段或超出控制限的批次,最后输出需要停线复查的批次清单。

判定规则与阈值设定

设每批抽检 n = 5 件,历史稳定期不合格率基线 p̄ = 0.04。按二项分布,单批不合格数 d 的控制上限取 UCL = np̄ + 3√(np̄(1−p̄)):

n = 5, p̄ = 0.04
np̄ = 0.20
√(np̄(1−p̄)) = √(0.20 × 0.96) = √0.192 ≈ 0.438
UCL = 0.20 + 3 × 0.438 ≈ 1.51  →  取整为 2(即单批不合格数 ≥ 2 判为超限批)

由于 UCL 只有 1.51,单批 1 件不合格属于正常波动范围,不能直接判停线。因此补充三条趋势判据:

  • R1 超限:单批不合格数 d ≥ 2,直接标记为超限批。
  • R2 连续不合格:连续 3 批及以上出现 d ≥ 1,判为系统性劣化信号。
  • R3 上升段:连续 4 批不合格数呈非降序列且末批 d ≥ 1,判为劣化趋势。

满足 R1,或同时满足 R2/R3 中任一条,即进入“停线复查清单”。

连续批次结合力抽检不合格数趋势与判定 不合格数 d 批次 0 1 2 3 UCL = 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 R2 连续不合格段(8–11) R3 上升段 + R1 超限(11,13,14) 正常波动批 超限批(d ≥ 2) 控制上限 UCL

逐批判定与停线清单生成

把 14 个连续批次的抽检结果按上述规则逐条比对,得到下表。表中“判定”列直接对应 R1/R2/R3 的触发情况:

批次抽检数 n不合格数 d触发规则判定
1–250—正常
351—正常波动
4–550—正常
651—正常波动
750—正常
8–1051,1,1R2(连续 3 批 d≥1)劣化信号
1152R1 + R2 延续停线复查
1251R2 延续观察
1352R1 + R3停线复查
1453R1 + R3停线复查

最终停线复查清单为:批次 11、13、14。批次 8–10 虽未超限,但已构成连续不合格段,应作为“预警批”同步纳入复查范围,优先核查前处理活化液浓度与酸洗时间。

判定时先看 R1 单点超限,再看 R2/R3 的连续段与趋势。若只有 R2 而无 R1,可先加严抽检(n 从 5 提到 8)再观察 2 批,避免误停线。

可执行的判定脚本

把上述规则写成脚本,输入每批不合格数即可自动输出停线清单,便于批次数据积累后复用:

def judge_binding_strength(batches, ucl=2, run_len=3, rise_len=4):
    """
    batches: list of (batch_id, defect_count)
    返回: (stop_list, warn_list)
    """
    stop_list, warn_list = [], []
    d = [x[1] for x in batches]
    ids = [x[0] for x in batches]

    for i, (bid, cnt) in enumerate(batches):
        hit_r1 = cnt >= ucl
        # R2: 连续 run_len 批 d>=1
        hit_r2 = i >= run_len - 1 and all(v >= 1 for v in d[i-run_len+1:i+1])
        # R3: 连续 rise_len 批非降且末批 d>=1
        hit_r3 = (i >= rise_len - 1
                  and all(d[j] <= d[j+1] for j in range(i-rise_len+1, i))
                  and cnt >= 1)
        if hit_r1 or hit_r2 or hit_r3:
            stop_list.append(bid)
        elif hit_r2:
            warn_list.append(bid)
    return stop_list, warn_list

data = [(1,0),(2,0),(3,1),(4,0),(5,0),(6,1),(7,0),
        (8,1),(9,1),(10,1),(11,2),(12,1),(13,2),(14,3)]
stop, warn = judge_binding_strength(data)
print("停线复查:", stop)   # [11, 13, 14]
print("预警观察:", warn)   # [8, 9, 10]

脚本中 ucl=2 由 np̄ + 3√(np̄(1−p̄)) 取整得到;若抽检数或基线不合格率变化,应重新计算 ucl 后再运行,避免阈值失真。

结合力为破坏性抽检,样本量小,单批 1 件不合格不应直接停线;但连续 3 批出现不合格或不合格数持续上升,说明前处理或槽液状态已发生系统性偏移,必须停线复查后再恢复生产。