29
MATLAB & Simulink – Eine Einführung Mechatronik 3. Semester 2 CP, 2 SWS Sommersemester 2010 Helmut Scherf -5- Fakultät für Maschinenbau und Mechatronik Prof. Helmut Scherf Mechatronik

fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

Embed Size (px)

Citation preview

Page 1: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Mechatronik 3. Semester2 CP, 2 SWS

Sommersemester 2010Helmut Scherf

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 2: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Allgemeines MATLAB steht für Matrix Laboratory MATLAB ist eine Hochsprache und eine interaktive Umgebung, mit der man

rechenintensive Aufgaben schneller als mit herkömmlichen Programmier-sprachen wie C, C++ oder Fortran ausführen kann

Simulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen Systemen

Weiter Toolboxen für Regelungstechnik, Signalverarbeitung, Statistik, Optimierung, C-Code-Generierung etc.

Pfad

Workspace Command-Window

Command- History

Command Window

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 3: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Dieser Bereich stellt das Kernstück von MATLAB dar. Hier werden alle Eingaben in den Workspace gemacht und die Berechnungen ausgegeben. Der Prompt >>signalisiert die Eingabebereitschaft.>> (40^3 + 3*2e3) / 7ans = 10000Jede Eingabe wird mit der Taste ENTER abgeschlossen. Die Regel „Punkt vor Strich“ sowie Klammern gelten wie gewohnt. Große Zahlen werden mit Exponent e (bzw. auch E) eingegeben. Beendet wird MATLAB durch Schließen des Desktops oder durch Eingabe des Befehls quit, exit oder mit der Tastenkombination Strg+q.Ein Semikolon nach der Eingabe unterdrückt die Ausgabe.Mit der Pfeiltaste ↑ können die letzten Befehle wiederholt werden.

Command HistoryHier werden die im Command Window eingegeben Befehle gespeichert und angezeigt. Durch Doppelklicken können die Befehle wiederholt werden, auchlassen sich einzelne oder mehrere Befehle ausschneiden, kopieren oder löschen.

WorkspaceHier werden alle im Workspace existierenden Variablen, Funktionen etc. mit ihrem Namen, Dimension, Größe in Bytes und dem Datentyp angezeigt. Zusätzlich lassen sich diese Daten speichern und Variablen mittels des Array Editors einfach verändern.

PfadHier sucht MATLAB nach Unterprogrammen, m-Files etc.

Variablen, Vektoren, Matrizen, Polynomea=7 a wird als Skalar interpretiert oder 1x1-Matrixb=[4, 5, 6]; a=[6 4 22];

Zeilenvektor, Trennung durch Komma oder Leerzeichen Semikolon verhindert Antwort

c=[4; 5; 6] Spaltenvektor, Trennung durch SemikolonE=[3 a 9]; MATLAB unterscheidet Groß- und

KleinschreibungE(4)=input('Zahl eingeben: ')

E ist der Vektor 3 6 4 22 9; jetzt wird das 4. Element also die 22 ersetzt.

A=[1 4 5;4 6 8] A ist eine 2x3-Matrix; Adressierung: Zeile, SpalteA(2,1) Liefert 4 als ErgebnisA(2,:) Liefert 4 6 8; : heißt alle SpaltenI=eye(3) Liefert 3x3-Einheitsmatixpi c=1:.1:2 Erzeugt den Vektor [1 1.1 1.2 1.3 ... 2]a*b Zeile*Zeile = nicht definierta.*b Elementweise Multiplikationb' Transposition -> Spaltenvektora*b' Zeile*Spalte = Skalarprodukta'*b Elementweise Zeile*Spalte = geht nicht

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 4: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

a.*b' Spalte*Zeile = dyadisches Produkt (Matrix)clear a b Löscht die Variablen a und bF=ones(2,3) 2x3-Matrix mit Einsena=exp(-2)A=[1 2 3; 3 4 5;4 5 99]inv(A) Matrix A invertierendet(A) Determinante berechnenb=0:0.1:5; Liefert Vektor 0, 0.1, 0.2, 0.3, … 4.8, 4.9, 5.0length(b) Gibt Länge des Vektors b an[m,n]=size(A) m = Anzahl Zeilen, n = Anzahl Spalten

