Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes...

25
Einführung in MATLAB Rebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc / 20. November 2007

Transcript of Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes...

Page 1: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Einführung in MATLAB     

  

Rebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann   

   

      

Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc / 20. November 2007 

Page 2: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Inhaltsverzeichnis

4

Inhaltsverzeichnis

1 Grundelemente und -funktionen von Matlab ......................................................... 6

1.1 Die Benutzeroberfläche ................................................................................................. 6

1.2 Schnelle Hilfe ................................................................................................................. 7

1.3 Hilfe, Kommentare, Befehlseingabe. .............................................................................. 7

1.4 Variablen ........................................................................................................................ 7

1.5 Workspace ..................................................................................................................... 8

1.6 Speichern und öffnen von Dateien ................................................................................. 8

1.7 Aus Excel Dateien lesen ................................................................................................ 8

2 Skalare, Matrizen und Vektoren ........................................................................... 10

2.1 Indizes ......................................................................................................................... 10

2.2 Löschen von Zeilen und Spalten einer Matrix .............................................................. 12

3 Einfache Vektor und Matrix Operationen ............................................................ 13

3.1 Matrixoperationen ........................................................................................................ 13

3.2 Vektorfunktionen .......................................................................................................... 14

3.3 Skalare Funktionen ...................................................................................................... 14

3.4 Vergleichsoperationen ................................................................................................. 15

3.5 Logische Operationen .................................................................................................. 15

4 2D-Grafik ............................................................................................................... 16

4.1 Erstellen eines Plots .................................................................................................... 16

4.2 Sprungantworten von Übertragungsgliedern der Systemtechnik ................................. 20

4.3 Freqenzgänge von Übertragungsgliedern .................................................................... 21

4.4 Bildfenster .................................................................................................................... 22

4.5 Graphiken erweitern ..................................................................................................... 18

4.6 Achsenskalierung ......................................................................................................... 19

5 Programmieren von M-Files ................................................................................. 23

5.1 Kontrollstrukturen ......................................................................................................... 23 5.1.1 FOR Loop .................................................................................................................... 23 5.1.2 WHILE Loop ................................................................................................................. 24

Page 3: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Inhaltsverzeichnis

5

5.1.3 IF Anweisung ................................................................................................................ 24 5.1.4 BREAK Anweisung ....................................................................................................... 24 5.1.5 SWITCH ....................................................................................................................... 25 5.1.6 PAUSE ......................................................................................................................... 25

6 Hilfe und die Onlinedokumentation ..................................................................... 26

6.1 Hilfreiche Funktionen .................................................................................................... 26

Page 4: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

1 Grundelemente und -funktionen von Matlab

1.1 Die Benutzeroberfläche

Nach dem Start von Matlab wird eine dreigeteilte Benutzeroberflä-che angezeigt: • In dem großen, rechts stehenden Fenster (Command Window) wer-den die eigentlichen Berechnungen ausgeführt. Hier können die Mat-lab-Befehle über eine Kommandozeile eingegeben und mit <return> ausgewertet werden. • Links oben steht die Workspace-Anzeige, in der alle aktuell gespei-cherten Variablen dargestellt sind. • In der Command-History (links unten) werden alle bisher verwen-detet Befehle festgehalten. In der Eingabezeile rechts oben in der Benutzeroberfläche ist der Pfad des aktuell gewünschten Arbeitsverzeichnisses einzutragen (bzw. auszuwählen).

6

Page 5: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

7

1.2 Schnelle Hilfe

Über die Eingabe „help Befehlsname“ erhält man direkt im Com-mand Window Informationen zu einem Matlab-Befehl. Außerdem gibt es natürlich auch die übliche Hilfefunktion über das Auswahl-menü. Hier findet man häufig ausführlichere Informationen.

1.3 Hilfe, Kommentare, Befehlseingabe.

• % leitet einen Kommentar ein (gekennzeichnet durch grüne Schrift) • ein Strichpunkt ; am Ende der Zeile verhindert die Ausgabe des Ergebnisses, ohne ; wird das Ergebnis ausgegeben. • mit Hoch/Runter geht man durch die Befehle in der History • Wichtig: Nachkommastellen werden durch . nicht durch , gekenn-zeichnet!! • Matlab unterscheidet zwischen Groß- und Kleinschreibung!! • Lange Befehlszeilen: Sollte ein Ausdruck nicht in eine Zeile passen, so verwenden Sie drei Punkte ... um zu kennzeichnen, dass der Ausdruck in der nächsten Zeile fortgeführt wird. Beispiel: >> s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12; Leerzeichen vor und nach =, + und - Zeichen sind nicht nötig, aber erlaubt. Sie erhöhen manchmal die Lesbarkeit.

