You are on page 1of 70

MATLAB und Simulink

Prof. Dr. Ottmar Beucher


Hochschule Karlsruhe - Technik und Wirtschaft
Deutschland
Universiti Malaysia Pahang
23.-27. September 2013
Was ist MATLAB ?
Was ist MATLAB ?
Ein numerisches Berechnungs- und Simulationswerkzeug
Eine h ohere Programmiersprache
Eine interpretierte Programmiersprache
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 1
Elementare MATLAB Operationen
Elementare MATLAB Operationen:
Arithmetische Operationen
Logische Operationen
Mathematische Funktionen
Grasche Funktionen
I/O-Operationen (Datenaustausch)
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 2
Das MATLAB User Interface (ab Release 2012b)
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 3
Denition numerischer Felder (MATrizen)
rowvector = [ 1 5 3]
rowvector =
1 5 3
columnvector = [ 2 ; 4; 3; 1; 14j ]
columnvector =
2.0000
4.0000
3.0000
1.0000
1.0000 4.0000 i
aMatri x = [ 3 1+2i 2; 4 0 5]
aMatri x =
3.0000 1.0000 + 2.0000 i 2.0000
4.0000 0 5.0000
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 4
Denition numerischer Felder (MATrizen)
% ei nen Zei l envekt or anh angen (Bem. : Semi col on )
aMatri x = [ aMatri x ; 1 2 3]
% ei nen Zei l envekt or anh angen
aMatri x = [ aMatri x ; rowvector ]
% ei nen Spal t envekt or anh angen (Bem. : Komma)
v = [ 1 ; 2 ; 3 ] ;
aMatri x = [ aMatrix , v ]
% Zu g r i f f auf ei ne Komponente
element23 = aMatri x ( 2 , 3)
% Setzen ei ner Komponente
aMatri x ( 2 , 3) = 25
% L oschen ei nes Zei l envekt or s
aMatri x ( 1 , : ) =[ ]
% L oschen ei nes Spal t envekt or s
aMatri x ( : , 2 ) =[ ]
% ABER:
aMatri x ( 2 , 3) = [ ]
Subscripted assignment dimension mismatch.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 5
Denition numerischer Felder (MATrizen) - Interaktiver Zugang
Das Variables Fenster:
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 6
MATLABs Arbeitsspeicher - Der Workspace
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 7

Ubungen
1
Denieren Sie in MATLAB die folgenden Matrizen und Vektoren und speichern
Sie diese in den entsprechenden Variablen:
M =
_
_
_
_
1 0 0
0 j 1
j j + 1 3
_
_
_
_
,
k = 2.75, v =
_
_
_
_
_
_
_
1
3
7
0,5
_
_
_
_
_
_
_
,
w =
_
1 5.5 1.7 1.5 3 10.7
_
,
y =
_
1 1.5 2 2.5 100.5
_
.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 8

Ubungen
2
Betrachten Sie die Matrix M der vorangegangenen

Ubung:
Erweitern Sie die Matrix M zu einer 6 6-Matrix V, sodass
V =
_
_
M M
M M
_
_
.
L oschen Sie aus der Matrix V die zweite Zeile und die dritte Spalte.
Speichern Sie die vierte Zeile der Matrix V in einem neuen Vektor r4.

Andern Sie die Komponente (4, 2) der Matrix V zu j + 5.


3
L oschen Sie alle Variablen des Workspace und rekonstruieren Sie dann die
Matrix V, indem Sie die automatisch gespeicherten Kommandos zur Denition
von V und die - und -Tasten verwenden.
Versuchen Sie zus atzlich andere Variablen mit Hilfe des Command
History-Fensters zu rekonstruieren.
4

Uberschreiben Sie unter Verwendung des Variables-Fensters die f unfte Zeile der
Matrix V mit Nullen.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 9
Arithmetische Operationen
Matrix-Algebra-Operationen: M N, M + N, M
M = [ 1 2 3; 4 1 2 ] ; % d e f i n i e r t ei ne 2x3mat r i x M
N = [ 1 2 1 ; 4 1 1; 2 0 1] % d e f i n i e r t ei ne 3x3mat r i x N
V = MN % Produkt MN NICHT ERLAUBT!
V =
15 0 4
4 9 3
W = NM % Produkt NM NICHT ERLAUBT!
??? Error using ==> mtimes I nner matri x dimensions must agree .
K = [ 1 5 3; 2 1 2]; % d e f i n i e r t ei ne andere 2x3Mat r i x K
W = N+M; % Summen N+M, M+N ERLAUBT!
lambda = 2; % d e f i n i e r t ei nen Skal ar wer t ( 1x1mat r i x )
V = lambdaM; % Produkt lambdaM, Mlambda ERLAUBT!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 10
Arithmetische Operationen
Feldoperationen: M N, M
k
, M/N
M = [ 1 2 3; 4 1 2 ] ; % d e f i n i e r t ei ne 2x3mat r i x M
N = [ 1 2 1 ; 4 1 1; 2 0 1 ] ; % d e f i n i e r t ei ne 3x3mat r i x N
V = M.N % Fel dProdukt M.N NICHT ERLAUBT!
Error using .
Matri x dimensions must agree .
K = [ 1 5 3; 2 1 2]; % d e f i n i e r t ei ne andere 2x3Mat r i x K
V = M.K % Fel dProdukt e M.K, K.M ERLAUBT!
V =
1 10 9
8 1 4
k = 3; % d e f i n i e r t ei nen Skal ar wer t ( 1x1mat r i x )
M. k ; % Fel dPotenzen ERLAUBT!
W = M. / K % Fel dDi vi si onen ERLAUBT!
W =
1.0000 0.4000 1.0000
2.0000 1.0000 1.0000
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 11

