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

Simulinkmodell in Matlab einbinden

 

trying
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 30.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2020, 12:21     Titel: Simulinkmodell in Matlab einbinden
  Antworten mit Zitat      
Hallo Leute,

ich bin mal wieder ratlos.

Ich muss für ein kleines Simulinkmodell eine Optimierung für drei Parameter durchführen.

Leider weis ich nicht genau, wie ich das Simulinkmodell in Matlab einbinden bzw. aufrufen kann, dass ich anschließend die Optimierung für das Modell durchlaufen lassen kann?

Kann mir hier vllt. jemand helfen ?

Vielen Dank im Voraus!
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: 12.10.2020, 13:04     Titel:
  Antworten mit Zitat      
Hallo,

zwei Möglichkeiten:
a) Simulink Design Optimization. Ich kenne mich selbst nicht damit aus, aber es gibt viele Videos.
b) sim mit Option 'SrcWorkspace','current' in der Zielfunktion bzw. nichtlinearen Nebenbedingungsfunktion aufrufen.

Wenn du konkretere Fragen stellst, kann man auch konkreter antworten. ;)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
trying
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 30.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2020, 14:47     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich versuche mal mich etwas genauer auszudrücken.

Ich habe ein kleines Simulink-Gasmodell mit drei Variablen.

Das Modell beschreibt eine diskontinuierliche Gasproduktion, welche durch Zwischenspeicherung einen konstanteren Volumenstrom für einen anschließenden Prozess liefern soll.

1. Variable: Einspeicherdatenreihe ( 8760 Werte, also für jede Stunde des Jahres ein Wert)
2.Variable: Zwischenspeichergröße
3. Variable: konstante Ausspeicherung

Ich will nun eine Optimierung durchführen, dass der Tank möglichst viele Zyklen besitzt (ein Zyklus ist Tank wird gefüllt und wieder entleert ).
Ich habe für jede einzelne Variable 15 verschiedene Datenreihen bzw. Werte zur Verfügung und und soll ein Skript schreiben, der die optimalen Werte findet.
Dazu soll das Simulinkmodell in dem Matlabskript aufgerufen und mit den zur Verfügung stehenden Werten durchgespielt werden. Die Daten mit der maximalen Zyklenzahl brauche ich.

Frage:
Wie rufe ich das Simulinkmodell in Matlab auf, dass ich anschließend mit for-Schleifen die Optimierung durchführen kann?


Vielen Dank im Voraus!!
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: 13.10.2020, 15:42     Titel:
  Antworten mit Zitat      
Hallo,

okay, das hat jetzt wenig mit einer Optimierung zu tun, wie ich sie generell sehe.

Zitat:
Ich habe für jede einzelne Variable 15 verschiedene Datenreihen bzw. Werte zur Verfügung und und soll ein Skript schreiben, der die optimalen Werte findet.

Sollen dann alle Kombinationen getestet werden, also 15*15*15, oder gehören diese Datenreihen bzw. Werte zusammen?

Zitat:
Wie rufe ich das Simulinkmodell in Matlab auf, dass ich anschließend mit for-Schleifen die Optimierung durchführen kann?

Du hast dann wohl Vektoren / Matrizen mit den Daten. Aus denen musst du in einer for-Schleife den gerade benötigten Teil in eine Variable extrahieren und dann sim aufrufen. Wie genau, hängt von der Antwort auf die erste Rückfrage ab.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
trying
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 30.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2020, 15:53     Titel:
  Antworten mit Zitat      
Hallo,

danke für die schnelle Antwort!

Nein sie gehören nicht zusamme. Also quasi 15*15*15.

Ja genau ich habe dafür Vektoren.

Viele Grüße
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: 13.10.2020, 17:06     Titel:
  Antworten mit Zitat      
Hallo,

dann etwa so:

Code:
v1 = [...];
v2 = [...];
v3 = [...];

for k1 = 1:numel(v1)
p1 = v1(k1);
for k2 = 1:numel(v2)
p2 = v2(k2);
for k3 = 1:numel(v3)
p3 = v3(k3);
tmpOut = sim('model'); % das Modell nutzt die Parameter p1, p2, p3
cylcles(k1, k2, k3) = ... % hier wird aus den Ergebnissen die Anzahl der Zyklen berechnet
end
end
end
 


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
trying
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 30.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2020, 18:25     Titel:
  Antworten mit Zitat      
Hallo Harald,

super vielen Dank!!

Eine Frage hätte ich noch dazu.
Muss ich die Parameter p1; p2; p3 noch iwo definieren bzw angeben ?
Woher weis das Porgramm, dass z.B p1 die Einspeicherdatenreihe darstellen soll ?

Viele Grüße
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: 13.10.2020, 19:06     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt:
Zitat:
das Modell nutzt die Parameter p1, p2, p3


Wenn die Parameter in deinem Simulink-Modell anders heißen, dann musst du das eben aneinander anpassen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
trying
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 30.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2020, 13:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich habs geschafft.
Vielen Dank mal wieder!
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.