1.4 Variablen

Variablen müssen normalerweise nicht gesondert deklariert werden. Sie werden durch eine Wertzuweisung erzeugt und sind automatisch vom Typ des ihnen zugewiesenen Wertes. z.B.: >> a = 5 a = 5 oder: >> b = 'Test' b = Test

Page 6: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

8

Selbstverständlich kann der Wert einer Variablen auch einer anderen Variablen übergeben werden: >> a = b a = Test Falls kein Variablenname angegeben wird, wird das Ergebnis der Berechnung in die Variable ans geschrieben.

1.5 Workspace

Variablen werden im Workspace (Stack) gehalten. • Lebensdauer der Variablen: bis zum Ende der MATLAB-Sitzung >> clear a % löscht die Variable a >> clear % löscht alle Variablen im Workspace

1.6 Speichern und öffnen von Dateien

save speichert den gesamten Arbeitsbereich unter matlab.mat im aktuellen Verzeichnis. save fname speichert den gesamten Arbeitsbereich unter fname.mat im aktuellen Verzeichnis. save fname A b speichert nur die Variablen A und b unter fname.mat im aktuellen Verzeichnis. load lädt alle Variablen aus matlab.mat in den Arbeitsbereich. load fname lädt alle Variablen aus fname.mat in den Arbeitsbereich. load A.xyz lädt die ASCII-Tabelle A.xyz in die Variable A. Open Öffnet die Datei (z.B. m-file)

1.7 Aus Excel Dateien lesen

>> daten = xlsread(‘Dateiname.xls‘, -1); Nach Eingabe dieses Befehls öffnet sich die ausgewählte Excel Da-tei und man kann die Elemente markieren, welche importiert werden sollen !! es können nur zusammenhängende Daten ausgewählt werden!!

Page 7: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

>> xlswrite(‘Dateiname.xls‘, daten); Schreibt den Inhalt der Variablen in die Excel-Datei (ist diese nicht vorhanden wird sie erzeugt)

9

Page 8: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

2 Skalare, Matrizen und Vektoren

In MATLAB werden Skalare als 1x1 Matrix und Vektoren als nx1 Matrix (Spaltenvektor) bzw. 1xn Matrix (Zeilenvektor) aufgefasst. >> A = [1 2; 3 4]; erzeugt zeilenweise eine 2 × 2 Matrix:

A = 1 23 4⎡ ⎤⎢ ⎥⎣ ⎦

>> A = zeros(3,4); erzeugt eine 3× 4 Matrix deren Elemente

Null sind. >> A = ones(3,4); erzeugt eine 3 × 4 Matrix deren Elemente

Eins sind. >> A = eye(4); erzeugt eine 4 × 4 Einheitsmatrix. >> A = rand(5,1); erzeugt eine 5×1 Zufallsmatrix

(¨aquivalent zu einem Zufalls-Spaltenvektor der Länge 5).

>> v = [1 2 3 4]; erzeugt einen Zeilenvektor: v = (1 2 3 4) >> v = [1;2;3;4]; oder >> v = [1 2 3 4]’; erzeugt einen Spaltenvektor:

v =

1234

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

>> x = 1:10; erzeugt einen Vektor mit den Elementen

von 1 bis 10: x = (1 2 3 4 5 6 7 8 9 10) >> x = 1:0.2:10; erzeugt einen Vektor mit den Elementen von 1 bis 10 im Abstand 0.2: (1.0 1.2 1.4 . . . 9.8 10.0)

2.1 Indizes

Indizes zu Vektor- oder Matrixelementen beginnen immer bei 1. Der erste Index bei Matrizen ist der Zeilenindex, der zweite der Spal-tenindex (wie im mathematischen Sinn). Auf die einzelnen Elemente der Matrizen kann folgendermaßen zu-gegriffen werden: >> A(3,1) → Element der 3. Zeile und der 1. Spalte von A.

10

Page 9: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Man kann auch komplette Zeilen oder Spalten als Vektoren heraus-greifen. Hier zum Beispiel die zweite Zeile von A: >> A(2,:) Beispiel die erste Spalte von A: >> A(:,1) >> A(1:2:4,2) entspricht den Elementen 1 bis 4 der zweiten Spalte der Matrix A, wobei jeweils ein Element übersprungen wird, also der Vektor beste-hend aus:

