Tolerance Stack Analysis Tool

計算根拠と検証記録 = 専門性の証明

このページは本計算機の計算根拠と検証記録です。公差スタック計算機の全計算式を、商用ソフトが共通して用いる公式・ NIST/SEMATECH e-Handbook・JIS規格の既知例題と数値突合し、誤差%を公開しています。 運営者(現役の機械設計エンジニア・実名非公開)の専門性は名乗りではなく、この検証の再現性で担保します。

下記の入力条件・乱数シード・試行数を用いれば、第三者が独立に同じ結果を再現できます。 「当機の出力」欄は、本ページ表示時に計算エンジン(lib/の純関数)が 実際に算出した値をそのまま掲載しています。

例題1:5要素の直線スタック(ワーストケース+RSS・既定動作のまま)

ハウジング内寸 50.00 から 3 部品(20.00 / 15.00 / 10.00)を差し引いた隙間。工程σは空欄=製品の既定動作(σ = 公差幅 ÷ 3 の自動換算) のまま計算しています。利用者が実際に通る経路そのもので教科書値と一致することを示すためです (v1.5 まではこの例題に工程σを明示入力していたため、既定の自動換算経路が検証跡で 保証されていませんでした。→ 改訂履歴)。

寸法公称公差方向工程σ(入力)
ハウジング内寸50.00±0.10+空欄(自動換算 σ=0.03333)
部品A20.00±0.05−空欄(自動換算 σ=0.01667)
部品B15.00±0.05−空欄(自動換算 σ=0.01667)
部品C10.00±0.05−空欄(自動換算 σ=0.01667)
項目入力条件期待値(出典)当機の出力誤差%
公称隙間Σ(方向×公称) = 50−20−15−105.0005.0000.0000%
ワーストケース ばらつき半幅全公差同時最悪±0.2500(=Σ公差)±0.25000.0000%
RSS ±3σ(既定=工程σ空欄)工程σ空欄 → σ=公差÷3 で自動換算 → √(Σσ²)×3±0.132288(=√0.0175)±0.1322880.0000%
RSS ±3σ(工程σに公差÷3 を明示入力)同じ寸法・工程σ = 0.03333 / 0.01667 を手入力±0.132288(同上)±0.1322880.0000%
上記2条件の差|自動換算 − 明示入力|0(完全一致)0.00000000一致

既定動作の保証:工程σを空欄にしたまま(=自動換算)でも、 工程σに 公差 ÷ 3 を手入力しても、出力は完全に一致します(差 0.00000000)。 自動換算が σ = 公差幅 ÷ 3 そのものだからです。同じ同一性は単体テスト (lib/tolerance.test.ts「σ空欄版 = σ明示版」)でも検証しています。

出典(公式):ワーストケース(=各寸法公差の算術和)と RSS(=二乗和平方根)は 商用公差解析の標準公式。Drake, P. J. Jr.(編)Dimensioning and Tolerancing Handbook, McGraw-Hill, 1999, 第9章 「Traditional Approaches to Analyzing Mechanical Tolerance Stacks」/ Fischer, B. R. Mechanical Tolerance Stackup and Analysis, 2nd ed., CRC Press, 2011。 期待値は当該公式へ本例題の数値を代入した決定論的な結果です (√0.0175 = 0.13228757)。

この隙間に規格 USL=5.25 / LSL=4.75(中心一致)を与えると、当機は Cp=1.8898、Cpk=1.8898、余裕=5.669σ、判定=合格 を返します(中心一致のため Cp=Cpk)。

例題2:工程能力指数 Cp / Cpk(NIST の教科書例)

NIST/SEMATECH e-Handbook §6.1.6 の数値例をそのまま使用:USL=20、LSL=8、 平均 x̄=16、標準偏差 s=2。 当機の Cpk 計算関数(lib/capability.ts)へ直接入力した結果を掲載。

