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 innerhalb Matlabschleife starten

 

Bob123
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2014, 14:17     Titel: Simulink innerhalb Matlabschleife starten
  Antworten mit Zitat      
Hallo,

ich habe eine Problem und bekomme es trotz verschiedener Ansätze aus dem Forum nicht gelöst:

Ich habe eine Simulink-Modell, was mit fester Schrittweite simuliert und Zeitabhängig arbeitet.
Über Matlab starte ich ein normales m-file mit einer for-schleife. Innerhalb der Schleife möchte ich das Simulinkmodell aufrufen, Parameter übergeben 1ms rechen lassen, Ergebnisse auslesen und die Simulation anhalten. For-Schleife weiter laufen lassen und Ergebnisse weiter nutzen...
In den weiteren Schleifendurchläufen soll nun das das Simulink immer weiter fortgesetzt werden (nicht von vorne beginnen, sondern da wo es im Durchlauf davor angehalten hat)

Der Befehle:
Code:


kann Simulink starten, pausieren und fortsetzen, aber mir fehlt der Zeitbezug zu der 1ms.
Und jedes Ergebnis aus dem Simulinkmodell im Workspace abzuspeichern und zu jedem start wieder aufzurufen ist meiner Meinung nach nicht geeignet, da sehr viele Rechnungen statt finden.

Ich würde mich sehr über eine Antwort freuen.
Private Nachricht senden Benutzer-Profile anzeigen


SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2014, 10:44     Titel:
  Antworten mit Zitat      
Hallo,

neben der set_param() Befehlen, ich schlage vor, die Timer Callback Functions zu verwenden.
Und für die Dateien, unter Socpe->save data Option sind sie jederzeit im Workspace verfügbar, du sollst dann nur am Anfang jeder schleife die Parameters ändern.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Bob123
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2014, 12:36     Titel:
  Antworten mit Zitat      
Danke für die Antwort.

Was genau meins du mit "Timer Callback Functions" verwenden?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2014, 12:43     Titel:
  Antworten mit Zitat      
Bob123 hat Folgendes geschrieben:
Was genau meins du mit "Timer Callback Functions" verwenden?


http://www.mathworks.com/help/matla.....r-callback-functions.html

ein Timer Objekt zu erstellen. Es funktioniert wie Interrupt, d.h. nach jeder Periode wird eine Funktion aufgerufen.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Bob123
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2014, 11:15     Titel:
  Antworten mit Zitat      
Danke für den Tip.

Das hat mich zwar weitergebracht, aber löst mein Problem noch nicht ganz. Zumindest erkenn ich es nicht.

Die Timerfunktion führt periodisch Funktionen aus. Ich benötige eher einen Countdown. Im folgen ist mein Programmablauf noch einmal grob dargestellt:

%% t=0;
set_param('model','SimulationCommand','start')

%%t=10^-6s
set_param('modell','SimulationCommand','pause')

%%% mit Daten rechen, neue holen
%%% alles fertig, nächster Zeitschritt:

%%t=10^-6s
set_param('model','SimulationCommand','continue')

%%t=2*10^-6s
set_param('modell','SimulationCommand','pause')


...

Da bei den Zwischenrechnungen die Zeit nicht eingreifen soll existiert auch keine Periode.


Auf welcher Grundlage beruht der Timer in Matlab? Die hilfe sagt:

"The timer object is subject to the limitations of your hardware"

Meine CPU besteht läuft mit 2*2.2 GHz. Das sollte doch eigentlich reichen?


Danke für jede weitere Antwort
Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Bob123
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2014, 12:19     Titel:
  Antworten mit Zitat      
Meine letzte Frage hat sich geklärt, da mir Matlab soeben gesagt hat, dass nur Perioden bis t=0.001s zulässig sind.

Gibt es da eine Alternative?
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 - 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.