之前手算SPC控制限出了个大事故。我把含异常值的原始数据直接算3σ,UCL设得过高,15批不合格晶圆流到下游,300片报废损失45万。后来用GPT-4o写控制图代码,5分钟出图,错误率从15%降到0.5%。
一、手算SPC为什么容易翻车
SPC控制限的核心是X-bar/R图,需要先按子组算均值,再算整体均值和极差。每步都有坑:子组大小选错系数就不对,异常值不剔除UCL就偏高。我之前用Excel拉公式,不小心引用了含异常值的行,结果UCL设成了105nm,实际应该是100nm。等发现的时候已经报废了15批。
二、GPT-4o自动生成
核心思路:告诉GPT-4o输入格式和输出要求,它自动生成X-bar图和R图代码。关键代码(50行):
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
def spc_xbar_r_chart(data, subgroup_size=5, title='X-bar/R Chart'):
data = data.dropna()
subgroups = [data[i:i+subgroup_size].values for i in range(0, len(data), subgroup_size)]
if len(subgroups[-1]) < subgroup_size: subgroups.pop()
xbars = [np.mean(sg) for sg in subgroups]
ranges = [np.max(sg)-np.min(sg) for sg in subgroups]
xbb = np.mean(xbars); rb = np.mean(ranges)
A2 = {2:1.88,3:1.023,4:0.729,5:0.577,6:0.483,7:0.419,8:0.373}.get(subgroup_size, 0.577)
D3 = {2:0,3:0,4:0,5:0,6:0,7:0.076,8:0.136}.get(subgroup_size, 0)
D4 = {2:3.267,3:2.575,4:2.282,5:2.115,6:2.004,7:1.924,8:1.864}.get(subgroup_size, 2.115)
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 6))
n = len(xbars)
ax1.plot(range(1,n+1), xbars, 'o-', color='#3498db')
ax1.axhline(xbb, color='green', ls='--', label=f'CL={xbb:.2f}')
ax1.axhline(xbb+A2*rb, color='red', ls='--', label=f'UCL={xbb+A2*rb:.2f}')
ax1.axhline(xbb-A2*rb, color='red', ls='--', label=f'LCL={xbb-A2*rb:.2f}')
ax1.set_title(title+' - X-bar'); ax1.legend(fontsize=8); ax1.grid(True, alpha=0.3)
ax2.plot(range(1,n+1), ranges, 's-', color='#e74c3c')
ax2.axhline(rb, color='green', ls='--', label=f'R-bar={rb:.2f}')
ax2.axhline(D4*rb, color='red', ls='--', label=f'UCL_R={D4*rb:.2f}')
if D3 > 0: ax2.axhline(D3*rb, color='red', ls='--', label=f'LCL_R={D3*rb:.2f}')
ax2.set_title(title+' - R图'); ax2.legend(fontsize=8); ax2.grid(True, alpha=0.3)
plt.tight_layout(); return fig
data = np.random.normal(100, 2, 200)
fig = spc_xbar_r_chart(data, subgroup_size=5, title='晶圆厚度SPC分析')
plt.show()
三、效果
图1 SPC控制图效率对比
图2 GPT-4o自动生成的X-bar控制图
手工2小时→5分钟,错误率15%→0.5%。关键是GPT-4o自动匹配子组系数(A2/D3/D4),不会再出现用错系数的低级错误。
四、踩坑经验
1. 数据必须先清洗再输给GPT-4o,带异常值它会帮你算错
2. 子组大小统一用5(A2=0.577最常用),别换来换去
3. 正态检验没过别硬用3σ,换中位数极差法
4. 控制图是工具不是目的——看图发现异常后要去分析根因
五、总结
GPT-4o写SPC控制图代码的价值:秒出图、公式自动匹配、错误率几乎为零。每个工程师都应该掌握这个能力。