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

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
K (Typos korrigiert)
 
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:
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 ===
=== Magnetkraft ===
<br>
<br>
Wir öffnen zu Beginn des Postprozesses die LUA-Console mittels "showconsole();":
Wir öffnen zu Beginn des Postprozesses die Lua-Konsole mittels "showconsole();":
  -------------------------------------------------------------------------------
  -------------------------------------------------------------------------------
  -- Beginn des Postprozesses                                                  --
  -- Beginn des Postprozesses                                                  --
  -------------------------------------------------------------------------------
  -------------------------------------------------------------------------------
  -- Kontrollausgaben auf der LUA-Console:
  -- Kontrollausgaben auf der Lua-Konsole:
     showconsole();                -- LUA-Console öffnen, falls nicht offen
     showconsole();                -- Lua-Konsole öffnen, falls nicht offen
     mo_zoom(0,-rKugel/3,rKugel/3,rKugel/3); -- Rechteck um Magnet in Kugelsphäre
     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_showcontourplot (-1); -- Feldlinien normiert auf Bereich (lt.Preferences)
Zeile 21: Zeile 21:
     mo_groupselectblock(1);        -- Auswahl Anker-Block -> Group=1 bei Def.!
     mo_groupselectblock(1);        -- Auswahl Anker-Block -> Group=1 bei Def.!
     Fz_Anker=mo_blockintegral(19); -- (19): z-Komponente der statischen Kraft
     Fz_Anker=mo_blockintegral(19); -- (19): z-Komponente der statischen Kraft
     print ("F=", Fz_Anker, "[N]")  -- Kraft in Outputfeld der LUA-Cosole
     print ("F=", Fz_Anker, "[N]")  -- Kraft in Outputfeld der LUA-Konsole


Die Berechnung des Blockintegrals bezieht sich immer auf den aktuell ausgewählten Block:
Die Berechnung des Blockintegrals bezieht sich immer auf den aktuell ausgewählten Block:
Zeile 36: Zeile 36:
     mi_setblockprop ("Stahl",1,0,"<None>",0,'''1''',0);            mi_clearselected();
     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:
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 > Cotour Plot''''' die Anzeige der '''Stress Tensor Mask''' aktivieren!  
* 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.
* Das Einblenden des Integrationspfades erfolgt erst mit einiger Verzögerung bei einer Aktualisierung des Grafikfensters.
<br>
<br>

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