Sauter la navigation

Documentation FlexPro 2025

HarmonicRemovalFilter

Supprime les composantes harmoniques des signaux temporels (suppression des harmoniques). Pour ce faire, les données sont converties du domaine temporel au domaine de révolution, où la moyenne et la soustraction des cycles permettent d'éliminer les harmoniques souhaitées.

Syntaxe

HarmonicRemovalFilter(Signal, le SpeedOrFundamentalFrequency, le [ OrderForHarmonicRemoval Variable 1 ], le [ NumberOfCyclesForAveraging Variable 15 ], le [ SamplesPerRevolution Variable 512 ] [ , le OutputOptions Variable HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN ])

 

La syntaxe de la fonction HarmonicRemovalFilter se compose des éléments suivants :

Section

Description

Signal

Le signal échantillonné en fonction du temps, duquel les composantes harmoniques (harmoniques) doivent être éliminées. L'unité du composant X doit être compatible avec l'unité Secondes (si la surveillance des unités est activée). Si aucune unité du composant X n'est indiquée ou si la surveillance des unités est désactivée, l'unité est toujours interprétée en secondes.

Les structures de données autorisées sont Signal. Tous les types de données réels sont autorisés, sauf Valeur booléenne, le Temps calendaire et Période de temps.

Les valeurs invalides ne sont pas autorisées dans cet argument.

Des restrictions supplémentaires s'appliquent à la composante X.Les valeurs doivent être monotonement croissantes. Les valeurs invalides ne sont pas autorisées dans cet argument.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

SpeedOrFundamentalFrequency

La composante rotative sur laquelle repose la suppression des harmoniques, sous la forme d'un signal de vitesse échantillonné en fonction du temps (à partir duquel la plage de rotation est déduite pour la suppression des harmoniques). Alternativement, la fréquence fondamentale fixe sous-jacente. L'unité du composant Y doit être compatible avec l'unité 1/min (ou RPM = tours par minute) (si la surveillance des unités est activée). Si aucune unité du composant Y n'est indiquée ou si la surveillance des unités est désactivée, l'unité est toujours interprétée comme 1/min. L'unité du composant X doit être compatible avec l'unité Secondes (si la surveillance des unités est activée). Si aucune unité du composant X n'est indiquée ou si la surveillance des unités est désactivée, l'unité est toujours interprétée en secondes. Le taux d'échantillonnage ne doit pas nécessairement correspondre au taux d'échantillonnage de Signal. S'il s'agit d'une valeur unique, on suppose que le signal à filtrer a été enregistré à cette vitesse constante ou que les composantes harmoniques doivent être extraites par rapport aux multiples de cette fréquence fondamentale fixe.

Les structures de données autorisées sont Scalaire et Signal. Tous les types de données réels sont autorisés, sauf Valeur booléenne, le Temps calendaire et Période de temps. L'argument est transformé dans l'unité min^-1.

Les valeurs invalides ne sont pas autorisées dans cet argument.

Des restrictions supplémentaires s'appliquent à la composante X.Les valeurs doivent être monotonement croissantes. Les valeurs invalides ne sont pas autorisées dans cet argument.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

OrderForHarmonicRemoval

Définit l'ordre (c.-à-d. les multiples de la vitesse de rotation ou les multiples de la fréquence fondamentale) qui doit être éliminé du signal temporel avec toutes les composantes harmoniques. Par exemple, choisir 4 signifie que les ordres 4, 8, 12, 16, 20, etc. seront supprimés.

Les structures de données autorisées sont Scalaire. Tous les types de données numériques sont autorisés.

La valeur doit être supérieure à 0.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 1 .

NumberOfCyclesForAveraging

Pour la suppression des harmoniques, le signal à filtrer est d'abord transformé dans la plage de rotation, où une moyenne et une soustraction de cycle glissantes sont effectuées. Cette valeur détermine le nombre de cycles à moyenner dans le domaine de la révolution pour calculer l'ordre harmonique moyenné respectif. Plus la valeur est grande, plus la sélectivité du filtre est grande.

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 2.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 15 .

SamplesPerRevolution