項目入力条件期待値(出典)当機の出力誤差%
Cp(USL−LSL)/(6σ) = (20−8)/(6×2) = 12/121.000(NIST §6.1.6)1.00000.0000%
Cpkmin[(20−16)/(3×2),(16−8)/(3×2)] = min[0.667,1.333]0.667(NIST §6.1.6)0.66670.0000%
合否(閾値1.33)Cpk 0.667 < 1.33不合格不合格一致

出典:NIST/SEMATECH e-Handbook of Statistical Methods, §6.1.6 「What is Process Capability?」。
URL: https://www.itl.nist.gov/div898/handbook/pmc/section1/pmc16.htm
定義:Cp=(USL−LSL)/(6σ)、Cpk=min[(USL−μ)/(3σ),(μ−LSL)/(3σ)]。 JIS でも JIS Z 8101-2(統計—用語及び記号—第2部:統計の応用)で同一の工程能力指数が 定義されています。

例題3:モンテカルロの再現条件

例題1と同じスタックに対し、乱数シード 12345・試行数 100,000 でモンテカルロを実行。乱数は seed のみで 決まる決定論的生成(mulberry32+Box-Muller。Math.random不使用)なので、同一 seed・同一試行数なら結果は完全再現します。理論上、平均は 公称隙間に、標準偏差は RSS 合成σに収束します(相互検証)。

項目入力条件期待値(出典)当機の出力誤差%
サンプル平均seed=12345, N=100,0005.0000(解析=公称隙間)5.000110.0023%
サンプル標準偏差seed=12345, N=100,0000.04410(解析=RSS合成σ)0.044260.3624%

再現手順:lib/montecarlo.ts の monteCarlo() に 例題1の寸法・{ seed: 12345, trials: 100000 } を渡すと上記が得られます(単体テスト lib/montecarlo.test.tsで決定論・収束を検証済み)。モンテカルロは統計的手法のため解析解との 誤差は試行数に依存しますが、本条件では平均・σともに 1% 未満で一致します。

例題4:公差配分の逆算(Sprint 2・独自例題・手計算突合)

RSS 合成σが目標Cpkに届かないとき、各寸法の公差をどれだけ締めれば (または緩めれば)届くかを、比例スケーリングと均等σ配分の 2手法で逆算します。出典が公開されている商用ソフトの同一例題が見つからないため、独自例題・手計算突合として、全入力・中間量・両手法の推奨公差を数値で示し、 当機の出力と誤差%を併記します(有効数字7桁)。

寸法公称上公差下公差方向工程σ(有無)
D1(大・可変)40.00+0.20−0.20+未入力(自動換算)
D2(中・可変)30.00+0.04−0.04+未入力(自動換算)
D3(小・可変)10.00+0.03−0.03+未入力(自動換算)
D4(固定)20.00+0.10−0.10+σ=0.010(固定)

規格 USL=100.12 / LSL=99.88、目標Cpk=1.33。 μ=Σ(公称)=100.00、specHalf=min(USL−μ, μ−LSL)=0.120。σ↔公差 換算係数 CONV=3(σ = 公差幅 ÷ 3 ⇔ 公差幅 = σ × 3)。この CONV は目標Cpk(=1.33)とは別物で、σ換算側に Cpk 由来の定数は使いません。 現状 Cpk=0.576(< 1.33 のため締めが必要)。

(1) 中間量(目標σ・固定分の差し引き・両手法の係数)

項目入力条件期待値(出典)当機の出力誤差%
目標σspecHalf/(3×Cpk目標) = 0.12/(3×1.33)0.03007520.03007520.0000%
固定分σ(D4)工程σ手入力=配分対象外0.01000000.01000000.0000%
可変分の目標σ√(σ_target² − σ_fixed²) = √(0.03007519²−0.010²)0.02836400.02836400.0000%
可変分の現σ√(Σ可変現σ²)、可変現σ = 公差 ÷ 30.06871840.06871840.0000%
比例係数 kσ_var_target / σ_var_current0.41275690.41275690.0000%
均等σ配分の σ_i,new√(σ_var_target²/n_var) = √(0.02836401²/3)0.01637600.01637600.0000%
均等σ配分の推奨公差σ_i,new × 3(= σ → 公差幅)0.04912790.04912790.0000%

