SIMULINK Grundlagen Dipl.-Ing. U. Wohlfarth
Inhalt Was ist SIMULINK? SIMULINK Bibliotheken Sources, Sinks und Math Simulationsparameter Algorithmen zur numerischen Integration SIMULINK Bibliotheken Signals&Systems, Subsystems Dipl.-Ing. U. Wohlfarth
Was ist Simulink? Graphische Oberfläche zur Modellierung von physikalischen Systemen mittels Signalflußgraphen Ergänzungspaket zu MATLAB (Toolbox) Simulink Erweiterung: Blocksets (SimPower-Systems, SimMechanics) Sine Wave Clock 80 Constant Product1 1 Gain e u Math Function Product2 Product3 1 Gain1 Mux gedaempfte Sinusschwingung Dipl.-Ing. U. Wohlfarth 1
Starten von SIMULINK (Windows) Befehl open system( simulink ) öffnet Bibliotheksfenster Befehl simulink öffnet Library Browser Dipl.-Ing. U. Wohlfarth 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 Dipl.-Ing. U. Wohlfarth 3
SIMULINK Bibliotheken Sources und Sinks Unterbibliothek Sources: Generieren von Signalen Einlesen von Daten aus dem Workspace Einlesen von Daten aus Dateien 1 Constant Step Ramp Signal Generator Pulse Generator Sine Wave Repeating Sequence untitled.mat From File simin From Workspace 1 In1 Unterbibliothek Sinks: Graphische 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 Dipl.-Ing. U. Wohlfarth 4
Beispiel zu Sources und Sinks Signal 1 Signal 2 Signal Builder 1 s Integrator Scope Signal Builder : bsp sigbuild.mdl Signal Builder Dialogbox für die drei Signalgruppen Dipl.-Ing. U. Wohlfarth 5
SIMULINK Bibliothek Math Opertions Unterbibliothek Math: Arithmetische, logische und Vergleichsoperationen Mathematische und trigonometrische Funktionen uvm. Product e u Math Function 1 Gain 1 AND Logical Operator Sum Dot Product sin Trigonometric Function Slider Gain <= K*u Matrix Gain Relational Operator Dipl.-Ing. U. Wohlfarth 6
Beispiel zu Math Opertions Simulink-Modell bspmath.mdl der Gleichung f(t) = 80 e 1 80 t sin (0.25t + π 3 ) Sine Wave Clock 80 Product1 1 Gain e u Math Function Product2 Product3 1 Gain1 Mux gedaempfte Sinusschwingung Constant Dipl.-Ing. U. Wohlfarth 7
Simulation: Parameter und Integrationsverfahren Configuration Parameters Dialogbox Register Solver: Festlegen von Beginn und Ende der Simulation Algorithmen zur numerischen Integration Ausgabeoptionen Dipl.-Ing. U. Wohlfarth 8
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 Dipl.-Ing. U. Wohlfarth 9
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 Dipl.-Ing. U. Wohlfarth 10
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 y 2 t 0 h t 1 t 2 t = y 0 + 2h 6 [ẏ 0 + 4ẏ 1 + f(u 2, y P 2 )] Dipl.-Ing. U. Wohlfarth 11
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 y n+1 h t n-2 t n-1 t n t n+1 t = y n + h 12 [23ẏ n 16ẏ n 1 + 5ẏ n 2 ] Dipl.-Ing. U. Wohlfarth 12
Solver: Integrationsalgorithmen in MATLAB Variable step solver: arbeiten mit variabler Integrationsschrittweite ermöglichen Fehlerüberwachung ermöglichen Erkennung von zero crossings Dipl.-Ing. U. Wohlfarth 13
Solver: Integrationsalgorithmen in MATLAB Fehlerüberwachung Fehler = Änderung der Zustandsgrößen vom letzten zum aktuellen Zeitpunkt e i max(reltol x i, abstol) } {{ } acceptable error x i (t) local error e i abstol = auto: t 0 : abstol = 10 6 t 1... t final : abstol = reltol max( x i ) t n t n+1 t } Acceptable error wird durch reltol* x bestimmt i } } Acceptable error wird durch abstol bestimmt Acceptable error wird durch reltol* x bestimmt i Dipl.-Ing. U. Wohlfarth 14
Solver: Integrationsalgorithmen in MATLAB 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 Nulldurchgang nicht detektiert t Nulldurchgang detektiert Dipl.-Ing. U. Wohlfarth 15 t
Solver: Integrationsalgorithmen in MATLAB 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: discrete (Variable step) Dipl.-Ing. U. Wohlfarth 16
Solver: Integrationsalgorithmen in MATLAB Fixed step solver: arbeiten mit fester Integrationsschrittweite keine Fehlerüberwachung oder Erkennung von Unstetigkeitsstellen für zeitkontinuierliche Systeme: ode5, ode4, ode3, ode2, ode1 Für zeitdiskrete Systeme: discrete (Fixed step) Dipl.-Ing. U. Wohlfarth 17
Simulation: Parameter und Integrationsverfahren Configuration Parameters Dialogbox Register Data Import/Export: Initialisierung Laden von Daten aus dem Workspace Schreiben von Daten auf den Workspace Dipl.-Ing. U. Wohlfarth 18
Simulation: Parameter und Integrationsverfahren Configuration Parameters Dialogbox Register Diagnostics: Steuerung von Fehlermeldungen Einstellung von Simulationsoptionen Dipl.-Ing. U. Wohlfarth 19
Simulation Starten und Anhalten einer Simulation von SIMULINK aus vom MATLAB Command Window aus set_param( sys, SimulationCommand, cmd ) get_param( sys, SimulationStatus ) [t,x,y] = sim( model, timespan, options, ut) options = simset(property, value,...) newopts = simset(oldopts, property, value,...) struct = simget( model ) Beispiel: [t,x,y] = sim( m1,[],simset(simget( m1 ), Solver, ode23, MaxStep,0.01)) Dipl.-Ing. U. Wohlfarth 20
Arbeiten mit Callback-Routinen Automatische Ausführung von benutzerdefinierten Funktionen direkt vom Simulink-Modell aus zu festen Zeitpunkten während des Simulationsablaufs z.b. InitFcn oder PreLoadFcn: Initialisierung von komplexen Modellen mittels Matlab-Skript in Block Parameters Dialogbox steht nur noch Variable Verknüpfung des Skripts mit Blockdiagramm: set param( modellname, InitFcn, modellname ini ) set param( modellname, PreLoadFcn, modellname ini ) set param(0, CallbackTracing, on ) oder Menüpunkt File/Model properties Callbacks Ausführen des Skripts (manuell/editor) entfällt Simulink hat Zugriff auf Workspace-Variablen Dipl.-Ing. U. Wohlfarth 21
Beispiel zu Callback-Routinen Beispiel bspparameter.mdl verst_konst Konst verst To Workspace1 Constant Gain >= erg Relational Operator To Workspace Repeating Sequence repeat To Workspace2 Dipl.-Ing. U. Wohlfarth 22
Fehlerbehandlung Simulation Diagnostics Viewer oberer Fensterteil: Fehlerumstände (Art, Ursache, Pfadangabe zur Fehlerquelle, Komponente) unterer Fensterteil: Volltext der Fehlermeldung Dipl.-Ing. U. Wohlfarth 23
SIMULINK Bibliothek Signal Routing Unterbibliothek Signal Routing: Datenspeicher Management A Data Store Memory A Data Store Read A Data Store Write Verknüpfung und Auswahl von Signalen [A] uvm. [1] From Mux Demux Demux Bus Selector Selector Hit Crossing IC [A] Goto Dipl.-Ing. U. Wohlfarth 24
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 Subsystems Dipl.-Ing. U. Wohlfarth 25
SIMULINK Bibliothek Subsystems Unterbibliothek Subsystems: In1 Out1 In1 Out1 In1 Out1 In1 Action Out1 Subsystem Atomic Subsystem In1 function() Function Call Subsystem Out1 In1 Triggered Subsystem Enabled Subsystem Out1 In1 IC while {... } Out1 While Iterator Subsystem u1 If Action Subsystem if(u1 > 0) If else uvm. Dipl.-Ing. U. Wohlfarth 26
Bedingt ausgeführte Subsysteme / Maskierung Bedingt ausgeführte Subsysteme Ausführung wird durch Steuersignal bestimmt enthalten Enable oder Trigger Maskierung von Subsystemen aus einem Subsystem wird neuer Block erzeugt leichtere Parametrierung komplexer Subsysteme Entwurf von benutzerdefinierter Unterbibliothek möglich Dipl.-Ing. U. Wohlfarth 27
Maskierung von Subsystemen Beispiel bspmask.mdl x m y Steigung b y Achsenabschnitt y=mx+b Dipl.-Ing. U. Wohlfarth 28