37
Kompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011 Dipl.-Ing. Gunter Diehm www.irs.kit.edu

Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

  • Upload
    vuanh

  • View
    241

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

Kompendium zu

MATLAB /

SIMULINK

Begleitmaterial

Systemdynamik und Regelungstechnik

zur Vorlesung

Sommersemester 2011

Dipl.-Ing. Gunter Diehm

www.irs.kit.edu

Page 2: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011
Page 3: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 4: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011
Page 5: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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-

Page 6: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.“

Page 7: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 8: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 9: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 10: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 11: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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 π

Page 12: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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:

Page 13: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 14: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 15: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 16: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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]

Page 17: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 18: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011
Page 19: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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)

Page 20: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 21: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 22: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 23: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 24: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 25: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 26: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 27: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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:

Page 28: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 29: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 30: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 31: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

4.5 SISO-Tool 29

Abbildung 4.4: SISO Design for SISO Design Task

Page 32: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 33: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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

Page 34: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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.

Page 35: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

33

Abbildung 5.2: Beispiel 5.1

Abbildung 5.3: Beispiel 5.2

Page 36: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011
Page 37: Kompendium zu MATLAB SIMULINK - irs.kit. · PDF fileKompendium zu MATLAB / SIMULINK Begleitmaterial Systemdynamik und Regelungstechnik zur Vorlesung Sommersemester 2011

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