Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich verwende LV 2011 und möchte die Mittelwert-Funktion verwenden. Da ich noch ein Anfänger bin, hoffe ich, dass ihr mir helfen könnt. Über eine globale Variable bekommen ich den Druckwert, der jedoch schwankt. Um einen stabileren Wert zu bekommen, soll der jede Sekunde 10 Werte davon mitteln. Das Ganze befindet sich schon in einer While-Schleife, die jede 100 ms einmal durchlaufen wird. Ich weiß nicht, wo ich da die Zeit oder die Anzahl der Messwerte eingeben kann..
Könnt ihr mir da helfen? Danke schonmal im Voraus.
Gruß,
Sasha
Anzeige
10.05.2015, 20:27 (Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2015 20:37 von Trinitatis.)
du könntest dir in einer Schleife ein Schieberegister bauen und darin ein 1D-Array aufbauen und dieses als FIFO organisieren, in dem immer 10 Werte vorgehalten werden, die du dann jeder Zeit zu einem MW zusammenführen könntest.
Da du aber gemäß deinem Profil auch über die LossyQueue verfügst, würde ich es darüber machen. Dort wird dann das FIFO-Verhalten von allein organisiert.
In jedem Fall solltest du folgenden Tip beherzigen:
Poste VIs statt Bilder - da hast am Ende DU mehr von.
Gruß, Marko
Edit:
Weil das dein 1. Beitrag war und ich sonst GNTM gucken müsste, gibts trotzdem mal eine VI-Illustration zu meinen Erläuterungen.
danke erstmal für deine schnelle Antwort. Ich poste das SubVI anbei. Da ich wirklich total am Anfang bin und nach dem Googlen der Begriffe FIFO und Lossyqueue immer noch nicht schlau wurde, frag ich gern weiter . Im Prinzip soll die Sicherheitsschleife gemittelte Druckwerte nehmen und dann eine Lampe an gehen, wenn der gemittelte Wert zu hoch ist. Ich hätte es auch über ein Schieberegister und einer For-Schleife gemacht und nach gefühlten 10 Beispiel - Mittelwert VI's. Und ich muss wohl die globale Variable in eine 1D Array schreiben. Aber leider weiß ich ab da an auch nicht wie es weiter geht.
die Funktion Pt By Pt - Mean erscheint mir verständlicher. Gibt es dabei was zu beachten (z.B. in eine extra Schleife einbinden) oder ist das dann damit getan, wenn ich meine globale Variable anschließe und sage Sample-Länge 10?
Da die Sicherheitsschleife in Form einer SubVI im HauptVI bereits in einer While-Schleife steckt, die alle 100 ms einmal durchlaufen wird, brauche ich keine Schleife mehr im SubVI selbst (Marko mir da eine hineingebastelt) oder habe ich da einen Denkfehler?
Wenn er jetzt alle 100 ms jeweils 10 Druckwerte erfasst und daraus den Mittelwert bildet, ist mein Ziel erreicht.
Zitat:Da die Sicherheitsschleife in Form einer SubVI im HauptVI bereits in einer While-Schleife steckt, die alle 100 ms einmal durchlaufen wird, brauche ich keine Schleife mehr im SubVI selbst
Das würde ich bejahen. Leider fehlt ein Bild oder ein VI, um das komplett beurteilen zu können…
Zitat:Wenn er jetzt alle 100 ms jeweils 10 Druckwerte erfasst und daraus den Mittelwert bildet, ist mein Ziel erreicht.
Laut deiner Beschreibung wird alle 100ms genau ein Druckwert erfasst und ein Mittelwert berechnet.
Nach 1 Sekunde (bzw. 10 Durchläufen) hast du den Mittelwert über die letze Sekunde…
klingt schon so, wie ich es haben wollte. Jetzt ist halt die Frage was der z.B. nach dem 3. Durchlauf (300 ms) macht, mittelt der dann die bisherigen Werte, obwohl ich ja Sample-Länge 10 angegeben habe? Schlimmstenfalls gäbe er beim ersten Durchlauf eine 0 bis zum 10. Durchlauf weiter.