(2) 手法a 比例スケーリング — 推奨公差 tol_new = k × tol_old(全可変一律)

項目入力条件期待値(出典)当機の出力誤差%
D1(大)推奨公差0.20 × 0.4127569±0.0825514±0.08255140.0000%
D2(中)推奨公差0.04 × 0.4127569±0.0165103±0.01651030.0000%
D3(小)推奨公差0.03 × 0.4127569±0.0123827±0.01238270.0000%
達成後 合成σ√(固定σ² + Σ(k×可変σ)²) = σ_target0.03007520.03007520.0000%
達成後 CpkspecHalf/(3×達成σ)1.3300001.3300000.0000%

(3) 手法b 均等σ配分 — 推奨公差は全可変で ±0.04913。公差の小さい D2・D3 は Δtol<0(緩めてよい寸法)

寸法現公差推奨公差(=均等σ)Δtol=現−新判定
D1(大・可変)±0.200±0.04913+0.15087締め
D2(中・可変)±0.040±0.04913−0.00913緩めてよい(緩和可)
D3(小・可変)±0.030±0.04913−0.01913緩めてよい(緩和可)
D4(固定)±0.100±0.100000.00000固定(対象外)

均等σ配分の達成後 合成σ=0.0300752(期待0.0300752・誤差 0.0000%)、達成後 Cpk=1.330000。締め代合計 Σmax(0,Δtol)=±0.151(締め方向のみ)、緩め余地合計 Σmax(0,−Δtol)=±0.028。 D2・D3 は現公差が均等σ公差 ±0.049 より小さいため絞りすぎ=緩めてよいと判定されます。

均一コスト下でのコスト比較(正味の公差削減量):均等σ配分は「目標σを満たす配分のうち 可変寸法の総公差 Σ公差 を最大化する」解(相加・二乗平均の不等式より、Σσ_i² 一定なら Σσ_i は全σ均等のとき最大)なので、正味の公差削減量が最小になります。 可変3寸法の Σ推奨公差は 均等σ= 0.1474 (現状 Σ現公差 0.270 からの正味削減 0.1226)に対し、比例スケーリング= 0.1114(正味削減 0.1586)。均等σ配分のほうが正味削減が 0.036 少なくて済む=均一コスト仮定では均等σ配分の総コストが小さくなります。 内訳を見ると、均等σは最も緩い D1 を一気に締める(締め代合計 ±0.151)一方で、絞りすぎの D2・D3 には 緩め余地 ±0.028 を返します。比例スケーリングは可変3寸法を一律0.4128 倍に締めるため緩め余地がゼロで、締め代合計は±0.159 と均等σより大きくなります。

再現手順:lib/allocation.ts の allocateTolerances(dims, { usl: 100.12, lsl: 99.88 }, 1.33) に上表の寸法を渡すと本結果が得られます(単体テスト lib/allocation.test.ts で対称・非対称・固定あり・実行不能・ 過剰緩和・片側規格の7観点を相対誤差 1e-9 で検証済み)。σ空欄の行に使った換算は σ = 公差幅 ÷ 3 の単一式です(目標Cpk 1.33 は合否閾値であって、 換算には入りません)。

補足:工程σ未入力時の σ 換算式(単一モデル)

工程σが未入力の寸法は、公差から次式で σ を換算します(計算機の入力カードにも常時表示)。換算式はこの1つだけで、モデルの切り替えは存在しません。

σ = 公差幅 ÷ 3 (T = 3σ)

(1) 根拠:RSS 公差スタックの標準慣行

