Ordnungsanalyse
In dieser Beispielimplementierung des FB_CMA_OrderPowerSpectrum wird eine simulierte NC Achse sowie ein synthetisches Vibrationssignal genutzt, um die Parametrierung des OrderPowerSpectrum exemplarisch zu verdeutlichen sowie den Unterschied zum gewöhnlichen PowerSpectrum aufzuzeigen.
Die TwinCAT Solution nutzt eine 500 µs Zykluszeit für die NC. Es ist daher vorzugsweise als Zielsystem ein Beckhoff IPC oder embedded PC zu nutzen. Schalten Sie vorzugsweise, vor allem auf PCs dritter, Autostart Boot Project aus.
Der Code kann hier heruntergeladen werden: OrderPowerSpectrum.zip
Blockdiagramm
Programmparameter
Die Tabelle unten zeigt eine Liste mit den wichtigen Parametern für die Konfiguration des Ordnungsspektrums, vgl. GVL_constants.
Das künstliche Vibrationssignal wird erzeugt in der PLC Task (1 ms Zykluszeit) mit einem Oversampling-Faktor von 10. Dies entspricht einer Abtastrate von 10 kHz, vgl. cSampleRateVib
. Das Positionssignal wird aus der PLC Task heraus mit 1 ms von der NC über das Axis-Interface abgefragt. Dies entspricht einer Abtastrate von 1 kHz, vgl. cSampleRatePos
. Als maximale Drehgeschwindigkeit wird cMaxRPM
angesetzt.
Damit ergibt sich eine maximal auflösbare Ordnung 130,4.
Die Auflösung der Ordnungsachse wird über die FFT-Länge bestimmt, hier 2048, wodurch sich eine Auflösung von 0.1274 ergibt. Dieser Wert ist im Beispielprogramm im TwinCAT Scope auf dem Symbol aOrderSpecResult unter Scalefactor (i) zu finden, um die Darstellung des Arrays von Bins auf die Ordnung zu skalieren.
Die Fensterlänge des Vibrationssignal cWindowLength
beschreibt die Signallänge, welche zur Transformation in den Frequenzbereich genutzt wird. Sie ist zu 2000 Samples gewählt worden. Die FFT-Länge größer als die Fensterlänge und als power-of-2 zu wählen. Für die Transformation ist ein Hanning-Fenster mit standard overlap konfiguriert, sodass der Eingangspuffer als cWindowLength/2
, also 1000, definiert ist. Der Positions-Puffer beinhaltet, in der Zeit in der der Vibrations-Puffer 1000 Elemente aufweist, 100 Elemente.
| 10000 |
| 1000 |
| 2 * PI * 15 |
| 2048 |
| 2000 |
| 1000 |
| 100 |
| 2300 |
Konfiguration
Der Source Baustein wird nur dann aufgerufen, wenn die Geschwindigkeit der Welle zwischen einem minimalem und einem maximalen Wert liegt. Darunter und darüber wird die Analysekette zurückgesetzt und darauf gewartet, bis die Wellengeschwindigkeit wieder in einen gültigen Bereich rückt.
IF ABS(motorspeed) >= cMinRPM / 60 AND ABS(motorspeed) <= cMaxRPM / 60 THEN
Es wird ein synthetisches Signal erzeugt, welches an definierte Ordnungen eine definierte Amplitude aufweist. Die Ordnungen aus dem Array werden im Scope mit Markern zur Orientierung angezeigt.
Die virtuelle Achse verändert automatisch ihr Drehgeschwindigkeit, vgl. nmovestate
in der MAIN (PRG). Im TwinCAT Scope ist das Ergebnis der OrderPowerSpectrum sowie des gewöhnlichen PowerSpectrum übereinander aufgezeigt. Darunter ist zur Orientierung der zeitliche Verlauf der Drehgeschwindigkeit aufgetragen. Wie in untenstehender Grafik gezeigt, sind die synthetisch erzeugten Amplituden genau an den vorgesehenen Ordnungen (vgl. MAIN.Orders) im Ordnungsspektrum als scharfe Peaks zu sehen. Im PowerSpectrum sind die Amplituden je nach Drehzahl der Welle an einer anderen Frequenz und im Bereich sich verändernder Drehzahl auch nur als unscharfe Peaks zu erkennen.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4022.25 | PC or CX (x86, x64) | Tc3_CM, Tc3_CM_Base, Tc3_MultiArray |