Post on 05-Jun-2018
transcript
MATLAB Grundlagen
MATLAB
Grundlagen
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth
MATLAB Grundlagen
Was ist MATLAB?
• Softwarepaket zur numerischen Mathematik
• Speziell fur Vektoren & Matrizen: MATrix LABoratory
• Basismodul fur allgemeine Mathematik, Ein/Ausgabe,
Programmablaufsteuerung
• Erweiterungsmodule als sog. Toolboxen
• Verwendete Version: Release 2006 b
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 1
MATLAB Grundlagen
Toolboxen I
MATLAB Products
MATLABMATLAB Compiler &C/C++ Math LibraryMATLAB C/C++ Graphics LibraryDatabase ToolboxData Acquisition ToolboxExcel LinkMATLAB Report GeneratorMATLAB Runtime ServerMATLAB Web ServerMatrixVB
Control Design
Control SystemRobust ControlNonlinear Control Design BlocksetSystem IdentificationModel Predictive Control
Design Automation Products
SimulinkEmbedded Target Infineon C166Embedded Target Motorola HC12Embedded Target Motorola MPC555Embedded Target TI C2000(TM) DSPEmbedded Target TI C6000(TM) DSPReal-Time Windows TargetReal-TimeWorkshopReal-Time Workshop Embedded CoderSimDrivelineSimMechanicsSimPowerSystemsSimulink AcceleratorSimulink Control DesignSimulink Report GeneratorSimulink Response OptimizationSimulink Verification and ValidationStateflow und Stateflow CoderxPC Target
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 2
MATLAB Grundlagen
Command Desktop
Integrierte Entwicklungsumgebung:
• Command Window
• Editor
• Command History
• Workspace Browser
• Profiler
• Current Directory Browser
• Shortcut-Leiste
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 3
MATLAB Grundlagen
Online–Hilfe
• Zu allen Befehlen existiert eine Online–Hilfe
• Aufruf der Hilfe zu einem Befehl: help [befehl]
• Eigener Hilfe-Browser: helpwin [befehl]
doc [befehl]
• Suche nach Ausdruck suchstring: lookfor suchstring
• Handbucher als PDF-Dateien vom Helpdesk aus
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 4
MATLAB Grundlagen
Variablen
• Namen:
– Maximal 63 Zeichen
– Buchstaben, Unterstrich “ “ und Zahlen
– Erstes Zeichen muss Buchstabe sein
– Unterscheidung von Groß- und Kleinschreibung
• Zuweisung von Werten an Variable: variable 1 = 25
• Standardergebnisvariable ans
• Variablen global im Workspace definiert
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 5
MATLAB Grundlagen
Variablen-Typen
• Variablen-Typen:
logical Logische Werte 0 oder 1
char Character (Buchstaben, Zeichen)
single Fließkomma 32 Bit
double Fließkomma 64 Bit
intX Festkomma X = 8, 16, 32
uintX Festkomma ohne Vorzeichen X = 8, 16, 32
struct Zusammenfassung von Daten
cell Programmierung großer Systeme
• double und char am meisten verwendet
• Speicherplatz uber full und sparse einstellbar
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 6
MATLAB Grundlagen
Ausgeben, Grundrechenarten und Konstanten
• Komma oder Leerzeichen nach der Operation lassen
die Ausgabe zu, der Strichpunkt unterdruckt sie
• Rechnung: + Addition - Subtraktion
* Multiplikation / Division
^ Potenzieren
• Konstanten: pi Kreiszahl Pi
eps Fließkomma–Genauigkeit
inf Unendlich
NaN Not–a–Number
• Komplexe Zahlen: i, j Imaginare Einheit√−1
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 7
MATLAB Grundlagen
Vektoren und Matrizen
• Vektoren: Trennung der Elemente durch Komma oder
Leerzeichen: vektor = [ 1 2 3 ]
• Matrizen: Trennung der Zeilen durch Strichpunkt:
matrix = [ 1 2 3 ; 5 6 7 ]
• Erstes Element hat Index 1
• Doppelpunkt fur Zeile/Spalte: zeile 1 = matrix(1,:)
• Zusammensetzen: matrix = [ vektor ; 5 6 7 ]
• Letztes Element: matrix(:,end)
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 8
MATLAB Grundlagen
Spezielle Vektoren und Matrizen
• Elemente mit gleicher Schrittweite: fort = (1:2:100)
• Bestimmte Anzahl anzahl von Elementen innerhalb ei-
nes Intervalls mit Grenzen start und ziel:
Linear: linspace(start,ziel,anzahl)
Logarithmisch: logspace(start,ziel,anzahl)
• Spezielle Matrizen(m Zeilen, n Spalten):
Einheitsmatrix: eye(m)
Einsermatrix: ones(m,n)
Nullmatrix: zeros(m,n)
Zufallswertmatrix: rand(m,n)
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 9
MATLAB Grundlagen
Mathematische Funktionen
• Viele mathematische & trigonometrische Funktionen
sqrt(x) Quadratwurzel rem(x, y) Rest nach Division x/y
exp(x) Exponentialfunktion round(x) Runden
log(x) Naturlicher Logarithmus ceil (x) Rundet nach oben
log10(x) Zehner–Logarithmus floor(x) Runden nach unten
abs(x) Betrag sum(v) Summe der Vektorelemente
sign(x) Signum (Vorzeichen) prod(v) Produkt der Vektorelemente
real(x) Realteil min(v) kleinstes Vektorelement
imag(x) Imaginarteil max(v) großtes Vektorelement
angle(x) Winkel einer komplexen Zahl mean(v) Arithmetisches Mittel
sin(x) Sinus atan(x) Arcus–Tangens ±90◦
cos(x) Cosinus atan2(x,y) Arcus–Tangens ±180◦
tan(x) Tangens sinc(x) Spaltfunktion sin(πx)/(πx)
• Online–Hilfe mit help elfun und help datafun
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 10
MATLAB Grundlagen
Rechnen mit Vektoren und Matrizen
• Viele Operationen konnen auf Vektoren und Matrizen
angewendet werden
• Elementeweises Ausfuhren mit dem Punktoperator “.“
• Spezielle Vektoren- und Matrixfunktionen:
.’ Transposition
’ Transposition kk
inv(x) Inversion
det(x) Determinante
rank(x) Rang
eig(x) Eigenwerte
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 11
MATLAB Grundlagen
Strukturen und Cell Arrays
• Strukturen zum Verwalten von Daten verschiedenen
Typs: Skalare, Matrizen, Strings, etc.
• Felder einer Struktur enthalten einen Wert:
str = struct (’name 1’,wert 1,’name 2’,wert 2,...)
• Zugriff auf Werte mit dem “.“–Befehl: str.name
• Cell Arrays: Multidimensionale Strukturen
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 12
MATLAB Grundlagen
Verwalten von Variablen
• Dimension:
– eines Vektors: length(vektor)
– einer Matrix: size(matrix)
• Anzeigen:
– who [variable]: Nur Namen
– whos [variable]: Namen, Große, Bytes und Klasse
• Loschen:
– einer Variablen: clear variable
– aller Variablen: clear, clear all
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 13
MATLAB Grundlagen
Vergleichsoperatoren
• Vergleichsoperatoren: ==, ~=, <, <=, >, >=,
• Test auf Existenz einer Variable x: exist(x)
• Vergleichsoperatoren konnen auf Skalare, Vektoren
und Matrizen angewendet werden.
• Werte: Null (logisch falsch) bei Nichterfullung der
Operation, andernfalls Eins (logisch wahr)
• Auswerte–Reihenfolge:
1. Mathematische Ausdrucke
2. Vergleichsoperatoren von links nach rechts
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 14
MATLAB Grundlagen
Logische Operatoren
• Logische Operatoren: ~ NOT, & AND, | OR, xor XOR
• Logische Operatoren konnen auf Skalare, Vektoren und
Matrizen angewendet werden.
• Werte: Null ist logisch falsch, alle anderen Werte sind
logisch wahr. Ergebnisse immer 0 oder 1.
• Auswerte–Reihenfolge:
1. Mathematische Ausdrucke
2. NOT
3. UND und ODER von links nach rechts
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 15
MATLAB Grundlagen
Weitere Operatoren und Logical Indexing
• “Shortcut“-Operatoren: && (AND) und || (OR)
Abbruch bei eindeutigem Ergebnis: (1 || ausdruck)
ausdruck wird nicht ausgewertet
• Ein Elemente wahr: any(vektor)
• Jedes Elemente wahr: all(vektor)
• Indizes wahrer Elemente: find(vektor)
• Logical Indexing: a(a<0) = 1
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 16
MATLAB Grundlagen
Ablaufsteuerung: Verzweigungen
IF–Verzweigung
if ausdruckbefehle
elseif ausdruckbefehle
else
befehleend
SWITCH–Verzweigung
switch ausdruckcase ausdruck
befehlecase ausdruck ausdruck ...
befehleotherwise
befehleend
• Trennen der Ausdrucke und Befehle sinnvoll (“,“, “;“)
• Verschachtelungen von if und switch moglich
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 17
MATLAB Grundlagen
Ablaufsteuerung: Schleifen
• FOR: for variable = ausdruck
befehle
end
for n = 1:1:10 ,
f = n^2,
end
• WHILE: while ausdruck
befehle
end
while w > 1 ,
w = w + 1 ;
end
• Schleife: – Uberspringen: continue
– Abbrechen: break
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 18
MATLAB Grundlagen
MATLAB–Skripts
• M–File: Befehle in ASCII–Datei mit Endung .m
• Kommentar: % Kommentarzeile%{ ... %} Mehrzeiliger Kommentar%% Kommentar als Cell-Divider
• Umbruch innerhalb eines Befehls: ...
• Anzeigen der Befehle und Kommentare: echo on
• Seitenweise Ausgabe: more on
• Anzeigen der Datei: type datei
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 19
MATLAB Grundlagen
MATLAB–Funktionen I
• Sonderform der M–Files: – Ubergabe von Parametern
– Ruckgabe von Werten
– Lokale Variablen
• Definition: function [var] = functionname (par)
• Interne Hilfsgroßen: nargin, nargout
• Fehlerabbruch mit Hilfe: error(’info’)
• Geschachtelte Funktionen moglich
• Hilfetext in Funktionen: % Hilfetext
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 20
MATLAB Grundlagen
MATLAB–Funktionen II
• Lokale Variablen innerhalb der Funktion werden nach
jedem Aufruf der Funktion wieder geloscht.
• Statische Variable: persistent var
Bleiben nach Funktionsaufruf mit ihrem Wert erhalten.
• Globale Variablen: global var
Mussen in der Funktion und Workspace als global de-
finiert werden und sind von uberall aus sichtbar!
Loschen mit: clear global
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 21
MATLAB Grundlagen
MATLAB–Funktionen III
• Function Handle: f handle = @funktion
Informationen: functions(f handle)
Aufruf: [y1, ..., ym] = feval (f handle, x1, ..., xn)
• Inline Functions: f = inline (funktion,var)
• Pseudo-Code: pcode (funktion)
• Entfernen aller Funktionen: clear functions
Vorlesung Matlab/Simulink
Dipl.-Ing. U. Wohlfarth 22