Ubungen
5 Bearbeiten Sie folgende Probleme:
Berechnen Sie unter Verwendung von Matrix- oder/und Feld-Operationen das Standard-Skalarprodukt der
Vektoren
x =

1 2
1
2
3 1

und y =

2 0 3
1
3
2

.
Berechnen Sie das Produkt der Matrizen
A =

1 3.5 2
0 1 1.3
1.1 2 1.9

und B =

1 0 1
1.5 1.5 3
1 1 1

.
Berechnen Sie mit Hilfe von
A =

1 3.5 2
0 1 1.3
1.1 2 1.9

die Matrix
C =

1 0 0
0 1 0
0 0 1.9

indem Sie geeignete Feld-Operationen verwenden!


Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 12
Logische Operationen
Operationen:
Und (&)
Oder (|)
Negation ()
Exklusives Oder (xor)
immer Feld-Operatoren
Resultat: logische Werte, Logische Arrays
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 13
Logische Operationen (Beispiele)
A=[ 1 3 ; 0 0]
A =
1 3
0 0
B=[ 0 5 ; 0 1]
B =
0 5
0 1
Res=A&B % Logi sches UND
Res =
0 1
0 0
Res=A|B % Logi sches ODER
Res =
1 1
0 1
Res=xor (A, B) % Exkl usi ves ODER
Res =
1 0
0 1
Res=B % Negat i on
Res =
1 0
1 0
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 14
Relationale Operationen
Operationen:
Gr oer als (>)
Kleiner als (<)
Gr oer oder gleich (>=)
Kleiner oder gleich (<=)
Gleich (==)
Nicht gleich (=)
immer Feld-Operatoren
Resultat: logische Werte, logische Arrays
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 15
Relationale Operationen (Beispiele)
A=[ 1 3 ; 0 0]
A =
1 3
0 0
B=[ 0 5 ; 0 1]
B =
0 5
0 1
Res=A>B % gr oer
Res =
1 0
0 0
Res=A<=B % k l ei ner gl ei c h
Res =
0 1
1 1
Res=A==B % gl ei ch
Res =
0 0
1 0
Res=A=B % ni cht gl ei ch
Res =
1 1
0 1
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 16
Logisches und Numerisches Indizieren
Zwei Arten der Indizierung:
mit ganzen Zahlen
A=[ 1 3 ; 0 0]
A =
1 3
0 0
a = A( 2 , 1) % Zu g r i f f auf El ement ( 2 , 1)
a =
0
z = A( 1: 2 , 1) % Zu g r i f f auf Elemente
% ( 1 , 1) und ( 2 , 1)
z =
1
0
mit logischen Werten
vect =[2, 3 , 4, 5 , 1]
vect =
2 3 4 5 1
sel ect = vect>2 % pr uf e wo Elemente > 2
sel ect =
0 1 0 1 0
whos
Name Size Bytes Class
sel ect 1x5 5 l ogi cal
vect 1x5 40 double
pick = vect ( sel ect ) % s el ek t i er e mi t
% l ogi scher I ndi zi er ung
pick =
3 5
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 17

Ubungen
6
Betrachten Sie die folgende Matrix:
C =
_
_
_
_
_
_
_
1 2 3 4 10
22 1 11 12 4
8 1 6 11 5
18 1 11 6 4
_
_
_
_
_
_
_
.
Setzen Sie mit Hilfe eines geeigneten relationalen Operators alle Eintr age > 10
und < 10 der Matrix C auf 0.
Hinweis: Realisieren Sie zuerst die Vergleiche > 10 und < 10 und verwenden Sie
dann die Resultate, um die Eintr age mit einer geeigneten Feldoperation auf 0 zu setzen.
7
Betrachten Sie die Matrix:
D =
_
_
_
_
_
_
_
7 2 3 10
2 3 11 4
8 1 6 5
18 1 11 4
_
_
_
_
_
_
_
.
Selektieren Sie unter Verwendung logischer Felder die Diagonale von D und
speichern Sie diese in einen Vektor namens diag.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 18
Mathematische Funktionen
Wirken immer als
Feld-Operatoren:
t =( 0: 1: 4) % Auf r uf mi t einem Vekt or
t =
0 1 2 3 4
s=si n ( t ) % Werte von si n ( t )
s =
0 0.8415 0.9093 0.1411 0.7568
mess=[ 25. 5 16. 3 18. 0; . . . % Auf r uf mi t ei ner Mat r i x
2. 0 6. 9 3. 0; . . .
0. 05 4. 9 1 . 1 ] ;
dBmess=20log10 ( mess)
dBmess =
28.1308 24.2438 25.1055
6.0206 16.7770 9.5424
26.0206 13.8039 0.8279
Aufruf aquivalent zu
Programmierschleifen wie:
double s [ 6 ] ;
f or ( i =0; i <6; i ++)
{
s [ i ] = si n ( i ) ;
}
double dBmess[ 3 , 3 ] ;
f or ( i =0; i <4; i ++)
{ f or ( k=0; k<4; i ++)
{
dBmess[ i , k ] = 20log10 ( mess[ i , k ] ) ;
}
}
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 19

Ubungen
8
Berechnen Sie f ur einen Zeitvektor zwischen 0 und 10 und einer aquidistanten
Unterteilung von 0.1 die Werte des Signals (der Funktion):
s(t) = sin(25t) cos(23t) + e
0.1t
.
9
Berechnen Sie f ur einen Zeitvektor zwischen 0 und 10 und einer aquidistanten
Unterteilung von 0.1 die Werte des Signals (der Funktion):
s(t) = 20 sin(25t).
Runden Sie dann die Werte nach bzw. nach 0. Finden Sie dazu mit der
MATLAB-Hilfe die geeigneten Funktionen.
Geben Sie in beiden F allen 6 Werte von s(t) zusammen mit ihren gerundeten
Werten in einer Matrix mit zwei Zeilen auf dem Bildschirm aus und
interpretieren Sie das etwas merkw urdige Resultat.
10
Berechnen Sie mit Hilfe geeigneter elementarer mathematischer
MATLAB-Funktionen den Vektor der 2er- und der 10er-Logarithmen f ur

