Back to Home

Diagnosis of asynchronous motors in Java: FFT, Park transformation

The article describes the development of a system for diagnosing asynchronous electric motors in Java using fast Fourier transform and Clarke-Park transformation. Methods of signal processing, performance optimization, and data visualization for detecting equipment defects are considered.

Java in industry: motor diagnostics through current analysis
Advertisement 728x90

Java-Based Asynchronous Motor Diagnostics Using FFT and Park Transform

This Java-powered system diagnoses asynchronous electric motors by analyzing current draw to spot defects. The app integrates signal processing, Fast Fourier Transform (FFT), and Clarke-Park transform, giving engineers a powerful tool for monitoring equipment health.

Architecture and Signal Processing

Built with JavaFX for a desktop workstation, the core challenge was handling current signals sampled at 25.6 kHz. Raw data includes high-frequency noise from the frequency converter, requiring upfront filtering.

Key signal processing steps:

Google AdInline article slot
  • Low-pass filtering: Butterworth digital filter with 1 kHz cutoff to remove noise.
  • Hamming windowing: Reduces spectral leakage and boosts amplitude accuracy.
  • FFT implementation: Computes amplitude and phase spectra to detect harmonic components.

Example code for filtering and windowing:

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;
}

Data Visualization and Analysis

The app's interface displays multiple chart types for thorough diagnostics:

  • Current oscilloscope: Time-domain waveform analysis with zoom.
  • Park vector diagram: Current trajectory in d-q coordinates post Clarke-Park transform.
  • FFT spectrogram: Spots dominant frequencies and harmonics signaling faults.

Batch processing up to 40 CSV files makes comparisons easy. Uniform filtering settings apply across datasets to track motor condition changes.

Google AdInline article slot

Performance Optimization

Speed comes from optimized I/O and multithreading:

  • 70 MB CSV files process in under 2 seconds on an Intel Core i5 with 16 GB RAM.
  • Charts update in <100 ms by separating computation and rendering threads.
  • BufferedReader cuts memory overhead.

The JDSP (Java Digital Signal Processing) library provided ready-made filters and window functions, speeding up prototyping.

User Interface and Features

Interactive elements enable deep dives:

Google AdInline article slot
  • Chart tooltips: Hover for point values.
  • Display options: Units (relative or dB), frequency range, signal type.
  • Themes: Light and dark modes.
  • Controls: Color-coded datasets, zoom sliders, file buttons.

Example tooltip setup for 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);
}

Key Takeaways

  • FFT and Park transform detect motor faults via current harmonics.
  • Optimized processing handles 70 MB files in 2 seconds.
  • Multithreading keeps UI responsive under 100 ms.
  • JDSP simplifies DSP on Java.
  • Batch mode compares up to 40 datasets seamlessly.

— Editorial Team

Advertisement 728x90

Read Next