7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c...

21
Daniel Schrammel - BA Stuttgart - 7. Simulink-Grundlagen

Transcript of 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c...

Page 1: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

7. Simulink-Grundlagen

Page 2: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Was ist Simulink ?

• SIMULINK ist Teil der Matlab Programmgruppe zur Simulation und Analyse

von diskreter und kontinuierlicher dynamischer Systeme.

• In Simulink werden grafische Modelle erstellt / modelliert / simuliert.

• File-extension: *.mdl

Page 3: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Simulink öffnen

• simulink oder

• Start -> Simulink -> Library Browser oder

• File -> New -> Model oder

• Shortcut in der Toolbar

new model

Page 4: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Simulink Library Browser

• Library Browser ist eine Blockbibliothek, um standardisierte oder eigen

definierte Blöcke in einem Simulink Modell verwenden zu können !

Block (+Name)

Blockbeschreibung

Kategorie

(Block Library)

Gruppe

(Blocksets)

Suchfunktion

(ohne Wildcards)

Page 5: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Simulink Library Browser

• Kategorie Simulink (Beispiele)

– Continuos (Integration, Ableitung, Signalverzögerung)

– Discontinuities (Limitierung / Sättigung)

– Discrete (Speicherung, Verzögerung)

– Look-Up-Tables (Datenzuordnung)

– Math-Operations

– Ports & Subsystems (Modellgliederung)

– Signal Routing (Goto, From, Datenbusse)

– Sinks (Datensenken, Scopes, Terminatoren)

– Sources (Parameter, Signalgeneratoren, Uhr)

– User-Defined-Functions (S-Function / Einbindung C-Code)

• RealTimeWorkshop

– Codegenerierungswerkzeuge

• Stateflow

– Zustandsautomat

Page 6: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Modellkonstruktion

• per Drag & Drop werden Blöcke aus dem Library Browser in das Modell

gezogen

– Alternative: Copy & Paste im Modell vorhandener Blöcke

• jeder Block hat n-Eingänge (linke Seite) und m-Ausgänge (rechte Seite)

(n,m >= 0)

• funktionale Verkettung der Blöcke werden über Signalleitungen erreicht, die

entweder mit der Maus gezogen werden oder über

Quellblock markieren -> SHIFT + rechte Maustaste auf Zielblock oder über

Quellblock markieren -> CTRL + linke Maustaste auf Zielblock

• Achtung: Tatsturoption funktioniert nur bei 1:1 Beziehung

Page 7: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Modellkonstruktion

• platzierte Blöcke können mit Tastatur und / oder Maus verschoben werden,

dabei bleiben Signalleitungen erhalten

• SHIFT + Move über Maus verschiebt einen Block und trennt ihn von der

Signalleitung

• Blocknamen werden automatisch und eindeutig vergeben

• Blocknamen können mittels Klick auf den Namen geändert werden

• jeder Block ist in seinen Abmessungen über die Maus veränderbar

Page 8: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Blockeigenschaften

• Mit einem Doppelklick öffnet sich ein Eigenschaftenfenster zur Einstellung

von blockspezifischen Simulationsparametern

– Alternative: rechte Maustaste -> Sim Parameters

– Ausnahme: Scope – Menü und rechte Maustaste auf Darstellung

Eigenschaften-Dialog aufrufen

Page 9: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Blockeigenschaften

• Weitere Eigenschaften sind über Kontextmenü (rechte Maustaste) erreichbar

– Farbgestaltung

– Schatten

– Rotation

– BlockProperties

(BlockNotizen)

– etc.

• Blöcke können über STRG+R gedreht werden, um eine lesbare Anordnung zu

gewährleisten !

Page 10: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Signalleitungen

• Beschriftung von Signalleitungen über

– Doppelklick oder

– Kontextmenü (signal properties) der betreffenden Signalleitung

• Beschriftung hat keinen funktionalen Einfluss, geeignete Benutzung

verbessert aber deutlich die Lesbarkeit !

• Signalleitungen können Abzweige (funktional relevant) und Kreuzungen

(keine funktionale Relevanz) enthalten !

Verzweigung

Kreuzung

Page 11: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Matlab – Simulink - Kopplung

• Variablen, die im WorkSpace definiert sind, können in den

Eigenschaftsfenstern der einzelnen Blöcke verwendet werden

• Modellfehler und –warnungen (z.B. nicht verbundene Ein- und Ausgänge)

werden im Command Window angezeigt

• Zu jedem Block können Aktions-Callbacks definiert werden !

Page 12: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Matlab – Simulink - Kopplung

• Zur Modellkonstruktion stehen Matlab-Befehle zur Verfügung, die aber in der

Praxis kaum Relevanz haben !

– add_line() = Blöcke verbinden

