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

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

  • Upload
    lorant

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

1Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

M. Schneider, A. Lodwich, U. Lehmann, J. Brenig, D. Reinarz

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

2Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

3Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Technologieschema Komponenten des Regelkreises

Regelstrecke

PC mit ReglerVerstärker/ Stellglied

Zeilenkamera/Messeinrichtung

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

4Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Schwebende Kugel im Magnetfeld

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

5Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Video

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

6Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Technologieschema (Animation)

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

7Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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]

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

8Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

9Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

10Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

11Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

Festlegen der Trainings-, Validierungs- und Testdaten!

Tabelle mit allen Daten muss noch in eine für die NN-Toolbox passende Form gebracht werden!

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

12Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

Benötigtes Format:

1. Spalte:Input 1: Spannung U [V]

2. Spalte:Input 2: Position Pos [m]

3. Spalte:Output: Magnetfeld B [T]

-> Tabelle in die benötigte Form bringen ( z. B. Copy and Paste)

●●●

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

13Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

14Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

15Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

4 Arbeitsblätter:

Trainingsdaten

Validierungsdaten

Testdaten

Eingabe- und Ausgabewert des KNN müssen korrespondieren!

Tabelle gesamt

Spalte mit Ust in [V]

Spalte mit Pos in [m]

Spalte mit B in [T]

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

16Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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!

Daten müssen in MATLAB in die entsprechende Matrix eingelesen werden

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

17Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

18Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

19Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

20Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

Insgesamt gibt es 126 Datensätzen! Nach der Aufteilung muss die Summe der Trainings- (100), Validierungs- (18) und Testdatensätze (8) wieder 126 ergeben!

Matrix mit 2 Zeilen und 100 Spalten

Matrix mit 2 Zeilen und 8 Spalten

Matrix mit 2 Zeilen und 18 Spalten

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

21Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

Insgesamt gibt es 126 Datensätzen! Nach der Aufteilung muss die Summe der Trainings- (100), Validierungs- (18) und Testdatensätze (8) 126 ergeben

Matrix mit 1 Zeile und 100 Spalten

Matrix mit 1 Zeile und 18 Spalten

Matrix mit 1 Zeile und 8 Spalten

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

22Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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.

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

23Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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)

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

24Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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.

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

25Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

KNN

Architektur kann frei gewählt werden zum Beispiel 2 – 4 – 3 – 1

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

26Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Trainingseinstellungen

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

27Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Trainingseinstellungen

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?

Geänderte Werte mitSet Input Range bestätigen

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

28Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Trainingseinstellungen

Trainingsverfahren kann frei gewählt werdenhier als Beispiel Resilient Backpropagation (trainrp)

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

29Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Fehlerkurven

2. Beispiel Levenberg-Marquardt backpropagation (trainlm)

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

30Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Daten aus Excel

• Magnetisches Verhalten

• Abhängigkeit von Spannung

Copy & PasteCopy & Paste

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

31Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB KNN erzeugen

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

32Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Training

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

33Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB MATLAB Skript

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

34Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB MatLab Skript 2

Spannungen von 3.5 bis 5.5VEntfernungen 2 bis 12cm

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

35Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Übertragungsfunktion vergleichen

Originaldaten

Gelerntes Verhalten

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

36Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in Simulink

WICHTIG: Abtastzeiten für die beiden Inputs des KNN abgleichen!(Berechnung)

>>gensim(net,st)

net -- Neural network aus Workspacest -- Sample time (default = 1)

st = -1 to get a continuously sampling network

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

37Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in Simulink

Ust

d

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

38Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Simulink

Synchronisation der beiden Blöcke!!! (sehr wichtig!!!)

Welche Spannnungen Ust in [V] dienen als Input für das KNN?

Welche Abstände d in [m] dienen als Input für das KNN?

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

17 Werte für die Spannung U von 0V bis 8V in Schritten von 0,5V 17*29 = 493 Werte als Simulationsdauer

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

39Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in SimulinkUst [V]

B [T]

d [m]

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

40Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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.

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

41Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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)

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

42Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in Simulink mit Daten aus dem WorkspaceMagnetische Flussdichte B in [T] Sollwert

Steuerspannung Ust in [V]

Position Pos in [m]

Magnetische Flussdichte B in [T] Istwert

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

43Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

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

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

44Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Fragen

Vielen Dank für Ihre

Aufmerksamkeit !