Adressierung: Zeile, SpalteA(:,3) 3. Spalte von A, : bedeutet alle ZeilenA(2,:) 2. Zeile von A, alle Spaltenwhos zeigt alle Variablen anhelp fft Liefert Hilfe zu MATLAB-Befehl fftlookfor fft Sucht alle Help-Texte nach dem Begriff fft abwhy Liefert Universal-Antwort!i Imaginäre Einheitj Imaginäre Einheit%Kommentarstr='Hallo Welt!' Eingabe von Zeichenketten

entspricht Vektor aus Buchstaben ['H' 'a' 'l' ...]roots([1 3 3 1]) Wurzeln eines Polynoms

bestimmenpoly ([1 2 3]) Erstellt das Polynom mit den angegebenen

Wurzelnconv([1 3 3 1], [1 4]) Multiplikation von zwei Polynomendeconv(...) Polynomdivisionresidue(...) Partialbruchzerlegungpolyval(...) Auswertung des Polynomspolyadd(...) Addition von Polynomen

FunktionenViele MATLAB-Funktionen sind skalare Funktionen und werden elementweiseausgeführt, wenn sie auf Matrizen angewandt werden.s. help elfun (elementare Funktionen) oder s. help specfun (spezielle Funktionen)Kategorie Funktion Beschreibung (gemäß Matlab)Trigonometrisch sin Sine

sinh Hyperbolic sineasin Inverse sinecos Cosinecosh Hyperbolic cosineacos Inverse cosineacosh Inverse hyperbolic cosinetan Tangenttanh Hyperbolic tangentatan Inverse tangent

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 5: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

atanh Inverse hyperbolic tangentcot Cotangentcoth Hyperbolic cotangentacot Inverse cotangentacoth Inverse hyperbolic cotangent

Exponentiell exp Exponentialexpm1 Compute exp(x)-1 accuratelylog Natural logarithmlog1p Compute log(1+x) accuratelylog10 Common (base 10) logarithmlog2 Base 2 logarithm and dissect floating point

numbersqrt Square rootnthroot Real n-th root of real numbers

Komplex abs Absolute valueangle Phase anglecomplex Construct complex data from real and imaginary

partsconj Complex conjugateimag Complex imaginary partreal Complex real part

Runden und Rest

fix Round towards zero

floor Round towards minus infinityceil Round towards plus infinityround Round towards nearest integermod Modulus (signed remainder after division)rem Remainder after divisionsign Signum

VektorfunktionenEine zweite Klasse von MATLAB-Funktionen sind Vektorfunktionen. Sie könnenmit derselben Syntax sowohl auf Zeilen- als auch auf Spaltenvektoren angewandtwerden. Solche Funktionen operieren spaltenweise, wenn sie auf Matrizen angewandt werden. Einige dieser Funktionen sindFunktion Beschreibung (gemäß MATLAB)max Largest componentmean Average or mean valuemedian Median valuemin Smallest componentprod Product of elementssort Sort array elements in ascending or descending ordersortrows Sort rows in ascending orderstd Standard deviationsum Sum of elements

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 6: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

trapz Trapezoidal numerical integrationcumprod Cumulative product of elementscumsum Cumulative sum of elementscumtrapz Cumulative trapezoidal numerical integrationdiff Difference function and approximate derivativefind Find indices of nonzero elements

Spezielle KonstantenMATLAB besitzt einige Funktionen, die nützliche Konstanten liefernFunktion Beschreibung (gemäß MATLAB)pi 3,14159265 . . .i Imaginäre Einheit ; sollte daher nicht als Zählindex

verwendet werden.j Wie ieps Relative Genauigkeit der Fliesskomma-Zahlen realmin Kleinste Fliesskomma-Zahl realmax Größte Fliesskomma-Zahl Inf Unendlich , 1/0NaN Not-a-number, 0/0

Lineare Gleichungssysteme

A=[3 2 3;1 -4 -4;-2 -3 -2] Matrix A eingebenb=[15; -6; -5;] Spaltenvektorinv(A)*b

ProgrammsteuerungMATLAB besitzt für die Programmsteuerung for-, while-, if- und switch-case-Konstrukte. Diese Elemente der MATLAB -Programmiersprache kann man nicht nur in m-Files sondern auch direkt im Befehlsfenster eingeben.

If-Anweisunge = exp(1);if 2^e > e^2 disp('2^e ist größer')else

