Zpět na domů

Diagnostika asynchronních motorů v Javě: FFT, transformace Parka

Článek popisuje vývoj systému diagnostiky asynchronních elektromotorů v Javě s použitím rychlé Fourierovy transformace a transformace Clarka-Parka. Jsou zváženy metody zpracování signálů, optimalizace výkonu a vizualizace dat pro detekci defektů zařízení.

Java v průmyslu: diagnostika motorů prostřednictvím analýzy proudu
Advertisement 728x90

Vývoj systému diagnostiky asynchronních motorů v Javě s využitím FFT a Parkovy transformace

Systém diagnostiky asynchronních elektromotorů, vyvinutý v Javě, využívá analýzu odebíraného proudu k odhalení vad. Aplikace integruje zpracování signálů, rychlou Fourierovu transformaci (FFT) a Clark-Parkovu transformaci, čímž poskytuje inženýrům nástroj pro monitorování stavu zařízení.

Architektura a zpracování signálů

Vývoj probíhal v JavaFX pro vytvoření desktopového automatizovaného pracoviště (APW). Klíčovým úkolem bylo zpracování signálů proudu, zaznamenaných s vzorkovací frekvencí 25,6 kHz. Vstupní data obsahují vysokofrekvenční šumy z frekvenčního měniče, což vyžaduje předfiltrování.

Hlavní kroky zpracování signálu:

Google AdInline article slot
  • Filtrace nízkých frekvencí: použití digitálního Butterworthova filtru s mezní frekvencí 1 kHz k odstranění rušení.
  • Vážení oknem Hamming: minimalizace spektrálního úniku a zvýšení přesnosti analýzy amplitud.
  • Implementace FFT: výpočet amplitudového a fázového spektra pro identifikaci harmonických složek.

Příklad kódu filtrace a vážení:

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

Vizualizace a analýza dat

Uživatelské rozhraní aplikace zobrazuje několik typů grafů pro komplexní diagnostiku:

  • Oscilogram proudu: analýza tvaru signálu v časové oblasti s možností přiblížení.
  • Vektorový diagram Parka: vizualizace trajektorie proudu v souřadnicích d-q po Clark-Parkově transformaci.
  • Spektrogram FFT: identifikace dominantních frekvencí a harmonických, které ukazují na vady.

Pro snadné srovnání je implementováno dávkové zpracování až 40 souborů CSV. Systém automaticky aplikuje jednotná nastavení filtrace na všechny datové sady, což umožňuje sledovat změny stavu motoru.

Google AdInline article slot

Optimalizace výkonu

Efektivita zpracování je dosažena díky optimalizaci vstupně-výstupních operací a vícevláknové architektury:

  • Zpracování CSV souboru o velikosti 70 MB trvá méně než 2 sekundy na konfiguraci s procesorem Intel Core i5 a 16 GB RAM.
  • Grafy se aktualizují se zpožděním menším než 100 ms díky oddělení výpočetních a vizualizačních vláken.
  • Použití BufferedReader pro čtení dat snížilo zátěž paměti.

Knihovna JDSP (Java Digital Signal Processing) poskytla připravené implementace digitálních filtrů a okenních funkcí, čímž urychlila vývoj prototypu.

Uživatelské rozhraní a funkčnost

Rozhraní zahrnuje interaktivní prvky pro detailní analýzu:

Google AdInline article slot
  • Nápovědy na grafech: zobrazení hodnot bodů při najetí kurzoru.
  • Nastavení zobrazení: výběr měrných jednotek (relativní jednotky nebo dB), rozsahu frekvencí, typu signálu.
  • Motivy vzhledu: světlé a tmavé motivy pro pohodlnou práci.
  • Legenda a ovládání: barevná diferenciace datových sad, posuvníky přiblížení, tlačítka pro správu souborů.

Příklad implementace nápověd pro 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);
}

Co je důležité

  • Použití FFT a Parkovy transformace umožňuje odhalit vady motoru podle harmonických proudu.
  • Optimalizace zpracování dat zajišťuje analýzu souborů o velikosti 70 MB za 2 sekundy.
  • Vícevláknová architektura garantuje odezvu rozhraní menší než 100 ms.
  • Knihovna JDSP zjednodušuje implementaci digitálního zpracování signálů v Javě.
  • Dávkové zpracování podporuje srovnání až 40 datových sad v jednotném rozhraní.

— Editorial Team

Advertisement 728x90

Číst dál