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

Simulink Antwort in Variable speichern

 

laminor
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2014, 21:50     Titel: Simulink Antwort in Variable speichern
  Antworten mit Zitat      
Hallo, habe überall gesucht war leider nicht fündig. Mein m file ist so programmiert
Code:

[tvec xvec]=sim('modulname', 100)

was tvec an sich hat, habe ich mittlerweile kapiert, er übergibt den Wert 100 als Zeitvorgabe an Simulink. Doch xvec soll normalerweise die Antwort von Simulink als Zahlensequenz erhalten.. doch das tut er nicht.. ich vermute mal, ich soll in Simulink die Ausgangsvariable definieren, die dann als Antwort in Matlab übergeben wird, doch ich weiß nicht wie das geht..
könnte mir da jemand einen Tipp geben?
vielen dank im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen


Coja
Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 20.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2014, 04:24     Titel:
  Antworten mit Zitat      
Hallo,

sieh die mal den Library Brouser in Simulink an. Unter "Sinks" findest du zum Beispiel "To Workspace". Damit kannst du dir z.B. eine Variable in den Matlab Workspace schreiben lassen.

xvec würde dir die Zustände ausgeben, aber die Variante mit definierten Blöcken im Modell finde ich eleganter.

Viele Grüße
Coja
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 27.10.2014, 08:08     Titel:
  Antworten mit Zitat      
tvec ist ein Rückgabewert, keine Eingabewert. Die Zeitschritte werden in diesem Beispiel durch und im Modell festlegelegt.

Der Rückgabewert xvec wird nur gefüllt, wenn im Modell beschrieben ist, was eigentlich ein Ausgabewert sein soll. Industriemodelle haben ja durchaus 100.000+ Blöcke und Signale... Der "Out" Block kennzeichnet die Ausgabesignale.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
laminor
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2014, 09:07     Titel:
  Antworten mit Zitat      
Hallo,
vielen Dank für eure Antworten!
wollte zur Probe das System simulieren und den Ausgang in xvec Variable speichern. Ich muss das wirklich auf oben beschriebene Art und Weise tun (Vorgabe vom Prof) Als Antwort sollte ich 6 erhalten.



doch obwohl die tvec Variable was getan hat, blieb die xvec Variable leer.



soll ich da vielleicht etwas an Einstellungen des Out-Blocks ändern?
Gruß Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 28.10.2014, 10:43     Titel:
  Antworten mit Zitat      
Im Forum ist wahrscheinlich schon bekannt, dass ich Begründungen wie "Ich weiss nicht warum, mein Betreuer will das so" ablehne Very Happy

Es ist jetzt so, dass die Syntax mit mehreren Rückgabewerten veralten ist. In R2014b erhalten ich sogar eine Meldung, aber nur wenn ich einen anderen Syntax auch aktualisiere, das ist etwas ungünstig:

Code:

[tvec xvec]=sim('modulname', 100) % Gibt auch bei mir einen leeren xvec
[tvec xvec]=sim('modulname', 'StopTime', '100') % Empfohlene Syntax
Returning workspace outputs is supported with only single return argument
vecvec=sim('modulname', 'StopTime', '100')
Simulink.SimulationOutput:
    tout: [51x1 double]
    yout: [51x1 double]
 


Wobei tout und yout die Namen aus dem Menü Simulation -> Model Configuration Parameters -> Data Import/Export -> Save to workspace. Häkchen bei Time und Output.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
laminor
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2014, 11:27     Titel:
  Antworten mit Zitat      
Hallo Andreas, mit yout geht das endlich. was ich als Vorgabe von Prof gemeint habe, ist halt, dass ich Rückwerte über sim Funktion erhalten soll und nicht irgendwie über Block to Workspace oder so, von daher ist deine Lösung genau die richtige! Vielen Dank dafür, mein Problem ist soweit gelöst! Smile
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.