Software: FEM - Tutorial - Magnetfeld - Kraft und Koppelfluss - Script: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
K (Die Seite wurde neu angelegt: <div align="center"> [[Software:_FEM_-_Tutoria...)
 
K (Typos korrigiert)
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_FEM_-_Tutorial_-_Magnetfeld|&uarr;]] <div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kraft_und_Koppelfluss|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Einbindung_in_OptiY-Workflow|&rarr;]] </div>
[[Software:_FEM_-_Tutorial_-_Magnetfeld|&uarr;]] <div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kraft_und_Koppelfluss|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Einbindung_in_OptiY-Workflow|&rarr;]] </div>
<div align="center">'''Kraft und Koppelfluss (LUA-Script)'''</div>
<div align="center">'''Kraft und Koppelfluss (Lua-Script)'''</div>




Nachdem wir nun das relativ einfache Verfahren (gewichtetes "Stress-Tensor-Volumenintegral") zur Ermittlung der Magnetkraft kennen gelernt haben, werden wir es in unser Lua-Script einfügen:


'''''===>>> Hier geht es bald weiter!'''''


''Script vom vorigen Jahr siehe:'' http://www.ifte.de/lehre/cae/fem/06_magnet/kraft_und_fluss_lua.html
=== Magnetkraft ===
<br>
Wir öffnen zu Beginn des Postprozesses die Lua-Konsole mittels "showconsole();":
-------------------------------------------------------------------------------
-- Beginn des Postprozesses                                                  --
-------------------------------------------------------------------------------
-- Kontrollausgaben auf der Lua-Konsole:
    showconsole();                -- Lua-Konsole öffnen, falls nicht offen
    mo_zoom(0,-rKugel/3,rKugel/3,rKugel/3); -- Rechteck um Magnet in Kugelsphäre
    mo_showcontourplot (-1); -- Feldlinien normiert auf Bereich (lt.Preferences)
-- mo_showdensityplot(legend,gscale,upper_B,lower_B,type);
    mo_showdensityplot(  1  ,  0  ,  1  ,  0  ,"bmag");
    mo_seteditmode("areas");
    mo_groupselectblock(1);        -- Auswahl Anker-Block -> Group=1 bei Def.!
    Fz_Anker=mo_blockintegral(19); -- (19): z-Komponente der statischen Kraft
    print ("F=", Fz_Anker, "[N]")  -- Kraft in Outputfeld der LUA-Konsole


Die Berechnung des Blockintegrals bezieht sich immer auf den aktuell ausgewählten Block:
* Einen Block wählt man am einfachsten mit '''''groupselectblock(Gruppennummer)'''''.
* Bereiche des Modells, mit welchen später gemeinsame Operationen ausgeführt werden, sollten deshalb bereits bei der Definition einer gemeinsamen Gruppen-Nummer zugeordnet werden.
* Neben der Berechnung des Blockintegrals sind solche Operationen z.B. auch geometrische Transformation (Verschieben, Drehen).
* Im Beispiel muss deshalb im LUA-Script bei der Definition des Ankers in den Block-Properties statt der Gruppe '''0''' die Gruppe '''1''' verwendet werden:
-------------------------------------------------------------------------------
                                -- *********************************************
    mi_seteditmode ("nodes");  -- A=Eisenkreis (Anker) ************************
                                -- *********************************************
    :
    mi_setblockprop ("Stahl",1,0,"<None>",0,'''1''',0);            mi_clearselected();
Anscheinend gibt es kein LUA-Kommando, um die Linien der Stress-Tensor-Maske sichtbar zu machen. Man muss das Einblenden auf der grafischen Oberfläche veranlassen:
* Man kann unter '''''View > Contour Plot''''' die Anzeige der '''Stress Tensor Mask''' aktivieren!
* Das Einblenden des Integrationspfades erfolgt erst mit einiger Verzögerung bei einer Aktualisierung des Grafikfensters.
<br>
=== Koppelfluss ===
Zu Testzwecken sollte man die berechneten Ergebnisse auf der LUA-Konsole darstellen:
-------------------------------------------------------------------------------
-- Beginn des Postprozesses                                                  --
-------------------------------------------------------------------------------
    :
    iSpule, vOhm, Psi = mo_getcircuitproperties("Spule"); -- statische Größen
    print ("i=", iSpule  , "[A]");-- Strom
    print ("v=", vOhm    , "[V]");-- Spannungsabfall
    print ("R=",vOhm/iSpule,"[Ohm]");-- Drahtwiderstand
    print ("L=",Psi/iSpule ,"[H]");-- Induktivität
    print ("Psi=", Psi    ,"[Wb]");-- Koppelfluss
