Software: SimX - Nadelantrieb - Wirkprinzip - Optimierungsverfahren: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(24 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip|&uarr;]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Kriterien|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Visualisierung|&rarr;]] </div>
[[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip|]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Kriterien|]] [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Visualisierung|]] </div>
<div align="center">'''Experiment: Optimierungsverfahren''' </div>
<div align="center">'''Experiment: Optimierungsverfahren''' </div>


'''''Achtung:''' Die folgenden Abschnitte wurden noch nicht im Sinne der neuen Modellstruktur überarbeitet. Das prinzipielle Vorgehen bleibt jedoch weiterhin gültig!''
[[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_standard.gif|right|.]]
 
 
[[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_standard.gif|right]]
Bisher haben wir unser Entwurfsproblem vor allem inhaltlich in eine Optimierungsaufgabe transformiert. Es fehlt nun noch die Konfiguration der "Numerik", d.h.: "Mit welchem Optimierungsverfahren soll die optimale Lösung gefunden werden?"  
Bisher haben wir unser Entwurfsproblem vor allem inhaltlich in eine Optimierungsaufgabe transformiert. Es fehlt nun noch die Konfiguration der "Numerik", d.h.: "Mit welchem Optimierungsverfahren soll die optimale Lösung gefunden werden?"  




Leider ist das "optimale" Optimierungsverfahren und seine "optimale" Konfiguration abhängig von der Optimierungsaufgabe! Ausgehend von einer Standard-Konfiguration ist es meist günstig, einen gewissen Aufwand in den Abgleich des numerischen Verfahrens zu investieren. Das werden wir nun am Beispiel des Nadelantriebs üben:
Leider ist das "optimale" Optimierungsverfahren und seine "optimale" Konfiguration abhängig von der Optimierungsaufgabe! Ausgehend von einer Standard-Konfiguration ist es meist günstig, einen gewissen Aufwand in den Abgleich des numerischen Verfahrens zu investieren. Das werden wir nun am Beispiel des Nadelantriebs üben:
* OptiY bietet für den unerfahrenen Nutzer ein Standard-Verfahren an. Welches Verfahren sich dahinter verbirgt, ist abhängig von der Anzahl der Entwurfsparameter '''P''' und Gütekriterien '''K''':
* ''OptiY'' bietet für den unerfahrenen Nutzer ein Standard-Verfahren an. Welches Verfahren sich dahinter verbirgt, ist abhängig von der Anzahl der Entwurfsparameter '''P''' und Gütekriterien '''K''':
** Evolutionsstrategie bei P>1 oder K>9,
** Evolutionsstrategie bei K>1 oder P>9,
** Hook-Jeeves-Verfahren für P<2 und K<10
** Hook-Jeeves-Verfahren für K<2 und P<10
* In unserem Beispiel würde also das Hook-Jeeves-Verfahren genutzt. Dieses tastet sich auf der Zielfunktion von der Ausgangslösung schrittweise in Richtung kleinerer Werte "bergab" und endet dort in der Talsohle - in der Hoffnung, dass dies das globale Optimum ist:
In unserem Beispiel würde also das Hook-Jeeves-Verfahren genutzt. Dieses tastet sich auf der Zielfunktion von der Ausgangslösung schrittweise in Richtung kleinerer Werte "bergab" und endet dort in der Talsohle - in der Hoffnung, dass dies das globale Optimum ist:  
** Die Option "Automatischer Stopp=True" soll die Suche beenden, wenn das Minimum erreicht wurde. Das dafür implementierte Kriterium funktioniert leider nur sehr unzuverlässig!
* Die Option "Automatischer Stop" soll die Suche beenden, wenn das Minimum erreicht wurde. Das dafür implementierte Kriterium funktioniert meist zuverlässig!
** Um das Optimum zu finden, muss man "Automatischer Stopp=False" setzen. Die Anzahl der Optimierungsschritte sollte man auf einen großen Wert (z.B 1000) setzen:<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_step1000.gif]]</div>Man kann die Optimierung jederzeit manuell stoppen, wenn keine weitere Verbesserung der Lösung zu erwarten ist.
* Um an dieser Stelle zumindest einen Einblick in die Konfiguration eines Optimierungsverfahren zu erhalten, wählen wir das Hook-Jeeves-Verfahren:
** Um an dieser Stelle zumindest einen Einblick in die Konfiguration eines Optimierungsverfahren zu erhalten, wählen wir das Hook-Jeeves-Verfahren:<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_hook_jeeves.gif]]</div>
<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_hook_jeeves.gif|.]]</div>
** [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_startschrittweite.gif|right]]Die individuelle Abtast-Schrittweite für jeden Entwurfsparameter ist in der Standardeinstellung u.a. von deren vorgegebenem Variationsbereich [Untergrenze ,Obergrenze] abhängig. Da dies numerisch nicht immer günstig sein muss, sollte man sich den Zugriff auf diese Abtast-Schrittweite ermöglichen, indem man ''Startschrittweite=manuell'' setzt.
* Die individuelle Abtast-Schrittweite für jeden Entwurfsparameter ist in der Standardeinstellung u.a. von deren vorgegebenem Variationsbereich [Untergrenze, Obergrenze] abhängig. Da dies numerisch nicht immer günstig sein muss, sollte man sich den Zugriff auf diese Abtast-Schrittweite ermöglichen, indem man ''Startschrittweite=manuell'' setzt.
** Die Startschrittweite erscheint dann als zusätzliche Eigenschaft nach Wahl des jeweiligen Entwurfsparameters im OptiY-Explorer (Wert =1/100 des Startwert der Entwurfsgröße).
* Die Startschrittweite erscheint dann als zusätzliche Eigenschaft nach Wahl des jeweiligen Entwurfsparameters im ''OptiY''-Explorer.
** Dieser Vorgabewert ist meist nutzbar. Ist der Variationsbereich für die Entwurfsgröße sehr groß, so sollte die Startschrittweite jedoch mindestens 1/1000 der Bereichsbreite betragen.
* Die Abtastschrittweite für den aktuellen Wert des Entwurfsparameters darf innerhalb des vorgegebenen Suchbereiches [Untergrenze .. Obergrenze] nicht zu klein und nicht zu groß werden, damit die damit die Steigung an der Abtaststelle hinreichend genau berechnet werden kann.
** Dieses Problem erkennt man bei der Rückholfeder, welche mit einem relativ kleinen Startwert beginnt:<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_startschrittweite2.gif]]</div>
* Aus Erfahrung sollte man bei der Bestimmung der Startschrittweite in folgender Reihenfolge vorgehen: 
** Hier sollte man die Startschrittweite auf z.B. 0.1&nbsp;N/mm erhöhen. Das entspricht 1/1000 von 100&nbsp;N/mm und sollte trotz numerischer Ungenauigkeiten der Modellberechnung noch brauchbare Ergebnisse bei der Abtastung der Zielfunktion bei großen Werten der Federsteife garantieren.
# Anfangswert der Entwurfsgröße → '''Startschrittweite''' ≈ '''Wert/50'''
 
