1 / 44

Künstlich Neuronales Netz (KNN) zur Modellierung der magnetischen Flussdichte

Künstlich Neuronales Netz (KNN) zur Modellierung der magnetischen Flussdichte. M. Schneider, A. Lodwich, U. Lehmann, J. Brenig, D. Reinarz. Inhalt. Datenaufbereitung Training des KNN Test des KNN in MATLAB Test des KNN in Simulink Test des KNN in Simulink mit Daten aus dem Workspace

lorant
Download Presentation

Künstlich Neuronales Netz (KNN) zur Modellierung der magnetischen Flussdichte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Künstlich Neuronales Netz (KNN) zur Modellierung der magnetischen Flussdichte M. Schneider, A. Lodwich, U. Lehmann, J. Brenig, D. Reinarz Schwebende Kugel – MATLAB/Simulink

  2. Inhalt • Datenaufbereitung • Training des KNN • Test des KNN in MATLAB • Test des KNN in Simulink • Test des KNN in Simulink mit Daten aus dem Workspace • Quellenverzeichnis • Fragen Schwebende Kugel – MATLAB/Simulink

  3. Technologieschema Komponenten des Regelkreises Regelstrecke Zeilenkamera/Messeinrichtung Verstärker/ Stellglied PC mit Regler Schwebende Kugel – MATLAB/Simulink

  4. Schwebende Kugel im Magnetfeld Schwebende Kugel – MATLAB/Simulink

  5. Video Schwebende Kugel – MATLAB/Simulink

  6. Technologieschema (Animation) Schwebende Kugel – MATLAB/Simulink

  7. Datenaufbereitung Tabelle A2 aus der Diplomarbeit „Schwebende Kugel“ von D. Reinarz (http://stud-in.fh-swf.de/Dirk.Reinarz/) Einheiten umrechnen!!! [mm]  [m] [mT]  [T] [V]  [V] Schwebende Kugel – MATLAB/Simulink

  8. Datenaufbereitung • Tabelle A2 in der Diplomarbeit markieren, kopieren und in Excel einfügen • Einheiten prüfen und bei Bedarf umrechnen • Daten auf Vollständigkeit prüfen, evtl. Anfangsbedingungen einfügen • Daten aufteilen in Trainings-, Validierungs- und Testdaten • Daten sortieren und speichern Schwebende Kugel – MATLAB/Simulink

  9. Datenaufbereitung Schwebende Kugel – MATLAB/Simulink

  10. Datenaufbereitung Schwebende Kugel – MATLAB/Simulink

  11. Datenaufbereitung Festlegen der Trainings-, Validierungs- und Testdaten! Tabelle mit allen Daten muss noch in eine für die NN-Toolbox passende Form gebracht werden! Schwebende Kugel – MATLAB/Simulink

  12. Datenaufbereitung Benötigtes Format: • Spalte: Input 1: Spannung U [V] • Spalte: Input 2: Position Pos [m] • Spalte: Output: Magnetfeld B [T] ● ● ● -> Tabelle in die benötigte Form bringen ( z. B. Copy and Paste) Schwebende Kugel – MATLAB/Simulink

  13. Datenaufbereitung Schwebende Kugel – MATLAB/Simulink

  14. Datenaufbereitung Aufteilung in verschiedene Einzeltabellen für Training, Validierung und Test auf separaten Arbeitsblättern für die Weiterverarbeitung in MATLAB Markieren aller Trainingsdaten in der Tabelle Verknüpfen hat den Vorteil, dass Aktualisierungen mit übernommen werden!! Schwebende Kugel – MATLAB/Simulink

  15. Datenaufbereitung Tabelle gesamt  4 Arbeitsblätter: Trainingsdaten Validierungsdaten Testdaten Spalte mit Ust in [V] Spalte mit B in [T] Spalte mit Pos in [m] Eingabe- und Ausgabewert des KNN müssen korrespondieren! Schwebende Kugel – MATLAB/Simulink

  16. Datenaufbereitung Daten müssen in MATLAB in die entsprechende Matrix eingelesen werden Für MATLAB werden 6 Matrizen mit den entsprechenden Daten benötigt (z. B. input_train, input_valid, input_test, target_train, target_valid, target_test ). Insgesamt gibt es 126 Datensätzen! Nach der Aufteilung muss die Summe der Trainings-, Validierungs- und Testdatensätze 126 ergeben! Schwebende Kugel – MATLAB/Simulink

  17. Datenaufbereitung Import über MATLAB - Funktion xlsread: >> input_train = xlsread('Daten_Excel','Trainingsdaten', 'A3:B102');  Die Daten der Felder A3 bis B102 des Arbeitsblattes „Trainingsdaten“ der Exceltabelle Daten_Excel wird als Matrix mit dem Namen input_train eingelesen ODER: input_train = xlsread(‘Daten_Excel‘, -1); -> Daten, die eingelesen werden sollen, können mit der Maus markiert werden -> beide Varianten: gleiches Ergebnis Schwebende Kugel – MATLAB/Simulink

  18. Datenaufbereitung Die NN-Toolbox liest die Daten spaltenweise ein, d. h. die einzelnen Matrizen müssen transponiert werden, so dass pro Inputneuron bzw. Targetneuron eine Zeile entsteht. Hierfür die MATLAB-Funktion transpose nutzen Schwebende Kugel – MATLAB/Simulink

  19. Datenaufbereitung Schwebende Kugel – MATLAB/Simulink

  20. Datenaufbereitung Matrix mit 2 Zeilen und 100 Spalten Matrix mit 2 Zeilen und 18 Spalten Matrix mit 2 Zeilen und 8 Spalten Insgesamt gibt es 126 Datensätzen! Nach der Aufteilung muss die Summe der Trainings- (100), Validierungs- (18) und Testdatensätze (8) wieder 126 ergeben! Schwebende Kugel – MATLAB/Simulink

  21. Datenaufbereitung Matrix mit 1 Zeile und 100 Spalten Matrix mit 1 Zeile und 18 Spalten Matrix mit 1 Zeile und 8 Spalten Insgesamt gibt es 126 Datensätzen! Nach der Aufteilung muss die Summe der Trainings- (100), Validierungs- (18) und Testdatensätze (8) 126 ergeben Schwebende Kugel – MATLAB/Simulink

  22. KNN • „nntool“ über das „Command Window“ aufrufen • Die Inputs (3 St.) und Targets (3 St.) aus dem Workspace mit „Import“ in den „Data Manager“ importieren. • Im „Data Manager“ den Button „New Network“ betätigen, um ein Netzwerk zu erstellen. Dort können der Name, der Network Type, die Input Ranges, das Trainingsverfahren, die Anzahl der Layer, die Anzahl der Neuronen pro Layer und die Aktivierungsfunktion, etc. definiert werden. Der Input-Layer zählt hier nicht als Layer. Bevor das Netz mit „Create“ erstellt wird, kann es über „View“ angeschaut werden. Das ist gerade bei größeren Netzen sinnvoll. Schwebende Kugel – MATLAB/Simulink

  23. KNN • Jetzt im „Data Manager“ das erstellte Netz auswählen und den Button „Train“ betätigen, um die Trainingsparameter einzustellen und die Matrizen mit den Trainings-, Validierungs- und Testdaten auszuwählen. • Initialisieren Sie vor dem Training die Gewichte. • Jetzt kann trainiert werden! • Die Fehlerkurve wird automatisch angezeigt. • Speichern der Zwischenergebnisse nicht vergessen! • Evtl. Training mit anderen Parametern wiederholen bzw. Netzarchitektur verändern, wenn die Werte der Fehlerkurven noch zu groß sind (vorher muss das Netz initialisiert werden: entweder auf die gleichen Werte wie beim 1. Trainingsversuch -> Revert Weights oder auf neue Werte -> Initialize Weights) Schwebende Kugel – MATLAB/Simulink

  24. KNN >>nntool • KNN erstellen und KNN trainieren! • Trainingsverfahren: • traingd • traingdm • trainrp • trainlm • etc. • (Beschreibung der Trainingsverfahren unter HELP -> NNToolbox -> User Guide) • Nach erfolgreichem Training das KNN in Workspace exportieren für die weitere Bearbeitung. Schwebende Kugel – MATLAB/Simulink

  25. KNN Architektur kann frei gewählt werden zum Beispiel 2 – 4 – 3 – 1 Schwebende Kugel – MATLAB/Simulink

  26. Trainingseinstellungen Schwebende Kugel – MATLAB/Simulink

  27. Trainingseinstellungen Geänderte Werte mit Set Input Range bestätigen Spätestens hier die „Input Ranges“ kontrollieren! Input 1 = Ust  Welche möglichen Spannungen können auftreten? Input 2 = Pos  Welche möglichen Positionen können auftreten?  Wurden Sicherheiten eingebaut? Muss das KNN extrapolieren? Schwebende Kugel – MATLAB/Simulink

  28. Trainingseinstellungen Trainingsverfahren kann frei gewählt werden hier als Beispiel Resilient Backpropagation(trainrp) Schwebende Kugel – MATLAB/Simulink

  29. Fehlerkurven 2. Beispiel Levenberg-Marquardt backpropagation (trainlm) Schwebende Kugel – MATLAB/Simulink

  30. Test des KNN in MATLAB Daten aus Excel • Magnetisches Verhalten • Abhängigkeit von Spannung Copy & Paste Schwebende Kugel – MATLAB/Simulink

  31. Test des KNN in MATLAB KNN erzeugen Schwebende Kugel – MATLAB/Simulink

  32. Test des KNN in MATLAB Training Schwebende Kugel – MATLAB/Simulink

  33. Test des KNN in MATLAB MATLAB Skript Schwebende Kugel – MATLAB/Simulink

  34. Test des KNN in MATLAB MatLab Skript 2Spannungen von 3.5 bis 5.5VEntfernungen 2 bis 12cm Schwebende Kugel – MATLAB/Simulink

  35. Test des KNN in MATLAB Übertragungsfunktion vergleichen Originaldaten Gelerntes Verhalten Schwebende Kugel – MATLAB/Simulink

  36. Test des KNN in Simulink >>gensim(net,st) net -- Neural network aus Workspace st -- Sample time (default = 1) st = -1 to get a continuously sampling network WICHTIG: Abtastzeiten für die beiden Inputs des KNN abgleichen! (Berechnung) Schwebende Kugel – MATLAB/Simulink

  37. Test des KNN in Simulink Ust d Schwebende Kugel – MATLAB/Simulink

  38. Simulink Synchronisation der beiden Blöcke!!! (sehr wichtig!!!) Welche Spannnungen Ust in [V] dienen als Input für das KNN? 17 Werte für die Spannung U von 0V bis 8V in Schritten von 0,5V  17*29 = 493 Werte als Simulationsdauer Die Spannung ist über einen gewissen Zeitraum konstant. Dieser Zeitraum ist abhängig von den möglichen Abständen. Hier in diesem Beispiel: d=[0 0.14] in Schritten von 0,05  29 Schritte von d für die Sample Time Welche Abstände d in [m] dienen als Input für das KNN? Schwebende Kugel – MATLAB/Simulink

  39. Test des KNN in Simulink Ust [V] d [m] B [T] Schwebende Kugel – MATLAB/Simulink

  40. Test des KNN in Simulink mit Daten aus dem Workspace Hier den Namen der Matrix eintragen, die die Daten für die Simulation enthält. In diesem Beispiel zur Demonstration die Trainingsdaten. Es kann aber auch eine neue Matrix mit dem gesamten Datensatz zur Simulation erstellt werden. Schwebende Kugel – MATLAB/Simulink

  41. Test des KNN in Simulink mit Daten aus dem Workspace Das Simulink-Modell liest den Datensatz zeilenweise ein. Für das Simulink-Modell muss eine Zeitkomponente in die Matrix eingefügt werden (= 1. Spalte) Schwebende Kugel – MATLAB/Simulink

  42. Test des KNN in Simulink mit Daten aus dem Workspace Magnetische Flussdichte B in [T] Sollwert Magnetische Flussdichte B in [T] Istwert Steuerspannung Ust in [V] Position Pos in [m] Schwebende Kugel – MATLAB/Simulink

  43. Quellen • Neural Networks User's Guide (nnet.pdf) aus der MATLAB-Hilfe für die Neural Network Toolbox • Diplomarbeit „Fuzzy-Lageregelung einer schwebenden Kugel mittels Echtzeitbildverarbeitung“ von Dirk Reinarz, September 1997, http://stud-in.fh-swf.de/Dirk.Reinarz/ • Vorlesungsskript Prof. Lehmann Schwebende Kugel – MATLAB/Simulink

  44. Fragen Vielen Dank für Ihre Aufmerksamkeit ! Schwebende Kugel – MATLAB/Simulink

More Related