INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Shift register Initialisieren



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!

01.12.2010, 16:29
Beitrag #1

jak888 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 133
Registriert seit: Apr 2010

2010
2010
en

97447
Deutschland
Shift register Initialisieren
Hallo,

ich Werte gerade einen Beshcleunigungssensor aus. Da die Messwerte recht starken Schwankungen unterliegen bilde ich jeweils den Mittelwert der letzten zehn Werte. Das Ganze soll in folgendem VI realisiert werden.

   

Nun zum Problem. Damit ich wirklich den Mittelwert der letzten 10 Werte berechnen kann, kann ich die Shiftregister nicht initialisieren, da sonst bei jeden neuen Aufruf des VI Nullen übergeben werden würden.
Wenn ich jetzt das Programm mehrmals hintereinander starte, werden allerdings die Werte aus den vorhergehenden Programmdurchläufen übernommen.
Gibt es eine einfache Möglichkeit die Register bei erstmaligen Aufruf zu initialisieren? Ich habe mir überlegt das VI 10 Mal durchlaufen zu lassen uns jeweils nullen zu übergeben, aber das wär doch etwas kompliziert.

Wenn jemand eine einfacher Möglichkeit hat den Mittelwert zu bilden wäre ich daran interessiert.

"Good judgement comes from experience, experience comes from bad judgement."
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.12.2010, 16:51 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2010 16:53 von unicorn.)
Beitrag #2

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Shift register Initialisieren
Auf der Palette Synchronisation gibt es ein VI First Call?, das nur beim ersten Aufruf den Wert "True" liefert, das kann man bei der erstmaligen Initalisierung von Shift-Registern nutzen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 16:56
Beitrag #3

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Shift register Initialisieren
Auf der Palette Signalverarbeitung sollte es noch ein VI für einen gleitenden Mittelwert geben, ich finde es aber nicht auf die Schnelle.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 17:11 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2010 17:14 von oenk.)
Beitrag #4

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
Shift register Initialisieren
Zum "running average" gab es hier schon mal was.

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 18:50 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2010 10:53 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Shift register Initialisieren
Das schon erwähnte Initialisieren würde dann so aussehen (im Case fehlt unten ein Ausgang):

   

Hier werden alle Speicherstellen mit dem Wert des ersten Messwertes initialisiert. Das ist sicher besser als mit Null, aber ideal ist es auch nicht.
Wenn man Wert auf exakte Mitteswertbildung auch bei weniger als 10 Werte legt, dann muß der Aufwand etwas erhöht werden. Z.B. so:

   

Und die Mittelwertbildung mit FIR-Filter sähe für Deinen Fall so aus (Wobei bei der Initialisierung die internen Register mit Null belegt werden, so daß man erst 10 Werte nach der Initialisierung einen richtigen Mittelwert bekommt):
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 19:20
Beitrag #6

jak888 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 133
Registriert seit: Apr 2010

2010
2010
en

97447
Deutschland
Shift register Initialisieren
Danke für den Ganzen Input.

@ Lucki:

Die VIs sind wirklich gut. So leuchtet es ein. Was ich mich noch frage: im 2 Bild. der obere Teil. Ist der Wert den ich dort berechne nicht gleich "i"?

"Good judgement comes from experience, experience comes from bad judgement."
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.12.2010, 19:30 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2010 19:36 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Shift register Initialisieren
Probiers am besten mal selbst aus. Der Code muß natürlich in einer Haupschleife sein, oder man macht ein SubVI draus. Bei Aufruf als Main würde es sonst bei jedem Aufruf initialisiert.
Edit: Fehlerkorrektur im VI, die Shift-Reg dürfen natürlich nicht initialisiert werden. Der Fehler ist oben im Bild noch drin


Sonstige .vi  Mittelwert.vi (Größe: 10,51 KB / Downloads: 315)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2010, 10:17
Beitrag #8

BMTstudent Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Oct 2010

2011
2010
DE

98xxx
Deutschland
Shift register Initialisieren
@ jak888

Um auf den ersten Beitrag und damit auf das grundsätzliche Problem der 10 Schieberegister zurückzukommen, wieso versuchst du es nicht mal mit einem Daten-Queue??? (unter "Signalverarbeitung", "Punkt für Punkt", "Weitere Funktionen")

Das würde jeweils die letzten 10 (einstellbar) Messwerte aufnehmen, ohne dass du auch nur ein einziges Schieberegister brauchst. Und es ist initialisierbar. Vielleicht kommst du damit weiter, ohne mich jetzt genauer mit der Thematik befassen zu wollen.

Viele Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mit MyRio über I2C BMP280 Register auslesen Crash 0 1.624 16.06.2022 19:55
Letzter Beitrag: Crash
  Modbus Register ändern jan_1 2 3.771 15.01.2016 10:06
Letzter Beitrag: jan_1
  Variant Attribute initialisieren NoWay 6 6.178 27.10.2015 08:56
Letzter Beitrag: IchSelbst
  Arrays, Shift Register in einem Blockcode grba123 1 3.713 05.02.2015 09:23
Letzter Beitrag: GerdW
  Array initialisieren / erstellen SEVE_Labview 2 5.771 16.04.2014 14:46
Letzter Beitrag: SEVE_Labview
  Ring Elemente initialisieren Kash 7 6.103 05.07.2012 08:20
Letzter Beitrag: Y-P

Gehe zu: