Software: CAD - Tutorial - Optimierung - Lokale Suche: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
(Linkanpassung)
 
(29 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_CAD_-_Tutorial_-_Optimierung|&uarr;]] <div align="center"> [[Software:_CAD_-_Tutorial_-_Optimierung_-_Globale_Suche|&larr;]] [[Software:_CAD_-_Tutorial_-_Optimierung_-_Zusammenfassung|&rarr;]] </div>
<!-- [[Software:_CAD_-_Tutorial_-_Optimierung|&uarr;]] -->
[[Software:_CAD_-_Tutorial_-_Fortgeschritten|&uarr;]]
 
<div align="center"> [[Software:_CAD_-_Tutorial_-_Optimierung_-_Globale_Suche|&larr;]] [[Software:_CAD_-_Tutorial_-_Optimierung_-_Zusammenfassung|&rarr;]] </div>
<div align="center"> ''' Lokale Suche ''' </div>
<div align="center"> ''' Lokale Suche ''' </div>


Bei der globalen Suche haben wir den Einfluss unterschiedlicher Feder-Dicken aufgrund mangelnder Anschaulichkeit und langer Rechenzeiten nicht berücksichtigt. Dies werden wir jetzt bei Anwendung eines lokalen Suchverfahrens nachholen:
Bei der globalen Suche haben wir den Einfluss unterschiedlicher Feder-Dicken aufgrund mangelnder Anschaulichkeit und langer Rechenzeiten nicht berücksichtigt. Dies werden wir jetzt bei Anwendung eines lokalen Suchverfahrens nachholen:
* Die lokale Suche beginnt bei einer Ausgangslösung.
* Die lokale Suche beginnt bei einer Ausgangslösung. Sie bewegt sich im Lösungsraum zielgerichtet zu kleineren Werten der Straf-Funktion, bis ein Minimum erreicht wird (möglichst Strafe=0).
* Sie bewegt sich im Lösungsraum zielgerichtet zu kleineren Werten der Straf-Funktion, bis ein Minimum erreicht wird (möglichst Strafe=0).
* Wurde eine gültige Lösung gefunden (Strafe=0), so bewegt sich ein lokales Suchverfahren zielgerichtet zu kleineren Werten der Gütekriterien, bis ein Minimum erreicht ist.
* Wurde eine gültige Lösung gefunden (Strafe=0), so bewegt sich ein lokales Suchverfahren zielgerichtet zu kleineren Werten der Gütekriterien, bis ein Minimum erreicht ist.
* Die erreichten Minima können bei ungünstigen Zielfunktionen auch lokale Minima sein (Senken in der Oberfläche).  
* Bei den erreichten Minima kann es sich bei ungünstigen Zielfunktionen auch um lokale Minima handeln ("Senken" in der Oberfläche).
* Man weiß bei komplexen Problemen meist nicht, ob man wirklich das globale Optimum erreicht hat.
* Man weiß bei komplexen Problemen meist nicht, ob man wirklich das globale Optimum erreicht hat.
Die Zielfunktion in unserem Beispiel ist "gutmütig". Die Bewertungsgrößen werden repräsentiert durch stetig gekrümmte, nicht wellige Funktionen.
Die Zielfunktion in unserem Beispiel ist anscheinend "gutmütig". Die Bewertungsgrößen werden repräsentiert durch stetig gekrümmte, nicht wellige Funktionen.


=== Experiment duplizieren ===
=== Experiment duplizieren ===
Zeile 23: Zeile 25:


Für jedes Experiment wird von ''OptiY'' ein separater Workflow verwaltet, so dass darin unabhängig voneinander Änderungen vorgenommen werden können:
Für jedes Experiment wird von ''OptiY'' ein separater Workflow verwaltet, so dass darin unabhängig voneinander Änderungen vorgenommen werden können:
* Zuerst selektieren wir die '''Lokale Suche''' über das Kontextmenü als '''Startup-Experiment''', damit wir es bearbeiten können.
* Zuerst selektieren wir die '''Lokale Suche''' über das Kontextmenü als '''Startup-Experiment''', um es zu bearbeiten.
* Wir aktivieren den Nennwert der '''Dicke''' als Variable in den Grenzen von '''0,3&nbsp;mm ... 0,8&nbsp;mm'''.
* Wir aktivieren den Nennwert der '''Dicke''' als Variable in den Grenzen von '''0,3&nbsp;mm ... 0,8&nbsp;mm'''.
* Für die Optimierung wählen wir das '''Hooke-Jeeves-Verfahren''' mit '''Startschrittweite=Standard'''.  
* Für die Optimierung wählen wir das '''Hooke-Jeeves-Verfahren''' mit '''Startschrittweite=Standard'''.  
* Wir erhöhen die Zahl der '''Optimierungsschritte=1000''' (mittels manuellem Stop [[Datei:Software_OptiY_-_Button_-_Exp_stoppen.gif|middle]] können wir jederzeit die Berechnung anhalten).
* Wir erhöhen die Zahl der '''Optimierungsschritte=500''' (mittels manuellem Stop [[Datei:Software_OptiY_-_Button_-_Exp_stoppen.gif|middle]] können wir jederzeit die Berechnung anhalten).
* Für alle Nennwerte und Bewertungsgrößen öffnen wir ein Nennwert-Diagramm, indem wir mit dem Cursor jede Größe einzeln in den Grafikbereich ziehen.
* Für alle Nennwerte und Bewertungsgrößen öffnen wir ein Nennwert-Diagramm, indem wir mit dem Cursor jede Größe einzeln in den Grafikbereich ziehen.
'''''Wichtig:'''''<br>Bevor wir die Berechnung starten, überprüfen wir jedesmal im Windows-Taskmanager, ob der Prozess '''Inventor.exe''' bereits aktiv ist. Wenn ja, so beenden wir diesen Prozess, weil ansonsten zusätzlich eine weiterer gestartet wird und der Hauptspeicher irgendwann überläuft!


Nach dem Start der Optimierung ergibt sich folgende zielgerichtete Veränderung der Abmessungen:<div align="center"> [[Bild:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_ohne_Biegegrenze.gif|.]] </div>
Nach dem Start der Optimierung ergibt sich folgende zielgerichtete Veränderung der Abmessungen:<div align="center"> [[Bild:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_ohne_Biegegrenze.gif|.]] </div>
Zeile 36: Zeile 36:


Bei technischen Problemstellungen wird die optimale Lösung meist an Restriktionsgrenzen liegen, weil die zu berücksichtigenden Anforderungen oft entgegensetzt wirken. Das führt an Restriktionsgrenzen mit großer Wahrscheinlichkeit zu Problemen der Konvergenz in Richtung einer optimalen Lösung:
Bei technischen Problemstellungen wird die optimale Lösung meist an Restriktionsgrenzen liegen, weil die zu berücksichtigenden Anforderungen oft entgegensetzt wirken. Das führt an Restriktionsgrenzen mit großer Wahrscheinlichkeit zu Problemen der Konvergenz in Richtung einer optimalen Lösung:
* Bei der in ''OptiY'' verwendeten hierarchischen Optimierungsstrategie wird aus den aktuellen Restriktionsverletzungen der Wert einer Straf-Funktion berechnet.  
* Bei der in ''OptiY'' verwendeten hierarchischen Optimierungsstrategie wird aus den aktuellen Restriktionsverletzungen der Wert einer [[Grundlagen:_Optimierung#Straf-Funktion_zur_Suche_zulaessiger_Loesungen|'''Straf-Funktion''']] berechnet.  
* Um zuerst alle Forderungen zu erfüllen, hat die Minimierung des Straf-Funktionswertes die höchste Priorität.  
* Um zuerst alle Forderungen zu erfüllen, hat die Minimierung des Straf-Funktionswertes die höchste Priorität.  
* Erst wenn alle Forderungen erfüllt sind (Straf-Funktionswert=0), widmet sich die Optimierungsstrategie der Verfolgung unserer Wünsche (Minimierung der Gütekriterien).  
* Erst wenn alle Forderungen erfüllt sind (Straf-Funktionswert=0), widmet sich die Optimierungsstrategie der Verfolgung unserer Wünsche (Minimierung der Gütekriterien).  
Zeile 45: Zeile 45:
* Diese Änderung führen wir über den Workflow-Editor durch.  
* Diese Änderung führen wir über den Workflow-Editor durch.  
* Wir löschen das Gütekriterium "'''f1'''" und ergänzen eine neue Restriktionsgröße, die wir ebenfalls "'''f1'''" nennen.  
* Wir löschen das Gütekriterium "'''f1'''" und ergänzen eine neue Restriktionsgröße, die wir ebenfalls "'''f1'''" nennen.  
* Wir verknüpfen diese Restriktionsgröße mit der zugehörigen Ausgangsgröße "'''_f1'''" des Modells, das negative Vorzeichen ist nun nicht mehr erforderlich!
* Wir verknüpfen diese Restriktionsgröße mit der zugehörigen Ausgangsgröße "'''_f1'''" des Modells, das negative Vorzeichen ist nun nicht mehr erforderlich:
* Als unteren Grenzwert geben wir auf Grund unserer Vorkenntnisse eine anzustrebende Resonanzfrequenz ein (z.B. '''300&nbsp;Hz''').  
** Als unteren Grenzwert geben wir auf Grund unserer Vorkenntnisse aus der globalen Suche eine anzustrebende Resonanzfrequenz ein, welche etwas größer ist, als man voraussichtlich erreichen kann (z.B. Bestwert aus globaler Suche ca. '''90&nbsp;Hz''' → '''100&nbsp;Hz''' als unterer Grenzwert).  
* Der obere Grenzwert sollte ungefähr um den gleichen Wert darüber liegen (z.B. '''600&nbsp;Hz'''), weil die Breite des zulässigen Wertebereiches einen Einfluss auf den Strafwert bei Restriktionsverletzung hat.
** Der obere Grenzwert sollte ungefähr doppelt so groß sein (im Beispiel dann '''200&nbsp;Hz'''), weil die Breite des zulässigen Wertebereiches einen Einfluss auf den Strafwert bei Restriktionsverletzung hat.
* Für '''F_Max''' als Restriktionsgröße hatten wir aus "Unwissenheit" einen sehr großen oberen Grenzwert von z.B. 1E6&nbsp;N verwendet:
** Anhand der globalen Suche wissen wir inzwischen, dass dort ein Maximalwert von etwas über '''2&nbsp;N''' auftrat.
** Damit können wir als oberen Grenzwert diesen Wert von '''2&nbsp;N''' verwenden. 
* Unser Gütekriterium "Resonanzfrequenz" ist nun selbst Bestandteil der Straf-Funktion und es existieren keine separaten Gütekriterien.
* Unser Gütekriterium "Resonanzfrequenz" ist nun selbst Bestandteil der Straf-Funktion und es existieren keine separaten Gütekriterien.
* Damit entfällt das Umschalten zwischen den Zielfunktionen an den Restriktionsgrenzen und das Verfahren sollte numerisch stabil auf der Straf-Funktion zum Optimum konvergieren:
* Damit entfällt das Umschalten zwischen den Zielfunktionen an den Restriktionsgrenzen und das Verfahren sollte numerisch stabil auf der Straf-Funktion zum Optimum konvergieren:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_f1_als_Restriktion.gif|.]] </div>
** Leider wird das Ergebnis ähnlich schlecht aussehen, solange der zulässige Bereich für '''c_Feder=139...140&nbsp;N/m''' sehr eng gewählt ist.
* Es fällt auf, dass die Restriktionsgrenzen so gesetzt sind, dass sie nicht alle gleichzeitig erreicht werden können.
** Ein relativ zum Absolutwert sehr schmaler zulässiger Bereich wird als sehr wichtig angesehen. Kleine Abweichungen werden damit überbewertet und die Optimierung kann sich in diesem schmalen Bereich verfangen.
* Deshalb stellt sich eine Kompromisslösung ein, welche dem Straf-Minimum entspricht.
** Die Federkonstante tendiert aufgrund der Maximierung der Resonanzfrequenz zu höheren Werten.
* In unserem Beispiel müsste man diesen Kompromiss zugunsten einer höheren zulässigen Kraft verschieben.
** Wir können deshalb die '''untere Grenze c_Feder=0&nbsp;N/m''' setzen.
* Dies erreicht man, indem man für die Restriktion '''F_Max''' den '''Gewichtfaktor''' auf z.B. den Wert '''10''' erhöht.
* Dadurch wird die Strafzielfunktion insgesamt "sanfter" und die Optimierung sollte voranschreiten:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_f1_als_Restriktion.gif|.]] </div>
* Nach erneuter Optimierung ergibt sich z.B. die folgende akzeptable, optimale Lösung:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_mit_FMax-Gewichtung10.gif|.]] </div>
* Die Erhöhung der Resonanzfrequenz erfolgt durch Vergrößern der Dicke und Verringern der Breite.
* '''''Wichtig'':'''
* Bei letzterem stört der untere Grenzwert für die Breite.
*# Falls '''f1''' den zuvor geschätzten unteren Grenzwert erreicht, muss man diesen soweit erhöhen, bis er durch eine erneute Lösungssuche nicht mehr erreicht werden kann! Erst dann besitzt die Feder die geforderte maximal mögliche Resonanzfrequenz.
* Wir erweitern die Grenzen für beide Maße auf '''0,3...8&nbsp;mm''' und starten die Optimierung erneut:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_mit_Hochkantfeder.gif|.]] </div>
*# Der Bestwert einer lokalen Suche ist erst erreicht, wenn alle Variablen einen eingeschwungenen Zustand erreicht haben (wie im obigen Bild müssen alle Werte dann näherungsweise konstant bleiben!). Wird dies innerhalb der vorgegebenen Schrittzahl nicht erreicht, muss man die Anzahl der Schritte erhöhen und die Berechnung fortsetzen.
 