Den Koppelfluss '''''Ψ''''' der Spule erhält man als Bestandteil der Circuit-Properties nur gemeinsam mit dem statischen Spannungsabfall am ohmschen Widerstand des Spulendrahtes und dem aktuellen Strom:
* Als Variable für den Strom wurde der Parameter '''''iSpule''''' verwendet, da im statischen Fall der Strom konstant bleibt.
* '''''vOhm''''' und '''''Psi''''' werden im LUA-Script automatisch als Variablen angelegt (bei erstmaliger Benutzung).
* Aus Strom und Spannung kann man den ohmschen Widerstand '''''R''''' des Spulendrahtes berechnen.
* Analog erhält man aus dem Koppelfluss '''''Ψ=f(s,i)''''' und dem Strom '''''ispule''''' die aktuelle Induktivität '''''L=f(s,i)''''' .


<div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kraft_und_Koppelfluss|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Einbindung_in_OptiY-Workflow|&rarr;]] </div>
<div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kraft_und_Koppelfluss|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Einbindung_in_OptiY-Workflow|&rarr;]] </div>

Aktuelle Version vom 26. Mai 2014, 13:57 Uhr

Kraft und Koppelfluss (Lua-Script)


Nachdem wir nun das relativ einfache Verfahren (gewichtetes "Stress-Tensor-Volumenintegral") zur Ermittlung der Magnetkraft kennen gelernt haben, werden wir es in unser Lua-Script einfügen:


Magnetkraft


Wir öffnen zu Beginn des Postprozesses die Lua-Konsole mittels "showconsole();":

-------------------------------------------------------------------------------
-- Beginn des Postprozesses                                                  --
-------------------------------------------------------------------------------
-- Kontrollausgaben auf der Lua-Konsole:
   showconsole();                 -- Lua-Konsole öffnen, falls nicht offen
   mo_zoom(0,-rKugel/3,rKugel/3,rKugel/3); -- Rechteck um Magnet in Kugelsphäre
   mo_showcontourplot (-1); -- Feldlinien normiert auf Bereich (lt.Preferences)
-- mo_showdensityplot(legend,gscale,upper_B,lower_B,type);
   mo_showdensityplot(   1  ,   0  ,   1   ,   0   ,"bmag");
   mo_seteditmode("areas");
   mo_groupselectblock(1);        -- Auswahl Anker-Block -> Group=1 bei Def.!
   Fz_Anker=mo_blockintegral(19); -- (19): z-Komponente der statischen Kraft
   print ("F=", Fz_Anker, "[N]")  -- Kraft in Outputfeld der LUA-Konsole

Die Berechnung des Blockintegrals bezieht sich immer auf den aktuell ausgewählten Block:

  • Einen Block wählt man am einfachsten mit groupselectblock(Gruppennummer).
  • Bereiche des Modells, mit welchen später gemeinsame Operationen ausgeführt werden, sollten deshalb bereits bei der Definition einer gemeinsamen Gruppen-Nummer zugeordnet werden.
  • Neben der Berechnung des Blockintegrals sind solche Operationen z.B. auch geometrische Transformation (Verschieben, Drehen).
  • Im Beispiel muss deshalb im LUA-Script bei der Definition des Ankers in den Block-Properties statt der Gruppe 0 die Gruppe 1 verwendet werden:
-------------------------------------------------------------------------------
                               -- *********************************************
   mi_seteditmode ("nodes");   -- A=Eisenkreis (Anker) ************************
                               -- *********************************************
   :
   mi_setblockprop ("Stahl",1,0,"<None>",0,1,0);            mi_clearselected();

Anscheinend gibt es kein LUA-Kommando, um die Linien der Stress-Tensor-Maske sichtbar zu machen. Man muss das Einblenden auf der grafischen Oberfläche veranlassen:

  • Man kann unter View > Contour Plot die Anzeige der Stress Tensor Mask aktivieren!
  • Das Einblenden des Integrationspfades erfolgt erst mit einiger Verzögerung bei einer Aktualisierung des Grafikfensters.


Koppelfluss

Zu Testzwecken sollte man die berechneten Ergebnisse auf der LUA-Konsole darstellen:

-------------------------------------------------------------------------------
-- Beginn des Postprozesses                                                  --
-------------------------------------------------------------------------------
   :
   iSpule, vOhm, Psi = mo_getcircuitproperties("Spule"); -- statische Größen
   print ("i=", iSpule   , "[A]");-- Strom
   print ("v=", vOhm     , "[V]");-- Spannungsabfall
   print ("R=",vOhm/iSpule,"[Ohm]");-- Drahtwiderstand
   print ("L=",Psi/iSpule ,"[H]");-- Induktivität
   print ("Psi=", Psi    ,"[Wb]");-- Koppelfluss

Den Koppelfluss Ψ der Spule erhält man als Bestandteil der Circuit-Properties nur gemeinsam mit dem statischen Spannungsabfall am ohmschen Widerstand des Spulendrahtes und dem aktuellen Strom:

  • Als Variable für den Strom wurde der Parameter iSpule verwendet, da im statischen Fall der Strom konstant bleibt.
  • vOhm und Psi werden im LUA-Script automatisch als Variablen angelegt (bei erstmaliger Benutzung).
  • Aus Strom und Spannung kann man den ohmschen Widerstand R des Spulendrahtes berechnen.
  • Analog erhält man aus dem Koppelfluss Ψ=f(s,i) und dem Strom ispule die aktuelle Induktivität L=f(s,i) .