公差幅 T を T = 3σ(Cp = Cpk = 1.0 相当・分布が規格中心にある=中心化前提)とみなす置き方で、Drake 9章 Eq.(9.10)-(9.11)「Historically … t_i represent a 3σ_i value」、Scholz “Tolerance Stack Analysis Methods” §3.2「Ti ≡ 3σi」、NIST/SEMATECH e-Handbook §6.1.6 (USL−LSL = 6σ ⇔ Cp = 1.00)と一致します。この換算のとき RSS の ±3σ は √(ΣT²) と恒等的に一致し、手計算・教科書・他ツールと噛み合います(上の例題1がその実測です)。

(2) 旧式 σ = 公差幅 ÷ (1.5 + 3 × 1.33)(=÷5.49)を廃止した理由

v1.5 までの既定は、工程平均が 1.5σ ずれても Cpk 1.33 を満たす工程を仮定した σ = T/(1.5 + 3·Cpk) でした。この式は導出自体は正しくても、本ツールの出力形式と噛み合いません。RSS の「公称 ± 3σ」という出し方は平均シフトが無いことを前提にしているからです (Drake 9章 “Assumptions and Risks of Using the RSS Model” b:“All process distributions are centered on the midpoint of the dimension. It does not allow for mean shifts (tool wear, etc.)”)。 σ の導出にだけ 1.5σ シフトを仮定し、結果はシフトなし前提の ±3σ で出す形は、仮定の恩恵(σ が小さくなる)だけを取り、代償(平均のずれ)を計上していない内部矛盾であり、 その仮定が成り立つ工程であっても妥当になりません。実際、同一の寸法連鎖(±0.10 が5本・規格半幅 0.20)で 旧式は Cpk 1.637(合格)を返しますが、同じ仮定を Drake Eq.(11.12) で正しく処理すると 1.190(不合格)、 static RSS(Drake 11.7)なら 0.519(不合格)、本式 ÷3 では 0.894(不合格)です。 合否を出すツールとして外れる向きが逆(実際より優秀に見える)だったため、v1.6 で訂正しました。 旧式はオプションとしても残していません(コードから削除済みで、選び直す手段はありません)。選択肢に置くこと自体が「使ってよい」という意味になり、危険側の数値をワンクリックで呼び戻せる形は 訂正になっていないためです。

(3) 工程能力を仮定して計算したい場合の正しいやり方

モデルを切り替えるのではなく、その寸法の「工程σ」欄に値を直接入力します。工程が Cpk = C 相当(平均の 1.5σ ずれ込みで C を満たす)と分かっている寸法なら、工程σに 公差幅 ÷ (3 × C)(C = 1.33 なら ÷3.99)を入れてください。これは Drake 11章 Eq.(11.12) の σ_adj = T/(3·Cpk)(= Eq.(11.16) σ/(1−k))と厳密に一致し、シフトの代償を「σ を膨らませる」形で計上した値です(Cpk 1.33・1.5σ シフトの工程なら 実ばらつきは T/5.49 相当ですが、それをそのまま ±3σ に使うと平均ずれを計上しないぶん危険側になるため、 1/(1−0.2732) ≒ 1.376 倍に膨らませた T/3.99 を使います)。寸法ごとに指定できるぶん、 ツール全体のモードを切り替えるより正直です。工程σを入力した行は、配分逆算では固定寸法になります。

この計算の前提と制約

  • 中心化・独立・正規:RSS は各寸法が独立・正規分布で、分布が規格中心にある (平均シフトなし)ことを前提にします。工具摩耗などで平均がずれる工程は、その分を 工程σ欄(上記(3))で計上してください。
  • 非対称公差:公差幅は max(|上公差|, |下公差|) を採り(σ について過小評価しない側)、公称の付け替え(等価両側変換)は行いません。そのため非対称公差では平均側のずれを計上していません(Drake 11章 “the tolerance must be equal bilateral”。等価両側変換は今後の課題)。
  • RSS 自体の位置づけ:RSS はワーストケース法より楽観側の見積りで、実務では RSS でも 楽観と報告されています(Scholz §3.3 “practice has shown … the RSS method is too optimistic”/ Drake 9章 “the risk of defects at assembly is higher”)。本ツールが 3手法を並べて出すのはこのためです。
  • Cp/Cpk:合成σを1つの σ として扱う短期的な工程能力指数です(Pp/Ppk ではありません)。 合否閾値の既定 1.33 はσ換算とは無関係の別の変数です。