=== Abhaengigkeiten zwischen Optimierungsvariablen ===
 
Das Ergebnis tendiert zu '''Dicke >> Breite''' ("Hochkant-Feder") und wird dadurch praktisch unbrauchbar:
# Die Feder könnte nun zur Seite wegknicken.
# Die Frequenz der seitlichen Grundschwingung wird minimiert, was kontraproduktiv zur Maximierung der Resonanzfrequenz ist.
Die im Sinne maximaler Resonanzfrequenz optimierte Feder muss also einen quadratischen Querschnitt besitzen ('''Dicke=Breite'''):
* Auch hier verzichten wir auf das Hinzufügen einer weiteren Restriktion, welche "Hochkant-Federn" verhindert.
* Wir vereinfachen stattdessen das Optimierungsproblem auf eine Optimierungsvariable ('''Breite''' als Kantenlänge des Quadrats):
*# Löschen von Entwurfsgröße-Nennwert '''Dicke''' im Workflow.
*# Einfügen einer Transfervariablen mit gleichem Name '''Dicke''', welche ihren Wert vom Nennwert '''Breite''' erhält.
*# Benutzung der Transfervariablen als Eingang für das CAD-Modell und Verknüpfung mit dem Dicken-Parameter '''t_xx''' des CAD-Modells:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Workflow_quad_Querschnitt.gif|.]] </div>
Nach Start der Optimierung sollte sich nun ein quadratischer Querschnitt ergeben, welcher exakt die geforderte Federkonstante realisiert:
<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Optimierung_quad_Querschnitt.gif|.]] </div>
* '''Wichtig''': Die im obigen Bild sichtbare nur geringfügig erhöhte Wert für die Federkonstante ergibt sich erst, wenn man den Gewichtsfaktor für die Restriktionsgröße '''c_Feder''' entsprechend erhöht.
* Da die mit der anderen Restriktion '''f1''' geforderte Resonanzfrequenz nicht erreicht werden kann, strebt das Optimierungsverfahren eine Kompromisslösung an, bei welcher die Summe der Strafpunkte minimal wird. Den Anteil der einzelnen Restriktionen an den Strafpunkten kann man über die Gewichtsfaktoren steuern.


=== CAD-Modell mit Bestwert konfigurieren ===
=== CAD-Modell mit Bestwert konfigurieren ===