Logischer Ausdruck

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 7: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

disp('e^2 ist größer')end

For-SchleifeBerechnung der Summe der natürlichen Zahlen von 1 bis 100000.N=1:100000; Vektor generierenSummeN=0;tic Start a stopwatch timerfor k=1:length(N) SummeN=SummeN+N(k);endtoc Read the stopwatch timertic, sum(N),tocBeachte: Die Performance ist sehr viel schlechter als mit einem geeigneten MATLAB-Befehl!

Unterprogramme, m-FilesMit MATLAB lassen sich eigene Funktionen schreiben, es können Parameter übergeben werden.Beachte: Die Variablen in einer Funktion sind lokal. Mit global können die Variablen global definiert werden.

Berechnung der Summe aller Matrixelemente:MATLAB-Editor aufrufen über File NewM-FileFunktion schreibenAbspeichern unter Funktionsname.m z.B. SummevonA.mDamit die Funktion gefunden und ausgeführt werden kann, muss der Pfad auf das Verzeichnis gesetzt werden, wo die Funktion abgespeichert ist.%Diese Funktion berechnet%die Summe aller Matrixelemente einer Matrixfunction summe=SummevonA(A)

Kommentar

Eingabewert ist die Matrix ARückgabewert ist summeUnter SummevonA.m abspeichern!

[m,n]=size(A) Dimension feststellensumme=0;for zeile=1:m for spalte=1:n summe=summe+A(zeile,spalte); end;end;

Funktion

A=[3 2 3;1 -4 -4;-2 -3 -2] Matrix eingebenSummevonA(A) Aufruf der Funktion vom

Command-WindowHinweis: Eleganter und schneller geht es natürlich mit sum(sum(A))!

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 8: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Es können auch mehrere Variable zurückgegeben werden:function [summe,differenz]=plusundminus(a,b)summe=a+b;differenz=a-b;

GrafikMATLAB besitzt sehr leistungsstarke Grafikfähigkeiten.2D-Plotsx=linspace(2,57.9,100) Vektor generierensubplot(3,2,1) Liefert 3x2-Matrix, 1. Bildplot(x,sin(x))

gridxlabel('x')ylabel('sin x')axis([0 50 -2 2])text(10,1.5,'Text bei 10, 1.5')

Plot-Befehl, x und y-Vektoren müssen gleiche Länge haben;GitterAchsenbeschriftungAchsenbeschriftungAchsenskalierungText an Position einfügen

subplot(3,2,3) Liefert 3x2-Matrix, 3. Bildplot(x,sqrt(x))gridxlabel('x')ylabel('Wurzel x')axis([0 50 0 10])subplot(3,2,5)plot(x,sin(x).*sqrt(x))gridxlabel('x')ylabel('sin x*sqrt(x)')axis([0 50 -10 10])subplot(3,2,2)semilogx(x,sqrt(x))gridxlabel('x logarithmisch')ylabel('Wurzel x')subplot(3,2,4)semilogy(x,sqrt(x))gridxlabel('x linear')ylabel('Wurzel x logarithmisch')subplot(3,2,6)loglog(x,sqrt(x))gridxlabel('x logarithmisch')ylabel('Wurzel x logarithmisch')

Die Plots lassen sich ganz leicht in Word oder Powerpoint integrieren.Schritte:

1. Im Plot-Fenster unter Edit die Copy-Options einstellen

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 9: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

2.3. Im Plot-Fenster unter Edit ->Copy Figure anklicken; 4. Powerpoint-Folie öffnen und ctrl+v (einfügen)5. Zeichnen->Gruppierung aufheben: Umwandlung in Powerpoint-Objekt6. Schritt 5 ggf. mehrfach durchführen

3D-PlotsBeispiel: Plotten der Funktion im Bereich x=-2:.1:2; x-Vektor 1x41 Wertey=-2:.1:2; y-Vektor 1x41 Werte[X,Y] = meshgrid(x,y); Liefert 3D-Array X und Y: 41x41 WerteZ = X .* exp(-X.^2 - Y.^2); 41x41 Wertesurf(X,Y,Z) 3D-Plotbefehl, s. auch mesh etc.xlabel('x')ylabel('y')zlabel('z=x*exp(-x^2-y^2)')

Achsenbeschriftung

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 10: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

