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

Optimization Toolbox- lsqnonlin bewegt sich nicht

 

staustrahltriebwerk
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.04.12
Wohnort: Darmstadt
Version: ---
     Beitrag Verfasst am: 31.10.2014, 14:27     Titel: Optimization Toolbox- lsqnonlin bewegt sich nicht
  Antworten mit Zitat      
Hallo!
Ich habe grundsätzlich das Problem, dass sich lsqnonlin nicht von den Anfangswerten weg bewegt.
Detailliert geht es um Folgendes:
Ich habe ein FEM Modell eines Biegebalkens mit Querschnittsübergängen und zwei unterschiedlichen E-Moduln (Vektor x), das mir die Biegeeigenfrequenzen berechnet. Gleichzeitig habe ich aus Messungen an der realen Struktur die realen Eigenfrequenzen. Jetzt möchte ich über eine Variation der E-Moduln die Modellfrequenzen auf die realen Frequenzen optimieren.
Meine Zielfunktion für lsqnonlin lautet

Code:
[x,resnorm,residual,exitflag,output] = lsqnonlin(@myfun,x0,[1e9 1e9],[1000e9 1000e9],options);

function F = myfun(x)
   
rot.beam(:,8)=x(1);
rot.beam(ind_geo,8)=x(2);

mec = rotorbuild(rot);
mec = robumodes(mec);

F = (f0_soll-mec.fre(5:2:5+2*modenr-1))./f0_soll.*wicht;

end


ich weise also erst die aktuellen E-Moduln (Vektor x) der Struktur zu, dann berechne ich die Eigenfrequenzen und dann wird die Zielfunktion gebildet, die ein Vektor der prozentualen Abweichungen der berechneten und realen Eigenfrequenzen beinhaltet.

Nun zum Optimiererverhalten:
Es wird nur die direkte Umgebung der Startwerte x0 abgesucht (Größenordnung 0,1% der Startwerte). Das ist für meine Anwendung viel zu wenig. Wie kann ich nun lsqnonlin beibringen, dass der Suchbereich erweitert werden soll?
Mit den Optionen hab ich schon rumgespielt, keine Änderung im grundsätzlichen Verhalten.

Grüße!
--------------------
tl;dr
lsqnonlin beibringen, einen größeren Parameterbereich abzusuchen
--------------------
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: 31.10.2014, 14:35     Titel:
  Antworten mit Zitat      
Hallo,

lsqnonlin ist ein gradientenbasiertes Verfahren. Es wird also erstmal den lokalen Bereich absuchen.

Insbesondere wenn die Funktion verrauscht ist, kann es helfen 'DiffMinChange' zu setzen.

Wenn aber wirklich globale Optimierung erfolgen soll, dann würde ich zu den Solvern der Global Optimization Toolbox raten. Möglichkeiten wären MultiStart als Wrapper um lsqnonlin, patternsearch, oder man kann natürlich auch selbst über verschiedene Startwerte iterieren.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.04.12
Wohnort: Darmstadt
Version: ---
     Beitrag Verfasst am: 03.11.2014, 09:54     Titel:
  Antworten mit Zitat      
Morgen,
danke für deine Antwort. Ich bin jetzt mit der global optimization TB auf einem guten Weg denke ich. Ich werde auch mein Problem nochmal mathematisch analysieren, um rauszufinden warum lsqnonlin alleine nicht so recht will. Ich hab ebenfalls gute Ergebnisse mit dem genetischen Algorithmus erreicht.
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: 03.11.2014, 19:48     Titel:
  Antworten mit Zitat      
Hallo,

wenn du ga verwendest, solltest du das Ergebnis nochmal als Startwert in lsqnonlin füttern, um das Ergebnis lokal weiter zu optimieren.

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.