Die mittels der lokalen Suche gefundene optimale Lösung kann man sich als Bestwert-Parameter anzeigen lassen:<div align="center">[[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert_Parameter_anzeigen.gif|.]] [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert_quad_Querschnitt.gif|.]] </div>   
Die mittels der lokalen Suche gefundene optimale Lösung kann man sich als Bestwert-Parameter anzeigen lassen:<div align="center">[[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert_Parameter_anzeigen.gif|.]] [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert.gif|.]] </div>   
* Das CAD-Modell enthält noch immer die Parameter-Konfiguration der Ausgangslösung, weil wir sinnvoller Weise auf ein Speichern des Bauteils bei jedem Optimierungsschritt verzichtet haben.
* Das CAD-Modell enthält noch immer die Parameter-Konfiguration der Ausgangslösung, weil wir sinnvoller Weise auf ein Speichern des Bauteils bei jedem Optimierungsschritt verzichtet haben.
* Diese Ausgangslösung sollte man für die lokale Suche im OptiY-Experiment nicht durch den Bestwert überschreiben, um die Nachvollziehbarkeit des Optimierungsprozesses zu gewährleisten. Deshalb darf man '''NICHT''' für den "Bestwert > Parameter übernehmen"!  
* Diese Ausgangslösung sollte man für die lokale Suche im OptiY-Experiment nicht durch den Bestwert überschreiben, um die Nachvollziehbarkeit des Optimierungsprozesses zu gewährleisten. Deshalb darf man '''NICHT''' für den "Bestwert > Parameter übernehmen"!  
Die Überführung der Parameter der optimalen Lösung in das CAD-Modell erfolgt in folgenden Schritten:
Die Überführung der Parameter der optimalen Lösung in das CAD-Modell erfolgt in folgenden Schritten:
# '''Benutzer-Option > File Export=Save''' aktivieren für das Inventor-Modell im Workflow:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert_Save_ins_CAD-Modell.gif|.]] </div>
# '''Benutzer-Option > Save File''' aktivieren für das Inventor-Modell im Workflow:<div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Lokale_Suche_-_Bestwert_Save_ins_CAD-Modell.gif|.]] </div>
# '''''Analyse > Bestwert > Simulation durchführen''''' speist die optimalen Parameter (Bestwert) ins CAD-Modell, welches nach der Simulation mit diesen Werten gespeichert wird.
# '''''Analyse > Bestwert > Simulation durchführen''''' speist die optimalen Parameter (Bestwert) ins CAD-Modell, welches nach der Simulation mit diesen Werten gespeichert wird.
# '''Benutzer-Option > File Export''' wieder deaktivieren!
# '''Benutzer-Option > Save File''' wieder deaktivieren!
# '''Autodesk Inventor starten''' im Windows und die optimale Konfiguration des Bauteils überprüfen.<div align="center"> [[Software:_CAD_-_Tutorial_-_Optimierung_-_Globale_Suche|&larr;]] [[Software:_CAD_-_Tutorial_-_Optimierung_-_Zusammenfassung|&rarr;]] </div>
 
=== Ergebnis der Nennwert-Optimierung ===
 
Teilnehmer der LV notieren den aus der lokalen Suche resultierenden Bestwert (entspricht dem Nennwert-Optimum der Feder) als Bestandteil der einzusendenden Lösung:
* '''Länge''' [mm]
* '''Breite''' [mm]
* '''Dicke''' [mm]
* '''Federkonstante''' [N/m]
* '''Resonanzfrequenz''' [Hz]
* '''Max. zulässige Kraft''' [N]
 
<div align="center"> [[Software:_CAD_-_Tutorial_-_Optimierung_-_Globale_Suche|&larr;]] [[Software:_CAD_-_Tutorial_-_Optimierung_-_Zusammenfassung|&rarr;]] </div>

Aktuelle Version vom 9. Dezember 2022, 15:35 Uhr

Lokale Suche

Bei der globalen Suche haben wir den Einfluss unterschiedlicher Feder-Dicken aufgrund mangelnder Anschaulichkeit und langer Rechenzeiten nicht berücksichtigt. Dies werden wir jetzt bei Anwendung eines lokalen Suchverfahrens nachholen:

  • Die lokale Suche beginnt bei einer Ausgangslösung. Sie bewegt sich im Lösungsraum zielgerichtet zu kleineren Werten der Straf-Funktion, bis ein Minimum erreicht wird (möglichst Strafe=0).
  • Wurde eine gültige Lösung gefunden (Strafe=0), so bewegt sich ein lokales Suchverfahren zielgerichtet zu kleineren Werten der Gütekriterien, bis ein Minimum erreicht ist.
  • Bei den erreichten Minima kann es sich bei ungünstigen Zielfunktionen auch um lokale Minima handeln ("Senken" in der Oberfläche).
  • Man weiß bei komplexen Problemen meist nicht, ob man wirklich das globale Optimum erreicht hat.

