Software: FEM - Tutorial - Magnetfeld - Kraft und Koppelfluss - Script

Aus OptiYummy
Zur Navigation springenZur Suche springen

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