Software: FEMM - Stromfluss - OptiY-Workflow

Aus OptiYummy
Zur Navigation springenZur Suche springen

Simulation des Trimmens
- OptiY-Workflow mit Modell -

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).


Abweichung=sqr(R-RN)


Wir nutzen als Optimierungstool OptiY, welches als 30-Tage-Demoversion zum Download bereitgestellt wird. Teilnehmer der Lehrveranstaltung Praktische Einführung in die FEM erhalten eine spezielle Lehrversion vom Betreuer. 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:
    Software FEMM - Stromfluss - Optiy gestartet.gif

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 Software FEMM button external script.gif öffnet den erforderlichen Konfigurationsdialog.

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, dann sollten wir ein DOS-Batch Script verwenden!


2. DOS-Batch Script:

Im fast in Vergessenheit geratenem MS-DOS konnte man mit BAT-Dateien automatisiert eine Folge von MS-DOS-Kommandos ausführen. Das funktioniert auch noch unter Microsoft Windows:

Software FEMM - Stromfluss - Optiy bat-script-konfig.gif
Software FEMM - Stromfluss - Optiy bat-script-edit.gif
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 Pad-Angabe aufgerufen werden!
  • Es muss der komplette Pfad der LUA-Datei angegeben werden, wobei hier nur einfache Backslash \ zu verwenden sind.
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:
    Software FEMM - Stromfluss - Optiy Nennwerte einfuegen.gif
  • 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:
    Software FEMM - Stromfluss - Optiy Nennwert-Dialog.gif
  • 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):
    Software FEMM - Stromfluss - Optiy Kriterium eingefuegt.gif
  • 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):
    Software FEMM - Stromfluss - Optiy Ausgang einfuegen.gif
  • 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):
    Software FEMM - Stromfluss - Optiy Rechner.gif
  • Die Abhängigkeiten zwischen dem Gütekriterium und den zugrunde gelegten Größen widerspiegelt sich danach im Workflow:
    Software FEMM - Stromfluss - Optiy nach bearbeiten guete.gif

Achtung: Den aktuellen Zustand des OptiY-Versuchsstands speichern die Teilnehmer der Lehrveranstaltung als Datei LaserTrimm_xx.OPY mit xx=Teilnehmer-Nummer.