Software: FEM - Tutorial - Magnetfeld - Probabilistik - Kennfeld-Identifikation: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
Zeile 52: Zeile 52:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_optiy_formel_gauss-prozess.gif| ]] </div>
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_optiy_formel_gauss-prozess.gif| ]] </div>
* '''x''' ist ein m-dimensionaler Parametervektor.
* '''x''' ist ein m-dimensionaler Parametervektor.
* '''Y(x)''' ist der Ergebnisvektor für den Punkt x im Parameterraum.  
* '''Y(x)''' ist der Ergebnisvektor für den Punkt '''x''' im Parameterraum.  
* '''f(x)''' sind Polynome beliebiger Ordnung, welche zusammen mit den unbekannten Regressionskoeffizienten '''β<sub>i</sub>''' die [http://de.wikipedia.org/wiki/Regressionsfunktion Regressionsfunktion] bilden.
* '''f(x)''' sind Polynome beliebiger Ordnung, welche zusammen mit den unbekannten Regressionskoeffizienten '''β<sub>i</sub>''' die [http://de.wikipedia.org/wiki/Regressionsfunktion Regressionsfunktion] bilden.
*  '''Z(x)''' ist ein stationärer stochastischer Prozess mit dem ''Mittelwert'' Null, der ''Varianz'' '''σ''' und der ''Covarianz'' '''R'''. Dieser Anteil des Gauss Prozesses beschreibt das 95% Erwartungsintervall für jeden Punkt '''x''' des Parameterraumes.
*  '''Z(x)''' ist ein stationärer stochastischer Prozess mit dem ''Mittelwert'' Null, der ''Varianz'' '''σ''' und der ''Covarianz'' '''R'''. Dieser Anteil des Gauss Prozesses beschreibt das 95% Erwartungsintervall für jeden Punkt '''x''' des Parameterraumes.
Zeile 87: Zeile 87:
* Das berechnete Vertrauensintervall resultiert nur aus den benutzten mathematischen Ansätzen. Am Beispiel können wir dem interpolierten Kraftverlauf wesentlich stärker vertrauen! Wir wissen (im Unterschied zum mathematischen Formalismus), dass sich die Kraft zwischen den Stützstellen monoton ändert (ohne "Welligkeit").
* Das berechnete Vertrauensintervall resultiert nur aus den benutzten mathematischen Ansätzen. Am Beispiel können wir dem interpolierten Kraftverlauf wesentlich stärker vertrauen! Wir wissen (im Unterschied zum mathematischen Formalismus), dass sich die Kraft zwischen den Stützstellen monoton ändert (ohne "Welligkeit").
* Die Vertrauensintervalle markieren den ''Worst Case'' der Unsicherheit bei fehlenden Kenntnissen zu den abgebildeten physikalischen Zusammenhängen.
* Die Vertrauensintervalle markieren den ''Worst Case'' der Unsicherheit bei fehlenden Kenntnissen zu den abgebildeten physikalischen Zusammenhängen.


== Export des Ersatzmodells ==
== Export des Ersatzmodells ==

Version vom 29. Juni 2009, 14:30 Uhr

Identifikation von Ersatzmodellen
Software FEM - Tutorial - Magnetfeld - optiy feld-ident gauss1.gif
(OptiY-Version ab 26.06.2009 erforderlich!)

Die Kraft- und Koppelfluss-Kennfelder eines E-Magneten kann man in Modellen zur System-Simulation als Ersatzmodell für eine konkrete Wandler-Geometrie benutzen:

  1. Die Ergebnisse einer Rastersuche kann man als Daten exportieren und die berechneten Abtaststellen des Modells als Stützstellen von 3D-Funktionsflächen in der System-Simulation verwenden. Aus diesen Stützstellen werden in der System-Simulation dann die Funktionswerte der Zwischenräume interpoliert.
  2. Die in der probabilistischen Simulation als Ersatzmodell generierten Antwortflächen kann man aber auch direkt als Modell-Code in Modelle der System-Simulation implementieren. Die Gewinnung von Ersatzmodellen nach diesem Prinzip wollen wir abschließend in diesem Übungskomplex durchführen.


Ausgehend vom Raster-Experiment Kennfeld-Berechnung konfigurieren wir nach dem Duplizieren ein Experiment Kennfeld-Identifikation.

Workflow

Wir werden die probabilistische Simulation benutzen, um über den gesamten Arbeitsbereich unseres E-Magneten die Antwortflächen für F(i,s) und Psi(i,s) bilden zu lassen:

Software FEM - Tutorial - Magnetfeld - optiy feld-ident-workflow.gif
  • Die Toleranzen der Streu-Größen umfassen den gesamten Arbeitsbereich:
#i.Toleranz=10 A
#s.Toleranz= 4 mm
  • Die Toleranz-Mittenwerte (Nennwerte und aktuellen Werte der Streu-Größen) sind so zu wählen, dass numerisch instabile Werte nahe Null vermieden werden:
i.Startwert=5.01 A (i≥0.01 A)
s.Startwert=2.02 mm (s≥0.02 mm)
  • Die Gleichverteilung innerhalb der Streu-Bereiche gewährleistet eine gleichmäßige Abtastung, falls man eine Sample Methode verwendet.

Versuchsplanung

Wir werden das Experiment so konfigurieren, dass wir möglichst anschaulich erkennen, wie genau die approximierten Antwortflächen die wirklichen Übertragungsfunktionen des Modells abbilden:

  • Grundlage für die Berechnung der Antwortfläche soll das Full Factorial Design sein, welches praktisch einer Rastersuche entspricht. Wir wählen dafür 6 Stufen, um die Anzahl der Modellberechnungen mit 37 gering zu halten. Die Anzahl 37 ergibt sich aus dem Raster 6x6 plus 1 Stützstelle in der Mitte.
  • Ein virtueller Stichprobenumfang=10000 zeigt uns im 3D-Anthill-Plot qualitativ die Lage der real berechneten Stichprobe in Bezug zur approximierten Antwortfläche.

Approximation mit Polynom-Ansatz

  • Wir verwenden zuerst die bereits für die Sample Methode genutzte polynomiale Approximation und beginnen mit der Approximationsordnung=1.
  • Nach Abschluss der Simulation liegen die Antwortflächen als Funktionen im (i,s)-Raum vor.
  • Schrittweises Erhöhen der Approximationsordnung mit anschließendem Neuberechnen der Antwortflächen Software OptiY - Button - response surface neu.gif und der virtuellen Stichprobe Software OptiY - Button - probabilistik neu.gif führt zu einer optimalen Anpassung der Antwortflächen, welche jedoch mit höhere Approximationsordnung wieder schlechter wird.
    Achtung: Ein Rücksetzen des Experiments mit erneuter Berechnung der realen Stichprobe ist dabei nicht erforderlich!
  • Ein Drehen des 3D-Anthill-Plots zeigt deutlich die Lage der realen Modellwerte abseits der Antwortfläche. Besonders stark sind die Abweichungen bei der Kombination von minimalem Luftspalt mit minimalem Strom.
  • Das Residuum-Plot zeigt quantitativ die Abbweichungen der realen Modellberechnungen von den identifizierten Antwortflächen. Bei der Magnetkraft liegt diese Abweichung überwiegend im Bereich von ca. 10%, was für ein Ersatzmodell häufig noch akzeptiert werden kann:
  • Nicht akzeptabel ist jedoch, dass die Ersatzfunktion im Bereich kleiner Ströme zu negativen Kraftwerten führt, was physikalisch nicht korrekt ist!
  • Ähnlich ungenau sehen die Ergebnisse für das Psi-Kennfeld aus:

Schlussfolgerung:
Polynom-Ansätze sind für die Bildung von globalen Ersatzmodellen bei nichtlinearem Übertragungsverhalten nicht besonders gut geeignet.

Approximation mit Gauss-Prozess

Der Gauss-Prozess, angewandt in der Geostatistik auch als Kriging bekannt, ist ein statistisches Verfahren, mit dem man Werte an Orten, für die keine Probe vorliegt, durch umliegende Messwerte interpolieren oder auch annähern kann.

Der Gauss Prozess besteht aus einem globalen Modell f(x) und einem stochastischen Prozess Z(x), welcher die mögliche Abweichung von dem globalen Modell beschreibt:

Software FEM - Tutorial - Magnetfeld - optiy formel gauss-prozess.gif
  • x ist ein m-dimensionaler Parametervektor.
  • Y(x) ist der Ergebnisvektor für den Punkt x im Parameterraum.
  • f(x) sind Polynome beliebiger Ordnung, welche zusammen mit den unbekannten Regressionskoeffizienten βi die Regressionsfunktion bilden.
  • Z(x) ist ein stationärer stochastischer Prozess mit dem Mittelwert Null, der Varianz σ und der Covarianz R. Dieser Anteil des Gauss Prozesses beschreibt das 95% Erwartungsintervall für jeden Punkt x des Parameterraumes.

In dem englischen Wikipedia-Artikel zum Kriging wird das für die Interpolation einer eindimensionale Funktion sehr anschaulich dargestellt:

Software FEM - Tutorial - Magnetfeld - optiy kriging-interpolation.gif

Die berechneten Grenzverläufe des Erwartungsintervalls werden wesentlich bestimmt durch das Erfahrungswissen in Hinblick auf den erwartenden Verlauf der zu interpolierenden Funktion zwischen den bekannten Werten der Stichproben-Exemplare. Diese Erwartung wird durch die Wahl einer geeigneten Covarianz-Funktion beschrieben:

  • In OptiY sind unterschiedlichste Covarianz-Funktionen ímplementiert.
  • Diese beschreiben den Verlauf des 95% Erwartungsintervalls zwischen den Stützstellen in Abhängig von deren Dichte.
  • Wird näherungsweise eine möglichst glatter Verlauf für die zu interpolierende Ersatzfunktion erwartet, so ist dafür der Typ Square Exponential optimal geeignet:
  • Der "Schlauch" des Erwartungsintervalls wird dabei (wie im obigen Bild) auch bei größeren Abständen zwischen den Stützstellen relativ schmal.

Über die Ordnung des globalen Modells kann man einen Kompromiss finden zwischen bester Anpassung der interpolierten Funktion an vorhandene Stützstellen und optimalem Verlauf zwischen diesen Stützstellen:

  • Wie im vorherigen Abschnitt "Approximation mit Polynom-Ansatz" beschrieben, bestimmt die Approximationsordnung des globalen Modells f(x) die allgemeine Richtung (globale Anpassung) der Regressionsfunktion. Die dabei verbleibenden Residuen sind noch sehr groß.
  • Der stochastische Prozess Z(x) hat dann die Aufgabe, diese verbleibenden Residuen mittels der Covarianz-Funktion (Normal- bzw. Gauss-Verteilung) zu eliminieren (lokale Anpassung).
  • Wenn die Anzahl der Stützstellen bzw. die Daten genug groß ist, und man die verbleibenden Residuen statistisch auswertet, entsteht eine Normal-Verteilung (auch Gauss-Verteilung genannt) mit dem Mittelwert=0. Das ist die ursprüngliche Idee des Gauss-Prozesses.
  • Wenn man die globale Anpassung mit einer zu hohen Ordnungen der Polynome durchführt, besitzt die Kurve mehr Freiheitsgrade als nötig. Das führt dann zu Welligkeiten zwischen den Stützstellen, weil dies durch keine Zwangsbedingungen verhindert wird.
  • Der Rechenaufwand für die Berechnung des Ersatzmodells hängt davon ab, viele Stützstellen es gibt und wie schnell der interne Optimierer die optimalen Parameter für die Covarianz-Funktion findet.

Dieses Prinzip der Bildung von Ersatzmodellen (Antwortflächen) werden wir nun auf unser Kennfeld-Problem anwenden. Wir nutzen dafür das bereits konfigurierte Experiment Kennfeld-Identifikation ohne erneute Berechnung der Stichprobe:

Nach dem Anzeigen der Schnittdiagramme für die Kraft und den Koppelfluss (Analyse - Antwortflächen - Schnittdiagramm), hat man die Möglichkeit, die 95% Vertrauensintervalle und die Stützstellen einzublenden:

  • Verändern der aktuellen Werte für den Strom und den Arbeitsluftspalt (z.B. durch Ziehen der roten Linie mit dem Cursor) führen je nach Position auf der Antwortfläche zu wesentlich veränderten Vertrauensintervallen.
  • Befindet man sich auf einem echten Stützpunkt innerhalb des Rasters, so sind die Vertrauensintervalle am schmalsten. Das gilt nicht für den Mittelpunkt des Full Factory Design, da dieser nicht im orthoganalen Raster liegt.


Hinweise:

  • Das berechnete Vertrauensintervall resultiert nur aus den benutzten mathematischen Ansätzen. Am Beispiel können wir dem interpolierten Kraftverlauf wesentlich stärker vertrauen! Wir wissen (im Unterschied zum mathematischen Formalismus), dass sich die Kraft zwischen den Stützstellen monoton ändert (ohne "Welligkeit").
  • Die Vertrauensintervalle markieren den Worst Case der Unsicherheit bei fehlenden Kenntnissen zu den abgebildeten physikalischen Zusammenhängen.

Export des Ersatzmodells

Unabhängig davon, nach welchem Verfahren die Antwortflächen des Modells approximiert wurden, kann man die identifizierten mathematischen Funktionen als Programm-Code exportieren (Analyse - Antwortflächen - Modell Export):

  • Zur Zeit kann in OptiY ein Quelltext als C-Code oder m-Matlab erzeugt werden.
  • Wir speichern unser Ersatzmodell als C-Code in die Datei Magnet_xx.c. (xx=Teilnehmer-Nummer in der Lehrveranstaltung).
  • Dieser Quelltext enthält unter Benutzung der gewählten Covariance-Funktion die identifizierten Gauss-Ketten für alle Bewertungsgrößen (Kriterien/Restriktionen):
float Covariance(float x1[],float x2[],float p[])
{
   float Co, W;
   W = 0;
   for(int i = 0; i<2; i++) {
      W = W + (x1[i]-x2[i])*(x1[i]-x2[i])*p[i]*p[i];
   }
   Co = exp(-W);
   return Co;
}
float F(float #i, float #s)
{
   float p[2];
   float x1[2];
   float x2[2];
   float y = -46.7372056;
   y = y+10.5264863*pow(#i,1);
   y = y+4.62081477*pow(#s,1);
   p[0] = 0.161298213;
   p[1] = 0.928373134;
   x1[0] = #i;
   x1[1] = #s;
   x2[0] = 5.01;
   x2[1] = 2.02;
   y = y-183.986679*Covariance(x1,x2,p);
   x2[0] = 0.01;
   x2[1] = 0.02;
   y = y-8624.5598*Covariance(x1,x2,p);
   x2[0] = 2.01;
   x2[1] = 0.02;
   y = y+27677.7263*Covariance(x1,x2,p);
   :
   :
   x2[0] = 10.01;
   x2[1] = 4.02;
   y = y-1042.30105*Covariance(x1,x2,p);
   return y;
}
float Psi(float #i, float #s)
{
   float p[2];
   float x1[2];
   float x2[2];
   float y = 0.0189621757;
   y = y+0.00649675907*pow(#i,1);
   y = y-0.00349272992*pow(#s,1);
   p[0] = 0.590637256;
   p[1] = 0.777378104;
   x1[0] = #i;
   x1[1] = #s;
   x2[0] = 5.01;
   x2[1] = 2.02;
   y = y-0.000721074847*Covariance(x1,x2,p);
   x2[0] = 0.01;
   x2[1] = 0.02;
   y = y-0.0269366063*Covariance(x1,x2,p);
   x2[0] = 2.01;
   x2[1] = 0.02;
   y = y+0.0298939078*Covariance(x1,x2,p);
   :
   :
   x2[0] = 10.01;
   x2[1] = 4.02;
   y = y-0.00522234634*Covariance(x1,x2,p);
   return y;
}


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