1Health Index의 개념과 가치

Health Index(HI)는 다양한 센서 데이터와 진단 결과를 종합하여 설비의 전반적인 건강 상태를 0-100 사이의 단일 점수로 표현합니다. "이 모터의 상태가 어떤가요?"라는 질문에 "진동은 약간 높고, 온도는 정상이며, 전류 불균형이 2%..."라고 장황하게 설명하는 대신, "건강 지수 78점, 주의 필요"라고 간결하게 답할 수 있습니다. HI는 비전문가(경영진, 생산 담당자)도 쉽게 이해할 수 있어 의사결정을 가속하고, 여러 설비의 상태를 한눈에 비교할 수 있어 자원 배분에 활용됩니다.

다변량 센서 융합 Health Index
📳
진동 센서
🌡️
온도 센서
전류 센서
🔊
음향 센서
⏱️
RUL 예측
정규화
(0-100)
정규화
(0-100)
정규화
(0-100)
정규화
(0-100)
정규화
(0-100)
가중 합산 / AI 융합
w1 x S1 + w2 x S2 + ...
Health Index (HI)
78점
위험
0-29
경고
30-49
주의
50-69
양호
70-89
우수
90-100
HI 범위상태색상조치
90-100우수녹색정상 운전, 정기 점검
70-89양호연두모니터링 강화
50-69주의노랑점검 계획 수립
30-49경고주황조속한 정비 필요
0-29위험빨강즉시 조치/가동 중단

2가중 합산 방식 HI

가장 직관적인 HI 계산 방법은 개별 센서/지표의 정규화된 점수를 가중 합산하는 것입니다. 각 센서 값을 정상 범위 기준으로 0-100 점수로 변환하고, 중요도에 따른 가중치를 적용하여 합산합니다. 가중치는 전문가 지식(FMEA의 심각도) 또는 데이터 기반(고장 예측 기여도)으로 결정합니다. 이 방식은 투명하고 해석 가능하지만, 비선형 상호작용을 포착하기 어렵습니다.

가중 합산 Health Index (수도코드)
# ============================================ # 가중 합산 방식 설비 건강 지수 # ============================================ # 지표 설정 예시 설정 = { 진동: {가중치: 0.30, 정상범위: (0, 4.5)}, 온도: {가중치: 0.20, 정상범위: (30, 70)}, 전류THD: {가중치: 0.15, 정상범위: (0, 5)}, 예측RUL: {가중치: 0.35, 정상범위: (30, 180)} } # -------------------------------------------- # 개별 지표 점수 계산 (0-100) # -------------------------------------------- 함수 지표점수_계산(지표명, 값): 하한, 상한 = 설정[지표명].정상범위 만약 값 <= 하한: 반환 100 # 최고 상태 만약 값 >= 상한: 반환 max(0, 100 - 초과비율) # 나쁜 상태 아니면: 반환 100 × (1 - (값-하한)/(상한-하한)) # 선형 감소 # -------------------------------------------- # 종합 Health Index 계산 # -------------------------------------------- 함수 HI_계산(센서값들): 각 센서에 대해: 점수[센서명] = 지표점수_계산(센서명, 값) HI = 가중합(점수 × 가중치) / 총_가중치 반환 { health_index: HI, 개별_점수들, 상태: 상태_판정(HI), 색상: 색상_결정(HI) } # -------------------------------------------- # 상태 판정 기준 # -------------------------------------------- 함수 상태_판정(HI): HI >= 90: "Excellent" (녹색) HI >= 70: "Good" (연두) HI >= 50: "Fair" (노랑) HI >= 30: "Poor" (주황) HI < 30: "Critical" (빨강)

3머신러닝 기반 HI

머신러닝 기반 HI는 센서 간 비선형 상호작용을 자동으로 학습합니다. 정상 상태 데이터로 오토인코더나 PCA를 학습시키고, 복원 오차나 주성분 공간에서의 거리를 HI로 변환합니다. 고장까지의 시간(Time-to-Failure)을 레이블로 사용하여 지도학습으로 HI를 직접 예측하는 방법도 있습니다. 이 경우 HI는 RUL의 역함수로 해석됩니다.

오토인코더 기반 Health Index (수도코드)
# ============================================ # 오토인코더 기반 Health Index # (비지도학습 - 정상 데이터로 학습) # ============================================ # 오토인코더 구조 인코더: 입력 → 32 → 16 → 잠재공간(8차원) 디코더: 잠재공간 → 16 → 32 → 복원출력 # 핵심 원리: 정상 데이터 복원은 잘됨, 이상 데이터는 복원 오차 큼 # -------------------------------------------- # 임계값 설정 (정상 데이터 기준) # -------------------------------------------- 함수 임계값_설정(정상_데이터): 복원_오차들 = 정상_데이터 각각 복원 후 오차 계산 임계값 = 95퍼센타일(복원_오차들) 평균, 표준편차 저장 반환 임계값 # -------------------------------------------- # Health Index 계산 # -------------------------------------------- 함수 HI_계산(센서_데이터): 복원_오차 = |원본 - 복원본|²의 평균 # Z-score 기반 정규화 z_score = (오차 - 평균) / 표준편차 # 시그모이드로 0-100 변환 # 오차 낮음 → HI 높음, 오차 높음 → HI 낮음 HI = 100 / (1 + exp(z_score - 2)) 반환 {health_index, 복원오차, z_score, 상태} # ============================================ # 지도학습 기반 Health Index (대안) # ============================================ 지도학습_모델: 입력 → 64 → BatchNorm → Dropout → 32 → 1 → Sigmoid × 100 # TTF(고장까지 시간)를 HI로 변환한 레이블로 학습 # 예: TTF=0일 → HI=0, TTF=180일 → HI=100