b =
_
1024 1000 100 2 1
_
.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 20
Signale und Funktionen mit MATLAB plotten
MATLABs Plot-Funktionalit aten:
Plot-Funktionen im interaktiven Betrieb und in
MATLAB-Programmen nutzen:
x y-Plots mit plot, stem, stairs, ...
Linienstil-Optionen
Annotierungs-Funktionen
Dreidimensionale Plots mit surf, mesh, ...
Plotten mehrerer Funktionen mit subplot
Nutzung des Plot Tools-Fesnsters im interaktiven Betrieb:
Interaktive Anpassung der Plots
Dokumentation der Plots
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 21
MATLABs x y-Plot-Kommandos
Nutzung der Standard
Plot-Kommandos
t =( 0: 1: 5) ;
s=si n ( t ) ;
pl ot ( t , s ) ; % di e ei nf achst e Form
% Mehrere Si gnal e pl ot t en
t =( 0: 0. 01: 2) ;
si nf kt =si n(2pi5t ) ;
cosfkt=2cos(2pi3t ) ;
expfkt =exp(2t ) ;
pl ot ( t , [ si nf kt ; cosfkt ; expfkt ] ) ;
% v i e l besser
pl ot ( t , si nf kt , k , t , cosfkt , . . .
b , t , expfkt , m. )
% Lat t enzaunPl ot s
t =( 0: 0. 05: 2) ;
cosfkt=2cos(2pit ) ;
stem( t , cosfkt )
Linienstile und Annotation
anpassen
t =( 0: 1: 5) ;
s=si n ( t ) ;
pl ot ( t , s , mo ) ; % L i n i e n s t i l Kr ei se
% Farbe magenta
xl abel ( time / s ) % Beschr i f t ung der x
yl abel ( ampl . / V ) % und yAchse
% Fi g u r e n t i t e l
t i t l e ( A sine functi on )
gri d % bl ende ei n Gi t t er ei n
axi s ( [ 0 , 0. 5 , 0 , 2] ) % zei ge Ausschni t t
% ei nen Text hi nzuf ugen
t ext ( 0. 75 , 0 , \l ef t ar r ow si gnal , . . .
FontSize , 18)
% und Vi el es mehr . . .
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 22
Das Plot-Tools-Fenster
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 23
Das subplot-Kommando
Mehrere Signale mit subplot
plotten
% Bei spi el : pl ot t e Absol ut bet r age
% und Argumente ei ner kompl exwert i gen Funkt i on
x =( 0: 0. 01: 1) ;
f = (1+ j x ) . / ( j 2x ) ; % di e komplexe Funkt i on
subplot ( 211) % Oberes Pl ot f ens t er
pl ot ( x , abs( f ) , b ) % Absol ut bet r ag
gri d % F uge Gi t t er ei n
% Annot i er ung
xl abel ( xvalues )
yl abel ( modulus of f ( x) )
subplot ( 212) % Unt eres Pl ot f ens t er
pl ot ( x , angle ( f ) , r )% pl ot t e di e Argumente
gri d % F uge Gi t t er ei n
% Annot i er ung
xl abel ( xvalues )
yl abel ( phase angle of f ( x) )
Vorteil:
- plot von mehreren Funktionen
mit demselben Argument aber
verschiedenen Einheiten f ur
die Funktionswerte
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 24

Ubungen
11 Geben Sie die folgenden MATLAB-Kommandos in das Kommandofenster ein und versuchen Sie das merkw urdige
grasche Resultat zu interpretieren:
t =( 0: 0. 5: 10) ;
si nf kt =si n(2pi5t ) ;
cosfkt=2cos(2pi3t ) ;
expfkt =exp(2t ) ;
pl ot ( t , [ si nf kt ; cosfkt ; expfkt ] )
12 Experimentieren sie mit den MATLAB-Funktionen semilogx, semilogy und loglog.
Denieren Sie zu diesem Zweck den Frequenzvektor
= (0.01, 0.02, 0.03, 0.04, . . . , 5) rad/s
und versuchen Sie Betrag und Phasenwinkel der so genannten

Ubertragungsfunktionen
H() =
1
j
und
H() =
1
1 + j
.
zu plotten.
13 Plotten Sie die zweite der oberen

Ubertragungsfunktionen ubereinander. Verwenden Sie f ur die Frequenz und (nur) f ur
den Betrag eine logarithmische Skala. (Dies ist ein so genanntes Bode-Diagramm).
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 25
MATLABs I/O-Operationen
MATLABs I/O-Funktionalit aten:
I/O-Funktionen im interaktiven Betrieb und in
MATLAB-Programmen nutzen:
Speichern von Workspace-Variablen mit save
Laden von Variablen mit load
Die ASCII-Schnittstelle
Spezielle Funktionen f ur viele Formate
Nutzung des Import Data Tools im interaktiven Betrieb:

Offnen des Import Data Tools mit uiimport

Offnen des Import Data Tools mit dem Men u oder Doppelklick
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 26

Ubungen
14
Erzeugen sie mit Hilfe des MATLAB-Editors einen Vektor und/oder eine Matrix
von reellen Zahlen und speichern Sie diese in ein Textle.
L oschen Sie alle Daten im Workspace mit clear.
Laden Sie dann unter Verwendung von load die Inhalte des Textles wieder in
den Workspace und analysieren Sie das Resultat.
15
Erzeugen Sie mit MATLAB einen Spaltenvektor mit komplexen Zahlen.
Speichern Sie diesen Vektor in MATLABs bin arem Format mit Hilfe des
save-Kommandos.
L oschen Sie alle Daten im Workspace mit clear. Lesen Sie dann die Daten des
gespeichertenFiles wieder in den MATLAB Workspace ein. Verwenden Sie dazu
die Funktion load oder das Import Tool!
Vergleichen Sie das Resultat mit dem der vorangegangene

