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.
- 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 für zwei Script-Typen demonstriert werden:
1. Visual Basic Script
Zur Aktivierung der Schnittstelle und Aufruf des FEMM-Programms werden wir im Rahmen dieser Übung VBScript als Scriptsprache benutzen.
Set femm = CreateObject("femm.ActiveFEMM") femm.call2femm ("dofile (""E:\\_FEM\\LaserTrimm_xx.LUA"")")
- Es muss der komplette Pfad der LUA-Datei angegeben werden, wobei unbedingt doppelte Backslash \\ zu verwenden sind.
- Für dieses im Script-Editor von OptiY eingetragene Script generiert OptiY bei der Experiment-Durchführung eine Script-Datei und startet sie.
Hinweis:
Manchmal funktioniert in der konkreten Windows-Umgebung diese Script-Form nicht richtig. Falls es trotz korrekter Schreibweise der Pfad- und Datei-Namen bzw. der Scriptzeilen nicht gelingt, das FEMM-Programm im OptiY bei der Experiment-Durchführung zu starten, ist unter Umständen FEMM als COM-Objekt nicht richtig im Windows registriert. Dazu muss man FEMM einmalig als Administrator starten. Das Prinzip ist als [Software:_Workaround#Transfer_vom_Script-Editor_zum_OptiY_deaktiviert OptiY-Workaround] beschrieben (hier für FEMM anwenden). Hilft dies nicht, dann müssen wir ein DOS-Batch Script verwenden!
2. DOS-Batch Script:
Im fast in Vergessenheit geratenen MS-DOS konnte man mit BAT-Dateien automatisiert eine Folge von MS-DOS-Kommandos ausführen. Das funktioniert auch noch unter Microsoft Windows:
F:\Programme\femm42\bin\femm.exe -lua-script=E:\_FEM\LaserTrimm_xx.LUA
- Ist das FEMM-Programmverzeichnis nicht Bestandteil des Suchpfades (PATH), so kann die femm.exe nur mit der vollständigen Pfad-Angabe aufgerufen werden!
- Es muss der komplette Pfad der LUA-Datei angegeben werden, wobei hier nur einfache Backslash \ zu verwenden sind.
- Wichtig:
Enthält der Pfad der LUA-Datei Leerzeichen, so ist der Pfad in "" einzuschließen! Umlaute (z.B. ä, ß) sind zu vermeiden, da es Probleme mit unterschiedlichen Zeichensätzen geben kann. - Hinweis:
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!
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.