๋ถ์ ์คํ
์ ๋ก๋๋ ์ํ ๋ฐ์ดํฐ์ ๋ํด Weibull ๋ถ์๊ณผ ์ ๋ขฐ์ฑ ์์ธก์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Weibull ๋ถ์ ๊ฐ์
Weibull ๋ถํฌ๋ ๊ณ ์ฅ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋ช ๋ถํฌ์ ๋๋ค. ๋ ๊ฐ์ ํต์ฌ ๋ชจ์๋ก ๊ณ ์ฅ ํจํด์ ์ค๋ช ํฉ๋๋ค.
| ๋ชจ์ | ๊ธฐํธ | ์๋ฏธ |
|---|---|---|
| ํ์ ๋ชจ์ (Shape) | ฮฒ | ๊ณ ์ฅ ํจํด. ฮฒ < 1: ์ด๊ธฐ ๊ณ ์ฅ, ฮฒ = 1: ์ฐ๋ฐ ๊ณ ์ฅ, ฮฒ > 1: ๋ง๋ชจ ๊ณ ์ฅ |
| ์ฒ๋ ๋ชจ์ (Scale) | ฮท | ์๋ช ํน์ฑ. ์ ์ฒด์ 63.2%๊ฐ ๊ณ ์ฅ๋๋ ์์ |
ฮฒ ๊ฐ์ ๋ฐ๋ฅธ ๊ณ ์ฅ ๋ฉ์ปค๋์ฆ ํด์:
- ฮฒ < 1: ์ด๊ธฐ ๊ณ ์ฅ (Infant Mortality). ์ ์กฐ ๊ฒฐํจ, ์กฐ๋ฆฝ ๋ถ๋์ด ์์ธ
- ฮฒ โ 1: ์ฐ๋ฐ ๊ณ ์ฅ (Random Failure). ์ธ๋ถ ์ถฉ๊ฒฉ, ๊ณผ๋ถํ ๋ฑ ๋ฌด์์ ์์ธ
- ฮฒ > 1: ๋ง๋ชจ ๊ณ ์ฅ (Wear-out). ํผ๋ก, ๋ถ์, ์ ์ฐ ์ดํ ๋ฑ ๊ฒฝ๋ ์ดํ
MTTF (ํ๊ท ๊ณ ์ฅ ์๊ฐ)
Weibull ๋ถํฌ์ MTTF๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ฉ๋๋ค.
MTTF = ฮท ร ฮ(1 + 1/ฮฒ)์ฌ๊ธฐ์ ฮ๋ ๊ฐ๋ง ํจ์์
๋๋ค. simulation/domain/ ๋ชจ๋์ด ์ด ๊ณ์ฐ์ ์๋์ผ๋ก ์ํํฉ๋๋ค.
์๋ฎฌ๋ ์ด์ ์คํ
CLI์์ ์คํ
simulation/runner.py๊ฐ ๋ถ์์ ์ง์
์ ์
๋๋ค.
cd ev-motor-reliability
source venv/bin/activate
# ๊ธฐ๋ณธ Weibull ๋ถ์ ์คํ
python -m simulation.runner --input data/test_001.csv --analysis weibull
# ๋ณต์ ํ์ผ ์ผ๊ด ๋ถ์
python -m simulation.runner --input data/*.csv --analysis weibull --batch
# Monte Carlo ์๋ฎฌ๋ ์ด์
ํฌํจ
python -m simulation.runner --input data/test_001.csv --analysis weibull --monte-carlo --iterations 10000์น ๋์๋ณด๋์์ ์คํ
- ๋์๋ณด๋์์ ๋ถ์ํ ๋ฐ์ดํฐ์ ์ ์ ํํฉ๋๋ค
- ๋ถ์ ์ค์ ํจ๋์์ ๋ถ์ ์ ํ๊ณผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ํฉ๋๋ค
- ๋ถ์ ์์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค
- ์งํ๋ฅ ํ์์ค์ด ๋ํ๋๋ฉฐ, ์๋ฃ ์ ๊ฒฐ๊ณผ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค
๋ถ์ ํ๋ผ๋ฏธํฐ ์ค์
๊ธฐ๋ณธ ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|
confidence_level | 0.90 | ์ ๋ขฐ ๊ตฌ๊ฐ ์์ค (0.80 ~ 0.99) |
estimation_method | mle | ๋ชจ์ ์ถ์ ๋ฒ. mle (์ต๋์ฐ๋), rr (์์ํ๊ท) |
failure_criteria | temperature | ๊ณ ์ฅ ํ์ ๊ธฐ์ค |
threshold | 180.0 | ๊ณ ์ฅ ํ์ ์๊ณ๊ฐ (degC) |
๊ณ ์ฅ ํ์ ๊ธฐ์ค
์ํ ๋ฐ์ดํฐ์์ ๊ณ ์ฅ ์์ ์ ํ์ ํ๋ ๊ธฐ์ค์ ์ค์ ํฉ๋๋ค.
| ๊ธฐ์ค | ์๊ณ๊ฐ (๊ธฐ๋ณธ) | ์ค๋ช |
|---|---|---|
temperature | 180 degC | ๊ถ์ ์จ๋๊ฐ ์ ์ฐ ๋ฑ๊ธ ํ๊ณ ์ด๊ณผ |
vibration | ๊ฐ์๋ 4g | ๋ฒ ์ด๋ง ์ง๋ ์์ค ์ด๊ณผ |
current_imbalance | 15% | 3์ ์ ๋ฅ ๋ถํํ๋ฅ ์ด๊ณผ |
efficiency_drop | 10% | ์ ๊ฒฉ ๋๋น ํจ์จ ์ ํ |
๋ณต์ ๊ธฐ์ค์ ์กฐํฉํ์ฌ OR/AND ์กฐ๊ฑด์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
# config ์์ (analysis ๋ชจ๋์ ์ ๋ฌ)
analysis_config = {
"confidence_level": 0.90,
"estimation_method": "mle",
"failure_criteria": {
"mode": "or",
"conditions": [
{"type": "temperature", "threshold": 180.0},
{"type": "current_imbalance", "threshold": 0.15},
],
},
}์ถ์ ๋ฐฉ๋ฒ ๋น๊ต
| ๋ฐฉ๋ฒ | ์ฅ์ | ๋จ์ | ๊ถ์ฅ ์กฐ๊ฑด |
|---|---|---|---|
| MLE (์ต๋์ฐ๋) | ๋ํ๋ณธ์์ ์ ํ, ์ค๋ ์ ๋จ ์ฒ๋ฆฌ ์ฐ์ | ์ํ๋ณธ(n < 20)์์ ํธํฅ | ๋ฐ์ดํฐ 30๊ฐ ์ด์ |
| RR (์์ํ๊ท) | ์ํ๋ณธ์์ ์์ ์ , ์ง๊ด์ | ์ค๋ ์ ๋จ ์ฒ๋ฆฌ ์ ํ์ | ๋ฐ์ดํฐ 30๊ฐ ๋ฏธ๋ง |
๊ฒฐ๊ณผ ํด์
๋ถ์์ด ์๋ฃ๋๋ฉด ์๋ ๊ฒฐ๊ณผ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋ชจ์ ์ถ์ ๊ฒฐ๊ณผ
========================================
Weibull Analysis Result
========================================
Shape (ฮฒ): 2.45 [1.87, 3.21] (90% CI)
Scale (ฮท): 8,520 h [7,100, 10,220] (90% CI)
MTTF: 7,553 h
B10 Life: 3,012 h
Correlation: 0.987
========================================- Shape (ฮฒ) = 2.45: ฮฒ > 1์ด๋ฏ๋ก ๋ง๋ชจ ๊ณ ์ฅ ํจํด. ์ฌ์ฉ ์๊ฐ์ด ๊ธธ์๋ก ๊ณ ์ฅ๋ฅ ์ฆ๊ฐ
- Scale (ฮท) = 8,520 h: ์ ์ฒด ์ํ ์ ๋์ 63.2%๊ฐ 8,520์๊ฐ ์ด๋ด์ ๊ณ ์ฅ
- MTTF = 7,553 h: ํ๊ท ๊ณ ์ฅ ์๊ฐ
- B10 Life = 3,012 h: ์ ์ฒด์ 10%๊ฐ ๊ณ ์ฅ๋๋ ์์ . ๋ณด์ฆ ๊ธฐ๊ฐ ์ค์ ์ ํ์ฉ
- Correlation = 0.987: Weibull ์ ํฉ๋. 0.95 ์ด์์ด๋ฉด ์ํธ
B-Life ํด์
B-Life๋ ๋์ ๊ณ ์ฅ ํ๋ฅ ์ด ํน์ ํผ์ผํธ์ ๋๋ฌํ๋ ์์ ์ ๋๋ค.
| ์งํ | ์๋ฏธ | ํ์ฉ |
|---|---|---|
| B1 | 1% ๊ณ ์ฅ ์์ | ์์ ๊ด๋ จ ๋ถํ ๋ณด์ฆ |
| B10 | 10% ๊ณ ์ฅ ์์ | ์ผ๋ฐ ๋ถํ ๋ณด์ฆ ๊ธฐ๊ฐ |
| B50 | 50% ๊ณ ์ฅ ์์ | ์ค์ ์๋ช (โ MTTF) |
๊ณ ์ฅ ์์ธก ๋ชจ๋ธ
Weibull ๋ชจ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฅํ ๊ณ ์ฅ ํ๋ฅ ์ ์์ธกํฉ๋๋ค.
์ ๋ขฐ๋ ํจ์
์๊ฐ t์์ ์์ง ๊ณ ์ฅ๋์ง ์์ ํ๋ฅ :
R(t) = exp(-(t/ฮท)^ฮฒ)๊ณ ์ฅ๋ฅ ํจ์ (Hazard Function)
์๊ฐ t์์์ ์๊ฐ ๊ณ ์ฅ๋ฅ :
h(t) = (ฮฒ/ฮท) ร (t/ฮท)^(ฮฒ-1)์์ฌ ์๋ช ์์ธก
ํ์ฌ ๊ฐ๋ ์๊ฐ tโ์์ ์ถ๊ฐ๋ก ฮt๋งํผ ์์กดํ ์กฐ๊ฑด๋ถ ํ๋ฅ :
R(ฮt | tโ) = R(tโ + ฮt) / R(tโ)์ด ๊ณ์ฐ์ analysis/domain/ ๋ชจ๋์์ ์ ๊ณตํ๋ฉฐ, ๊ฒฐ๊ณผ๋ JSON ๋ฐ CSV ํํ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
# ์์ธก ๊ฒฐ๊ณผ ๋ด๋ณด๋ด๊ธฐ
python -m simulation.runner --input data/test_001.csv --analysis weibull --export results/results/ ๋๋ ํ ๋ฆฌ์ ๋ค์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค:
weibull_params.jsonโ ์ถ์ ๋ ๋ชจ์ ๋ฐ ์ ๋ขฐ ๊ตฌ๊ฐreliability_table.csvโ ์๊ฐ๋ณ ์ ๋ขฐ๋/๊ณ ์ฅ๋ฅ ํ ์ด๋ธprediction.csvโ ์์ฌ ์๋ช ์์ธก ๊ฒฐ๊ณผ
๋ค์ ๋จ๊ณ
๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ฐจํธ๋ก ํ์ธํ๋ ค๋ฉด ์๊ฐํ๋ฅผ ์ฐธ์กฐํฉ๋๋ค.