质量工具统计过程控制SPC的python实现及跨系统调用

作者: admin 分类: 应用,时间序列分析            发布时间: 02月17日 15:51
1、什么是统计过程控制SPC

统计过程控制(简称SPC)是一种借助数理统计方法的过程控制工具。它对生产过程进行分析评价,根据反馈信息及时发现系统性因素出现的征兆,并采取措施消除其影响,使过程维持在仅受随机性因素影响的受控状态,以达到控制质量的目的。

而在SPC工具中,有很多的方法和图表,在工作中最简单的就是单值控制图。将每批的一个数据值直接标示在控制图上,再通过一定的算法计算出异常点并高亮标记出来。我提供的python的SPC包括多种控制图的计算,在这里我通过最简单的单值控制图演示如果在实际的生产过程的应用。

异常判断的规则如下:

一个点远离中心线超过3倍标准差 
连续3个点,有2个点远离中心线2倍标准差 
连续5个点,有4个点远离中心线1倍标准差 
连续7个点在同一侧 
连续8个点在同一侧 
连续9个点在同一侧 
连续6个点持续上升或下降,可能设备磨损 
14个点交互升降,如此整齐的数据有没有可能作假 
连续15点在中心线在1倍标准差之内 
连续8点在中心线的1倍标准差之外
2、如何用python实现SPC

构建一个Spc类,输入一个list的数据,返回Spc的各类结果。点击这里下载python Spc类,通过下面进行类的调用。

s = Spc([6.64,6.64,6.65,6.63,6.65,6.65,6.64,1], CHART_X_MR_X)

返回的结果解析如下:

s.center = 5.9375 #平均数
s.get_stats() = (5.9375, 3.7718465045592695, 8.1031534954407309) #(平均数、LCL、UCL)
s.get_violating_points() = {‘1 beyond 3*sigma,一个点远离中心线超过3倍标准差’: [7]} #异常点
s.lcl = 3.7718465045592695 #LCL
s.ucl = 8.1031534954407309 #UCL
s.violating_points ={‘1 beyond 3*sigma,一个点远离中心线超过3倍标准差’: [7]} #异常点清单
3、如何跨系统调用

1)设计思路

部署一个python环境,安装flask web框架提供API,在生产环境用uwsgi运行flask,通过web调用python的SPC,实现API输出Spc的结果。

2)系统架构

SPC系统架构图

3)SPC接口调用及结果

SPC接口API

最后,在自己的企业应用(一般是java web或者php多),通过javascript或者后端读取API的结果组合到echart中显示。详细的如何把SPC类通过flask实现,可以点击这里查看

 

4、最后的结果

 

SPC单值控制图结果

异常点用红色明显标记,鼠标移动到红点显示所有的异常说明。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

一条评论
  • 棒棒糖

    2019 年 11 月 29 日 15:11

    你好,SPCAPI中apis_spc_v1接口生成的是CHART_X_MR_X和CHART_X_MR_MR,请教CHART_X_BAR_R_X、CHART_X_BAR_R_R这两个用什么接口生成呢?

发表评论

电子邮件地址不会被公开。 必填项已用*标注