DifferenzialgleichungenBeispiel:

Funktion schreiben, die die rechte Seite der Dgl. enthält.Geeignetes Integrationsverfahren wählen, hier ode45

function dy = rechteSeite(t,y)dy = -y-exp(-t)*6*cos(7*t);

Abspeichern unter rechteSeite.m

SimZeit = [0,10]; y0 = -3;

SimulationszeitAnfangsbedingung

[t,y] = ode45(@rechteSeite,SimZeit,y0); @rechteSeite Zeiger auf Funktion, die die Dgl. enthält

plot(t,y,'-'), grid,xlabel t, ylabel y(t)

Plot

Symbolisches RechnenMit der Symbolic Math Toolbox kann man

symbolische Variablen definieren, Differenzieren, Integrieren, symbolische Ausdrücke umformen, Gleichungssysteme lösen, Differenzialgleichungen lösen.

Viele Funktionen in Symbolic Math Toolbox haben dieselben Namen wie ihre numerischen Gegenstücke. MATLAB wählt diejenige aus, welche dem Typ der Eingabeparameter entspricht. Mit den Befehlen help eig bzw. help sym/eigkann man Hilfe für die numerische bzw. symbolische Eigenwertberechnung anzeigen.

Differenzierensyms x y symbolische Variablen definierendiff(sqrt(5*x^2 - 7*x + 4))

Differenzieren; wenn nichts angegeben wird nach x, sonst nach Variable, die x am nächsten steht.

pretty(ans) Kosmetik

IntegrierenMATLAB kann bestimmte Integrale sowie Stammfunktionen berechnen unter der Voraussetzung, dass sie existieren!syms a b t x y z symbolische Variablen definierenint(sin(a*t + b)) Stammfunktion, t ist Integrationsvariableint(sin(a*t + b),t) Oder soint(x/(x^2+1)) Stammfunktion, x ist Integrationsvariablef=(2*x^2-1)/(x+1)^2/(x+3); pretty(f)int(f,x,0,1) Bestimmtes Integral zwischen 0 und 1

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 11: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

syms a b int(exp(-a*t)*sin(b*t),0,inf) , existiert nur für , hier Protest

syms a b positive Daher hier Einschränkungint(exp(-a*t)*sin(b*t),0,inf)

So geht's!

res = simplify(ans) Ausdruck vereinfachen, s. help simple

SubstituierenDie Funktion subs erlaubt eine Variable in symbolischen Ausdrücken durch andereAusdrücke zu ersetzen, insbesondere auch durch Zahlwerte.syms a bf = a+b; Symbolische Variablesubs(f,a,4) In f wird a durch 4 ersetztsubs(f,[a b],[4 -4])

Algebraische Gleichungen, GleichungssystemeDer Befehl solve(s) versucht die Nullstelle des symbolischen Ausdruck s zu finden.syms xsolve('3*x + 4 = 17')f = '5^(x-1) = 10'; solve (f)solve('tan(2*x) = sin(x)')

Wenn Zahlen mit Dezimalpunkt eingegeben werden (z.B. 1.2 statt 6/5), so wirddas Resultat numerisch statt symbolisch ausgegeben. Auch lineare Gleichungssysteme können natürlich gelöst werden.syms x y zg1 = 'x + y + z = 0';g2 = '4*x + 5*y + z = 3';g3 = '-2*x + y - 3*z -5 = 0';[x y z] = solve(g1,g2,g3)

DifferenzialgleichungenDie Funktion dsolve versucht gewöhnliche Differentialgleichungen zu lösen.Wenn nicht genügend viele Randbedingungen gegeben werden, so enthält dieLösung freie Parameter. Im Normalfall ist t die unabhängige Variable, D bedeutet d/dt, D2 = d2/dt2 etc. syms x yY = dsolve('Dy = x^2*y','x')

Hier ist x die unabhängige Variable!