12

32

aa⎛ ⎞⎜ ⎟⎝ ⎠

>> A(3:7,2:4) entspricht der Untermatrix mit linker oberer Ecke (3,2) und rechter unterer Ecke (7,4). >> A(:) % Umwandlung einer Matrix in einen Vektor Wandelt die Matrix A in einen Vektor um, indem die Spalten anei-nander gehängt werden Die „Größe“ einer Matrix (also die Zeilen und Spaltenzahl) erhält man mit dem Befehl size(): >> size(A) >> size(A,1) liefert die Anzahl der Zeilen, >> size(A,2) liefert die Anzahl der Spalten. Die „Länge“ eines Vektors kann entsprechend über den Befehl length() ermittelt werden: >> length(y) >> who listet alle Variablen in der Arbeitsumgebung (Workspace) >> whos listet Variablen mit Informationen über Größe, Typ, etc.

11

Page 10: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

12

Beispiele: >> A = [1 2 3; 4 5 6;7 8 9]; A = 1 2 3 4 5 6 7 8 9 % Leerzeichen bedeutet neues Element der Zeile % Semikolon bedeutet neue Spalte >> x=[-1.3 sqrt(3) 7/5*6] x = -1.3000 1.7321 8.4000 >> r = [10 11 12] r = 10 11 12 >> B = [A; r] B = 1 2 3 4 5 6 7 8 9 10 11 12 Matrizen können auch aus verschiedenen Elementen (auch Matrizen und Vektoren) zusammengesetzt werden.

2.2 Löschen von Zeilen und Spalten einer Matrix

Zeilen und Spalten einer Matrix können gelöscht werden, indem man diesen einfach ein leeres Paar eckiger Klammern zuweisen. >> X = A; Löschen der 2. Spalte von X durch >> X(:, 2) = [ ] X = 1 3 4 6 7 9

Page 11: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

13

3 Einfache Vektor und Matrix Operationen

In Ausdrücken gelten die geläufigen arithmetischen Operatoren und Prioritätsregeln (Punkt- vor Strichrechnung usw.), die durch Klam-mern abgeändert werden können. Arithmetische Operatoren sind: + Addition - Subtraktion * Multiplikation / Division ^ Potenzierung ' Transposition (mit Konjugation) () Klammern zur Festlegung der Auswertungsreihenfolge

3.1 Matrixoperationen

+ - * / \ ^ ‘ beziehen sich auf die komplette Matrix bzw. Vektor Beispiel: >> A=[1 2 3; 4 5 6; 7 8 9]; A = 1 2 3 4 5 6 7 8 9 >> B = A' % Transposition B = 1 4 7 2 5 8 3 6 9 >> C = A+B C = 2 6 10 6 10 14 10 14 18

Page 12: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

14

3.2 Vektorfunktionen

Funktionen, die auf Vektoren operieren. Falls sie auf Matrizen angewendet werden, wird jede Spalte als Vektorargument genom-men, das Ergebnis ist ein Zeilenvektor. Die wichtigsten Funktionen sind: max: Maximalwert min: Minimalwert median: Median der Komponenten mean: Mittelwert std: Standardabweichungen aus den Komponenten sum: Summe prod: Produkt der Komponenten sort: Sortieren in aufsteigender Reihenfolge Die aufgelisteten Funktionen sind also dazu geeignet, in Vektor- bzw. Matrixform gelistete Daten zu analysieren. Beispiel: >> x= rand(1,6) x = 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 >> mean(x) ans = 0.5818 >> std(x) % Standardabweichung ans = 0.3776

3.3 Skalare Funktionen

Skalare Funktionen sind Funktionen, die auf einzelne skalare Variab-le wirken. Falls ein Vektor oder eine Matrix als Argument vor-kommt, wirkt die Funktion auf jedes einzelne Element des Vektors oder der Matrix. sin, cos, tan Sinus, Kosinus, Tangens asin, acos, atan Arcsin, Arccos und Arctangens sinh, cosh, tanh hyperbolische Funktionen und asinh, acosh, atanh deren Umkehrfunktionen

Page 13: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

15

sqrt, exp, log, log10 Wurzel, Exponentialfunktion, nat.bzw. dekadischer Logarithmus abs, real, imag, conj Absolutwert, Real- bzw. Imaginärteil,

