Software: FEM - Tutorial - Magnetfeld - Einbindung in OptiY-Workflow
Die Ermittlung einer Kraft-Weg-Kennlinie wird im FEMM-Beispiel https://www.femm.info/wiki/CoilGun behandelt. Dieses Beispiel sollte man sich einmal anschauen. Die zugehörige Modell-Datei und Lua-Scriptdatei kann man von dort laden und erspart sich damit das Eintippen:
- Kennlinien oder auch höherdimensionale Kennfelder werden durch systematisches Abtasten der abzubildenden Funktion gebildet.
- Jeder Abtastpunkt entspricht einer vollständigen FEM-Berechnung, meist einschließlich des kompletten Pre-Prozesses.
- Innerhalb von Script-Dateien realisiert man das systematische Abtasten, indem man die Funktionsvariablen in (geschachtelten) Schleifen-Anweisungen zwischen vorgegebenen Grenzen variiert.
- Im "coilgun"-Beispiel wird ein Block des Modells Schritt für Schritt verschoben.
- Nach der Berechnung steht man dann noch vor dem Problem, die Ergebnisse in eine Form zu konvertieren, welche für die weitere Verarbeitung (z.B. zur Dynamik-Simulation) nutzbar ist.
Wir gehen in dieser Übung einen einfacheren Weg, indem wir die Möglichkeiten eines Optimierungstools zur Rastersuche verwenden. Die erhaltenen Ergebnisse stellen wir anschaulich als 3D-Diagramme dar. Als Optimierungstool nutzen wir OptiY. Die Trial Edition ist ausreichend, welche unter www.optiy.eu/Download.html bereitgestellt wird. Im Rahmen der Übung wird die Konfiguration der erforderlichen Optimierungsexperimente für den Einsteiger beschrieben. Vorkenntnisse zum Programm OptiY sind also nicht erforderlich:
- Hinweis zur Nutzung hochauflösender Displays:
- Viele Programme haben Probleme mit extrem hochauflösenden Bildschirmen, wie sie verstärkt in modernen Tablett-Computern zum Einsatz kommen. In OptiY äußert sich dies in teilweise unlesbar kleinen Diagramm-Legenden oder sich überlappenden Listen-Elementen.
- Abhilfe schaffen hier die Kompatibilitätseinstellungen (Kontextmenü des OptiY-Icon auf dem Desktop) "Hohe DPI-Einstellungen ändern":
- Es ist der Modus "Verhalten bei hoher DPI-Skalierung überschreiben" zu aktivieren und "Skalierung durchgeführt von System" einzustellen. Danach sollten alle Programm-Komponente in aufeinander abgestimmter Skalierung dargestellt werden.
- Nach der wahrscheinlich problemlosen Installation kann das Programm OptiY gestartet werden:
Mit dem Workflow-Editor (Menü Einfügen) von OptiY fügen wir unser Lua-Script des FEMM-Modells als Externes Script-Modell 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.
Im OptiY werden mehrere Script-Sprachen unterstützt. Beispielhaft soll dies im Folgenden für zwei Script-Typen demonstriert werden:
1. Visual Basic Script (nur zur Information - in dieser Übung nicht anwenden!):
Zur Aktivierung der Schnittstelle und Aufruf des FEMM-Programms werden wir im Rahmen dieser Übung VBScript nicht als Scriptsprache benutzen, weil über die COM-Schnittstelle keine Parallelisierung der Berechnung möglich ist.
- Im Script-Editor muss der komplette Pfad der Lua-Datei angegeben werden, wobei unbedingt doppelte Backslash \\ zu verwenden sind:
Set femm = CreateObject("femm.ActiveFEMM") femm.call2femm ("dofile (""E:\\femm\\Magnet_xx.LUA"")")
- Für dieses im Script-Editor von OptiY eingetragene Script generiert OptiY bei der Experiment-Durchführung eine Script-Datei und startet sie.
- Wichtig: Damit der FEMM-Aufruf mittels VBScript funktioniert, muss das FEMM-Programm richtig als COM-Objekt registriert sein. Dazu muss FEMM zuvor mindestens einmal mit Administrator-Rechten gestartet werden.
2. DOS-Batch Script:
Im fast in Vergessenheit geratenem Betriebssystem MS-DOS konnte man mit BAT-Dateien automatisiert eine Folge von MS-DOS-Kommandos ausführen. Das funktioniert auch noch unter Microsoft Windows und ermöglicht die parallele Abarbeitung der Modellberechnungen:
Wichtig: vorläufig konfigurieren wir den Prozess als seriell, weil zur Realisierung einer parallelen Abarbeitung der Batch-Scripte noch weitere Maßnahmen erforderlich sind.
- Im DOS-Batch-Script nur einfache Backslash \ im Pfadbezeichner zu verwenden.
- Ist das FEMM-Programmverzeichnis nicht Bestandteil des Suchpfades (PATH), so kann die femm.exe nur mit der vollständigen Pfad-Angabe aufgerufen werden.
- Der komplette Pfad der Lua-Datei muss nicht angegeben werden, wenn sich die Lua-Datei im aktuellen Ordner befindet. Dies realisieren wir mit cd-Kommando (Change Directory):
:: Ordner des Batch-Skripts wird zum aktuellen Ordner: cd /D %~dp0 :: Aufruf von FEMM mit Lua-Datei im aktuellen Ordner: C:\Programme\femm42\bin\femm.exe -lua-script=Magnet_xx.LUA -windowhide
- Hinweis: Im PC-Pool findet man FEMM im Standardpfad der Installation: C:\femm42 , es entfällt also der Unterordner Programme im Pfad.
- Achtung:
Enthält ein Dateiname Leer- oder Sonderzeichen, so muss er in Anführungsstrichen notiert werden, z.B.:
"c:\Program Files (x86)\femm42\bin\femm.exe" -lua-script=Magnet_xx.LUA -windowhide
- Der Parameter "-windowhide" vermeidet während der durch OptiY veranlassten FEMM-Berechnungen 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. Für die Ermittlung der Kennfelder beschränken wir uns auf die zwei zu variierenden Parameter Spulenstrom i und Arbeitsluftspalt s.
- 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 sinnvollen Namen und Kommentar 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 müssen die berechneten Werte für die Magnetkraft F und den Koppelfluss Psi eingefügt werden. Nur dann kann man die beiden Kennfelder als 3D-Diagramm darstellen. Wir definieren beide Größen als Gütekriterien (Einfügen > Gütekriterien):
- Den Gütekriterien kann man nicht direkt die Ergebnisgrößen eines Modells zuweisen. Deshalb benötigt man zusätzliche Ausgangsgrößen, welche die Ergebnisse des Modells repräsentieren (Einfügen > Ausgangsgrößen). Da gleiche Namen für unterschiedliche Variablen im Workflow nicht zulässig sind, stellen wir bei den Ausgangsgrößen einen Unterstrich voran, welche den gleichen Wert besitzen, wie das zugeordnete Gütekriterium:
- Die Verknüpfung zwischen Ausgangsgröße und Güterkriterium stellt man her, indem man den "Ausdruck" des Gütekriteriums mit dem Wert der Ausgangsgröße belegt. Nach Doppelklick auf das Kriterium aktiviert man mit Editieren eine Art "Taschenrechner". Mit diesem klickt man die erforderliche Formel zusammen (Doppelklick zum Einfügen einer der aufgelisteten Workflow-Größen):
- Für die Kraft F ist es günstig, aus Gründen der Anschaulichkeit den Absolutwert abs(_F) zu verwenden, da im FEMM-Modell negative Kraftwerte berechnet werden. Die Verknüpfung zwischen den Gütekriterien und den Ausgangsgrößen widerspiegelt sich danach im Workflow:
Achtung: Den aktuellen Zustand des OptiY-Versuchsstandes speichern wir als Datei Magnet_xx.opy mit xx=Teilnehmer-Nummer
Nun fehlt nur noch die Ankopplung der Nennwerte und der Ausgangsgrößen an das FEMM-Modell. Diesem Problem widmen wir uns auf der nächsten Seite. Dazu verlassen wir OptiY und arbeiten wieder mit dem FEMM-Programm samt zugehörigem Script-Editor.