Die Zielfunktion in unserem Beispiel ist anscheinend "gutmütig". Die Bewertungsgrößen werden repräsentiert durch stetig gekrümmte, nicht wellige Funktionen.

Experiment duplizieren

Software SimX - Nadelantrieb - Wirkprinzip - experiment duplizieren.gif

OptiY bietet die Möglichkeit, für ein Projekt mehrere Experimente zu verwalten. So können wir die bisherigen Einstellungen beibehalten und als Ausgangspunkt für ein neues Experiment nutzen:

  • Nach dem Duplizieren des Experiments erscheint im OptiY-Explorer die Kopie als Experiment2.
  • Dieses weitere Experiment besitzt am Anfang die gleiche Konfiguration wie das Original. Nur die Anzeigefenster muss man neu definieren.
  • Verwaltet man mehrere Experimente in einem Projekt, so sollte man mittels Umbenennen dafür sinnvolle Namen vergeben:
    • Das bisherige Experiment könnte man z.B. Globale Suche nennen.
    • Für das neue Experiment bietet sich die Bezeichnung Lokale Suche an:
      .

Lokale Suche konfigurieren

Für jedes Experiment wird von OptiY ein separater Workflow verwaltet, so dass darin unabhängig voneinander Änderungen vorgenommen werden können:

  • Zuerst selektieren wir die Lokale Suche über das Kontextmenü als Startup-Experiment, um es zu bearbeiten.
  • Wir aktivieren den Nennwert der Dicke als Variable in den Grenzen von 0,3 mm ... 0,8 mm.
  • Für die Optimierung wählen wir das Hooke-Jeeves-Verfahren mit Startschrittweite=Standard.
  • Wir erhöhen die Zahl der Optimierungsschritte=500 (mittels manuellem Stop Software OptiY - Button - Exp stoppen.gif können wir jederzeit die Berechnung anhalten).
  • Für alle Nennwerte und Bewertungsgrößen öffnen wir ein Nennwert-Diagramm, indem wir mit dem Cursor jede Größe einzeln in den Grafikbereich ziehen.

Nach dem Start der Optimierung ergibt sich folgende zielgerichtete Veränderung der Abmessungen:

.

Problem der Randoptima

Bei technischen Problemstellungen wird die optimale Lösung meist an Restriktionsgrenzen liegen, weil die zu berücksichtigenden Anforderungen oft entgegensetzt wirken. Das führt an Restriktionsgrenzen mit großer Wahrscheinlichkeit zu Problemen der Konvergenz in Richtung einer optimalen Lösung:

  • Bei der in OptiY verwendeten hierarchischen Optimierungsstrategie wird aus den aktuellen Restriktionsverletzungen der Wert einer Straf-Funktion berechnet.
  • Um zuerst alle Forderungen zu erfüllen, hat die Minimierung des Straf-Funktionswertes die höchste Priorität.
  • Erst wenn alle Forderungen erfüllt sind (Straf-Funktionswert=0), widmet sich die Optimierungsstrategie der Verfolgung unserer Wünsche (Minimierung der Gütekriterien).
  • Eine bessere Erfüllung unserer Wünsche (Resonanzfrequenz vergrößern) führt zwangsläufig wieder zu Restriktionsverletzungen (zu große Federkonstante).
  • Damit schaltet der Optimierungsprozess an dieser Stelle ständig zwischen zwei Zielfunktionen hin und her (Forderungen und Wünsche).
  • Die Konvergenz zur optimalen Lösung wird damit meist "zuverlässig" verhindert!

