Upload
rabee-yasin
View
538
Download
0
Embed Size (px)
Citation preview
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
1
Einführung in MATLAB ®Simulink®
WS 2008/09
Dr.-Ing. Thomas BuchUniversität Rostock, Fakultät IEF-NT
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
2
Gliederung
Universität RostockFB EIT/NTIE
1. Einleitung1.1 Anwendungsgebiet1.2 Produktfamilie
2. MATLAB-System3. Einführung in MATLAB
2.1 Elementare MATLAB-Operationen2.2 Die MATLAB-Hilfe2.3 MATLAB-Programmierung2.4 Symbolische Rechnung
4. Einführung in Simulink3.1 Was ist Simulink?3.2 Funktionsprinzip und Handhabung von Simulink3.3 Vereinfachung von Simulink-Systemen3.3 Interaktion mit MATLAB
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
3
Universität RostockFB EIT/NTIE
Grundlage der Anwendung von MATLAB® und Simulink ®
Simulink,Blocksets
MATLABMatrizen,
Optimierung,Grafik,DGL‘susw.
ToolboxenSignalverarbeitung, Identifikation, Reglerentwurf
usw.
MATLAB/Simulink Anwendungsgebiet
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
4
Universität RostockFB EIT/NTIE
MATLAB/Simulink Produktfamilie
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
5
Universität RostockFB EIT/NTIE
MATLAB-System
Was ist MATLAB?
MATLAB ist eine Hochleistungsprogrammiersprache für technische Berechnungen, wie für:
• Mathematik und numerische Berechnungen,
• Algorithmen-Entwicklung
• Datenerfassung
• Modellierung, Simulation und Prototype- Entwicklung
• Datenanalyse und Datenvisualisierung
• Wissenschaftliche und Technische Grafik
• Entwicklung von Anwenderprogrammen mit GUI
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
6
Universität RostockFB EIT/NTIE
MATLAB-System
Bestandteile von MATLAB
• Desktop Tools und Entwicklungsumgebung
Command window, history, workspace, editor, browsers
• MATLAB Bibliothek für Mathematische FunktionenBerechnungsalgorithmen für Elementarmathematik, Matrizenrechnung, Mathematische Funktionen, Schnelle Fourier-Transformation usw.
• MATLAB ProgrammierspracheProgrammsteuerung, objektorientierte Programmierung, Matrizenrechnung
• MATLAB Grafik
• MATLAB Externe Schnittstellen, Programmierinterfaces (API)
• Entwicklung von Anwenderprogrammen mit GUI
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
7
Universität RostockFB EIT/NTIE
MATLAB-System - Desktop
MATLAB wird aus Windows heraus durch „Doppelklick“ gestartet.
Es öffnet sich der MATLAB - Desktop
Eingabe von MATLAB-Funktionen
File-Browser
CommandHistory
Variablenworkspace
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
8
Universität RostockFB EIT/NTIE
MATLAB-System - Help
MATLAB besitzt eine sehr gute „HELP“
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
9
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
MATLAB-Kommandooberfläche
• MATLAB ist eine Interpretersprache
• Kommandos und Befehle werden in Kommandozeile ausgeführt
• MATLAB kannte nur eine Datenstruktur, die Matrix
• Implementierung weiter Datenstrukturen z.B. Structure, Cell Arrays
• Lange Kommandos können über mehrere Zeilen verteilt werden ...
>> Y = [sin(x) + cos(y) sin(a) + cos(b); ...sin(x) + cos(y) sin(a) + cos(b)]
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
10
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
MATLAB-Operationen
• Arithmetische Operationen
• Logische Operationen
• Mathematische Funktionen
• Grafikfunktionen
• I/O-Operationen (Datenaustausch)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
11
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
MATLAB-Variablen
• MATLAB-Variable im folgenden grundsätzlich eine Matrix
• Matrix-Elemente: reele und komplexe Zahlen, ASCII-Zeichen
• Skalare sind 1 x 1- Matrizen
• Variablennamen beginnen mit Buchstaben, case sensitive
• Es gibt reservierte Symbole, z.B. pi, eps, i, j, ...
• Dezimalpunkt als Dezimaltrenner
• Matrix-Elemente werden in eckigen Klammern [ ] eingeschlossen
• Zeilen-Trenner: Leerzeichnen und Komma
• Spaltentrenner: Semikolon
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
12
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Beispiele:>> x = 45.789
x =
45.7890
>> vector = [1, 2, -5]
vector =
1 2 -5
>> Matrix = [3 1+3*j -5; 4 2 -1.56]
Matrix =
3.0000 1.0000 + 3.0000i -5.0000
4.0000 2.0000 -1.5600
Größe von Matrix: 2 x 3 (2 Zeilen, 3 Spalten)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
13
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Stringvariablen besitzen die Klasse char und werden wie normale Variablen zugewiesen mit dem Unterschied, dass der Wert in Hochkomma ‘...‘ eingeschlossen wird.
Stringvariablen haben Matrizen- (Vektor-) Struktur!
Beispiele Stringvariablen:>> str = 'hallo world'
str =
hallo world
>> str1 = ['hallo'; 'world']
str1 =
hallo
world
>> size(str)
ans =
1 11
>> size(str1)
ans =
2 5
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
14
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Spezielle WerteMATLAB kennt Konstanten und spezielle Symbole, die nicht anderweitig verwendet werden sollten>> pi Zahl B
ans = 3.1416
>> inf
ans = Inf Zahl „Unendlich“, Ergebnis von 1/0
>> nan
ans = NaN Not a Number, Platzhalter für eine Zahl
>> eps
ans = 2.2204e-016 relative Genauigkeit einer Gleitkommazahl
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
15
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Der Workspace ist der Speicherbereich für alle Variablen.
Variablennamen, Größe, Variablenklasse, Speicherbedarf können angezeigt werden
Befehl who, whoswho
Your variables are: Matrix ans str str1 vector x
>> whos
Name Size Bytes Class
Matrix 2x3 96 double array (complex)
str 1x11 22 char array
str1 2x5 20 char array
vector 1x3 24 double array
x 1x1 8 double array
Grand total is 33 elements using 186 bytes
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
16
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Variablen können gelöscht, der Variablenspeicher Null gesetzt oder Speicher reserviert werden.Variable löschen: clear x x ist gelöscht
Variablenspeicher Null: x = []; x ist leer
Speicher Reservieren: x = zeros(1000,5); 1000 x 5 Null Matrix
Alle Variable löschen: clear all alle Variablen gelöscht
Variablen werden übersichtlich im Workspace-Browser dargestellt und bearbeitet.
Ein Semikolon am Ende der Kommandozeile unterdrückt das Ergebnis-Echo>> x = 45.789;
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
17
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Zeilen-Kommandos können rekonstruiert werden.Alle Kommandows bleiben in der History gespeichert.
Durch Eingabe der ersten Zeichen der Kommando-Zeile, gefolgt von den Pfeiltast 5 oder 6 werden Zeilen gesucht, die mit den eingegebenen ersten Zeichen übereinstimmen.
Ein gesondertes History-Fenster hält ebenfalls alle Kommando-Zeilen.
Ein Datum in der History unterscheidet verschiedene Sitzungen
Teile einer Kommando-Zeile oder mehrere Kommandozeilen können markiert und mit der rechten Maustaste kopiert, oder direkt ausgeführt werden.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
18
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Weitere Variablendefinitionsmöglichkeiten:Die besondere Bedeutung des Colon-Operators Doppelpunkt [:]
Definition einer Folge ii = {1 2 3 4}: ii = 1:4 Schrittweite 1
Definition einer Folge ii = {0 0.2 0.4 0.6}: ii = 0:0.2:0.6 Schrittweite 0.2
Auswahl von Matrix-Elementen über den Index in runden Klammern. Der Colon-Operator im Index kennzeichnet eine ganze Zeile oder/und Spalte
z.B.:>> Matrix(1,2)
ans =
1.0000 + 3.0000i
Matrix(1,:)
ans =
3.0000 1.0000 + 3.0000i -5.0000
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
19
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Weitere Indexierungsmöglichkeiten:Jede n-dimensionale Matrix wird spaltenweise als eindimensionaler Vektor abgelegt.
Der Index ist entweder eindimensional oder von der Dimension n der Matrix
z.B.:>> Matrix(1,2) % Matrix ist eine 2 x 3 Matrix
ans =
1.0000 + 3.0000i
>> Matrix(3)
ans =
1.0000 + 3.0000i
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
20
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Weitere Indexierungsmöglichkeiten(2):Zeilenvektor der Länge l = nxm einer nxm Matrix:>> elemente(1:6) = Matrix(1:2,1:3)
elemente =
Columns 1 through 4
3.0000 4.0000 1.0000 + 3.0000i 2.0000
Columns 5 through 6
-5.0000 -1.5600
Colon-Operator als Platzhalter für die Matrix-Dimension>> Matrix(:) = elemente
Matrix =
3.0000 1.0000 + 3.0000i -5.0000
4.0000 2.0000 -1.5600
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
21
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Weitere Variablendefinitionsmöglichkeiten:Vektoren und Matrizen können verlängert bzw. vergrößert werden. So lassen sich Elemente in Vektoren, oder ganze Zeilen und Spalten in Matritzen an beliebiger Stelle einfügen.
Aus Teilmatrizen können Supermatrizen generiert werden. z.B.:>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = [A,A]
B =
1 2 1 2
3 4 3 4
>> B = repmat(A,1,2); % Befehl zum Generieren großer Matrizen
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
22
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Elementare Matrizenmanipulationen:Die Elemente einer Matrix können umsortiert werden. Matrizen lassen sich horizontal oder vertikal kippen (flipud, fliplr, flipdim), um 90° drehen (rot90) oder umsortieren (reshape).Weitere siehe help Matices Operations and Manipulation
Beispiel für reshape:>> B = [1 2; 3 4; 5 6]
B =
1 2
3 4
5 6
>> C = reshape(B,2,3) % Elemente werden spaltenweise umsortiert.
C = % Produkt aller Dimensionen von B und C muss
1 5 4 % gleich sein. prod(size(B)) == prod(size(C))
3 2 6
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
23
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Spezial-Matrizen:MATLAB kennt auch alle in der Algebra üblichen Matrizen, wie
• Einheitsmatrix: I = eye(m,n)
• Diagonalmatrix: D = diag(v)
• Zufallsmatrix, gleichverteilt: U = rand(m,n)
• Zufallsmatrix, normalverteilt: N = randn(m,n)
• Null-Matrix: Z = zeros(m,n)
• Eins-Matrix: O = ones(m,n)
• ...
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
24
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Arithmetische MATLAB-Operationen (+, -, *, / etc.):Alle arithmetischen Operationen sind grundsätzlich Matrix-Operationen.
Das Produkt zweier Variablen ist nur definiert, wenn das Matrix-Produkt A*B definiert ist.>> M = [1 2 3; 4 -1 2]
M =
1 2 3
4 -1 2
>> N = [1 2 -1; 4 -1 1; 2 0 1]
N =
1 2 -1
4 -1 1
2 0 1
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
25
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Arithmetische MATLAB-Operationen (+, -, *, /, ^, etc.):Beispiel Matrix-Multiplikation.>> V = M*N % 2x3-Matrix x 3x3-Matrix
V =
15 0 4
4 9 -3
>> W = N*M % 3x3-Matrix x 2x3-Matrix
??? Error using ==> *
Inner matrix dimensions must agree.
Matrix-Manipulationen, z.B.:
Transponieren einer Matrix: Vt = V‘
Invertieren einer Matrix: Vinv = inv(V)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
26
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Feld-Operationen (.*, ./, .^, etc.):Die arithmetischen Operationen lassen sich auch Komponentenweise einsetzen.
Dazu müssen die Operanten von gleicher Dimension sein.>> N.*N
ans =
1 4 1
16 1 1
4 0 1
Feldoperationen werden durch das Operationszeichen mit vorangestelltem Punkt gekennzeichnet.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
27
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Division, rechte Division / , linke Division \:Die Division X = A / B zweier Matrizen nicht definiert.
Quotient nur im Falle quadratischer Matrizen sinnvoll X = A * B-1, falls B-1
existiert. Falls A-1 existiert, auch X = A \ B sinnvoll für X = A-1 * B
Die Vektorgleichung A * x = b stellt ein lineares Gleichungssystem dar, mit der Lösung: x = A \ b
Wenn A eine nichtquadratische Matrix ist, lassen sich über- oder unterbestimmte Gleichungssysteme lösen.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
28
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Logische und relationale OperationenLogische und relationale Operatoren sind Feld-Operatoren.
Sie arbeiten Elementweise bzw. skalar
• Negation: ~
• Und: &
• Oder: |
• XOR xor
• Relational: >, <, >=, <=, ==, ~=
• WAHR, wenn alle nichtnull: all
• WAHR, wenn einer nichtnull: any
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
29
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Mathematische FunktionenMATLAB verfügt über ein Vielzahl von vorgefertigten Funktionen.
Die Funktionen arbeiten grundsätzlich Komponentenweise und sind auch für komplexe Argumente definiert.
MATLAB kennt folgende elementare Funktionsklassen:
• Trigonometrische Funktionen, z.B.: sin(x), asin(x), atanh(x), ...
• Exponentialfunktionen, z.B.: exp(x), log10(x), sqrt(x), ...
• Komplexe Umrechnungen, z.B.: abs(x), angle(x), real(x), ...
• Runden, ganze Zahlen, Teiler, z.B.: round(x), mod(x), fix(x), ...
Unterstützung findete man durch die online Help help>> help sin
SIN Sine. SIN(X) is the sine of the elements of X.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
30
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
GrafikfunktionenEine herausragende Stärke von MATLAB ist seine Grafik
• zweidimensionale Funktionsgraphen (xy-Plots)
• perspektivische dreidimensionale Funktionsgraphen (xyz-Plots)
help grahp2d, help graph3d, help graphics:
2-D-Plots:
• XY-Plot.: plot(x,y)
• XY-Plot, halblogarithmisch: semilogx(x,y)
• XY-Plot, doppellogarithmisch: loglog(x,y)
• Mehrfach-Plots (1. Plot von 2 vert. Plots): subplot(2,1,1)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
31
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
2-D-Grafikfunktionen
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1plot(0:5,sin(0:5))
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1plot(0:5,sin(0:5), 'mo')
plot(0:5, sin(0:5)) plot(0:5, sin(0:5),‘mo‘)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
32
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Grafik beschriftenGrafiken können beschriftet werden, z.B. x-, y-Achsen, Titel, Legende, freier Text an der Stelle x0 ,y0
• xlabel(‘x-Achse‘), ylabel(‘y-Achse‘), title(‘Titel‘)
• text(x0, y0,‘Text‘), legend(char(‘Kurve 1‘,‘Kurve 2‘,‘Kurve 3‘)),
• Achsenbegrenzungen: axis([ xmin, xmax, ymin, ymax])
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
33
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Grafikfunktionen3-D-Plots:
• XYZ-Maschen-Plot.: mesh(X,Y,Z)
• XYZ-Oberflächen-Plot: surf(X,Y,Z)
• XYZ-Kontur-Plot: contour3(X,Y,Z)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
34
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
GrafikfunktionenErzeugung eines 3-D-Plots:
• Die Matrizen X und Y definieren die Punkte in der xy-Ebene
Erzeugung von X und Y aus den Vektoren x und y: [X,Y] = meshgrid(x,y); % X und Y besitzen die gleiche Dimension
•Berechnung einer Funktion Z = f(X,Y) als Funktion zweier Variabler Beispiel: Z = gauss2(X,Y,a,b); % 2-D-Gaussfunktion
•Auswahl geeigneter 3-D-Grafikfunktionen Beispiel: surf(X,Y,Z)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
35
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
GrafikfunktionenErzeugung eines 3-D-Plots:
X-Matrix
-4 -3 -2 -1 0 1 2 3 4
-4
-3
-2
-1
0
1
2
3
4
Y-Matrix
-4 -3 -2 -1 0 1 2 3 4
-4
-3
-2
-1
0
1
2
3
4
-2
-1
0
1
2
-2-1
01
2
0
0.2
0.4
0.6
0.8
1
y-Achsex-Achse
z-A
chse
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
36
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
3-D-Grafikfunktionen
-3-2
-10
12
3
-2
0
2
-0.2
0
0.2
0.4
0.6
x-Achsey-Achse
α -
Ach
se
-3-2
-10
12
3
-2
0
2
-0.2
0
0.2
0.4
0.6
x-Achsey-Achse
α -
Ach
se
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
37
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
3-D-Volumengrafik, Beispiele
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
38
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
3-D-Volumengrafik, Beispiele
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
39
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, ASCII-Zeichen, Text
Zeichenketten und Textblöcke werden bei MATLAB in Vektoren und Matrizen gehalten.
Die Zeichenketten werden Variablen mittels Hochkomma zugewiesen (‘‘)>> str = 'Text'str =TextBei Eingabe von mehreren Zeilen ist zu beachten, dass jede Zeile die gleiche Länge besitzt. Mit Leerzeichen auffüllen>> str = ['neuer';'Text ']str =neuerTextAutomatischer Zeilenausgleich mit Befehl char(‘...‘,‘...‘, ...)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
40
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, ASCII-Zeichen, Text
Zeichenketten können in die ASCII – Darstellung umgewandelt werden mit dem Befehl: abs(str)
>> asc = abs(str)asc =
110 101 117 101 11484 101 120 116 32
und umgekehrt wieder in eine Zeichenkette mit char(asc).
z.B. Umwandlung von klein in Großbuchstaben
>> STR = char(abs('text') - 32)STR =TEXT
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
41
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, Cell-Array
Das Halten von mehreren Strings in einem Array bedeutet Auffüllen mit Leerzeichen.Man kann Strings in Cell Array‘s halten. Jedes Cell-Array-Element ist ein String.
>> S = {'Hello' 'Yes' 'No' 'Goodbye'}S =
'Hello' 'Yes' 'No' 'Goodbye'
Zugriff auf ein Cell-Element:str = S{1}; % Ergebnis ist ein char-StringAber:cellstr = S(1); % Ergebnis ist ein Cell-Array mit einem Elementstr = char(S(1)); % Ergebnis ist ein char-String wie in Zeile 1Siehe auch help cellstr
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
42
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, ASCII-Zeichen, Text
Umwandlung von Zahlen in Zeichenketten
num2str(x); int2str(n); Umwandlung in eine Festpunktzahl bzw. ganze Zahl
Formatierte String-Ausgabe mit sprintf ähnlich Programmiersprache C
>> x = pi;>> str = sprintf('Variable x = %.2f',x)str =Variable x = 3.14>> fprintf('--> Text\ttext \\ ''\n\n') % Ausgabe Console--> Text text \ ' % \t tab, \n newline
Weitere Funktionen zur Zeichenketterbehandlung siehe help strings(String-Operationen, String-Umwandlungen usw.)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
43
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, ASCII-Zeichen, Text
Darstellung von Beschriftungen in Grafiken mit Hilfe von Zeichenketten, z.B. Achsenbeschriftungen, Titel freier Text
title(‘Titel‘);xlabel(‘x-Achse‘), ylabel(‘y-Achse‘);text(xpos,ypos,‘Freier Text‘) % Text auf der Position [xpos,ypos]
Interpretation von LATEX-Befehlen für z.B. griechische Buchstaben und mathematische Symbole:
text('Interpreter','latex',...'String',['$$z = \int \alpha\cdot x + \beta\:dx = ',...'\frac{\alpha}{2}\cdot x^2+ \beta\cdot x+\gamma$$'],...'Position',[-1.5 -10],...'FontSize',16)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
44
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Behandlung von Zeichenketten, ASCII-Zeichen, Text
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
45
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
I/O-Operationen
Datenaustausch zwischen MATLAB und externen Dateien. MATLAB verwendet ein eigenes Speicherformat für Daten, das mat- File
Das load und save - Kommandosave <Pfad/Dateiname> [variable1 variable2 ...] oder
save(‘Pfad/Dateiname‘ , ‘ var1‘ , ‘ var2‘ , ...)
save wsdaten %ohne Var.-Angabe werden alle Var. %gespeichert
Das load – Kommando läd die Variablen aus einem Mat-Fileload wsdaten %Alle Variablen von “wsdaten“ laden load(‘wsdaten‘) %äquivatente Funktion
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
46
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
I/O-Operationen
Text-Dateien werden mit dem Schalter –ascii erzeugt oder geladensave <Pfad/Dateiname> [variable1...] –ascii oder
save(‘Pfad/Dateiname‘, ‘var1‘, ..., ‘-ascii‘)
Das load -ascii läd eine Variable aus einem ASCII-File load daten.txt -ascii %ASCII-Daten laden in
%Defaultvariable „daten“
Var1 = load(‘daten.txt‘,‘-ascii‘) %Werte der Textdatei werden %der Variablen „Var1“ %zugewiesen
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
47
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
I/O-Operationen, ASCII-Files
Der Text muss Zahlen in gültiger MATLAB-Notation (-12.45, 1.1e-7) enthalten, getrennt durch Trennzeichen und Zeilenabschluss.
Alpha-Zeichen werden nicht eingelesen!!!
Die Anzahl der Zahlen in den einzelnen Zeilen muss gleich sein (Matrix, Zeilenvektor, Spaltenvektor)
Zeilentrenner: „,“, „;“, tab, leerzeichen
Spaltentrenner: <CR><LF>, ENTER,
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
48
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
I/O-Operationen, Import-Wizard, weitere I/O-Funktionen
Für das interaktive Einlesen von Dateien gib es den Import-Wizard, der in der Lage ist, strukturierte Daten aus Tabellen (xls, usw.) einzulesen. Dabei können auch Texte, z.B. Spaltenüberschriften, behandelt werden, die in Text-Array‘s abgelegt werden.
Weiter IO-Funktionen
• Formatiere I/O ähnlich C/C++ fopen, fclose, fread, fwrite
• Lesen von Bild-, HTML-, XLS-Dateien imread, xlsread
• Serielle Dateneingabe über RS232 serial(‘COM1‘)
Weitere Informationen findet man mit der online help
help iofun
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
49
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
I/O-Operationen, weitere I/O-Funktionen (1)
• I/O-Funktionen für das Kommando-Fenster • clc - Clear command window.
• disp - Display array.
• home - Send cursor home.
• input - Prompt for user input.
• pause - Wait for user response.
•Timer-Funktionen • timer - Construct timer object.
• start
• stop
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
50
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
MATLAB - Suchpfad
Mit path kann der Suchpfad angezeigt und geändert werden
Die Verzeichnisse werden der Reihe nach von oben durchsucht.path(path,‘Mydir\mfiles‘) % Anhängen ans Ende
path(‘Mydir\mfiles‘,path) % Anfügen an den Anfang
MATLAB verwendet den Verzeichnisname Privat zur Kennzeichnung eines Verzeichnisses, welches nur vom übergeordneten Verzeichnis (Elternverzeichnis) sichtbar ist.
Das Verzeichnis Privat sollte nicht in den Suchpfad aufgenommen werden!!!!
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
51
Universität RostockFB EIT/NTIE
Elementare MATLAB-Operationen
Strukturen
Zusammenfassen von Variablen unterschiedlicher Typen und Größe, z.B. Grafik-Eigenschaften
• Grafiktitel Grafik.Titel = ‘Beispiel‘;
• Achenbezeichnung Grafik.xlabel = ‘Zeit in s‘; Grafik.ylabel = ‘Strom in mA‘;
• xy-Intervall Grafik.xlim = [0,10]; Grafik.ylim = [0,10];
Name Size Bytes Class
Grafik 1x1 708 struct array
Grand total is 37 elements using 708 bytes
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
52
Universität RostockFB EIT/NTIE
Symbolisches Rechnen, TB Symbolics
Toolbox Symbolics
Die Symbolics-TB ist Bestandteil der Studentenversion von MATLAB
Es ist eine Anpassung der Algebra-Software MAPLE®
help symbolic
Calculus: diff, int, limit, taylor
Linear Algebra: eig, poly, ...
Simplification: simlify, subs, ...
Solution of Equations: solve, dsolve, ...
Basic Operations: sym –Create symbolic object ... pretty –print symbolic expr.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
53
Universität RostockFB EIT/NTIE
Symbolisches Rechnen, TB Symbolics
Toolbox Symbolics, Beispiel
Ableiten einer Funktion >> syms x y v
>> f = sin(x*y^2)*cos(x*y*v) % Funktion definieren
>> df = diff(f,‘y‘) % nach Symbol y ableiten
df =
2*cos(x*y^2)*x*y*cos(x*y*v)-sin(x*y^2)*sin(x*y*v)*x*v
>> pretty(df)
2 2
2 cos(x y ) x y cos(x y v) - sin(x y ) sin(x y v) x v
)cos()sin(),( 2 vxyxyyxf =
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
54
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Programmtypen
• MATLAB-Prozeduren M-Files, M-Script
• MATLAB-Funktionen M-Function, M-Subfunction
Diese MATLAB-Programme sind Textfiles, die mit beliebigen Texteditoren bearbeitet werden können.
Die Programme werden mit der Endung *.m in beliebigen Verzeichnissen abgelegt.
Der Filename sollte keine Name einer anderen MATLAB-Funktion oder Variablen sein.
Um die Programme ausführen zu können, muss das Verzeichnis im Suchpfad path eingestellt sein
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
55
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Prozeduren
Alle MATLAB-Befehle können in Script-Files zusammengefasst werden.
Zur Erstellung ist jeder Text-Editor verwendbar.
Der MATLAB-Editor bietet jedoch Syntax-Highlighting und Debug.
Neue M-Files können über das Menü File-New-M-File im MATLAB-Fenster geöffnet werden.
Man kann auch Teile der History markieren und in ein M-File übernehmen (Kontex-Menü)
Kommentar: % Rest der Zeile ist Kommentar
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
56
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Prozeduren, Help-Zeilen
Wenn die erste und die folgenden Programmzeilen Kommentarzeilen sind, werden diese als help-Text mit der Funktion help ausgegeben. Beispiel:% MATLAB-Script zur Berechnung von...% Aufruf: test% Version, Datum, Autor
% BerechnungN = 4;for ii=1:N
n(ii) = 1/(1-ii^2);end
!Wichtig! Programme ausführlich kommentieren!
Script-Files werden zeilenweise abgearbeitet
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
57
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Prozeduren, Ausführung
MATLAB-Scripte werden durch Eingabe des Programm-Namens (Filename) in die Kommandozeile und <Enter> ausgeführt.
Die Bearbeitung des Programms erfolgt zeilenweise
Laufende Programme kann man mit Strg+C abbrechen.
MATLAB-Prozeduren verwenden den Workspace als Variablenspeicher.
• Variablen können durch Ausführen eines M-Files überschrieben werden
• Neue Variablen bleiben erhalten
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
58
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen
MATLAB-Funktionen sich spezielle MATLAB-Scripte, bei denen in der 1. Programm-Zeile der Schlüsselname function, gefolgt von der Aufruf-Notation stehen muss.function [varout1, varout2, ...] = fctname(varin1, varin2,...)
fctname Funktionsname = Filename, M-File (case sensitive)
varin1... Eingangsargumente (Variablen-Namen)
Varout1... Ausgangsargumente (Variablen-Namen)
Ein- oder/und Ausgangsargumente können auch fehlen, z.B.function [] = fctname(varin1, varin2,...)
function [varout1, varout2, ...] = fctname()
function fctname(varin1, varin2,...)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
59
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, M-Function, Workspace
In der 2. und den folgenden Programmzeilen sollte wieder ein Help- Text als Kommentar stehen einschließlich der Aufrufnotation und Bedeutung der Funktions-Argumente.
Alle Variablen innerhalb der Funktion sind local und werden im Function-workspace gehalten.
Auf die Funktions-Argumente wird über die in der Aufrufnotation festgelegten Namen zugegriffen, z.B.function prod = mult(varin1, varin2)% Multiplikatione zweier Vektoren% prod = mult(varin1, varin2);
prod = varin1 * varin2;
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
60
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, M-Function, Aufruf
M-Function können im MATLAB-Kommando-Fenster oder in anderen MATLAB-Scripten und –Funktion aufgerufen werden.
Funktions-Eingangsargumente sind entweder zuvor definierte Variablen oder direkt Zahlen oder Strings. Ausgangsargumente müssen Variablen-Namen sein oder werden weggelassen. z-.B.:>> vprod = mult(2, [1 2 3])
vprod = 2 4 6
oder>> factor = [1 2 3];
>> mult(2,factor)
ans = 2 4 6
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
61
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, Argumente
Die Aufruf-Eingangs-Argumente werden der Reihe nach den Funktions-Eingangsargumenten zugeordnet und die Variablenwerte den Funktionen übergeben
Allen Eingangsargumenten muss ein Wert zugewiesen werden, sonst erfolgt Fehlermeldungmult(2)
??? Input argument 'varin2' is undefined.
Error in ==> C:\MATLAB6p5\work\mult.m
On line 2 ==> prod = varin1 * varin2;
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
62
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, fehlende Argumente
Fehlende Eingangsargumente können durch Default-Werte abgefangen werden. Dazu muss die Anzahl der Argumente geprüft werden nargin und nargout übergeben die Anzahl die Ein- und Ausgangsargumente des Funktionsaufrufes.
Diese können in der M-Function verwendet werden, z.B.function prod = mult(varin1, varin2)
...
if nargin == 1, varin2 = 1; end % Default: varin2 = 1
...
>> mult(2)
ans =
2
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
63
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, Sprachkonstrukte
MATLAB besitzt alle typischen Konstrukte einer Programmiersprache. Mit help lang (language) werden sie angezeigt. z.B.
Kontrollfluss-Konstrukteif, else, elseif, end % IF-Anweisung
for, end; while, break, end % FOR, WHILE-Anweisung
switch, case, otherwise, end % SWITCH-Anweisung
try, catch, end % TRY-Anweisung (Fehlerbehandlung)
return % RETURN-Anweisung (Rückkehr aus Funktion)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
64
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, Sprachkonstrukte(1)
Berechnung, Programm-Ausführung...eval % Ausführung eines Strings als MATLAB-Anweisungfeval % Ausführung einer Funktion, spezifiziert als
% String...
Argumente-Behandlung...nargin % Anzahl der Aufruf-Eingangsargumentevarargin % Liste der variablen Eingangsargumente...
Meldungen, Textausgaben...error % Fehlermeldung, Abbruch der Funktion...
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
65
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, IF-Anweisung
Programm-Verzweigungif <Wahrheitswert>, WAHR-Anweisungen;
elseif <Wahrheitswert>, WAHR-Anweisungen; % kann entfallen
else FALSCH-Anweisungen; % kann entfallen
end
Der Wahrheitswert WAHR ist das Ergebnis einer Anweisung oder Wert einer Variablen nichtNull. Matrizen sind WAHR, wenn alle Elemente nichtNull sind. z.B.if x < 0 % Vorzeichen berechnen
xsig = -1;else
xsig = 1;end
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
66
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, FOR-Schleife
Programm-Schleifen für begrenzte Zahl von Durchläufenfor <Schleifenvariable = Vektor> % Schleifenvariable nimmt
% nacheinander Werte der % Vektorelemente an
Schleifen-Anweisungen; % wird n-mal ausgeführt. % n = Länge von Vektor
end
Der Wert der Schleifenvariable kann innerhalb und nach der Schleife verwendet werden. xmean = []; n = 10;for ii = 1:n % Mittelwert berechnen
xmean = xmean + x(ii);endxmean = xmean/n;
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
67
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, WHILE-Schleife
Programm-Schleifen für unbekannte Zahl von Durchläufenwhile <Wahrheitswert> % Schleifen Abbrechen, wenn
% Wahrheitswert FALSCH Schleifen-Anweisungen; % Schleifen wird solange
% ausgeführt, % wie Wahrheitswert WAHR
end
Der Wahrheitswert sollte sich aus einer Variablen ergeben, die sich innerhalb der Schleife ändert, z.B. Anzahl der Textzeilen einer Datei. fid = fopen(‘textfile.txt‘), textline=fgets(fid); while textline >= 0 % Textzeilen lesen
textline=fgets(fid); % -1, wenn EOF erreicht end
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
68
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, Programm-Schleifen
Alle Programm-Schleifen lassen sich mit der break-Anweisung abbrechen, z.B.while 1 % unendliche Schleife
x = x + 2; if x > 100, break, end; % Abbruch der Schleifen
end
Programm-Schleifen sollten durch Vektorisierung vermieden werden, z.B.:for ii = 1:100
t = (ii-1)*.1; y(ii) = sin(t) % ii-tes Vektorelement
end
Vektorisierungy = sin(0:.1:9.9);
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
69
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, SWITCH-Konstrukt
Die switch-case-Anweisung eignet sich für Programm- verzweigungen mit vielen Fällen, z.B. Abprüfen der Argumentezahlfunction test(varin1, varin2, varin3)
switch nargin
case 3
case 2 % Defaultwert für varin1
varin3 = [];
case 1 % Defaultwert für varin1 und varin2
varin3 = []; varin2 = []
otherwise % Für alle anderen Fälle
error(‘Falsche Anzahl Eingangsargumente!‘)
end
Die switch-Variable kann auch ein String sein.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
70
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, EVAL, FEVAL
Mit der eval- und feval-Anweisung lassen sich Strings als MATLAB- Ausdrücke auswerten.
Von besonderer Bedeutung ist die feval-Anweisung zur Auswertung von Funktionsausdrücken.[y1, y2, ..., yn] = feval(F, x1, x2, ..., xm);
Dabei ist F der Handle einer Funktion, z.B.: F = @sinfeval(F,34.5) ist das gleiche wie: sin(34.5)
Feval wird innerhalb von Funktionen verwendet, wobei Funktions- Handle als Eingangsargumente dienen
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
71
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, EVAL
Mit der eval-Anweisung lassen sich MATLAB-Ausdrücke aus Strings „zusammenbauen“. Es soll z.B. die Größe der Variablen im Workspace bestimmt werden:>> varstr = who'
varstr =
'ans' 'x' 'xi‚
>> Ausdruck = ['size(',char(varstr(ii)),')']; % String-Variab.
for ii = 1:length(varstr)
[rowvar(ii,1), colvar(ii,1)] = eval(Ausdruck);
end
>> [char(varstr') 9*ones(3,1) num2str([row_var, colon_var])]=
ans 3 2
x 1 10
xi 3 1
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
72
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, FEVAL
Die feval-Anweisung kann man z.B. verwenden, um das bestimmte Integral einer Funktion numerisch zu berechnen. Die Funktion selbst wird als Funktionshandle übergeben.
Funktions-Definition:
• Als INLINE-Funktion>> F = inline('sin(x).^2') % INLINE-Funktionsobjekt
• Wenn Funktion durch M-Function definiert ist function y = sin2(x)>> F = @sin2 % Handle von sin2
Arithmetische Operationen müssen als Feldoperationen (.*, ./, usw.) angegeben werden!
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
73
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, FEVAL(1)
Es kann nun z.B. eine M-Function zur numerischen Berechnung eines bestimmten Integrals nach der Simpson-Methode
function int = simpson(F, a, b) geschrieben werden.
Innerhalb der M-Function wird feval zur Berechnung Funktionswerte der Funktion F verwendet:...
int = int + feval(F,a) + feval(F,b);
for ii = 3:2:2*N
int = int + 2*feval(F,interval(ii));
end
for ii = 2:2:2*N
int = int + 4*feval(F,interval(ii));
end
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
74
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen, Funktions-Handle
Funktions-Handle werden auch zur Definition von Funktionen für die numerische Optimierung (Minimierung des Fehlers fmin, fmins), numerische Integration (quad) und numerische Lösung von Differential-Gleichungen (ode) verwendet.
Beispiel: Lösung einer Differentialgleichung nach Kunge-Kutta[y, t] = ode23(@ODEFUN, Tspan, y0) % Tspan = [T0, Tfinal]
dy = ODEFUN(t,y) % y‘ = f(t,y)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
75
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen ODE (Lsg. Differentialgleichung)
Die Funktion ode23 kann zur numerischen Lösung eines Systems von gewöhnlichen DGL 1. Ordnung verwendet werden.
Überführung einer DGL n‘ter Ordnung in DGL-System 1. Ordnung
Beispiel Mathematisches Pendel der Länge l:
))(sin()(..
tlgta α⋅−= ⎟
⎟⎠
⎞⎜⎜⎝
⎛= .
)0(
)0()0(
α
ααr
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
76
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen ODE (Lsg. Differentialgleichung)(2)Überführung einer Pendelgleichnung in DGL-System 1. Ordnung
))(sin()(
)()(
12.
2.1
tlgta
tta
α
α
⋅−=
=
)()(
)()(.
2
1
tt
tt
αα
αα
=
=
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
77
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen ODE (Lsg. Differentialgleichung)(3)
Programmierung der ODEFUN (Pendelgleichungssystem)function [alphadot] = pendelgl(t, alpha)
...
l = 10; g = 9.81; % Parameter
alphadot = [0;0]; % Initialisierung
alphadot(1) = alpha(2); % 1. DGL 1. Ordnung
alphadot(2) = -g/l*sin(alpha(1)); % 2. DGL 1. Ordnung
Die Variable t muss mit übergeben werden, auch wenn sie nicht benötigt wird!
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
78
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Funktionen ODE (Lsg. Differentialgleichung)(4)Aufruf der ODE-Funktion für die Pendelgleichung[t, loesung] = ode23(@pendgl,[0,20],[pi/4, 0]);
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
79
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
Speichern von MATLAB-Funktionen
• MATLAB-Funktionen müssen unter ihrem Funktionsname gespeichert werden
• Funktionen, die z.B. im Verzeichnis verz\private gespeichert werden sind nur vom Verzeichnis verz aus sichtbar
• Subfunction sind weitere Funktionsvereinbarungen function innerhalb eines Funktions-M-Files und sind nur in diesem sichtbar
Weitere Hinweise in der help
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
80
Universität RostockFB EIT/NTIE
MATLAB-Programmierung
MATLAB-Editor / Debugger
Der MATLAB Editor unterstützt neben Syntac-Highlighting:
Schlüsselwort, z.B. function, for, end
Kommentar % Kommentar
String ‘String‘
Debuggerfunktionen:
Breakpoints, Einzelschritt, Lokaler Variablen-Browser, Abbruch usw.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
81
Universität RostockFB EIT/NTIE
Einführung in Simulink
Simulationswerkzeug Simulink
Programm zur Simulation dynamischer Prozesse
Grafische Oberfläche als spezielle Toolbox von MATLAB
Beschreibung der Modelle durch Blockschaltbilder
Simulink ist ein numerischer Löser von Differentialgleichungen
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
82
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Starten von Simulink
Simulink wird aus MATLAB heraus gestartet z.B.
• Kommandoebene: >> simulink
• File/New/Model öffnet ein neues Modell
• Öffnen der Library-Browsers über die Toolbar
Der Library-Browser enthält Blocksets, die nach Funktionsgruppen geordnet sind, z.B.
Quellen , Senken, Mathe, Kontinuierlich, Diskret, Nichtlinear usw.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
83
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Erstellen von Simulink-Modellen
Mit der Maus werden die Blöcke in das Modell-Fenster gezogen
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
84
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Erstellen von Simulink-Modellen (2)
Das Modell sollte anschließend unter einem Namen abgespeichert werden.
Modelle verwenden die Endung *.mdl
Es werden weitere Blöcke in das Modellfenster gezogen.
Der Name der Blöcke kann editiert werden, ebenso die Größe der Blöcke durch Ziehen an den Ecken.
Ein mit der Maus angewählter Block kann mit der rechten Maustaste bearbeitet werden (Ausschneiden, Kopieren, Formate...)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
85
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Erstellen von Simulink-Modellen (3)
Nun werden Aus- und Eingänge miteinander verbunden. Wenn die Maus in die Nähe eines Ein- Ausganges kommt, kann eine Verbindung erzeugt werden
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
86
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Modifizieren von Simulink-Modellen
Leitungsverbindungen erhält man, wenn man eine Verbindung vom Ausgang auf eine bestehende Verbindung zieht.
Verbindungen, Blöcke, Knoten und markierte Gruppen lassen sich verschieben
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
87
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Modifizieren von Simulink-Modellen (2)
Blöcke lassen sich durch Doppelklick parametrieren, z.B. Anzahl der Eingänge eines Multiplexers
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
88
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Parametrieren von Simulink- Modellen
Die meisten Blöcke besitzen Parameter. Sie dienen zur Festlegung von Signal- oder Systemfunktionen, z.B. Amplitude, Frequenz, Phase eines SIN-Blockes
Es werden auch Simulink- Parameter benötigt, z.B. Abtastrate, Anzahl der Eingänge usw.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
89
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Parametrieren von Simulink- Modellen (2)
Mit den Scope-Block werden Oszillogramme erstellt. Die Daten lassen sich als workspace-Variable speichern
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
90
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Beschriften von Simulink-ModellenText lässt sich durch Doppelklick auf die Zeichnungsfläche eingeben. Angewählte Textfelder können bewegt ausgeschnitten und Kopiert weren.
Textgröße, Farbe, Fonts lassen sich mit dem Format-Menüe ändern.
Für Blöcke gibt es auch ein Format-MenüeBlöcke lassen sich drehen und kippen, färben und schattieren und der Name lässt sich verbergen.MUX-Linien lassen sich verbreitert dargestellen.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
91
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Simulink-SimulationDer Menü-Befehl Simulation öffnet das Parameterfenster Simulation.
Es lassen sich die Simulationszeiten, das Integrationsverfahren und die Schrittweite sowie weitere Parameter eingeben.
Es lassen sich feste und variable Schrittweiten auswählen und eingeben.Einige Integrationsverfahren verfügen über eine automatische Schrittweitensteuerung.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
92
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Simulink-SimulationFür das Beispiel wird eine feste Schrittweite von 0.01 s verwendet.
Die Simulation wird dem Pfeil oder dem Menü-Punkt Simulation gestartet.
Auf dem Scope erscheinen die Zeitschriebe des Simulationsergebnisses.Die Daten können mit MATLAB weiterverarbeitet werden.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
93
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Lösen von Differentialgleichungen mit SimulinkEinfached Beispiel: Erzeugung eines COS-Signals
0)0(,1)0()()(==
−=yytyty&&
&& Durch schrittweises Integrieren lässt sich die DGL lösen.Lt. DGL ist die 2. Ableitung gleich dem negierten Ausgangssignal y(t). Dies wird durch eine negative Rückführung realisiert.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
94
Universität RostockFB EIT/NTIE
Handhabung von Simulink
Lösen von Differentialgleichungen mit Simulink (2)Einfached Beispiel: Erzeugung eines COS-Signals
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
95
Universität RostockFB EIT/NTIE
Vereinfachung von Simulink-Modellen
Vereinfachung von Mathematischen Funktionen – Fcn-BlockMathematische Funktionen mit einem oder mehreren Eingängen und einem Skalar als Ausgang lassen sich durch den Fcn-Block beschreiben.
Dadurch: - Erhöhung der Übersichtlichkeit
- Beschleunigung der Simulation
Funktion: y = sqrt(x^2 + z^2); Notation in Fcn-Block: sqrt(u(1)^2 + u(2)^2)
u sind Elemente des
Eingangsvektors
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
96
Universität RostockFB EIT/NTIE
Vereinfachung von Simulink-Modellen
Zusammenfassen von Blöcken – Sub-SystemBlöcke, die eine Funktionseinheit darstellen , lassen sich zu Sub-System zusammenfassen.
Dadurch entstehen übersichtliche Modelle mit mehreren Hierarchie-Stufen
Dadurch: - Erhöhung der Übersichtlichkeit
- Beschleunigung der Simulation
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
97
Universität RostockFB EIT/NTIE
Vereinfachung von Simulink-Modellen
Zusammenfassen von Blöcken – BeispielLogistische DGL: Berechnung der Population bei gegebener Zuwachs- und Sterberate. (Nichtlineare DGL)
)()()( 2.
tPtPtP ⋅−⋅= τγ
Zusammenfassung der Rückführungsglei- chung mit Fcn- Blocky = g*u - t*u^2
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
98
Universität RostockFB EIT/NTIE
Vereinfachung von Simulink-Modellen
Zusammenfassen von Blöcken – Beispiel (2)Logistische DGL: Berechnung der Population bei gegebener Zuwachs- und Sterberate. (Nichtlineare DGL)
)()()( 2.
tPtPtP ⋅−⋅= τγ
Zusammenfassung der Rückführungsglei- chung mit Fcn- Blocky = g*u - t*u^2
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
99
Universität RostockFB EIT/NTIE
Vereinfachung von Simulink-Modellen
Zusammenfassen von Blöcken – Beispiel (3)Logistische DGL: Berechnung der Population bei gegebener Zuwachs- und Sterberate. (Nichtlineare DGL)
)()()( 2.
tPtPtP ⋅−⋅= τγ
Zusammenfassung der Rückführungsglei- chung mit Sub-System
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
100
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Simulink-Parameter aus Workspace übernehmenParameter von Simulinkblöcken können Variablenbezeichnungen sein
Achtung: Vor der Simulation müssen den Variablen in MATLAB Werte zugewiesen sein
Auch die Simulationsparameter, wie Schrittweite ts, kann als Variable festgelegt werden
Es ist sinnvoll, alle Variablen eines Modells in einem M-File abzulegen, welches zu Beginn der Simulation aufgerufen wird
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
101
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Beispiel: Nichtlineare DGl. Eines Masse-Feder-Systems
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
102
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Beispiel: Nichtlineare DGl. Eines Masse-Feder-Systems
Parameter für „Faktor 1/m“ eingeben
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
103
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Beispiel: Nichtlineare DGl. Eines Masse-Feder-Systems
Schrittweite eingeben eingeben
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
104
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Beispiel: Nichtlineare DGl. eines Masse-Feder-Systems
M-File für die Festlegung der Parameter starten:
[m, b, c, tstep, szeit]= dglnonpm(4.5, 1.29/1000, 0.001,10);
Das Simulink-Modell kann jetzt gestartet werden
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
105
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Start eines Simulink-Modelles aus MATLAB heraus
Simulink-Modelle können auch aus MATLAB heraus gestartet werden
Vorteile:• Die Simulation erfolgt mit einer höheren
Rechengeschwindigkeit• Simulationsparameter lassen sich von Simulation zu Simulation
ändern
[t, x, y] = sim(‘system‘, [startzeit, endzeit]);z.B.[t, x, y] = sim(‘s_dglno2‘, [0, 10]);
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
106
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Start eines Simulink-Modelles aus MATLAB heraus
Nach Start der Simulation sind folgende Variablen im Workspace>> whosName Size Bytes Class
dglloesung 10001x1 80008 double arrayt 10001x1 80008 double arrayx 10001x2 160016 double arrayy 0x0 0 double array
Grand total is 40004 elements using 320032 bytes
Da kein Ausgangsblock vorhanden ist, werden für y keine Datenerzeugt!
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
107
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Lesen und setzen von Parametern
Mit den MATLAB-Befehlen set_param und get_param lassen sichModell-Parameter setzen und lesen>> help set_param
SET_PARAM Set Simulink system and block parameters.
SET_PARAM('OBJ','PARAMETER1',VALUE1,'PARAMETER2',VALUE2,...), where'OBJ' is a system or block path name, sets the specified parameters to the specified values. Case is ignored for parameter names. Value strings are case sensitive. Any parameters that correspond to dialog box entries have string values.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
108
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Lesen und setzen von Parametern
z.B. Parameter von Modell „s_dglnon3“ lesen
>> get_param('s_dglnon3/invm','Gain')ans =0.10137% Parameter neu setzen>> set_param('s_dglnon3/invm','Gain','0.12')>> get_param('s_dglnon3/invm','Gain')ans =0.12
Achtung! Zahlenwerte müssen als String übergeben werden!!
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
109
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Finden von Blöcken eines Modells
z.B. Blöcke von Modell „s_dglnon3“ suchen>> find_system('s_dglnon3')
ans = 's_dglnon3''s_dglnon3/(x'(t))^2''s_dglnon3/Faktorb''s_dglnon3/Faktorc''s_dglnon3/Integrator1''s_dglnon3/Integrator2''s_dglnon3/Product''s_dglnon3/Sum''s_dglnon3/invm''s_dglnon3/sgn (x'(t))''s_dglnon3/Out1'
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
110
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Finden von Blöcken eines Modells
Einen Überblick über Blöcke und Parameter liefert das Modell-File,Wenn es mit einem Texteditor geöffnet wird, z.B.:
>> find_system('s_dglnon3','BlockType','Gain')
ans =
's_dglnon3/Faktorb''s_dglnon3/Faktorc''s_dglnon3/invm'
>> edit s_dglnon3.mdl
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
111
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Mehrfach Aufrufen eines ModellsEin Modell kann z.B. innerhalb einer Funktion in einer Schleifeaufgerufen werden mit geänderten Parametern
>> r = [3 20 60];>> rho = 1.29/1000;>> Fc = 155.2;>> [t,Y] = dglnonit(r, rho, Fc, 5, .01, [0,1]);>> figure(1), plot(t,Y(:,1),'b-',t,Y(:,2),'k--',t,Y(:,3),'r-.')
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
112
Universität RostockFB EIT/NTIE
Interaktion von Simulink und MATLAB
Mehrfach Aufrufen eines ModellsErgebnis:
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1r=3 cmr=20 cmr = 60 cm
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
113
MATLAB-Übungen
Universität RostockFB EIT/NTIE
MATLAB-Übungen
1. Variablen2. Arithmetische Operationen3. Elementare Funktionen4. Grafik-Funktionen5. IO-Funktionen6. Symbolics7. Programmierung
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
114
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Variablen
( )
( )5.100...5.225.11
7.1035.17.15.51
5.07
31
75.2
3110001
=
−−−−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−
=
=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−+=
y
w
v
k
jjjM
r
r
r
Übung 1
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
115
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Variablen
⎟⎟⎠
⎞⎜⎜⎝
⎛=
MMMM
V
Übung 21. Erweitern der Matrix M zu einer 6 x 6 – Matrix V der Form:
2. Löschen der 2. Zeile und 3. Spalte (V23 streichen)
3. Neuer Vektor z4 gleich 4. Zeile von V
4. Ändern Matrixelement V(4,2) zu j+5
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
116
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Operationen
( ) ( )23/1302135,021 −=−−= yx rr
Übung 3.11. Standardskalarprodukt der Vektoren
mit Hilfe der Matrix-Operation und mit Hilfe der Feldoperation2. Produkt der Matrizen
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛−−−
=⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛−
−=
11135,15,1101
9,121,13,110
25,31BA
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
117
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Operationen
Übung 3.2: Umsortieren von Matrizen und Vektoren:
1. Erzeugen Sie einen Spaltenvektor mit den aufeinander folgenden ganzen Zahlen von 1 bis 16
2. Sortieren Sie die Vektorelemente in eine 4 x 4 Matrix A und eine 8 x 2 Matrix B
Lösen Sie die Aufgabe mit dem (:) Operator und der Funktion reshape
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
118
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Operationen
Übung 3.3: Umsortieren von Matrizen und Vektoren:
1. Erzeugen Sie einen Spaltenvektor x mit den aufeinander folgenden ganzen Zahlen von 1 bis 21
2. Berechnen Sie für 3 aufeinander folgende Elemente den Mittelwert und legen Sie das Ergebnis in einem Vektor x2m ab.
Hinweis: Sortieren Sie den Vektor in eine 3 x 7 Matrix und Berechnen Sie den Mittelwert mit Hilfe der Funktionen sum und mean
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
119
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Operationen
( ) ( )21010612121014331 −−=−−= yx rr
Übung 41. Testen der relationalen Operationen der Vektoren
<=, >=, >, ==, >, ~=2. Matrix-Einträge >10 und < -10 auf Null setzen
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−
=
461111851161841211122
104321
A
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
120
Universität RostockFB EIT/NTIE
Übungsaufgaben MATLAB-Operationen
Übung 4.11. Lösung eines linearen Gleichungssystems
A * x = bT
A =1 2 3 42 3 4 13 4 1 24 1 2 3
b =-2 2 2 -2
Welche Bedingung muss erfüllt sein,damit LGS lösbar?
A =2 1 1 01 -1 0 01 5 2 00 2 0 1
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
121
Universität RostockFB EIT/NTIE
Übungsaufgaben elementare Funktionen
tettts 1,0)32cos()52sin()( −+ΠΠ=
Übung 51. Berechnung der Funktion für einen Zeitvektor t=[0,10]
im Abstand 0,1
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
122
Universität RostockFB EIT/NTIE
Übungsaufgaben Grafik - Funktionen
Übung 61. Fehlerhafte MATLAB-Sequenz
t=(0:0.01:2);sinfkt=sin(2*pi*5*t);cosfkt=2*cos(2*pi*3*t);expfkt=exp(-2*t);plot(t,[sinfkt, cosfkt, expfkt])
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
123
Universität RostockFB EIT/NTIE
Übungsaufgaben Grafik - Funktionen
Übung 71. Berechnen eines Rechteckpulses der Länge 32, Dauer 8 und
Amplitude 1. • Berechnung der DFT mittels FFT • Darstellung des Zeitsignals als Kurven-Plot im oberen
Subplot• Darstellung des Betrages der DFT als Linienplot (stem) im
unteren Subplot• Beschriftung von Titel, Achsen und Legende
Verwendung Sie online help für die Befehlsbeschreibungsubplot, legend, fft, stem, plot
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
124
Universität RostockFB EIT/NTIE
Übungsaufgaben Grafik - Funktionen
Übung 7.11. Berechnen Sie einen 2-D-Gauss-Impuls als Funktion von x und
y im Bereich x, y = [-2:.1:2] mit a = 2 und b = 1/2.
• Stellen Sie die Funktion als 3-D-Plot (surf) dar• Beschriftung von Titel und Achsen• Integrieren Sie die Formel mit TEX-Befehlen in den Titel
Verwendung Sie online help für die Befehlsbeschreibungsurf, meshgrid, xlabel, title, tex
2 2
( , )x ya bf x y z e
− −= =
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
125
Universität RostockFB EIT/NTIE
Übungsaufgaben Grafik - Funktionen
Übung 81. Plotten einer Übertragungsfunktionen in log-Darstellungen
(Betrag und Phase)• H1(j omega) = 1/j omega• H2(j omega) = 1/(1 + j omega)
Verwendung Sie online help für die Befehlsbeschreibungsemilgx, semilogy, loglog
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
126
Universität RostockFB EIT/NTIE
Übungsaufgaben Grafik - Funktionen
Übung 8.11. Gegeben ist eine Wertetabelle. Die Funktion und eine
Kurvenapproximation ist zu zeichnent = 0 0.3 0.8 1.1 1.6 2.3y = 0 0.82 1.14 1.25 1.35 1.4• Verwenden Sie eine Polynomapproximation 2. Ordnung
y = a1 + a2 t + a3 t2
• Verwenden Sie eine Exponentialapproximation 2. Ordnungy = a1 + a2 e-t + a3 te-t
Plotten Sie die Messwerte und die Approximationen in einDiagramm und beschriften Sie die Achsen und Kurven. Verwenden Sie zur Approximation t = [0:.01:2.5]
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
127
Universität RostockFB EIT/NTIE
Übungsaufgaben I/O - Funktionen
Übung 91. Erstellen einer ASCII-Text-Datei mit einem Text-Editor,
bestehend aus 3 Spalten und 4 Zeilen1.2 5.6 37.5+4j0.34 -2.3 2-j22 -34.8 500-89 -10+j 67.9
Laden der Textdatei mit load und Anzeige der Matlab-Variableload -ascii
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
128
Universität RostockFB EIT/NTIE
Übungsaufgaben Symbolics
Übung 101. Symbolische Bestimmung des Taylor-Polynoms 3. Ordnung
der Funktion g(x) = sin(5x - 2)
2. Symbolische Lösung der DGL y‘ = xy^2
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
129
Universität RostockFB EIT/NTIE
Übungsaufgaben Programmierung
Übung 111. M-Funktion zum Plotten einer Kreisscheibe mit dem Radius R
und der Farbe C. Die Kreisscheibe ist durch einen geschlossenen Polygonenzug anzunähern. Ausgabe von Umfang und Fläche. Ein gefüllter Plot wird mit der Funktion fill erzeugt.
2. Einlesen einer XLS-Wetterdatentabelle und Plotten der Wetterdaten als Contourplot, wenn keine Ausgangsargumente gegeben, sonst Ausgabe einer 3-dimensionalen Matrix [Tageszeit, Tag, Wetterdaten]. Tageszeit und Tag sind im MATLAB-Systemzeitformat anzugeben.
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
130
Universität RostockFB EIT/NTIE
Übungsaufgaben Simulink
Übung 121. DGL einer gedämpften mechanischen Schwingung des
Systems Feder – Stahlplatte unter Berücksichtigung der Newton‘schen Reibungmx‘‘(t) + bx‘(t)^2 + cx(t) = 0 für x‘(t)>0mx‘‘(t) - bx‘(t)^2 + cx(t) = 0 für x‘(t)<0m = 0,5 kg, b = 0,5cw*rho*A, cw = 1;rho = 1,29kg/m^3, m = rho_st*h*pi*r^2; h = 1 cm
b = 0,00411; c = 155,2 (Federkonstante)
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
131
Universität RostockFB EIT/NTIE
Übungsaufgaben Signale und Systeme
Übung 131. Es sind die komplexen Koeffizienten der Fourier-Reihe
folgender Signale zu berechnen und darzustellen.Es ist eine M-Function zur Berechnung der Fourier-Koeffzu entwickeln.Wie groß ist der Klirrfaktor?Signale:X1 (t) = sin(2*pi*f0 t)X2 (t) = arctan(X1 (t) )X3 (t) = abs(X1 (t) )
Dr.-Ing. Th. Buch: Einführung MATLAB/Simulink
132
Universität RostockFB EIT/NTIE
Übungsaufgaben Signale und Systeme
Übung 141. Es sind der Amplituden- und Phasengang eines RLC-
Netzwerkes zu bestimmen. Dabei ist von der Übertragungsfunktion G(jω) = U2 (jω)/ U1 (jω) auszugehen.Rg = 10 kOhm, C = 100 pF, L = 0,1 mH, R = 1, 5, 50 kOhm
U1 U2
Rg
R L C