|
|
GA Optimierung mit Simulink Model als objective function |
|
thedom |
Forum-Anfänger
|
|
Beiträge: 15
|
|
|
|
Anmeldedatum: 03.03.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 20.07.2019, 12:08
Titel: GA Optimierung mit Simulink Model als objective function
|
|
|
|
|
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
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.07.2019, 13:38
Titel:
|
|
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 ;)
|
|
|
thedom |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 15
|
|
|
|
Anmeldedatum: 03.03.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 20.07.2019, 18:22
Titel:
|
|
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?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.07.2019, 21:21
Titel:
|
|
|
|
thedom |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 15
|
|
|
|
Anmeldedatum: 03.03.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 22.07.2019, 06:17
Titel:
|
|
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)
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.07.2019, 16:39
Titel:
|
|
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 ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|