konjugiert komplexe einer Zahl

3.4 Vergleichsoperationen

In MATLAB gibt es 6 Vergleichsoperatoren: < kleiner als <= kleiner oder gleich > größer als >= größer oder gleich == gleich ~= ungleich Die Operatoren können Matrizen, Vektoren oder Skalare sein bzw. entsprechend zugelassene Ausdrücke davon. Der Vergleich findet elementweise statt. Das Ergebnis ist eine Matrix, ein Vektor oder Skalar mit Elementen 0 oder 1, je nach dem, ob das Ergebnis falsch oder wahr ist. Bei Vergleichen einer Matrix oder eines Vektors mit einem Skalar, wird jedes Element mit dem Skalar verglichen.

3.5 Logische Operationen

Die logischen Operationen in MATLAB sind && Logical AND || Logical OR & Logical AND for arrays | Logical OR for arrays ~ Logical NOT

Page 14: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

4 2D-Grafik

MATLAB hat besondere Fähigkeiten, Vektoren und Matrizen als Graphen darzustellen, die man auch beschriften und drucken kann. Dieser Abschnitt zeigt eine der wichtigsten graphischen Funktionen und Beispiele für typische Anwendungen. Um ein neues Fenster zu öffnen und es zur aktuellen Graphikausgabe zu verwenden, geben Sie figure ein. Um ein vorhandenes Bildfenster als aktuelle Abbildung zu definieren, geben Sie figure(n)ein, wobei n die Nummer in der Titelleiste des Bildfenster ist. Die Ausgabe der darauf folgenden graphischen Kommandos erfolgt in diesem Fenster.

4.1 Erstellen eines Plots

Die Funktion plot hat verschiedene Formen. Diese hängen von den eingegebenen Argumenten ab. Wenn y ein Vektor ist, erzeugt plot(y) einen stückweisen linearen Graphen der Elemente von y über dem Index der Elemente von y. Falls Sie zwei Vektoren x,y als Argumen-te angeben, erzeugt plot(x,y) einen Graphen aus y-Werten über der x-Achse. Um die Werte der Sinusfunktion von 0 bis 2p darzustellen, geben Sie z.B. ein >> t = 0:pi/100:2*pi; >> y = sin(t); >> plot(t,y)

Mehrere xy-Paare in einem einzigen Aufruf von plot erzeugen gleich mehrere Graphen. MATLAB verwendet automatisch eine vordefi-nierte (aber auch vom Benutzer änderbare) Farbliste, um die Unter-scheidung zwischen den verschiedenen Graphen zu erleichtern.

16

Page 15: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Beispiel: die Darstellung von 3 verschobenen Sinuskurven, jeder Graph erhält eine andere Farbe: >> t = 0:pi/100:2*pi; >> y = sin(t); >> y2 = sin(t-.25); >> y3 = sin(t-.5); >> plot(t,y,t,y2,t,y3)

Es ist möglich Farben, Linien und Plotsymbole festzulegen: >> plot(t,y, ‘color_style_marker’) color_style_marker ist eine Funktion mit ein, zwei oder drei Argu-menten. Die Übergabeargumente sind Farbe, Linientyp und Plot-symbol: • als Farben kann man c, m, y, r, g, b, w oder k angeben, gleichbe-deutend mit cyan (hellblau), magenta (violett), yellow (gelb), red (rot), green (gruen), blue (blau), white (weiß), und black (schwarz). • Linientypen sind durchgezogen (-), gestrichelt (--), gepunktet (:), gestrichpunktet(.-) und außerdem none für keine Linie. Die am häufigsten verwendeten Plotsymbole sind +, o, * und x; es gibt aber eine ganze Reihe weiterer (siehe help plot). Der Beispielaufruf: >> plot (t,y, 'r--+')

17

Page 16: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

erzeugt einen roten gestrichelten Graphen und markiert jeden Daten-punkt mit einem Pluszeichen als Plotsymbol. Wenn das Plotsymbol festgelegt wird, aber kein Linientyp, dann zeichnet MATLAB nur die Datenpunkte.

4.2 Graphiken erweitern

Das hold-Kommando ermöglicht es, Teile zu einer bereits vorhande-nen Graphik hinzuzufügen. Bei der Eingabe von >> hold on fügt MATLAB die Bild-Daten zur aktuellen Graphik hinzu, ohne bereits vorhandene Bestandteile dieser Graphik zu löschen Weitere Plotkommandos sind: loglog erzeugt xy-Plots mit logarithmischer

