当前位置: 首页 > news >正文

python之SPC:计算Cpk

目录

1、Ca、Cp和Cpk的理解

2、python计算Cp,Cpk与Pp,Ppk

3、总结


1、Ca、Cp和Cpk的理解

Ca、Cp和Cpk是制程能力指数,它们分别代表制程准确度、制程精密度和制程能力指数。

制程准确度(Ca)反映实际平均值与规格中心值之一致性。对于单边规格,因不存在规格中心,因此不存在Ca;对于双边规格,Ca=(μ-U)/(T/2)。其中μ为均值,U为规格中心,T为规格

制程精密度(Cp)反映规格公差宽度与制程变异宽度之比例。Cp=T/(6σ)

Cpk是Ca及Cp两者的中和反应。Ca反应的是位置关系(集中趋势),Cp反应的是散布关系(离散趋势)。Cpk的计算公式为:Cpk=Cp(1-┃Ca┃)。

2、python计算Cp,Cpk与Pp,Ppk

以下为计算Cpk的代码,数据存在txt文件,两列数据,每行2个数据,以空格间隔,读取数据后作直方图、概率密度图,打印Cpk等值:

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
def Ca(data, USL, LSL):""":param data: 数据:param USL: 数据指标上限:param LSL: 数据指标下限:return:"""u=np.mean(data)ca=(u-(USL-(USL-LSL)/2))/((USL-LSL)/2)return cadef Cp(data, USL, LSL):""":param data: 数据:param USL: 数据指标上限:param LSL: 数据指标下限:return:"""# 计算每组的平均值和标准差sigma = np.std(data)cp = (USL - LSL) / 6 / sigmareturn cpdef Cpk(data, USL, LSL):""":param data: 数据:param USL: 数据指标上限:param LSL: 数据指标下限:return:"""return Cp(data, USL, LSL)*(1-np.abs(Ca(data, USL, LSL)))def Pp(data, USL, LSL):""":param data: 数据:param USL: 数据指标上限:param LSL: 数据指标下限:return:"""sigma = np.std(data)pp = (USL - LSL) / 6 / sigmareturn ppdef Ppk(data, USL, LSL):""":param data: 数据:param USL: 数据指标上限:param LSL: 数据指标下限:return:"""u = np.mean(data)sigma = np.std(data)ppk = min(USL - u, u - LSL) / 3 / sigmareturn ppkdef openreadtxt(file_name):data = []with open(file_name, 'r') as file:file_data = file.readlines()  # 读取所有行for row in file_data:tmp_list = row.split()tmp = [float(x) for x in tmp_list]data.append(tmp)  # 将每行数据插入data中return data
#轮廓点存储路径
filename1 =r"C:\Users\user\Documents\F1-21\cpk.txt"
data = openreadtxt(filename1)
shank_diameter = np.array(data)[:, 0]
# shank_roundness = np.array(data)[:, 1]
usl=3.1715
lsl=3.1685
cp = Cp(shank_diameter, usl, lsl)
cpk = Cpk(shank_diameter, usl, lsl)
pp = Pp(shank_diameter,usl, lsl)
ppk = Ppk(shank_diameter,usl, lsl)
# usl=0.0004
# lsl=0.0
# cp = Cp(shank_roundness, usl, lsl)
# cpk = Cpk(shank_roundness, usl, lsl)
# pp = Pp(shank_roundness,usl, lsl)
# ppk = Ppk(shank_roundness,usl, lsl)
print("Cp=", cp, "Cpk=", cpk, "Pp=", pp, "Ppk=", ppk)num_bins = 40plt.figure(figsize=(9,6), dpi=100)n, bins, patches = plt.hist(shank_diameter, num_bins,color='w', edgecolor='k',hatch=r'ooo',density=1,label="直方图")
x = np.linspace(min(shank_diameter), max(shank_diameter), 100)
plt.plot(x, stats.norm.pdf(x, np.mean(shank_diameter), np.std(shank_diameter)), 'r',label="概率密度")# plt.axvline(x=usl, color='red', linestyle='--')
# plt.annotate(f'x={usl}', xy=(usl, 2500), xytext=(np.max(shank_roundness)/2,2500),arrowprops=dict(facecolor='green', shrink=0.05))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.xlabel('柄部直径')
plt.ylabel('数量')
plt.title(f'柄部直径:$\max={np.max(shank_diameter)}$, $\min={np.min(shank_diameter)}$')
plt.legend()
plt.show()

3、总结

1)Cpk计算要求过程稳定,也就是要服从正态分布,本例通过直方图与概率密度图大致判断。

2)所有数据只分一组的话,Cp,Cpk分别与Pp,Ppk相等,那么,数据该分组吗?

3)少量数据偏离规格,偏离越多越远,Cpk越小,但是偏离较远的也可能是异常值,到底该如何区分较远的偏离值与异常值。

相关文章:

  • 2023.11.10联赛 T4题解
  • 一个“Hello, World”Flask应用程序
  • 冲突域、广播域、一些网络设备
  • 大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?
  • 【Git】Git 学习笔记_操作远程仓库
  • ZYNQ_project:key_breath
  • 【实战-08】flink DataStream 如何实现去重
  • 技术分享 | Appium 用例录制
  • GZ038 物联网应用开发赛题第1套
  • 全志A40i应用笔记 | 3种常见的网卡软件问题以及排查思路
  • 前端-第一部分-HTML
  • pytorch(小土堆)深度学习
  • Python语法基础(条件语句 循环语句 函数 切片及索引)
  • 软件测试|MySQL BETWEEN AND:范围查询详解
  • flink1.18.0 macos sql-client.sh启动报错
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • github指令
  • JavaScript实现分页效果
  • Java方法详解
  • SQLServer之创建显式事务
  • 回顾2016
  • 精彩代码 vue.js
  • 设计模式(12)迭代器模式(讲解+应用)
  • 数组的操作
  • 详解移动APP与web APP的区别
  • 优秀架构师必须掌握的架构思维
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ###STL(标准模板库)
  • #QT项目实战(天气预报)
  • #预处理和函数的对比以及条件编译
  • $NOIp2018$劝退记
  • (C语言)fread与fwrite详解
  • (ZT)薛涌:谈贫说富
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (简单) HDU 2612 Find a way,BFS。
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (强烈推荐)移动端音视频从零到上手(下)
  • (四) Graphivz 颜色选择
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .net与java建立WebService再互相调用
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [bzoj2957]楼房重建
  • [Django 0-1] Core.Email 模块
  • [leetcode] Longest Palindromic Substring
  • [Mac软件]Goldie App v2.2 Mac黄金比例设计工具
  • [NAND Flash 7.1] 闪存系统性能优化方向集锦?AC timing? Cache? 多路并发?
  • [Node + Docker] 聊聊怎么把 nodeclub 构建成 Docker 镜像
  • [pytorch入门] 3. torchvision中的transforms
  • [Qt]QMainWindow