30
SIMULINK Grundlagen SIMULINK Grundlagen Vorlesung Matlab/Simulink Dipl.-Ing. U. Wohlfarth

folien simulink grund - hs-augsburg.dewohlfart/download/folien_simulink_grund.pdf · SIMULINKGrundlagen StartenvonSIMULINK(Windows) Befehlopensystem(’simulink’) Befehlsimulink

Embed Size (px)

Citation preview

SIMULINK Grundlagen

SIMULINK

Grundlagen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth

SIMULINK Grundlagen

Inhalt

• Was ist SIMULINK?

• SIMULINK–Bibliotheken Sources, Sinks und Math

• Simulationsparameter

• Algorithmen zur numerischen Integration

• SIMULINK–Bibliotheken Signals&Systems, Subsystems

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth

SIMULINK Grundlagen

Was ist Simulink?

• Graphische Oberflache zur Modellierung von physika-

lischen Systemen mittels Signalflußgraphen

• Erganzungspaket zu MATLAB (Toolbox)

• Simulink–Erweiterung: Blocksets (SimPower-Systems,

SimMechanics)

gedaempfteSinusschwingung

Sine Wave

Product3

Product2Product1

Mux

eu

MathFunction −1

Gain1

−1

Gain

80

Constant

Clock

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 1

SIMULINK Grundlagen

Starten von SIMULINK (Windows)

Befehl open system(’simulink’) Befehl simulink offnetoffnet Bibliotheksfenster Library Browser

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 2

SIMULINK Grundlagen

Starten von SIMULINK

• Basis sind Funktionsbausteine

• Funktionsbausteine sind gekennzeichnet durch Ein- und

Ausgange, Name (anderbar), Block–Icon

• Bei Doppelklick offnet sich

Block Parameters Dialogbox

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 3

SIMULINK Grundlagen

SIMULINK Bibliotheken Sources und Sinks

Unterbibliothek Sources:

• Generieren von Signalen

• Einlesen von Daten aus dem

Workspace

• Einlesen von Daten aus

Dateien

StepSine WaveSignal

Generator

RepeatingSequence

Ramp PulseGenerator

untitled.mat

From File

simin

FromWorkspace

1

Constant

1In1

Unterbibliothek Sinks:

• Graphische 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

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 4

SIMULINK Grundlagen

Beispiel zu Sources und Sinks

Signal 1

Signal 2

Signal Builder

Scope

1s

Integrator

Signal Builder : bsp sigbuild.mdl

Signal Builder Dialogbox fur die drei Signalgruppen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 5

SIMULINK Grundlagen

SIMULINK Bibliothek Math Opertions

Unterbibliothek Math:

• Arithmetische, logische und Vergleichsoperationen

• Mathematische und trigonometrische Funktionen

sin

TrigonometricFunction

Sum

1

SliderGain <=

RelationalOperator

Product

K*u

MatrixGain

eu

MathFunction

AND

LogicalOperator

1

Gain

Dot Product

uvm.

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 6

SIMULINK Grundlagen

Beispiel zu Math Opertions

Simulink-Modell bspmath.mdl der Gleichung

f(t) = 80 · e−1

80t· sin (0.25t+ π

3)

gedaempfteSinusschwingung

Sine Wave

Product3

Product2Product1

Mux

eu

MathFunction −1

Gain1

−1

Gain

80

Constant

Clock

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 7

SIMULINK Grundlagen

Simulation: Parameter und Integrationsverfahren

Configuration

Parameters

Dialogbox

Register Solver:

• Festlegen von Beginn und Ende der Simulation

• Algorithmen zur numerischen Integration

• Ausgabeoptionen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 8

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• · · ·

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 9

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

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 10

SIMULINK Grundlagen

Numerische Integration von Differentialgleichungen

Runge–Kutta–Verfahren

y0

y0

y1 P3(t)

P3 2 2(t ) = yP

t0

h

t1 t2t

y1

y

y2 = y0+2h

6· [y0+4y1+ f(u2, y

P2 )]

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 11

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]

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 12

SIMULINK Grundlagen

Solver: Integrationsalgorithmen in MATLAB

Variable–step solver:

• arbeiten mit variabler Integrationsschrittweite

• ermoglichen Fehleruberwachung

• ermoglichen Erkennung von zero crossings

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 13

SIMULINK Grundlagen

Solver: Integrationsalgorithmen in MATLAB

Fehleruberwachung

• Fehler = Anderung der Zustandsgroßen vom letzten

zum aktuellen Zeitpunkt

• 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

} }}

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 14

SIMULINK Grundlagen

Solver: Integrationsalgorithmen in MATLAB

zero crossings

• discontinuities: Unstetigkeiten im Verlauf der Zustands-

großen (z.B. Abs, Saturation)

• gewohnliche Nulldurchgange

