# Diagnostic des moteurs asynchrones avec Java, FFT et transformée de Park
Ce système basé sur Java diagnostique les moteurs électriques asynchrones en analysant la consommation de courant pour détecter les défauts. L'application intègre le traitement du signal, la transformée de Fourier rapide (FFT) et la transformée de Clarke-Park, offrant aux ingénieurs un outil puissant pour surveiller l'état des équipements.
Architecture et traitement du signal
Développée avec JavaFX pour une station de travail de bureau, le défi principal consistait à gérer des signaux de courant échantillonnés à 25,6 kHz. Les données brutes incluent du bruit haute fréquence provenant du variateur de fréquence, nécessitant un filtrage en amont.
Étapes clés du traitement du signal :
- Filtrage passe-bas : Filtre numérique de Butterworth avec fréquence de coupure à 1 kHz pour éliminer le bruit.
- Fenêtrage de Hamming : Réduit les fuites spectrales et améliore la précision des amplitudes.
- Implémentation FFT : Calcule les spectres d'amplitude et de phase pour détecter les composantes harmoniques.
Exemple de code pour le filtrage et le fenêtrage :
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;
}
Visualisation et analyse des données
L'interface de l'application affiche plusieurs types de graphiques pour un diagnostic complet :
- Oscilloscope de courant : Analyse des formes d'onde en domaine temporel avec zoom.
- Diagramme vectoriel de Park : Trajectoire du courant dans les coordonnées d-q après transformée de Clarke-Park.
- Spectrogramme FFT : Identifie les fréquences dominantes et les harmoniques indiquant les pannes.
Le traitement par lots de jusqu'à 40 fichiers CSV facilite les comparaisons. Des paramètres de filtrage uniformes s'appliquent à l'ensemble des jeux de données pour suivre l'évolution de l'état du moteur.
Optimisation des performances
La rapidité provient d'une gestion optimisée des E/S et du multithreading :
- Fichiers CSV de 70 Mo traités en moins de 2 secondes sur un Intel Core i5 avec 16 Go de RAM.
- Mise à jour des graphiques en <100 ms grâce à la séparation des threads de calcul et de rendu.
- BufferedReader réduit la surcharge mémoire.
La bibliothèque JDSP (Java Digital Signal Processing) fournit des filtres et fonctions de fenêtrage prêts à l'emploi, accélérant le prototypage.
Interface utilisateur et fonctionnalités
Les éléments interactifs permettent des analyses approfondies :
- Info-bulles sur les graphiques : Survol pour afficher les valeurs des points.
- Options d'affichage : Unités (relatives ou dB), plage de fréquences, type de signal.
- Thèmes : Modes clair et sombre.
- Contrôles : Jeux de données codés par couleur, curseurs de zoom, boutons de fichiers.
Exemple de configuration d'info-bulle pour 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);
}
Points clés
- La FFT et la transformée de Park détectent les pannes des moteurs via les harmoniques de courant.
- Le traitement optimisé gère des fichiers de 70 Mo en 2 secondes.
- Le multithreading maintient l'interface réactive en moins de 100 ms.
- JDSP simplifie le traitement du signal en Java.
- Le mode batch compare jusqu'à 40 jeux de données sans effort.
— Editorial Team
Aucun commentaire pour le moment.