실측 데이터 분석
연구소에서 제공한 실차 시험 엑셀 데이터를 종합 분석하는 방법을 설명합니다.
데이터 형식
분석 대상 엑셀 파일은 다음 구조를 따릅니다.
| 컬럼 | 단위 | 설명 |
|---|---|---|
| time | s | 시간 (1초 간격) |
| Veh_Velocity | kph | 차량 속도 |
| Mot Temp | ℃ | 모터 권선 온도 |
| Igbt Temp | ℃ | 인버터 IGBT 온도 |
| Heatsink Temp | ℃ | 히트싱크 온도 |
| Mot Tq | Nm | 모터 토크 (양수: 역행, 음수: 회생) |
파일명 규칙
SAMPLE_{차종}_EV_{프로토콜}_{시험조건}_{시험모드}.xlsx
예시: SAMPLE_NE_EV_P1_A4_4_SSM.xlsx → NE 차종, P1 프로토콜, A4_4 조건, SSM 모드
분석 실행
프로젝트 루트에서 실행합니다.
python analyze_sample.py
엑셀 파일은 프로젝트 루트에 배치합니다. 결과는 data/reports/에 PNG 차트로 출력됩니다.
분석 영역
1. 온도 프로파일 시계열 분석
3채널(Motor, IGBT, Heatsink) 온도의 시간에 따른 변화를 분석합니다.
- 기술통계: 평균, 표준편차, 최솟값, 최댓값, P95, P99
- 피크 탐지: scipy.signal 기반 돌출도(prominence) 3°C 이상 피크
- 온도 상승률: 60초 이동평균 기반 dT/dt [°C/min]
- 구간별 통계: 600초 단위 구간별 평균 온도
출력 차트: thermal_timeseries.png
2. 토크-속도 분포 분석
모터 토크와 차량 속도의 운전 영역을 분류합니다.
| 영역 | 조건 |
|---|---|
| 역행 (Motoring) | 속도 > 1 kph, 토크 > 1 Nm |
| 회생 (Regen) | 속도 > 1 kph, 토크 < -1 Nm |
| 관성 (Coasting) | 속도 > 1 kph, |토크| ≤ 1 Nm |
| 정지 (Idle) | 속도 ≤ 1 kph |
- 듀티 사이클: 정지/저속(
30)/중속(3060)/고속(60+) 비율 - 기계적 출력: P = T × ω_motor (기어비·타이어 반경 추정 기반)
출력 차트: torque_speed_scatter.png, operating_distribution.png
참고: 기어비(기본 10.0)와 타이어 반경(기본 0.32m)은 추정값입니다. 정확한 출력 계산은 실제 차량 제원을 확인하세요.
3. 열적 한계 판정
각 온도 채널이 설계 한계 이내인지 평가합니다.
| 채널 | 한계 온도 |
|---|---|
| Motor | 85°C |
| IGBT | 150°C |
| Heatsink | 80°C |
- 마진: 한계 - 최대 온도 [°C] 및 비율 [%]
- 체류 시간: 특정 온도 이상 체류 시간 및 비율
- 판정: SAFE (마진 > 20%) / WARNING (0~20%) / CRITICAL (초과)
출력 차트: thermal_margin.png
4. 신뢰성 시험 기준 평가
IGBT 온도 기반 열피로 수명을 추정합니다.
- 열 사이클 카운팅: 30초 이동평균 스무딩 후 피크-밸리 방식 (간이 rainflow)
- Coffin-Manson 모델: Nf = C × (ΔT)^(-n), 기본 n=2.5, C=10^5
- Miner 누적 손상: D = Σ(1/Nf_i), D < 0.3이면 PASS
- 판정: PASS (D < 30%) / MARGINAL (30~70%) / FAIL (> 70%)
출력 차트: reliability_assessment.png
1차 분석 결과 (SAMPLE_NE_EV_P1_A4_4_SSM)
2026-03-19 분석 기준.
데이터 개요
- 18,465 샘플, 1초 간격, 총 5.1시간
- NE 차종, P1 프로토콜, A4_4 조건, SSM 모드
온도 프로파일
| 채널 | 평균±σ | 최소 | 최대 | P95 | P99 |
|---|---|---|---|---|---|
| Motor | 48.7±3.4°C | 0 | 59 | 54 | 57 |
| IGBT | 41.8±5.1°C | 0 | 94 | 50 | 61 |
| Heatsink | 37.7±2.4°C | 0 | 42 | 41 | 42 |
IGBT 피크 94°C는 순간 스파이크로, P99(61°C)와 큰 차이가 있습니다.
토크-속도 분포
| 영역 | 비율 |
|---|---|
| 역행 | 41.8% (평균 62.2 Nm) |
| 회생 | 37.1% (평균 -41.0 Nm) |
| 관성 | 2.3% |
| 정지 | 18.8% |
듀티: 정지 18.8% / 저속 22.4% / 중속 42.5% / 고속 16.3%
피크 출력 추정: 역행 211.6 kW, 회생 -109.9 kW (기어비 10.0, 타이어 0.32m 기준)
열적 한계 판정: SAFE
| 채널 | 최대 온도 | 한계 | 마진 |
|---|---|---|---|
| Motor | 59°C | 85°C | +26°C (30.6%) |
| IGBT | 94°C | 150°C | +56°C (37.3%) |
| Heatsink | 42°C | 80°C | +38°C (47.5%) |
모든 채널에서 20% 이상 마진 확보. Motor가 최소 마진(30.6%).
신뢰성 평가: PASS
| 항목 | 값 |
|---|---|
| IGBT 열 사이클 | 289회 |
| 평균 ΔT | 4.0°C |
| 최대 ΔT | 15.6°C |
| Coffin-Manson Nf | 3,146회 |
| Miner 누적 손상 | 0.141 (14.1%) |
| 잔여 수명 | 85.9% |
5.1시간 시험에서 수명의 14.1%를 소진. 추정 총 수명: 약 36시간.
종합 판정
열적 SAFE / 신뢰성 PASS
시험 조건 A4_4/SSM에서 열적 여유가 충분하며, 단기 시험 기준으로 신뢰성 위험 없음.
모듈 구조
analysis/
├── data_loader.py # 엑셀 → numpy 배열 변환
├── domain/
│ ├── thermal_profile.py # 온도 프로파일 분석
│ ├── torque_speed.py # 토크-속도 분포 분석
│ ├── thermal_limit.py # 열적 한계 판정
│ └── reliability_assessment.py # 신뢰성 평가 (Coffin-Manson + Miner)
└── visualize.py # matplotlib 차트 생성
domain 모듈은 순수 numpy/scipy만 사용하며 I/O를 포함하지 않습니다.