LabVIEWForum.de
Sample, Samplerate, externer Trigger - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Sample, Samplerate, externer Trigger (/Thread-Sample-Samplerate-externer-Trigger)

Seiten: 1 2 3 4 5 6 7 8 9 10


Sample, Samplerate, externer Trigger - JohannesB - 01.06.2010 19:21

Verschoben heißt:

Ich hole mal aus: Motor dreht 6.000 1/min d.h. Unwuchtfrequenz bei 100 Hz zu suchen
Messe mit 25.600 Hz Abtastung genau 2^16 Samples und speichere diese als Datei - das ist dann mein Signal mit den Lagerschwingungsinformationen im Urszustand ohne manipulation und ohne FFT.
Dann nehme ich dieses Signal und mache eine Spektralanalyse und sehe die Unwucht bei 98 Hz statt 100 Hz, also ist diese um -2 Hz verschoben. Dies kann ich in a Teile dt umrechnen, da mein dt ja aus der Abtastung errechnenbar ist.
Jetzt kommet meine LabVIEW- unkenntniss ins spiel: Mein Signal, was als Datei vorliegt, ist ein 2D- Array, oder?!?
Von dem will ich die Y- Werte (Punkte) miteinander verbinden und die X- Werte mit a*dt addieren, dann die dazugehörigen Y- Werte einlesen. Denke dass läuft unter lineare Interpolation?!
Wenn ich meinen so geänderten 2D- Array wieder in meine Spektranalyse gebe, dann sollte die Unwucht bei 100 Hz liegen und damit liegen auch alle lagerspezifischen Frequenzen, da, wo sie rechnerrisch sein sollten.

Okay?

Habe jetzt schon etwas in LabVIEW geforscht, bin aber noch nicht sicher, ob ich einen 2D- Array nach meiner Datenaufzeichnung habe, denke aber schon ist ja "nur" Spannung pro dt...!?


Sample, Samplerate, externer Trigger - dimitri84 - 01.06.2010 19:49

' schrieb:Dann nehme ich dieses Signal und mache eine Spektralanalyse und sehe die Unwucht bei 98 Hz statt 100 Hz, also ist diese um -2 Hz verschoben. Dies kann ich in a Teile dt umrechnen, da mein dt ja aus der Abtastung errechnenbar ist.
Nur Interesse halber: Wie berechnest du das a?

Zitat:Jetzt kommet meine LabVIEW- unkenntniss ins spiel: Mein Signal, was als Datei vorliegt, ist ein 2D- Array, oder?!?
Das musst du schon selbst wissen, in welchem Format dein Signal vorliegt. Zeig mal ein Bild vom "Speichern".

Zitat:Von dem will ich die Y- Werte (Punkte) miteinander verbinden und die X- Werte mit a*dt addieren, dann die dazugehörigen Y- Werte einlesen. Denke dass läuft unter lineare Interpolation?!
Ich verstehe jetzt was du vorhast :hopper:Die Antwort lautet: Nein, du brauchst nix interpolieren. Einfach nur ein neues dt angeben. Um von 98 Hz auf 100 Hz zu kommen muss das dt ein klitze kleines bisschen kleiner sein als vorher.
z.B. So:
[attachment=26840]

Zitat:Wenn ich meinen so geänderten 2D- Array wieder in meine Spektranalyse gebe, dann sollte die Unwucht bei 100 Hz liegen und damit liegen auch alle lagerspezifischen Frequenzen, da, wo sie rechnerrisch sein sollten.
Der Typ über dir in der Nahrungkette (wie du das so schön gesagt hast), wie begründet er diese Vorgehensweise? Welche Ursache hat diese "Verschiebung", dass es euch legitimiert am dt herumzupfuschen?

' schrieb:Untere Stufe der Nahrungspyramide und so weiter blabla...
Was haben Kohlenhydrate damit zu tun?! Nahrungspyramide.Wink


Sample, Samplerate, externer Trigger - Lucki - 01.06.2010 23:03

Habe bisher diesen Thread links liegen gelassen, aus Angst davor, es könnte Arbeit auf mich zukommen...
So langsam hat sich ja auch manches geklärt, vor allem auch das: Es ist ein großer Vorteil, wenn man die Samples Winkel-äquidistant triggert anstatt Zeit-äquidistant. Die Ergebnisse sind dann Drehzahl-unabhängig, auch gegenüber schwankenden Drehzahlen – sofern man sich nicht auf den Irrweg begibt, die Zeit nachträglich in die Berechnungen heineinzutragen

Man will ja in Wirklichkeit gar nicht diese zeitbezogenen Frequenzen wissen:

Zitat:Ich suche bei 3000 1/min:
- 20,7 Hz Käfigfrq
- 50 Hz Unwuncht
- 141 Hz Kugelumlauffrq
- 311 Hz Kugeldurchlauffrq Innen
- 439 Hz Kugeldurchlauffrq Außen
sondern eigentlich geht es darum, diese Frequenzen relativ als Vielfache der Drehfrequenz (also ohne physikalische Dimension) zu erkennen:

Käfigfrequenz: 0.414 faches
Unwucht: 1 faches
Kugelumlauffrq: 2.82 faches
Kugelumlauffreq innen: 6.22 faches
Kugelumlauffreq außen: 8.78 faches

Das geht einfach so, dass man in der Fourieranalyse einfach den Winkel dphi statt dt benutzt, und das Ganze so normiert, dass für die Drehfrequenz der Wert 1 herauskommt.

Windowing würde ich nicht machen, denn man hat ja hier das Glück, eine Samplezahl von genau N ganzen Undrehungen verwenden zu können. Bei 32 Umdrehungen erhält man z.B ein Frequenzraster (bezogen auf die Drehfrequenz) von 1/32 = 0.03. Damit läßt sich die tiefe Käfigfrequenz noch mit 0.03/0.4214 = 7% Ungenauigkeit darstellen.

Noch ein Wort zur Auwertung: Man darf sich die oben genanten Frequenzen nicht so vorstellen, das sie sinusförmig sind. Im Extremfall kann es sich fast um Nadelimpule handeln. Das heißt, es gibt nicht nur diese Frequenzen, sondern von diesen allen noch das 2,3,4,5..fache davon. Hinzu kommen jede Menge anderer Störgeräusche, so dass es praktisch sehr schwer ist, diese Periodizitäten im Spektrum überhaupt zu erkennen. Die Standardmethode, um solche Periodizitäten dennoch zu erkennen, ist die „Cepstrum“-Analyse. (Googeln). Das ist, grob gesagt, das Fourierspekrum eines Fourierspektrums. Beim Fourierspektrum geht es darum, Periodizitäten in einem Zeitverlauf zu erkennen. Mit dem Cepstrum werden Periodizitäten im Fourierspektrum entdeckt (Beispielweise ist die „Kugelumlauffreq“ 8,78 mit ihren Vielfachen eine solche Periodizität im Spektrum)


Sample, Samplerate, externer Trigger - JohannesB - 02.06.2010 06:39

' schrieb:Nur Interesse halber: Wie berechnest du das a?
Frequenz der Unwucht ermittel (aus FFT) - theoretische Unwucht ist bekannt. Bsp. gemessen 98 Hz, errechnet 100 Hz. dt ist bekannt: 25600^-1. dt * (98 Hz/100 Hz) = dtNEU. dtNEU/dt = a = 0,98 tata - war das schwer (Achtung, Selbstironie)...
' schrieb:Das musst du schon selbst wissen, in welchem Format dein Signal vorliegt. Zeig mal ein Bild vom "Speichern".
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=96660
' schrieb:Ich verstehe jetzt was du vorhast :hopper:Die Antwort lautet: Nein, du brauchst nix interpolieren. Einfach nur ein neues dt angeben. Um von 98 Hz auf 100 Hz zu kommen muss das dt ein klitze kleines bisschen kleiner sein als vorher.
z.B. So:
[attachment=55484Big Grint.png]
Danke fürs aufwecken!
' schrieb:Der Typ über dir in der Nahrungkette (wie du das so schön gesagt hast), wie begründet er diese Vorgehensweise? Welche Ursache hat diese "Verschiebung", dass es euch legitimiert am dt herumzupfuschen?
Die Idee ist es, den Drehgeber (sehr teuer, 20% des Motors) einzusparen und dennoch eine brauchbare Lagerzustandsanzeige hinzubekommen.
' schrieb:Was haben Kohlenhydrate damit zu tun?! Nahrungspyramide.Wink
Vergiß alles was Du über Luft & Liebe gehört hast, ohne Kohlenhydrate laufe ich nicht...