x- und y-Achse title (‘Überschrift‘) versieht den Plot mit einem Titel xlabel x-Achenbeschriftung ylabel y-Achsenbeschriftung Das Argument dieser Kommandos besteht aus einem Text in Hoch-komma legend fügt eine Legende in die Grafik ein text Fügt einen Text in den Plot an beliebiger Stelle ein. text(x,y,‘text‘) (x,y) sind die Koordinaten im Diagramm grid erzeugt ein Gitternetz;

dieses Kommando hat kein Argument

18

Page 17: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

19

4.3 Achsenskalierung

axis([xmin xmax ymin ymax zmin zmax])skaliert die Achsen axis(‘auto‘) automatische Skalierung axis(axis) „friert“ die aktuelle Skalierung ein axis(‘ij‘) skaliert im Matrixkoordinatensystem axis(‘xy‘) skaliert nach Matrixwerten axis(‘square‘) Plotbereich ist quadratisch axis(‘equal‘) Skalenfaktoren und Abstand der Skalenstriche sind gleich axis(‘off‘) schaltet die Achsen aus axis(‘on‘) schaltet die Achsen an

Page 18: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

5 Systemtechnik

5.1 Sprungantworten von Übertragungsgliedern der Systemtechnik

Es besteht eine einfache Möglichkeit, um Sprungantworten von Übertragungsgliedern aus der Systemtechnik zu berechen. Dafür wird zunächst die Übertragungsfunktion F(s) (engl.: Transfer functi-on: tf) in folgender Form eingegeben. Als Beispiel dient ein P-T1-Glied: >> F1 = tf([0 2],[0.5 1])

Wobei ‚tf’ für die Erzeugung der ‚Transfer function’ steht. In der ersten eckigen Klammer steht das Zählerpolynom von s. Es beginnt mit der höchsten Potenz von s, also hier s1 und dann folgt der Koeffi-zient von s0. Die Laplace-Variable s muss nicht geschrieben werden. In der zweiten Klammer folgt das Nennerpolynom in gleicher Weise. Es können auch Polynome mit höherer Ordnung eingegeben werden. Die Koeffizienten in den Klammern werden durch Leerzeichen ge-trennt. Mit dem Befehl >> step(F1) wird die folgende Sprungantwort erzeugt, wobei ein Raster (Grid) und Cursor auf Funktionswerte (siehe rechteckige Rahmen mit quad-ratischem Datenpunkt) über die rechte Maustaste und die Menüleiste ein- und ausgeblendet werden können. Die plot-Funktion, step-Funktion oder weiter unten gezeigte bode-Funktion öffnet automatisch ein neues Bildfenster, falls noch kein Bildfenster vorhanden ist. Falls ein Bildfenster existiert, verwendet Plot dieses Fenster als Standard. Um ein neues Fenster zu öffnen und es zur aktuellen Graphikausgabe zu verwenden, geben Sie figure ein. Um ein vorhandenes Bildfenster als aktuelle Abbildung zu definie-ren, geben Sie figure(n)ein, wobei n die Nummer in der Titelleiste des Bildfenster ist. Die Ausgabe der darauf folgenden graphischen Kommandos erfolgt in diesem Fenster.

20

Page 19: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

5.2 Freqenzgänge von Übertragungsgliedern

Für das P-T1-Beispiel aus 5.1 kann ebenso einfach der Freqenzgang im Bode-Diagramm mit dem Befehl >> bode(F1) berechnet werden. Das Ergebnis ist im Bild unten gezeigt. Im Bode-Diagramm werden Amplitudengang 20log|F1(jω)| in dB (oben: Magnitude (dB)) und Phasengang φ(jω) (unten: Phase (deg) in grad) in separaten Koordinatensystemen dargestellt. Die Achse für die Kreisfrequenz ω ist für beide Koordinatensysteme logarithmisch geteilt.

21

Page 20: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

Komplexere Übertragungsfunktionen können einfach berechnet wer-den. Z.B. die Reihenschaltung aus drei bekannten P-T1-Gliedern von Typ F1 zu einem P-T3-Glied im Command Window von MATLAB: >> F3=F1*F1*F1 Transfer function: 8 -------------------------------- 0.125 s^3 + 0.75 s^2 + 1.5 s + 1 Hiefür kann jetzt in der bekannte Weise (siehe weiter oben) die Sprungantwort oder der Frequenzgang berechnet und grafisch in einem Bild ausgegeben werden.

