FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Assistance FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Assistance FlexPro
FR
DE
EN
Porte-plaquette

Documentation FlexPro 2025

RevolutionSyncSampling

Transforme un signal échantillonné dans le temps en domaine de révolution, c'est-à-dire que le signal temporel est transformé en une plage de vitesse de rotation échantillonnée de façon équidistante par rééchantillonnage. Méthode efficace pour effectuer une analyse d'ordre, car le spectre de fréquence du signal converti dans le domaine de rotation fournit directement le spectre d'ordre. De même, le filtrage passe-bande ordinaire dans le domaine de révolution peut être utilisé pour calculer directement les courbes d'ordre (temporelles).

Syntaxe

RevolutionSyncSampling(Signal, le Speed, le [ SamplesPerRevolution Variable 0 ], le [ SamplesPerRevolutionLimit Variable 256 ], le [ ResampleMethod Variable REVSYNCSAMPLING_RESAMPLE_LINEAR ], le [ ResampleFactor Variable 2 ] [ , le OutputOptions Variable REVSYNCSAMPLING_OUTPUT_SIGNAL ])

 

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

Section

Description

Signal

Le signal échantillonné en fonction du temps, qui doit être transformé dans la plage de rotation équidistante. 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é.

Speed

Le signal de vitesse échantillonné en fonction du temps, à partir duquel la plage de rotation est déduite. 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 correspond à celle de l'image. S'il s'agit d'une valeur unique, on suppose que le signal à transformer a été enregistré à vitesse constante.

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é.

SamplesPerRevolution

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 faut fixer une valeur telle qu'au-delà de la moitié de cette valeur, tous les autres ordres sont négligeables. Sinon, il y a aliasing (selon le théorème d'échantillonnage). La valeur par défaut 0 choisit une valeur automatique, de sorte que l'ordre théoriquement le plus grand apparaissant dans le signal peut encore être calculé au moyen d'une analyse de Fourier dans le spectre d'ordre. Pour limiter la taille de l'ensemble de données qui en résulte, la valeur calculée automatiquement est limitée par SamplesPerRevolutionLimit.

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 à 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 0 .

SamplesPerRevolutionLimit

Limite supérieure pour le calcul automatique de SamplesPerRevolution. Il faut fixer une valeur telle qu'au-delà de la moitié de cette valeur, tous les autres ordres sont négligeables. Sinon, il y a aliasing (selon le théorème d'échantillonnage). L'argument n'est pas pris en compte si SamplesPerRevolution n'est pas calculé automatiquement, c.-à-d. si pour SamplesPerRevolution une valeur supérieure à 0 a été choisie.

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 à 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 256 .

ResampleMethod

Spécifie la méthode de rééchantillonnage utilisée pour évaluer le signal temporel aux points temporels (non équidistants) des points d'échantillonnage de révolution équidistants avant la transformation dans le domaine de révolution.

L'argument ResampleMethod peut avoir les valeurs suivantes :

Constante

Signification

REVSYNCSAMPLING_RESAMPLE_LINEAR

Le signal temporel est évalué aux points temporels (non équidistants) des points d'échantillonnage de révolution équidistants au moyen d'une interpolation linéaire avant d'être transformé dans le domaine de révolution. Cela rend la transformation rapide, mais peut provoquer un aliasing dans le calcul ultérieur du spectre d'ordre.

REVSYNCSAMPLING_RESAMPLE_SPLINE

Le signal temporel est évalué aux points temporels (non équidistants) des points d'échantillonnage de révolution équidistants au moyen d'une interpolation spline avant d'être transformé dans le domaine de révolution. Par rapport au rééchantillonnage linéaire, l'interpolation spline est légèrement plus lente, mais l'aliasing est réduit.

REVSYNCSAMPLING_RESAMPLE_FFT

Le signal temporel est évalué par rééchantillonnage FFT aux points temporels (non équidistants) des points d'échantillonnage de révolution équidistants avant d'être transformé dans le domaine de révolution. Ici, le signal temporel est d'abord transformé dans le domaine fréquentiel, où des zéros sont ajoutés, puis retransformé dans le domaine temporel. Le rééchantillonnage au moyen de la transformée de Fourier conduit à un résultat presque idéal, car il n'ajoute aucune composante de signal à haute fréquence. Les effets d'alias dans le calcul du spectre d'ordre sont presque absents, mais le temps de calcul augmente significativement.

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 REVSYNCSAMPLING_RESAMPLE_LINEAR .

ResampleFactor