Y=dsolve('Dy = x^2*y','y(0)=4','x') Jetzt mit Anfangsbedingungdsolve('D2y + y = x^2','y(0)=4', 'Dy(0)=1','x')

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 12: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Messwerte ladenMit MATLAB können Messwerte hervorragend ausgewertet und dargestellt werden. Hierzu müssen diese allerdings im Workspace vorliegen. Am einfachsten gestaltet sich die Angelegenheit, wenn sich die Werte in einer ASCII-Datei befinden.Beispiel: Erzeugen einer Messwertdatei mit einem Editor: 1. Spalte Zeit, 2. Spalte MesswertvektorAbspeichern unter y.txt Laden der Messwert mit dem load-Befehl: load y.txtBeachte: Pfad muss gesetzt sein, sonst wird die Datei nicht gefunden.Eine weitere Möglichkeit besteht darin, dass der Import-Wizard benutzt wird unter FileImport Data…Hinweis: Im ASCII-File muss das Komma durch einen Punkt ersetzt werden!

Nützliche MATLAB-FunktionenName der Funktion Beschreibungabs Berechnet Absolutbetragacos Berechnet Arcuskosinusasin Berechnet Arcussinusatan Berechnet Arcustangens (2 Quadranten)atan2 Berechnet Arcustangens (4 Quadranten)axis Manuelles Skalieren der Achsenbode Erstellt Bode-Diagrammc2d Konvertiert zeitkontinuierliches System in ein zeitdiskretesclear Löscht Arbeitsbereichclf Löscht Grafikfensterconj Berechnet konjugiert komplexe Zahlconv Multipliziert 2 Polynome (Faltung)cos Berechnet Kosinusctrb Berechnet Steuerbarkeitsmatrixdamp Berechnet Eigenwerte, Dämpfung, Eckfrequenzendiary Speichert Sitzung auf der Festplatted2c Konvertiert zeitdiskretes System in ein zeitkontinuierlicheseig Berechnete Eigenwerte und Eigenvektorenend Beendet Steuerungsstrukturenexp Berechnet Exponenten zur Basis eexpm Berechnet Matrixexponenten zur Basis eeye Erzeugt Einheitsmatrixfeedback Berechnet Rückkopplungsverbindung zwischen 2 Systemenfor Erzeugt eine Schleifeformat Definiert das Anzeigeformat der Ausgabegrid on Erzeugt ein Gitter in der Graphikhelp Hilfethema zu einem Befehlhold on Erhält die aktuelle Graphik im Fensteri Imaginäre Einheitimag Berechnet den Imaginärteilimpulse Berechnet Impulsantwort eines Systemsinf Stellt den Wert "unendlich" darj Imaginäre Einheit

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 13: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

legend erstellt eine Legende für das aktuelle Diagrammlinspace Erzeugt Vektor mit linearem Abstandload Lädt Variablen aus einer Dateilog Berechnet natürlichen Logarithmuslog10 Berechnet Zehnerlogarithmusloglog Erzeugt doppeltlogarithmische Diagrammelogspace Erzeugt Vektor mit logarithmischen Abstandlsim Berechnet die Zeitantwort eines Systems auf ein beliebiges

Eingangssignalmargin Berechnet Amplitudenrand, Phasenrand und die

Übergangsfrequenzmax Ermittelt Maximalwertmesh Erzeugt dreidimensionale Gitterflächenmeshgrid Erzeugt Felder für die Funktion meshmin Ermittelt Minimalwertminreal Kürzen der Pole und Nullstellen in Übertragungsfunktionennan Not a number nichtnumerischer Ausdrucknum2str Konvertiert Zahlen in Zeichenkettennyquist Erstellt Ortskurve eines Übertragungssystemsobsv Berechnet die Beobachtbarkeitsmatirxones Erzeugt eine Matrix mit Einsernpade Berechnet die Pade-Approximation parallel Berechnet die parallele Verbindung zwischen Systemenplot Erzeugt ein Diagrammpole Berechnet die Pole eines Systemspoly Berechnet Polynom aus den Wurzelnpolyfit Berechnet Polynomkoeffizienten eines Polynoms, das

Messwertreihe annähertpolyval Analysiert Polynomprintsys Druckt die beschreibenden Zustandgrößen etc. schön auspzmap Zeichnet Pol-Nullstellen-Diagrammrand Liefert gleichverteilte Pseudozufallszahlrank Berechnet Rang einer Matrixreal Berechnet Realteilresidue Berechnet Partialbruchzerlegungrlocfind Ermittelt Verstärkung bei WOKrlocus Berechnet WOKroots Ermittelt Wurzeln eines Polynomssemilogx Erzeugt halblogarithmisches Diagramm, y-Achse ist linearsemilogy Erzeugt halblogarithmisches Diagramm, x-Achse ist linearseries Berechnet serielle Verbindung zwischen Systemenshg Anzeige des Grafikfensterssin Berechnet Sinussqrt Berechnet Quadratwurzelss Berechnet Zustandsmatrizen aus Übertragungsfunktionstep Berechnet Sprungantwortsubplot Teilt Grafikfenster in Unterfenstersyms Deklariert symbolische Variablen

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 14: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

