1 Einführung | 15 |
2 MATLAB Grundlagen | 19 |
2.1 Erste Schritte mit Matlab | 19 |
2.1.1 Der Matlab-Desktop | 19 |
2.1.2 Die Matlab-Hilfe | 21 |
2.1.3 Zuweisungen | 22 |
2.1.4 Mathematische Funktionen und Operatoren | 23 |
2.2 Variablen | 23 |
2.2.1 Datentypen in Matlab | 23 |
2.2.2 Vektoren und Matrizen | 24 |
2.2.3 Mathematische Funktionen und Operatoren für Vektoren und Matrizen | 26 |
2.2.4 Strukturen | 28 |
2.2.5 Cell Arrays | 29 |
2.2.6 Verwalten von Variablen | 30 |
2.3 Ablaufsteuerung | 31 |
2.3.1 Vergleichsoperatoren und logische Operatoren | 31 |
2.3.2 Verzweigungsbefehle if und switch | 33 |
2.3.3 Schleifenbefehle for und while | 34 |
2.3.4 Abbruchbefehle continue, break und return | 34 |
2.4 Der Matlab-Editor | 35 |
2.5 Matlab-Funktionen | 38 |
2.5.1 Funktionen mit variabler Parameterzahl | 39 |
2.5.2 Lokale, globale und statische Variablen | 40 |
2.5.3 Hilfetext in Funktionen | 41 |
2.5.4 Function Handles | 42 |
2.5.5 Funktionen als Inline Object | 42 |
2.5.6 P-Code und clear functions | 43 |
2.6 Code-Optimierung in Matlab | 43 |
2.6.1 Der Matlab-Profiler | 43 |
2.6.2 Optimierung von Rechenzeit und Speicherbedarf | 44 |
2.6.3 Tipps zur Fehlersuche | 45 |
2.7 übungsaufgaben | 47 |
2.7.1 Rechengenauigkeit | 47 |
2.7.2 Fibonacci-Folge | 47 |
2.7.3 Funktion gerade | 47 |
2.7.4 Berechnungszeiten ermitteln | 48 |
3 Eingabe und Ausgabe in MATLAB | 49 |
3.1 Steuerung der Bildschirmausgabe | 49 |
3.2 Benutzerdialoge | 50 |
3.2.1 Text in Matlab (Strings) | 50 |
3.2.2 Eingabedialog | 51 |
3.2.3 Formatierte Ausgabe | 51 |
3.3 Import und Export von Daten | 52 |
3.3.1 Standardformate | 52 |
3.3.2 Formatierte Textdateien | 53 |
3.3.3 Binärdateien | 55 |
3.4 Betriebssystemaufruf und Dateiverwaltung | 56 |
3.5 Grafische Darstellung | 57 |
3.5.1 Die Figure – Grundlage einer Matlab-Grafik | 57 |
3.5.2 Achsen und Beschriftung | 59 |
3.5.3 Plot-Befehle für zweidimensionale Grafiken (2D-Grafik) | 60 |
3.5.4 Plot-Befehle für dreidimensionale Grafiken (3D-Grafik) | 64 |
3.5.5 Perspektive | 65 |
3.5.6 Importieren, Exportieren und Drucken von Grafiken | 67 |
3.6 Grafische Benutzeroberfläche (GUI) | 68 |
3.6.1 GUI-Layout | 69 |
3.6.2 GUI-Funktionalität | 72 |
3.6.3 GUI ausführen und exportieren | 74 |
3.6.4 Aufbau des Application-M-File | 75 |
3.7 Tipps rund um die Matlab-Figure | 77 |
3.8 Übungsaufgaben | 80 |
3.8.1 Harmonisches Mittel | 80 |
3.8.2 Einschwingvorgang | 80 |
3.8.3 Gauß-Glocke | 80 |
3.8.4 Spirale und Doppelhelix | 81 |
3.8.5 Funktion geradevek | 82 |
4 Differentialgleichungen in MATLAB | 83 |
4.1 Anfangswertprobleme (ODEs, DAEs und DDEs) | 83 |
4.1.1 Gewöhnliche Differentialgleichungen (ODEs) | 83 |
4.1.2 Differential-algebraische Gleichungen (DAEs) | 96 |
4.1.3 Differentialgleichungen mit Totzeiten (DDEs) | 99 |
4.1.4 Implizite Differentialgleichungen | 102 |
4.2 Randwertprobleme für gewöhnliche Differentialgleichungen | 104 |
4.3 Partielle Differentialgleichungen (PDEs) | 110 |
4.4 Übungsaufgaben | 114 |
4.4.1 Feder-Masse-Schwinger | 114 |
4.4.2 Elektrischer Schwingkreis | 114 |
4.4.3 Springender Ball | 115 |
4.4.4 Kettenlinie | 115 |
5 Regelungstechnische Funktionen – Control System Toolbox | 117 |
5.1 Modellierung linearer zeitinvarianter Systeme als LTI-Modelle | 117 |
5.1.1 Übertragungsfunktion – Transfer Function TF | 118 |
5.1.2 Nullstellen-Polstellen-Darstellung – Zero-Pole-Gain ZPK | 120 |
5.1.3 Zustandsdarstellung – State-Space SS | 123 |
5.1.4 Frequenzgang-Daten-Modelle – Frequency Response Data FRD | 124 |
5.1.5 Zeitdiskrete Darstellung von LTI-Modellen | 126 |
5.1.6 Zeitverzögerungen in LTI-Modellen | 128 |
5.2 Arbeiten mit LTI-Modellen | 131 |
5.2.1 Eigenschaften von LTI-Modellen | 131 |
5.2.2 Schnelle Datenabfrage | 134 |
5.2.3 Rangfolge der LTI-Modelle | 135 |
5.2.4 Vererbung von LTI-Modell-Eigenschaften | 136 |
5.2.5 Umwandlung in einen anderen LTI-Modell-Typ | 136 |
5.2.6 Arithmetische Operationen | 137 |
5.2.7 Auswählen, verändern und verknüpfen von LTI-Modellen | 139 |
5.2.8 Spezielle LTI-Modelle | 142 |
5.2.9 Umwandlung zwischen zeitkontinuierlichen und zeitdiskreten Systemen | 143 |
5.3 Analyse von LTI-Modellen | 147 |
5.3.1 Allgemeine Eigenschaften | 147 |
5.3.2 Modell-Dynamik | 149 |
5.3.3 Systemantwort im Zeitbereich | 157 |
5.3.4 Systemantwort im Frequenzbereich | 161 |
5.3.5 Interaktive Modellanalyse mit dem LTI-Viewer | 170 |
5.3.6 Ordnungsreduzierte Darstellung | 173 |
5.3.7 Zustandsbeschreibungsformen | 176 |
5.4 Reglerentwurf | 181 |
5.4.1 Reglerentwurf mittels Wurzelortskurve | 181 |
5.4.2 Reglerentwurf mit dem Control and Estimation Tools Manager und dem SISO Design Tool | 185 |
5.4.3 Zustandsregelung und Zustandsbeobachtung | 187 |
5.4.4 Reglerentwurf mittels Polplatzierung | 189 |
5.4.5 Linear-quadratisch optimale Regelung | 193 |
5.5 Probleme der numerischen Darstellung | 200 |
5.5.1 Fehlerbegriff | 200 |
5.5.2 Kondition eines Problems | 201 |
5.5.3 Numerische Instabilität | 202 |
5.5.4 Bewertung der LTI-Modell-Typen nach numerischen Gesichtspunkten | 203 |
5.6 übungsaufgaben | 203 |
5.6.1 Erstellen von LTI-Modellen | 203 |
5.6.2 Verzögerte Übertragungsglieder | 205 |
5.6.3 Verzögerte Übertragungsglieder zeitdiskretisiert | 206 |
5.6.4 Typumwandlung | 207 |
5.6.5 Stabilitätsanalyse | 207 |
5.6.6 Regelung der stabilen PT2-Übertragungsfunktion | 209 |
5.6.7 Regelung der instabilen PT2-Übertragungsfunktion | 210 |
5.6.8 Kondition und numerische Instabilität | 213 |
6 Signalverarbeitung – Signal Processing Toolbox | 215 |
6.1 Aufbereitung der Daten im Zeitbereich | 215 |
6.1.1 Interpolation und Approximation | 215 |
6.1.2 Änderung der Abtastrate | 218 |
6.1.3 Weitere Werkzeuge | 219 |
6.2 Spektralanalyse | 221 |
6.2.1 Diskrete Fouriertransformation (DFT) | 221 |
6.2.2 Averaging | 223 |
6.2.3 Fensterung | 223 |
6.2.4 Leistungsspektren | 226 |
6.3 Korrelation | 228 |
6.4 Analoge und Digitale Filter | 233 |
6.4.1 Analoge Filter | 233 |
6.4.2 Digitale FIR-Filter | 235 |
6.4.3 Digitale IIR-Filter | 237 |
6.4.4 Filterentwurf mit Prototyp-Tiefpässen | 240 |
6.5 Übungsaufgaben | 243 |
6.5.1 Signaltransformation im Frequenzbereich | 243 |
6.5.2 Signalanalyse und digitale Filterung | 243 |
6.5.3 Analoger Bandpass | 244 |
6.5.4 Digitaler IIR-Bandpass | 244 |
7 Optimierung – Optimization Toolbox | 245 |
7.1 Inline Objects | 246 |
7.2 Algorithmensteuerung | 247 |
7.3 Nullstellenbestimmung | 250 |
7.3.1 Skalare Funktionen | 250 |
7.3.2 Vektorwertige Funktionen / Gleichungssysteme | 254 |
7.4 Minimierung nichtlinearer Funktionen | 259 |
7.5 Minimierung unter Nebenbedingungen | 265 |
7.5.1 Nichtlineare Minimierung unter Nebenbedingungen | 265 |
7.5.2 Quadratische Programmierung | 271 |
7.5.3 Lineare Programmierung | 274 |
7.6 Methode der kleinsten Quadrate (Least Squares) | 278 |
7.7 Optimierung eines Simulink-Modells | 285 |
7.8 Übungsaufgaben | 288 |
7.8.1 Nullstellenbestimmung | 288 |
7.8.2 Lösen von Gleichungssystemen | 288 |
7.8.3 Minimierung ohne Nebenbedingungen | 288 |
7.8.4 Minimierung unter Nebenbedingungen | 288 |
7.8.5 Ausgleichspolynom | 289 |
7.8.6 Curve Fitting | 289 |
7.8.7 Lineare Programmierung | 289 |
8 Simulink Grundlagen | 291 |
8.1 Starten von Simulink | 291 |
8.2 Erstellen und Editieren eines Signalflussplans | 295 |
8.3 Simulations- und Parametersteuerung | 297 |
8.4 Signale und Datenobjekte | 298 |
8.4.1 Arbeiten mit Signalen | 298 |
8.4.2 Arbeiten mit Datenobjekten | 300 |
8.4.3 Der Model Explorer | 302 |
8.5 Signalerzeugung und -ausgabe | 303 |
8.5.1 Bibliothek: Sources – Signalerzeugung | 303 |
8.5.2 Bibliothek: Sinks, Signal Logging und der Simulation Data Inspector | 309 |
8.5.3 Der Signal & Scope Manager | 318 |
8.6 Mathematische Verknüpfungen und Operatoren | 319 |
8.6.1 Bibliothek: Math Operations | 319 |
8.6.2 Bibliothek: Logic and Bit Operations | 322 |
8.7 Simulationsparameter | 323 |
8.7.1 Die Configuration Parameters Dialogbox | 323 |
8.7.2 Fehlerbehandlung und Simulink Debugger | 338 |
8.8 Verwaltung und Organisation eines Simulink-Modells | 340 |
8.8.1 Arbeiten mit Callback Funktionen | 340 |
8.8.2 Der Model Browser | 343 |
8.8.3 Bibliotheken: Signal Routing und Signal Attributes – Signalführung und -eigenschaften | 344 |
8.8.4 Drucken und Exportieren eines Simulink-Modells | 348 |
8.9 Subsysteme und Model Referencing | 349 |
8.9.1 Erstellen von Subsystemen / Bibliothek: Ports & Subsystems | 349 |
8.9.2 Maskierung von Subsystemen | 354 |
8.9.3 Erstellen einer eigenen Blockbibliothek | 357 |
8.9.4 Model Referencing | 359 |
8.10 übungsaufgaben | 362 |
8.10.1 Nichtlineare Differentialgleichungen | 362 |
8.10.2 Gravitationspendel | 363 |
9 Lineare und nichtlineare Systeme in Simulink | 367 |
9.1 Bibliothek: Continuous – Zeitkontinuierliche Systeme | 367 |
9.2 Analyse von Simulationsergebnissen | 373 |
9.2.1 Linearisierung mit der linmod-Befehlsfamilie | 373 |
9.2.2 Bestimmung eines Gleichgewichtspunkts | 378 |
9.2.3 Linearisierung mit dem Simulink Control Design | 379 |
9.3 Bibliothek: Discontinuities – Nichtlineare Systeme | 382 |
9.4 Bibliothek: Lookup Tables – Nachschlagetabellen | 386 |
9.5 Bibliothek: User-Defined Functions – Benutzer-definierbare Funktionen | 388 |
9.5.1 Bibliotheken: Model Verification und Model-Wide Utilities – Prüfblöcke und Modell-Eigenschaften | 392 |
9.6 Algebraische Schleifen | 393 |
9.7 S-Funktionen | 394 |
9.8 übungsaufgaben | 402 |
9.8.1 Modellierung einer Gleichstrom-Nebenschluss-Maschine (GNM) | 402 |
9.8.2 Modellierung einer Pulsweitenmodulation (PWM) | 402 |
9.8.3 Aufnahme von Bode-Diagrammen | 404 |
10 Abtastsysteme in Simulink | 407 |
10.1 Allgemeines | 407 |
10.2 Bibliothek: Discrete – Zeitdiskrete Systeme | 408 |
10.3 Simulationsparameter | 411 |
10.3.1 Rein zeitdiskrete Systeme | 412 |
10.3.2 Hybride Systeme (gemischt zeitdiskret und zeitkontinuierlich) | 413 |
10.4 Der Model Discretizer | 416 |
10.5 Übungsaufgaben | 419 |
10.5.1 Zeitdiskreter Stromregler für GNM | 419 |
10.5.2 Zeitdiskreter Anti-Windup-Drehzahlregler für GNM | 419 |
11 Regelkreise in Simulink | 423 |
11.1 Die Gleichstrom-Nebenschluss-Maschine GNM | 423 |
11.1.1 Initialisierung der Maschinendaten | 424 |
11.1.2 Simulink-Modell | 425 |
11.2 Untersuchung der Systemeigenschaften | 427 |
11.2.1 Untersuchung mit Simulink | 427 |
11.2.2 Untersuchung des linearisierten Modells mit Matlab und der Control System Toolbox | 428 |
11.2.3 Interaktive Untersuchung eines Modells mit Simulink Control Design | 430 |
11.3 Kaskadenregelung | 433 |
11.3.1 Stromregelung | 433 |
11.3.2 Drehzahlregelung | 435 |
11.4 Zustandsbeobachter | 438 |
11.4.1 Luenberger-Beobachter | 440 |
11.4.2 Störgrößen-Beobachter | 441 |
11.5 Zustandsregelung mit Zustandsbeobachter | 443 |
11.6 Initialisierungsdateien | 447 |
11.6.1 Gleichstrom-Nebenschluss-Maschine | 447 |
11.6.2 Stromregelung | 447 |
11.6.3 Drehzahlregelung | 448 |
11.6.4 Grundeinstellung Zustandsbeobachter | 448 |
11.6.5 Zustandsbeobachtung mit Luenberger-Beobachter | 449 |
11.6.6 Zustandsbeobachtung mit Störgrößen-Beobachter | 449 |
11.6.7 Zustandsregelung mit Zustandsbeobachter | 450 |
11.6.8 Zustandsregelung mit Luenberger-Beobachter | 450 |
11.6.9 Zustandsregelung mit Störgrößen-Beobachter | 451 |
11.7 Übungsaufgaben | 452 |
11.7.1 Zustandsdarstellung GNM | 452 |
11.7.2 Systemanalyse | 452 |
11.7.3 Entwurf eines Kalman-Filters | 453 |
11.7.4 Entwurf eines LQ-optimierten Zustandsreglers | 453 |
12 Stateflow | 455 |
12.1 Elemente von Stateflow | 456 |
12.1.1 Grafische Elemente eines Charts | 458 |
12.1.2 Chart-Eigenschaften und Trigger-Methoden | 468 |
12.1.3 Nichtgrafische Elemente eines Charts | 470 |
12.2 Strukturierung und Hierarchiebildung | 475 |
12.2.1 Superstates | 475 |
12.2.2 Subcharts | 480 |
12.2.3 Grafische Funktionen | 482 |
12.2.4 Truth Tables | 484 |
12.2.5 Matlab Functions in Stateflow Charts | 487 |
12.2.6 Simulink Functions in Stateflow | 489 |
12.3 Action Language | 490 |
12.3.1 Numerische Operatoren | 490 |
12.3.2 Logische Operatoren | 490 |
12.3.3 Unäre Operatoren und Zuweisungsaktionen | 490 |
12.3.4 Detektion von Wertänderungen | 491 |
12.3.5 Datentyp-Umwandlungen | 492 |
12.3.6 Aufruf von Matlab-Funktionen und Zugriff auf den Workspace | 493 |
12.3.7 Variablen und Events in Action Language | 495 |
12.3.8 Temporallogik-Operatoren | 497 |
12.4 Anwendungsbeispiel: Getränkeautomat | 498 |
12.5 Anwendungsbeispiel: Steuerung eines Heizgebläses | 500 |
12.6 Anwendungsbeispiel: Springender Ball | 503 |
12.7 Übungsaufgaben | 505 |
12.7.1 Mikrowellenherd | 505 |
12.7.2 Zweipunkt-Regelung | 506 |
Symbolverzeichnis | 507 |
Literaturverzeichnis | 511 |
Index | 515 |