# Überprüfen dieser Schrittweite für die Obergrenze → '''Startschrittweite''' ≥ '''Obergrenze/1000'''?
 
# Ist die Schrittweite für die Obergrenze zu klein, dann '''Startschrittweite''' ≈ '''Obergrenze/1000'''
<div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Kriterien|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Visualisierung|&rarr;]] </div>
* Dies soll am Beispiel der Rückholfeder verdeutlicht werden, welche mit einem relativ kleinen Anfangswert im Verhältnis zur geschätzten Obergrenze beginnt:<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_startschrittweite2.gif|.]] [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_optimierungsverfahren_startschrittweite.gif|.|.]]</div>
* Hier ergibt sich bei der beschriebenen Vorgehensweise eine Startschrittweite von '''0.1&nbsp;N/mm''' ( '''1/1000''' von '''100&nbsp;N/mm'''). Auch wenn die Abtastschrittweite für den Anfangswert etwas zu groß ist, bei Bedarf verkleinert das Optimierungsverfahren die Abtastschrittweite bei mangelhafter Konvergenz!
* Analog dazu sind die Abtastschrittweiten für die anderen Entwurfsgrößen zu wählen, wie dies beispielhaft für '''Nadel_x0''' gezeigt ist.
* '''Hinweis:''' Ergeben sich laut Berechnung "krumme" Werte für die Startschrittweite, kann man auf nächstliegende anschauliche Werte runden (da es sich sowieso nur um grobe Schätzwerte handelt!). 
<div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Kriterien|]] [[Software:_SimX_-_Nadelantrieb_-_Wirkprinzip_-_Visualisierung|]] </div>

