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:
- 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.
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:
- 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
Zatím žádné komentáře.