Tuesday 17 January 2017

Labview Moving Average Vi

Berechnen des gleitenden Durchschnitts Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. Zunächst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann kontinuierlich den vorherigen Wert mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt nach jeder Schleife den neuen Wert. Dieses VI ist sehr effizient und schnell, weil es die replace-Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Lesezeichen amp ShareMean PtByPt. vi bedeutet nicht, ein Fenster von Daten zu einem Zeitpunkt zu sein Primäre Software: LabVIEW EntwicklungssystemeLabVIEW Professional Development System Primäre Software Version: 7.1 Primäre Software Fixed Version: NA Sekundäre Software: NA Problem: Ich versuche, durchschnittliche Teilmengen von 100 Punkte zu einem Zeitpunkt von einem kontinuierlichen ankommenden Signal. Das Problem besteht darin, dass der mittlere PtByPt. vi die ersten 100 Punkte (0hellip99) und dann die folgenden 100 Punkte (1. 100) die Wiederverwendung von 99 der gleichen Werte ergibt. Anstatt eine sich bewegende Fenster Durchschnitt, würde ich gerne die Block-Mittelung der Daten zu implementieren, das heißt, möchte ich brechen die Daten in Stücke und notieren Sie den Durchschnitt von jedem Stück von Daten. Lösung: Die Standardfunktionalität des Mean PtByPt. vi gibt nicht den Durchschnitt jedes Datenblocks an. Stattdessen wird, wie in der Problemanweisung beschrieben, für eine gegebene Fenstergröße n Mean PtByPt. vi die Punkte 0 bis n-1, dann die Punkte 1 bis n, dann die Punkte 2 bis n1, so und so weiter. Um eine Blockmittelung durchzuführen, müssen Sie einen Workaround-Code schreiben. Sie sollten eine Modulberechnung für die Iterationszählung der Schleife durchführen, um zu bestimmen, wann sie durchschnittlich ist und wann die Daten ohne Mittelwert weitergegeben werden sollen. Durch Berechnen der Iterationszählung i mod n, Wenn i0, ist das Ende des Fensters erreicht und der mittlere PtByPt. vis-Durchschnitt korrekt. Wir speichern diesen Wert dann in einem Array oder Indikator. Bei der nächsten Iteration ist der Modwert gleich 1, wodurch der Mean PtByPt. vi zurückgesetzt und für die nächste Teilmenge von n Punkten vorbereitet wird. Der Trick ist zu erkennen, dass die Mittelwerte, die durch die Blockmittelung erhalten werden, eine Untermenge des sich bewegenden Fenstermittelwerts sind, die von Mean PtByPt. VI durchgeführt wird. In einigen Fällen möchten Sie möglicherweise alle Daten auf der Vorderseite zu aktualisieren, während nur Protokollierung der Mittelwerte, wie in der Problem-Anweisung oben beschrieben. Sie können diese Funktion in ähnlicher Weise durchführen, nämlich durch Ausführen eines Modulusbetriebes bei der Iterationszählung und Auswählen eines Falles in einer darauf basierenden Fallstruktur. Weitere Informationen dazu finden Sie im Community-Beispiel unter Verwandte Links. Beispielcode, der dynamische Daten analysiert und konvertiert und die oben genannten Funktionen ausführt.


No comments:

Post a Comment