LabVIEWForum.de
Mittelwert die 100te - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Mittelwert die 100te (/Thread-Mittelwert-die-100te)

Seiten: 1 2


Mittelwert die 100te - Achim - 09.05.2007 12:29

Ja, da wird der Mittelwert aus n aufeinanderfolgenden Werten berechnet...wieso denn nicht?

Im Mittelwert-VI ist das Standard-VI von LV (Mean.vi) drin...


Ich hab jetzt mal ne Typumwandlung gemacht, siehe Bild...Wenn du in das VI "to dynamic data type" mal reinschaust, siehst du was da passiert. Um das VI zu öffnen, musst du einen rechtsklick darauf machen und "open FrontPanel" aktivieren...aber vorsicht, das ist irreversibel...wenn du's wieder benötigst, musst du es neu laden!

Gruss
Achim


[attachment=6531]


Mittelwert die 100te - LABSepp - 28.06.2007 15:15

Hallo,

bin auch mit dem Mitteln beschäftigt. Allerdings darf es bei mir kein Gleitender Wert sein.
Aus Datenmengegründe will ich n Werte puffern, diese gepufferten Werte mitteln und dann in eine Datei schreiben.
Wenn n =10 ist habe ich also 10 Mal weniger Werte als Vorher. Sonst würde meine Datei zu groß werden.

Habe ein Vi dazu gemacht das aber nen gleitenden Mittelwert macht.
Weiß einer Rat wie ich das hinbekomme, dass erst gemittelt und der gemittelte Wert ausgegeben wird wenn der Puffer mit n Zahlen gefüllt ist ?

Anbei Vi:

[attachment=7177]
erstellt mit LV Version 8.0


Danke für jede Hilfe und Anregung.


Mittelwert die 100te - dc6xs - 29.06.2007 09:04

' schrieb:Hallo,

bin auch mit dem Mitteln beschäftigt. Allerdings darf es bei mir kein Gleitender Wert sein.
Aus Datenmengegründe will ich n Werte puffern, diese gepufferten Werte mitteln und dann in eine Datei schreiben.
Wenn n =10 ist habe ich also 10 Mal weniger Werte als Vorher. Sonst würde meine Datei zu groß werden.

Habe ein Vi dazu gemacht das aber nen gleitenden Mittelwert macht.
Weiß einer Rat wie ich das hinbekomme, dass erst gemittelt und der gemittelte Wert ausgegeben wird wenn der Puffer mit n Zahlen gefüllt ist ?

Anbei Vi:

[attachment=33865:Tempmess...mitteln_.vi]
erstellt mit LV Version 8.0
Danke für jede Hilfe und Anregung.

Hmm Ich würd das ganze vermutlich mit ner State-maschine machen. halt erst 10 Werte "sammeln" dann berechen und ausgeben..

Wobei es vielleicht einfachher wäre, die Abtastrate der Datenerfassung zur vermindern.

Um welche Datenmengenen handelt es sich denn bei Deinem Aufbau? MB/GB?

Gruß, Rob

PS: Auch hier noch mal den Hinweis, ein Screenshot zu dem geposteten VIs ermöglicht auch Usern mit anderen LV-Versionen zusehen was wie programmiert wurde..


Mittelwert die 100te - LABSepp - 02.07.2007 12:53

Hi,
danke für den Hinweis.

Wegen der Datenmenge: Es werden schon recht große Datenmengen. Wie groß kann ich im Moment noch icht sagen da das endgültige Format noch nicht fest steht.
Die Datenaufzeichnung geht über Tage!
Und die Datei soll auch noch in Excel auswertbar sein.


[attachment=7224]


Mittelwert die 100te - Lucki - 02.07.2007 17:08

Wenn Du dich entschließen könntest, auf diese Express-VIs und Express-Signals zu verzichten und die normalen DAQmx-Werkzeuge zur Datenerfassung verwenden würdest, dann ist die Mittelwertbildung das Einfachste was man sich überhaupt vorstellen kann.
Du liest aus dem DAQmx die Werte 10stückweise aus dem Buffer (das VI wartet, bis die 10Werte im Buffer sind und synchronisiert damit die Schleife), und schließt hinten das VI "Mittelwert" an.
[attachment=7236]
Da die Datenerfassung bereits gepuffert erfolgt, ist es also - bei entsprechender Cleverness - nicht nötig, zum Zweck der Mittelwertbildung nochmal irgendwelche Extra- Zwischenspeicher, Schieberegister oder dergl. anzulegen.


Mittelwert die 100te - LABSepp - 03.07.2007 16:40

Danke für den Tip.
Kannte ich bisher noch nicht.

Wird der Puffer des DAQ automatisch alle zb: 10 Werte geleert nach dem diese dem Mittelwertbilder übergeben worden sind?
Und was für ein Eingangstyp hat DAQ?

Hofe ich mute euch nicht zu viel zu
Kurze Info über das Vi das ich machen will:

