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 - Simulationsdauer bestimmen

 

Martinuk
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2012, 03:04     Titel: Simulink - Simulationsdauer bestimmen
  Antworten mit Zitat      
Hallo,

ich hätte eine Frage zu Simulink. Ich möchte gerne die tatsächliche Simulationsdauer bestimmen, aber der Reihe nach.

Ich habe ein Skript erstellt, über welches ein Simulink-File (*.mdl) geöffnet wird und anschließend sofort simuliert wird. Der Aufbau des Codes sieht wie folgt aus

Code:

% STEP 1 - Parametrierung
...
...
% STEP 2 - Simulink
ModelName = 'Dateiname'
open_system(ModelName)
set_param(ModelName, 'simulationcommand', 'start')

% STEP 3 - Post-Processing, Plot
figure(1)
...
...
 

Ich möchte nun gerne wie man sieht, das Simulink File ausführen und die tatsächliche Simulationsdauer bestimmen. Zum Bsp. ist die 'StartTime = 0' und die 'StopTime = 10'. Die Simulation an sich kann aber zum Bsp. 2h Stunden dauern. Ich möchte nun genau diese 2h Stunden messen/detektieren.
Außderdem möcht ich gerne, dass nachdem die Simulation fertig ist, dass das Skript (m-File) fortgesetzt wird und anschließend die Simulationsdaten entsprechend geplottet werden.

Hat dazu jemand eine Idee, wäre super.

Besten Dank.
Private Nachricht senden Benutzer-Profile anzeigen


Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2012, 05:49     Titel:
  Antworten mit Zitat      
Hallo,

hier eine mögliche Lösung

Code:

ModelName = 'MyFile';
set_param(ModelName, 'StopFcn', 'myStopFcn');
% set_param(ModelName, 'StopFcn', 'myStopFcn, 'StartTime', '0.0', 'StopTime', '10', 'SimulationCommand', 'start');
 


Nachdem im Simulink die Simulationszeit (StopTime) erreicht ist, wird das m-File "myStopFcn" (kann ein reguläres oder function m-File sein) ausgeführt.

Am Ende des Codes (also im Skript/m-File), kann diese Bedingung wieder entfernt werden, damit man praktisch wieder ein sauberes *.mdl File hat
Code:

set_param(ModelName, 'StopFcn', '');
 


Um dann letztlich auf die tatsächliche Simulationsdauer zukommen sind noch folgende Befehle hilfreich
Code:

tStart = tic
elapsedTime = toc(tStop)
bdIsLoaded(ModelName) % Alternativ: openModels = find_system('SearchDepth', 0)
get_param(ModelName,'SimulationStatus') % running, stopped, terminating
get_param(ModelName,'Shown') % load_system = 'off', open_system = 'on'
 


Von da an, führen dann viele Wege zum Ziel.

Viel Spaß, damit ...
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.