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

Optimierung eines Simulink Modells

 

synthgamer
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2013, 11:28     Titel: Optimierung eines Simulink Modells
  Antworten mit Zitat      
Hallo,

Ich habe die Aufgabe das simulink modell eines roboters zu optimieren und da ich ein blutiger anfänger mit matlab/simulink bin versuche ich grade mich etwas einzuarbeiten und einfach mal ein simples optimierungsskript zu schreiben (egal ob es sinnvoll ist, hauptsache es läuft erstmal)

für die optimierung schreibe ich eine kostenfunktion, die den zu optimierenden parameter erhält und mit diesem dann das modell simuliert - ausgabe ist dann der wert (in meinem fall die geschwindigkeit) die maximal werden soll.

mein erstes problem ist schonmal dass ich es nicht hinbekomme in der funktion den parameter für das modell festzulegen. wenn ich zum beispiel einfach schreibe f = 3, dann übernimmt das modell das nicht.

kann mir jemand helfen?

gruß,
synth
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.08.2013, 11:43     Titel:
  Antworten mit Zitat      
deine beschreibung ist sehr wage..
Zitat:
. wenn ich zum beispiel einfach schreibe f = 3, dann übernimmt das modell das nicht.
enhällt so gut wie keine hilfreiche information Smile
bitte lies den thread richtig fragen aus meiner signatur. codebeispiele fehlermeldungen etc sind immer besser als "persönliche" umschreibung des problems.
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
synthgamer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 10:22     Titel:
  Antworten mit Zitat      
okay, sry ich versuche es. also meine funktion sieht ungefähr so aus:

Code:
function fun = simulation(x)

f = x
Init_model.m   % hier werden die restl. parameter festgelegt
sim('model')

fun = max(speed)
 



ich möchte also eine funktion haben, die das modell simuliert und zwar mit den standardwerten (in Init_model festgelegt) aber jedesmal mit einem anderen wert für f. ausgabe ist dann die höchstgeschwindigkeit, die ich ja später optimieren möchte.

Eine fehlermeldung bekomme ich so nicht, nur wird die zeile f = x gelb unterstrichelt mit dem hinweis dass diese zuweisung nie benutzt wird. ich gehe also davon aus, dass er denkt ich wollte da eine lokale variable anlegen. das deckt sich auch damit, dass im workspace rechts in diesem variablenfenster wo alle variablen mit werten stehen, nie der wert ist, mit dem ich die funktion aufgerufen habe.

ist das einigermaßen verständlich?

ich bin halt nunmal absoluter anfänger in Matlab, daher entschuldige ich mich wirklich für alle unklarheiten
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2013, 10:27     Titel:
  Antworten mit Zitat      
Hallo,

Simulink holt sich beim Simulieren eines Modells die Variablen standardmäßig aus dem Base Workspace. Du willst aber, dass es die Variablen aus dem momentanen Workspace holt. Also:

Code:
sim('model', 'SrcWorkspace', 'current')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
synthgamer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2013, 14:01     Titel:
  Antworten mit Zitat      
Hallo Harald,

Das hat allem anschein nach funktioniert. allerdings bekomme ich jetzt folgende fehlermeldung:

Code:
??? Undefined function or variable 'speed'.

Error in ==> simulation at 5
fun = max(speed);


der teil hatte vorher funktioniert, aber offenbar findet er jetzt 'speed' nicht mehr, weil es vom modell in einen anderen workspace geschrieben wird?? oder sowas. was kann ich da tun?

Gruß,
synth
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.08.2013, 14:59     Titel:
  Antworten mit Zitat      
Hallo,

2 Möglichkeiten:
a) 'DstWorkspace' über simset anpassen (wird aber in späteren Versionen evtl. nicht mehr gehen)
b)
Code:

und dann mit simout arbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
synthgamer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2013, 11:06     Titel:
  Antworten mit Zitat      
Hallo,

Danke ernet für den Tipp. Allerdings muss ich nochmal nachfragen da ich wie gesagt noch blutiger anfänger bin.

Mein Modell hat ja viele ausgaben, in welchem format stecken die dann alle in simout?

ich bin ja jetzt erstmal nur an der geschwindigkeit (speed) interessiert. was genau muss ich dann machen um auf die zuzugreifen?

Gruß,
Synth
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.09.2013, 18:10     Titel:
  Antworten mit Zitat      
Hallo,

in welcher Form gibst du Speed zurück? Out-Port? To Workspace?

Setz doch mal einen Haltepunkt und schau dir simOut im Workspace an, dann siehst du ja, was simOut ist.

Grüße,
Harald
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.