Pour la suppression des harmoniques, le signal à filtrer est d'abord transformé dans la plage de rotation. Cette valeur détermine l'échantillonnage du signal transformé dans la plage de rotation (nombre de points de données par rotation). La moitié de la valeur détermine l'ordre maximum qui peut même être calculé par l'analyse de Fourier selon le théorème d'échantillonnage. Il convient donc de définir une valeur telle qu'au-dessus de la moitié de la valeur, tous les autres ordres soient négligeables. Sinon, il y a aliasing (selon le théorème d'échantillonnage). Des valeurs plus petites, en revanche, réduisent le temps de calcul de l'algorithme. La valeur doit également être réglée de manière à ce que SamplesPerRevolution / OrderForHarmonicRemoval soit un nombre entier. Si cette dernière condition n'est pas remplie, des valeurs approximatives pour le nombre de points de données par tour et l'ordre à filtrer sont automatiquement calculées qui remplissent cette condition. La valeur approximative calculée par l'algorithme pour l'ordre à filtrer correspond alors à OrderForHarmonicRemoval à au moins 2 décimales près. La valeur approximative calculéepar l'algorithme pour le nombre de points de données par tour dans ce cas est limitée à la baisse par la valeur de SamplesPerRevolution.

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 1.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 512 .

OutputOptions

Spécifie les résultats à renvoyer. Les résultats multiples sont présentés sous forme de liste. Si, par exemple, le signal filtré dans la plage de rotation (sans harmoniques) ainsi que le signal temporel filtré retransformé dans la plage de temps doivent être émis, l'argument doit avoir la valeur HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_REVOLUTION_DOMAIN + HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN contient.

L'argument OutputOptions peut avoir les valeurs suivantes :

Constante

Signification

+ HARMONICREMOVALFILTER_OUTPUT_ALL

Tous les résultats disponibles (sous forme de liste).

+ HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN

Le signal filtré dans le domaine de révolution (sans harmoniques) est retransformé dans le domaine temporel d'origine. Le résultat est un signal.

+ HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_REVOLUTION_DOMAIN

Le signal filtré dans le domaine de la révolution (sans harmoniques). Le résultat est un signal.

+ HARMONICREMOVALFILTER_OUTPUT_ALL_SIGNALS_FROM_REVOLUTION_DOMAIN

Le signal filtré dans la plage de rotation (sans harmoniques), ainsi que le signal de vitesse transformé dans la plage de rotation et les points temporels (non équidistants) associés aux points d'appui de la rotation. Le résultat est une liste.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut HARMONICREMOVALFILTER_OUTPUT_SIGNAL_IN_TIME_DOMAIN .

Remarques

L'algorithme de la procédure de transformation peut être décrit schématiquement comme suit (par exemple, voir [1], [2], ou [3]) :

1) Transformation dans le domaine de rotation: tout d’abord, Signal est transformé du domaine temporel dans le domaine de rotation (de manière analogue au procédé de la fonction RevolutionSyncSampling, une transformation linéaire étant choisie ici). La plage de rotation est ici calculée notamment à partir de l'argument SpeedOrFundamentalFrequency. De plus, les arguments nécessaires à la fonction RevolutionSyncSampling concernant le nombre de points de données par rotation sont requis pour la transformation.

2) Moyenne cyclique: Dans la plage de rotation, une moyenne (glissante) est calculée sur un nombre de cycles défini par l'utilisateur. Tout ce qui tourne de manière synchrone avec l'onde est une harmonique qui est incluse dans ce cycle de valeurs moyennes. Les composants qui ne tournent pas de manière synchrone avec l'arbre de premier ordre sont éliminés. Le cycle moyen est donc constitué de données synchronisées et harmonisées avec le tachymètre sous-jacent (c'est-à-dire avec SpeedOrFundamentalFrequency). Par exemple, dans un moteur à quatre temps, il y a un événement de combustion pour deux tours de vilebrequin. Un cycle est donc constitué de 2 révolutions. Si l'on souhaite donc supprimer ici l'événement de combustion, y compris les composantes harmoniques, OrderForHarmonicRemoval doit être défini sur la valeur 0,5.

