|
|
Aktueller Wert eines Timeseries-Objekts für Variant-Control |
|
raylix |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 12.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2016, 13:54
Titel: Aktueller Wert eines Timeseries-Objekts für Variant-Control
|
|
|
|
|
Hallo geübte MatLab-Anwender,
wie kann ich in einem Simulink-Modell auf den aktuellen Wert eines Timeseries-Objekts zugreifen?
Ich habe aus dem Workspace eine 2D-Matrix mit Werten für die Zeit (1. Spalte) und die Spannung (2.Spalte) mit "From Workspace" eingelesen. Außerdem habe ich ein Variant-Subsystem, das abhängig vom jeweils aktuellen Spannungswert entweder das eine oder das andere Subsystem ausführen soll. Dazu muss ich in der Variant-Control eine Bedingung eingeben, also etwas wie
Spannung >= 50 und Spannung < 50.
Dies gibt leider einen Fehler, weil das anscheinend kein einzelner logischer Wert ist. Wie kann ich auf den aktuellen Wert der Spannung zugreifen, also so etwas wie
Spannung (aktueller_Wert) >= 50?
Anmerkungen:
So etwas wie Spannung (100, 2) >= 50 läuft bzw. gibt zumindest keinen Fehler. Dabei greife ich natürlich auf die 2D-Matrix im Workspace zu, das wäre mir noch egal. Aber ich will ja im ersten Simulationsschritt den ersten Spannungswert, im zweiten Simulationsschritt die zweiten Spannung beim 100. Schritt die 100. Spannung und so weiter.
Meine bisherigen Versuche mit "To Workspace" oder "Data Store Write" konnten leider keine einzelnen Werte isolieren.
|
|
|
|
|
raylix |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 12.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.07.2016, 15:21
Titel:
|
|
Statusbericht und eigene, vermutlich abschließende Antwort:
Ich habe jetzt sehr viel mit Zählvariablen ausprobiert, alles Erfolglos. Anscheinend verstößt es gegen das Konzept von Simulink, während einer laufenden Simulation Informationen & Werte des aktuellen Steps an den Matlab-Workspace weiterzugeben. Alles (Scopes, To File, To Workspace etc.) wird erst nach Simulationsende gefüllt/geschrieben. Da merkt man eindeutig, dass Matlab/Simulink keine Programmiersprache bzw. Entwicklungsumgebung ist .
Ein Ausweichen vom "Variant Subsystem" auf "Enabled Subsystem" hat gezeigt, dass mein eigentliches Ziel (von dem in der Frage von gestern absichtlich nichts stand) sowieso auf diese Weise nicht zu lösen ist.
Ich werde jetzt versuchen das "Programm" in MatLab zu schreiben und das Simulink-Modell mit "sim" mehrfach mit jeweils passenden Parametern aufzurufen. Mal sehen, wie ich dann die Ergebnisse der Einzelaufrufe zusammenfügen kann.
|
|
|
|
|
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 - 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.
|
|