Zurück zur Startseite

Diagnose von Asynchronmotoren in Java: FFT, Park-Transformation

Der Artikel beschreibt die Entwicklung eines Systems zur Diagnose von Asynchron-Elektromotoren in Java mit Schneller Fourier-Transformation und Clarke-Park-Transformation. Es werden Methoden der Signalverarbeitung, Leistungsoptimierung und Datenvisualisierung zur Erkennung von Gerätedefekten betrachtet.

Java in der Industrie: Motordiagnose durch Stromanalyse
Advertisement 728x90

Diagnose asynchroner Motoren mit Java, FFT und Park-Transformation

Dieses mit Java entwickelte System diagnostiziert asynchrone Elektromotoren, indem es den Stromverbrauch analysiert, um Defekte aufzuspüren. Die Anwendung integriert Signalverarbeitung, Fast Fourier Transformation (FFT) und Clarke-Park-Transformation und bietet Ingenieuren ein leistungsstarkes Werkzeug zur Überwachung des Gerätezustands.

Architektur und Signalverarbeitung

Auf JavaFX für Desktop-Workstations aufgebaut, war die größte Herausforderung die Verarbeitung von Stromsignalen mit 25,6 kHz Abtastrate. Die Rohdaten enthalten hochfrequente Störungen vom Frequenzumrichter, die eine Vorfilterung erfordern.

Wichtige Schritte der Signalverarbeitung:

Google AdInline article slot
  • Tiefpassfilterung: Butterworth-Digitalfilter mit 1 kHz Grenzfrequenz zur Rauschunterdrückung.
  • Hamming-Fensterung: Reduziert spektrale Leckage und verbessert Amplituden-Genauigkeit.
  • FFT-Implementierung: Berechnet Amplituden- und Phasenspektren zur Erkennung harmonischer Komponenten.

Beispielcode für Filterung und Fensterung:

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

Datenvisualisierung und Analyse

Die Benutzeroberfläche zeigt verschiedene Diagrammtypen für umfassende Diagnosen:

  • Strom-Oszilloskop: Zeitbereichs-Wellenformanalyse mit Zoom.
  • Park-Vektordiagramm: Strombahn in d-q-Koordinaten nach Clarke-Park-Transformation.
  • FFT-Spekrogramm: Erkennt dominante Frequenzen und Harmonische als Fehler-Indikatoren.

Stapelverarbeitung von bis zu 40 CSV-Dateien erleichtert Vergleiche. Einheitliche Filtereinstellungen gelten für alle Datensätze, um Veränderungen im Motorzustand zu verfolgen.

Google AdInline article slot

Leistungsoptimierung

Geschwindigkeit entsteht durch optimiertes I/O und Multithreading:

  • 70 MB CSV-Dateien werden in unter 2 Sekunden auf einem Intel Core i5 mit 16 GB RAM verarbeitet.
  • Diagramme aktualisieren sich in <100 ms durch Trennung von Rechen- und Render-Threads.
  • BufferedReader minimiert Speicherbedarf.

Die JDSP-Bibliothek (Java Digital Signal Processing) lieferte fertige Filter und Fensterfunktionen und beschleunigte die Prototypenentwicklung.

Benutzeroberfläche und Funktionen

Interaktive Elemente ermöglichen tiefe Analysen:

Google AdInline article slot
  • Diagramm-Tooltips: Hover für Punktwerte.
  • Anzeigeoptionen: Einheiten (relativ oder dB), Frequenzbereich, Signaltyp.
  • Themen: Hell- und Dunkelmodus.
  • Steuerungen: Farbcodierte Datensätze, Zoom-Regler, Datei-Buttons.

Beispiel für Tooltip-Setup bei 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);
}

Wichtige Erkenntnisse

  • FFT und Park-Transformation erkennen Motorschäden über Stromharmonische.
  • Optimierte Verarbeitung meistert 70 MB-Dateien in 2 Sekunden.
  • Multithreading hält die UI in <100 ms reaktionsschnell.
  • JDSP vereinfacht DSP in Java.
  • Stapelmodus vergleicht bis zu 40 Datensätze nahtlos.

— Editorial Team

Advertisement 728x90

Weiterlesen