LabVIEWForum.de - Effektivwert-Berechnung (RMS)

LabVIEWForum.de

Normale Version: Effektivwert-Berechnung (RMS)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

MichaDu

Hallo,

habe eine kleine Anwendung in LabVIEW 8.5 für das cRIO zur Berechnung des Effektivwertes (RMS) geschrieben, bei dem ich das DC/RMS Measurement VI genutzt habe. Dort muss man die "voraussichtliche" Samplingzeit bzw. Samplingrate bzw. Anzahl der Samples vorgeben (ist alles miteinander gekoppelt). Mein Problem ist, dass mein Ausgang am VI immer Null ist, egal was ich da einstelle. Habe auch verschiedene Datentypen und Hanning-Window-Zusatz ohne Erfolg ausprobiert. Kann mir da jemand helfen? Vielleicht ist das ja auch ein Bug...
Welches VI hast du da verwendet?

Bist du sicher, das vorne auch ein Signal reingeht?

MichaDu

' schrieb:Welches VI hast du da verwendet?

Bist du sicher, das vorne auch ein Signal reingeht?

Das Standard-VI aus dem FPGA-Modul. Das kann per Dialog konfiguriert werden. Anbei ein Bild davon.

Das AI-Signal ist ein reiner Sinus, das ich auch auf dem Oszi kontrolliert habe. Der RMS-Ausgang ist aber immer exakt 0, auch nicht ein bisschen Rauschen. Habe auch mal die Summenfunktion statt RMS mit einer Gleichspannung am Eingang ausprobiert, ist aber auch immer 0.
Ah..ok...mit dem cRIO hab ich noch nichts gemacht! Sorry...aber bei nem "reinen Sinus" ist der Mittelwert doch auch immer "0"....



EDIT: Post #2600

MichaDu

' schrieb:Ah..ok...mit dem cRIO hab ich noch nichts gemacht! Sorry...aber bei nem "reinen Sinus" ist der Mittelwert doch auch immer "0"....
EDIT: Post #2600

Der Mittelwert ja, aber nicht der Effektivwert ;-) Sollte bei einem reinen Sinus immer Amplitude/Wurzel(2) sein. Das ist der Wert, den du auch bei einem Multimeter messen würdest.

Das ganze habe ich ja auch außerdem mit ner Gleichspannung ausprobiert...
Hi,

wenn ich mir das so anschaue und mal meine Kenntnisse von RMS und so überdenke, fehlt in Deinem VI irgendeine zeitliche abhängige Größe, da der RMS über eine Perioden- oder Integrationsdauer definiert sein muss.
Sollte das irgendwie im internen VI anzugeben sein (sieht ja ein bisschen nach express aus...), hast du immer noch die Situation, dass du aus einem diskreten Wert einen RMS-Wert als Ausgang haben willst - das funktioniert auch nur mit einem internen Speicher oder einem anderen Datenformat...

Weiß nicht, wie das VI sonst aussieht, aber den Ausgang vom cRIO mit den Calibrationsfaktoren initialisiert hast du, oder? Das könnte ich mir noch vorstellen...

ch

MichaDu

' schrieb:Hi,

wenn ich mir das so anschaue und mal meine Kenntnisse von RMS und so überdenke, fehlt in Deinem VI irgendeine zeitliche abhängige Größe, da der RMS über eine Perioden- oder Integrationsdauer definiert sein muss.
Sollte das irgendwie im internen VI anzugeben sein (sieht ja ein bisschen nach express aus...), hast du immer noch die Situation, dass du aus einem diskreten Wert einen RMS-Wert als Ausgang haben willst - das funktioniert auch nur mit einem internen Speicher oder einem anderen Datenformat...

Weiß nicht, wie das VI sonst aussieht, aber den Ausgang vom cRIO mit den Calibrationsfaktoren initialisiert hast du, oder? Das könnte ich mir noch vorstellen...

ch

Stimmt, ist ein Express-VI. Die Konfiguration der Sampling-/Zeitdaten erfolgt über einen extra Dialog.

Habe den "Fehler" aber inzwischen gefunden. Der RMS-Wert steht nur für einen (!) Zyklus am Ausgang an, sobald die Anzahl der vorgegeben Samples erreicht ist (Ausgang valid=true). Ab dem nächsten Zyklus erfolgt dann die neue Datenaufnahme und der Ausgang geht wieder auf Null (Ausgang valid=false). Also keine gleitende Berechnung :-( Wenn man den Ausgang zyklisch mit 10ms anzeigt, sieht man logischerweise nur Nullen... Werde das VI jetzt so umbauen, dass immer der letzte (gültige) Wert angezeigt wird.

Danke euch trotzdem für die Bemühungen!
' schrieb:wenn ich mir das so anschaue und mal meine Kenntnisse von RMS und so überdenke, fehlt in Deinem VI irgendeine zeitliche abhängige Größe, da der RMS über eine Perioden- oder Integrationsdauer definiert sein muss.
Das was Du sagst, ist nur eine Methode, allerdings ist es die beste:
Die Frequenz ist genau bekannt, also z.B 50Hz, T=20ms, und integriert wird über ein Vielfaches von T. (Man kann die Integrationszeit z.B 100ms nehmen, das funktioniert dann sowohl mit 50Hz = 5 Perioden als auch mit 60 Hz = 6 Perioden)

Wenn aber Die Frequenz variabel ist, dann funktioniert das nicht, und trotzdem kann man dann noch den Effektivwert berechen. Es ist dann aber erforderlich, daß man a) möglichst viele Perioden nimmt, und b) daß die Funktion "gefenstert" Wird (z.B. mit Hanning-Fenster). Der Zweck dieser Übung ist, daß durch die zufälligen Phasenlagen am Anfang und Ende der Waveform ein zufälliger Fehler entsteht, wenn man die gesamte Waveform rechteckförmig gewichten würde. Durch die Fensterung wird der Mittelteil stärker gewichtet, und die Ränder praktisch überhaupt nicht mehr. Dadurch ist das Ergebnsi nicht mehr so stark von den zufälligen Phasenlagen an den Rändern abhängig. War das verständlich?
Referenz-URLs