Software: FEM - Tutorial - Magnetfeld - OptiY-Datenschnittstellen: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
|||
Zeile 113: | Zeile 113: | ||
------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ||
: | : | ||
Die Input-Zeilen mit den Parameter-Namen werden jeweils überlesen. Der auf der nächsten Zeile folgende Wert wird dem im Script definierten Parameter-Bezeichner zugewiesen. | |||
'''''Achtung:''''' Es ist unbedingt zu überprüfen, ob nach der Verwendung einer Input-Datei mit den gleichen Parameter-Werten wirklich die gleichen Ergebnisse berechnet werden! | |||
=== Output-Datei für Simulationsergebnisse === | |||
Die für die Bewertung der Simulation relevanten Ergebnisgrößen müssen ebenfalls in eine Textdatei geschrieben werden. In unserem Beispiel sind das die Magnetkraft und der Koppelfluss: | |||
: | |||
-- Output-File mit Ergebniswerten erzeugen: | |||
out = openfile(mydir .. "Ergebnis_xx.txt", "w"); | |||
write (out,"F=" , Fz_Anker, "\n"); | |||
write (out,"Psi=", Psi , "\n"); | |||
closefile(out); | |||
Die erforderlichen File-Operationen werden an das Ende des LUA-Scripts platziert. | |||
=== Verifizierung des Modells === | |||
Nach diesen Änderungen müssen nach Ausführung des kompletten LUA-Scripts im FEMM in der Datei '''Ergebnis_xx.txt''' die richtigen Werte für Magnetkraft und Koppelfluss stehen.. | |||
=== Einbindung in den OptiY-Workflow === | |||
Falls es nicht mehr geöffnet ist, so öffnen wir erneut OptiY mit der Datei Magnet_xx.opy und ergänzen nun die fehlende Einbindung des Modells. | |||
Version vom 11. Juni 2009, 10:45 Uhr
Es existieren unterschiedliche Varianten, wie ein Optimierungstool die Parameterwerte (Input) eines Modells modifizieren und auf die damit berechneten Ergebniswerte (Output) zugreifen kann. Eine sehr allgemeine und übersichtliche Methode ist die Benutzung von ASCII-Textdateien für den Input/Output eines Modells:
- Das Optimierungstool schreibt die aktuellen Parameterwerte an die dafür vorgesehenen Stellen in eine Textdatei.
- Aus dieser Textdatei erhält das Modell seine Werte für eine Simulationsrechnung.
- Die berechneten Ergebnisgrößen werden nach der Simulationsrechnung wieder an definierten Stellen in eine andere Textdatei geschrieben.
- Das Optimierungstool liest diese Ergebniswerte aus der Textdatei und verarbeitet sie je nach Experimentierziel. In unserem Beispiel würden die Ergebnisgrößen nur als Funktionsfläche in 3D-Diagrammen dargestellt.
Es ist meist besser, eine strikte Trennung zwischen Parametern (Input-File), Modell (LUA-Script) und Ergebnisgrößen (Output-File) vorzunehmen. In diesem Sinne soll das LUA-Script nun umgestaltet werden.
Input-Datei für Vorgabe-Parameter
Bisher sind die Input-Parameter Bestandteil des Modell-Scripts. Die Input-Parameter sollen als separate Textdatei gestaltet werden. Für diese Übung nennen wir die ASCII-Textdatei Eingabe_xx.txt (mit xx=Teilnehmer-Nummer).
Die Datenwerte in dieser Textdatei müssen so strukturiert werden, dass sowohl das Optimierungsprogramm als auch das Modellscript problemlos darauf zugreifen können:
dMagnet 40 hTopf 27.5 dAnker 10 lAnker 10 hDeckel 2.5 dStift 1 dWand 1 wSpule 400 dLack 0.06 sWickel 0.5 sAnker 1 sDeckel 0.01 sGleit 0.1 iSpule 1
Achtung: Die Teilnehmer-Nummer xx und die Material-Parameter kommen hier nicht in die Input-Datei, sondern bleiben Bestandteil des Modells!
Einlesen der Daten im LUA-Script
Die ursprünglichen Parameterwerte sollte man mit Standardwerten versehen und auskommentieren. Damit weiß man auch später noch, um welche Parameter es sich handelt.
Achtung: Die Teilnehmer-Nummer xx ist nicht auskommentiert!
: ------------------------------------------------------------------------------- -- Konstruktive, technologische und Betriebs-Parameter (Standardwerte) -- ------------------------------------------------------------------------------- xx=00; -- Teilnehmer-Nr. 00 bis 30 -- dMagnet=40; -- Topf-Durchmesser [mm] -- hTopf=27.5; -- Topf-Höhe [mm] -- dAnker=10; -- Anker-Durchmesser [mm] -- lAnker=10; -- Anker-Länge [mm] -- hDeckel=2.5; -- Höhe des Deckels bzw. Topfbodens [mm] -- dStift=1; -- Durchmesser der Bohrung [mm] -- dWand=1; -- Wandstärke des Topfes [mm] -- wSpule=400; -- Windungen in der Spule -- dLack=0.06; -- Gesamtdicke der Drahtbeschichtung [mm] -- sWickel=0.5; -- Spalt zw. Spulendraht und Eisen [mm] -- sAnker=1; -- Arbeitsluftspalt [mm] -- sDeckel=0.01; -- Restspalt zw. Deckel und Topf [mm] -- sGleit=0.1; -- Führungsluftspalt für Anker [mm] -- iSpule=1; -- Spulenstrom [A] -- Parameter aus Textdatei einlesen mit Fehlertest in = openfile(mydir .. "Eingabe_xx.txt","r"); -- Datei öffnen zum Lesen if in then -- wenn Datei geöffnet, dann Werte einlesen read(in, "*l"); dMagnet = read(in, "*l", "*n"); read(in, "*l"); hTopf = read(in, "*l", "*n"); read(in, "*l"); dAnker = read(in, "*l", "*n"); read(in, "*l"); lAnker = read(in, "*l", "*n"); read(in, "*l"); hDeckel = read(in, "*l", "*n"); read(in, "*l"); dStift = read(in, "*l", "*n"); read(in, "*l"); dWand = read(in, "*l", "*n"); read(in, "*l"); wSpule = read(in, "*l", "*n"); read(in, "*l"); dLack = read(in, "*l", "*n"); read(in, "*l"); sWickel = read(in, "*l", "*n"); read(in, "*l"); sAnker = read(in, "*l", "*n"); read(in, "*l"); sDeckel = read(in, "*l", "*n"); read(in, "*l"); sGleit = read(in, "*l", "*n"); read(in, "*l"); iSpule = read(in, "*l", "*n"); else print("Could not open Eingabe_xx.txt"); end; closefile(in); ------------------------------------------------------------------------------- -- Materialien (Luft, Kupfer, Eisen) -- ------------------------------------------------------------------------------- :
Die Input-Zeilen mit den Parameter-Namen werden jeweils überlesen. Der auf der nächsten Zeile folgende Wert wird dem im Script definierten Parameter-Bezeichner zugewiesen.
Achtung: Es ist unbedingt zu überprüfen, ob nach der Verwendung einer Input-Datei mit den gleichen Parameter-Werten wirklich die gleichen Ergebnisse berechnet werden!
Output-Datei für Simulationsergebnisse
Die für die Bewertung der Simulation relevanten Ergebnisgrößen müssen ebenfalls in eine Textdatei geschrieben werden. In unserem Beispiel sind das die Magnetkraft und der Koppelfluss:
: -- Output-File mit Ergebniswerten erzeugen: out = openfile(mydir .. "Ergebnis_xx.txt", "w"); write (out,"F=" , Fz_Anker, "\n"); write (out,"Psi=", Psi , "\n"); closefile(out);
Die erforderlichen File-Operationen werden an das Ende des LUA-Scripts platziert.
Verifizierung des Modells
Nach diesen Änderungen müssen nach Ausführung des kompletten LUA-Scripts im FEMM in der Datei Ergebnis_xx.txt die richtigen Werte für Magnetkraft und Koppelfluss stehen..
Einbindung in den OptiY-Workflow
Falls es nicht mehr geöffnet ist, so öffnen wir erneut OptiY mit der Datei Magnet_xx.opy und ergänzen nun die fehlende Einbindung des Modells.
===>>> Hier geht es bald weiter!
Script vom vorigen Jahr siehe: http://www.ifte.de/lehre/cae/fem/06_magnet/optiy_modellinterface.html