공차 누적 분석: 최악 케이스, RSS, 몬테카를로 중 무엇을 쓸까요?
이 예제에서 공차 여섯 개를 모두 더하면(최악 케이스) 틈새가 0.120mm까지 줄어들 수 있습니다. 그러나 RSS는 필요한 0.4mm에 못 미치는 조립품이 3.29%뿐이라고 예측하고, 조립품 20,000개를 몬테카를로 시뮬레이션하면 그 비율은 3.21%입니다. 최악 케이스는 모든 조립품이 반드시 들어맞는지를, RSS와 몬테카를로는 얼마나 자주 안 맞는지를 알려 줍니다.
예제는 부품 다섯 개를 담는 100.00 ± 0.10mm 하우징으로, 공칭 틈새는 0.500mm입니다. 각 공차를 표준편차의 3배로 보면 제곱합제곱근(RSS)으로 구한 틈새의 표준편차는 0.0544mm입니다. 같은 정규 분포 가정에서 최악 케이스만큼 작은 틈새는 조립품 약 730 × 10⁹개에 1개꼴로 생깁니다. 사실상 일어나지 않는 일입니다.
모델
엑셀 파일은 Stack이라는 이름의 시트 하나짜리 공차 도표입니다. 하우징 하나와 그 안에 끝에서 끝까지 쌓이는 부품 다섯 개가 있고, 각각 공칭 치수(B열, mm)와 ± 공차(C열)가 있습니다. D열 Actual은 각 치수의 실제 값이며, 저장된 파일에서는 공칭과 같습니다. D9의 틈새는 하우징에서 부품을 뺀 값 =D2-SUM(D3:D7)이고, D10은 B열로 같은 방식으로 공칭 틈새를 계산합니다. 애드인 함수는 없습니다.
시뮬레이션에서는 각 Actual 셀(D2부터 D7까지)이 공칭을 평균으로, 공차의 3분의 1을 표준편차로 하는 정규 분포입니다. 공차를 표준편차의 3배(3σ)로 보므로 공차 안에 드는 부품은 99.73%입니다. 목표는 틈새가 0.4mm 미만인 경우를 불량으로 셉니다. 열팽창 여유를 남기는 경우처럼 조립품에 필요한 최소 틈새라고 생각하면 됩니다.
분포와 목표는 xellstorm에서 예제를 열 때 함께 들어옵니다. 내려받는 파일에는 치수, 공차, 수식만 있으며 보통의 공차 도표와 같습니다. 표준편차는 C열에 연결하지 않고 시뮬레이션 설정에 직접 입력해 두었으므로, 엑셀 파일에서 공차를 바꾸면 표준편차도 함께 바꿉니다.
| 치수 | 공칭 | 공차 | 표준편차 |
|---|---|---|---|
| 하우징 | 100.00 | ±0.10 | 0.0333 |
| 부품 1 | 19.80 | ±0.05 | 0.0167 |
| 부품 2 | 24.60 | ±0.06 | 0.0200 |
| 부품 3 | 15.30 | ±0.04 | 0.0133 |
| 부품 4 | 20.10 | ±0.05 | 0.0167 |
| 부품 5 | 19.70 | ±0.08 | 0.0267 |
최악 케이스: 공차를 모두 더하기
최악 케이스(산술) 누적은 모든 치수가 한꺼번에 가장 불리한 한계에 있다고 가정합니다. 하우징은 가장 작은 99.90mm, 모든 부품은 가장 큰 값입니다. 그러면 틈새의 공차는 공차 여섯 개의 합 ±0.38mm이고, 틈새는 0.120mm와 0.880mm 사이 어딘가에 있습니다.
이것은 보장입니다. 공차 안의 부품으로 만든 조립품은 이 범위를 벗어날 수 없습니다. 그러나 최소 0.4mm에 비추면 이 설계는 서류상으로는 불합격입니다. 통과하려면 공차의 합이 공칭 틈새와 최소값 사이의 0.100mm를 넘지 않아야 합니다. 모든 공차를 같은 비율로 줄이면 각각 원래 값의 26%까지 줄여야 합니다. 최악 케이스는 틈새가 실제로 얼마나 자주 모자라는지는 말해 주지 못합니다.
RSS: 제곱합제곱근
치수가 서로 독립으로 변하면 더해지는 것은 공차가 아니라 분산입니다. 각 표준편차를 공차의 3분의 1로 하면 틈새의 표준편차는 분산 여섯 개의 합의 제곱근인 0.0544mm입니다. 같은 말로, RSS 공차, 즉 공차 제곱의 합의 제곱근은 ±0.163mm이며 틈새의 표준편차 3배에 해당합니다. 0.337mm와 0.663mm 사이에 들어오는 틈새는 99.73%입니다. ± 범위로 읽으면 RSS도 이 설계를 통과시키지 않습니다. 0.337mm가 최소값보다 작기 때문입니다.
그러나 RSS로 비율도 구할 수 있습니다. 독립인 정규 분포 치수의 합은 그 자체로 정규 분포이며 공칭 틈새 0.500mm를 중심으로 하므로, 틈새가 0.4mm 미만일 확률은 정규 분포에서 정확히 나옵니다. 최소값은 공칭 틈새보다 표준편차의 1.84배만큼 아래에 있고, 정규 분포에서 그보다 바깥에 있는 비율은 3.29%입니다. 엑셀 파일에서는 =NORM.DIST(0.4, D10, SQRT(SUMSQ(C2:C7))/3, TRUE)로 같은 숫자가 나옵니다.
이 비율에는 몇 가지 가정이 깔려 있습니다. 치수는 독립이고 정규 분포를 따르며 공칭을 중심으로 하고, 각 공차는 표준편차의 3배이며, 틈새는 단순한 합입니다.
몬테카를로: 조립을 20,000회 반복하기
몬테카를로 시뮬레이션은 조립을 반복합니다. 시행마다 치수 여섯 개를 각 분포에서 뽑고, 엑셀 파일을 다시 계산해 틈새를 기록합니다. 시뮬레이션한 틈새 20,000개 중 0.4mm 미만은 641개(3.21%)이며, 이론값은 3.29%입니다. 차이는 표본 잡음입니다. 시행 20,000회에서 3.29% 근처의 비율은 약 ±0.13퍼센트포인트의 불확실성이 있습니다. 이는 단순 무작위 샘플링의 표준오차 1개입니다. 기본값인 라틴 하이퍼큐브 샘플링은 각 치수의 분포를 확률이 같은 20,000개 구간으로 나눠 구간마다 한 번씩 뽑으며, 대개 조금 더 낫고 여기처럼 결과가 입력마다 한 방향으로만 움직일 때는 결코 더 나쁘지 않습니다. 시뮬레이션한 평균과 표준편차도 RSS 값과 일치합니다.
| RSS, 이론값 | 시뮬레이션 | |
|---|---|---|
| 평균 틈새 | 0.5000 | 0.5000 |
| 표준편차 | 0.0544 | 0.0543 |
| 0.4mm 미만인 틈새(목표) | 3.29% | 3.21% |
| 0.337mm 미만인 틈새(RSS 한계, 3σ) | 0.135% | 0.105% |
| 0.120mm 미만인 틈새(최악 케이스 한계) | 1.4 × 10−12 | 20,000개 중 없음 |
최악 케이스는 얼마나 보수적인가요?
| 방법 | 틈새 범위 | 0.4mm 미만 |
|---|---|---|
| 최악 케이스: 공차를 더함 | 0.120–0.880 | 발생 가능(비율 없음) |
| RSS: 제곱합제곱근, ±3σ | 0.337–0.663 | 3.29% |
| 몬테카를로: 시행 20,000회 전체 | 0.287–0.719 | 3.21% |
매우 보수적입니다. 틈새가 0.120mm에 이르려면 치수들이 합쳐서 불리한 쪽으로 0.38mm 벗어나야 합니다. 모든 부품이 공차 안에 있다면 여섯 개 모두가 동시에 한계에 있어야 한다는 뜻입니다. 같은 정규 분포 가정에서 이렇게 작은 틈새는 공칭 틈새보다 표준편차의 6.99배만큼 아래에 있고, 확률은 1.4 × 10−12입니다. 조립품 730 × 10⁹개에 하나꼴입니다. 실제 공정 중에 이렇게 먼 꼬리까지 정규 분포를 따르는 것은 드물고, 검사로 공차 밖의 부품이 걸러지므로, 이 값은 “사실상 일어나지 않는다”는 뜻으로만 읽어야 합니다. 시뮬레이션도 자기 방식으로 같은 말을 합니다. 시뮬레이션한 틈새 20,000개 중 가장 작은 값은 0.287mm입니다.
보장에는 대가가 따릅니다. 최악 케이스로 0.4mm를 맞추려면 공차를 같은 비율로 줄여 원래 값의 26%까지 내려야 합니다. 3σ 기준 RSS로는 61%까지 내리면 되는데, 그래도 최소값 미만인 틈새는 여전히 0.135%입니다. 공차가 빡빡할수록 가공과 검사 비용이 늘어납니다. 0.4mm 미만인 조립품이 3.29%인 것을 받아들일 수 있는지, 줄이려고 비용을 들일 가치가 있는지는 설계 결정입니다. 통계적 답은 무엇 중에서 고르는지를 보여 줍니다.
어떤 공차를 먼저 줄일까
모든 공차가 3σ인 선형 누적에서 각 치수가 틈새 분산에서 차지하는 몫은 그 공차의 제곱을 공차 제곱의 합으로 나눈 값입니다. 하우징의 ±0.10mm는 37.6%이고, 부품 5의 ±0.08mm는 24.1%, 부품 3의 ±0.04mm는 6.0%에 불과합니다. 공차는 제곱으로 들어가므로 가장 큰 공차가 결과를 좌우합니다. RSS 공식으로 하우징 공차를 절반인 ±0.05mm로 줄이면 0.4mm 미만인 틈새의 비율은 3.29%에서 1.50%까지 내려가지만, 부품 3의 공차를 절반인 ±0.02mm로 줄이면 2.99%까지만 내려갑니다.
| 치수 | 공차, mm | 이론 비중 | 앱(시뮬레이션) |
|---|---|---|---|
| 하우징 | ±0.10 | 37.6% | 38.0% |
| 부품 5 | ±0.08 | 24.1% | 24.0% |
| 부품 2 | ±0.06 | 13.5% | 13.6% |
| 부품 1 | ±0.05 | 9.4% | 9.4% |
| 부품 4 | ±0.05 | 9.4% | 9.3% |
| 부품 3 | ±0.04 | 6.0% | 5.8% |
앱의 분산 기여도 표는 같은 몫을 시뮬레이션 시행의 순위로 추정합니다. 하우징은 38.0%이고, 이론값은 37.6%입니다. 몫을 구하는 공식이 없는 모델에서는 이 표와 토네이도 차트로 줄여야 할 치수를 찾습니다. 토네이도 차트와 민감도 분석에서 설명합니다.
몬테카를로가 제값을 하는 경우
여기서 RSS와 몬테카를로가 일치하는 것은 예제가 RSS의 모든 가정을 충족하기 때문입니다. 가장 큰 역할을 하는 가정은 각 공차가 정규 분포의 표준편차 3배라는 것입니다. 대신 치수가 공차 범위에 고르게 퍼져 있다고 해 봅니다. 예를 들어 절삭 공구가 한 배치 동안 꾸준히 마모되는 경우입니다. 그러면 각 치수는 균등 분포이며, 표준편차는 공차를 √3으로 나눈 값으로 정규 분포의 1.73배입니다.
같은 난수 추출값으로 시나리오를 실행해, 모든 치수를 공칭 − 공차에서 공칭 + 공차 사이의 균등 분포로 바꾸면, 시뮬레이션에서 0.4mm 미만인 틈새는 이전의 3.21% 대비 14.99%입니다. 균등 분포 치수의 이론값은 균등 분포 합의 분포에서 구하며 15.03%입니다. 균등 분포의 표준편차를 쓴 RSS(틈새의 표준편차 0.0942mm)는 14.41%입니다. 가깝지만 낮습니다. 틈새를 여전히 정규 분포로 보는데, 치수가 여섯 개뿐이고 그중 하나의 분산 비중이 37.6%에 이르러 틈새가 정규 분포에 완전히 가까워지지는 않기 때문입니다. 최악 케이스는 전혀 달라지지 않습니다. 치수가 어떻게 분포하는지 무시하기 때문입니다.
그러므로 독립 치수를 단순히 더하는 경우에는 올바른 표준편차를 쓴 RSS로도 가까운 값이 나옵니다. 몬테카를로가 제값을 하는 것은 누적이 덜 단순할 때입니다. 각도나 반지름에 따라 달라지는 틈새, 수식에 MAX 또는 IF가 들어 있는 경우, 치수의 분포가 치우쳐 있거나 검사로 잘려 나간 경우, 치수가 함께 변하는 경우, 이미 스프레드시트에 있는 모델입니다. xellstorm은 시행마다 엑셀 파일을 다시 계산하므로, 틈새는 분석용으로 다시 쓴 합이 아니라 엑셀 파일 자체의 수식이 치수로 만들어 내는 값입니다.
직접 해 보기
- xellstorm에서 모델을 엽니다. 치수 여섯 개가 입력이고, D9의 틈새가 출력이며, 틈새 0.4mm 미만이 목표입니다. 설치도 가입도 필요 없고, 엑셀 파일은 브라우저에서 계산합니다.
- 실행합니다. 같은 시드와 20,000회 시행을 쓰면 이 페이지의 숫자가 그대로 나옵니다(앱은 비율을 소수 첫째 자리까지 반올림해 표시합니다. 예: 3.2%). 결과에는 평균 틈새, 틈새가 0.4mm 미만일 확률, P10(조립품의 90%가 넘는 0.430mm)이 나오고, 백분위수 표는 P1까지 내려갑니다.
- 확률 입력란에 RSS 한계 0.337mm 같은 다른 최소값을 입력하거나, S커브에 마우스를 올려 어떤 값 미만이든 틈새 확률을 확인합니다.
- Distributions 단계에서 시나리오를 추가하고(이름은 “Uniform within tolerance”) 각 치수의 분포를 Uniform으로 바꾸어 min은 공칭 − 공차, max는 공칭 + 공차로 입력한 다음(하우징은 99.90, 100.10) 다시 실행합니다. 시나리오 표가 같은 난수 추출값으로 기준 케이스와 비교해 줍니다. 두 번째 시나리오에서 하우징의 sd를 0.0333에서 0.0167까지 반으로 줄이면, 하우징 공차를 더 좁혔을 때의 효과가 나옵니다.
- 그런 다음 내 공차 도표를 열고, 각 치수를 sd = 공차 / 3(또는 공정 데이터가 보여 주는 산포)인 정규 분포 입력으로 만든 뒤 틈새를 출력으로 고릅니다.
일반 엑셀로도 할 수 있나요?
네. RSS 비율은 앞의 NORM.DIST 수식 하나면 됩니다. 몬테카를로 시뮬레이션은 각 Actual 값을 =NORM.INV(RAND(), B2, C2/3) 같은 수식으로 바꾸고, 데이터 표로 계산을 수천 번 반복한 뒤 COUNTIF로 틈새가 0.4mm 미만인 경우를 세면 됩니다. 엑셀 몬테카를로 시뮬레이션에서 방법과, 도구가 엑셀 파일을 대신 실행해 줄 때 달라지는 점을 보여 줍니다.
자주 묻는 질문
공차 누적은 무엇인가요?
공차 누적은 여러 부품의 공차가 그 모두에 의존하는 치수(예: 하우징과 그 안의 부품 사이에 남는 틈새)에서 어떻게 합쳐지는지 계산하는 것입니다. 흔한 방법은 세 가지입니다. 최악 케이스(공차를 더함), RSS(독립적인 무작위 변동으로 합침), 몬테카를로 시뮬레이션(무작위 치수로 조립을 여러 번 만듦)입니다.
최악 케이스와 RSS 공차 분석은 무엇이 다른가요?
최악 케이스 공차 분석은 공차를 더하므로 공차 안의 모든 부품 조합을 포괄하지만, 모든 부품이 한계에 동시에 있다고 가정합니다. RSS(제곱합제곱근)는 공차 제곱의 합의 제곱근을 취합니다. 변동을 독립적이고 무작위로 보며 조립품 대부분이 들어오는 범위를 구합니다. 각 공차가 표준편차의 3배이면 이 범위에 드는 조립품은 99.73%입니다. 이 누적에서 최악 케이스는 ±0.38mm, RSS는 ±0.163mm입니다.
왜 공차를 표준편차의 3배로 보나요?
공차를 표준편차의 3배(3σ)로 보는 것은 중심이 맞고 정규 분포를 따르는 공정을 나타냅니다. 이 공정에서는 공차 안에 드는 부품이 99.73%이고, 공정능력지수(Cp)는 1입니다. 공정 능력이 더 높은 공정은 표준편차가 작아 불량이 적습니다. 출력이 공차 범위에 고르게 퍼지는 공정은 위의 균등 분포 시나리오처럼 불량이 더 많고, 중심이 어긋난 공정은 공차 밖의 부품이 더 늘어나며 틈새를 한쪽으로 치우치게 합니다. 측정값이 있다면 공정 자체의 평균과 표준편차를 대신 쓰면 됩니다.
공차 시뮬레이션에는 시행이 몇 회 필요한가요?
공차 시뮬레이션에는 관심 있는 불량을 여러 번 셀 만큼의 시행이 필요합니다. 0.4mm 미만이 약 3.29%일 때 20,000회 시행은 그런 틈새를 641개 세며, 비율을 약 ±0.13퍼센트포인트 이내로 좁힙니다(단순 무작위 샘플링의 표준오차 1개이며, 기본값인 라틴 하이퍼큐브 샘플링은 대개 조금 더 낫습니다). 백만분율(ppm) 단위의 불량률에는 수백만 회의 시행이 필요하며, 가정이 맞으면 이론식을 쓰는 편이 낫습니다.
치수에 상관관계를 지정할 수 있나요?
xellstorm에서는 치수에 상관관계를 지정할 수 있습니다. Distributions 단계에서 두 치수에 순위 상관을 지정하면 되며, 예를 들어 같은 봉재에서 잘라 낸 두 부품이 그렇습니다. 두 부품 사이의 양의 상관관계는 틈새의 산포를 넓히고, 하우징과 부품 사이의 양의 상관관계는 좁힙니다. 틈새가 하우징에서 부품을 빼기 때문입니다. 단순한 RSS 공식은 독립을 가정하므로 두 효과를 모두 놓칩니다.
관련 글
- 설비 신뢰성
직렬 시스템은 1년 안에 고장 날 확률이 얼마나 될까요?
와이블 수명을 따르는 부품 4개를 직렬로 연결하면 1년(8,760시간) 안에 고장 나는 장치는 79.0%이고 평균 수명은 5,712시간입니다. 시뮬레이션과 이론값 비교. - 가이드
토네이도 차트와 민감도 분석 설명
토네이도 차트는 입력을 하나씩만 움직입니다. xellstorm에서는 기본으로 P10에서 P90까지입니다. 건축 견적에서는 리스크 하나가 비용을 150(천 달러 단위)만큼 움직입니다. - 가이드
엑셀 몬테카를로 시뮬레이션, 애드인 있어도 없어도
엑셀 모델에서 몬테카를로 시뮬레이션을 실행하는 세 가지 방법: RAND() 수식과 데이터 표, 애드인, 애드인 없는 브라우저 도구. PERT 수식 포함.
xellstorm은 엑셀 모델을 브라우저에서 몬테카를로 시뮬레이션하는 도구입니다. 애드인은 필요 없고, 엑셀 파일은 내 컴퓨터 밖으로 나가지 않습니다.