Ubung.
16
Suchen Sie mit der MATLAB-Hilfe eine geeignete Funktion zum Einlesen des
*.wav-Files Tada.wav der Begleitsoftware.
Stellen Sie das eingelesene Audio-Signal grasch dar. Achten Sie darauf, dass
die Achsen korrekt beschriftet sind.
Multiplizieren Sie dann das Signal mit dem Factor 10 und speichern Sie das
Resultat unter einem anderen Dateinamen als *.wav-le.
H oren Sie sich die Audio-Signale an.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 27
Elementare Matrix-Operationen
N utzlich zur Initialisierung in
MATLAB-Programmen:
% I n i t i a l i z i n g mi t Nul l en
M = zeros ( 2 , 2) ;
% I n i t i a l i s i e r u n g mi t Ei nsen
K = ones ( 2 , 2) ;
% I n i t i a l i s i e r u n g mi t ei ner Ei nhei t smat r i x
E5 = eye ( 5 ) ;
% I n i t i a l i s i e r u n g wi t h einem l eer en Vekt or
N = [ ] ;
% Bestimme L ange und / oder Gr oe ei nes Ar r ays
x1 = [ 1 , 2 , 3 , 4 , 5 , 6] ;
k = l ength ( x1 ) ;
[ n,m] = si ze (M) ;
% Zu g r i f f auf di e l e t z t e Komponente
l ast = zVec( end ) ;
Reorganisation von Vektoren
und Matrizen:
% Tr ansponi er e ei ne Mat r i x
M = [ 1 2; 3 j ; 1 j +1] ;
N = M ;
% Tr ansponi er e ei ne Mat r i x ( Fel dOper at i on )
M = [ 1 2; 3 j ; 1 j +1] ;
N = M. ;
% Reor gani si er e al s Spal t envekt or
mVec = M( : ) ;
% Reor gani si er e al s Spal t envekt or
L = repmat (M, 2 , 2) ;
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 28

Ubungen
17
Finden Sie mit Hilfe der MATLAB-Hilfe eine Funktion, die den
Vektor
y = (1, 1.1, 1.2, 1.3, 1.4, , 9.8, 9.9, 10)
in den folgenden Vektor umwandelt:
z = (10, 9.9, 9.8, 9.7, , 1.2, 1.1, 1).
18
Betrachten Sie den Vektor
z = (1, 1.5, 2, , 98.5, 99, 99.5, 100).
Konstruieren Sie ausgehend von diesem Vektor mit Hilfe
logischer Operationen und der Funktion repmat einen neuen
Vektor w, der nur noch jede dritte Komponente vonz enth alt !
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 29
MATLAB Script Files
Beispiel:
% Scr i ptFi l e f unkbsp
%
% Auf r uf : f unkbsp
%
% Er st es Bei spi el f ur ei n MATLAB Scr i ptFi l e
%
% Aut or : Pr of . Dr . Ottmar Beucher
% HS Kar l sr uhe Techni k und Wi r t schaf t
% Ver si on : 1. 01
% Datum: 14. 11. 2012
t =( 0: 0. 01: 2) ;
si nf kt =si n(2pi5t ) ;
cosfkt=2cos(2pi3t ) ;
expfkt =exp(2t ) ;
pl ot ( t , [ si nf kt ; cosfkt ; expfkt ] )
xl abel ( Time / s )
yl abel ( Amplitude )
t i t l e ( Three beaut i f ul si gnal s )
% Auf r uf im CommandWindow
funkbsp
Eigenschaften:
- Fasst MATLAB-Kommandos
zu einer Programm-Einheit
zusammen
- K onnen im Kommandofenster
als Kommando ausgef uhrt
werden
- K onnen MATLABs
help-Mechanismus nutzen
- Erzeugen
Workspace-Variablen, arbeiten
mit Workspace-Variablen!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 30
MATLAB Funktionen
Beispiel:
functi on [ t , si nf kt , cosfkt , expfkt ] = . . .
funkbsp2 ( f1 , f2 , damp)
%
% Funkt i on funkbsp2
%
% Auf r uf : si ehe unten
%
% Er st es Bei spi el f ur ei ne MATLABFunkt i on
t =( 0: 0. 01: 2) ;
si nf kt =si n(2pif 1t ) ;
cosfkt=2cos(2pif 2t ) ;
expfkt =exp(dampt ) ;
pl ot ( t , [ si nf kt ; cosfkt ; expfkt ] )
xl abel ( Time / s )
yl abel ( Amplitude )
t i t l e ( Three beaut i f ul si gnal s )
% Auf r uf im CommandWindow
[ t , si nf kt , cosfkt , expfkt ] = . . .
funkbsp2( 2 , 3 , 0. 1)
% oder ei nf ach
funkbsp2( 2 , 3 , 0. 1)
Eigenschaften:
- Fasst MATLAB-Kommandos zu
einer Programm-Einheit
zusammen kann jedoch
parametrisiert werden
- unter dem Dateinamen im
Command Window als Kommando
mit Parametern aufrufbar
- K onnen MATLABs
help-Mechanismus nutzen
- Klare Ein-/Ausgabeparameter-
Schnittstelle
- Operieren auf ihrem eigenen
Speicherbereich!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 31
Aufrufmechanismus von MATLAB-Funktionen (Call by Value)
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 32

Ubungen
19

Andern Sie den Code der Funktion funkbsp3 so ab, dass man
nach Aufruf auf die Inhalte des komponentenweise quadrierten
Vektors a zugreifen kann.
20

