Post on 06-Feb-2018
Kompendium zu
MATLAB /
SIMULINK
Begleitmaterial
Systemdynamik und Regelungstechnik
zur Vorlesung
Sommersemester 2011
Dipl.-Ing. Gunter Diehm
www.irs.kit.edu
Inhaltsverzeichnis
Vorwort 1
1 Anmerkungen zur Benutzeroberflache 5
2 Erstes Rechnen mit Matlab 92.1 Grundlegende Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Vektoren und Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 Skripte und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Schleifen und Fallunterscheidungen . . . . . . . . . . . . . . . . . . . . . . 132.5 Cell-Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.6 Texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Grafik in Matlab 173.1 Grundsatzlicher Aufbau der Grafik in Matlab . . . . . . . . . . . . . . . . 173.2 Modifikation des Koordinatensystems und dessen Beschriftung . . . . . . . 20
4 Matlab in der Regelungstechnik 234.1 Ubertragungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Betrachtung im Zeitbereich . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3 Betrachtung im Frequenzbereich . . . . . . . . . . . . . . . . . . . . . . . . 254.4 Wurzelortskurven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.5 SISO-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Einfuhrung in Simulink 31
Quellen 35
Vorwort
Dieses Matlab-Kompendium dient als Begleitmaterial zu der Vorlesung Systemdynamik
und Regelungstechnik (SRT), welche vorwiegend von Studierenden der Elektro- und Infor-
mationstechnik am Karlsruher Institut fur Technologie besucht wird. In diesem Kompen-
dium werden dem Leser theoretische Kenntnisse in hoherer Mathematik - insbesondere
dem Rechnen mit Matrizen und Vektoren - sowie in Signaltheorie und einfacher Program-
mierung (z.B. Schleifenbehandlung) unterstellt.
Der heutige Ingenieurberuf fordert nicht nur ein fundiertes theoretisches Verstandnis des
jeweiligen Fachgebietes, sondern ebenso Kenntnisse im Umgang mit entsprechenden Soft-
warewerkzeugen, die die Arbeit oftmals erleichtern. In der Regelungstechnik, wie auch in
vielen verwandten Fachgebieten, hat sich heutzutage Matlab/Simulink als das”State-of-
the-art“-Instrument entwickelt.
Wie der Name MATLAB (MATrix LABoratory) bereits verdeutlicht, liegt die eigentli-
che Starke des Programms in der Losung komplexer, numerischer Probleme mit Hilfe von
Matrizen. Auch stehen dem Nutzer vielfaltige grafische Darstellungsmoglichkeiten zur Ver-
fugung. Daneben bietet Matlab fur viele Standard-Probleme entsprechende Algorithmen.
Zur Behandlung spezieller komplexerer Aufgabenstellungen stehen zahlreiche Toolboxen
zur Verfugung. Dadurch wird Matlab zu einem sehr machtigen Instrument, das sowohl im
universitaren Bereich als auch in der Industrie haufig eingesetzt wird.
Da sich Matlab zusammen mit dem erganzenden Simulationspaket Simulink insbesondere
auch fur die Darstellung, Simulation und Analyse von Regelkreisen sowie zum Reglerent-
wurf hervorragend eignet, soll im Rahmen der SRT-Vorlesung bzw. in den begleitenden
Ubungs- und Tutoriumsveranstaltungen auch der Umgang mit Matlab/Simulink und die
Anwendung der erlernten theoretischen Kenntnisse in dieser Softwareumgebung vermittelt
werden.
Das Programm ist auf vielen Arbeitsplatzen der freien Poolraume im Steinbuch Center
for Computing (SCC) installiert. Außerdem kann es im Softwareshop des KIT [9] herun-
tergeladen werden. Zwischen verschiedenen Versionen von Matlab konnen sich in einigen
Fallen Kompatibilatsprobleme ergeben. In Vorlesung, Ubung und Tutorium zu SRT wird
prinzipiell die Version Matlab R2008a verwendet.
Um sich im Tutorium auf die wesentlichen systemtheoretischen Inhalte konzentrieren zu
konnen, ohne an der grundlegenden Programmstruktur und Bedienung zu scheitern, sind
die Teilnehmer dazu angehalten, sich rechtzeitig zu Beginn des Semesters eigenstandig
einen ersten Uberblick uber das Programm zu verschaffen und sich die Grundlagen der
Bedienung anzueignen. Dabei soll dieses Kompendium als Einstiegshilfe und kleines Nach-
4 Inhaltsverzeichnis
schlagewerk dienen. Die im Anhang aufgefuhrten Links fuhren nur zu einigen von zahlrei-
chen Internetquellen, in denen der Neugierige weiterfuhrende Informationen findet. Dane-
ben bieten die aufgefuhrten Bucher umfassende Dokumentationen und Beispiele.
Die selbstandige Umsetzung und Anwendung des Vorlesungsstoffes mit Matlab/Simulink
auch uber die Aufgaben aus Ubung und Tutorium hinaus fuhrt zu einem tieferen Ver-
standnis der Systemtheorie einerseits und zur Ubung und Routine im Umgang mit dieser
im Beruf hilfreichen Software andererseits. Dem Skeptiker sei an dieser Stelle gesagt:”Den
Umgang mit Matlab/Simulink lernt man nur schwerlich durch das Lesen eines dicken Bu-
ches, sondern vielmehr durch Ausprobieren von Befehlen und eigenstandiger Recherche
im konkreten Fall.“
Kapitel 1
Anmerkungen zur
Benutzeroberflache
Nach Start des Programmes offnet sich die Matlab-Benutzeroberflache. Diese ist in vier
Bereiche aufgeteilt, welche im Default-Layout etwa so angeordnet sind:
3
2
1
4
Abbildung 1.1: Benutzeroberflache von Matlab
Falls die Start-Ansicht nicht alle Elemente enthalt, kann das Default-Layout uber das
Menu Desktop>Desktop-Layout>Default ausgewahlt werden.
6 Anmerkungen zur Benutzeroberflache
Zusatzlich kann unter Desktop>Editor der Matlab Editor ins Default-Layout eingebun-
den werden. Alle Bereiche konnen per Klick auf den Pfeil rechts oben (in Abbildung 1.2
exemplarisch im Editor rot markiert) in das Hauptfenster integriert beziehungsweise als
separates Fenster herausgelost werden. Auch eine individuelle Platzierung der Bereiche
durch Verschieben per Maus ist moglich. Sind alle Bereiche ins Layout integriert, ergibt
sich eine Ansicht wie in Abb. 1.2. Die funf Bereiche werden im Folgenden naher erlautert.
5
2
3
4
1
Abbildung 1.2: Benutzeroberflache von Matlab mit Editor
1 Command Window
Rechts befindet sich das Command Window. Befehle konnen direkt am Matlab-Prompt
>> eingegeben werden. Durch Beenden eines Befehls mit Enter wird dieser ausgefuhrt. Die
meisten Befehle erzeugen sowohl Daten, als auch eine grafische Ausgabe. Daten werden
dabei im Workspace (2) gespeichert, Ausgaben sind im Command Window zu sehen. Die
Ausgabe im Command Window kann unterdruckt werden, indem die Zeile mit Semikolon
; abgeschlossen wird.
Bsp: Im Command Window wird Folgendes eingegeben:
>> a=2+2
Im Workspace erscheint die Variable a mit dem zugehorigen Wert. Diese ist nun gespei-
chert und kann jederzeit wieder verwendet werden. Zusatzlich erfolgt eine Ausgabe im
Command Window (s. Abb. 1.3).
7
Abbildung 1.3: Beispiel
Wird einer Berechnung keine Variable zugewiesen, wird von Matlab automatisch die Va-
riable ans vergeben. Diese kann, wie jede Variable, abgefragt und verarbeitet werden. Die
Variable wird jedoch mit jeder weiteren Operation uberschrieben, sodass sie immer nur
das letzte Ergebnis enthalt.
Durch die Eingabe der Befehle doc Matlab-Befehl beziehungsweise help Matlab-Befehl im
Command Window wird eine Hilfe zu dem eingegebenen Matlab-Befehl ausgegeben. Wird
statt help Ausdruck der Befehl lookfor Ausdruck verwendet, werden alle Befehle im Zusam-
menhang mit dem eingegebenen Ausdruck ausgegeben. lookfor imag liefert zum Beispiel
alle Befehle, die sich mit imaginaren Zahlen, Imaginarteilbildung, etc. beschaftigen.
Alternativ kann zum Anzeigen der Hilfe auch der Cursor im entsprechenden Befehl plat-
ziert und F1 gedruckt werden.
2 Workspace Browser
Im Workspace Browser befinden sich alle gespeicherten Variablen. Diese werden prinzi-
piell bis zum Schließen von Matlab gespeichert, konnen aber auch jederzeit uberschrie-
ben werden. Mit den Befehlen clear und save beziehungsweise uber das Kontextmenu
8 Anmerkungen zur Benutzeroberflache
bei Rechtsklick im Workspace konnen einzelne (alle) Variablen geloscht oder als *.mat-
Datei sitzungsubergreifend gespeichert werden. Einmal als *.mat-Datei abgespeicherte
Variablen-Satze konnen mit dem Befehl load(*.mat) in einer anderen Sitzung wieder in
den Workspace importiert werden.
3 Current Directory Browser
Dieser Dateibrowser ermoglicht beispielsweise das Offnen von Dateien. Hier werden alle
(auch nicht Matlab-spezifische) Dateien des aktuellen Verzeichnisses angezeigt. Dieses Ver-
zeichnis lasst sich z.B. im Feld Current Directory unter der Menu-Leiste des Hauptfensters
auswahlen. Skripte und Funktionen (s. Kap. 2.3) konnen nur ausgefuhrt werden, wenn sie
im aktuellen Verzeichnis gespeichert sind.
4 Command History
Hier werden alle in der Vergangenheit im Command Window eingegebenen Befehle ange-
zeigt. Die Befehle konnen durch Doppelklick wiederholt oder auch per Drag&Drop in den
Matlab-Editor importiert werden.
5 Matlab Editor
Es konnen Skripte und Funktionen erstellt beziehungsweise bearbeitet werden. Der Editor
kann auch durch den Befehl edit im Command Window oder uber die Wahl einer neuen
Matlab-Datei (*.m-Datei) in der Menuleiste gestartet werden.
Eingaben im Matlab Editor sollten, sofern diese im Command Window nicht explizit
ausgegeben werden sollen, immer mit einem Semikolon abgeschlossen werden.
Kommentare werden durch % gekennzeichnet. Sollen ganze Passagen aus- beziehungs-
weise einkommentiert werden, konnen die Tastenkombinationen Strg+R beziehungsweise
Strg+T verwendet werden, wenn der Cursor sich in der entsprechenden Zeile befindet.
Kompiliert wird per Klick auf Save and Run (Befehlsleiste, gruner Pfeil auf weißem
Grund). Es konnen Breaking Points (rechts des Save and Run Buttons) gesetzt werden, so-
dass das Programm immer nur bis zum nachsten festgesetzten Breaking Point ausgefuhrt
wird.
Kapitel 2
Erstes Rechnen mit Matlab
2.1 Grundlegende Befehle
Grundrechenarten wie Addition(+), Subtraktion(-), Multiplikation(*) und Division(/)
konnen in Matlab wie gewohnt eingegeben werden. Exponenten werden durch das Zei-
chen ˆ kenntlich gemacht, die Berechnung von Fakultaten erfolgt mit dem Zeichen !.
Es folgt eine Auflistung weiterer wichtiger Rechenoperationen. Diese lassen sich auf Ska-
lare und oftmals auch elementweise auf Matrizen anwenden. Auf die Besonderheiten bei
der Anwendung von speziellen Rechenoperationen fur Matrizen wird in Abschnitt 2.2
eingegangen.
abs(a), angle(a) berechnet den Betrag, die Phase von a
exp(a) (skalare) Exponentialfunktion von a
log(a), log10(a) berechnet den naturlichen, den Zehnerlogarithmus von a
real(a), imag(a) berechnet den Real-, den Imaginarteil von a
round(a) kaufmannisches Runden von a
sign(a) Signumfunktion, berechnet das Vorzeichen von a
sin(a), cos(a), tan(a), asin(a), acos(a), atan(a) Sinus-, Cosinus-, Tangens-,
Arcussinus-, Arcuscosinus-, Arcustangensfunktion
sqrt(a) berechnet die Quadratwurzel von a
Zusatzlich mussen einige spezielle Werte aufgefuhrt werden:
i oder j imaginare Zahl
inf unendlich
nan entsteht bei der Division von 0 durch 0
pi Kreiszahl π
10 Erstes Rechnen mit Matlab
2.2 Vektoren und Matrizen
Matrizen konnen in Matlab auf zwei verschiedene Arten eingegeben werden:
• >> A=[1 1 1;2 2 2;3 3 3;4 4 4]
Die Elemente einer Matrix A werden zeilenweise in eckigen Klammern eingegeben.
Die Zeilenelemente werden hintereinander aufgefuhrt und durch Leerzeichen oder
Kommata getrennt. Ein Zeilenumbruch wird durch ein Semikolon gekennzeichnet.
• >> A=[1 1 1
2 2 2
3 3 3
4 4 4]
Der Aufbau ist analog zu Moglichkeit eins, wobei Zeilenumbruche durch Return
gekennzeichnet werden.
Vektoren lassen sich als Matrizen mit nur einer Zeile beziehungsweise Spalte auffassen.
Skalare als 1× 1 - Matrizen.
Die Elemente einer Matrix A beziehungsweise eines Vektors A lassen sich durch
>> A(Zeile, Spalte)
direkt ansprechen. Soll die Untermatrix von A, die sich aus den Zeilen a bis b und den
Spalten c bis d ergibt, angesprochen werden, gilt folgende Syntax:
>> A(a:b,c:d)
Wichtig hierbei ist, dass bei Matlab die Indizierung mit eins und nicht mit Null be-
ginnt! Die Doppelpunkte sind mit dem Ausdruck bis aquivalent. Zusatzlich kann uber
Anfangspunkt:Schrittweite:Endpunkt eine Schrittweite reguliert werden. Ein einzelner Dop-
pelpunkt ohne Ziffern symbolisiert alle Zeilen/Spalten.
Bsp: Aus der Matrix A soll eine Matrix B erzeugt werden. Dabei sollen die Zeilen eins bis
vier betrachtet werden, wobei lediglich jede zweite Zeile ubernommen werden soll. Außer-
dem sollen alle Spalten verwendet werden, was durch den Doppelpunkt gekennzeichnet
wird (siehe Abbildung 2.1).
Zusatzlich konnen Matrizen zu einer neuen Matrix verknupft werden:
• >> [X;Y] Die Matrizen werden ubereinander liegend verknupft.
• >> [X,Y] Die Matrizen werden nebeneinander liegend verknupft.
Die Voraussetzung dafur ist jedoch die gleiche Spalten- beziehungsweise Zeilendimension.
Fur Vektoren und Matrizen gibt es unterschiedliche Rechenoperationen:
2.2 Vektoren und Matrizen 11
Abbildung 2.1: Beispiel
• elementweise Addition, Subtraktion, Multiplikation und Division von Vektoren/Ma-
trizen gleicher Dimension.
+, -, .*, ./
• Matrizenmultiplikation: *
• Matrizendivision: hierbei wird zwischen linksseitiger (/) und rechtsseitiger (\) Divi-
sion unterschieden
• Transponierte: ’
• Potenz: ˆ
Haben die eingegebenen Matrizen beziehungsweise Vektoren nicht die fur die Rechenope-
rationen zulassigen Dimensionen, wird eine Fehlermeldung ausgegeben.
Weitere wichtige Befehle im Zusammenhang mit Matrizen und Vektoren sind:
B = inv(A) B ist die Inverse der Matrix A.
d = det(A) d ist die Determinante von A.
e = eig(A) Der Vektor e enthalt die Eigenwerte der Matrix A.
[V,D]=eig(A) Die Spalten der Matrix V entsprechen den Eigenvektoren der Matrix A,
die Diagonalelemente von D den Eigenwerten.
l = length(v) Das Skalar l entspricht der Lange des Vektors v.
s = size(A) s ist ein Zeilenvektor, der die Anzahl der Zeilen und Spalten von A enthalt.
r = rank(A) Das Skalar r ist der Rang der Matrix A.
12 Erstes Rechnen mit Matlab
Zusatzlich existieren noch einige wichtige Befehle im Zusammenhang mit der Erzeugung
von Matrizen beziehungsweise Vektoren:
C = diag(a) Es wird eine Diagonalmatrix erzeugt, deren Diagonalelemente die Elemente
des Vektors a sind.
E = eye(n) Es wird eine Einheitsmatrix der Dimension n erzeugt.
O = ones(x,y) Es wird eine x× y - Matrix bestehend aus Einsen erzeugt.
Z = zeroes(x,y) Es wird eine x× y - Matrix bestehend aus Nullen erzeugt.
T = linspace(a,b,n) Es wird ein Zeilenvektor mit n Elementen von a bis b in aquidi-
stantem Abstand erzeugt (wenn n nicht explizit angegeben wird, gilt n=100).
2.3 Skripte und Funktionen
Skripte sind Textdateien, die eine Folge von Matlab-Befehlen enthalten. Diese Dateien
werden im Editor erstellt und als *.m-Datei abgespeichert. Wird in einem Matlab-Fenster
der Dateiname (ohne Endung) aufgerufen oder wird im Editor der Run-Button angeklickt,
werden die dort enthaltenen Matlab-Befehle abgearbeitet. An Skripte konnen keine Pa-
rameter ubergeben werden. Skripte konnen allerdings auf bereits definierte Variablen im
Workspace zugreifen.
Funktionen werden wie Skripte erstellt, gespeichert und abgerufen. Allerdings konnen
an Funktionen auch Variablen ubergeben werden. Funktionen werden folgendermaßen
deklariert:
function x=funktionsname(a,b,...)
Der Rest ist wie bei Skripten frei. Es konnen beliebig viele Zwischen-Berechnungen oder
Ausgaben stattfinden.
x=Ergebnis;
Dabei sind a und b die Parameter, die bei Aufruf der Funktion ubergeben werden mussen.
Falls die Funktion ein Ergebnis zuruckgeben soll, muss es bis zum Ende der Funktion
zugewiesen werden.
Bsp:
1 function x=myfun(u1,u2,t)
2 %Diese Funktion erzeugt die Funktionswerte einer Sinusfunktion
mit
3 %vorgebbarer Amplitude und zeitlicher Lange.
4 x=u1*sin(u2*t);
Das Aufrufen der Funktion erfolgt bis auf die Ubergabe der Parameter analog zum Auf-
rufen von Skripten.
2.4 Schleifen und Fallunterscheidungen 13
Im Beispiel:
1 >> a=3;b=4;
2 >> t=linspace (0,2*pi ,1000);
3 >> y=myfun(a,b,t)
Alle vordefinierten Matlab-Befehle (z.B. sin, sqrt, aber auch plot) sind letzten Endes
Funktionen, denen Argumente ubergeben werden und die ein Ergebnis zuruckgeben oder
auch nur Variablen, Grafiken, etc. verandern. Funktionen konnen sich (auch rekursiv)
selbst oder gegenseitig aufrufen.
Ublicherweise bildet jede Funktion eine eigene *.m-Datei. Fur einfache Funktionen, de-
ren Code zum Beispiel aus einer einzigen Zeile besteht, gibt es die Moglichkeit, diese als
anonymous-function im Editor oder Command Window zu definieren. Eine solche Funk-
tion ist dann als quasi-analytische Funktion im Workspace abgelegt und kann wiederum
mit Argumenten aufgerufen werden.
Bsp:
1 myfun=@(u1,u2,t)u1*sin(u2*t);
2 %definiert die quasi -analytische Funktion myfun
3 a=3;b=4;t=linspace (0,2*pi ,1000);
4 y1=myfun(a,b,t);
5 %liefert einen Vektor y1 der gleichen Dimension wie t mit den
Elementen
6 %y1(i)=3*sin(4*t(i))
7 y2=myfun(b,a,2*t);
8 %liefert einen Vektor y2 der gleichen Dimension wie t mit den
Elementen
9 %y2(i)=4*sin (3*2*t(i))
2.4 Schleifen und Fallunterscheidungen
Schleifen und Fallunterscheidungen sind in Matlab analog zu anderen Programmierspra-
chen realisiert. An dieser Stelle soll nur kurz auf die Syntax verwiesen werden:
• for-Schleife:
for Index=Anfangspunkt:Endpunkt, Befehle, end
• while-Schleife
while Bedingung, Befehle, end
• if-Abfrage
if Bedingung, Befehle, end
14 Erstes Rechnen mit Matlab
Grundsatzlich sollten Schleifen in Matlab jedoch eher vermieden werden. Da Matlab auf
Matrizenoperationen ausgelegt ist, sollte vielmehr versucht werden, Schleifen durch den
Einsatz von Matrizen zu ersetzen. Die folgenden Ausdrucke sind aquivalent:
Bsp:
• for i=0:2*pi
b(i)=sin(i)
end
• a=[0:2*pi];
b=sin(a)
In beiden Fallen enthalt der Vektor b die Werte der Sinusfunktion im Intervall [0,2*pi].
Ein weiteres Beispiel soll den Einsatz von boolschen Matrizen in diesem Zusammenhang
verdeutlichen. Naheres zu boolschen oder logischen Matrizen findet sich z.B. in [5].
Bsp: Folgende Berechnungen liefern das gleiche Ergebnis, die zweite Variante sollte in
Matlab jedoch bevorzugt verwendet werden.
• while t(i)<10
c(i)=a(i);
i=i+1;
end
• c=a(t<10);
Außerdem soll noch kurz auf die logischen Verknupfungen in Matlab hingewiesen werden:
• == gleich
• ~= ungleich
• <, > kleiner als, großer als
• <=, >= kleiner gleich, großer gleich
• & Und
• | Oder
• ˜ Nicht
2.5 Cell-Arrays
Einige Matlab-Funktionen erzeugen von Matrizen abweichende Strukturen, sog.
cell-arrays. Auf diese soll hier nicht weiter eingegangen werden. Bei Bedarf ist in Link [4]
2.6 Texte 15
Naheres zu finden.
2.6 Texte
Texte konnen in Matlab durch Einschließen in Hochkommata zugewiesen werden:
s=’Hallo’;
Der Variablen s wird der gegebene Text zugewiesen. s hat dabei die Form einer Matrix,
deren Elemente den einzelnen Buchstaben entsprechen. Ausgegeben werden konnen Text-
variablen durch den Befehl disp(...). Fehlermeldungen sollten idealerweise durch den Be-
fehl error(...) ausgegeben werden, dann das Ausfuhren des Programmes nach Erscheinen
der Fehlermeldung automatisch abgebrochen wird. Eingaben konnen durch den Befehl
input(...) ermoglicht werden.
Bsp:
Eingabe:
tut=input(’Bitte geben Sie die Anzahl der Studenten im Tutorium xy ein!’);
Als Ausgabe erscheint dann
>> Bitte geben Sie die Anzahl der Studenten im Tutorium xy ein!
Es wird auf eine Eingabe gewartet. Nachdem diese mit Enter abgeschlossen wurde, ist die
Variable tut im Workspace mit dem eingegebenen Wert belegt.
Kapitel 3
Grafik in Matlab
3.1 Grundsatzlicher Aufbau der Grafik in Matlab
Die grafischen Elemente in Matlab sind streng objektorientiert aufgebaut und werden auch
als Handle Graphics bezeichnet. Ein sogenanntes handle lasst sich dabei als ein Zeiger auf
ein konkretes Grafikobjekt verstehen. Die Beziehungen der einzelnen Objekte zueinander
konnen folgender Grafik entnommen werden.
Root
Figure
Axes Uicontrol UimenuUicontext-
menu
Image Light Line Rectangle Surface TextPatch
Abbildung 3.1: Struktur der Objektorientierung in Matlab
Das Objekt root liegt nur einfach vor und wird beim Start von Matlab automatisch ge-
neriert. Untergeordnet sind die figure-Objekte, die gleichzeitig den Rahmen fur alle gra-
fischen Ausgaben in Matlab darstellen. Generiert wird ein figure-Objekt mit dem Befehl
figure. Dabei wird automatisch ein Index, das handle, zugeteilt. Wie alle Grafikobjekte
hat somit auch jedes figure ein eindeutiges handle. Die handles der vorhandenen Grafikob-
jekte werden zunachst jedoch nicht im workspace angezeigt. Mit dem Befehl gcf wird das
handle des aktuellen figure ausgegeben, mit gca das des aktuellen Achsensystems. Viele
Funktionen, wie zum Beispiel plot(), geben das handle des erzeugten grafischen Objekts
zuruck, wodurch bei Zuweisung zu einer Variablen der spatere Zugriff ermoglicht wird.
Das heißt, bei Eingabe der Befehlszeile
>> h=plot(x,y)
18 Grafik in Matlab
wird die Variable h angelegt, welche wie das handle auf das figure-Objekt zeigt, in dem
geplottet wird. Der Befehl plot kann auch ohne explizite Zuweisung verwendet werden,
d.h.
>> plot(x,y).
Hierbei wird das handle trotzdem erzeugt, aber keine Variable im workspace abgelegt, wel-
che auf das Objekt verweist. Dies erschwert spater den Zugriff auf das Objekt. Mit dem
Befehl figure(handle) kann ein beliebiges figure aufgerufen werden. Zum Loschen eines fi-
gure kann der Befehl clf verwendet werden. Ein figure kann mit close(handle) geschlossen
werden. Zum Schließen aller geoffneten figure verwendet man den Befehl close all. Alle
Grafikbefehle beziehen sich immer auf das zuletzt erzeugte beziehungsweise angesproche-
ne figure. In ein figure lasst sich nun beispielsweise ein Graph plotten. Dazu dient der
Befehl plot(x,y), wobei die Werte des Vektors y uber denen des Vektors x aufgetragen
werden. Hierbei sei darauf hingewiesen, dass der Befehl plot nur vorgegebene Punkte, also
Werte-Paare einzeichnen und verbinden kann. Das Darstellen einer rein analytisch defi-
nierten Funktion ist nicht moglich. Die Dimensionen der Vektoren x und y mussen daher
also ubereinstimmen. In einem Achsensystem konnen auch mehrere Kurven aufgetragen
werden.
Bsp:
plot(x,y1,x,y2)
In diesem Fall werden die Datensatze y1 und y2 jeweils uber dem Datensatz x aufgetragen.
Zusatzlich gibt es Befehle, die eine logarithmische Darstellung der Daten bewirken. Statt
des Befehls plot(x,y) konnen die Befehle
• semilogy(x,y) logarithmische Einteilung der y-Achse
• semilogx(x,y) logarithmische Einteilung der x-Achse
• loglog(x,y) logarithmische Einteilung von x- und y-Achse
verwendet werden. Daneben gibt es zahlreiche weitere plot- Befehle, z.B. fill, quiver, plot3d,
mesh, etc. Weitere Informationen finden sich z.B. in [8] oder unter [1] und [2].
Jedem figure sind weitere Objekte als Kinder untergeordnet. Die Objekete UIcontrol, UI-
menu und UIcontextmenu dienen der Erstellung grafischer Benutzeroberflachen und sollen
hier nicht weiter behandelt werden. Die Objekte axes dienen der Unterteilung eines figure
in mehrere Regionen, die dann wiederum mit den Kinder-Objekten image, light, line, patch,
rectangle, surface und text grafisch gestaltet werden konnen. Die Unterteilung des figure
kann mit dem Befehl subplot(N,M,k) vorgenommen werden. Das figure wird in N ×M
Teilplots unterteilt. Die Indizierung der subplots erfolgt uber den Index k. Mit dem Befehl
gca kann der Index des aktuellen subs abgerufen werden.
Wie auch in anderen objektorientierten Programmiersprachen konnen Objekteigenschaf-
ten mit den Befehlen get() und set() gezielt abgerufen beziehungsweise verandert werden:
• get(handle) bzw. get(gcf) Abrufen des aktuellen figure sowie dessen Eigenschaften
3.1 Grundsatzlicher Aufbau der Grafik in Matlab 19
• get(gca) Abrufen des aktuellen Achsensystems sowie dessen Eigenschaften
• get(handle,’eigenschaft’) Abrufen einzelner Objekteigenschaften
• set(handle,’eigenschaft’,wert) Verandern einzelner Objekteigenschaften
• reset(a) Zurucksetzen der Eigenschaften des Objekts mit handle a bzw. Index a
• delete(b) Loschen des Objekts mit handle b
Zusatzlich bietet Matlab die Moglichkeit, Objekteigenschaften im Property Editor direkt
zu verandern. Der Aufruf des Property Editors erfolgt mit dem Befehl plottools.
Abbildung 3.2: Property Editor
Es stehen diverse Werkzeuge zur Verfugung. Unter anderem lassen sich mit Hilfe des But-
tons New Subplot neue subplots in das bestehende figure integrieren. Die subplots konnen
außerdem per Mausklick angewahlt und die Große und Position variiert werden. Zusatz-
lich sind die Achsen der subplots unten im Property Editor beliebig veranderbar. Durch
einen Klick mit der rechten Maustaste auf den subplot, kann dieser uber das Kontextme-
nu einfach wieder geloscht werden. In der oberen Befehlsleiste stehen noch viele weitere
Werkzeuge zur Verfugung: Zoomen und Verschieben des Bildausschnitts, Abfahren der
Funktion mit einem Data Cursor zum Ablesen der prazisen Funktionswerte, Anpassen von
Farbe und Stil der Graphen und Einfugen von Legenden. Mit Hilfe von File>Generate
M-File kann das erstellte figure in Matlab-Quellcode umgewandelt werden, sodass eine
Reproduktion der eingestellten Eigenschaften moglich ist.
20 Grafik in Matlab
3.2 Modifikation des Koordinatensystems und des-
sen Beschriftung
Erstellt man einen Graphen in Matlab, so wird dieser automatisch skaliert. Mochte man
manuell skalieren, ist dies mit folgenden Befehlen moglich:
axis(Xmin,Xmax,Ymin,Ymax) Festlegung des Wertebereichs von x- und y-Achse
xlim([Xmin,Xmax]) Festlegung des Wertebereichs der x-Achse
ylim([Ymin,Ymax]) Festlegung des Wertebereichs der y-Achse
grid on Hinzufugen eines Gitternetzes
grid off Loschen des Gitternetzes
Mochte man in Matlab zoomen, geht dies nicht nur im Property Editor. Alternativ stehen
diverse Zoom-Funktionen auch noch als Befehle zur Verfugung. Einen Uberblick daruber
kann man sich verschaffen, wenn man in der Matlab-Hilfe zoom eingibt. Auf die einzelnen
Befehle soll an dieser Stelle nicht naher eingegangen werden.
Auch zur Achsenbeschriftung stehen in Matlab diverse Befehle zur Verfugung:
• xlabel(’Beschriftung’) Beschriftung der x-Achse
• ylabel(’Beschriftung’) Beschriftung der y-Achse
• title(’Titel’) Vergabe eines Titels
• legend(’graph1’,’graph2’,...) Legenden zu den einzelnen Graphen eines Plots
• text(x,y,’text’) Platzierung eines Textes am Punkt (x,y)
Nach dem Implementieren der Legende kann diese mit der Maus im Plot beliebig hin- und
hergeschoben werden.
Fur Beschriftungen mit Sonderzeichen (z.B. Integralen) kann ein LaTeX-ahnlicher Formel-
code in den Strings verwendet werden.
Bsp:
1 >> l e g e n d ( ’ \ s igma 1 ( x ) ’ , ’ \ i n t {−\ i n f t y }ˆ x eˆ{−x ˆ2} dx ’ ) ;
9 10 11 12 13 14 15
0.5
0.6
0.7
0.8
0.9
1
σ1(x)
∫−∞x e−x
2
dx
Abbildung 3.3: Beispiel
3.2 Modifikation des Koordinatensystems und dessen Beschriftung 21
Wurden an einem figure Anderungen durchgefuhrt, werden diese erst nach Eingabe des
Befehls shg ins figure ubernommen. Der Befehl shg kann jederzeit dazu verwendet werden,
das aktuelle figure in den Vordergrund des Bildschirms zu rucken.
In Matlab gibt es eine Vielfalt an unterschiedlichen Farben und Linientypen fur die Gra-
phen. Bei plots mit mehreren Linien in einem Achsensystem werden in Matlab automatisch
folgende Farben in der angegebenen Reihenfolge zugewiesen:
1. y yellow gelb
2. m magenta magenta (violett)
3. c cyan cyan (hellblau)
4. r red rot
5. g green grun
6. b blue blau
Zusatzlich stehen weiß (w) und schwarz (k) zur Verfugung. Weitere Farben konnen im
RGB-Format definiert werden.
Folgende Stricharten werden von Matlab verwendet:
1. - durchgezogen
2. – gestrichelt
3. -. Strichpunkt
4. : gepunktet
5. o Kreis
6. x Kreuz
7. + Plus
8. * Stern
Bei den ersten 4 Stricharten handelt es sich um Linienstile, d.h. es wird zwischen den
Stutzstellen interpoliert, bei den ubrigen Stricharten werden nur die in den zu plottenden
Vektoren definierten Punkte selbst dargestellt, es handelt sich hierbei um Markerstile.
Folgender Befehl macht deutlich, wie den Graphen auch manuell Farbe und Strichart
zugewiesen werden kann:
plot(x,y,’g-’)
Wird zuvor x=[0:0.1:2*pi] und y=sin(x) definiert, gibt Matlab folgendes aus:
Der Datensatz y wird uber x aufgetragen. Der Graph erscheint als grune durchgezogene
Linie.
22 Grafik in Matlab
Abbildung 3.4: Beispiel 3
Zu guter Letzt soll der Befehl hold thematisiert werden. Solange der Zustand hold mit
Hilfe des Befehls hold on aktiviert wurde, werden alle nachfolgenden plots gemeinsam im
aktuellen figure abgebildet. Ware hold nicht aktiv, wurde jeder neue plot den vorherigen
plot uberschreiben. Im aktuellen figure ware immer nur der aktuelle plot zu sehen. Mit
dem Befehl hold off wird hold wieder deaktiviert.
Kapitel 4
Matlab in der Regelungstechnik
Im Folgenden werden einige Befehle und Tools zum Einsatz von Matlab in der Rege-
lungstechnik vorgestellt. Diese Liste erhebt keinesfalls den Anspruch der Vollstandigkeit,
enthalt aber die wichtigsten, in DEMOs zur Vorlesung bzw. in Ubung und Tutorium ver-
wendeten Befehle. Insbesondere die Control System Toolbox ermoglicht zahlreiche weitere
Moglichkeiten der Analyse und Synthese von Regelkreisen. Weiterfuhrende Informationen
hierzu finden sich u.A. in [7], [8] und[9].
Im Gegensatz zu den bisherigen Kapiteln werden hier auch Befehle vorgestellt, deren
zugrunde liegende Theorie Sie erst wahrend des Semesters in Vorlesung, Ubung und Tu-
torium erlernen werden.
4.1 Ubertragungsfunktionen
Die Ermittlung der Ubertragungsfunktion eines LTI-Systems kann in Matlab mit Hilfe
von drei verschiedenen Befehlssatzen erfolgen:
1. mit Hilfe des Befehls tf()
Syntax:
sys=tf(B,A)
sys=tf(B,A,Ts)
An die Funktion mussen der Vektor B, der die Koeffizienten des Zahlerpolynoms bm,...,b0
enthalt, der Vektor A, der die Koeffizienten des Nennerpolynoms enthalt und bei zeitdis-
kreten Systemen die Abtastzeit Ts ubergeben werden. Ausgegeben wird die Ubertragungs-
funktion sys.
Mit Hilfe des Befehls tfdata() konnen die zur Ubertragungsfunktion gehorenden Parameter
zuruckgewonnen werden:
[B,A]=tfdata(sys)
[B,A,Ts]=tfdata(sys) .
2. mit Hilfe des Befehls zpk()
24 Matlab in der Regelungstechnik
Syntax:
sys=zpk(Z,P,K)
sys=zpk(Z,P,K,Ts)
An die Funktion mussen der Vektor Z, der die Nullstellen der Ubertragungsfunktion ent-
halt, der Vektor P, der die Polstellen der Ubertragungsfunktion enthalt, die Verstarkung
K und bei diskreten Systemen zusatzlich die Abtastzeit Ts ubergegeben werden. Auch
hier kann analog zu Punkt 1 der Befehl zpkdata() zur Ruckgewinnung der Parameter
verwendet werden.
3. mit Hilfe des Befehls frd()
Syntax:
sys=frd(freqgang,freq)
sys=frd(freqgang,freq,Ts)
An die Funktion mussen der Vektor freq, der beliebige Frequenzpunkte enthalt, der Vektor
freqgang, der den Frequenzgang an den Frequenzen in freq als komplexe Zahlen enthalt
und bei zeitdiskreten Systemen die Abtastzeit Ts ubergeben werden. Analog zu Punkt 1
existiert der Befehl frdata() zur Ruckgewinnung der Parameter.
Die Umwandlung von zpk() zu tf() geschieht automatisch, wenn die Ubertragungsfunktion
des jeweils anderen Typs als Argument gewahlt wird. Eine Umwandlung in frd kann nur
durch zusatzliche Angabe eines Frequenzvektors erfolgen. Umgekehrt ist keine Transfor-
mation moglich.
Matlab bietet die Moglichkeit Totzeiten zu berucksichtigen. Dies erfolgt mit Hilfe der
Eigenschaft ’iodelaymatrix’ und anschließender Angabe der Totzeit:
• set(sys,’iodelaymatrix’,2);
sys ist bereits vorhanden; die Eigenschaft ’iodelaymatrix’ wird auf 2 geandert; sys
weist damit eine Totzeit von 2 auf.
• sys=zpk(-3,[-1,-2],1,’iodelaymatrix’,2);
sys weist eine Nullstelle bei -3, Polstellen bei -1 und -2 auf; schon bei der Implemen-
tierung wird die Totzeit von 2 berucksichtigt.
Außerdem kann eine Umrechnung zwischen zeitkontinuierlichen und -diskreten Ubertra-
gungsfunktionen vorgenommen werden:
• sysd=c2d(sys,Ts,’method’)
Die zeitkontinuierliche Ubertragungsfunktion sys wird in die zeitdiskrete Ubertra-
gungsfunktion sysd mit Abtastzeit Ts umgewandelt. Mit dem string method kann
gewahlt werden, welche Diskretisierungsmethode angewandt werden soll. Erfolgt kei-
ne Angabe wird automatisch ein Abtast-Halte-Glied nullter Ordnung gewahlt.
4.2 Betrachtung im Zeitbereich 25
• sysc=d2c(sysd,’method’)
Die zeitdiskrete Ubertragungsfunktion sysd wird in die zeitkontinuierliche Ubertra-
gungsfunktion sysc umgewandelt
4.2 Betrachtung im Zeitbereich
• Ermittlung von Sprungantworten
Der Zeitverlauf von Sprungantworten wird in Matlab mit der Funktion step() ermit-
telt und grafisch dargestellt. Der Funktion muss ein LTI-System ubergeben werden.
Zusatzlich kann eine Simulationsdauer mit step(sys,t) festgelegt werden. Der Funk-
tion konnen auch mehrere LTI-Systeme als Eingabeparameter ubergeben werden,
deren Sprungantworten dann alle im selben Koordinatensystem abgebildet werden.
Der Befehl [y,t]=step(sys) ubergibt dem Vektor y Werte fur die Sprungantwort zu
den Zeitpunkten die im Vektor t abgelegt werden.
• Ermittlung von Impulsantworten
Impulsantworten werden in Matlab sehr ahnlich ermittelt und dargestellt. Statt des
Befehls step() muss der Befehl impulse() verwendet werden.
• Ermittlung von Antworten auf beliebige Eingangssignale
Mit Hilfe der Funktion lsim() konnen beliebige Signale an den Eingang des LTI-
Systems gelegt werden. Die Antwort des Systems wird geplottet. Der Funktion mus-
sen folgende Parameter ubergeben werden:
>> lsim(sys,u,t)
Dabei sind durch den Vektor t beliebige Zeitpunkte festgelegt, an denen das Ein-
gangssignal die in dem Vektor u befindlichen Werte annimmt.
4.3 Betrachtung im Frequenzbereich
Fur die Analyse und Synthese von LTI-Systemen stehen im Frequenzbereich funf Funk-
tionen zur Verfugung:
• nyquist(sys,w)
An die Funktion konnen ein beziehungsweise mehrere LTI-Systeme ubergeben wer-
den. Es wird die Nyquist-Ortskurve berechnet und geplottet. Zusatzlich kann der
Parameter w ubergeben werden. Dieser Parameter legt die Grenzen des Frequenzbe-
reichs fest, uber die geplottet werden soll: w=[wmin,wmax]. Zusatzlich konnen Real-
und Imaginarteil des LTI-Systems zu bestimmten Frequenzpunkten ausgegeben wer-
den:
26 Matlab in der Regelungstechnik
[re,im,w]=nyquist(sys).
• freqresp(sys,w)
Zuruckgegeben werden die Werte des Frequenzgangs des LTI-Systems an den Fre-
quenzpunkten, die im Vektor w festgelegt wurden.
• frsp=evalfr(sys,f)
Zuruckgegeben wird der Wert des Frequenzgangs am Frequenzpunkt f.
• bode(sys,w)
Die Funktion bode() ist analog zur Funktion nyquist() aufgebaut. Dargestellt wird
das Bode-Diagramm des ubergebenen Systems sys. Auch hier konnen Amplitude
und Phase zu bestimmten Frequenzpunkten ausgegeben werden:
[mag,phase,w]=bode(sys).
• [Gm,Pm,Wcg,Wcp]=margin(sys)
Diese Funktion gibt Amplitudenreserve Gm und Phasenreserve Pm des LTI-Systems
sys sowie die zugehorigen Durchtrittsfrequenzen Wcg und Wcp aus.
Weiterhin soll kurz die Funktion ltiview(plottype,sys) erwahnt werden. Der Funktion kon-
nen als Plottyp unter anderem ’step’, ’impulse’, ’bode’ und ’nyquist’ ubergeben werden,
sodass vielfaltige Betrachtungen im Zeit- und Frequenzbereich vorgenommen werden kon-
nen.
Eine außerst praktische Moglichkeit zur Darstellung und Analyse von LTI-Systemen bietet
der LTI Viewer. Dieser kann mit dem Befehl ltiview aufgerufen werden:
Abbildung 4.1: LTI Viewer
4.4 Wurzelortskurven 27
Uber File>Import konnen beliebige Systeme in den LTI Viewer importiert werden. Unter
Edit>Plot Configurations kann eine umfassende Analyse der Systeme im Frequenz- und
Zeitbereich erfolgen.
Außerdem bietet Matlab zahlreiche Hilfestellungen bei der Analyse von LTI-Systemen
im Zeit- und Frequenzbereich. Unter control findet sich in der Matlab-Hilfe eine genaue
Auflistung aller wichtigen Befehle im Zusammenhang mit LTI-Systemen. Genauere Infor-
mationen zu einem bestimmten Modelltyp (tf, zpk,...) findet sich bei Eingabe des Befehls
ltimodels(’model’) beziehungsweise bei Eingabe des Befehls ltiprops model.
4.4 Wurzelortskurven
Soll in Matlab die Wurzelortskurve eines LTI-Systems berechnet und dargestellt werden,
kann dies mit Hilfe des Befehls rlocus(sys) vorgenommen werden. Die Wurzelortskurve
(WOK) erscheint in einem figure. Bei Klick mit der linken Maustaste erscheint ein Cursor,
mit dem die WOK beliebig abgefahren werden kann. Zu jedem beliebigen Punkt konnen
Verstarkung, Frequenz und aktuelle Position abgelesen werden.
Als Beispiel wurde an dieser Stelle die Wurzelortskurve eines Systems mit einer Nullstelle
bei -1 und drei Polstellen bei -1, -2, und -3 dargestellt:
Abbildung 4.2: Beispiel 4
28 Matlab in der Regelungstechnik
4.5 SISO-Tool
Das SISO Design Tool dient zur Synthese komplexer Regelstrukturen mit Hilfe von Matlab.
Aufgerufen wird das Programm durch Eingabe von sisotool. Dabei stehen vier verschiedene
Methoden zur Synthese zur Verfugung: das Wurzelortskurvenverfahren, der Entwurf im
Frequenzbereich, der Entwurf mit Hilfe des Nichols-Diagramms und eine automatische
Regeleinstellung. Nach Eingabe des Befehls sisotool offnen sich zwei Fenster: der Control
and Estimation Tools Manager und das SISO Design for SISO Task (siehe Abbildungen
4.3 und 4.4).
Abbildung 4.3: Control and Estimation Tools Manager
Der Control and Estimation Tools Manager zeigt die aktuelle Regelkreisstruktur samt
der zugehorigen LTI-Objekte auf: der Strecke G, dem Regler C, der Ruckfuhrung H und
des Vorfilters F. Diese LTI-Objekte mussen sich im Arbeitsspeicher befinden und konnen
auf zwei verschiedene Moglichkeiten an das SISO-Tool ubergeben werden. Zunachst kann
die Ubergabe von Regler und Strecke direkt beim Aufruf des SISO-Tools mit Hilfe des
Befehls sisotool(G,C) erfolgen. Des Weiteren kann die Ubergabe jedoch auch im SISO-
Tool direkt stattfinden. Uber den Button System Data (rot markiert in Abbildung 6.2)
lasst sich ein neues Fenster offnen. Hier kann mittels Browse fur eines der anzugeben-
den LTI-Modelle ein LTI-Objekt aus dem Workspace ausgewahlt werden. Allgemein dient
der Bereich Architecture im Control and Estimation Tools Manager zur Einstellung der
4.5 SISO-Tool 29
Abbildung 4.4: SISO Design for SISO Design Task
30 Matlab in der Regelungstechnik
Regelkreisstruktur, im Bereich Graphical Tuning kann die Reglereinstellung grafisch vor-
genommen werden. Mit Hilfe des Compensator Editor kann eine Einstellung des Reglers
erfolgen. Per Rechtsklick im Fenster Dynamics konnen neue Pole und Nullstellen zur Uber-
tragungsfunktion des Reglers hinzugefugt werden. Zusatzlich stehen die Funktion Analysis
Plot zur Wahl der Regelkreis- und Eingangsgroßen und das Automated Tuning, sprich die
automatische Reglersynthese, zur Verfugung. Innerhalb von Architecture konnen Regel-
struktur und offener Regelkreis variiert werden, mit Hilfe von Sample Time Conversion
lasst sich die Abtastperiode verandern.
Im SISO Design for SISO Design Task werden zu dem parametrisierten Regelkreis die
Wurzelortskurve sowie das Bode-Diagramme fur offenen und geschlossenen Regelkreis dar-
gestellt.
Kapitel 5
Einfuhrung in Simulink
Simulink ist ein Simulationstool innerhalb von Matlab. Systemmodelle konnen signalfluss-
bildahnlich in Blockform aufgebaut und simuliert werden. In der Bibliothek sind bereits
viele Blocke vordefiniert, die dann ubernommen und parametrisiert werden konnen. Simu-
link wird z.B. durch Eingabe des Befehls simulink in Matlab gestartet. Zunachst offnet
sich der Simulink Library Browser:
Abbildung 5.1: Simulink Library Browser
Es wird ersichtlich, dass sich die Bibliothek in zahlreiche logische Unterbibliotheken unter-
teilt. Unter File>New offnet sich ein neues Simulationsfenster. Blocke aus der Bibliothek
32 Einfuhrung in Simulink
konnen einfach ins Simulationsfenster hinubergezogen werden. Mit Hilfe der Shift-Taste
lassen sich auch mehrere Blocke gleichzeitig verschieben. Das Verbinden zweier Blocke
erfolgt mit gedruckter linker Maustaste und Nachfahren des gewunschten Verbindungs-
weges.Signalabzweigungen lassen sich erstellen, indem man von einem Signalzweig ausge-
hend mit gehaltener rechter Maustaste den Signalweg nachfahrt. Durch Verschieben eines
Blocks mit gehaltener rechter Maustaste wird dieser dupliziert. Mittels Format>Flip Block
beziehungsweise Format>Rotate Block lassen sich Blocke drehen bzw. spiegeln. Die Blo-
cke konnen nun per Doppelklick auf den jeweiligen Block parametrisiert werden. Je nach
Block sind dabei unterschiedliche Parameter einstellbar. Neben Zahlenwerten konnen da-
bei fur Parameter auch Variablen verwendet werden, welche zuvor in Matlab definiert
wurden und sich also im workspace befinden. Hilfe zur Parametrisierung kann per Klick
auf help angefordert werden. Testsignale finden sich ebenfalls in der Bibliothek unter
Simulink>Sources. Um die Simulationsergebnisse anschauen beziehungsweise auswerten
zu konnen, stehen zahlreiche Blocke im Ordner Simulink>Sinks zur Verfugung. Der am
haufigsten verwendete Block in diesem Zusammenhang ist Scope. Hier werden die verbun-
denen Signale uber der Zeit aufgezeichnet und bei Doppelklick auf das Scope in einem
neuen Fenster dargestellt (s. Abb. 5.3). Mit den Blocken To File und To Workspace kon-
nen die simulierten Daten in eine Datei beziehungsweise in den Workspace ubernommen
werden und stehen somit zur weiteren Verarbeitung zur Verfugung. Die Simulationsdauer
kann im Simulationsfenster oben rechts beliebig einstellen. Die Simulation wird per Klick
auf die Play-Taste gestartet. Außerdem kann als Simulationsdauer auch inf fur unendlich
eingegeben werden, wobei die Simulationin diesem Fall erst bei Klick auf die Stopp-Taste
endet. Allgemein konnen die Simulationsparameter uber Simulation>Configuration Para-
meters... eingesehen und verandert werden.
Abbildung 5.2 zeigt als Beispiel den Aufbau einer Standard-Regelkreisstruktur in Simu-
link.
Bei komplexeren Modellen kann es sinnvoll sein, Untersysteme einzufuhren. Diese Unter-
systeme finden sich im Ordner Simulink>Ports&Subsystems>Subsystem. Der Block lasst
sich wie gewohnt ins Simulationsfenster ziehen. Per Doppelklick kann der Block gefullt
werden. Damit das Untersystem mit dem Gesamtsystem kommunizieren kann, mussen
sogenannte in- und out-Blocke verwendet werden. Diese finden sich im selben Ordner wie
die Untersysteme.
Wird Hilfe bei der Anwendung von Simulink benotigt, kann diese unter dem Menu-
punkt Help>Using Simulink aufgerufen werden. Anwendungsbeispiele finden sich unter
Help>Demos.
33
Abbildung 5.2: Beispiel 5.1
Abbildung 5.3: Beispiel 5.2
Quellen
[1] http://www.mathworks.com/products/matlab/
Internetseite des Herstellers
[2] http://www.gomatlab.de/
deutschsprachiges Forum rund um Matlab, Hilfe bei Problemen mit der Software
[3] http://www.irt.rwth-aachen.de/fileadmin/IRT/Download/Lehre/De/IRTMatlab.pdf
Kurzeinfuhrung in Matlab und Simulink (RWTH Aachen)
[4] http://techmath.uibk.ac.at/fetz/lehre/matlab/matlab5.pdf
Einfuhrung zu Cell-Arrays
[5] http://jones.math.unibas.ch/ grote/institut/vorlesungen/10fs/PraktikumII/Material/
matlab/MatlabTutorial.pdf
Kurzeinfuhrung in Matlab (Universitat Basel)
[6] https://rzunika.asknet.de/cgi-bin/home
Softwareshop des KIT
[7] Helmut Bode - Systeme der Regelungstechnik mit MATLAB und Simulink : Analyse
und Simulation
[8] Anne Angermann et.al. - MATLAB-Simulink-Stateflow: Grundlagen, Toolboxen, Bei-
spiele
[9] Holger Lutz, Wolfgang Wendt - Taschenbuch der Regelungstechnik: mit MATLAB
und Simulink