网站首页
网站导航
Ctrl+D收藏
首 页
代码段
源码包
文档库
工具箱
代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
计算CPK值
作者:
/ 发布于
2019/8/12
/
180
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ODSensor.util { class CpkPro { private float StDev(float[] arrData) //计算标准偏差 { float xSum = 0F; float xAvg = 0F; float sSum = 0F; float tmpStDev = 0F; int arrNum = arrData.Length; for (int i = 0; i < arrNum; i++) { xSum += arrData[i]; } xAvg = xSum / arrNum; for (int j = 0; j < arrNum; j++) { sSum += ((arrData[j] - xAvg) * (arrData[j] - xAvg)); } tmpStDev = Convert.ToSingle(Math.Sqrt((sSum / (arrNum - 1))).ToString()); return tmpStDev; } private float Cp(float UpperLimit, float LowerLimit, float StDev)//计算cp { float tmpV = 0F; tmpV = UpperLimit - LowerLimit; return Math.Abs(tmpV / (6 * StDev)); } private float Avage(float[] arrData) //计算平均值 { float tmpSum = 0F; for (int i = 0; i < arrData.Length; i++) { tmpSum += arrData[i]; } return tmpSum / arrData.Length; } private float Max(float[] arrData) //计算最大值 { float tmpMax = 0; for (int i = 0; i < arrData.Length; i++) { if (tmpMax < arrData[i]) { tmpMax = arrData[i]; } } return tmpMax; } private float Min(float[] arrData) //计算最小值 { float tmpMin = arrData[0]; for (int i = 1; i < arrData.Length; i++) { if (tmpMin > arrData[i]) { tmpMin = arrData[i]; } } return tmpMin; } private float CpkU(float UpperLimit, float Avage, float StDev)//计算CpkU { float tmpV = 0F; tmpV = UpperLimit - Avage; return tmpV / (3 * StDev); } private float CpkL(float LowerLimit, float Avage, float StDev) //计算CpkL { float tmpV = 0F; tmpV = Avage - LowerLimit; return tmpV / (3 * StDev); } private float Cpk(float CpkU, float CpkL) //计算Cpk { return Math.Abs(Math.Min(CpkU, CpkL)); } public float getR_value(float[] k_valuesTOO) { float min = k_valuesTOO[0]; float max = k_valuesTOO[0]; for (int i = 0; i < k_valuesTOO.Length; i++) { if (k_valuesTOO[i] < min) { min = k_valuesTOO[i]; } if (k_valuesTOO[i] > max) { max = k_valuesTOO[i]; } } return max - min; } public float getCPK(float[] k, float UpperLimit, float LowerLimit) //获取CPK值 { //CpkPro cpkPro = new CpkPro(); //float[] k = { 0.03F, 0.06F, 0.05F, 0.03F, 0.04F, 0.04F, 0.03F, 0.04F, 0.04F, 0.04F, 0.04F, 0.04F, 0.04F, 0.03F, 0.01F, 0.03F, 0.01F, 0.03F, 0.04F, 0.04F, 0.04F, 0.05F, 0.02F, 0.04F, 0.05F, 0.05F, 0.05F, 0.05F, 0.03F, 0.05F, 0.05F, 0.03F, 0.02F, 0.04F, 0.04F, 0.02F, 0.06F, 0.04F, 0.02F, 0.03F, 0.04F, 0.02F, 0.05F, 0.06F, 0.07F, 0.02F, 0.04F, 0.04F, 0.03F, 0.03F }; //float UpperLimit = 0.12F; //上限 //float LowerLimit = 0F; //下限 //float result = cpkPro.getCPK(k, UpperLimit, LowerLimit); //Console.WriteLine(result); if (k.Length <= 1 || UpperLimit <= LowerLimit) { return -1; } float cpk = Cpk(CpkU(UpperLimit, Avage(k), StDev(k)), CpkL(LowerLimit, Avage(k), StDev(k))); return cpk; } } }
评论列表
本站所提供的代码,版权归原作者所有,若有侵犯作者版权,请与我们联系,我们将立即删除或修改。谢谢!
本站所有代码发布及提供者。
试试其它关键字
计算CPK值
同语言下
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
.
计算每周和每月固定日期
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
判断用户输入的是否为IP地址
贡献的其它代码
Label
地图
本站
我们
服务
版权
联系
回馈
博客