Einfuhrung in MATLAB und SIMULINK¨ 1 MATLAB · PDF fileEinf¨uhrung in MATLAB und...

download Einfuhrung in MATLAB und SIMULINK¨ 1 MATLAB · PDF fileEinf¨uhrung in MATLAB und SIMULINK Seite 2 Durch Trennung der Elemente mit Kommata erh¨alt man Zeilenvektoren, bei Verwendung

If you can't read please download the document

Transcript of Einfuhrung in MATLAB und SIMULINK¨ 1 MATLAB · PDF fileEinf¨uhrung in MATLAB und...

  • Institut fur Prozess- und VerfahrenstechnikFachgebiet Mess- und Regelungstechnik

    Prof. Dr.-Ing. R. KingSeite 1

    Einfuhrung in MATLAB und SIMULINK

    (7. Dezember 2007)

    MATLAB und der graphische Aufsatz SIMULINK sind skriptbasierende Rechenprogramme. D.h. derAnwender kommuniziert mit dem MATLAB-Interpreter uber Textbefehle, die Basic- oder C-Befehlenahnlich sind. Besonders machtig ist MATLAB dann, wenn die umfangreiche Bibliothek an vordefinier-ten Funktionen benutzt wird. Diese Einfuhrung soll helfen, einen schnellen Zugang zu MATLAB undSIMULINK zu finden und zu lernen, wie und wo man Hilfe findet.

    1 MATLAB

    Nach dem Start von MATLAB wird ein Kommandofenster geoffnet. Es erscheint die Eingabeauffor-derung (prompt) >>, an der man beliebige gultige mathematische Ausdrucke oder die Namen vonvordefinierten und selbsterstellten Funktionen eingeben kann.

    Bsp.: Eingabe zweier Skalare und Addition

    >> a=2

    a =

    2

    >> b=3;

    >> a+b

    ans =

    5

    Im obigen Beispiel werden zwei skalare Variablen a und b erzeugt und bekommen jeweils einen Wertzugewiesen. Anschlieend konnen mathematische Operationen wie Addition, Multiplikation usw. aus-gefuhrt werden. Durch Eingabe eines Semikolons am Ende eine Zeile, kann die Ausgabe auf demBildschirm unterdruckt werden.

    MATLAB kann sehr schnell arbeiten, wenn man wiederkehrende Berechnungen nicht in Schleifen (for,while), sondern durch Vektoren bzw. Matrizen ausfuhren lasst. Vektoren und Matrizen lassen sichgenauso einfach erzeugen wie Skalare, indem die einzelnen Elemente, durch Komma oder Semikolongetrennt, zwischen eckige Klammern geschrieben werden.

    Bsp.: Eingabe von Vektoren und Matrizen

    >> c=[1, 2, 3]

    c =

    1 2 3

    >> d=[1.1; 2.2; 3.3]

    d =

    1.1

    2.2

    3.3

    >> e=[1, 2, 3; 4, 5, 6; 7, 8, 9]

    e =

    1 2 3

    4 5 6

    7 8 9

  • Einfuhrung in MATLAB und SIMULINK Seite 2

    Durch Trennung der Elemente mit Kommata erhalt man Zeilenvektoren, bei Verwendung von Semiko-lons Spaltenvektoren. Einzelne Elemente eines Vektors oder einer Matrix lassen sich durch Verwendungvon Indizes anzeigen.

    Bsp.: Referenz auf Elemente

    >> c(2)

    ans =

    2

    >> c(2:3)

    ans =

    2 3

    >> c([1 3])

    ans =

    1 3

    >> e(2,3)

    ans =

    6

    Ein linearer Vektor, z.B. ein Zeitvektor, lasst sich mit folgender Anweisung, dem Kolon-Zeichen, sehreinfach in MATLAB definieren:

    Bsp.: Verwendung des Kolon-Zeichens

    >> t=0:2:10

    t =

    0 2 4 6 8 10

    Im obigen Beispiel wird ein Vektor t erzeugt. Das erste Element hat den Wert 0 (erste Angabe,vor dem Doppelpunkt), alle folgenden Elemente werden jeweils um die Schrittweite 2 (zweite Angabe)erhoht, bis der Endwert 10 (dritte Angabe) erreicht wird. In dieser Anweisung durfen nur reelle Zahlenverwendet werden.

    Eine wichtige MATLAB-Funktion ist der Befehl plot, mit sich graphische Darstellungen erzeugenlassen.

    Bsp.: Verwendung der Befehle plot und sin

    >> t=0:0.1:10;

    >> y=sin(t);

    >> plot(t,y)

    Es wird in diesem Beispiel ein Vektor t mit Werten von 0 bis 10 und einer Schrittweite von 0.1erzeugt. Die Bildschirmausgabe wird durch das Semikolon am Zeilenende unterdruckt. Die Anweisungy=sin(t) ruft die MATLAB-Funktion zur Berechnung der Sinusfunktion auf, die automatisch fur alleElemente des Vektors t ausgefuhrt wird. Das Ergebnis wird im Vektor y gespeichert. Der MATLAB-Befehl plot(t,y) bewirkt schlielich, dass ein Fenster geoffnet wird, in dem die berechnete Sinuskurveerscheint. Bei der Verwendung von plot mussen beide Vektoren die gleiche Anzahl an Elementenhaben!

  • Einfuhrung in MATLAB und SIMULINK Seite 3

    Ubung

    Versuchen Sie die aufgefuhrten MATLAB-Befehle zu verstehen, anzuwenden und zu sich merken.Benutzen Sie hierzu die Befehle help Funktionsname und helpdesk.

    size

    load und save

    clf, subplot, grid, axis und hold

    title, xlabel, ylabel, gtext und legend

    sprintf

    Haufig wiederkehrende Befehle konnen als Skript oder Funktion in einer Datei mit der Endung .mabgelegt werden. Es genugt dann, den Dateinamen ohne Endung bei der Eingabeaufforderung einzu-geben, um die Befehle auszufuhren. Zur Erstellung dieser Skripte kann mit dem Befehl edit ein Editorgeoffnet werden. Erstellen Sie zur Ubung ein Skript (kurve.m), das die folgenden Aktionen durchfuhrt:

    Die Funktion y(t) = 10t

    sin(2 t) soll fur t = 10 . . . 20 in ausreichender Auflosung dargestelltwerden. Achtung: Bei der elementeweisen Division oder Multiplikation von Vektoren muss derPunkt-Operator (.) vor das mathematische Operatorzeichen geschrieben werden! Die Zahl istin MATLAB uber die Konstante pi verfugbar.

    Der Plot soll aus einer roten, gepunkteten Linie bestehen.

    Skalierung, ein Gitternetz, Achsenbezeichnungen, Titel und Legende sind zuzufugen.

    2 SIMULINK

    Der graphische Aufsatz SIMULINK ist eine Erweiterung von MATLAB, um dynamische Systeme zusimulieren. Die Struktur des zu simulierenden Systems wird graphisch in Form von Blockschaltbildernnachgebildet. Fur jeden Block konnen Parameter eingeben werden, dann wir die Simulation gestartet.Die Ergebnisse der Simulation konnen direkt graphisch verfolgt oder in Variablen gespeichert werden.Uber die Variablen konnen die Ergebnisse dann in MATLAB weiter verarbeitet werden.

    Gestartet wird SIMULINK durch die Anweisung simulink. Es erscheinen zwei Fenster, namlich ei-ne Bibliothek mit Standardblocken und ein (leeres) Arbeitsfenster. In dem Arbeitsfenster wird dasBlockschaltbild erstellt, indem Standardblocke aus dem Bibliotheksfenster mit drag&drop auf dasArbeitsfenster gezogen werden. Die einzelnen Blocke konnen mit Hilfe der Maus verbunden werden.

    Leider unterscheiden sich die SIMULINK-Versionen hinsichtlich der Bezeichnung, Anordnung undFunktionsweise der Standardblocke. Die fur das Praktikum relevanten Blocke der Version 4 oder hoherwerden hier vorgestellt. Fur altere Versionen wird nur auf die Unterschiede verwiesen.

    2.1 Version 4+

    Im Rahmen des Praktikums interessieren uns nur die folgenden Bibliotheken: Continuous, Math,Signals & Systems, Sinks und Sources.

    2.1.1 Continuous

    Mit den Blocken dieser Bibliothek lassen sich zeitkontinuierliche Ubertragungsfunktionen wie ptnn-Glieder mit dem Block Transfer Fcn simulieren. Die Parametrierung erfolgt uber einen rechtenMausklick und Auswahl des Menueintrags Block paramaters . . . . Hier lassen sich das Zahler- und

  • Einfuhrung in MATLAB und SIMULINK Seite 4

    Nennerpolynom, etwas kryptisch allerdings, getrennt als Numerator (Zahler) und Denominator (Nen-ner) eintragen. Die Eingabe der Polynome erfolgt in eckigen Klammern, wobei die Elemente von rechtsnach links die Koeffizienten a0 bis aN des Polynoms angeben. Der Grad des Zahlerpolynoms muss im-mer kleiner oder gleich dem Grad des Nennerpolynoms sein. Uber den Block Zero-Pole kann eineUbertragungsfunktion direkt uber Angabe der Zahler- und Nennernullstellen und einen Verstarkungs-faktor angegeben werden.

    Fur D- und I-Glieder stehen die Blocke Derivative und Integrator bereit. Deren Verwendung, ebensowie die Verwendung der Blocke fur zusammengesetzte Regler wie PI- bzw. PID-Glied, ist nicht emp-fehlenswert! All diese Glieder reagieren sehr empfindlich auf die gewahlte Schrittweite der numerischenIntegration.

    Stattdessen sollten sie eine Darstellung mit dem Block Transfer Fcn vorziehen. Fur ein I-Glied gebenSie als Denominator [1 0] ein. Ein reines D-Glied konnen Sie so nicht erzeugen, in der Regel werdenSie jedoch mit realisierbaren Gliedern arbeiten (z.B. DT1 mit Numerator [1 0] und Denominator[1 1]).

    2.1.2 Math

    Diese Bibliothek enthalt nutzliche Blocke zum Addieren/Subtrahieren von Signalen (Sum) und zumErstellen von P-Gliedern (Gain, Slider Gain). Auerdem konnen trigonometrische und andere ma-thematische Funktionen angewahlt werden.

    2.1.3 Signals & Systems

    Aus dieser Bibliothek ist nur der Block Mux von Interesse. Er dient zum Zusammenfassen von Signa-len. Dies ist erforderlich beim gleichzeitigen Plotten bzw. Speichern von mehreren Ausgangssignalen,da die Blocke zur Anzeige/Speicherung nur einen Dateneingang haben (siehe Sinks).

    2.1.4 Sinks

    Zur Anzeige und Speicherung der Signale konnen Blocke aus dieser Bibliothek gewahlt werden. Scopeund XY Graph erzeugen online-Anzeigen der Signale. Der Block simout/To Workspace leitet einSignal in eine MATLAB-Struktur um. Durch einen Doppelklick auf den Block konnen die Parame-ter eingestellt werden. Von groer Wichtigkeit ist der Variablenname (default: simout), unter demdie Daten in MATLAB zu finden sind, und das Speicherformat. Hier empfiehlt sich die EinstellungStructureWithTime. Dann sind die Signaldaten in MATLAB uber simout.signals.values und derZeitvektor der Simulation uber simout.time verfugbar. Mehrere Ausgangssignale konnen mit demMux-Block zusammengefasst und an einen Anzeige- bzw. Speicherungsblock angeknupft werden.

    2.1.5 Sources

    Diese Bibliothek halt eine Reihe von Blocken fur Eingangssignale bereit. Von Interesse sind vor allemdie Blocke Constant und Step, uber die konstante Werte bzw. Eingangssprunge erzeugt werdenkonnen. Die Parameter lassen sich durch einen Doppelklick einfugen. Beim Block Step sind die erstendrei Parameter zu beachten, sie geben namlich Zeitpunkt des Sprunges, Ausgangswert und Endwertan. Standardmaig ist ein Einheitssprung von 0 auf 1 zum Zeitpunkt 1s eingestellt. Weitere wichtigeBlocke sind Sine Wave, Ramp, Clock und simin/From Workspace.

  • Einfuhrung in MATLAB und SIMULINK Seite 5

    2.2 Altere Versionen

    2.2.1 Linear

    In dieser Bibliothek finden sich der Sum-Block und die lineraren Regelkreisg