Aktuelle Version vom 26. Februar 2024, 10:18 Uhr

Experiment: Optimierungsverfahren
.

Bisher haben wir unser Entwurfsproblem vor allem inhaltlich in eine Optimierungsaufgabe transformiert. Es fehlt nun noch die Konfiguration der "Numerik", d.h.: "Mit welchem Optimierungsverfahren soll die optimale Lösung gefunden werden?"


Leider ist das "optimale" Optimierungsverfahren und seine "optimale" Konfiguration abhängig von der Optimierungsaufgabe! Ausgehend von einer Standard-Konfiguration ist es meist günstig, einen gewissen Aufwand in den Abgleich des numerischen Verfahrens zu investieren. Das werden wir nun am Beispiel des Nadelantriebs üben:

  • OptiY bietet für den unerfahrenen Nutzer ein Standard-Verfahren an. Welches Verfahren sich dahinter verbirgt, ist abhängig von der Anzahl der Entwurfsparameter P und Gütekriterien K:
    • Evolutionsstrategie bei K>1 oder P>9,
    • Hook-Jeeves-Verfahren für K<2 und P<10

In unserem Beispiel würde also das Hook-Jeeves-Verfahren genutzt. Dieses tastet sich auf der Zielfunktion von der Ausgangslösung schrittweise in Richtung kleinerer Werte "bergab" und endet dort in der Talsohle - in der Hoffnung, dass dies das globale Optimum ist:

  • Die Option "Automatischer Stop" soll die Suche beenden, wenn das Minimum erreicht wurde. Das dafür implementierte Kriterium funktioniert meist zuverlässig!
  • Um an dieser Stelle zumindest einen Einblick in die Konfiguration eines Optimierungsverfahren zu erhalten, wählen wir das Hook-Jeeves-Verfahren:
.
  • Die individuelle Abtast-Schrittweite für jeden Entwurfsparameter ist in der Standardeinstellung u.a. von deren vorgegebenem Variationsbereich [Untergrenze, Obergrenze] abhängig. Da dies numerisch nicht immer günstig sein muss, sollte man sich den Zugriff auf diese Abtast-Schrittweite ermöglichen, indem man Startschrittweite=manuell setzt.
  • Die Startschrittweite erscheint dann als zusätzliche Eigenschaft nach Wahl des jeweiligen Entwurfsparameters im OptiY-Explorer.
  • Die Abtastschrittweite für den aktuellen Wert des Entwurfsparameters darf innerhalb des vorgegebenen Suchbereiches [Untergrenze .. Obergrenze] nicht zu klein und nicht zu groß werden, damit die damit die Steigung an der Abtaststelle hinreichend genau berechnet werden kann.
  • Aus Erfahrung sollte man bei der Bestimmung der Startschrittweite in folgender Reihenfolge vorgehen:
  1. Anfangswert der Entwurfsgröße → StartschrittweiteWert/50
  2. Überprüfen dieser Schrittweite für die Obergrenze → StartschrittweiteObergrenze/1000?
  3. Ist die Schrittweite für die Obergrenze zu klein, dann StartschrittweiteObergrenze/1000
  • Dies soll am Beispiel der Rückholfeder verdeutlicht werden, welche mit einem relativ kleinen Anfangswert im Verhältnis zur geschätzten Obergrenze beginnt:
    . .
  • Hier ergibt sich bei der beschriebenen Vorgehensweise eine Startschrittweite von 0.1 N/mm ( 1/1000 von 100 N/mm). Auch wenn die Abtastschrittweite für den Anfangswert etwas zu groß ist, bei Bedarf verkleinert das Optimierungsverfahren die Abtastschrittweite bei mangelhafter Konvergenz!
  • Analog dazu sind die Abtastschrittweiten für die anderen Entwurfsgrößen zu wählen, wie dies beispielhaft für Nadel_x0 gezeigt ist.
  • Hinweis: Ergeben sich laut Berechnung "krumme" Werte für die Startschrittweite, kann man auf nächstliegende anschauliche Werte runden (da es sich sowieso nur um grobe Schätzwerte handelt!).