MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen...

23
MATLAB Grundlagen MATLAB Grundlagen Vorlesung Matlab/Simulink Dipl.-Ing. U. Wohlfarth

Transcript of MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen...

Page 1: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

MATLAB Grundlagen

MATLAB

Grundlagen

Vorlesung Matlab/Simulink

Dipl.-Ing. U. Wohlfarth

Page 2: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 3: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 4: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 5: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 6: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 7: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 8: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 9: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 10: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 11: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 12: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 13: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 14: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 15: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 16: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 17: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 18: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 19: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 20: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 21: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 22: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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

Page 23: MATLAB Grundlagen - hs-augsburg.dewohlfart/download/folien_grundlagen.pdf · MATLABGrundlagen ToolboxenI MATLAB Products MATLAB MATLABCompiler& C/C++MathLibrary MATLABC/C++GraphicsLibrary

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