5.3 Bildfenster

Die plot-, step- oder bode-Funktion öffnet automatisch ein neues Bildfenster, falls noch kein Bildfenster vorhanden ist. Falls ein Bild-fenster existiert, verwendet Plot dieses Fenster als Standard.

22

Page 21: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

23

6 Programmieren von M-Files

Es gibt zwei Arten von M-Files, Scriptfiles und Funktionenfiles: Scriptfiles werden einfach durchlaufen und die darin enthaltenen Befehle so ausgeführt (interpretiert) wie wenn sie am Bildschirm eingetippt worden wären. Sie haben keine Eingabe oder Ausgabepa-rameter. Scriptfiles werden benutzt, wenn man lange Befehlsfolgen z.B. zum Definieren von großen Matrizen hat oder wenn man oft gemachte Befehlsfolgen nicht immer wieder eintippen will. Der Ge-brauch von Scriptfiles ermöglicht es, Eingaben im Wesentlichen mit dem Editor anstatt im MATLAB-Befehlsfenster zu machen. Funktionen-Files erkennt man daran, dass die erste Zeile des M-Files das Wort `function' enthält. Funktionen sind M-Files mit Eingabe- und Ausgabeparameter. Der Name des M-Files und der Funktion sollten gleich sein. Funktionen arbeiten mit eigenem Speicherbe-reich, unabhängig vom Arbeitsspeicher, der vom MATLAB-Befehlsfenster sichtbar ist. Im File definierte Variablen sind lokal. Die Parameter werden by address übergeben. Lokale Variable wie Parameter gehen beim Rücksprung aus der Funktion verloren. z.B. function [x,y] = Test(n) ….. Neben dem Stichwort function erscheinen auf der ersten Zeile des Files die Ausgabeparameter (x, y) und die Eingabeparameter (n). MATLAB-Funktionen können mit einer variablen Anzahl von Para-metern aufgerufen werden.

6.1 Kontrollstrukturen

6.1.1 FOR Loop

Die For Loop wird für eine festgelegte Anzahl an Iterationen durch-laufen. for var=expression statements end for i=1:n A(i) = 1; end;

Page 22: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

24

6.1.2 WHILE Loop

Die WHILE Loop wird solange durchlaufen, wie alle Komponenten der expression ungleich Null bzw. wahr sind. Meistens liegen Ver-gleichsoperationen vor: while expression statements end WHILE while n>1 n=n-1 end;

6.1.3 IF Anweisung

Die IF Anweisung ist eine Abfrage und liefert die Aussage Wahr oder Falsch zurück if expression_1 statements else if expression_2 statements ... else statements end; if x > 10 Y = 1; else Y = 2; end;

6.1.4 BREAK Anweisung

Break bricht FOR- oder WHILE-Loop direct ab: while expression statements if expression_1 break end

Page 23: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

25

statements end

6.1.5 SWITCH

Switch verzweigt in Abhängigkeit vom Wert eines Ausdrucks switch expression case value1 statements case value2 statements …. otherwise statements end

6.1.6 PAUSE

PAUSE unterbricht die Abarbeitung eines M-Files bis der Benutzer eine Eingabetaste betätigt. pause(n) unterbricht die Funktion für n Sekunden

Page 24: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

26

7 Hilfe und die Onlinedokumentation

Es gibt viele verschiedene Möglichkeiten, an die Informationen von MATLAB - Funktionen heranzukommen: - Der help - Befehl - Das Hilfe-Fenster - Der MATLAB Help-Desk - Online Bezugsseiten - Link zu The MathWorks, Inc. Homepage im Internet Der help-Befehl Der help-Befehl ist der einfachste Weg um die Syntax und das Ver-halten einer speziellen Funktion festzustellen. Die Information wird direkt im Befehlsfenster angezeigt.

7.1 Hilfreiche Funktionen

clc Clear Command Window assignin Assign value to variable in specified workspace clear Remove items from workspace disp Display text or array fix ganzzahlige Division

Page 25: Einführung in MATLAB - fh-swf.de · PDF fileRebecca Tillmann, Michael Schneider, Johannes Brenig, Udo Reitz, Ulrich Lehmann Rel.: Matlab_Kurz_Till_Schn_Bre_Rei_Leh2.doc

27