|
|
Skalar aus Signal zum Workspace schreiben |
|
krische |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 29.01.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2009, 18:04
Titel: Skalar aus Signal zum Workspace schreiben
|
|
|
|
|
Hallo,
mein Problem scheint eigentlich trivial aber ich komm trotzdem auf keinen Ansatz.
Ich habe mir (wie auch immer) mehrere Signale erzeugt, die zusammen auf einem Kanal laufen. Der Verlauf dieser Signale ist ähnlich dem eines "Pulse Generators". D.h. sie verlaufen ein Großteil der Simulationszeit auf dem Wert 0 und steigen dann rasant auf bestimmte Werte (der Anstieg entspricht jedoch keinem Sprung), verharren kurzzeitig auf diesem Wert (bzw. ändern sich nur gering) und fallen dann wieder auf 0 zurück.
Nun brauche ich zur weiteren Simulation meines Problems eigentlich nur den Skalar des Wertes auf den die Signale springen.
Ein reines Schreiben mit "to workspace" kommt ja nicht in Frage, da hiermit die Werte a) nur nach der Simulation zur Verfügung stehen und b) jeden Schritt gespeichert würden.
Zusammenfassend stellt sich mir also die Frage: Wie kann ich den Wert auf den die Signale springen als Skalar speichern und sofort wieder nutzen?
Mein Simulink-Skill-Level ist übrigens Rookie
Danke schonmal für alle Posts.
Krische
|
|
|
|
|
krische |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 29.01.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2009, 22:32
Titel:
|
|
Könnte man vielleicht eine Art Wächter (in Form einer If-Schleife) implementieren, und dann die Abfrage nach steigenden Werten machen?
Also ist Wert_i < Wert_i+1, dann tue nichts.
Ist Wert_i >= Wert_i+1, dann .....
...ja dann müsste man den Wert irgendwie in nen Skalar schreiben und die Abfrage abbrechen.
Hach, ich bin am verzweifeln.
|
|
|
leonidas |
Forum-Fortgeschrittener
|
|
Beiträge: 52
|
|
|
|
Anmeldedatum: 22.12.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.01.2009, 14:15
Titel:
|
|
hm, weiß nicht ob das funktioniert, aber ein Versuch wärs vllt wert:
nimm einen Functionsblock und schreib da ein .m-File rein in dem immer der aktuelle Wert mit dem letzten verglichen wird, z.B. mit diff(). wenn das ergebnis von diff() das vorzeichen von minus nach Plus wechselt, ist der letzte Wert ein Maximum...
den letzten Wert erhält man dadurch, daß man bei jedem aufruf des .m-files den aktuellen Wert speichert (workspace, oder mat-file) und diesen beim nächsten Aufruf dann lädt...
viel Erfolg bei der Lösung!
mfg
leonidas
|
|
|
krische |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 29.01.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.02.2009, 09:57
Titel:
|
|
Ich habe jetzt eine Lösung mit dem Block "Sample and Hold" gefunden.
Danke für deine Hilfe
Krische
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|