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

GA Optimierung mit Simulink Model als objective function

 

thedom
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.03.16
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 20.07.2019, 12:08     Titel: GA Optimierung mit Simulink Model als objective function
  Antworten mit Zitat      
Hallo Liebe Leute,

ich hätt eine Frage zu meinem kleinen Problem und vielleicht könnt ihr mir weiter helfen.

Ich möchte mit Matlab eine Optimierung mit der eingebauten Genetic Algorithm Funktion durchführen.

Soweit funktioniert die GA Funktion auch mit simplen Beispielen.

Jetzt möchte ich aber ein Simulink Model als objective function benutzen und habe probleme dabei.

Meine Vorgehensweise: ich habe eine Funktion in Matlab erstellt, in welcher das Simulink Model geöffnet und simuliert wird mit den inputs welche ich der Funktion gegeben habe. Die Funktion wird GA als objective function übergeben.

Das problem dabei ist, dass ich folgenden error code von Simulink bekommen wenn ich versuche das Simulink Model in der Funktion aufzurufen:

Error using autoblksdrivecycle
Invalid data type for parameter 'Drive Cycle Variable'. Valid data types include time-data arrays, time
series objects, or time series structures.
Failure in initial user-supplied fitness function evaluation. GA cannot continue.

Meine Vermutung ist, dass während die Funktion aufgerufen wird, die notwendigen Variablen nicht im Workspace für Simulink verfügbar sind.

Weiß von euch vielleicht jemand Hilfe dafür?

Danke und LG
Dominik
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2019, 13:38     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung legt nahe, dass die Variable gefunden wird, aber einen unzulässigen Wert hat. Versuche doch mal, die Funktion außerhalb von ga aufzurufen. Der Fehlermeldung zufolge scheint das schon das Problem sein.

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
 
thedom
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.03.16
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 20.07.2019, 18:22     Titel:
  Antworten mit Zitat      
Ich bin mittlerweile ein bisschen weiter gekommen: das Problem lag anscheinend darin dass Sinulink die variablen nicht finden konnte das sie im function workspace abgelegt wurden. Ich hab mit assignin die variablen in den base workspace übergeben vor dem simulations Start. Damit funktionierts jetzt soweit. Auch die ga funktion funktioniert damit, allerdings sehr langsam.

Meine neue Frage deshalb: Ist es überhaupt sinnvoll eine Optimierung auf diese Weise durchzuführen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2019, 21:21     Titel:
  Antworten mit Zitat      
Hallo,

das kommt auf die genaue Problembeschreibung an. In der Regel eher nicht.
https://www.mathworks.com/help/gads.....osing-another-solver.html
und vermutlich
https://www.mathworks.com/help/gads.....her-solver.html#bu9r6hl-4

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
 
thedom
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.03.16
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 22.07.2019, 06:17     Titel:
  Antworten mit Zitat      
Ok danke für das Feedback, wäre es sinnvoller die objective function in matlab auszuprogrammieren anstatt die funktion in simulink darzustellen? (bezogen auf die geschwindigkeit der optimierung)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.07.2019, 16:39     Titel:
  Antworten mit Zitat      
Hallo,

schwer zu sagen. Wenn du aber schon ein Simulink-Modell hast, würde ich erst mal das versuchen. Wenn die Zeit zu lange ist, kann man mit dem Profiler schauen, ob die meiste Zeit mit Simulationen des Modells verbracht wird.
Eine Möglichkeit kann auch sein, die Funktionsauswertungen parallel laufen zu lassen (Option UseParallel).

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
 
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.