MATLAB Grundlagen Simulation mit Matlab/Simulink
Was ist MATLAB? Softwarepaket zur numerischen Mathematik Speziell für Vektoren & Matrizen: MATrix LABoratory Basismodul für allgemeine Mathematik, Ein/Ausgabe, Programmablaufsteuerung Erweiterungsmodule als sog. Toolboxen Simulation mit Matlab/Simulink 1
Was ist Simulink? Graphische Oberfläche zur Modellierung von physikalischen Systemen mittels Signalflußgraphen Ergänzungspaket zu MATLAB (Toolbox) Simulink Erweiterung: Blocksets (SimPowerSystems) Sine Wave Clock 80 Constant Product1 1 Gain e u Math Function Product2 Product3 1 Gain1 Mux gedaempfte Sinusschwingung Simulation mit Matlab/Simulink 2
Was ist Stateflow? Grafische Erweiterung zu Simulink Modellierung von Zustandsautomaten Vollständige Integration in Simulink und Real-Time- Workshop schaltung/chart Gang 1 G1/ G3/ G5/ entry:gang=1; entry:gang=3; entry:gang=5; H12 N21 N10 N20 H01 H03 N30 Leerlauf/ N50 H05 H02 H04 N40 G2/ entry:gang=2; G4/ entry:gang=4; Printed 10 Oct 2004 16:41:01 Simulation mit Matlab/Simulink 3
Toolboxen I MATLAB Products Design Automation Products MATLAB MATLAB Compiler & C/C++ Math Library MATLAB C/C++ Graphics Library Database Toolbox Data Acquisition Toolbox Excel Link MATLAB Report Generator MATLAB Runtime Server MATLAB Web Server MatrixVB Simulink Embedded Target Infineon C166 Embedded Target Motorola HC12 Embedded Target Motorola MPC555 Embedded Target TI C2000(TM) DSP Embedded Target TI C6000(TM) DSP Real-Time Windows TargetReal-Time Workshop Real-Time Workshop Embedded Coder SimDriveline SimMechanics SimPowerSystems Simulink Accelerator Simulink Control Design Simulink Report Generator Simulink Response Optimization Simulink Verification and Validation Stateflow und Stateflow Coder xpc Target Simulation mit Matlab/Simulink 4
Toolboxen II Application Toolboxes Signal & Image Processing Signal Processing Image Processing Wavelet Higher-Order Spectral Analysis Quantized Filtering Control Design Control System Fuzzy Logic Robust Control Nonlinear Control Design Blockset System Identification µ-analysis and Synthesis LMI Control Model Predictive Control QFT Control Design General Optimization Statistics Neural Network Symbolic/Extended Symbolic Math Partial Differential Equation Financial Financial Derivatives Financial Time Series GARCH Mapping Spline Datafeed Simulation mit Matlab/Simulink 5
Inhalt der Vorlesung MATLAB 1. Grundlagen 2. Eingabe und Ausgabe 3. Regelungstechnische Funktionen: Control System TB 4. Signalverarbeitung: Signal Processing TB 5. Optimierung: Optimization TB Simulink 6. Grundlagen 7. Lineare und nichtlineare Systeme 8. Stateflow Simulation mit Matlab/Simulink 6
Command Desktop Integrierte Entwicklungsumgebung: Command Window Command History Workspace Browser Current Directory Browser Variable Browser Quick Access Toolbar Toolstrips für Home, Plots, Apps, Shortcuts Profiler profile viewer Editor Simulation mit Matlab/Simulink 7
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 Handbücher als PDF-Dateien vom Helpdesk aus Simulation mit Matlab/Simulink 8
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 Simulation mit Matlab/Simulink 9
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 über full und sparse einstellbar Simulation mit Matlab/Simulink 10
Ausgeben, Grundrechenarten und Konstanten Komma oder Leerzeichen nach der Operation lassen die Ausgabe zu, der Strichpunkt unterdrückt 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 Imaginäre Einheit 1 Simulation mit Matlab/Simulink 11
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 für Zeile/Spalte: zeile 1 = matrix(1,:) Zusammensetzen: matrix = [ vektor ; 5 6 7 ] Letztes Element: matrix(:,end) Simulation mit Matlab/Simulink 12
Spezielle Vektoren und Matrizen Elemente mit gleicher Schrittweite: fort = (1:2:100) Bestimmte Anzahl anzahl von Elementen innerhalb eines 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) Simulation mit Matlab/Simulink 13
Mathematische Funktionen Viele mathematische & trigonometrische Funktionen sqrt(x) Quadratwurzel exp(x) Exponentialfunktion log(x) Natürlicher Logarithmus log10(x) Zehner Logarithmus rem(x, y) Rest nach Division x/y round(x) Runden ceil (x) Rundet nach oben 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) Imaginärteil max(v) größtes Vektorelement angle(x) Phase 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 Simulation mit Matlab/Simulink 14
Rechnen mit Vektoren und Matrizen Viele Operationen können auf Vektoren und Matrizen angewendet werden Elementeweises Ausführen mit dem Punktoperator. Spezielle Vektoren- und Matrixfunktionen:. Transposition Transposition kk inv(x) Inversion det(x) Determinante rank(x) Rang eig(x) Eigenwerte Simulation mit Matlab/Simulink 15
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 Simulation mit Matlab/Simulink 16
Verwalten von Variablen Dimension: eines Vektors: length(vektor) einer Matrix: size(matrix) Anzeigen: who [variable]: Nur Namen whos [variable]: Namen, Größe, Bytes und Klasse Löschen: einer Variablen: clear variable aller Variablen: clear, clear all Simulation mit Matlab/Simulink 17
Vergleichsoperatoren Vergleichsoperatoren: ==, ~=, <, <=, >, >=, Test auf Existenz einer Variable x: exist( x ) Vergleichsoperatoren können auf Skalare, Vektoren und Matrizen angewendet werden. Werte: Null (logisch falsch) bei Nichterfüllung der Operation, andernfalls Eins (logisch wahr) Auswerte Reihenfolge: 1. Mathematische Ausdrücke 2. Vergleichsoperatoren von links nach rechts Simulation mit Matlab/Simulink 18
Logische Operatoren Logische Operatoren: ~ NOT, & AND, OR, xor XOR Logische Operatoren können 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 Ausdrücke 2. NOT 3. UND und ODER von links nach rechts Simulation mit Matlab/Simulink 19
Weitere Operatoren und Logical Indexing Shortcut -Operatoren: && (AND) und (OR) Abbruch bei eindeutigem Ergebnis: ausdruck wird nicht ausgewertet (1 ausdruck) Ein Elemente wahr: Jedes Elemente wahr: any(vektor) all(vektor) Indizes wahrer Elemente: find(vektor) Logical Indexing: a(a<0) = 1 Simulation mit Matlab/Simulink 20
Ablaufsteuerung: Verzweigungen IF Verzweigung if ausdruck bef ehle elseif ausdruck bef ehle else bef ehle end SWITCH Verzweigung switch ausdruck case ausdruck bef ehle case ausdruck ausdruck... bef ehle otherwise bef ehle end Trennen der Ausdrücke und Befehle sinnvoll (,, ; ) Verschachtelungen von if und switch möglich Simulation mit Matlab/Simulink 21
Ablaufsteuerung: Schleifen FOR: for variable = ausdruck end bef ehle for n = 1:1:10, end f = n^2, WHILE: while ausdruck end bef ehle while w > 1, end w = w + 1 ; Schleife: Überspringen: continue Abbrechen: break Simulation mit Matlab/Simulink 22
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: Anzeigen der Datei: more on type datei Simulation mit Matlab/Simulink 23
MATLAB Funktionen I Sonderform der M Files: Übergabe von Parametern Rückgabe von Werten Lokale Variablen Definition: function [var] = functionname (par) Interne Hilfsgrößen: nargin, nargout Fehlerabbruch mit Hilfe: error( info ) Geschachtelte Funktionen möglich Hilfetext in Funktionen: % Hilfetext Simulation mit Matlab/Simulink 24
MATLAB Funktionen II Lokale Variablen innerhalb der Funktion werden nach jedem Aufruf der Funktion wieder gelöscht. Statische Variable: persistent var Bleiben nach Funktionsaufruf mit ihrem Wert erhalten. Globale Variablen: global var Müssen in der Funktion und Workspace als global definiert werden und sind von überall aus sichtbar! Löschen mit: clear global Simulation mit Matlab/Simulink 25
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 (f unktion) Entfernen aller Funktionen: clear functions Simulation mit Matlab/Simulink 26