Verfasst am: 15.05.2009, 15:59
Titel: Plotten mit der Zeit
Hi
Besteht die Möglichkeit, dass ich einen Plot so einstellen kann, das die Zeit(x-achse) mitgeht, resp das er 1s lang plottet die Daten aufzeichnet, danach den plot wieder löscht. Die Zeitachse sollte dementsprechent angepasst werden. Mit hold off erreiche ich etwas in dieser Art, nur leider bezieht sich das auch auf die y-Achse.
Ich plotte von Simulink erzeugte Signale, die ich über eine S-Function an mein GUI(gui.m) übergebe.
Das Problem ist, das ganze wird recht langsam, da der Plot zurzeit alle Werte von Zeit 0 an im Plot darstellt(speichert). Deswegen dachte ich mir, auch sinnvollerweise, das ich nach einer Zeit x, die Daten nach hinten schiebe.
Hier mein Code, wie ich an die Daten komme und sie derzeit plotte:
Zurzeit bekomme ich mit deinem eingefügten code die Fehlermeldung:Invalid line property: 'YTick'. Den Zugriff von einem anderen m-file(resp S-function) auf ein gui hat sich bisslang als nicht sehr einfach erwiesen
Aber ich gehe mal davon aus, dass Du in Simulink kontinuierlich Daten erzeugst.
Die Daten zum Darstellen werden immer mehr; der Platz im Plotfenster nicht.
Jetzt hättest Du gerne, dass, wenn eine gewisse Anzahl von Messungen erreicht ist, der älteste Datensatz aus dem Plot rausfliegt und dafür der jüngste abgebildet wird?
Die Funktion mdlOutputs(t,x,u) wird von ?irgendwo? immer wieder (sagen wir mal jede Sekunde) gestartet?
Zusatzfrage: Sind die Y- Daten (Amplituden) normiert?
% --------------------
Eine for Schleife macht in der Funktion nur dann Sinn, wenn:
1. Deine Daten statisch sind; also keine mehr dazu kommen.
2. Du sozusagen einen kleinen Film ablaufen lassen möchtest ( die for Schleife rattert einfach von Anfangs- zu Endwert).
Die erste if- Schleife in meinem Code ist dazu da die Daten zu begrenzen: solange nicht mehr als 100 Datensätze da sind, nehme alle.
wenn mehr als 100 Datensätze verfügbar sind, nehme die letzten 100.
Und verzeihe!: ich habe da noch einen Fehler im vorletzten Code eingebaut.
korrekt ist:
Ok, Deinen letzten beitrag hab ich nicht mehr mitbekommen.
Also auch ein schönes Wochenende.
_________________
lg
Martin
Einstellungen und Berechtigungen
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
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.