Software: SimX - Nadelantrieb - Aktordynamik - Hysterese-Nennwertoptimierung: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(42 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_SimX_-_Nadelantrieb_-_Aktordynamik|&uarr;]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Modell|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Experimentauswertung|&rarr;]] </div> <div align="center">''' Nennwert-Optimierung mit Wirbelstrom und Hysterese '''</div>
[[Software:_SimX_-_Nadelantrieb_-_Aktordynamik|]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Modell|]] [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Experimentauswertung|]] </div> <div align="center">''' Nennwert-Optimierung mit Wirbelstrom und Hysterese '''</div>
 
 
Wir benutzen den ''OptiY''-Versuchsstand '''Etappe2b-xx.opy''', um mit dem bereits definierten Experiment-Workflow eine optimale Parameter-Konfiguration unter Berücksichtigung von Wirbelstrom und Magnet-Hysterese zu finden:
* Von dem unter Berücksichtigung des Wirbelstroms ermittelten '''''Bestwert''''' werden wir die '''''Parameter übernehmen''''' als Startwert für die erneute Präzisierung der optimalen Lösung.
* Wir können die Optimierung mit dem Hooke-Jeeves-Verfahren starten, werden aber wahrscheinlich an unterschiedlichsten numerischen Problemen scheitern. Diese numerischen Probleme sollen deshalb im Folgenden näher betrachtet werden. Dazu schließen wir vorläufig ''OptiY'' und damit auch das Modell in ''SimulationX''.
 
Danach öffnen wir nur das ''SimulationX''-Modell, um dieses in Hinblick auf die Optimierung günstiger zu konfigurieren.
 
Auch wenn ein Modell im ''SimulationX'' bereits berechnet werden konnte, ist die Chance sehr groß, dass es infolge der unterschiedlichsten Parameter-Kombinationen während der Optimierung zu numerischen Problemen kommt. Es gibt hierbei mehrere Klassen von Fehlern, die vom ''OptiY'' unterschiedlich behandelt werden:
 
'''1. Simulationsabruch mit Fehlermeldung:'''
* ''OptiY'' markiert den betroffenen Optimierungsschritt in der Nennwert-Tabelle als "Failed".
* Die Bewertungsgrößen besitzen den Wert zum Zeitpunkt des Simulationsabbruchs.
* Diese Werte fließen zwar nicht in die Optimierung mit ein, stören aber in den Verläufen der Nennwert-Diagramme als Extremwert-Spitzen.
* Im Beispiel sollte man '''tZyklus.y0''' ungefähr auf den Wert der maximal zulässigen Zykluszeit setzen (z.B. '''3.4&nbsp;ms'''). Damit erhält man hier keinen "Ausreißer" bei einer abnormalen Beendigung von Simulationsläufen.
* In dieser Fehler-Klasse sind zwei Fehler-Arten besonders typisch:
# '''"Die geforderte Genauigkeit kann nicht erreicht werden"''' <br>Es erfolgt die Aufforderung ''dtMin'' zu verkleinern. Im Beispiel hat sich '''dtMin=1e-12&nbsp;s''' als günstig erwiesen. Bei Bedarf kann man diesen Wert noch etwas verkleinern. Wird ''dtMin'' zu klein (z.B. 1e-20&nbsp;s), dann führt das wieder zu anderen Fehlern (z.B. endloses Rechnen an kritischen Stellen).<br>Im Beispiel trat dieser "Genauigkeitsfehler" gehäuft nach Vollendung des Prägezyklus auf, wenn die Nadel in der Ruhelage an den starren Anschlag gedrückt wird. Man löst dieses Problem, indem man den Simulationslauf mit '''termCond=(Praegung.y>=1)and(tZyklus.y>1e-3)''' vorzeitig beendet (''Kontext-Menü von Modell''):<div align="center"> [[Bild:Software_SimX_-_Simulation_vorzeitig_beenden.gif| ]] </div>
# '''"Fehler in der Ereignisbehandlung"''' <br>Im Beispiel ist davon besonders häufig der Abschaltvorgang betroffen. Dort finden gleichzeitig mehrere numerische Ereignisse statt (''Starrer Anschlag'' der Nadel, ''Sample & Hold'' für tZyklus, ''onoff''-Wechsel des Schalters, Schalten der Diode).<br>Im Beispiel half ein Verringern des Parallelwiderstands in der '''Diode''' auf '''R=10000&nbsp;Ohm'''. Damit wird zumindest der elektrische Schaltvorgang etwas "entschärft".
 
