优秀的编程知识分享平台

网站首页 > 技术文章 正文

质量抽样方案风险-Python蒙特卡罗风险分析

nanyue 2024-08-05 20:12:19 技术文章 8 ℃

近期为了评估一产品方案对最终组件的风险影响,采用了MINITAB+PYTHON对方案进行分析,直观地解决了方案风险量化的问题。

对于数量为N=6000pcs为一批的产品,如果采用的抽样方案是n=200,Ac=5,这样的抽样方案进行连续抽样其平均不合格率是多少?下一工序需要用12pcs零件进行组装,如果这个12个零件中有小于等于3个零件的某个特性不良,不影响装配和使用。如果采用上述抽样方案验收合格的产品进行组装,组装成品产生不良的风险比便有多高?

1.Minitab进行OC分析,此抽样方案对于质量水平在1.5%时接受的概率是91.8%,当提交的连续批的不良率为2.169时,平均接受批的不良率达到最大为1.53%。

2.对于采用这样合格率的产品进行组装,最终组装成品件不良率,如何确定?

为了模拟组装线随机取件的情况,我们采用python进行2000批产品进行模拟分析,以确定组装的风险。

首先:导入python相关库。

import matplotlib.pyplot as plt “导入绘图库”

plt.rcParams['figure.dpi'] = 75 “设定显示频率”

import random “导入随机库”

plt.close() “关闭已显示的图形”

其次:初始化产品批的合格率参数。

n=6000 “批量”

p=0.0153 “不合格率”

nnp=int(n*p) “批不良数量”

lot=2000 “模拟分析投入的批次数”

no_conform=0 用于存放不合格组装成品

non_rate=[]

non_quantity=[] 用于存放2000批组装的成品中含有不良产品的数量。

第三:生产产品批数据

a=["ok"+str(i) for i in range(n-nnp)] 良品数据

b=["ng"+str(i) for i in range(nnp)] 不良品数据

第四:进行模拟产品组装

for k in range(lot): 模拟2000次组装

no_conform=0 不合格组装件置零。

c=a+b 将不良品和良品合并

random.shuffle(c) 将不良品和良品随机打混

for i in range(int(n/12)): 按照每个组件12个装配,进行循环

x=random.sample(c, k=12) 随机从6000批次中抽12个装配。

r = [s for s in x if "ng" in s] 查找是否有不合格品

if len(r)>0: 如果有,则将不合格品记下

non_quantity.append(len(r)) 添加到每个组装件含有多个不合格品中

if len(r)>3: 确定不合格组装件数量

no_conform=no_conform+1

c=list(set(c)-set(x)) 将已经抽取的样品从总体中减去。

non_rate.append(no_conform) 汇总每批次产生的不良组装件数据

print(k) 显示装配2000批次的进度

print("平均每%d批次不良总承个数:"%lot,sum(non_rate)) 显示2000批次产生不良组装件数。

bars=plt.hist(non_quantity,bins=(1,2,3,4,5,6,7,8)) 显示组装件不良零件频数直方图

for a,b in zip(bars[1],bars[0]):

plt.text(a,b+30,b,color='black',verticalalignment='center',fontsize=15) 显示数据

plt.show()

第5:运行程序,结果如下:

1.2000批的上述合格率的产品进行组装,可以产生27个不合格组装件

2.显示2000批零件模拟组装后,存在不合格零件的频数。

最后,通过MINITAB和Python,我们可以非常直观的模拟质量管理中各种抽样方案的风险以及对下道工序的影响,以帮助管理人员更好地进行质量管控。

Tags:

最近发表
标签列表