Skip to Content

시각화

분석 결과를 차트로 표현하고 내보내는 방법을 설명합니다. 시각화는 matplotlib 기반으로 생성되며, 웹 대시보드와 CLI 모두에서 사용할 수 있습니다.

차트 종류

차트용도모듈
Weibull 확률 플롯분포 적합도 확인analysis/domain/
고장률 곡선 (욕조 곡선)수명 주기별 고장 패턴analysis/domain/
신뢰도 함수 그래프시간별 생존 확률analysis/domain/
CDF (누적 고장 분포)시간별 누적 고장 확률analysis/domain/
시계열 플롯원시 데이터 트렌드 확인simulation/domain/
히트맵온도/전류 분포 시각화simulation/domain/

Weibull 확률 플롯

Weibull 확률지(Probability Paper) 위에 고장 데이터와 적합선을 표시합니다. X축은 시간(log), Y축은 누적 고장 확률(이중 로그 변환)입니다.

해석 방법

  • 데이터 포인트가 직선에 가까울수록 Weibull 분포 적합도가 높음
  • 직선의 기울기가 형상 모수 β에 해당
  • 곡선 형태를 보이면 혼합 고장 모드(Mixed Mode)를 의심

CLI에서 생성

python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --plot probability \ --output results/weibull_probability.png

옵션

옵션기본값설명
--confidence-boundstrue신뢰 구간 밴드 표시
--point-stylescatter데이터 포인트 스타일 (scatter, step)
--dpi150이미지 해상도
--figsize10,7차트 크기 (인치)

고장률 곡선 (욕조 곡선)

전체 수명 주기에 걸친 고장률 변화를 보여주는 곡선입니다. Weibull 해저드 함수 h(t) = (β/η) × (t/η)^(β-1)을 시각화합니다.

세 구간의 의미

구간β 범위특징대표 원인
초기 고장기β < 1고장률 감소제조 결함, 조립 불량
우발 고장기β ≈ 1고장률 일정외부 충격, 과부하
마모 고장기β > 1고장률 증가절연 열화, 베어링 마모

실제 모터 시스템은 복수의 고장 메커니즘이 중첩되므로, 각 메커니즘을 분리하여 개별 Weibull 곡선으로 표현할 수 있습니다.

python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --plot hazard \ --output results/bathtub_curve.png

신뢰도 함수 그래프

시간에 따른 신뢰도 R(t)를 보여줍니다. R(t) = exp(-(t/η)^β) 곡선으로, 시간이 지남에 따라 1에서 0으로 감소합니다.

주요 읽기 포인트

  • R(t) = 0.90 시점: B10 수명. 전체의 10%가 고장
  • R(t) = 0.50 시점: B50 수명 (중위 수명)
  • 곡선의 기울기: 급격할수록 고장이 특정 시점에 집중

복수 데이터셋 비교

서로 다른 시험 조건의 신뢰도 곡선을 하나의 차트에 겹쳐 비교할 수 있습니다.

python -m simulation.runner \ --input data/test_normal.csv data/test_accelerated.csv \ --analysis weibull \ --plot reliability \ --labels "상온 시험" "가속 시험" \ --output results/reliability_comparison.png

신뢰 구간 표시

추정 모수의 불확실성을 반영한 신뢰 구간 밴드를 함께 표시합니다. 기본 신뢰 수준은 90%이며, --confidence-level 옵션으로 변경할 수 있습니다.

python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --plot reliability \ --confidence-level 0.95 \ --output results/reliability_with_ci.png

시계열 플롯

원시 측정 데이터의 시간 변화를 확인합니다. 전처리 전후 비교, 이상치 식별에 활용됩니다.

python -m simulation.runner \ --input data/test_001.csv \ --plot timeseries \ --columns speed,torque,temp_winding \ --output results/timeseries.png

여러 물리량을 동일 시간축에 서브플롯으로 배치하여, 상관관계를 시각적으로 확인할 수 있습니다.

결과 내보내기

이미지 형식

형식옵션용도
PNG--format png웹, 프레젠테이션 (기본값)
PDF--format pdf보고서 삽입 (벡터)
SVG--format svg웹 (확대 가능)
# PDF로 내보내기 python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --plot all \ --format pdf \ --output results/ # 전체 차트 일괄 생성 python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --plot all \ --output results/

--plot all 옵션은 Weibull 확률 플롯, 고장률 곡선, 신뢰도 함수, CDF를 일괄 생성합니다.

보고서 생성

Jinja2 템플릿 기반으로 분석 결과를 포함한 HTML 보고서를 자동 생성할 수 있습니다.

python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --report html \ --output results/report.html

보고서에는 모수 추정 결과, 모든 차트, 데이터 요약 통계가 포함됩니다. 템플릿은 templates/ 디렉토리에서 커스터마이징할 수 있습니다.

데이터 내보내기

차트와 함께 수치 데이터도 CSV/JSON으로 내보낼 수 있습니다.

# CSV로 신뢰도 테이블 내보내기 python -m simulation.runner \ --input data/test_001.csv \ --analysis weibull \ --export csv \ --output results/reliability_table.csv

내보내기 데이터에는 시간, 신뢰도 R(t), 누적 고장 확률 F(t), 고장률 h(t) 컬럼이 포함됩니다.

Last updated on