LabVIEWForum.de - Mittelwert bilden

LabVIEWForum.de

Normale Version: Mittelwert bilden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Halli hallo liebe Leute,

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..
[attachment=53066]

Könnt ihr mir da helfen? Danke schonmal im Voraus.

Gruß,
Sasha
Hallo Sasha,

da hast du ja schon richtig was programmiertBig Grin

nun aber konstruktiver:

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.
Hallo Marko,

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 Big Grin . 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. Sad

[attachment=53068]

Gruß,
Sasha
Hallo Sasha,

Lösungsvorschlag: verwende die Funktion PtByPt-Mean - dann benötigst du kein (eigenes) Schieberegister mehr…

Zu deinem VI: RUBE-GOLDBERG-ALARM!
Was sollen diese ganzen Case-Strukturen, die TRUE und FALSE ausgeben - wenn am Selektor TRUE und FALSE anliegen!?
Hallo Sasha,

ich hab dir das VI mal umgebaut (und deine RubeGoldberg-Case-Strukturen entfernt).

Sieh´s dir mal an.


Gruß, Marko
Hallo Sasha,

und dann gibt es ja noch die Compound-Arithmetik:
[attachment=53070]
(Ich hoffe, ich habe die Multiplikationen/Divisionen fehlerfrei hinbekommen…)
(10.05.2015 21:34 )GerdW schrieb: [ -> ]Lösungsvorschlag: verwende die Funktion PtByPt-Mean - dann benötigst du kein (eigenes) Schieberegister mehr…

Hallo Gerd,

ich glaube, die PtByPt-Paletten sollte ich mir mal genauer ansehen Smile


Gruß, Marko
Guten Morgen Leute,

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. Big Grin

Gruß,
Sasha
Hallo Sasha,

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…
Hallo GerdW,

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.

Gruß,
Sasha
Seiten: 1 2
Referenz-URLs