n Geräte( zB.:10 ) werden überwacht. Von jedem Gerät wird die Spannung gemessen. Außerdem wird die Temperatur gemessen, was abe nur für alle zusammen (Umgebungstemp) geschieht.
Als Datenerfassung dient ein Datenlogger.
Jedes Gerät hat einen Kanal zur Spannungsmessung. Die Temp wird nur an einem Kanal gemessen.
Die Spannung pro Gerät wird in einer For-Schleife gelesen die von einer While-Schleife (Hauptschleife) umgeben ist.
Nun soll ein Mal die Temp gemittelt werden und die Spannung der Geräte alle 10 Werte auch.
Der Temperaturmittelwert wird dann zusammen mit den Spannungsmittelwerten á Gerät mit "Format into String" in eine Datei geschrieben.

Den Mittelwert der Temperatur habe ich nun mit Case+Shiftregister und Abfrage ob die Anzahl schon erreicht ist, gelöst.
Das Shiftregister wird dann jedes mal gelöscht und von neuem gefüllt, gemittelt und wieder gelöscht usw.

Mit dem DAQ hätte ich auch gearbeitet, aber ich bin nicht hingekommen mit meinen double-Eingangsgrößen.

Mein nächstes, viel größeres Problem ist nun die Spannung á Gerät zu mitteln.
Mein Gedanke ist der die Spannungen zu einem 2-D Array zu fassen und dann spaltenweise wie in Excel zu mitteln.
Dabei ist jede Spalte mit den Werten eines Geräts gefüllt.
Leider weiß ich noch nicht wie ich das mache...
Am liebsten würde eine Lösung als eigens Vi machen und mehr Zeit haben. Morgen ist Termin. Oh je.
Wie siehst du es Lucki? Kann man da mit was anderem geschickt ran gehen?

Vielen Dank im Voraus.
Schönen Gruß
LABSepp


Mittelwert die 100te - Lucki - 03.07.2007 19:01

' schrieb:Danke für den Tip.
Kannte ich bisher noch nicht.
Wird der Puffer des DAQ automatisch alle zb: 10 Werte geleert nach dem diese dem Mittelwertbilder übergeben worden sind?
Natürlich, mit dem Lesen sind die Werte aus dem Buffer raus

Zitat:Und was für ein Eingangstyp hat DAQ?
Weiß nicht wie Du das meinst. Das Beispiel bezieht sich auf kontinuierliche Datenerfassung über 1 Kanal.
Wenn es mehre Kanäle sind, kommt aus dem DAQmx Lesen ein zweidimensionales Array heraus, jede Zeile ist ein Kanal. Wenn Du über alle Kanäle den Mitelwert bilden willst, dan mußt Du an das DAQmx Lesen das Mittelwert-VI so anschließen:

[attachment=7259]


Mittelwert die 100te - LABSepp - 04.07.2007 08:07

Hallo Lucki

Ich meine das aus meinem MessVi einzelne double-Werte rauskommen.
In der Reihenfolge Gerät 1 Gerät2 .... Gerät n . Gelesen bzw. ausgeben des Double Werts erfolgt in einer For-Schleife die n ( Anzahl Geräte) mal läuft während die Hauptschleife ein mal läuft.

Nun dachte ich mir die Werte unter einander zu schreiben in ein 2-D-Array, dieses an ein Mitelwert-Vi zu übergeben, damit es sauber getrennt ist. Nun steht jede Spalte für die Werte eines Gerätes. Jetzt spaltenweise mitteln, was ein 1-D-Array aus Mittelwerten ergibt. Dieses Array aus Mittelwerten will ich dann zusammen mit anderen Größen in eine Datei schreiben.
Mein Problem liegt dabei bei der Erstellung des Mittelwert-Arrays.

Danke

Gruß LABSepp


Mittelwert die 100te - Newbie - 23.08.2007 07:46

Guten Morgen!
Funktioniert das Vi auch wenn man mehrere Kanale gleichzeitig ausließt? Bei mir sind es bis zu vier Kanäle,d.h. zur Mittelwertsberechnung müssten ein 4*n - Messwerte großes Array aufgebaut werden, und irgendwie müsste über den Schleifenzähler in die richtige Spalte geschrieben werden.
Daher die Frage an die Experten: Eignet sich das VI:Gleitender Mittelwert dafür?
Gruß,Thiemo


Mittelwert die 100te - Achim - 23.08.2007 08:06

' schrieb:Daher die Frage an die Experten: Eignet sich das VI:Gleitender Mittelwert dafür?

Meinst du das VI von mir? Klar, sollte gehen...musst es halt in ne Schleife packen, an die du dein Messwertearray (2D) anschließt...

Aber immer dran denken: Mittelwerte bilden ist sich selber zu bescheißen...ausserdem sind Arrayoperationen ziemlich rechenintensiv...

Gruss
Achim