– add_block() = Blöcke hinzufügen

– replace_block() = Blöcke ersetzen

– set_param() = Modellparameter setzen

• Achtung: Bei diesen Befehlen gilt der kürzeste Weg, nicht der übersichtlichste

Weg als Devise !

Page 13: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Modell simulieren

• Ein Modell zu simulieren bedeutet, die Ausgänge anhand der Eingänge unter

Berücksichtigung des Algorithmus zu berechnen

• Simulation durch

– sim test.mdl im Command Window

– Play-Button in Simulink

• Zeitanzeige (Fortschritt der aktuellen Simulation) unten im Simulinkfenster

Page 14: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Simulationseinstellungen

• In jedem Modell können und müssen wichtige Simulationsparameter

vorgegeben werden !

– Startzeit und Endzeit der Simulation / Berechnung, inf bzw. –1 für unendlich

– Simulationsart: feste oder variable Schrittweite

– Einschränkungen der Schrittweite

– Lösungsalgorithmus (Solver)

– Fehlerkategorien

– Workspace-Eigenschaften

(Variablen laden, Ergebnisse schreiben)

– etc.

Page 15: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Eigenschaften der Solver

• Arbeitsweise:

– über interne Mechanismen (Integration, Beobachtung Ausgang anhand Eingang)

wird die notwendige Schrittweite für ein hinreichend genaues Ergebnis ermittelt

– jeder Solver hat eigene Vor- und Nachteile !

• Feste Schrittweite:

– discrete = Abarbeitung von Abtastzeiten

– ode1 = Euler-Polygonzugverfahren

– ode5 = Dormand-Price Formel

• Variable Schrittweite:

– ode45 = sehr gute erste Wahl, dürfte in den meisten

Fällen zu einem guten Ergebnis führen

– ode15s = Mehrschrittverfahren für steife

Differentialgleichungen

• steife Differentialgleichungen:

– stark unterschiedlich große Koeffizienten

– reagieren in kleinsten Intervallen sehr stark

Page 16: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Gruppierung in Subsysteme

• Große Modelle können mit Hilfe von Subsystemen übersichtlicher gestaltet

und gruppiert werden !

• Subsysteme werden aus dem Library Browser wie ein Block gezogen oder

über das Kontextmenü aus bestehenden Blöcken erstellt !

Page 17: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Gruppierung in Subsysteme

• Subsysteme können auch als Funktionscontainer betrachtet und

wiederverwendet werden !

– Inport = Übergabeparameter, Eingangsgröße

– Outport = Rückgabewert, Ausgangsgröße

• Subsysteme können auch für eine bedingte Ausführung eingestellt werden !

Page 18: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

eigene Bibliotheksblöcke

• Es können eigene Blöcke für die Bibliothek erstellt werden, die zur

Modellkonstruktion verwendet werden können !

• In einem Subsystem werden die benötigten Blöcke platziert - dabei die In- und

Outports sinnvoll benennen !

Page 19: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

eigene Bibliotheksblöcke

• Maske: über das Kontextmenü, muss das Subsystem maskiert werden, um

– Einstellungen im Eigenschaftsfenster aufrufen und vornehmen zu können

– die Darstellung zu beeinflussen

– den neuen Bibliotheksblock zu dokumentieren

• Drei Fragezeichen weisen auf einen Fehler in den Maskeneinstellungen hin !

• Das Subsystem / Modell sollte unter einem geeigneten Namen gespeichert

werden, z.B. Lib_xyz.mdl !

Page 20: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

eigene Bibliotheksblöcke

• Die Datei slblocks.m beinhaltet die Definition des Library Browsers !

– which slblocks liefert den Pfad der Definitionsdatei !

• Beim Start des Library Browsers wird in jedem Verzeichnis, welches im

Matlab-Pfad (path) steht, eine Datei slblocks.m gesucht und ausgeführt !

Page 21: 7. Simulink-Grundlagen - Daniel Schrammelschrammel.net/ba/matlab/2006-1/Matlab BA Stuttgart 3c 2006.pdf · Daniel Schrammel - BA Stuttgart - Simulink Library Browser • Library Browser

Daniel Schrammel

- BA Stuttgart -

Was gibt es noch ?

• Über die Tasten R, F und V kann der Zoom des Modells eingestellt werden !

• Über „Bus Selector“ und „Bus Creator“ können viele einzelne Signalleitungen

zu einem Datenbus gebündelt werden !

• Terminatoren sind Signalgräber, um Simulink-Warnungen „unconnected line“

zu umgehen !

• Zur Beeinflussung eines Modells während der Simulationszeit, eignet sich der

Block „Manual Switch“ ! Durch Doppelklick wird der Signalpfad zur Laufzeit

geändert.