Andern Sie den Code der Funktion funkbsp2 so ab, dass man
zus atzlich Farben und Linienstile f ur die Graphen der Signale
ubergeben kann. Die Funktion sollte die Graphen dann
entsprechend plotten.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 33
MATLAB als Programmiersprache
MATLAB als prozedurale
Programmiersprache:
Programming language constructs .
Control flow .
i f Condi t i onal l y execute
el se statements .
el sei f
end
f or Repeat statements a
speci f i c number of times .
whi le Repeat statements an
i ndef i ni t e number of times .
. . .
switch Switch among several
cases based on expressions .
. . .
MATLAB als Objektorientierte Sprache:
cl assdef exampleclass
propert i es % def i ni er e Kl assenei genschaf t en
end
methods % def i ni er e zugeh ori ge Methoden
end
end
Eigenschaften:
- Prozedurale
Programmiersprache
- Kommandos und
Konstrukte ahnlich zu
anderen
Programmiersprachen (etwa
C/C++)
- Spezielle Kommandos f ur
MATLAB-Funktionen mit
variabler Parameterliste
- wird hier nicht behandelt.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 34

Ubungen
21
Schreiben Sie eine MATLAB-Funktion, die f ur einen gegebenen Zahlenvektor
das Maximum seiner Eintr age bestimmt. Verwenden Sie dazu ein geeignetes
Schleifenkonstrukt. Der gegebene Vektor sollte der einzige Eingangsparameter,
das gefundene Maximum der einzige Ausgabeparameter der
MATLAB-Funktion sein.
22
Schreiben Sie eine MATLAB-Funktion, die f ur einen gegebenen Zahlenvektor
die positiven Eintr age bestimmt. Verwenden Sie dazu ein geeignetes
Schleifenkonstrukt. Der gegebene Vektor sollte der einzige Eingangsparameter
der MATLAB-Funktion sein. Das Resultat (die positiven Eintr age) sollte in
einem Vektor organisiert werden und dieser Vektor sollte der Ausgabeparameter
der MATLAB-Funktion sein.
23
Schreiben Sie eine MATLAB-Funktion, die das Signal sin(x) zwischen 0 und 2
in einer gegebenen Farbe plottet. Der gegebene Farbe sollte der einzige
Eingangsparameter der MATLAB-Funktion sein und folgende erlaubte Werte
haben: red, blue, green, magenta. Verwenden Sie ein
switch...case-Konstrukt, um entsprechend dem Wert des Eingangsparameters
programmintern die Farbe f ur den Plot zu bestimmen.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 35
Function Handles
Function handles
- eine spezielle Art Zeiger:
my cos = @cos;
whos
Name Size Bytes Class
my cos 1x1 16 functi on handl e
value = cos( 1)
value =
0.5403
value = my cos( 1)
value =
0.5403
Eigenschaften:
- Ein Zeiger auf eine
MATLAB-Function
- Hauptverwendung:
MATLAB-Funktionen
an andere
MATLAB-Funktionen
via Parameterliste
ubergeben!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 36

Ubungen
24
Greifen sie

Ubung (23) noch einmal auf und erweitern Sie die
Funktionalit at des Programms, sodass der Nutzer ein Signal und
das Plot-Intervall an die MATLAB-Funktion ubergeben kann.
Nehmen Sie daf ur an, dass das Signal in einer separaten
MATLAB-Funktion ausprogrammiert ist oder dass es eine
vordenierte MATLAB-Funktion ist.
25
Die MATLAB-Funktion fzero berechnet (unter Verwendung eines
geeigneten numerischen Verfahrens) eine Nullstelle einer reellen
Funktion. Diese reelle Funktion, die als MATLAB-Funktion
realisiert sein muss, muss fzero als function handle ubergeben
werden.
Machen Sie sich mit der Aufrufkonvention von fzero vertraut und
berechnen Sie Nullstellen von geeigneten Beispielfunktionen,
indem Sie fzero im Command Window aufrufen.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 37
MATLABs ODE-Solver (DGL-L oser)
Aufruf der MATLAB ODE-Solver:
help ode23
ode23 Solve nons t i f f di f f er ent i al equations ,
low order method.
[ TOUT, YOUT] = ode23(ODEFUN, TSPAN, Y0) with
TSPAN = [ T0 TFINAL] i nt egrat es the system of
di f f er ent i al equations y = f ( t , y) from time
T0 to TFINAL with i n i t i a l condi ti ons Y0.
ODEFUN i s a functi on handle .
For a scal ar T and a vector Y, ODEFUN( T, Y)
must ret urn a column vector corresponding
to f ( t , y ) .
Each row i n the sol ut i on array YOUT corres
ponds to a time returned i n the column
vector TOUT.
To obtai n sol uti ons at speci f i c times
T0 , T1 , . . . , TFINAL, use TSPAN =
[ T0 T1 . . . TFINAL ] .
. . .
See also ode45 , ode113 , ode15s , ode23s ,
ode23t , ode23tb , ode15i , odeset , odeplot ,
odephas3 , odeprint , . . . .
Reference page i n Help browser
doc ode23
Eigenschaften:
- L ost Anfangswertprobleme
vom Typ y

= f (t, y)
- L ost DGL 1. Ordnung oder
Systeme von DGL 1.
Ordnung
- Ben otigt eine (von
Anwender zu schreibende)
ODE-Funktion
- Ben otigt Zeitintervall und
einen Vektor von
Anfangswerten
- Liefert eine numerische
L osung an intern
berechneten St utzstellen
- Sind berechnungsoptimiert
durch interne
Schrittweitensteuerung
- Runge-Kutta-basierte
Algorithmen f ur
nicht-steife und steife
DGLs
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 38
Das mathematische Pendel
Beispiel:
Mathematisches Modell:
Anfangswertproblem 2. Ordnung:
(t) =
g
l
sin((t)), (0), (0).
oder aquivalent:

