View
220
Download
0
Category
Preview:
Citation preview
Daniel Schrammel
- BA Stuttgart -
7. Simulink-Grundlagen
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
Daniel Schrammel
- BA Stuttgart -
Simulink öffnen
• simulink oder
• Start -> Simulink -> Library Browser oder
• File -> New -> Model oder
• Shortcut in der Toolbar
new model
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)
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
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
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
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
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 !
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
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 !
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 !
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
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.
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
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 !
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 !
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 !
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 !
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 !
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.
Recommended