tntn-1

t

xi(t)

t

Nulldurchgangnicht

detektiert

Nulldurchgangdetektiert

t

xi(t) xi(t)

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 15

SIMULINK Grundlagen

Solver: Integrationsalgorithmen in MATLAB

Variable–step solver:

• fur zeitkontinuierliche, nicht–steife Systeme:

⇒ ode45 (first try), ode23, ode113

• fur zeitkontinuierliche, steife Systeme:

⇒ ode15s, ode23s, ode23t,ode23tb

• Fur zeitdiskrete Systeme:

⇒ discrete (Variable–step)

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 16

SIMULINK Grundlagen

Solver: Integrationsalgorithmen in MATLAB

Fixed–step solver:

• arbeiten mit fester Integrationsschrittweite

• keine Fehleruberwachung oder Erkennung von Unste-

tigkeitsstellen

• fur zeitkontinuierliche Systeme:

⇒ ode5, ode4, ode3, ode2, ode1

• Fur zeitdiskrete Systeme:

⇒ discrete (Fixed–step)

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 17

SIMULINK Grundlagen

Simulation: Parameter und Integrationsverfahren

Configuration

Parameters

Dialogbox

Register Data Import/Export:

• Initialisierung

• Laden von Daten aus dem Workspace

• Schreiben von Daten auf den Workspace

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 18

SIMULINK Grundlagen

Simulation: Parameter und Integrationsverfahren

Configuration

Parameters

Dialogbox

Register Diagnostics:

• Steuerung von Fehlermeldungen

• Einstellung von Simulationsoptionen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 19

SIMULINK Grundlagen

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))

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 20

SIMULINK Grundlagen

Arbeiten mit Callback-Routinen

Automatische Ausfuhrung von benutzerdefinierten Funktionen direkt

vom Simulink-Modell aus zu festen Zeitpunkten wahrend des Simu-

lationsablaufs z.B. InitFcn oder PreLoadFcn:

• Initialisierung von komplexen Modellen mittels Matlab-Skript

• in Block Parameters Dialogbox steht nur noch Variable

• Verknupfung des Skripts mit Blockdiagramm:

– set param(’modellname’,’InitFcn’,’modellname ini’)

set param(’modellname’,’PreLoadFcn’,’modellname ini’)

set param(0,’CallbackTracing’,’on’)

oder

– Menupunkt File/Model properties Callbacks

• Ausfuhren des Skripts (manuell/Editor) entfallt

• Simulink hat Zugriff auf Workspace-Variablen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 21

SIMULINK Grundlagen

Beispiel zu Callback-Routinen

Beispiel bspparameter.mdl

repeat

To Workspace2

verst_Konst

To Workspace1

erg

To Workspace

RepeatingSequence

>=

RelationalOperator

verst

Gain

Konst

Constant

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 22

SIMULINK Grundlagen

Fehlerbehandlung

Simulation

Diagnostics

Viewer

• oberer Fensterteil: Fehlerumstande (Art, Ursache, Pfa-

dangabe zur Fehlerquelle, Komponente)

• unterer Fensterteil: Volltext der Fehlermeldung

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 23

SIMULINK Grundlagen

SIMULINK Bibliothek Signal Routing

Unterbibliothek Signal Routing:

• Datenspeicher–Management

A

Data StoreWrite

A

Data StoreRead

A

Data StoreMemory

• Verknupfung und Auswahl von Signalen

SelectorMux

[1]

ICHit Crossing

[A]

Goto

[A]

From

Demux

Demux

BusSelector

uvm.

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 24

SIMULINK Grundlagen

Subsysteme

Subsysteme:

• Ubersichtliche Gestaltung komplexer Modelle

• Zusammenfassung von Blocken ahnlicher Funktion

• Aufbau von hierarchischer Struktur

• Erstellung mit

1. Menupunkt Edit/Create Subsystem

2. Unterbibliothek Subsystems

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 25

SIMULINK Grundlagen

SIMULINK Bibliothek Subsystems

Unterbibliothek Subsystems:

while { ... }In1

ICOut1

While IteratorSubsystem

In1 Out1

TriggeredSubsystem

In1 Out1

Subsystem

ActionIn1 Out1

If ActionSubsystem

u1if(u1 > 0)

else

If

function()

In1 Out1

Function−CallSubsystem

In1 Out1

EnabledSubsystem

In1 Out1

Atomic Subsystem

uvm.

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 26

SIMULINK Grundlagen

Bedingt ausgefuhrte Subsysteme / Maskierung

Bedingt ausgefuhrte Subsysteme

• Ausfuhrung 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 moglich

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 27

SIMULINK Grundlagen

Maskierung von Subsystemen

Beispiel bspmask.mdl

b y−Achsenabschnitt

m

Steigung

yx

⇒y=mx+b

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth 28