simulink grundlagen - eal.ei.tum.de · pdf filesimulink grundlagen erstellen eines modells...
Post on 06-Feb-2018
221 Views
Preview:
TRANSCRIPT
SIMULINK Grundlagen
SIMULINK
Grundlagen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
SIMULINK Grundlagen
Inhalt
• Was ist SIMULINK ?
• Erstellen von Modellen mittels Bibliotheken
• Simulationsparameter und Algorithmen
zur numerischen Integration
• Strukturierte Organisation von Modellen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
SIMULINK Grundlagen
Was ist Simulink ?
• Erganzungspaket zu MATLAB
• Grafische Oberflache zur Modellierung von DGLs und
physikalischen Systemen mittels Signalflussgrafen
• Simulink-Erweiterungen:
– Blocksets (z.B. SimPowerSystems, SimMechanics, SimScape)
– zusatzliche Funktionalitaten (z.B. Simulink Control Design,
Stateflow, Simulink Coder)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 1
SIMULINK Grundlagen
Erstellen eines Modells
Bibliotheken Sources & Sinks
Bibliotheken Math & Logic Operations
Ausgabe von Daten
Simulationssteuerung und Diagnose
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 2
SIMULINK Grundlagen
Starten von SIMULINK
Befehl Befehl simulink
open system (’simulink’) oder Button
offnet Bibliotheksfenster offnet Library Browser
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 3
SIMULINK Grundlagen
Starten von SIMULINK
• Basis sind Funktionsbausteine
• Funktionsbausteine sind
gekennzeichnet durch Ein- und
Ausgange, Name, Block-Icon
(jeweils konfigurierbar)
• Bei Doppelklick offnet sich
Block Parameters Dialogbox
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 4
SIMULINK Grundlagen
SIMULINK Bibliotheken Sources und Sinks
Unterbibliothek Sources:
• Generieren von Signalen
• Einlesen von Daten aus dem
Workspace
• Einlesen von Daten aus
Dateien
Step
Sine Wave
SignalGenerator
RepeatingSequence
Ramp
PulseGenerator
untitled.mat
From File
simin
FromWorkspace
1
Constant
1In1
uvm.
Unterbibliothek Sinks:
• Grafische Anzeige von Signalen
• Schreiben von Daten auf den
Workspace
• Schreiben von Daten in eine Datei
1Out1
XY Graphsimout
To Workspace
untitled.mat
To File
Scope
uvm.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 5
SIMULINK Grundlagen
Beispiel: Erzeugung und Ausgabe von Signalen
bsp sources sinks.mdl bsp sources sinks sl.mdl
Speicherung auf Workspace uber
• To Workspace,
• Scope,
• Outport (→ Config. Parameters)
Verfugbare Formate:
• T imeSeries: plot (simout)
• Array: plot (tout, yout)
• Structure with T ime:plot (simout.time, simout.signals.values)
Speicherung auf WS mit Signal Logging:
1. Signal Properties → Log signal data
2. Signal name und/oder Logging namevergeben
3. Simulation starten
4. Datenobjekt logsout entpacken:sig = logsout.get (’signal’)
5. T imeSeries plotten: plot (sig.Values)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 6
SIMULINK Grundlagen
SIMULINK–Bibliotheken Math und Logic Operations
Unterbibliothek Math Operations:
• Arithmetische Operationen
• Mathematische und
trigonometrische Funktionen
sin
TrigonometricFunction
Sum
floor
RoundingFunction
Product
P(u)O(P) = 5
Polynomial
min
MinMax
eu
MathFunction
1
Gain
Dot Productuvm.
Unterbibliothek Logic and Bit Operations:
• Logische Operationen
und Vergleiche
• Operationen auf Bitebene,
Signaluberwachungen <=
RelationalOperator
AND
LogicalOperator Extract Bits
Upper Half
Extract BitsU > U/z
DetectIncrease
U ~= U/z
DetectChange
BitwiseAND0xD9
BitwiseOperator
uvm.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 7
SIMULINK Grundlagen
Beispiel zu Math Operations
Modellierung der Gleichung f(t) = 80 · e−
1
80t· sin (0.25t + π
3)
Mogliche Losung:
gedaempfteSinussschwingung
Sine Wave
Product2
Product1 Mux
eu
MathFunction −1
Gain1
−1
GainDivide
80
Constant
Clock
bsp math.mdl
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 8
SIMULINK Grundlagen
Simulations- und Parametersteuerung
• von SIMULINK aus: Buttons , und
• vom MATLAB Command Window bzw. Matlab-Skripten:
– Simulation mit beliebigen Simulationsparametern:
sim (’system’)
simout = sim (’system’, ’StartTime’, ’0’, ’StopTime’, ’20’);
– Starten, Anhalten, Fortsetzen einer Simulation :
set param (’system’, ’SimulationCommand’, ’cmd’)
(cmd = start / stop / pause / continue)
– Abfragen des Simulationsstatus:
get param (’system’, ’SimulationStatus’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 9
SIMULINK Grundlagen
Fehlerbehandlung: Simulation Diagnostics Viewer
• Fenster mit Fehlermeldungen bzw. Warnungen offnet sich abhangig
von Einstellungen bei Configuration Parameters (siehe Folie 25)
• Fehlerbeschreibung, Ursache, Pfadangabe zur Fehlerquelle
• Link zum betroffenen Block
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 10
SIMULINK Grundlagen
Simulationsparameter und Solver
Grundlagen numerischer
Integrationsalgorithmen in SIMULINK
Konfigurationsmoglichkeiten
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 11
SIMULINK Grundlagen
Numerische Integration von Differentialgleichungen
Inhomogene Differentialgleichung:
DGL y(t)u(t) y(t) = f(u(t), y(t))
Integration: yn+1 = yn +
tn+1∫
tn
f(u(t), y(t))dt
Verschiedene Verfahren:
• Polygonzugverfahren nach Euler
• Trapezverfahren nach Heun
• Runge–Kutta–Verfahren
• Verfahren nach Adams-Bashforth
• · · ·
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 12
SIMULINK Grundlagen
Numerische Integration von Differentialgleichungen
Polygonzugverfahren nach Euler (explizit)
y0
y0
hy0y(t)
t0
h
t1t
y1
y
dyy(t1)
y1 = y0 + h · y0
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 13
SIMULINK Grundlagen
Numerische Integration von Differentialgleichungen
Trapezverfahren von Heun
y0
y0
y1
t0
h
(P)
Mittelwertder Steigungen
t1t
y1
y1
y
y0+y1
2
(P)
(P)
bei separierbaren Variablen: y1 = y0 + h ·(y0 + y1)
2
bei nicht separierbaren Variablen: y1 = y0 + h ·(y0 + yP
1 )
2Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 14
SIMULINK Grundlagen
Numerische Integration von Differentialgleichungen
Runge–Kutta–Verfahren
y0
y2
y2
P
y0
y1
P
y
P3 2(t )
t0
h
t1 t2t
y1
P
y2
P
y
y2 = y0 +2h
6·
[y0 + 4y P
1 + y P2
]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 15
SIMULINK Grundlagen
Numerische Integration von Differentialgleichungen
Verfahren nach Adams–Bashforth
yn-2
P2(t)
P2 n+1(t )
tn-2 tn-1 tn tn+1
t
yn-1
yn
y
h
yn+1 = yn +h
12· [23yn − 16yn−1 + 5yn−2]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 16
SIMULINK Grundlagen
Configuration Parameters Dialogbox: Solver
• Festlegen der
Start- und Stoppzeit
• Festlegen der
Simulations-Schrittweite
• Festlegen des
Integrationsalgorithmus
– Variable-step:∗ Erst Simulation mit default-Einstellungen, dann bei Bedarf:
∗ Solver-Typ, Toleranzen und Zero crossing control an Systemdynamikanpassen: gewunschte Genauigkeit ↔ tolerierbare Rechenzeit
∗ bei no continuous states: evtl. Max step size anpassen
– Fixed-step:∗ Fixed step size: Genauigkeit ↔ Rechenzeit beachten
∗ Bei multirate systems: Tasking mode... und Check Boxen fur Prioritaten/Datentransfer beachten
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 17
SIMULINK Grundlagen
Solver: Integrationsalgorithmen in MATLAB (1)
Variable–step solver:
• Fur zeitkontinuierliche, nicht–steife Systeme:
ode45 (first try), ode23, ode113
• Fur zeitkontinuierliche, steife Systeme:
ode15s, ode23s, ode23t, ode23tb
• Fur zeitdiskrete Systeme und
Systeme ohne kontinuierliche Zustandsgroßen:
discrete (no continuous states) (Variable–step)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 18
SIMULINK Grundlagen
Solver: Integrationsalgorithmen in MATLAB (2)
Variable–step solver:
• Variable Integrationsschrittweite fur minimale Rechenzeit
• Fehleruberwachung zur Einhaltung der geforderten Genauigkeit
• Zusatzlich erhohte Genauigkeit bei Unstetigkeiten (zero crossings)
Optimum Schrittweite
durchIntegrationsschritt
Fehler
Gesamtfehler
durch Rundung(Fortpflanzung)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 19
SIMULINK Grundlagen
Solver: Integrationsalgorithmen in MATLAB (3)
Fehleruberwachung
•”Fehler“ = Anderung aller Zustandsgroßen im letzten Schritt
• ei ≤ max (reltol · |xi|, abstol)︸ ︷︷ ︸acceptable error
abstol = auto:t0: abstol = 10−6
t1 . . . tfinal: abstol = reltol ·max (|xi|)
tn tn+1
t
Acceptable errorwird durch
reltol*|x | bestimmti
Acceptable errorwird durch
reltol*|x | bestimmtiAcceptable errorwird durch
abstol bestimmt
xi(t)
local error ei
} }}
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 20
SIMULINK Grundlagen
Solver: Integrationsalgorithmen in MATLAB (4)
Unstetigkeiten (zero crossings)
• Unstetigkeiten (discontinuities) im Verlauf der Zustandsgroßen
(z.B. sprungformiges Signal, Abs, Saturation, Logische Funktion)
• Nulldurchgange, Vorzeichenwechsel
tn
tn+1
tn+1tn-1
t
xi(t)
zero crossingVariable
t
Nulldurchgangnicht
detektiert
Nulldurchgangdetektiert
t
xi(t) xi(t)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 21
SIMULINK Grundlagen
Solver: Integrationsalgorithmen in MATLAB (5)
Fixed–step solver:
• arbeiten mit fester Integrationsschrittweite
• keine Fehleruberwachung oder Erkennung von Unstetigkeiten
• definierte (und endliche) Rechenzeit
• notwendig fur Echtzeitanwendungen (Code-Generierung, HIL, etc.)
• fur zeitkontinuierliche Systeme: ode5, ode4, ode3, ode2, ode1, ode14x
• fur zeitdiskrete Systeme und Systeme ohne kontinuierliche
Zustandsgroßen: discrete (no continuous states) (Fixed–step)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 22
SIMULINK Grundlagen
Configuration Parameters Dialogbox: Data Import/Export
• Laden von Daten aus dem Workspace in Inport-Blocke
auf oberster Modellebene (Formate beachten!)
• Initialisierung von Zustandsgroßen (sinnvoll, wenn vorher
mittels Save to workspace/Final states gespeichert)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 23
SIMULINK Grundlagen
Configuration Parameters Dialogbox: Optimization
• Festlegung von Simulationsoptionen, die Rechen- und Speicher-
aufwand beeinflussen (default-Einstellungen reichen meist aus)
• Umwandlung von boolean Ausgangssignalen zu double (z.B. fur
Logical Operator, Relational Operator, Hit Crossing)
• Verstellbarkeit von Blockparametern wahrend der
Simulation (Parameter inlining)
• bei lizensiertem Coder: Optionen zur optimierten Codegenerierung
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 24
SIMULINK Grundlagen
Configuration Parameters Dialogbox: Diagnostics
• Festlegung der Reaktion bei Fehlern: none, warning, error
• Fehler in Unterregistern nach Ursachen sinnvoll gruppiert, z.B.:
– Algebraic loop
– Unconnected block input/output ports
– Model block version mismatch
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 25
SIMULINK Grundlagen
Configuration Param. Dialogbox: Hardware Implementation
• Zur Codegenerierung von Modellen, die spater auf Mikrocontrol-
lern bzw. Signalprozessoren (DSPs) ausgefuhrt werden sollen
• Eigenschaften der Zielhardware (Embedded hardware)
konnen spezifiziert werden.
• Vorteil: Eigenschaften der Zielhardware konnen bereits bei der
Simulation berucksichtigt werden; entstehende Probleme werden
somit fruhzeitig erkannt !
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 26
SIMULINK Grundlagen
Strukturierte Modellierung
Subsysteme
Model Referencing
Signal Routing & Attributes
Maskierung und Callbacks
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 27
SIMULINK Grundlagen
Subsysteme
Anwendung
• Ubersichtliche Gestaltung komplexer Modelle
• Zusammenfassung von Blocken ahnlicher Funktion
• Aufbau einer hierarchischen Struktur
Erstellung mit
• Menupunkt Edit/Create Subsystem
• Unterbibliothek Ports & Subsystems
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 28
SIMULINK Grundlagen
SIMULINK Bibliothek Ports & Subsystems
Unterbibliothek Ports & Subsystems:
1
Out1
while { ... }In1
ICOut1
While IteratorSubsystem
In1 Out1
TriggeredSubsystem
In1 Out1
Subsystem
bsp_referencing_gIn1 Out1
Model
if { }
In1 Out1
If ActionSubsystem
u1if(u1 > 0)
else
If
function()
In1 Out1
Function−CallSubsystem
f()
Function−CallGenerator
for { ... }In1 Out1
For IteratorSubsystem
In1 Out1
EnabledSubsystem
In1 Out1
Atomic Subsystem
Trigger
1
In1
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 29
SIMULINK Grundlagen
Bedingt ausgefuhrte Subsysteme
Bedingt ausgefuhrte Subsysteme
• Ausfuhrung wird durch Steuersignal bestimmt
• Abhangig 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 konnen Schleifen und Ver-
zweigungen realisiert werden wie if-then, while, do, for etc.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 30
SIMULINK Grundlagen
Beispiele zu bedingt ausgefuhrten Subsystemen
Sine Wave
Scope
In1 Out1
Enabled SubSystem
bsp ensub.mdl
In1 Out1
Triggered SubSystem
Sine Wave1
Sine WaveScope
bsp trigsub.mdl
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 31
SIMULINK Grundlagen
Maskierung von Subsystemen
Maskierung von Subsystemen
• Erstellen neuer Benutzer-Schnittstellen fur Subsysteme
durch Bundeln wichtiger Parameter in Dialogboxes (Maske)
• Entwurf benutzerdefinierter Bibliotheken moglich
zur Weitergabe bzw. zur Verwendung in verschiedenen Modellen
Beispiel bsp mask.mdl
b y−Achsenabschnitt
m
Steigung
yx
⇒y=mx+b
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 32
SIMULINK Grundlagen
Model Referencing
Anwendung
• Aufteilung großer Modelle in unabhangige Arbeitspakete (Dateien)
• Mehrfache Verwendung einer Funktion im selben Modell
bsp referencing.mdl und referenziertes Modell bsp referencing g.mdl
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 33
SIMULINK Grundlagen
Configuration Parameters Dialogbox: Model Referencing
• Model Referencing: Modell enthalt referenzierte Modelle (aus an-
deren Simulink-Dateien bzw. Bibliotheken) als”Unterfunktionen“.
• Festlegung, wann referenzierte Modelle neu kompiliert werden
sollen (Zeitersparnis bei Simulation bzw. Codegenerierung).
• Model dependencies: Angabe zusatzlicher Dateien (M, MAT),
die dabei berucksichtigt werden.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 34
SIMULINK Grundlagen
Arbeiten mit Model Callback-Routinen
Automatisches Ausfuhren von benutzerdefinierten
(Matlab-)Funktionen wahrend des Simulationsablaufs:
• Initialisierung von komplexen Modellen mittels M-File (InitFcn)
• Ausgabe und Auswertung der Simulationsergebnisse (StopFcn)
• Verknupfung des M-Files mit Simulinkmodell:
– Menupunkt File/Model properties ⇒ Callbacks oder
– set param (’modellname’, ’InitFcn’, ’m file name’)
Alternativ: Ausfuhren nach Doppelklick auf Block (als”Button“):
• Verknupfung des M-Files mit Block-Callback (OpenFcn):
– Block-Kontextmenu Properties ⇒ Callbacks oder
– set param (’modellname/blockname’, ’OpenFcn’, ’m file’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 35
SIMULINK Grundlagen
Beispiel zu Callback-Routinen
repeat
To Workspace2
verst_Konst
To Workspace1
erg
To Workspace
Scope
RepeatingSequence
>=
RelationalOperator
[u3]
Goto3
[u2]
Goto2
[u1]
Goto1
verst
Gain
[u3]
[u2]
[u1]
Konst
Constant
bsp parameter.mdl
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 36
SIMULINK Grundlagen
SIMULINK Bibliotheken Signal Routing/Attributes
Unterbibliothek Signal Routing: Verknupfung und
Auswahl von Signalen, Datenspeicher-Management
Selector
Mux
MultiportSwitch
Manual Switch
[A]
Goto
[A]
From
Demux
Demux
A
Data StoreWrite
A
Data StoreRead
A
Data StoreMemory Bus
Selector uvm.
Unterbibliothek Signal Attributes: Signaleigenschaften
Width
0
Signal Specification
inheritSignalConversion
Rate Transition
Probe
W:0, Ts:[0 0], C:0, D:0, F:0Data Type Conversion
Convert
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 37
SIMULINK Grundlagen
Strukturierte Modellierung
Model Referencing:
• fur große Modelle
• projektspezifische Blocke
• modulare Erstellung
• verteilte Entwicklung
• Codegenerierung
Eigene Bibliotheken:
• fur Standard-Funktionen
• allgemein wiederverwendbar
• sequentielle Entwicklung
(erst Bibliothek, dann Modell)
• nachtragliche Anderungen
kritisch
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 38
SIMULINK Grundlagen
Zusammenfassung
• Grafische MATLAB-Erweiterung fur Signalflussgrafen
– Ein Projekt ⇒ immer dieselbe Simulink-Version !
• Typische Anwendungen:
– Modellbildung, Systemauslegung
– Codegenerierung, HIL-Simulation
– Modell als ausfuhrbare Spezifikation
• Ausblick
– Simulation linearer und nichtlinearer Systeme (DGLs)
– Stateflow: Zustandsautomaten
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 39
top related