LabVIEWForum.de
Statistik an kontinuierlich erfassten Messwerten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Statistik an kontinuierlich erfassten Messwerten (/Thread-Statistik-an-kontinuierlich-erfassten-Messwerten)



Statistik an kontinuierlich erfassten Messwerten - niro99 - 29.04.2006 15:58

Guten Tag


Ich bin daran, eine Steuerung einer Automationsanlage in LV zu programmieren. Allerdings bin ich darin nicht ausserordentlich erfahren.

Die Steurerung erfasst erfolgreich Messwerte (genauer Ströme), welche mit einer Zykluszeit von 10 ms abgefragt werden. Diese Daten lassen sich erfolgreich einlesen und im Diagramm darstellen. Leider ist das Signal stark schwingend und stochastisch überlagert. Daher möchte ich gerne die letzten ca. 100 Werte in einen "Puffer" laden, und dann daraus in jedem Zyklus den Mittelwert berechnen. So hätte ich ein Signal, das man vernünftig weiterverarbeiten kann.

Bei der Realisation habe ich diverse Probleme:
- Gibt es eine "intelligente" Lösung für dieses Standartproblem? Ich habe bisher nichts gefunden...
- Wie kann man Daten puffern (d.h. in einem Puffer KONSTANTER Grösse)?
- Wie berechnent man Mittelwerte? Selbstverständlich habe ich die von NI angebotenen Funktionsblöcke gesehen und geprüft. Ich bringe sie jedoch nur soweit, das Sie den letzten Wert berechnen (ein Mittelwert von nur einem Messwert ist aber sinnlos)


Ich danke vielmals für jede Idee und Hilfe

Jonas Schmied


Statistik an kontinuierlich erfassten Messwerten - Lucki - 29.04.2006 21:29

Das Problem ist so einfach zu lösen, daß die Bezeichnung "Sigalprocessing" dafür viel zu hochtrabend ist.

Die erfassten Messwerte werden immer gepuffert, sofern Du nicht ausdrücklich etwas anderes anweist. Du brauchst also um dein problem zu lösen keinen weiteren Buffer zu erstellen.

Siehe das Bild. Es wird kontinuierlich mit einer Rate von 100/s abgetastet, die Puffergöße ist 1000 (=Standard ).
Das DAQmx Read liest jeweils 100 Werte aus dem Buffer aus, wobei es da zwei Möglichkeiten gibt: Entweder im Buffer sind schon mindestens 100 Messwerte. Dann werden 100 Werte augenblicklich ausgelesen. Oder es sind weniger als 100 Messwerte im Buffer, dann wird gewartet, bis es 100 Werte sind.

Genau so einfach ist dann die Mittelwertbildung. Entweder eine fertige Funktion verwenden (Mathematik/Statistik) oder handgestrickt. Beide Möglichkeiten sind im Bild dargestellt.

Die Schleife wird hier jede Sekunde ein Mal durchlaufen. Bei der Signalverabeitung gibt es nicht viel zu rechnen, in dieser Zeit ist höchstens ein neuer Messwert hinzugekommen. Der Programmablauf besteht hier also im Wesentlichen aus warten, bis die restlichen 99 Werte im Buffer sind.