Mein Name ist Iryna Kulchytska-Ruchka und ich promoviere am Fachgebiet Computational Electromagnetics an der TU Darmstadt.
Zusammen mit unserem industriellen Partner, der Robert Bosch GmbH, beschäftigen wir uns mit effizienten, computergestützten Simulationen und Optimierung von elektromechanischen Energiewandlern
wie z.B. elektrische Motoren, die in Elektroautos und Elektrofahrräder eingesetzt werden.
Hier haben wir einen Antrieb von einem eBike von Bosch mit einem Permanentmagnet-Synchronmotor.
Der Motor besteht aus zwei Teilen, dem statischen Teil Stator und dem bewegten Teil Rotor.
Durch die Statorwicklung wird dreiphasiger Wechselstrom eingeprägt und nach den Gesetzen von Elektromagnetismus induziert das ein rotierendes Magnetfeld.
Der Stator besteht aus sehr dünnen Stahlschichten und Permanentmagneten. Dann wird das Magnetfeld vom Rotor mit dem im Stator induzierten Magnetfeld verknüpft und so entsteht die Rotation.
Warum braucht man eigentlich computergestützte Simulationen?
Aus industrieller Perspektive sieht der Designprozess folgenderweise aus.
Als Hersteller hat man verschiedene Anforderungen zu einem neuen Produkt, z.B. im Falle von einem elektrischen Motor interessiert man sich für Charakteristiken von Drehmoment und Geschwindigkeit.
Um einen Entwurf zu modellieren, der diesen Anforderungen entspricht, muss man verschiedene multiphysikalische Effekte wie z.B. magnetische, mechanische, thermische, akustische Effekte für diverse Verluste und auch natürlich die Kosten von dem Produkt berücksichtigen.
Durch computergestützte Simulationen und mathematische Modellierungsverfahren werden virtuelle Prototypen erstellt.
Dadurch spart man viele Kosten ein, denn die Entwürfe werden digital optimiert und erst danach werden die physikalischen Prototypen angefertigt.
In der Grundlagenforschung des Computational Electromagenetics werden Methoden entwickelt, die es in Zukunft erlauben, Produkte direkt am Computer zu optimieren.
Dadurch sollen Hersteller noch näher an die Grenzen des physikalisch Machbaren gehen können, ohne Einbußen im Betrieb befürchten zu müssen.
Jetzt schauen wir uns an, wie eine solche Simulation aussehen könnte.
Wir machen das mit einer Open-Source-Software ONELAB.
Aus der Modell-Liste wählen wir einen permanentmagnet Synchronmotor aus.
Da gibt es verschiedene Eingangsparameter, wie z.B. die Art der Simulation.
Wir wählen Zeitbereich aus.
Hier gibts auch die Einstellung der Anzahl von Polen in dem Modell. Unser Modell hat acht Pole, durch Symmetriebedingung könnten wir auch ein Achtel, ein Viertel oder die Hälfte des Modells simulieren.
Wir wählen aber das komplette Modell aus.
Dann haben wir End- und Startpositionen von dem Rotor und den Winkel für jeden Zeitschritt. Wir vergrößern hier ein bisschen die Werte.
Unter anderem haben wir auch die Bedingung von der Nichtlinearität. Das schalten wir jetzt an.
Diese Nichtlinearität kommt aus einem Materialgesetz.
Und dann fangen wir mit der Simulation an.
Das Gitter wird am Anfang generiert und jetzt wird das Problem gelöst.
Und nun sieht man die Verteilung und die Rotation von dem magnetischen Feld auf jeden Zeitschritt.
Hinter der Simulation stecken Tausende oder Millionen linearer algebraischen Gleichungen.
In Matrizenschreibweise könnte man solche Gleichungssysteme darstellen wie folgt.
Hier die Unbekannte a ist ein Vektor, der aus Tausenden oder Millionen Komponenten besteht.
a bezieht sich auf das Magnetfeld und der Vektor j kommt aus der Anregung.
Die Matrix K hängt nichtlinear von der Unbekannten a ab, weil das durch das nicht lineare Materialgesetz gegeben wird.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, dass wir eine Funktion definieren, wie folgt:
und die Nullstellen dieser Funktion suchen.
Weil das Auffinden der Nullstellen eine sehr wichtige Rolle in der Mathematik spielt, konzentrieren wir uns im Folgenden darauf.
Im mathematischen Teil soll es um das Lösen von Systemen aus nichtlinearen Gleichungen gehen.
Bevor wir jedoch zu den Gleichungssystemen kommen, schauen wir uns zunächst an, wie man eine einzelne nichtlineare Gleichung der ganz allgemeinen Form f(x) = 0 löst.
Und das machen wir anhand von nichtlinearen algebraischen Gleichungen.
Darunter versteht man das Berechnen von Nullstellen von Polynomen.
Die einfachste algebraische Gleichung sieht so aus. Wie man hier nach x auflöst, das lernt man schon in der Mittelstufe.
Dies ist die allgemeine Form einer lineare algebraische Gleichung, alle weiteren algebraischen Gleichungen werden nichtlinear sein.
Eine quadratische algebraische Gleichung kennt man ebenfalls schon aus der Schulzeit, genauso wie deren Lösungsverfahren mittels pq-Formel, abc-Formel oder Mitternachtsformel.
Auch nichtlineare algebraische Gleichungen vom Grad 3 und 4 können noch analytisch gelöst werden – kubische Gleichungen beispielsweise mit Hilfe der cardanischen Formeln.
Aber diese werden in der Schule nicht gelehrt und meistens auch nicht in den Grundlagenvorlesungen in Mathematik.
Hat man algebraischen Gleichungen vom Grad 5 oder höher, dann ist eine analytische Lösung im Allgemeinen nicht mehr möglich und man löst solche Probleme numerisch mit Näherungsverfahren.
Vielleicht das Bekannteste ist das Newton-Verfahren. Damit begegnet uns nun eine der im Titel erwähnten berühmten Personen: der englische Naturforscher Sir Isaac Newton.
Wir haben hier eine orange eingezeichnete Funktion und diese kleine Animation zeigt Ihnen die Vorgehensweise zum Auffinden der Nullstelle.
Wir benötigen einen Startwert x_0, der idealerweise, man sagt „in der Nähe“ der näher zu bestimmenden Nullstelle liegt.
Man gibt die Tangente im Punkt x_0, f(x_0) an und schaut, wo diese Tangente die x-Achse schneidet.
Man erhält damit x_1 und wiederholt von dort aus den Vorgang:
Tangente nun zum Punkt x_1, f(x_1) und Schnittpunkt mit der x-Achse bestimmen usw.
Man sieht sehr schön, wie sich die Schnittpunkte der Tangenten mit der x-Achse der gesuchten Nullstelle der Funktion nähern.
Wie sieht die mathematische Beschreibung dazu aus?
Wir haben den Startwert x_0 vorgegeben und suchen die Tangente im Punkt x_0, f(x_0):
Die Steigung m der Tangenten ist die 1. Ableitung der Funktion f an der Stelle x_0.
Die Tangente hat den y-Achsenabschnitt b. Diesen können wir berechnen, indem wir die Koordinaten des Berührungspunktes in die Tangente einsetzen und nach b auflösen.
Jetzt ersetzen wir b und m in der Funktion t(x) und fassen noch zusammen.
Für das Newton-Verfahren benötigen wir die Nullstelle dieser Tangente, die wir x_1 nennen.
Diesen Ausdruck lösen wir nach x_1 auf.
Und damit fangen wir wieder von vorne an.
Wir bestimmen nun die Tangente zum Punkt x_1, f(x_1), suchen deren Nullstelle und erhalten damit x_2 usw.
Das ist also das Newton-Verfahren, mit dessen Hilfe man die Nullstelle einer Funktion findet, die von einer Variablen abhängt.
Diese Formel habe ich auf die neue Folie übertragen und noch einmal etwas anders darunter notiert.
Die Frage ist nun, wie wir das, was wir gerade gelernt haben, auf das eigentliche Problem, nämlich das Lösen von Systemen aus nichtlinearen algebraischen Gleichungen, wie dieses Beispiel hier, übertragen können?
Den Großteil der Formel können wir 1 zu 1 übertragen. Aber wir müssen beachten, dass die hier gezeigten Größen nun Vektoren sind.
Man spart sich oft die Schreibweise, die Vektoren mit einem kleinen Pfeil zu kennzeichnen.
Das bedeutet, f(x_0) ist ein Vektor, dessen zwei Komponenten die Funktionen f_1 und f_2 sind und x_0 ist ebenfalls ein Vektor, der aus den beiden Komponenten x und y besteht.
Was noch fehlt, ist die 1. Ableitung.
Wir haben jetzt mehrere Funktionen und diese Funktionen hängen von mehreren Variablen ab.
Damit tritt an die Stelle der 1. Ableitung die sogenannte Jacobi-Matrix.
Die Jacobi-Matrix enthält alle partiellen Ableitungen aller Funktionen.
Mit dieser Jacobi-Matrix kommt jetzt der deutsche Mathematiker Carl Gustav Jakob Jacobi, die zweite berühmte Persönlichkeit, mit ins Spiel.
Die Jacobi-Matrix für unser einfaches Beispiel sieht so aus:
Die partiellen Ableitungen berechnen sich damit zu 4, 2y, 2x und 2.
Wer jetzt bei der Matrizenrechnung aufgepasst hat, weiß,
dass die Division für Matrizen nicht definiert ist.
Deshalb dürfen wir die 1. Ableitung im Nenner
nicht einfach durch die Jacobi-Matrix ersetzen.
Statt dessen arbeitet man mit der inversen Matrix,
die mit einer hochgestellten -1 markiert ist.
Auf die Berechnung der inversen Matrix muss an dieser Stelle
nicht weiter eingegangen werden, weil noch weiter umgeformt wird.
Letztendlich erhalten wir dann diese Formel, mit der schrittweise die gesuchte Nullstelle angenähert wird.
Für unser einfaches Beispiel sähe das so aus:
Jetzt beginnen wir, nach der Nullstelle für dieses Gleichungssystem zu suchen.
Als Startwert sei x_0 = 0 und y_0 = 0 vorgegeben. Nach Einsetzen der Startwerte in die Formel und Zusammenfassen erhalten wir diesen Ausdruck.
Wir können direkt ablesen:
Damit rechnen wir jetzt x_1 und y_1 aus und setzen diese in die Ausgangsformel ein. Damit startet der Algorithmus von vorne.
Wir setzen an Stelle von y nun hier 1,5 ein und für x 1,25. Wir fassen zusammen und stellen die erweiterte Koeffizientenmatrix auf.
Diese können wir mit dem Gauß-Algorithmus lösen.
Ich habe die beiden ersten Schritte auf diese Folie übertragen und die entsprechenden Punkte auch in diesem Schaubild eingetragen.
Nach rechts wird der Wert der Variablen x abgetragen, nach oben die Variable y.
Wenn wir nun den Algorithmus immer wieder von Neuem durchlaufen, nähern wir uns der Lösung des nichtlinearen algebraischen Gleichungssystems.
Man erkennt, dass während sich die Funktionswerte für f_1 und f_2 der Null nähern,
sich x und y beide 1 nähern, sodass im Schaubild die Punkte ab Iterationsschritt 6 quasi deckungsgleich sind mit Punkt 5.
Nach Iterationsschritt 8 hat man das Endergebnis erreicht, denn wir haben die Nullstellen des Gleichungssystems gefunden.
Das Ergebnis können wir überprüfen, indem wir x = 1 und y = 1 in die Funktionen f_1 und f_2 einsetzen.
Und tatsächlich sind damit beide Null.
Das war nun ein ganz kleiner Einblick in die mathematischen Grundlagen, die Ingenieure benutzen, um Optimierungsprozesse am Rechner durchzuführen.
Wir hatten hier nur zwei Gleichungen mit zwei Unbekannten. Bei den Simulationen, wie sie im Fachgebiet Computational Engineering durchgeführt werden, müssen tausende von Gleichungen mit tausenden von Variablen gelöst werden.
Entsprechend zeitaufwendig sind diese Simulationen. Welche Ergebnisse hat die Arbeitsgruppe erzielen können?
Bei unserer Arbeitsgruppe haben wir Algorithmen entwickelt, die die Simulationszeit deutlicher verkürzen können. Und dadurch kann man die Motoren noch schneller optimieren.
Das haben wir gemacht, indem z.B. die Anzahl oder die Größe von Permanentmagneten reduziert wird, bei der gleichen Leistung, so spart man die Rohstoffe z.B. Seltene Erden ein.