3) Soustraction de cycle: la moyenne (glissant) du cycle est ensuite soustraite de chaque cycle individuel afin d'effectuer la suppression d'harmoniques souhaitée. On obtient alors le signal filtré dans la plage de rotation (sans harmoniques de l'ordre filtré).

4) Transformation inverse dans le domaine temporel: enfin, le signal filtré dans le domaine fréquentiel est transformé à nouveau dans le domaine temporel.

A titre d'exemple, considérons le spectre d'ordre d'un signal temporel calculé à partir d'un run-up :

Par exemple, avec l'aide de la fonction HarmonicRemovalFilter, l'ordre 8,5 peut être supprimé avec tous les composants harmoniques :

Si le résultat est une liste, il est possible d'accéder aux résultats avec les noms d'éléments de liste suivants :

Constante

Signification

.["Signal_over_Time"]

Le signal filtré (sans harmoniques) retransformé dans le domaine temporel d'origine.

.["Signal_over_Revolutions"]

Le signal filtré (sans harmoniques) transformé dans le domaine de révolution.

.["Speed_over_Revolutions"]

Le signal de vitesse transformé dans le domaine de révolution.

.["Time_over_Revolutions"]

Les points temporels (non équidistants) associés aux points d'échantillonnage de la révolution.

Vous pouvez aussi toujours utiliser la syntaxe Formula.ListElementName.

Remarque        Selon le théorème de l'échantillonnage, théoriquement tous les ordres jusqu'à orderMax = 0.5* SamplingRate(Signal) / Maximum(Speed) peuvent être détectéset analysés. SamplesPerRevolution doit être fixée à une valeur supérieure au double de la valeur de orderMax.

Disponible dans

Option Analyse d'ordre

Exemples

HarmonicRemovalFilter(Signal, Speed, 8.5)

Supprime le 8,5e ordre (par rapport au signal de vitesse), y compris toutes les composantes harmoniques. Le résultat est le signal filtré dans le domaine temporel (sans les harmoniques correspondantes).

HarmonicRemovalFilter(Signal, 12 Hz, 1)

Supprime la fréquence fondamentale de 12 Hz et ses composantes harmoniques dans un signal. Le résultat est le signal filtré dans le domaine temporel.

Dim SyncSampling = RevolutionSyncSampling(Signal, Speed, 512,,,,REVSYNCSAMPLING_OUTPUT_ALL) // Step 1: transform to rev. domain
Dim n = 512/4
Dim cycles = Reshape(SyncSampling.["Signal_over_Revolutions"], {NumberOfRows(SyncSampling.["Signal_over_Revolutions"])/n, n})
Dim avgeragedCycles = Mean(cycles, MEAN_ARITHMETIC + PROCESS_ROWS + CALC_MOVING, 25) // Step 2: cycle averaging
Dim harmonicRemoval = Signal(Reshape(cycles - avgeragedCycles), SyncSampling.["Time_over_Revolutions"]) // Step 3: cycle substraction
RemoveVoidValues(Sample(harmonicRemoval, Signal.X)) // step 4: transform back to time domain
 

Code FPScript équivalent à HarmonicRemovalFilter(Signal, Speed, 4, 25, 512).

Voir aussi

Fonction RevolutionSyncSampling

Option Analyse d'ordre

Objet d'analyse Filtre harmoniques

Objet d'analyse Analyse d'ordre révolution synchrone

Objet d'analyse Échantillonnage Révolution Synchrone

Littérature

[1] B. Peeters, B. Cornelis, K. Janssens, H. Van der Auweraer: Removing disturbing harmonics in Operational Modal Analysis. Dans: Proceedings of the International Operational Modal Analysis Conference IOMAC, Copenhagen, Denmark. 2007.

[2] R.B. Randall: State of the art in monitoring rotating machinery. Dans: Proceedings of the International Seminar on Modal Analysis ISMA, Leuven, Belgium. 2002.

[3] E. Bechhoefer, M. Kingsley: A Review of Time Synchronous Average Algorithms. Dans: Proceedings of the Annual Conference of the Prognostics and Health Management Society, San Diego, USA. 2009.