tan Berechnet Tangenstext Fügt aktueller Grafik Text hinzu, auch LaTeX-Befehle!title Fügt aktueller Grafik Titel hinzutf Erzeugt Übertragungsfunktion-Modellobjektwho Listet aktuell im Speicher befindlichen Variablen aufwhos Listet die aktuellen Variablen und Größen aufwhy Liefert alle Antworten dieser Welt auf nicht gestellte Fragenxlabel Fügt aktueller Grafik Beschriftung der x-Achse hinzuylabel Fügt aktueller Grafik Beschriftung der y-Achse hinzuzero Berechnet Nullstellen eines Systemszeros Erzeugt Matrix mit Nullen

Internet-Adressenhttp://www.oldimrt.ethz.ch/education/tutorials/matlab/http://www.math.mtu.edu/~msgocken/intro/intro.htmlhttp://www.math.siu.edu/matlab/tutorials.htmlhttp://math.ucsd.edu/~driver/21d-s99/matlab-primer.htmlhttp://www.engin.umich.edu/group/ctm/

LiteraturBeucher, O.: MATLAB und Simulink, Scientific Computing, 3. Auflage 2006;Schweizer, W.: MATLAB kompakt, Oldenbourg, 2006Hoffmann, J.: MATLAB und Simulink: Beispielorientierte Einführung in die Simulation dynamischer Systeme, Addison-Wesley, 1998

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 15: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Einführung in Simulink

Allgemeines- Simulink ist eine Tollbox von MATLAB- Simulink arbeitet blockschaltbildorientiert- Verknüpfung von Blöcken durch Pfeile (Signale)- Rückwirkungsfrei: Signale gehen nur in Pfeilrichtung- Blöcke sind in einer Bibliothek hinterlegt- Simulation kontinuierlich, zeitdiskret oder hybrid- Schnittstelle zu MATLAB- Einfaches Lösen von gewöhnlichen Differenzialgleichungen und Dgl-

Systemen- Standard-Tool für Simulation dynamischer Systeme- Möglichkeit zur Erzeugung von C-Code aus dem Blockschaltbild

BeispielZu lösen ist die Differenzialgleichung eines schwingungsfähigen Masse-Feder-Dämpfersystems mit Krafterregung

mit den Anfangsbedingungen

.

MasseGeschwindigkeitsproportionale Dämpfung

Federkonstante

Sinusförmige Erregerkraft mit der Frequenz f= 2 Hz

Schritt 1:Auflösen der Dgl. Nach der höchsten Ableitung

( )

Schritt 2:Simulink starten: Im Workspace simulink eingeben

oder Button in der Menüleiste anklicken; es erscheint der Simulink-Library-Browser

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 16: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Continuous: Linear, continuous-time system elements (integrators, transfer functions, state-space models, etc.)

Discrete: Linear, discrete-time system elements (integrators, transfer functions, state-space models, etc.)

User –DefinedFunctions

User-defined functions

Lookup-Tables

Tables for interpolating function values

Math: Mathematical operators (sum, gain, dot product, etc.) Nonlinear: Nonlinear operators (coulomb/viscous friction, switches, relays, etc.) Ports & Subsystems:

Blocks for controlling/monitoring signal(s) and for creating subsystems

Sinks: Used to output or display signals (displays, scopes, graphs, etc.) Sources: Used to generate various signals (step, ramp, sinusoidal, etc.)

Schritt 3:Öffnen eines neuen Simulink-Modells: FileNewModel; es erscheint ein leeres Modell.

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 17: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Schritt 4:Im Simulink-Library-Browser Block Continuous doppelklicken und aus der sich öffnenden Bibliothek den Block Integrator mit gedrückter linker Maustaste in das leere Modell ziehen.