'''2. "Ewiges Rechnen" ohne Fehlermeldung:'''
* ''OptiY'' wartet "ewig" auf das Ende des Simulationslaufs.
* Hier hilft nur der manuelle Eingriff:
# Optimierungslauf im ''OptiY'' stoppen. Im ''SimulationX'' wird damit der aktuelle Lauf ebenfalls gestoppt, das Modell enthält die Parameter dieses kritischen Laufes.
# Rücksetzen des Simulationslaufes im ''SimulationX'' und erneuter Start der Simulation führt zu erneutem "ewigen" Rechnen. Hiervon wird meist der Ausschaltvorgang für den Magneten betroffen sein. Man sollte sich über die konkrete Stelle in jedem Fall informieren, damit man weiß, wo solche kritischen Stellen im Modell sind.
# Damit man über das Abschalten mit den jeweiligen kritischen Parametern hinweg kommt, genügt das Ändern des Parallelwiderstands der Diode auf einen kleineren oder größeren Wert.
# Wenn die Simulation im ''SimulationX'' für den Lauf funktioniert, kann man im ''OptiY'' die Optimierung fortsetzen.
# Diesen manuellen Eingriff muss man für alle Optimierungsschritte durchführen, bei denen sich das Modell "verklemmt". Wahrscheinlich wird es dafür in nächster Zeit Abhilfe durch das ''OptiY'' bzw. das ''SimulationX'' geben.
 
'''3. "Falsches Rechnen" ohne Fehlermeldung:'''
* Im Beispiel tritt bei der Benutzung der Eisen-Hysterese sporadisch der Effekt auf, dass der Solver "Irrwege" beschreitet.
* Der Strom geht dabei sofort auf seinen ohmschen Grenzwert von ca. 20&nbsp;A. Die wirksame Kraft ist jedoch zu gering, um den Anzugsvorgang auszuführen.
* Vom ''OptiY'' wird solch ein Simulationslauf als sinnvoll behandelt. Da hierbei zum Glück die Restriktion ''Praegung'' verletzt ist und der Fehler nur sporadisch auftritt, gibt es keine Auswirkung dieses Fehlers auf die erreichte optimale Lösung.
 
Im Beispiel erwiesen sich die folgenden Einstellungen für die transiente Simulation als robust. Im Einzelfall kann eine leichte Verringerung von ''dtMin'' zu besserem Verhalten führen:
<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Aktordynamik_-_hysterese-simulationssteuerung.gif| ]] </div>
'''''Hinweis:''''' <br> Die geschilderten Probleme sind normal bei der numerischen Optimierung komplexer und stark nichtlinearer Systeme. Die wachsende "Intelligenz" der Software hält einen immer größeren Teil dieser Probleme vom Anwender fern. Trotzdem ist für absehbare Zeit der Eingriff des Menschen in solche Optimierungsprozesse noch erforderlich.


Nach dem Öffnen des vorhandenen OptiY-Versuchsstandes '''Etappe2b_xx.opy''' gelangen wir mit den [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Wirbelstrom-Nennwertoptimierung|'''bereits geübten Schritten''']] zum benötigten Versuchsstand '''Etappe2c_xx.opy''' für das Hysterese-Modell:
* Günstig für die Konvergenz des Hooke-Jeeves-Verfahrens zum Optimum ist eine Reduktion der '''Startschrittweiten auf ca. 1/1000 der Start-Nennwerte'''. Dies ist möglich, weil das Rauschen des Simulationsmodells infolge der Erhöhung der Rechengenauigkeit gering ist!
* Es kommt in seltenen Fällen zu "ewigem Rechnen" eines Simulationslaufes mit extrem kleinen Schrittweiten an kritischen Stellen. Wir können für solche Fälle durch ''OptiY'' einen Abbruch der Simulation veranlassen. Dazu setzen wir im ''OptiY''-Workflow für das ''SimulationX''-Modell in der Registerkarte "Allgemein" die "'''Max. Prozesszeit&nbsp;=&nbsp;1&nbsp;s'''".


