20

시간 도메인 피처: RMS, Peak, Kurtosis

Day 2: 시계열 센서 데이터 처리

학습 목표
  • 진동 신호의 시간 도메인 통계 피처를 계산할 수 있다
  • RMS, Peak, Crest Factor, Kurtosis의 물리적 의미를 이해한다
  • 피처 값 변화로 설비 상태를 판단할 수 있다

시간 도메인 피처 엔지니어링

진동 신호에서 상태를 나타내는 통계값을 추출한다. 이 피처들이 ML 모델의 입력이 된다.

핵심 피처 6종

[시간 도메인 피처]

RMS (Root Mean Square)
  → 신호의 에너지 크기. 전반적 진동 수준.
  → 베어링 마모 시 증가

Peak (최대값)
  → 순간 충격 크기. 기어 결함 감지.

Crest Factor (파고율 = Peak / RMS)
  → 충격성 판단. 정상: 3~4, 결함: 5+

Kurtosis (첨도)
  → 분포의 뾰족함. 정상: ~3, 충격: 5+
  → 초기 결함 감지에 매우 민감

Skewness (비대칭도)
  → 분포의 비대칭. 비정상 마모 감지.

Std (표준편차)
  → 신호 산포. 불안정 운전 감지.

직접 채울 것

아래 코드를 time_features.py 로 저장하면 extract_time_features 안에 TODO 다섯 줄이 비어 있다. RMS · Peak · Crest Factor · Kurtosis · Skewness 를 채운 뒤 실행하라. 나머지 코드는 손대지 않아도 된다. 막히면 hints 를 보고, 다 채운 뒤 정답 코드와 대조한다.

채우고 실행하면 아래가 찍힌다.

정상  RMS 0.37  Peak  0.87  Crest 2.35  Kurtosis 1.71
경고  RMS 1.36  Peak  5.52  Crest 4.06  Kurtosis 2.95
위험  RMS 3.25  Peak 13.60  Crest 4.19  Kurtosis 4.30

여기서 두 가지를 읽는다.

정상의 첨도가 3 이 아니라 1.7 이다. 「정상은 3 근처」라는 말은 신호가 가우시안 잡음일 때의 이야기다. 회전 성분이 지배하는 진동은 정현파에 가까워 첨도가 1.5 쪽으로 내려간다. 그러니 첨도의 절대값 하나로 판정하지 말고 같은 설비의 평소 값과 비교해야 한다.

이 세 신호에서는 RMS 가 첨도보다 크게 움직인다(8.8배 대 2.5배). 정현파 진폭까지 함께 키운 합성 신호이기 때문이다. 그래서 스크립트 끝에 진폭은 정상과 똑같이 두고 충격만 얹은 신호를 하나 더 만들어 둔다. 그 신호에서는 RMS 가 1.6배 오르는 동안 첨도가 열 배 넘게 뛴다. 초기 결함을 첨도로 잡는다는 말은 바로 그 구간을 가리키는 것이지, 진동이 이미 커진 뒤를 가리키는 것이 아니다.

에디터 로딩 중...
힌트 보기
  • RMS = sqrt(mean(x^2)) 으로 신호 에너지를 측정한다
  • Peak 는 부호와 무관한 크기라 np.max 가 아니라 절대값의 최대다
  • Crest Factor = Peak / RMS 로 충격 대 평균 비율을 본다
  • scipy 의 stats.kurtosis 는 fisher=True 가 기본이라 가우시안이 0 이다. 현장 기준(정상 ≈ 3)에 맞추려면 3 을 더한다
  • 첨도가 평소 값보다 뚜렷이 오르면 충격성 결함을 의심한다. 「5 이상」 같은 절대 기준은 신호 구성에 따라 달라지므로 같은 설비의 평소 값과 견준다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
진동 피처 계산 코드 변환AI 학습 팁

AI에게 RMS·Kurtosis 공식의 수학적 정의를 입력하면 제조 진동 데이터에 바로 적용 가능한 numpy 코드로 변환해달라고 요청하세요.

터보팬 엔진 진동 신호 배열 x에 대해 RMS, Peak, Crest Factor(Peak/RMS), Kurtosis를 계산하는 numpy 함수를 작성해줘. 각 함수에 물리적 의미 주석과 고장 판단 임계값 예시도 포함해줘.
이 팁이 도움이 됐나요?
용어