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 中任一条,即进入“停线复查清单”。
逐批判定与停线清单生成
把 14 个连续批次的抽检结果按上述规则逐条比对,得到下表。表中“判定”列直接对应 R1/R2/R3 的触发情况:
| 批次 | 抽检数 n | 不合格数 d | 触发规则 | 判定 |
|---|---|---|---|---|
| 1–2 | 5 | 0 | — | 正常 |
| 3 | 5 | 1 | — | 正常波动 |
| 4–5 | 5 | 0 | — | 正常 |
| 6 | 5 | 1 | — | 正常波动 |
| 7 | 5 | 0 | — | 正常 |
| 8–10 | 5 | 1,1,1 | R2(连续 3 批 d≥1) | 劣化信号 |
| 11 | 5 | 2 | R1 + R2 延续 | 停线复查 |
| 12 | 5 | 1 | R2 延续 | 观察 |
| 13 | 5 | 2 | R1 + R3 | 停线复查 |
| 14 | 5 | 3 | R1 + 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 批出现不合格或不合格数持续上升,说明前处理或槽液状态已发生系统性偏移,必须停线复查后再恢复生产。