Software: FEMM - Stromfluss - OptiY-Workflow
Verfahren der numerischen Optimierung sind in der Lage, Extremwerte auf einer Zielfunktion zu finden. Kann man eine Zielfunktion für ein zu lösendes Problem definieren, so ist es möglich die Lösung dieser Problemstellung an ein Optimierungstool delegieren:
- Unser Problem ist sehr simpel - wir suchen die Schnittlänge Ls für die Erreichung eines vorgegebenen Widerstandswertes RN.
- Eine Zielfunktion sollte man als Distanz zur idealen Lösung definieren. D.h., der Zielfunktionswert Abweichung sollte im Beispiel Null werden, wenn 'R' den Sollwert 'RN' erreicht.
- Die "Fehlerquadrat-Summe" ist günstig (Positives Vorzeichen, Wichtung des Abstands und stetige Ableitung):
Wir nutzen als Optimierungstool OptiY, welches als Trial Edition zum Download bereitgestellt wird. Im Rahmen der Übung wird die Konfiguration des erforderlichen Optimierungsexperiments für den Einsteiger beschrieben. Vorkenntnisse zum Programm OptiY sind also nicht erforderlich.
Wichtig: Teilnehmer der Lehrveranstaltung FEM erhalten die zu nutzende Programm-Version vom Betreuer!
- Nach der wahrscheinlich problemlosen Installation unter Windows kann das Programm OptiY gestartet werden:
Mit dem Workflow-Editor (Menü Einfügen) von OptiY fügen wir unser LUA-Script des FEMM-Simulationsmodells als Externes Script an zentraler Stelle in den Workflow des Experiments ein:
- Über dieses Script muss das FEMM-Programm gestartet werden, welches dann seinerseits das LUA-Script ausführt.
- Die Ausführung des LUA-Scripts im FEMM kann man über das vom FEMM-Programm bereitgestellte ActiveX-Interface veranlassen.
- Ein Doppelklick auf das platzierte Symbol öffnet den erforderlichen Konfigurationsdialog.
- Achtung: Als Arbeitsverzeichnis sollte man grundsätzlich nur \ (Backslash) anstatt einer absoluten Pfadangabe benutzen. Dann wird der Ordner benutzt, in dem die .OPY-Datei gespeichert ist.
Im OptiY werden mehrere Script-Sprachen unterstützt. Beispielhaft soll dies im Folgenden nur für das DOS-Batch Script demonstriert werden:
- Im fast in Vergessenheit geratenen Betriebssystem MS-DOS konnte man mit BAT-Dateien automatisiert eine Folge von MS-DOS-Kommandos ausführen. Das funktioniert auch noch unter Microsoft Windows:
C:\Programme\femm42\bin\femm.exe -lua-script=LaserTrimm_xx.LUA -windowhide
- Ist das FEMM-Programmverzeichnis nicht Bestandteil des Suchpfades (PATH), so kann die femm.exe nur mit der vollständigen Pfad-Angabe aufgerufen werden!
- Enthält der Programmpfad Leer- oder Sonderzeichen, so muss er in Anführungszeichen eingeschlossen werden (z.B.: "c:\Program Files\..\femm.exe").
- Der komplette Pfad der LUA-Datei muss nicht angegeben werden, wenn sich diese Datei im gleichen Ordner befindet, wie die OptiY-Projektdatei (.opy).
- Der Parameter "-windowhide" vermeidet während der Optimierung das periodische "Fenster-Geflacker" durch eine Unterdrückung des FEMM-Programmfensters.
Hinweise zum LUA-Script-Anpassung:
- Wird die Abarbeitung des LUA-Scripts über DOS-Batch veranlasst, so endet das FEMM-Programm nicht selbstständig. Das LUA-Script muss deshalb abschließend um den exit-Befehl erweitert werden:
exit();
- Möchte man das gleiche LUA-Script ohne OptiY autonom im FEMM benutzen, so muss man natürlich diesen exit-Befehl "auskommentieren", damit das FEMM nach Script-Abarbeitung nicht sofort endet!
- Um die FEMM-Berechnung während der Optimierung wirklich ohne Fenster-Geflacker auszuführen, muss man zusätzlich noch das Öffnen der LUA-Console abschalten:
-- showconsole(); -- LUA-Console öffnen, falls Script als Datei ausgeführt hideconsole(); -- LUA-Console verstecken
Es ist möglich, im OptiY-Workflow die Verbindung mit allen Eingabe-Parametern des Modells herzustellen. Innerhalb dieser Übung beschränken wir uns aus Aufwandsgründen auf die zwei wesentlichen Parameter Schnittlänge Ls und Sollwert RN:
- Für jeden dieser Parameter ist im Workflow ein Nennwert einzufügen:
- Ein Doppelklick auf das generierte Symbol öffnet den Konfigurationsdialog für den Nennwert. Hier sollte man einen sinnvolle Namen und Kommentare vergeben. Der Name muss nicht, sollte aber mit dem Parameter-Namen im Modell übereinstimmen:
- Mit den noch fehlenden Verbindungen zwischen dem FEMM-Modell und den beiden im Workflow definierten Nennwerten beschäftigen wir uns später!
- Im OptiY-Workflow muss das Gütekriterium Abweichung als berechneter Wert der Zielfunktion zur Verfügung stehen (Einfügen: Gütekriterien):
- Den Wert dieses quadratischen Restfehlers könnten wir auf dem Niveau des Workflows noch nicht berechnen. Dort steht bisher nur der Wert des Sollwerts RN zur Verfügung.
- Im OptiY-Workflow müssen alle in den Modellen berechneten Ausgangsgrößen zur Verfügung gestellt werden, die man für die Berechnung der Gütekriterien benötigt (Einfügen: Ausgangsgrößen):
- Nun kann man die Abweichung aus RN und R_ist berechnen. Nach erneutem Doppelklick auf das Kriterium Abweichung aktiviert man mit Editieren eine Art "Taschenrechner". Mit diesem klickt man die erforderliche Formel zusammen (Doppelklick zum Einfügen einer Workflow-Größe):
- Die Abhängigkeiten zwischen dem Gütekriterium und den zugrunde gelegten Größen widerspiegelt sich danach im Workflow. Man kann die Verbindungslinien mit dem Cursor noch an anschaulichere Positionen schieben:
Achtung: Den aktuellen Zustand des OptiY-Versuchsstands speichern die Teilnehmer der Lehrveranstaltung als Datei LaserTrimm_xx.opy mit xx=Teilnehmer-Nummer.