' schrieb:Habe bisher diesen Thread links liegen gelassen, aus Angst davor, es könnte Arbeit auf mich zukommen...
So langsam hat sich ja auch manches geklärt, vor allem auch das: Es ist ein großer Vorteil, wenn man die Samples Winkel-äquidistant triggert anstatt Zeit-äquidistant. Die Ergebnisse sind dann Drehzahl-unabhängig, auch gegenüber schwankenden Drehzahlen – sofern man sich nicht auf den Irrweg begibt, die Zeit nachträglich in die Berechnungen heineinzutragen
Jup, quasi die Zusammenfassung der mir gestellten Aufgabe ;-)
' schrieb:Bei 32 Umdrehungen erhält man z.B ein Frequenzraster (bezogen auf die Drehfrequenz) von 1/32 = 0.03. Damit läßt sich die tiefe Käfigfrequenz noch mit 0.03/0.4214 = 7% Ungenauigkeit darstellen.
Ich kann hier noch nicht ganz folgen. Wenn ich mit 6.000 1/min drehe, also 100 Hz, dann soll ich soviele Samples einstellen bei 25600 Hz Samplerate, dass ???
Worauf basiert Deine Ungenauigkeitsrechnung? Wäre gut zu wissen, wie ich bei welchen Parameter (Samplerate, Samples etc. einen Toleranzbereich nach links und rechts lege, was noch zu den berechneten Frq.s dazugehört oder nicht.
' schrieb:Noch ein Wort zur Auwertung: Man darf sich die oben genanten Frequenzen nicht so vorstellen, das sie sinusförmig sind. Im Extremfall kann es sich fast um Nadelimpule handeln. Das heißt, es gibt nicht nur diese Frequenzen, sondern von diesen allen noch das 2,3,4,5..fache davon. Hinzu kommen jede Menge anderer Störgeräusche, so dass es praktisch sehr schwer ist, diese Periodizitäten im Spektrum überhaupt zu erkennen. Die Standardmethode, um solche Periodizitäten dennoch zu erkennen, ist die „Cepstrum“-Analyse. (Googeln). Das ist, grob gesagt, das Fourierspekrum eines Fourierspektrums. Beim Fourierspektrum geht es darum, Periodizitäten in einem Zeitverlauf zu erkennen. Mit dem Cepstrum werden Periodizitäten im Fourierspektrum entdeckt (Beispielweise ist die „Kugelumlauffreq“ 8,78 mit ihren Vielfachen eine solche Periodizität im Spektrum)
Ja, das habe ich mir zu einfach gedacht.

Hoffe ich mache jetzt keine "Arbeit".

Danke an Alle!


Sample, Samplerate, externer Trigger - Y-P - 02.06.2010 06:53

Wer macht das schon.... Prost
Big Grin

Gruß Markus

' schrieb:ohne Kohlenhydrate laufe ich nicht...



Sample, Samplerate, externer Trigger - dimitri84 - 02.06.2010 07:29

' schrieb:So langsam hat sich ja auch manches geklärt, vor allem auch das: Es ist ein großer Vorteil, wenn man die Samples Winkel-äquidistant triggert anstatt Zeit-äquidistant.
Nagut. Aber dann auch mit allen von dir geannten Konsequenzen!

' schrieb:sofern man sich nicht auf den Irrweg begibt, die Zeit nachträglich in die Berechnungen heineinzutragen ...
Das geht einfach so, dass man in der Fourieranalyse einfach den Winkel dphi statt dt benutzt,...
Das habe ich auch versucht in jeden 3 Post hier zu verdeutlichen. Ohne Erfolg. Das steht immer noch beharrlich Hz an dem winkelsynchronen Spektrum.

Zitat:Man will ja in Wirklichkeit gar nicht diese zeitbezogenen Frequenzen wissen:
sondern eigentlich geht es darum, diese Frequenzen relativ als Vielfache der Drehfrequenz (also ohne physikalische Dimension) zu erkennen:

Käfigfrequenz: 0.414 faches
Unwucht: 1 faches
Kugelumlauffrq: 2.82 faches
Kugelumlauffreq innen: 6.22 faches
Kugelumlauffreq außen: 8.78 faches
Und es wird auch beharrlich nach Hz gesucht.

Und das Express VI für's Spektrum kann es ja auch nicht besser wissen, denn es bekommt ein ddt-Signal (mit konstanten dt) vom Assistenten.

Zitat:Windowing würde ich nicht machen, denn man hat ja hier das Glück, eine Samplezahl von genau N ganzen Undrehungen verwenden zu können.
Einverstanden. Du hast mich überstimmt. Aber 100% sicher können wir uns auch nicht sein, oder siehst du irgendwo ein Bild von der Konfiguration des Assistenten?

Zitat:Die Standardmethode, um solche Periodizitäten dennoch zu erkennen, ist die „Cepstrum“-Analyse. (Googeln). Das ist, grob gesagt, das Fourierspekrum eines Fourierspektrums. Beim Fourierspektrum geht es darum, Periodizitäten in einem Zeitverlauf zu erkennen. Mit dem Cepstrum werden Periodizitäten im Fourierspektrum entdeckt (Beispielweise ist die „Kugelumlauffreq“ 8,78 mit ihren Vielfachen eine solche Periodizität im Spektrum)
Da hab' ich auch was zum googln Top1


Sample, Samplerate, externer Trigger - JohannesB - 02.06.2010 07:58

' schrieb:Und das Express VI für's Spektrum kann es ja auch nicht besser wissen, denn es bekommt ein ddt-Signal (mit konstanten dt) vom Assistenten.
Einverstanden. Du hast mich überstimmt. Aber 100% sicher können wir uns auch nicht sein, oder siehst du irgendwo ein Bild von der Konfiguration des Assistenten?

Ergo, bei Fenster "Kein" Auswählen - was ich i.d.R. getan habe. Hatte ein paar Versuche mit Hanning- Fenster gemacht um Vergleichsdaten zu sammeln.
Eigentlich sollte ich bei der winkelsynchronen Messung auch ohne Mittelung auskommen, allerdings sind doch ein paar stochastische Signale da, die nach 5 Mittelungen verschwinden und die Lagerkenndaten besser rauskommen lassen.


Sample, Samplerate, externer Trigger - Lucki - 02.06.2010 08:04

' schrieb:Ich kann hier noch nicht ganz folgen. Wenn ich mit 6.000 1/min drehe, also 100 Hz, dann soll ich soviele Samples einstellen bei 25600 Hz Samplerate, dass ???
Worauf basiert Deine Ungenauigkeitsrechnung? Wäre gut zu wissen, wie ich bei welchen Parameter (Samplerate, Samples etc. einen Toleranzbereich nach links und rechts lege, was noch zu den berechneten Frq.s dazugehört oder nicht.

Also ich würde es so machen:
Vom Winkel her triggern ist besser als mit konstanter zeitlicher Rate. Im Fouriersprektrum als X-Achsenbezeichnung nicht "Hz", sondern "Vielfaches der Drehfrequenz" wählen.
Damit das funktioniert, muß dem Fourierspektrum vorgegaukelt werden, daß die Drehfrequenz genau 1 Hz ist. Dazu ist diese Normierung erforderlich: Die Samplezahl für eine Umdrehung muß die Dauer 1 haben. Wie haben 512 Samples pro Umdrehung, also ist dt = 1/512 als Eingangswert (für die Fourierberechnung) zu wählen (der Winkel spielt also überhaupt kein Rolle, nur die Anzahl Samples pro Umdrehung) . Die höchste darstellbare Frequenz ist nach Nyquist dann das 256fache der Drehfrequenz.
Und jetzt kommts: Eine anderer wichtiger Parameter des Frequenzspektrums ist die Dichte df des Frequenzrasters. Hier gilt die Beziehung: df = 1/T, wobei T die Gesamtdauer des Zeitverlaufes ist. Je länger (- hier: über je mehr Umdrehungen -) ich sample, desto feiner wird das Frequenzraster. Würde ich nur eine Umdrehung auswerten, dann ist mit T=1 df=1, d.h das Spekrum besteht aus den Frequenzlinien 1, 2, 3, ..256. Es ist unmöglich, in diesem Raster die langsame Käfigfrequenz von unter 1 wiederzugeben.
Werte ich hingegen 32 Umdrehungen aus, also 512*32 = 2^14 Samples, dann ist T=32 und df=1/32=0.03125. Innerhalb diese feinen Raster ist es gut möglich, auch die Käfigfrequenz darzustellen. Die von mir berechnete Ungenauigkeit dieser Frequenz ergibt sich einfach aus der Diskretheit dieses Rasters.
Sämtliche Vorgaben, die ich mache, also 512 Samples pro Umdrehung und 32 Drehungen auswerten, stammen von Dir selbst. Was ich nicht verstehe: Wieso wunderst Du dich jetzt plötzlich über so eine Vorgabe und verstehst das nicht mehr?
Übrigens: Die Entscheidung, über dem Winkel statt über der Zeit zu triggeren, und die Auswahl von 512 Sample pro Umdrehung und Auswertung von 32 Umdrehungen halte ich für eine kluge und weitsichtige Vorgabe, die man eigentlich nur machen kann, wenn man in der Theorie durchblickt. Gratulation an den, der diesen Vorschlag machte.


Sample, Samplerate, externer Trigger - JohannesB - 02.06.2010 08:40

' schrieb:Also ich würde es so machen:
Vom Winkel her triggern ist besser als mit konstanter zeitlicher Rate. Im Fouriersprektrum als X-Achsenbezeichnung nicht "Hz", sondern "Vielfaches der Drehfrequenz" wählen.

Ok, mir ist zwar klar, warum Hz da falsch ist, ich kann aber dennoch Hz nach meiner Berechung ablesen - Zufall? Deswegen habe ich es stehen lassen.

' schrieb:Damit das funktioniert, muß dem Fourierspektrum vorgegaukelt werden, daß die Drehfrequenz genau 1 Hz ist. Dazu ist diese Normierung erforderlich: Die Samplezahl für eine Umdrehung muß die Dauer 1 haben. Wie haben 512 Samples pro Umdrehung, also ist dt = 1/512 als Eingangswert (für die Fourierberechnung) zu wählen (der Winkel spielt also überhaupt kein Rolle, nur die Anzahl Samples pro Umdrehung) . Die höchste darstellbare Frequenz ist nach Nyquist dann das 256fache der Drehfrequenz.

Ok, im Anfangsbereich dieses Threads sind noch Fehler meiner Hardwarebeschaltung enthalten. Aktuell bkeomme ich 256 Impulse pro Umdrehung von meinem Drehgeber. (SinCos- Geber der mit vier Spuren auf den Interpolationsschaltkreis GC-AIP40 geht und mir den winkelsynchronen Takt mit 256 generiert).

' schrieb:Und jetzt kommts: Eine anderer wichtiger Parameter des Frequenzspektrums ist die Dichte df des Frequenzrasters. Hier gilt die Beziehung: df = 1/T, wobei T die Gesamtdauer des Zeitverlaufes ist. Je länger (- hier: über je mehr Umdrehungen -) ich sample, desto feiner wird das Frequenzraster. Würde ich nur eine Umdrehung auswerten, dann ist mit T=1 df=1, d.h das Spekrum besteht aus den Frequenzlinien 1, 2, 3, ..256. Es ist unmöglich, in diesem Raster die langsame Käfigfrequenz von unter 1 wiederzugeben.
Werte ich hingegen 32 Umdrehungen aus, also 512*32 = 2^14 Samples, dann ist T=32 und df=1/32=0.03125. Innerhalb diese feinen Raster ist es gut möglich, auch die Käfigfrequenz darzustellen. Die von mir berechnete Ungenauigkeit dieser Frequenz ergibt sich einfach aus der Diskretheit dieses Rasters.

Also 64 Umdrehungen bei 256*64 = 2^14...
Wenn ich aber 2^16 Samples möchte, wegen der Auflösung <0,5 Hz der FFT, bei 6.000 1/min also 100 Hz, dann muss ich 256 Umdrehungen aufnehmen. Also 2^16 bei Sampleanzahl eintragen und als Samplerate stelle ich die zu erwartende Frequenz, also 256*100 Hz ein - korrekt?
Dann habe ich ein df von 1/256=0,00390625. Entsprechend habe ich eine kleinere Ungenauigkeit von 0,927 %. Richtig?!

' schrieb:Sämtliche Vorgaben, die ich mache, also 512 Samples pro Umdrehung und 32 Drehungen auswerte
1000
n, stammen von Dir selbst. Was ich nicht verstehe: Wieso wunderst Du dich jetzt plötzlich über so eine Vorgabe und verstehst das nicht mehr?

Ja, wegen der Änderung dieser Daten im Laufe des Threads und der Trägheit meiner Hirnmasse kam ich da nicht sofort hinter.

' schrieb:Übrigens: Die Entscheidung, über dem Winkel statt über der Zeit zu triggeren, und die Auswahl von 512 Sample pro Umdrehung und Auswertung von 32 Umdrehungen halte ich für eine kluge und weitsichtige Vorgabe, die man eigentlich nur machen kann, wenn man in der Theorie durchblickt. Gratulation an den, der diesen Vorschlag machte.

Ja, gebe ich an den Ing. weiter, der mir beim Verständnis der FFT auf die Sprünge geholfen hat.


Sample, Samplerate, externer Trigger - jg - 02.06.2010 08:59

' schrieb:Habe bisher diesen Thread links liegen gelassen, aus Angst davor, es könnte Arbeit auf mich zukommen...
So langsam hat sich ja auch manches geklärt, vor allem auch das: Es ist ein großer Vorteil, wenn man die Samples Winkel-äquidistant triggert anstatt Zeit-äquidistant. Die Ergebnisse sind dann Drehzahl-unabhängig, auch gegenüber schwankenden Drehzahlen – sofern man sich nicht auf den Irrweg begibt, die Zeit nachträglich in die Berechnungen heineinzutragen
@Lucki: Danke für die ausführlichen Hinweise.
Ich hatte ja auch schon einmal darauf hingewiesen:
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=96172
aber deine Ausführungen sind natürlich wesentlich besser.

Gruß, Jens