SIMULINK Grundlagen Simulation mit Simulink/Matlab WS13/14
Inhalt SIMULINK Allgemeines SIMULINK Bibliotheken Sources, Sinks, Math Operations und Logic and Bit Operations Simulationsparameter Algorithmen zur numerischen Integration SIMULINK Bibliotheken Signal Routing, Signal Attributes und Ports&Subsystems Simulation mit Simulink/Matlab WS13/14
Simulink Allgemeines Grafische Oberfläche zur Modellierung von physikalischen Systemen mittels Signalflussgrafen Ergänzungspaket zu MATLAB (Toolbox) Simulink-Produktfamilie bietet Erweiterungen für zahlreiche Spezialgebiete, z.b. Ereignisbasierte Systeme Stateflow Steuerungen/Regelungen Simulink Control Design Codegenerierung Simulink Coder, Embedded Coder Rapid Prototyping xpc Target, Real-Time Windows Target f(t) = 80 e 1 80 t sin(0.25t+ π 3 ) Simulation mit Simulink/Matlab WS13/14 1
Unter Windows: SIMULINK Grundlagen Starten von SIMULINK Befehl open system( simulink.slx ) öffnet Bibliotheksfenster Befehl simulink oder Button öffnet Library Browser Simulation mit Simulink/Matlab WS13/14 2
Starten von SIMULINK Basis sind Funktionsbausteine Funktionsbausteine sind gekennzeichnet durch Ein- und Ausgänge, Name (änderbar), Block-Icon Bei Doppelklick öffnet sich Block P arameters Dialogbox Simulation mit Simulink/Matlab WS13/14 3
SIMULINK Bibliotheken Sources und Sinks Unterbibliothek Sources: Generieren von Signalen Einlesen von Daten aus dem Workspace Einlesen von Daten aus Dateien Unterbibliothek Sinks: 1 Constant Step Ramp Pulse Generator Signal Generator Sine Wave Repeating Sequence untitled.mat From File simin From Workspace 1 In1 uvm. Grafische Anzeige von Signalen Schreiben von Daten auf den Workspace Schreiben von Daten in eine Datei Scope XY Graph untitled.mat To File simout To Workspace 1 Out1 uvm. Simulation mit Simulink/Matlab WS13/14 4
Beispiel: Erzeugung, Darstellung und Speicherung von Signalen bsp sources sinks.slx, S. 295 (6. A.), S. 300 (7. A.) Speicherung auf Workspace über Scope, Outport ( Model Config. Parameters), To Workspace Formate beachten! z.b. Structure: plot(tout,simout.signals.values) oder timeseries: plot(simout) bsp sources sinks sl.slx, S. 297 (6. A.), S. 302 (7. A.) Speicherung auf Workspace mittels Signal Logging: 1. Signal Properties Log signal data, 2. Signal name und/oder Logging name vergeben 3. Signale aus logsout auspacken: sig1 = logsout.get( sig1 ).Values sig2 = logsout.get( sig2 ).Values plot(sig1) plot(sig2) Simulation mit Simulink/Matlab WS13/14 5
SIMULINK Bibliotheken Math und Logic Operations Unterbibliothek Math Operations: Arithmetische Operationen Mathematische und trigonometrische Funktionen Sum Product e u Math Function sin 1 Gain min MinMax floor Rounding Function Dot Product Trigonometric Function P(u) O(P) = 5 Polynomial uvm. Unterbibliothek Logic and Bit Operations: Logische und Vergleichsoperationen Operationen auf Bitebene, Signalüberwachungen Bitwise AND 0xD9 Bitwise Operator AND Logical Operator <= Relational Operator U ~= U/z Detect Change U > U/z Detect Increase Extract Bits Upper Half Extract Bits uvm. Simulation mit Simulink/Matlab WS13/14 6
Beispiel zu Math Operations Modellierung der Gleichung f(t) = 80 e 1 80 t sin(0.25t+ π 3 ) Mögliche Lösung: Sine Wave Clock 80 Constant Divide 1 Gain e u Math Function Product1 Product2 1 Gain1 Mux gedaempfte Sinussschwingung bsp math.slx, S. 302 (6. Auflage), S. 307 (7. Auflage) Simulation mit Simulink/Matlab WS13/14 7
Simulations- und Parametersteuerung (1) von SIMULINK aus: Buttons, und vom MATLAB Command Window aus bzw. aus Matlab-Skripten heraus: Simulation mit beliebigen Simulationsparametern: SimOut = sim( sys, Param1, Value1,...) SimOut = sim( sys, Configset) Erzeugen/Modifizieren des Model Configuration Set Conf igset: CS = getactiveconfigset( sys ) Liste aller möglicher Parameter: get param(cs, ObjectParameters ) Welchen Wert hat ein bestimmter Parameter?: get param(cs, P aram1 ) Simulation mit Simulink/Matlab WS13/14 8
Simulations- und Parametersteuerung (2) Werte einzelner Parameter in CS verändern: set param(cs, Param1, Value1,...) Mit verändertem CS neu simulieren: SimOut = sim( sys, CS) Starten, Anhalten, Pausieren, Fortsetzen einer Simulation : set param( sys, SimulationCommand, cmd ) Abfragen des Simulationsstatus: get param( sys, SimulationStatus ) Simulation mit Simulink/Matlab WS13/14 9
Fehlerbehandlung: Simulation Diagnostics Viewer Öffnet sich bei Programmierfehlern abhängig von den Einstellungen im Diagnostics-Register der Model Configuration Para meters Dialogbox (Folie 26) oberer Fensterteil: Fehlerumstände (Art, Ursache, Pfadangabe zur Fehlerquelle, Komponente) unterer Fensterteil: Volltext der Fehlermeldung Simulation mit Simulink/Matlab WS13/14 10
M odel Conf ig. P arameters Dialogbox: Solver (1) Festlegen der Start- und Stoppzeit Festlegen des Integrationsalgorithmus Variable-step: Erst Simulation mit default-einstellungen, dann bei Bedarf: Solver-Typ, Toleranzen und Zero crossing control an Systemdynamik anpassen: gewünschte Genauigkeit tolerierbare Rechenzeit bei discrete (no continuous states): evtl. M ax step size anpassen bei asynchronen Tasks (z.b. Interrupts): Check Boxen für Datentransfer und Prioritätsordnung beachten! Simulation mit Simulink/Matlab WS13/14 11
M odel Conf ig. P arameters Dialogbox: Solver (2) Fixed-step: * F ixed step size: Genauigkeit Rechenzeit beachten * Bei multirate systems und/oder asynchronen Tasks: Option T asking mode f or periodic sample times und Check Boxen für Datentransfer und Prioritätsordnung beachten Festlegen der Zero crossing Optionen (nur für Variable-step) Erst Simulation mit default-einstellungen, nur bei seltenen, speziellen Fällen mit extrem hochfrequenten Schwingungen der Zustandsgrößen oder hochfrequentem Schaltverhalten: Zero Crossing control auf Disable all: dann schneller aber ungenauer! N umber of consecutive zero crossings und evtl. T ime tolerance erhöhen, sonst Warnung oder Abbruch. Simulation mit Simulink/Matlab WS13/14 12
Numerische Integration von Differentialgleichungen Inhomogene Differentialgleichung: u(t) DGL y(t) ẏ(t) = f(u(t),y(t)) Integration: y n+1 = y n + Verschiedene Verfahren: Polygonzugverfahren nach Euler Trapezverfahren nach Heun Runge Kutta Verfahren Verfahren nach Adams-Bashforth t n+1 t n f(u(t),y(t))dt Simulation mit Simulink/Matlab WS13/14 13
Numerische Integration von Differentialgleichungen Polygonzugverfahren nach Euler (explizit) y 1 y y(t 1 ) y 0 y 0 y(t) hy 0 dy t 0 h t 1 t y 1 = y 0 +h ẏ 0 Simulation mit Simulink/Matlab WS13/14 14
Numerische Integration von Differentialgleichungen Trapezverfahren von Heun y (P) y 1 (P) y 1 y 1 y 0 y 0 t 0 h t 1 y 0 +y 1 2 Mittelwert der Steigungen bei separierbaren Variablen: y 1 = y 0 +h (ẏ 0 +ẏ 1 ) 2 bei nicht separierbaren Variablen: y 1 = y 0 +h (ẏ 0 +ẏ P 1 ) 2 Simulation mit Simulink/Matlab WS13/14 15 (P) t
Numerische Integration von Differentialgleichungen Runge Kutta Verfahren y P 3 (t 2 ) = y P 2 y 1 y 1 P 3 (t) y 0 y 0 t 0 h t 1 t 2 t y 2 = y 0 + 2h 6 [ẏ 0 +4ẏ 1 +f(u 2,y P 2 )] Simulation mit Simulink/Matlab WS13/14 16
Numerische Integration von Differentialgleichungen Verfahren nach Adams Bashforth y n y y n-1 P 2 (t) P 2 (t n+1 ) y n-2 h t n-2 t n-1 t n t n+1 t y n+1 = y n + h 12 [23ẏ n 16ẏ n 1 +5ẏ n 2 ] Simulation mit Simulink/Matlab WS13/14 17
Solver: Integrationsalgorithmen in MATLAB (1) Variable step solver: für zeitkontinuierliche, nicht steife Systeme: ode45 (first try), ode23, ode113 für zeitkontinuierliche, steife Systeme: ode15s, ode23s, ode23t, ode23tb Für zeitdiskrete Systeme und Systeme ohne kontinuierliche Zustandsgrößen: discrete (no continuous states) (Variable step) Simulation mit Simulink/Matlab WS13/14 18
Solver: Integrationsalgorithmen in MATLAB (2) Variable step solver: arbeiten mit variabler Integrationsschrittweite ermöglichen Anpassung der Schrittweite an Systemdynamik ermöglichen Erkennung von zero crossings Simulation mit Simulink/Matlab WS13/14 19
Solver: Integrationsalgorithmen in MATLAB (3) Schrittweitenanpassung local error = Änderung der Zustandsgrößen vom letzten zum aktuellen Zeitpunkt e i max(reltol x i,abstol) x i (t) } {{ } acceptable error local error e i abstol = auto: t 0 : abstol = 10 6 t 1...t final : abstol = reltol max( x i ) Acceptable error wird durch reltol* x bestimmt i t n t n+1 t } } } Acceptable error wird durch abstol bestimmt Acceptable error wird durch reltol* x bestimmt i Simulation mit Simulink/Matlab WS13/14 20
Solver: Integrationsalgorithmen in MATLAB (4) zero crossings discontinuities: Unstetigkeiten im Verlauf der Zustandsgrößen (z.b. Abs, Saturation) gewöhnliche Nulldurchgänge x i (t) x i (t) x i (t) t n-1 t n t n+1 t n+1 t zero crossing Variable Nulldurchgang nicht detektiert t Nulldurchgang detektiert t Simulation mit Simulink/Matlab WS13/14 21
Solver: Integrationsalgorithmen in MATLAB (5) Fixed step solver: arbeiten mit fester Integrationsschrittweite keine Schrittweitenanpassung oder Erkennung von Unstetigkeitsstellen ermöglichen genaue Abschätzung der Rechenzeit - wichtig für Hardwareanwendungen ermöglichen Vergleich mit Messsignalen bzw. eine Weiterverwendung in der Praxis für zeitkontinuierliche Systeme: ode8, ode5, ode4, ode3, ode2, ode1, ode14x für zeitdiskrete Systeme und Systeme ohne kontinuierliche Zustandsgrößen: discrete (no continuous states) (Fixed step) Simulation mit Simulink/Matlab WS13/14 22
M odel Conf ig. P arameters Dialogbox: Data Import/Export (1) Laden von Daten aus dem Workspace in Inport-Blöcke auf oberster Modellebene (Formate beachten!) Initialisierung von Zustandsgrößen (sinnvoll, wenn vorher mittels Save to workspace/f inal states gespeichert) Simulation mit Simulink/Matlab WS13/14 23
M odel Conf ig. P arameters Dialogbox: Data Import/Export (2) Schreiben auf den Workspace von internen Größen (Simulationszeit, Zustände etc.) Zuordnung von Zuständen zu Blöcken: z.b. [size, x0, xstring] = modellname beliebigen Ausgangsgrößen über Outport-Blöcke auf oberster Modellebene: Check Box Output Signal Logging-Daten (default-variable logsout) Festlegen der Ausgabeformate und Auflösung (Ref ine Output) Simulation mit Simulink/Matlab WS13/14 24
M odel Conf ig. P arameters Dialogbox: Optimization Festlegung diverser Simulationsoptionen, die Rechen- und Speicheraufwand beeinflussen (default-einstellungen reichen i.d.r. aus) Unter Signals and P arameters: Verstellbarkeit von Blockparametern während der Simulation (Inline parameters ) bei lizensiertem Simulink Coder: Optionen zur optimierten Codegenerierung Simulation mit Simulink/Matlab WS13/14 25
M odel Conf ig. P arameters Dialogbox: Diagnostics Festlegung der Reaktion bei defin. Fehlern: none, warning, error Fehler in Unterregistern nach Ursachen sinnvoll gruppiert Beispiele: Algebraic loop, Automatic solver parameter selection Source block specif ies -1 sample time M odel V erif ication block enabling U nconnected block input/output ports M odel block version mismatch Simulation mit Simulink/Matlab WS13/14 26
M odel Conf ig. P aram. Dialogbox: Hardware Implementation Zur Simulation/Codegenerierung von Modellen, die später auf Signalprozessoren/Microcontrollern ausgeführt werden sollen Eigenschaften von Zielhardware (P roduction hardware) und T est hardware können spezifiziert werden: Device vendor: Auswahl des Herstellers (Infineon, Intel etc.) Device type: entweder Auswahl aus Liste gängiger Mikroprozessoren oder Device vendor = Generic, Device type = Custom: Individuelle Festlegung der Hardwareeigenschaften (Bitanzahl, Wortlänge etc.) Vorteil: Eigenschaften der Zielhardware können bereits bei der Simulation berücksichtigt werden; entstehende Probleme werden somit frühzeitig erkannt! Simulation mit Simulink/Matlab WS13/14 27
Model Config. Parameters Dialogbox: Model Referencing Wenn ein oder mehrere Simulink-Modelle mittels Model-Blöcken in einem anderen Simulink-Modell referenziert werden Rebuild options: wann soll Simulation Target neu erstellt werden soll? (default: if any changes detected) M odel dependencies: Festlegung von Files, auf die das referenzierte Modell für Parameter (m-files) oder Daten (mat-files) zurückgreift Wie oft darf Modell woanders referenziert werden? (default: M ultiple) Simulation mit Simulink/Matlab WS13/14 28
Beispiel zum Model Referencing bsp referencing.slx und referenziertes Modell bsp referencing g.slx, S. 339 (6. Auflage), S. 346 (7. Auflage) Simulation mit Simulink/Matlab WS13/14 29
Arbeiten mit Model Callbacks Automatische Ausführung von benutzerdefinierten Funktionen direkt vom Simulink-Modell aus zu festen Zeitpunkten während des Simulationsablaufs z.b. InitFcn (oder PreLoadFcn): Zur Initialisierung von komplexen Modellen mittels m-file Alle Parameter und ihre Werte übersichtlich zusammengefasst In Block P arameters Dialogboxen stehen nur noch Variable Verknüpfung des m-files mit Simulinkmodell: Menüpunkt F ile/m odel P roperties Callbacks oder set param( modellname, InitFcn, modellname ini ) (set param( modellname, PreLoadFcn, modellname ini )) set param(0, CallbackTracing, on ) Ausführen des m-files (manuell/editor) entfällt Simulation mit Simulink/Matlab WS13/14 30
Beispiel zu Model Callbacks bsp parameter.slx, S. 320 (6. Auflage), S. 327 (7. Auflage) Simulation mit Simulink/Matlab WS13/14 31
SIMULINK Bibliotheken Signal Routing/Attributes Unterbibliothek Signal Routing: Verknüpfung und Auswahl von Signalen, Datenspeicher-Management A Data Store Write A Data Store Read A Data Store Memory Demux Demux Mux Bus Selector Selector Multiport Switch Manual Switch [A] From [A] Goto uvm. Unterbibliothek Signal Attributes: Signaleigenschaften Convert Data Type Conversion Signal Conversion Rate Transition inherit Signal Specification W:0, Ts:[0 0], C:0, D:0, F:0 Simulation mit Simulink/Matlab WS13/14 32 Probe 0 Width
Subsysteme: SIMULINK Grundlagen Subsysteme Übersichtliche Gestaltung komplexer Modelle Zusammenfassung von Blöcken ähnlicher Funktion Aufbau von hierarchischer Struktur Bequeme Programmierung und schnelle Testbarkeit unterschiedlicher Teilmodell-Varianten Bedingte Ausführbarkeit Erstellung mit 1. Menüpunkt Diagram: Subsystem&M odel Ref erence/create Subsystem f rom Selection oder Kontextmenü: Create Subsystem f rom Selection 2. Unterbibliothek Ports&Subsystems Simulation mit Simulink/Matlab WS13/14 33
SIMULINK Bibliothek Ports&Subsystems Unterbibliothek Ports&Subsystems: uvm. Simulation mit Simulink/Matlab WS13/14 34
Bedingt ausgeführte Subsysteme Bedingt ausgeführte Subsysteme Ausführung wird durch Steuersignal bestimmt Abhängig von der Bedingung wird unterschieden zwischen Enabled Subsystems: Sie enthalten einen Enable-Block Triggered Subsystems/Function-Call Subsystems: Sie enthalten einen Trigger-Block Control Flow Subsystems: Mit ihnen können Schleifen und Verzweigungen realisiert werden wie if-then, while, do, for etc. Simulation mit Simulink/Matlab WS13/14 35
Beispiele zu bedingt ausgeführten Subsystemen bsp ensub.slx, S. 331 (6. Auflage), S. 337 (7. Auflage) bsp trigsub.slx, S. 333 (6. Auflage), S. 339 (7. Auflage) Simulation mit Simulink/Matlab WS13/14 36
Maskierung von Subsystemen Maskierung von Subsystemen aus einem Subsystem wird neuer Block erzeugt leichtere Parametrierung komplexer Subsysteme Entwurf von benutzerdefinierter Unterbibliothek möglich Beispiel x m y Steigung b y Achsenabschnitt y=mx+b bsp mask.slx, S. 334 (6. Auflage), S. 341 (7. Auflage) Simulation mit Simulink/Matlab WS13/14 37