SIMULINK Grundlagen - EAL Lehrstuhl für Elektrische
Transcription
SIMULINK Grundlagen - EAL Lehrstuhl für Elektrische
SIMULINK Grundlagen SIMULINK Grundlagen Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 SIMULINK Grundlagen Inhalt • Was ist SIMULINK? • 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 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 SIMULINK Grundlagen Was ist Simulink? • Grafische Oberfläche zur Modellierung von physikalischen Systemen mittels Signalflussgrafen • Ergänzungspaket zu MATLAB (Toolbox) • Simulink-Erweiterungen – reine Blocksets (z.B. SimPowerSystems, SimMechanics) – zusätzliche Funktionalitäten (z.B. Simulink Coder, Simulink Control Design, Stateflow) 1 − t f (t) = 80 · e 80 · sin (0.25t + π3 ) Math Function Sine Wave −1 Clock Divide Gain 80 Constant e Product1 u Product −1 Scope Gain1 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 1 SIMULINK Grundlagen Starten von SIMULINK Unter Windows: Befehl open system(’simulink.mdl’) Befehl simulink oder Button öffnet Bibliotheksfenster öffnet Library Browser Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 2 SIMULINK Grundlagen 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 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 3 SIMULINK Grundlagen SIMULINK Bibliotheken Sources und Sinks Unterbibliothek Sources: • Generieren von Signalen • Einlesen von Daten aus dem Workspace • Einlesen von Daten aus Dateien untitled.mat Step 1 Constant Ramp Pulse Sine Wave Generator From File simin From Repeating Workspace Signal Sequence Generator 1 In1 uvm. Unterbibliothek Sinks: • Grafische Anzeige von Signalen • Schreiben von Daten auf den Workspace • Schreiben von Daten in eine Datei untitled.mat To File Scope XY Graph simout 1 Out1 To Workspace uvm. Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 4 SIMULINK Grundlagen Beispiel: Erzeugung, Darstellung und Speicherung von Signalen sig1 Sine Wave Sine Wave Repeating Sequence Sinus Periodendauer: 125.664s Amplitude: 1 Sinus über Saegezahn 1 Out1 simout To Workspace Saegezahn Periodendauer: 200s Amplitude: 2.5 bsp sources sinks.mdl, S. 295 (6. A.), S. 300 (7. A.) Speicherung auf Workspace über • Scope, • Outport (→ Conf iguration P arameters), • To Workspace Formate beachten! z.B. Structure: plot(tout,simout.signals.values) Repeating Sequence Sinus über Saegezahn bsp sources sinks sl.mdl, S. 297 (6. A.), S. 302 (7. A.) Speicherung auf Signal Logging: Workspace mittels 1. Signal P roperties → Log signal data, 2. Signal name und/oder Logging name vergeben 3. Variable logsout entpacken: logsout.unpack(’all’) plot(tout,sig1.Data,tout,sig2.Data) oder direkt: plot(tout,logsout.sig1.Data,tout,logsout.sig2.Data) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 5 SIMULINK Grundlagen SIMULINK–Bibliotheken Math und Logic Operations Unterbibliothek Math Operations: • Arithmetische Operationen • Mathematische und trigonometrische Funktionen 1 eu Math Function Product Gain min floor MinMax Rounding Function sin Sum Dot Product Trigonometric Function P(u) O(P) = 5 Polynomial uvm. Unterbibliothek Logic and Bit Operations: • Logische und Vergleichsoperationen • Operationen auf Bitebene, Signalüberwachungen AND U ~= U/z Bitwise AND 0xD9 Bitwise Operator Logical Operator Detect Change U > U/z Extract Bits Upper Half Extract Bits <= Relational Operator Detect Increase Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 uvm. 6 SIMULINK Grundlagen Beispiel zu Math Operations 1 − t Modellierung der Gleichung f (t) = 80 · e 80 · sin (0.25t + π3 ) Mögliche Lösung: Sine Wave −1 Clock Divide 80 Gain Product2 eu Math Function Product1 −1 Mux gedaempfte Sinussschwingung Gain1 Constant bsp math.mdl, S. 302 (6. Auflage), S. 307 (7. Auflage) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 7 SIMULINK Grundlagen Simulations- und Parametersteuerung • von SIMULINK aus: Buttons , und • vom MATLAB Command Window aus bzw. aus Matlab-Skripten heraus: – Simulation mit beliebigen Simulationsparametern: [t,x,y] = sim(’sys’, timespan, options, ut) Erzeugen/Modifizieren der options-Struktur: oldopts = simget(’sys’) options = simset(oldopts, ’property1’, value1 ...) – Starten, Anhalten, Pausieren, Fortsetzen einer Simulation : set param(’sys’, ’SimulationCommand’, ’cmd’) Abfragen des Simulationsstatus: get param(’sys’, ’SimulationStatus’) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 8 SIMULINK Grundlagen Fehlerbehandlung: Simulation Diagnostics Viewer • Öffnet sich bei Programmierfehlern abhängig von den Einstellungen im Diagnostics-Register der Conf iguration P arameters Dialogbox (Folie 25) • oberer Fensterteil: Fehlerumstände (Art, Ursache, Pfadangabe zur Fehlerquelle, Komponente) • unterer Fensterteil: Volltext der Fehlermeldung Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 9 SIMULINK Grundlagen Conf iguration 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! Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 10 SIMULINK Grundlagen Conf iguration 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. Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 11 SIMULINK Grundlagen Numerische Integration von Differentialgleichungen Inhomogene Differentialgleichung: u(t) DGL Integration: y(t) ẏ(t) = f (u(t), y(t)) yn+1 = yn + tn+1 Z f (u(t), y(t))dt tn Verschiedene Verfahren: • • • • • Polygonzugverfahren nach Euler Trapezverfahren nach Heun Runge–Kutta–Verfahren Verfahren nach Adams-Bashforth ··· Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 12 SIMULINK Grundlagen Numerische Integration von Differentialgleichungen Polygonzugverfahren nach Euler (explizit) y y1 dy y(t1) y0 hy0 y(t) y0 h t0 t1 t y1 = y0 + h · ẏ0 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 13 SIMULINK Grundlagen Numerische Integration von Differentialgleichungen Trapezverfahren von Heun y(P) 1 y y1(P) y1 y0 y0 y0+y(P) Mittelwert 1 der Steigungen 2 h t0 t1 t (ẏ0 + ẏ1) bei separierbaren Variablen: y1 = y0 + h · 2 (ẏ0 + ẏ1P ) bei nicht separierbaren Variablen: y1 = y0 + h · 2 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 14 SIMULINK Grundlagen Numerische Integration von Differentialgleichungen Runge–Kutta–Verfahren y P3(t2) = y2 y1 y1 y0 P P3(t) y0 h t0 t1 t2 t 2h y2 = y0 + · [ẏ0 + 4ẏ1 + f (u2, y2P )] 6 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 15 SIMULINK Grundlagen Numerische Integration von Differentialgleichungen Verfahren nach Adams–Bashforth y yn P2(tn+1) yn-1 P2(t) yn-2 h tn-2 tn-1 tn tn+1 t h yn+1 = yn + · [23ẏn − 16ẏn−1 + 5ẏn−2] 12 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 16 SIMULINK Grundlagen 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) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 17 SIMULINK Grundlagen Solver: Integrationsalgorithmen in MATLAB (2) Variable–step solver: • arbeiten mit variabler Integrationsschrittweite • ermöglichen Fehlerüberwachung • ermöglichen Erkennung von zero crossings Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 18 SIMULINK Grundlagen Solver: Integrationsalgorithmen in MATLAB (3) Fehlerüberwachung c Änderung der Zustandsgrößen vom letzten zum • Fehler = aktuellen Zeitpunkt xi(t) • e ≤ max(reltol · |x |, abstol) i | {z i acceptable error } local error ei abstol = auto: t0 : abstol = 10−6 t1 . . . tf inal : abstol = reltol · max(|xi |) t tn tn+1 } } } Acceptable error Acceptable error wird durch wird durch reltol*|xi| bestimmt Acceptable error reltol*|xi| bestimmt wird durch abstol bestimmt Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 19 SIMULINK Grundlagen Solver: Integrationsalgorithmen in MATLAB (4) zero crossings • discontinuities: Unstetigkeiten im Verlauf der Zustandsgrößen (z.B. Abs, Saturation) • gewöhnliche Nulldurchgänge xi(t) xi(t) xi(t) tn-1 tn tn+1 tn+1 zero crossing Variable t t t Nulldurchgang nicht detektiert Nulldurchgang detektiert Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 20 SIMULINK Grundlagen Solver: Integrationsalgorithmen in MATLAB (5) Fixed–step solver: • arbeiten mit fester Integrationsschrittweite • keine Fehlerüberwachung 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) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 21 SIMULINK Grundlagen Conf iguration 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) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 22 SIMULINK Grundlagen Conf iguration 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) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 23 SIMULINK Grundlagen Conf iguration 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 (P arameter inlining) • bei lizensiertem Simulink Coder: Optionen zur optimierten Codegenerierung Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 24 SIMULINK Grundlagen Conf iguration 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 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 25 SIMULINK Grundlagen Conf iguration P aram. Dialogbox: Hardware Implementation • Zur Simulation/Codegenerierung von Modellen, die später auf Signalprozessoren/Microcontrollern ausgeführt werden sollen • Eigenschaften der Zielhardware (Embedded hardware)/ Testhardware (Emulation 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! Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 26 SIMULINK Grundlagen Conf iguration P arameters Dialogbox: M odel Ref erencing • 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) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 27 SIMULINK Grundlagen Beispiel zum Model Referencing bsp _referencing _g.mdl bsp_referencing.mdl bsp_referencing_g In1 Out1 1 In1 Model −K− Gain 1 Out1 Verstärkung=gain *10+5 Model gain=0.1 Sine Wave Sine Wave Sine Wave bsp_referencing_g In1 Out1 Scope Model1 Model1 gain=0.5 bsp referencing.mdl und referenziertes Modell bsp referencing g.mdl, S. 339 (6. Auflage), S. 346 (7. Auflage) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 28 SIMULINK Grundlagen Arbeiten mit Model Callback Funktionen 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 properties ⇒ 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 Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 29 SIMULINK Grundlagen Beispiel zu Model Callback Funktionen [u1] Goto1 Konst Constant Repeating Sequence verst verst_Konst [u1] [u2] [u3] Scope To Workspace1 Gain >= erg Relational Operator To Workspace [u2] Goto2 repeat To Workspace2 [u3] Goto3 bsp parameter.mdl, S. 320 (6. Auflage), S. 327 (7. Auflage) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 30 SIMULINK Grundlagen SIMULINK Bibliotheken Signal Routing/Attributes Unterbibliothek Signal Routing: Verknüpfung und Auswahl von Signalen, Datenspeicher-Management A Demux Data Store Write Demux A [A] A Data Store Memory Data Store Read Bus Selector Multiport Switch From Selector [A] Mux Manual Switch uvm. Goto Unterbibliothek Signal Attributes: Signaleigenschaften Convert Data Type Conversion W:0, Ts:[0 0], C:0, D:0, F:0 0 Probe Width Rate Transition Signal Conversion inherit Signal Specification Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 31 SIMULINK Grundlagen Subsysteme Subsysteme: • Übersichtliche Gestaltung komplexer Modelle • Zusammenfassung von Blöcken ähnlicher Funktion • Aufbau von hierarchischer Struktur • Erstellung mit 1. Menüpunkt Edit/Create Subsystem 2. Unterbibliothek Ports&Subsystems Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 32 SIMULINK Grundlagen SIMULINK Bibliothek Ports&Subsystems Unterbibliothek Ports&Subsystems: In1 Out1 Subsystem In1 Out1 In1 Atomic Subsystem Triggered Subsystem In1 while { ... } Out1 IC Out1 Function−Call Subsystem In1 Out1 Out1 If Action Subsystem In1 function() In1 Action Out1 if(u1 > 0) While Iterator Subsystem u1 else If Enabled Subsystem uvm. Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 33 SIMULINK Grundlagen 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. Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 34 SIMULINK Grundlagen Beispiele zu bedingt ausgeführten Subsystemen Scope Scope Sine Wave In1 Out1 Sine Wave In1 Out1 Sine Wave1 Enabled SubSystem bsp ensub.mdl, S. 331 (6. Auflage), S. 337 (7. Auflage) Triggered SubSystem bsp trigsub.mdl, S. 333 (6. Auflage), S. 339 (7. Auflage) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 35 SIMULINK Grundlagen 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 y m Steigung ⇒ b y−Achsenabschnitt y=mx+b bsp mask.mdl, S. 334 (6. Auflage), S. 341 (7. Auflage) Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik Simulation mit Simulink/Matlab WS11/12 36