WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Daten Puffer (Buffer) mit begrenzter Speicherdauer der Daten

 

sarah88
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2016, 14:51     Titel: Daten Puffer (Buffer) mit begrenzter Speicherdauer der Daten
  Antworten mit Zitat      
Hallo,

ich brauche euren Expertenrat! Es geht um die Datenverarbeitung/Speicherung.

Ich bekomme laufend Sensordaten mit mehreren Variablen gleichzeitig rein. Nehmen wir an es handelt sich um Fahrzeugdaten wie Gierrate, Geschwindigkeit, Lenkwinkel, Schräglaufwinkel etc. Dh. ich bekomme zu einem Zeitschritt auf mind. vier Kanälen gleichzeitig Daten rein.

So! Nun möchte ich diese Daten, welche mit einer Abtastfrequenz von angenommen 10Hz ankommen, für 3 Sekunden in einem Datenbuffer zwischenspeichern. Dh. ich will nur Daten behalten, welche nicht älter als 3 Sekunden sind. Kommen keine Daten rein, sind alle Variablen gleich null.

Da stellt sich die erste Frage, wie sollte ich überhaupt die Daten speichern? Klar, kommt drauf an! Man kann eben alles Gierraten zB. hintereinander in einem Array Speichern oder eben zeitschrittbasierte Datenpakete erstellen, dh. zu jedem Zeitschritt gibt es ein Datenpaket mit den vorhandenen Daten.

Ich habe hier im Forum folgendes gefunden: siehe Bild PUFFER.PNG

Hier der Code innerhalb des fcn-Blocks im Bild PUFFER.png:

Code:
function PUFFER_NEU = fcn(PUFFER_ALT,INPUT)
PUFFER_NEU=[INPUT;PUFFER_ALT(1:end-1)];


Initial condition des 1/z:

Code:
zeros(datenpuffer_n,1)
 


Die neueinkommenden Daten werden also an die alten rangehängt bzw. vor die alten gesetzt. Die Länge des Zero-Vektors bestimmt sich dabei aus der Abtastfrequenz und der gewünschten Dauer, also in meinem Fall ein Vektor mit 3sek*10/sek = 30 Elementen.

Ich frage euch nun, geht das so mit meinen Daten? Oder kann ich es effizienter machen? Sollte auch echtzeitfähig sein!

Meine Daten kommen ja jeweils seriell an (10, 15, 0, 10, 40, ...), sollte ich daher zu jedem Signal einen eigenen Puffer wählen? Ich denke, es könnten sonst ziemlich viele Daten gleichzeitig zu bearbeiten sein.

Sorry, ich bin absoluter Simulink-Anfänger, seid gnädig Wink
Danke vielmals, ich bin gespannt.

Eure Sarah!

puffer.PNG
 Beschreibung:

Download
 Dateiname:  puffer.PNG
 Dateigröße:  9.49 KB
 Heruntergeladen:  436 mal
Private Nachricht senden Benutzer-Profile anzeigen


SimulantX

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2016, 17:29     Titel:
  Antworten mit Zitat      
Der Tapped-Delay-Block sollte doch das machen, was Du möchtest?
 
SimulantX

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2016, 17:36     Titel:
  Antworten mit Zitat      
Entschuldigung, ich bin wohl im Thread verrutscht. Für Deinen Fall wäre vielleicht der Buffer-Block schon das richtige?
 
sarah88
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2016, 12:00     Titel:
  Antworten mit Zitat      
Ok den hatte ich auch noch im Blick.

1) Wie sieht das beim Bufferblock mit der Lebensdauer der zwischengespeicherten Daten aus (max 3 Sekunden bei 10 Hz)?

2) Ich habe mehrere Signale, welche schrittweise gleichzeitig eintreffen. Ich möchte diese Signale zusammenführen. Wie könnte das in Verbindung mit dem Buffer geschehen?

Veranschaulichung:

Signale:
Signal A: A1 A2 A3....
Signal B: B1 B2 B3...
Signal C: C1 C2 C3....

Ergebnis:
Paket 1: A1 B1 C1
Paket 2: A2 B2 C2
....

3) Desweiteren sollen verschiedene Abfragen innerhalb der Datenzusammenführung geschehen!
z.B. ist A3 == A1, dann soll die ganze Zeile von A1 B1 C1 mit A3 B3 C3 aktualisiert werden.

4) Wie könnte in Zusammenhang mit dieser Datenaquise eine Estimation auf Basis der vorhergehenden Daten für nachfolgende Daten geschehen (Stichwort Kalman)?
Private Nachricht senden Benutzer-Profile anzeigen
 
sarah88
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 17:18     Titel:
  Antworten mit Zitat      
habe es schon selbst gelöst und umgesetzt, DANKE!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.