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

Zeitgleiche Simulation in Simulink/Matlab

 

GoM08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2009, 12:20     Titel: Zeitgleiche Simulation in Simulink/Matlab
  Antworten mit Zitat      
Hallo,

ich stehe bei meiner Studienarbeit vor folgendem Problem: Ich möchte in Simulink während einer Simulation konstante Parameter ändern. Dies möchte ich über Matlab tun und zwar am besten folgend: Matlab soll eine Iterationsschleife durchführen und dabei die parameter berechnen. Anschließend sollen diese Parameter in den Workspace um von dort von Simulink aufgegriffen zu werden. Simulink soll dann die Simulation an die neuen Parameter anpassen. Da Matlab mehrere Iterationsschleifen durchgehen soll, ist somit eine simultane Simulation von Vorteilen. Simulink soll dann quasi pro Iterationsschleife von Matlab einmal durchlaufen. Bei der 2. Iterationsschleife von Matlab (dann mit neuen Parametern) soll Simulink dann ebenfalls seinen 2. Durchgang machen, usw.

Ist dies möglich?

Vielen Dank im Voraus für eure Antworten


Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2009, 14:20     Titel:
  Antworten mit Zitat      
man muss die Simulation nur in einem m-File starten

zunächst legt man alle Parameter an die konstant bleiben

dann folgt eine Schleife mit while oder for, in der der zu ändernde Parameter mit dem Befehl
Code:

set_param('NameDesMDL-Files/Subsystem/Blockname', 'Blockparameter zB Gain', 'K_R_i');
 

in das Simulink-Modell geschrieben wird

zum Schluss der Schleife muss man die Simulation mit sim('NameDesMDL-Files') starten

alle ergebnisse kann man am Einfachsten in den Workspace befördern, indem man ein Scope verwendet und den Haken 'save data to workspace' anhakt

dann muss man die daten nur noch sichern (am besten in ein mat. file) und man kann einen neuen Durchlauf starten

ich hoffe das ist so halbwegs nachvollziehbar beschrieben...
das m-File steuert die Simulation komplett... das Modell muss aber geöffnet sein damit es funktioniert

versuchs mal und melde dich wenn was nicht klappt
Private Nachricht senden Benutzer-Profile anzeigen
 
GoM08

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2009, 15:39     Titel: Zeitgleiche Simulation in Simulink/Matlab
  Antworten mit Zitat      
Hey,

vielen Dank erst einmal für die schnelle Antwort. Allerdings glaube ich nicht, dass wir vom gleichen Thema reden Smile.
Ich möchte [/b]während[/b] der Simulation einen Parameter ändern. Und dies am besten noch von Matlab (einer m-file) aus.
Beispiel: Gain ist 10. Simulation [0 100]. M-File ist angewiesen, bei t = 20 den Parameter Gain von 10 auf 50 zu erhöhen.

Ist dies möglich?
 
Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2009, 15:58     Titel:
  Antworten mit Zitat      
will man während einer laufenden simulation zu einem best. Zeitpunkt ein Signal ändern, so bietet sich der Einsatz des Step-Blocks als Source-Block an.

Allerdings muss man Zeitpunkt und Sprunghöhe auch zu Beginn der Simulation festlegen.

Direkt aus dem m-File einen Wert in der laufenden Simulation ändern stelle ich mir ziemlich unmöglich vor...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.07.2009, 17:03     Titel:
  Antworten mit Zitat      
Wenn die Sprunghöhe nicht vorab bekannt ist, könnte man die Simulation von [0 20] laufen lassen, den Parameter ändern, und dann die Simulation über [20 100] laufen lassen (mit dem Endzustand der ersten Simulation als Anfangszustand).
Und ich darf korrigieren: set_param greift auch während einer laufenden Simulation - ich habe es gerade probiert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2009, 20:22     Titel:
  Antworten mit Zitat      
Interessant...

und zu welchem Zeitpunkt wird dann die Änderung des Parameters wirksam?
kann man die aktuelle Simulationszeit denn im m-File abfragen?

werde ich mal ausprobieren

danke für den Hinweis!
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.