なべひろBlog

プログラミングをメインに仕事に関するアレコレを発信しています。

C# 2行で工程能力のCp、Cpk計算

はじめに

私の会社は機械部品の製造がメインです。

非常に精密な部品であるため製品の品質を管理し不良品を作らないのは大事な事です。

私は工程管理のプロではありませんが、製造部の管理者より製品寸法に関する情報を表示し品質を管理したい要望は多いです。

表示する情報の要望で多いのがCp値やCpk値の表示です。

Cp値やCpk値の説明は省略しますが、今までチマチマ計算していましたが「MathNet.Numerics」ライブラリを使用すれば2行で済む簡単な俺メモ的なネタです。

まずはNuGetから「MathNet.Numerics」をインストール。

これだけ

そして下記2行で計算が完了してしまいます。

var cp = (Upper - Lower) / (6 * Data.StandardDeviation());
var cpk = (1 - Math.Abs(((Upper + Lower) / 2 - Data.Mean()) / ((Upper - Lower) / 2))) * cp;

Upper は上限規格

Lowerは下限規格

Dataは測定値の入ったdouble型のListです。

StandardDeviationメソッドは上記測定値リストのMathNet.Numericsライブラリを使用した標準偏差の計算です。

Meanメソッドは上記測定値リストのMathNet.Numericsライブラリを使用した平均の計算です。

小数点第5位くらいの数値が自作計算式と微妙に違ってましたがまあOKでしょう。