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

Preview:

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

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

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

3Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Technologieschema Komponenten des Regelkreises

Regelstrecke

PC mit ReglerVerstärker/ Stellglied

Zeilenkamera/Messeinrichtung

4Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Schwebende Kugel im Magnetfeld

5Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Video

6Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Technologieschema (Animation)

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]

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

9Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

10Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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!

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)

●●●

13Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

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]

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

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

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

19Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Datenaufbereitung

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

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

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.

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)

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.

25Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

KNN

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

26Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Trainingseinstellungen

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

28Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Trainingseinstellungen

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

29Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Fehlerkurven

2. Beispiel Levenberg-Marquardt backpropagation (trainlm)

30Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Daten aus Excel

• Magnetisches Verhalten

• Abhängigkeit von Spannung

Copy & PasteCopy & Paste

31Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB KNN erzeugen

32Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Training

33Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB MATLAB Skript

34Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB MatLab Skript 2

Spannungen von 3.5 bis 5.5VEntfernungen 2 bis 12cm

35Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in MATLAB Übertragungsfunktion vergleichen

Originaldaten

Gelerntes Verhalten

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

37Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in Simulink

Ust

d

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

39Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Test des KNN in SimulinkUst [V]

B [T]

d [m]

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.

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)

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

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

44Schwebende Kugel – MATLAB/SimulinkSS2007

Inhalt

Ende

Fragen

Vielen Dank für Ihre

Aufmerksamkeit !

Recommended