Volver al inicio

Diagnóstico de motores asíncronos en Java: FFT, Park transformation

El artículo describe el desarrollo de un sistema de diagnóstico de motores eléctricos asíncronos en Java utilizando transformada rápida de Fourier y transformación Clarke-Park. Se consideran métodos de procesamiento de señales, optimización de rendimiento y visualización de datos para detectar defectos en los equipos.

Java en la industria: diagnóstico de motores mediante análisis de corriente
Advertisement 728x90

# Diagnóstico de Motores Asíncronos con Java Usando FFT y Transformada de Park

Este sistema basado en Java diagnostica motores eléctricos asíncronos analizando la corriente consumida para detectar defectos. La aplicación integra procesamiento de señales, Transformada Rápida de Fourier (FFT) y transformada de Clarke-Park, ofreciendo a los ingenieros una herramienta potente para monitorear la salud del equipo.

Arquitectura y Procesamiento de Señales

Desarrollada con JavaFX para estaciones de trabajo de escritorio, el principal desafío fue manejar señales de corriente muestreadas a 25,6 kHz. Los datos crudos incluyen ruido de alta frecuencia del convertidor de frecuencia, lo que requiere filtrado previo.

Pasos clave del procesamiento de señales:

Google AdInline article slot
  • Filtrado pasa-bajos: Filtro digital Butterworth con corte a 1 kHz para eliminar ruido.
  • Ventaneo de Hamming: Reduce fugas espectrales y mejora la precisión de amplitud.
  • Implementación de FFT: Calcula espectros de amplitud y fase para detectar componentes armónicos.

Código de ejemplo para filtrado y ventaneo:

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

Visualización y Análisis de Datos

La interfaz de la app muestra varios tipos de gráficos para un diagnóstico completo:

  • Osciloscopio de corriente: Análisis de forma de onda en dominio del tiempo con zoom.
  • Diagrama de vector de Park: Trayectoria de corriente en coordenadas d-q tras transformada de Clarke-Park.
  • Espectrograma FFT: Identifica frecuencias dominantes y armónicos que indican fallos.

El procesamiento por lotes de hasta 40 archivos CSV facilita las comparaciones. Configuraciones de filtrado uniformes se aplican a todos los conjuntos de datos para rastrear cambios en el estado del motor.

Google AdInline article slot

Optimización de Rendimiento

La velocidad se logra con E/S optimizada y multihilo:

  • Archivos CSV de 70 MB se procesan en menos de 2 segundos en un Intel Core i5 con 16 GB de RAM.
  • Los gráficos se actualizan en <100 ms separando hilos de cómputo y renderizado.
  • BufferedReader reduce la sobrecarga de memoria.

La librería JDSP (Java Digital Signal Processing) proporcionó filtros y funciones de ventaneo listos para usar, acelerando el prototipado.

Interfaz de Usuario y Funcionalidades

Elementos interactivos permiten análisis profundos:

Google AdInline article slot
  • Tooltips en gráficos: Pasa el ratón para ver valores de puntos.
  • Opciones de visualización: Unidades (relativas o dB), rango de frecuencia, tipo de señal.
  • Temas: Modos claro y oscuro.
  • Controles: Conjuntos de datos con colores codificados, deslizadores de zoom, botones de archivos.

Configuración de ejemplo de tooltip para 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);
}

Lecciones Clave

  • La FFT y transformada de Park detectan fallos en motores mediante armónicos de corriente.
  • Procesamiento optimizado maneja archivos de 70 MB en 2 segundos.
  • Multihilo mantiene la interfaz responsiva en menos de 100 ms.
  • JDSP simplifica el procesamiento digital de señales en Java.
  • Modo por lotes compara hasta 40 conjuntos de datos sin problemas.

— Editorial Team

Advertisement 728x90

Leer después