Indique le facteur par lequel la fréquence d'échantillonnage du signal temporel doit être réduite pour les procédures de rééchantillonnage REVSYNCSAMPLING_RESAMPLE_SPLINE et REVSYNCSAMPLING_RESAMPLE_FFT est augmenté. L'argument n'est pas pris en compte si la méthode de rééchantillonnage est REVSYNCSAMPLING_RESAMPLE_LINEAR a été choisie.

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 2 .

OutputOptions

Spécifie les résultats à renvoyer. Les résultats multiples sont présentés sous forme de liste. Si, par exemple, le signal transformé dans la plage de rotation ainsi que les points temporels calculés pour les points d'appui de rotation doivent être édités, l'argument doit avoir la valeur REVSYNCSAMPLING_OUTPUT_SIGNAL + REVSYNCSAMPLING_OUTPUT_TIME contient.

L'argument OutputOptions peut avoir les valeurs suivantes :

Constante

Signification

+ REVSYNCSAMPLING_OUTPUT_ALL

Tous les résultats disponibles.

+ REVSYNCSAMPLING_OUTPUT_SIGNAL

Le signal transformé dans le domaine de révolution. Le résultat est un signal.

+ REVSYNCSAMPLING_OUTPUT_SPEED

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

+ REVSYNCSAMPLING_OUTPUT_TIME

Les points temporels (non équidistants) associés aux points d'échantillonnage de la révolution. Le résultat est un signal.

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

Remarques

L'algorithme du processus de transformation peut être décrit schématiquement comme suit :

Dans la littérature, le procédé est également appelé Synchronous Angular Sampling, Computed Order Tracking, Synchronous Sampling ou encore Adaptive Resampling, voir [1], [2], [3], [4], [5] et [6]. Il s'agit d'une méthode efficace pour effectuer une analyse d'ordre, car le spectre de fréquence (temporel) ordinaire du signal converti dans le domaine de rotation fournit désormais directement le spectre d'ordre :

De la même manière, le filtrage passe-bande ordinaire (par exemple en utilisant un filtre passe-bande IIR approprié) peut être utilisé pour déterminer directement la courbe des ordres individuels dans le domaine de révolution (la courbe RMS par blocs des ordres filtrés est présentée ici) :

Remarque : L'analyse de l'ordre au moyen du rééchantillonnage synchrone révolutionnaire est très flexible et peut également être effectuée pour des jeux de données de vitesse bruyants et non monotones.

Les résultats sont accessibles en utilisant les noms d'éléments de liste suivants :

Constante

Signification

.["Signal_over_Revolutions"]

Le signal 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 d'échantillonnage, tous les ordres jusqu'à orderMax = 0.5*SamplingRate(Signal)/Maximum(Speed) peuvent être détectés et analysés. Ainsi, si SamplesPerRevolution est calculée automatiquement, cette valeur est fixée à une valeur supérieure au double de orderMax est fixée. Cela garantit que tous les ordres jusqu'à orderMax peuvent être calculés dans le spectre d'ordre au moyen d'une analyse de Fourier et les effets d'alias peuvent ainsi être évités autant que possible.

Disponible dans

Option Analyse d'ordre

Exemples

RevolutionSyncSampling(Signal, Speed)

Transforme un signal basé sur le temps dans le domaine de révolution.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
STFTSpectrum(sigOverRev, SPECTRUM_RMSAMPLITUDE,,, 8*samplesPerRevolution,,, 0)
 

Calcule le spectre d'ordre du signal échantillonné en synchronisation avec la vitesse à l'aide du spectre temps-fréquence (STFTSpectrum-Fonction). Le spectre d'ordre est calculé jusqu'à l'ordre 32 (= samplesPerRevolution/2) et possède une résolution d'ordre de 1/8. Remarque : S'il y avait dans le signal d'origine des ordres significatifs en termes de valeur et supérieurs à 32, ceux-ci faussent le spectre d'ordre. Il en résulte des effets d'alias.

Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, 0, 256)
STFTSpectrum(sigOverRev, SPECTRUM_RMSAMPLITUDE,,, 16*SamplingRate(sigOverRev),,, 0)
 

Calcule le spectre d'ordre du signal échantillonné en synchronisation avec la vitesse avec une résolution d'ordre de 1/16. Le nombre de points de données par tour est calculé automatiquement (mais est limité à 256). L'ordre théoriquement le plus grand présent dans le signal peut donc encore être calculé lors de l'analyse de Fourier qui suit.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
Dim coeff = IIRPeakFilter(3, 0.5, samplesPerRevolution) // order = 3, bandwidth = 0.5
Dim filteredOrder = Filter(sigOverRev, coeff, TRUE)
Sample(filteredOrder, Signal.X)
 