Dieses Problem lässt sich zum Glück einfach lösen, indem man alle Wünsche als Forderungen formuliert:

  • Diese Änderung führen wir über den Workflow-Editor durch.
  • Wir löschen das Gütekriterium "f1" und ergänzen eine neue Restriktionsgröße, die wir ebenfalls "f1" nennen.
  • Wir verknüpfen diese Restriktionsgröße mit der zugehörigen Ausgangsgröße "_f1" des Modells, das negative Vorzeichen ist nun nicht mehr erforderlich:
    • Als unteren Grenzwert geben wir auf Grund unserer Vorkenntnisse aus der globalen Suche eine anzustrebende Resonanzfrequenz ein, welche etwas größer ist, als man voraussichtlich erreichen kann (z.B. Bestwert aus globaler Suche ca. 90 Hz100 Hz als unterer Grenzwert).
    • Der obere Grenzwert sollte ungefähr doppelt so groß sein (im Beispiel dann 200 Hz), weil die Breite des zulässigen Wertebereiches einen Einfluss auf den Strafwert bei Restriktionsverletzung hat.
  • Für F_Max als Restriktionsgröße hatten wir aus "Unwissenheit" einen sehr großen oberen Grenzwert von z.B. 1E6 N verwendet:
    • Anhand der globalen Suche wissen wir inzwischen, dass dort ein Maximalwert von etwas über 2 N auftrat.
    • Damit können wir als oberen Grenzwert diesen Wert von 2 N verwenden.
  • Unser Gütekriterium "Resonanzfrequenz" ist nun selbst Bestandteil der Straf-Funktion und es existieren keine separaten Gütekriterien.
  • Damit entfällt das Umschalten zwischen den Zielfunktionen an den Restriktionsgrenzen und das Verfahren sollte numerisch stabil auf der Straf-Funktion zum Optimum konvergieren:
    .
  • Es fällt auf, dass die Restriktionsgrenzen so gesetzt sind, dass sie nicht alle gleichzeitig erreicht werden können.
  • Deshalb stellt sich eine Kompromisslösung ein, welche dem Straf-Minimum entspricht.
  • In unserem Beispiel müsste man diesen Kompromiss zugunsten einer höheren zulässigen Kraft verschieben.
  • Dies erreicht man, indem man für die Restriktion F_Max den Gewichtfaktor auf z.B. den Wert 10 erhöht.
  • Nach erneuter Optimierung ergibt sich z.B. die folgende akzeptable, optimale Lösung:
    .
  • Wichtig:
    1. Falls f1 den zuvor geschätzten unteren Grenzwert erreicht, muss man diesen soweit erhöhen, bis er durch eine erneute Lösungssuche nicht mehr erreicht werden kann! Erst dann besitzt die Feder die geforderte maximal mögliche Resonanzfrequenz.
    2. Der Bestwert einer lokalen Suche ist erst erreicht, wenn alle Variablen einen eingeschwungenen Zustand erreicht haben (wie im obigen Bild müssen alle Werte dann näherungsweise konstant bleiben!). Wird dies innerhalb der vorgegebenen Schrittzahl nicht erreicht, muss man die Anzahl der Schritte erhöhen und die Berechnung fortsetzen.

CAD-Modell mit Bestwert konfigurieren

Die mittels der lokalen Suche gefundene optimale Lösung kann man sich als Bestwert-Parameter anzeigen lassen:

. .
  • Das CAD-Modell enthält noch immer die Parameter-Konfiguration der Ausgangslösung, weil wir sinnvoller Weise auf ein Speichern des Bauteils bei jedem Optimierungsschritt verzichtet haben.
  • Diese Ausgangslösung sollte man für die lokale Suche im OptiY-Experiment nicht durch den Bestwert überschreiben, um die Nachvollziehbarkeit des Optimierungsprozesses zu gewährleisten. Deshalb darf man NICHT für den "Bestwert > Parameter übernehmen"!

Die Überführung der Parameter der optimalen Lösung in das CAD-Modell erfolgt in folgenden Schritten:

  1. Benutzer-Option > Save File aktivieren für das Inventor-Modell im Workflow:
    .
  2. Analyse > Bestwert > Simulation durchführen speist die optimalen Parameter (Bestwert) ins CAD-Modell, welches nach der Simulation mit diesen Werten gespeichert wird.
  3. Benutzer-Option > Save File wieder deaktivieren!

Ergebnis der Nennwert-Optimierung

Teilnehmer der LV notieren den aus der lokalen Suche resultierenden Bestwert (entspricht dem Nennwert-Optimum der Feder) als Bestandteil der einzusendenden Lösung:

  • Länge [mm]
  • Breite [mm]
  • Dicke [mm]
  • Federkonstante [N/m]
  • Resonanzfrequenz [Hz]
  • Max. zulässige Kraft [N]