1
(t) =
2
(t),

2
(t) =
g
l
sin(
1
(t))
(0) =
_
_
(0)
(0)
_
_
=
_
_

1
(0)

2
(0)
_
_
.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 39
Die Struktur des ODE-Files
Struktur eines ODE-Files
(Beispiel):
functi on [ alphadot ] = pendgl ( t , alpha )
%
% Funkt i on pendgl
%
% Auf r uf : wi r d NUR von
% ODESol ver n auf ger uf en ! ! !
%
% Bei spi el ei nes ODEFi l es f ur di e Sol ver
% ode23 , ode45 u . s . w.
%
l =10; % Pendel l ange
g=9. 81; % Erdbeschl euni gung
%% I n i t i a l i s i e r u n g
alphadot = [ 0 ; 0 ] ;
%% Dar st el l ung der DGL 1. Ordnung
% er st e Gl ei chung
alphadot ( 1) = alpha ( 2 ) ;
% zwei t e Gl ei chung
alphadot ( 2) = (g/ l )si n ( alpha ( 1 ) ) ;
Eigenschaften:
- Repr asentiert das
aquivalente System von
DGL 1. Ordnung
- Hat eine feste
Eingangsparameter-
Schnittstelle
- Ist keine Funktion, die
eigenst andig laufen kann!
Wird ausschlielich von
MATLAB-Solvern
verwendet
- Muss den MATLAB-Solvern
mit Hilfe eines function
handles ubergeben werden.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 40
Wie die Solver die ODE-File Information nutzen
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 41
RC-Tiefpass
Beispiel:
Mathematisches Modell:
Anfangswertproblem 1. Ordnung:
d
dt
u(t) =
1
RC
u(t) +
1
RC
u
1
(t), u(0) = u
0
.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 42

Ubungen
28
L osen Sie das Anfangswertproblem f ur den RC-Tiefpass f ur
verschiedene Eingangssignale des Tiefpasses. (Nehmen Sie zum
Beispiel anstatt u
1
(t) ein sinusf ormiges Eignangsignal).
29
L osen Sie das Problem:
y
1
(t) = 2y
1
(t) y
2
(t) y
1
(0) = 1,
y
2
(t) = 4y
1
(t) y
2
(t) y
2
(0) = 1.
Vergleichen sie die numerische L osung mit der analytischen
L osung (die Sie zum Beispiel von Hand ausrechnen).
30
L osen Sie das Problem:
...
y
+ 3y + 3 y + y = u
1
(t), y(0) = 0, y(0) = 1, y(0) = 1.
Die Funktion u
1
(t) bezeichnet dabei den Einheitssprung.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 43
Die Symbolic Math Toolbox
Stellt Computer Algebra Funktionalit at zur Verf ugung
Hat zwei verschiedene Anwenderschnittstellen
the MuPAD-Notebook: Anwenderschnittstelle mit eigener Befehlssyntax
the MATLAB-Adaption: Anwenderschnittstelle mit gewohnter
MATLAB-Syntax
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 44
Beispiel aus der Analysis
syms x y v
whos
Name Size Bytes Class At t ri but es
v 1x1 60 sym
x 1x1 60 sym
y 1x1 60 sym
f = si n ( xy2)cos( vxy) % def i ni er e ei ne Funkt i on
f =
si n ( xy2)cos( vxy)
dfy = di f f ( f , y ) % Abl ei t ung nach y
dfy =
2xycos( xy2)cos( vxy)vxsi n ( xy2)si n ( vxy)
dfv = di f f ( f , v ) % Abl ei t ung nach v
dfv =
xysi n ( xy2)si n ( vxy)
pr et t y ( f ) % pr et t y dar s t el l en
2
si n ( x y ) cos( v x y)
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 45
Export symbolischer L osungen in numerische L osungen
syms x % def i ni er e symbol i sche Var i abl en
f = x2cos( x ) ; % def i ni er e ei ne Funkt i on
df = di f f ( f , x ) % berechne di e Abl ei t ung
dt = 0. 1; % def i ni er e ei ne Sc hr i t t wei t e
t = ( 0: dt : 1 0) ; % def i ni er e di e St ut z s t el l en
fnum = t . 2. cos( t ) ; % berechne di e Funkt i on numeri sch
dfnum = di f f ( fnum) / dt ; % di f f er enz i er e numeri sch
% pl ot t e di e numeri sche Abl ei t ung
pl ot ( ( dt : dt : 10) , dfnum, b )
hold
dfnum2 = subs( df , x , t ) ; % konver t i er e di e symbol i sche L osung
% i n ei ne numeri sche L osung mi t dem
pl ot ( t , dfnum2, r ) % subsKommando und pl ot t e di ese
gri d
xl abel ( x )
yl abel ( der i vat i ve )
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 46

Ubungen
31
Integrieren Sie die Funktion
g(x) = sin(5x 2)
zwei Mal symbolisch auf.
32
Berechnen Sie f ur die Funktion g(x) das Taylor-Polynom 3.
Ordnung am Entwicklungspunkt x
0
= 1.
33
Berechnen Sie unter Verwendung der symbolischen Funktion
dsolve die L osung der folgenden gew ohnlichen
Differentialgleichung:
y = xy
2
.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 47
Dynamische Systeme - ein bekanntes Beispiel
Beispiel:
Modellierung dynamischer Systeme:
y(t) =
1
C
t

0
i() d,
y(t) = x(t) i(t) R