Falls das Modell erst einmal stabil rechnet, ist die Nennwert-Optimierung kein großes Problem:
Falls das Modell erst einmal stabil rechnet, ist die Nennwert-Optimierung kein großes Problem:
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Aktordynamik_-_hysterese-optimierungsverlauf.gif| ]]</div>[[Bild:memo_stempel.gif|right]]
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Aktordynamik_-_hysterese-optimierungsverlauf.gif|.]]</div>  
'''''Merke:''''' <br>Das globale Nennwert-Optimum eines technischen Systems schöpft im Normalfall alle Restriktionsgrenzen aus.
* Im obigen Beispiel wurde eineZykluszeit von '''3,4&nbsp;ms''' angestrebt, aber nicht ganz erreicht.
 
* Man müsste die Optimierung mit einem leicht vergrößertem Zielwert für die Zykluszeit wiederholen. Für solche Iterationen sollte man den folgenden Hinweis berücksichtigen.
 
Im Beispiel wurde der Grenzwert des Stromes nicht ganz ausgeschöpft, so dass noch geringfügige Verbesserungen der Zykluszeit zu erwarten sind:
* Der Pfad zum "absoluten" Optimum führt entlang der Restriktionsgrenze für die Abschaltspannung.
* Dieser Pfad ist extrem schmal und fast ohne Gefälle. Eine Erhöhung des Stromwertes führt in einem höheren Maße zur Überschreitung der Abschaltspannung, als zu einer Verkürzung der Zykluszeit.
* Die noch mögliche Verbesserung der Zykluszeit ist anscheinend nur akademischer Natur.
* Eine Abschätzung, in welchem Maße noch Verbesserungen der optimalen Lösung zu erwarten sind, gelingt nur nach intensiven Analysen.
 
 
 
 
'''''===>>> Hier geht es gleich weiter !!!'''''




<div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Modell|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Experimentauswertung|&rarr;]] </div>
'''''Hinweis'':'''
* Der Wert von '''R_Spule''' wird zwar "optimiert", der tatsächliche Einfluss auf das Antriebsverhalten geht aber gegen Null!
* Es ist günstig, '''R_Spule als Konstante''' mit einem Wert von '''1&nbsp;Ohm''' zu berücksichtigen → der Bestwert wird dann ca. mit der Hälfte der Optimierungsschritte erreicht.
<div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Modell|]] [[Software:_SimX_-_Nadelantrieb_-_Aktordynamik_-_Hysterese-Experimentauswertung|]] </div>

Aktuelle Version vom 27. Februar 2024, 11:45 Uhr

Nennwert-Optimierung mit Wirbelstrom und Hysterese

Nach dem Öffnen des vorhandenen OptiY-Versuchsstandes Etappe2b_xx.opy gelangen wir mit den bereits geübten Schritten zum benötigten Versuchsstand Etappe2c_xx.opy für das Hysterese-Modell:

  • Günstig für die Konvergenz des Hooke-Jeeves-Verfahrens zum Optimum ist eine Reduktion der Startschrittweiten auf ca. 1/1000 der Start-Nennwerte. Dies ist möglich, weil das Rauschen des Simulationsmodells infolge der Erhöhung der Rechengenauigkeit gering ist!
  • Es kommt in seltenen Fällen zu "ewigem Rechnen" eines Simulationslaufes mit extrem kleinen Schrittweiten an kritischen Stellen. Wir können für solche Fälle durch OptiY einen Abbruch der Simulation veranlassen. Dazu setzen wir im OptiY-Workflow für das SimulationX-Modell in der Registerkarte "Allgemein" die "Max. Prozesszeit = 1 s".

Falls das Modell erst einmal stabil rechnet, ist die Nennwert-Optimierung kein großes Problem:

.
  • Im obigen Beispiel wurde eineZykluszeit von 3,4 ms angestrebt, aber nicht ganz erreicht.
  • Man müsste die Optimierung mit einem leicht vergrößertem Zielwert für die Zykluszeit wiederholen. Für solche Iterationen sollte man den folgenden Hinweis berücksichtigen.


Hinweis:

  • Der Wert von R_Spule wird zwar "optimiert", der tatsächliche Einfluss auf das Antriebsverhalten geht aber gegen Null!
  • Es ist günstig, R_Spule als Konstante mit einem Wert von 1 Ohm zu berücksichtigen → der Bestwert wird dann ca. mit der Hälfte der Optimierungsschritte erreicht.