Professional Documents
Culture Documents
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.
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
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 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