# Java 기반 FFT와 Park 변환을 활용한 비동기 전동기 진단 시스템
이 Java 기반 시스템은 전류 소비를 분석해 비동기 전동기의 결함을 탐지합니다. 신호 처리, 고속 푸리에 변환(FFT), Clarke-Park 변환을 통합한 앱으로, 엔지니어들이 장비 상태를 효과적으로 모니터링할 수 있는 강력한 도구를 제공합니다.
아키텍처와 신호 처리
JavaFX로 구축된 데스크톱 워크스테이션으로, 25.6kHz로 샘플링된 전류 신호 처리가 핵심 과제였습니다. 원시 데이터에는 주파수 변환기에서 발생하는 고주파 노이즈가 포함되어 있어 사전 필터링이 필수입니다.
주요 신호 처리 단계:
- 저역통과 필터링: 1kHz 차단 주파수를 가진 버터워스 디지털 필터로 노이즈 제거.
- 햄밍 윈도잉: 스펙트럼 누설 감소와 진폭 정확도 향상.
- FFT 구현: 고조파 성분 탐지를 위한 진폭 및 위상 스펙트럼 계산.
필터링과 윈도잉 예제 코드:
public double[] applyHammingWindow(double[] signal) {
int N = signal.length;
int Fs = 25600;
int order = 4;
int cutOff = 1000;
Butterworth flt = new Butterworth(Fs);
double[] result = flt.lowPassFilter(signal, order, cutOff);
double[] windowedSignal = new double[N];
Hamming w1 = new Hamming(N);
double[] out = w1.getWindow();
for (int i = 0; i < N; i++) {
windowedSignal[i] = result[i] * out[i];
}
return windowedSignal;
}
데이터 시각화와 분석
앱 인터페이스는 철저한 진단을 위한 다양한 차트 유형을 표시합니다:
- 전류 오실로스코프: 확대 가능한 시간 영역 파형 분석.
- Park 벡터 다이어그램: Clarke-Park 변환 후 d-q 좌표계에서의 전류 궤적.
- FFT 스펙트로그램: 결함을 나타내는 지배 주파수와 고조파 탐지.
최대 40개의 CSV 파일을 일괄 처리해 비교가 용이합니다. 데이터셋 전체에 동일한 필터링 설정을 적용해 전동기 상태 변화를 추적합니다.
성능 최적화
최적화된 I/O와 멀티스레딩으로 속도를 달성:
- 인텔 Core i5(16GB RAM)에서 70MB CSV 파일을 2초 이내 처리.
- 계산과 렌더링 스레드를 분리해 차트 업데이트 100ms 미만.
- BufferedReader로 메모리 오버헤드 최소화.
JDSP(Java Digital Signal Processing) 라이브러리가 필터와 윈도우 함수를 제공해 프로토타이핑을 가속화했습니다.
사용자 인터페이스와 기능
인터랙티브 요소로 심층 분석 가능:
- 차트 툴팁: 포인트 값 호버 표시.
- 표시 옵션: 단위(상대/데시벨), 주파수 범위, 신호 유형.
- 테마: 라이트/다크 모드.
- 컨트롤: 색상 구분 데이터셋, 확대 슬라이더, 파일 버튼.
LineChart 툴팁 설정 예제:
public static void setupTooltip(XYChart.Data<Number, Number> data, String seriesName) {
Circle circle = new Circle(2);
circle.setOpacity(0.5);
circle.setOnMouseEntered(event -> {
Tooltip tooltip = new Tooltip(
"Y: " + data.getYValue() + "\n" +
"X: " + data.getXValue() + "\n" + seriesName
);
tooltip.setShowDelay(Duration.ONE);
Tooltip.install(circle, tooltip);
});
data.setNode(circle);
}
주요 요약
- FFT와 Park 변환으로 전류 고조파를 통해 전동기 결함 탐지.
- 최적화 처리로 70MB 파일 2초 내 처리.
- 멀티스레딩으로 UI 응답성 100ms 이내 유지.
- JDSP로 Java DSP 간소화.
- 배치 모드로 최대 40개 데이터셋 원활 비교.
— Editorial Team
아직 댓글이 없습니다.