4다변량 센서 융합

실제 설비는 진동, 온도, 전류, 음향 등 다양한 센서 데이터를 생성합니다. 센서 융합(Sensor Fusion)은 이들을 효과적으로 통합하여 단일 HI를 산출합니다. Early Fusion은 모든 센서 특징을 연결하여 단일 모델에 입력합니다. Late Fusion은 각 센서 유형별로 개별 HI를 계산한 후 통합합니다. Attention 메커니즘은 상황에 따라 각 센서의 중요도를 동적으로 조절합니다.

다변량 센서 융합 HI (수도코드)
# ============================================ # 다중 센서 융합 Health Index # (Early Fusion + Attention 방식) # ============================================ # 모달리티별 차원 예시 모달리티 = {진동: 64차원, 온도: 32차원, 전류: 24차원, 음향: 48차원} # 각 모달리티별 인코더 각_모달리티에 대해: 인코더: 입력 → 32 → 16차원 특징 추출 # -------------------------------------------- # Attention 기반 융합 # -------------------------------------------- 함수 순전파(입력_딕셔너리): # Step 1: 각 모달리티 인코딩 인코딩된_특징들 = 각 센서 데이터를 인코더로 변환 # Step 2: Attention 가중치 계산 연결된_특징 = 모든 인코딩 연결 어텐션_가중치 = Softmax(연결된_특징 → 32 → 모달리티수) # Step 3: 가중 합산 융합 융합_특징 = sum(인코딩 × 어텐션가중치) # Step 4: HI 예측 HI = 융합_특징 → 16 → 1 → Sigmoid × 100 반환 {HI, 어텐션_가중치, 모달리티별_특징} # ============================================ # Late Fusion 방식 (대안) # ============================================ # 각 센서 유형별로 개별 HI 계산 후 통합 함수 종합_HI_계산(센서_딕셔너리): 각 모달리티에 대해: 모달리티_HI[센서명] = 개별_모델.HI_계산(데이터) # 가중 평균으로 종합 종합_HI = 가중합(모달리티_HI × 융합_가중치) / 총_가중치 반환 {종합_HI, 모달리티별_HI, 융합_가중치} # 가중치 최적화 (검증 데이터 활용) 함수 가중치_학습(검증데이터, 실제_HI): 목적함수: 예측_HI와 실제_HI 차이 최소화 제약조건: 가중치 합 = 1 최적화로 최적 가중치 도출

5HI 트렌드 분석과 예측

HI의 시계열 트렌드를 분석하면 열화 속도를 파악하고 미래 HI를 예측할 수 있습니다. HI가 급격히 감소하면 빠른 조치가 필요하고, 완만하게 감소하면 다음 정비까지 여유가 있습니다. 선형 회귀로 열화율을 추정하거나, 시계열 모델(ARIMA, Prophet)로 HI 예측을 수행합니다. "HI가 50 이하로 떨어지는 시점"을 예측하면 최적 정비 시점을 결정할 수 있습니다.

HI 트렌드 분석 (수도코드)
# ============================================ # Health Index 트렌드 분석 # ============================================ # -------------------------------------------- # 트렌드 분석 함수 # -------------------------------------------- 함수 트렌드_분석(HI_이력): 만약 데이터 < 2개: 반환 "데이터 부족" # 선형 회귀로 열화율 추정 기울기, 절편, R² = 선형회귀(시간, HI_이력) 열화율 = -기울기 # 음수 기울기 = 감소 추세 # 트렌드 분류 만약 |기울기| < 0.1: 유형 = "안정" 만약 기울기 < -0.5: 유형 = "급격한_감소" 만약 기울기 < 0: 유형 = "점진적_감소" 아니면: 유형 = "개선중" 반환 {유형, 열화율, R², 현재HI, 다음예측값} # -------------------------------------------- # 임계값 도달 예측 # -------------------------------------------- 함수 임계값_도달일_예측(HI_이력, 임계값=50): 트렌드 = 트렌드_분석(HI_이력) 만약 기울기 >= 0: 반환 없음 # 감소 안함 만약 현재HI <= 임계값: 반환 0 # 이미 도달 # 선형 외삽으로 도달일 계산 도달일 = (임계값 - 절편) / 기울기 - 현재일수 반환 max(0, 도달일) # -------------------------------------------- # 트렌드 이상 탐지 (급격한 변화) # -------------------------------------------- 함수 트렌드_이상_탐지(HI_이력, 윈도우=7일): 최근_구간 = HI_이력[-윈도우:] 이전_구간 = HI_이력[-2*윈도우:-윈도우] z_score = (최근평균 - 이전평균) / 이전_표준편차 이상여부 = |z_score| > 2 방향 = z < -2이면 "감소", z > 2이면 "개선" 반환 {이상여부, z_score, 방향}

핵심 포인트: Health Index는 복잡한 센서 데이터를 단일 점수로 단순화하여 비전문가도 설비 상태를 이해할 수 있게 합니다. 트렌드 분석으로 "언제 조치가 필요한지"를 예측합니다.

6HI 대시보드와 알림

HI는 시각적 대시보드로 표현될 때 가장 효과적입니다. 모든 설비의 HI를 히트맵이나 리스트로 표시하고, 색상 코딩으로 주의가 필요한 설비를 즉시 식별할 수 있습니다. 임계값 기반 알림 규칙을 설정하여 HI가 특정 수준 이하로 떨어지면 자동으로 담당자에게 알림을 보냅니다. 트렌드 기반 알림은 HI가 빠르게 감소하는 경우 사전에 경고합니다. 이러한 알림은 CMMS와 연동되어 자동으로 작업 지시를 생성할 수 있습니다.