Software: FEM - Tutorial - Magnetfeld - Probabilistik - Modell-Robustheit

Aus OptiYummy
Zur Navigation springenZur Suche springen

Probabilistische Simulation - Numerische Stabilität des Modells


Unser FEM-Modell des Magneten funktioniert stabil nur in einem bestimmten Parameterbereich:

  • Es dürfen sich keine negativen Bereichsabmessungen (Luftspalte, Luft- bzw. Eisenbereiche) ergeben, sonst existiert keine Lösung.
  • Sehr kleine Luftspalte führen im Beispiel zu sehr großen Netzen mit mehreren Millionen Elementen. Eine Berechnung im Rahmen einer Stichproben-Simulation ist aus Zeitgründen praktisch nicht mehr möglich.

Man kann für die Streuungen die Verteilungsfunktion mit Bereichsgrenzen festlegen:

  • Leider besitzt aber z.B. eine Normalverteilung keine echten Grenzen, sondern es gibt immer Ausreißer. Diese werden vom OptiY bei der probabilistischen Simulation ebenfalls berücksichtigt.
  • Man muss davon ausgehen, dass es bei der Nutzung eines Modells innerhalb eines Tools wie OptiY immer zu "unzulässigen" Parameter-Kombinationen kommen kann.
  • Die Kunst besteht darin, innerhalb der Modelle solche unzulässigen Parameter-Kombinationen so zu behandeln, dass für die berechneten Ergebnisgrößen im Sinne einer Funktionsbewertung sinnvolle Werte entstehen.

Unter dem Aspekt unzulässiger Parameter müssen wir unser Modell im Folgenden untersuchen und die erforderliche numerische Stabilität realisieren. Wir beschränken uns dabei auf die Parameter, welche zurzeit vom OptiY in den aktuellen Experimenten verändert werden können. Die Fehlerbehandlung fügen wir unmittelbar nach dem Einlesen der Parameter aus dem Input-File in das Lua-Script ein:

-------------------------------------------------------------------------------
-- 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!

Dazu einige Erläuterungen:

  • Die zu testenden Parameter mussten mit dem Faktor 1 multipliziert werden, da es ansonsten zu einer Fehlermeldung kam. Wahrscheinlich entsteht erst nach Ausführen der Rechenoperation der Variablen-Typ "number", der in einer Vergleichsoperation benutzt werden kann.
  • Der Ankerluftspalt musste auf 30 µm begrenzt werden, obwohl im vorherigen Experiment die Kennfelder im Prinzip bis zu einem Wert von 10 µm berechenbar waren.
    Leider kommt es in Kombination mit der Änderung der anderen Luftspalte jedoch zu einem eigenartigen Effekt. Die Kugelsphäre wird mit extrem kleinen Elementen vernetzt. Wahrscheinlich kann FEMM durch Rundungsfehler die Blocklabel nicht mehr exakt in der Mitte schmaler Bereich platzieren. Sie rutschen damit unter Umständen z.B. in die Kugelsphäre und führten damit zu riesigen Netzen.
  • Es wurde vorsichtshalber eine obere Begrenzung für die Luftspalte eingeführt, damit in jedem Fall eine gültige Geometrie erhalten bleibt.
  • Der Spulenstrom wurde auf einen extrem kleinen Wert größer Null begrenzt, damit die Werte des Widerstands und der Induktivität berechnet werden können.


Hinweis: Bei der Fehlerbehandlung sollte man sich auf das aktuell Notwendige beschränken. Nur offensichtliche und leicht zu behebende Probleme (z.B. Divisionen durch Null, unzulässige negative Zahlen) sollte man zusätzlich zum aktuell Notwendigen behandeln:

  • Fehlerbehandlung kostet Zeit und damit Geld und
  • führt mit großer Wahrscheinlichkeit zu neuen Fehlern!