Software: SimX - Magnetoptimierung - Magnetische Durchflutung anstatt konkreter Spule

Aus OptiYummy
Zur Navigation springenZur Suche springen

Magnetische Durchflutung anstatt konkreter Spule


Mit dem bisherigen Finite Element Modell gewinnt man Kennfelder des Wandlers, welche nur für eine konkrete Anzahl von Windungen gültig sind:

  • Ein wesentlicher Aspekt der Magnetoptimierung ist die Ermittlung einer optimalen Windungszahl.
  • Variationen der Windungszahl im Optimierungsprozess würden deshalb ständig Aktualisierungen der Kennfelder mittels langwieriger FEM-Simulationen erfordern.

Um die Windungszahl als Parameter des Finite Element Modells zu elimieren, nehmen wir folgende Änderungen vor:

  1. Ersatz des Spulenstroms i durch die magnetische Durchflutung i*w
  2. Ersatz des Koppelflusses Psi durch den mittleren Windungsfluss Psi/w


Magnetische Durchflutung

In der Öffnung unserer relativ langen Zylinderspule gilt bei hunderten Windungen näherungsweise für die magnetische Durchflutung

Θ=iSpule*wSpule

Ohne das bisherige Modell zu zerstören, werden wir die Möglichkeit ergänzen, die Durchflutung iw als unabhängige Variable zu benutzen:

  • Ist iw< 0, so soll das Modell wie bisher über iSpule und wSpule parametrisiert werden.
  • Ist iw>=0, so wird iSpule=iw/wSpule benutzt. Es wird eine hinreichend große Windungszahl benutzt(z.B. wSpule=1000).

Dazu wird Magnet.LUA wie folgt erweitert:

   : 
   iw=-1;                       -- mag. Durchflutung (deaktiviert) 
-- Parameter aus Textdatei einlesen mit Fehlertest
   in = openfile(mydir .. "Eingabe.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");
   read(in, "*l"); iw     = read(in, "*l", "*n"); if iw == nil then iw=-1; end;
   else print("Could not open Eingabe.txt"); end;
   closefile(in);
-------------------------------------------------------------------------------
-- Unzulässige Eingabe-Parameter von OptiY begrenzen                         --
-------------------------------------------------------------------------------
   if 1*sAnker  < 0.03  then sAnker=0.03;  end;
   if 1*sAnker  > 5     then sAnker=5;     end;
   if 1*sGleit  < 0.05  then sGleit=0.05;  end;
   if 1*sGleit  > 1     then sGleit=1;     end;
   if 1*sDeckel < 0.01  then sDeckel=0.01; end;
   if 1*sDeckel > 1     then sDeckel=1;    end;
   if 1*iSpule  <=1E-10 then iSpule=1E-10; end; -- damit R und L berechenbar!
-------------------------------------------------------------------------------
-- Wenn kein iw angegeben wurde, wird die Durchflutung aus i*w berechnet     --
-------------------------------------------------------------------------------
   if 1*iw      < 0     then  iw=iSpule*wSpule; else wSpule=1000; end;
   iSpule       = iw/wSpule;
   :

Die Kennfeld-Identifikation in OptiY muss mit diesem LUA-Script dass gleiche Ergebnis erzielen, wie zuvor.

Wir werden nun den Experiment-Workflow so umgestalten, dass anstatt des Spulenstroms die magnetische Durchflutung als Variable benutzt wird:

  • Dazu erweitern wir zuerst das Input-File Eingabe.txt um den Wert für die Durchflutung, die wir mit einem negativen Wert vorläufig deaktivieren:
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.000000E+000
sDeckel
0.01 
sGleit
0.1 
iSpule
4.000000E+000
iw
-1


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