Calcule l'évolution temporelle du troisième ordre (par ex. pour les analyses acoustiques). Le troisième ordre filtré est calculé à l'aide d'un filtre passe-bande IIR ordinaire dans la plage de rotation avec une fréquence centrale de bande de 3 et une largeur de bande d'ordre (symétrique) de 0,5. Elle est ensuite transformée pour revenir à la base de temps initiale.

Dim samplesPerRevolution = 64
Dim sigOverRev = RevolutionSyncSampling(Signal, Speed, samplesPerRevolution)
Dim coeff = IIRPeakFilter(3, 0.5, samplesPerRevolution) // order = 3, bandwidth = 0.5
Dim filteredOrder = Filter(sigOverRev, coeff, TRUE)
XOffsetScale(Mean(filteredOrder, MEAN_SQUARE + CALC_BLOCK, 128 * samplesPerRevolution)[0,-2], 128/2.)
 

Calcule la courbe RMS par bloc du troisième ordre du signal échantillonné en synchronisation avec la vitesse (taille du bloc = 128 tours). Le troisième ordre filtré est calculé à l'aide d'un filtre passe-bande IIR ordinaire dans la plage de rotation avec une fréquence centrale de bande de 3 et une largeur de bande d'ordre (symétrique) de 0,5.

RevolutionSyncSampling(Signal, Speed,,,,, REVSYNCSAMPLING_OUTPUT_SIGNAL + REVSYNCSAMPLING_OUTPUT_TIME)

Le signal transformé dans la plage de rotation ainsi que les instants correspondant aux rotations sont retournés.

Dim rev = ChangeUnit(Integral(Speed), "1") // Step 1
Dim rev_equid = (rev[-1]*128, 0, 1/128) // Step 2
Dim t_nonequid = Sample(rev.X, rev.Y, rev_equid, true)
Dim sig = Sample(Signal, t_nonequid, true) // Step 3
Signal(sig, rev_equid)
 

Code FPScript équivalent pour RevolutionSyncResampling(Signal, Speed, 128,,, REVSYNCSAMPLING_RESAMPLE_LINEAR).

Dim rev = ChangeUnit(Integral(Speed), "1") // Step 1
Dim rev_equid = (rev[-1]*128, 0, 1/128) // Step 2
Dim t_nonequid = Sample(rev.X, rev.Y, rev_equid, true)
Dim sig = Sample(Resample(Signal, 4, RESAMPLE_FFT), t_nonequid, true) // Step 3
Signal(sig, rev_equid)
 

Code FPScript équivalent pour RevolutionSyncResampling(Signal, Speed, 128,,, REVSYNCSAMPLING_RESAMPLE_FFT, 4).

Voir aussi

Fonction HarmonicRemovalFilter

Fonction Sample

Fonction Spline

Fonction Resample

Fonction STFTSpectrum

Fonction OrderCuts

Fonction IIRFilter

Fonction IIRPeakFilter

Fonction Integral

Option Analyse d'ordre

Objet d'analyse Échantillonnage Révolution Synchrone

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

Objet d'analyse Filtre d'ordres

Objet d'analyse Spectre temps-fréquence

Littérature

[1] K. R. Fyfe, E. D. S. Munck: Analysis of computed order tracking. Dans: Mechanical Systems and Signal Processing, Vol. 11, Issue 2, Pages 187-205. 1997.

[2] Jürgen Helmut Funck: Synchronous data acquisition with wireless sensor networks. Dans: Chichester, UK: John Wiley and Sons. 2011.

[3] Bonnardot, F. et al.: Use of the acceleration signal of a gearbox in order to perform angular resampling (with limited speed fluctuation). Dans: Mechanical Systems and Signal Processing, Vol. 19, Isuue 4, Pages 766–785. 2005.

[4] J. Blough: Adaptive Resampling - Transforming from the time to the Angle domain. Dans: 24th Conference and Exposition on Structural Dynamics, IMAC-XXIV. 2006.

[5] J. Blough: A survey of DSP methods for rotating machinery analysis, what is needed, what is available. Dans: Journal of Sound and Vibration, Vol. 262, Issue 3, Pages 707-720. 2003.

[6] A. Brandt: Noise and Vibration Analysis: Signal Analysis and Experimental Procedures. Dans: John Wiley and Sons, Ltd., Chichester. 2011.