i(t) =
1
R
(x(t) y(t)

.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 48
Die Idee hinter Simulink
Die Idee hinter Simulink:
Zeichne ein Blockschaltbild des dynamischen Systems
Lass Simulink das Blockschaltbild in ein System von
Differentialgleichungen konvertieren
Lass Simulink dieses System von Differentialgleichungen mit
Hilfe von MATLABs numerischen ODE-Solvern l osen
Lass Simulink die Signale grasch darstellen (Eingangssignale,
Ausgangssignale - normalerweise die L osungen des
DGL-Systems - und interne Zust ande)
Simulink kann verwendet werden um,
ein gegebenes reales dynamisches System durch ein
Blockschaltbild zu modellieren und das dynamische Verhalten
dieses Systems zu simulieren
ein System von DGL zu l osen, indem es zun achst in ein
Blockschaltbild ubersetzt und dann simuliert wird.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 49
Entwurf eines Simulink Modells - Der Library Browser
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 50
Entwurf eines Simulink Modells - Das Modell-Fenster
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 51
Simulation eines Simulink Modells - Das Parameter-Panel
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 52

Ubungen
34
Testen Sie das System sl test1.slx f ur verschiedene Schrittweiten
und einen Solver mit Schrittweitensteuerung (variable-step
Solver). Vergleichen Sie die L osung des xed-step Solvers ode3
bei Verwendung einer Schrittweite von 0.00001 auf der einen Seite
und bei Verwendung des variable-step Solvers ode23 auf der
anderen Seite.
35
Entwerfen Sie ein Simulink Test-System sl LsgDiff.slx f ur den
Ableitungsblock Derivative. Verwenden Sie dazu am besten das
System sl test1.slx als Ausgangsbasis. Experimentieren Sie dann
mit dem System wie in der vorangegangenen

Ubung.
36
Erl autern Sie, inwiefern das Resultat des Testsystems sl test1.slx
die L osung des Anfangswertproblems
y(t) = x(t), y(0) = 0.
repr asentiert. Was ist in diesem Fall die St orfunktion x(t), was die
L osung y(t)?
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 53
Dynamische Systeme - Drei Beispiele
Drei Beispiele:
Eine unged ampfte harmonische Schwingung:
y(t) = y(t), y(0) = 1, y(0) = 0.
DEr RC-Tiefpass:
T y(t) +y(t) = x(t), T :=
1
RC
Schnelle mechanische Oszillationen in Luft oder Fl ussigkeiten:
mx(t) + b sgn( x(t)) x
2
(t) + cx(t) = 0.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 54

Ubungen
37
Entwerfen Sie ein Simulink-System zur L osung der nichtlinearen
Differentialgleichung
(t) =
g
l
sin((t)), (0) = a
0
, (0) = a
1
des mathematischen Pendels (d.h. um das dynamische Verhalten des
mathematischen Pendels zu simulieren).
38
Entwerfen Sie ein Simulink-System zur L osung des folgenden
Anfangswertproblems dritter Ordnung:
...
y
(t) + 3y(t) + 4 y(t) + 2y(t) = 0, y(0) = 1, y(0) = 1, y(0) = 0.
39
L osen Sie mit einem geeigneten Simulink-System das
Differentialgleichungssystem:
y
1
(t) = 3y
1
(t) 2y
2
(t), y
1
(0) = 1,
y
2
(t) = 4y
1
(t) + 2y
2
(t), y
2
(0) = 1.
Vergleichen sie die numerische Simulink-L osung mit einer exakten
L osung, die Sie entweder von Hand oder mit Hilfe der Symbolic Math
Toolbox bestimmen.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 55
Methoden der Vereinfachung von Simulink Systemen
Methoden: Der function-Block (Fcn)
Erzeugung von Subsystemen
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 56

Ubungen
40
Vereinfachen Sie das Simulink System zur L osung von

Ubung
(39), in dem Sie geeignete Subsysteme erzeugen.
41
Vereinfachen Sie das Simulink System zur L osung von

Ubung
(39), in dem Sie geeignete Fcn-Bl ocke verwenden.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 57
Interaktion mit MATLAB - ein

Uberblick
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 58
Interaktion mit MATLAB - das Cong Parameters Panel
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 59

Ubungen
42
Entwerfen Sie ein Simulink-System zur L osung der linearen
Differentialgleichung
my(t) + 2 y(t) + 4y(t) = F(t), y(0) = 1, y(0) = 0.
Diese Gleichung modelliert die Bewegung eines schwingenden Objekts der
Masse m, welche durch eine auere Kraft F(t) gest ort wird.
Verwenden Sie in einem ersten Experiment eine Sprungfunktion f ur die
Modellierung der Kraft F(t). Der

Ubergang von 0 (keine Krafteinwirkung) nach
c (konstante Krafteinwirkung) sollte zum Zeitpunkt t
0
> 0 erfolgen. Verwenden
Sie Workspace Variablen, um das System zu parametrisieren.
43
L osen Sie das Problem der vorangegangenen

Ubung (42) nochmals, indem Sie
ein neues Simulink-System entwerfen, welches die auere Kraft F(t) mit einem
From Workspace-Block von MATLAB einliest und welches die L osung in einem
To Workspace-Block an MATLAB zur uckliefert.
44
L osen Sie das Problem der vorangegangenen

Ubung(42) nochmals, indem Sie
ein neues Simulink-System entwerfen, welches die auere Kraft F(t) mit einem
Inport einliest und welches die L osung mit einem Outport an MATLAB
zur uckliefert.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 60
Interaktion mit MATLAB - Datenaustausch mit Funktionen
Setze die Parameter eines Simulink-Systems mit set param:
% Bei spi el : Setze den Parameter StopTime des Systems sl Pendel auf 30
set param( sl Pendel , StopTime , 30 )
% Bei spi el : Setze den Parameter Gain des Bl ocks Gain des Systems sl Pendel auf 1
set param( sl Pendel / Gain , Gain , 1 ) ;
% Bei spi el : Setze den Parameter Gain des Bl ocks Gain des Systems sl Pendel auf g / l
g = 9. 81; % Erdbeschl euni gung
l = 25; % Pendel l ange
set param( sl Pendel / Gain , Gain , num2str(g/ l ) ) ;
Bestimme die Parameter eines Simulink-Systems mit get param:
% Bei spi el : Er mi t t l e den Parameter StopTime des Systems sl Pendel
get param( sl Pendel , StopTime )
% Bei spi el : Er mi t t l e den Parameter Gain von Bl ock Gain im System sl Pendel
set param( sl Pendel / Gain , Gain ) ;
% Bei spi el : Er mi t t l e den i n i t i a l condi t i on Parameter des I nt egr at or
% Bl ocks des Systems sl Pendel
set param( sl Pendel / I nt egrat or1 , I ni t i al Condi t i on ) ;
Beachte: Das funktioniert auch aus MATLAB-Funktionen heraus!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 61

Ubungen
45
Greifen Sie das Simulink-System der vorangegangenen

Ubung
(42) nochmlas auf und und ver andern Sie die Parameter mit
set param bevor Sie das System starten.
46

Offnen Sie das Simulink-System sl Pendel2.slx der
Begleitsoftware. Dieses System simuliert das mathematische
Pendel.

Andern Sie den Parameter pendellaenge mit set param einmal auf
5 m und dann auf 8 m bevor Sie die Simulation starten.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 62
Interaktion mit MATLAB - das sim-Kommando
Das sim-Kommando
simuliert (ein ge offnetes) Simulink-System
kann ein Simulink-System uber seine Parameterliste initialisieren
liefert die Simulationsergebnisse uber einen R uckgabeparameter
(das Simulink.SimulationOutput-Object) zur uck
geloggete Signale (siehe Data Import/Export-Panel) k onnen in das
SimulationOutput-Object integriert werden
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 63
Das sim-Kommando - das Cong Parameters Panel
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 64
Das sim-Kommando - Automatisierung von Simulink Simulationen
Automatisierung von Simulink Simulationen mit sim - ein Beispiel:
functi on [ zei t , simuerg ] = simPendel2 ( pendellaenge )
%

Of f ene das Si mul i nkSystem , f a l l s es ni cht of f en i s t
open( sl Pendel 2 . sl x ) ;
% Setze di e Gain Bl ock Parameter
g = 9. 81; % Erdbeschl euni gung mi t set param
set param( sl Pendel 2 / Gain , Gain , num2str(g/ pendellaenge ) ) ;
% Si mul i er e das Si mul i nkSystem mi t sim
% St el l e si cher , dass sim ei n Si mul i nk . Si mul at i onOut putObj ect
% z ur uc k l i ef er t , indem der Parameter SaveOutput auf on geset zt wi r d
% ( wenn sim nur mi t des Si mul i nkSystem Namen ges t ar t et wi rd ,
% wi r d nur der Zei t vekt or z ur uc k gel i ef er t )
simOut = sim( sl Pendel 2 , SaveOutput , on ) ;
% Gr ei f e mi t der getMethode auf di e Resul t at e zu
% und spei cher e Si e i n den Ausgangsvari abl en
% der Funkt i on si mPendel 2
zei t = simOut . get ( t ) ;
simuerg = simOut . get ( yout ) ;
Beachte: Das System sl Pendel2 kann mehrere Male in dieser Form gestartet werden.
Dazu kann eine for-Schleife verwendet werden, die die Resultate in Matrizen oder Cell
Arrays speichert!!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 65

Ubungen
47
Schreiben Sie eine MATLAB-Funktion, mit der das Simulink-System
sl Pendel2.slx f ur einen gegebenen Vektor von Pendell angen
durchsimuliert werden kann.
48
Entwerfen Sie ein Simulink-System, welches sinusoidale Signale mit
Hilfe des Generator-Blocks Sine Wave erzeugt.
Schreiben Sie dann eine MATLAB-Funktion, mit der Sie dieses System
mehrere Male aufrufen k onnen, wobei die Frequenz des Sinus variiert
werden soll.
49
Entwerfen Sie ein Simulink-System, welches das Anfangswertproblem
y(t) + y(t) + y(t) = f (t), y(0) = 0, y(0) = 0.
l ost.
Die Funktion f (t) sollte eine Sprungfunktion (verwenden Sie den
Step-Block) mit Sprungh ohe h sein.
Schreiben Sie dann eine MATLAB-Funktion, mit der Sie dieses System
mehrere Male aufrufen k onnen, wobei der Parameter h variiert werden
soll.
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 66
Kennlinien und Kennfelder (Look-Up Tables)
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 67
Kennlinien und Kennfelder (Look-Up Tables) - ein Beispiel
Strom-Spannungs-Charakteristik einer Solarzelle:
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 68

Ubungen
50
Betrachten Sie die folgende Kennlinie:
k(x) =
_

_
0 f ur x < 0,

x f ur x [0, 4],
2 f ur x > 4.
Entwerfen Sie ein Simulink-System, welches diese Kennlinie mit einem 1-D
Lookup Table realisiert. Regen Sie den Kennlinienblock mit einem Sinussignal
an und analysieren Sie das Ausgangssignal. Experimentieren Sie mit
verschiedenen Amplituden des Sinussignals.
51
Betrachten Sie das folgende Kennfeld:
k(x, y) = x
2
+ y
2
f ur x, y [1, 1].
Entwerfen Sie ein Simulink-System, welches diese Kennlinie mit einem 2-D
Lookup Table realisiert. Aktivieren Sie sodann die Kennlinie an den Punkten
(x, x) mit x [1, 1]. Entwerfen Sie zu diesem Zweck ein geeignetes
Eingangssignal. Dieses Eingangssignal sollte mit einem From Workspace-Block
eingelesen werden. Konsultieren Sie bitte bez uglich der Parametrisierung des
2-D Lookup Table die Anweisungen, die f ur die Parametrisierung eines
dreidimensionalen Plots notwendig sind (z.B. die Funktion meshgrid)!
Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 69

You might also like