Software: FEM - Tutorial - Magnetfeld - Kraft und Koppelfluss - 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) .