Schritt 4:Block Integrator duplizieren: Block mit gedrückter rechter Maustaste nach rechts ziehen und Maustaste loslassen

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 18: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Schritt 5:Blöcke verbinden: hierzu mit dem Mauszeiger auf den Ausgang des Blocks Integrator gehen, es erscheint ein Kreuz und mit gedrückter Maustaste eine Linie zum Eingang von Integrator1 ziehen.

Der Eingang des ersten Integrators ist , der Ausgang ist damit , und der Ausgang des zweiten Integrators ist . Aus Gleichung ( ) geht hervor, mit welchen Blöcken erzeugt wird.

Schritt 6:Aus dem Simulink-Library-Browser

- Block Math Operations den Block Gain und Sum - Block Sources den Block Sine Wave- Block Sinks den Block Scope

in das Modell ziehen und verbinden.

Schritt 7:Die Blöcke müssen nun parametriert werden. Dies erfolgt durch Doppelklicken auf den jeweiligen Block.

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 19: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Z. B.: Der Block Sine Wave sieht so aus:

Des Weiteren ist es ratsam, die Linien zu beschriften.Das fertige Blockschaltbild sieht so aus:

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 20: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Schritt 8:In MATLAB müssen nun die Systemparameter eingegeben werdenf=2;c=5;d=0.5;m=2;damit diese bei der Simulation in Simulink bekannt sind.

Schritt 9:

Die Simulation ist startbereit: Drücken des Buttons in der Symbolleiste. Durch Doppelklicken auf das Scope kann der Weg x visualisiert werden.

Ergebnis:

Der Plot sieht denkbar merkwürdig aus! Was sind die Gründe?

Schritt 10:Simulink arbeitet mit numerischen Integrationsverfahren. Hier gibt es gewisse Standardeinstellungen, die für dieses Beispiel nicht ausreichend sind. Unter Simulation Configuration Prameters… gelangt man zum Einstellungsmenu.

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 21: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Neuseinstellung liefert

Ergebnis:

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 22: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Schritt 11:Die Ergebnisse lassen sich einfach dokumentieren. Im Scope, rechts neben dem Druckersymbol, kann das Signal im Workspace abgespeichert werden, um es dann mit MATLAB zu plotten. Es wird eine Matrix mit zwei Spalten abgespeichert: 1. Spalte: Zeit, 2 Spalte: x

Das Blockschaltbild kann ebenfalls im Menu EditCopy Model to Clipboard in die Dokumentation übernommen werden.

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 23: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

Bild 1: Blockschaltbild in Powerpoint-Folie übernommen

Bild 2: Schwingweg x

Aufrufen eines Simulink-Blockschaltbildes unter MATLABMit Hilfe des sim-Befehls lassen sich Simulink-Dateien ausführen. Dadurch erreicht man höchste Flexibilität.Beispiel:Das Schwingungsbeispiel soll mit drei verschiedenen Dämpfungskonstanten ausgeführt und in einem Plotfenster dargestellt werden. %Aufrufen eines Simulnk-Files unter MATLAB

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik

Page 24: fowen/MatlabSimulink/Einfuehrung.doc  · Web viewSimulink ist eine MATLAB-Toolbox zur blockschaltbildorientierter Simulation von dynamischen ... Die Plots lassen sich ganz leicht

MATLAB & Simulink – Eine Einführung

%Simulink-File: MasseFederDaempfer.mdl%Dämpfung wird variiert%-----------------------------------------f=2; %Erregerfrequez [Hz]c=5; %Federsteifigkeit [N/m]daempfung=[0.05 0.5 5]; %Dämpferkonstante [Ns/m]m=2; %Masse [kg]

Dämpfungsvektor

for k=1:3 d=daempfung(k); sim('MasseFederDaempfer') subplot(3,1,k) plot(x(:,1),x(:,2)) grid xlabel('Zeit in s') ylabel('x') legend(['d=',num2str(d)]) end;

Aufruf des Simulink-BSB

subplot(3,1,1)title('verschiedene Dämpfungen')

[x,y]=dsolve('m*D2x+k*cos(alpha)*sqrt((Dy)^2+(Dx)^2)=0','m*D2y+k*sin(alpha)*sqrt((Dy)^2+(Dx)^2)+m*g=0','y(0)=0,x(0)=0,Dy(0)=10,Dx(0)=10')

-5-Fakultät für Maschinenbau und MechatronikProf. Helmut ScherfMechatronik