改訂履歴(Changelog)2026-09-15 訂正

σ換算の既定を「公差幅 ÷ 5.49」から「公差幅 ÷ 3」へ訂正(v1.6)

旧σ = 公差幅 ÷ (1.5 + 3 × 1.33) = 公差幅 ÷ 5.49
新σ = 公差幅 ÷ 3(T = 3σ)
自動換算される σ約 1.83 倍(= 5.49 ÷ 3)
Cpk(全寸法が自動換算のとき)約 0.55 倍(= 3 ÷ 5.49)

連鎖が全て自動換算なら合成σもちょうど 1.83 倍。工程σを手入力した寸法が混ざるぶんだけ 変化は緩やかになります。配分逆算の推奨公差は両手法とも 1/1.83 倍に厳しくなります (比例スケーリングの係数 k も 1/1.83 倍)。=旧既定より保守側です(RSS 法そのものはワーストケース法より楽観側なので、「安全側」という絶対的な意味ではありません)。

訂正の理由

旧既定は工程が Cp 1.83 相当で回っているという楽観仮定を全寸法に置きつつ、 結果はシフトなし前提の ±3σ で出していました。σ を過小評価し Cpk を実際より高く見せる危険側の外れ方で、合否を出すツールとしては向きが逆でした (詳細は上の「(2) 旧式を廃止した理由」)。

旧式の扱い

廃止。オプションとしても残していません(実装から削除済み)。 モデル選択 UI もありません。工程能力を仮定したい場合は工程σ欄に 公差幅 ÷ (3 × 想定Cpk) を入力してください。

共有リンク

改訂前に作られた共有リンクもそのまま開けます(壊れません)。ただし旧式で再現はせず、現在の式で再計算します。改訂前のリンクを開いた場合のみ、 その旨の注記が復元バナーに表示されます。

検証跡の強化

上の例題1を「工程σ空欄=既定動作のまま教科書値と一致する」形に改めました (旧版は σ を明示入力しており、既定の自動換算経路を保証していませんでした)。 単体テストにも自動換算経路の回帰テストを追加しています。

出典一覧

  • NIST/SEMATECH e-Handbook of Statistical Methods, §6.1.6 What is Process Capability?(Cp/Cpk 定義・数値例)https://www.itl.nist.gov/div898/handbook/pmc/section1/pmc16.htm
  • Drake, P. J. Jr.(編)Dimensioning and Tolerancing Handbook, McGraw-Hill, 1999, 第9章(ワーストケース/RSS 公差スタックの標準公式)
  • Fischer, B. R. Mechanical Tolerance Stackup and Analysis, 2nd ed., CRC Press, 2011(同上・統計的公差解析の標準教科書)
  • JIS Z 8101-2 統計—用語及び記号—第2部:統計の応用(工程能力指数 Cp・Cpk の定義)
  • JIS B 0401 製品の幾何特性仕様(GPS)—長さに関わるサイズ公差(公差・ はめあいの定義)
注記:本ページの誤差%は、当機の実出力を上記の公式・文献の期待値と突合した結果です。 ワーストケースと RSS は決定論公式なので誤差はほぼ 0、モンテカルロのみ統計誤差 (試行数依存)が残ります。数式の実装は lib/tolerance.ts / lib/capability.ts / lib/montecarlo.ts の純関数に 分離し、lib/*.test.ts で既知入力→期待値を検証しています。