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 | 24 |
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 Mehrdimensionale Arrays | 30 |
2.2.7 Verwalten von Variablen | 31 |
2.3 Ablaufsteuerung | 33 |
2.3.1 Vergleichsoperatoren und logische Operatoren | 33 |
2.3.2 Verzweigungsbefehle if und switch | 35 |
2.3.3 Schleifenbefehle for und while | 35 |
2.3.4 Abbruchbefehle continue, break und return | 36 |
2.4 Der Matlab-Editor | 37 |
2.5 Matlab-Funktionen | 40 |
2.5.1 Funktionen mit variabler Parameterzahl | 41 |
2.5.2 Lokale, globale und statische Variablen | 42 |
2.5.3 Hilfetext in Funktionen | 43 |
2.5.4 Function Handles | 44 |
2.5.5 Anonymous Functions | 44 |
2.5.6 P-Code und clear functions | 45 |
2.6 Code-Optimierung in Matlab | 45 |
2.6.1 Der Matlab-Profiler | 45 |
2.6.2 Optimierung von Rechenzeit und Speicherbedarf | 46 |
2.6.3 Tipps zur Fehlersuche und Fehlervermeidung | 47 |
2.7 Übungsaufgaben | 49 |
2.7.1 Rechengenauigkeit | 49 |
2.7.2 Fibonacci-Folge | 49 |
2.7.3 Funktion gerade | 49 |
2.7.4 Berechnungszeiten ermitteln | 50 |
3 Eingabe und Ausgabe in MATLAB | 51 |
3.1 Steuerung der Bildschirmausgabe | 51 |
3.2 Benutzerdialoge | 52 |
3.2.1 Text in Matlab (Strings) | 52 |
3.2.2 Eingabedialog | 53 |
3.2.3 Formatierte Ausgabe | 53 |
3.3 Import und Export von Daten | 54 |
3.3.1 Standardformate | 54 |
3.3.2 Formatierte Textdateien | 55 |
3.3.3 Binärdateien | 57 |
3.4 Betriebssystemaufruf und Dateiverwaltung | 58 |
3.5 Grafische Darstellung | 59 |
3.5.1 Die Figure – Grundlage einer Matlab-Grafik | 59 |
3.5.2 Achsen und Beschriftung | 61 |
3.5.3 Plot-Befehle für zweidimensionale Grafiken (2D-Grafik) | 62 |
3.5.4 Plot-Befehle für dreidimensionale Grafiken (3D-Grafik) | 66 |
3.5.5 Perspektive | 67 |
3.5.6 Importieren, Exportieren und Drucken von Grafiken | 69 |
3.6 Grafische Benutzeroberfläche (GUI) | 70 |
3.6.1 GUI-Layout | 71 |
3.6.2 GUI-Funktionalität | 74 |
3.6.3 GUI ausführen und exportieren | 76 |
3.6.4 Aufbau des Application-M-File | 76 |
3.7 Tipps rund um die Matlab-Figure | 79 |
3.8 Übungsaufgaben | 82 |
3.8.1 Harmonisches Mittel | 82 |
3.8.2 Einschwingvorgang | 82 |
3.8.3 Gauß-Glocke | 82 |
3.8.4 Spirale und Doppelhelix | 83 |
3.8.5 Funktion geradevek | 84 |
4 Differentialgleichungen in MATLAB | 85 |
4.1 Anfangswertprobleme (ODEs, DAEs und DDEs) | 85 |
4.1.1 Gewöhnliche Differentialgleichungen (ODEs) | 85 |
4.1.2 Differential-algebraische Gleichungen (DAEs) | 98 |
4.1.3 Differentialgleichungen mit Totzeiten (DDEs) | 101 |
4.1.4 Implizite Differentialgleichungen | 104 |
4.2 Randwertprobleme für gewöhnliche Differentialgleichungen | 106 |
4.3 Partielle Differentialgleichungen (PDEs) | 112 |
4.4 Übungsaufgaben | 115 |
4.4.1 Feder-Masse-Schwinger | 115 |
4.4.2 Elektrischer Schwingkreis | 115 |
4.4.3 Springender Ball | 116 |
4.4.4 Kettenlinie | 117 |
5 Regelungstechnische Funktionen – Control System Toolbox | 119 |
5.1 Modellierung linearer zeitinvarianter Systeme als LTI-Modelle | 119 |
5.1.1 Übertragungsfunktion – Transfer Function TF | 120 |
5.1.2 Nullstellen-Polstellen-Darstellung – Zero-Pole-Gain ZPK | 122 |
5.1.3 Zustandsdarstellung – State-Space SS | 125 |
5.1.4 Frequenzgang-Daten-Modelle – Frequency Response Data FRD | 126 |
5.1.5 Zeitdiskrete Darstellung von LTI-Modellen | 128 |
5.1.6 Zeitverz¨ogerungen in LTI-Modellen | 130 |
5.2 Arbeiten mit LTI-Modellen | 133 |
5.2.1 Eigenschaften von LTI-Modellen | 133 |
5.2.2 Schnelle Datenabfrage | 136 |
5.2.3 Rangfolge der LTI-Modelle | 137 |
5.2.4 Vererbung von LTI-Modell-Eigenschaften | 138 |
5.2.5 Umwandlung in einen anderen LTI-Modell-Typ | 138 |
5.2.6 Arithmetische Operationen | 139 |
5.2.7 Auswählen, verändern und verknüpfen von LTI-Modellen | 141 |
5.2.8 Spezielle LTI-Modelle | 144 |
5.2.9 Umwandlung zwischen zeitkontinuierlichen und zeitdiskreten Systemen | 145 |
5.3 Analyse von LTI-Modellen | 149 |
5.3.1 Allgemeine Eigenschaften | 149 |
5.3.2 Modell-Dynamik | 151 |
5.3.3 Systemantwort im Zeitbereich | 159 |
5.3.4 Systemantwort im Frequenzbereich | 163 |
5.3.5 Interaktive Modellanalyse mit dem LTI-Viewer | 172 |
5.3.6 Ordnungsreduzierte Darstellung | 175 |
5.3.7 Zustandsbeschreibungsformen | 178 |
5.4 Reglerentwurf | 183 |
5.4.1 Reglerentwurf mittels Wurzelortskurve | 183 |
5.4.2 Reglerentwurf mit dem Control and Estimation Tools Manager und dem SISO Design Tool | 187 |
5.4.3 Zustandsregelung und Zustandsbeobachtung | 189 |
5.4.4 Reglerentwurf mittels Polplatzierung | 191 |
5.4.5 Linear-quadratisch optimale Regelung | 195 |
5.5 Probleme der numerischen Darstellung | 202 |
5.5.1 Fehlerbegriff | 202 |
5.5.2 Kondition eines Problems | 203 |
5.5.3 Numerische Instabilität | 204 |
5.5.4 Bewertung der LTI-Modell-Typen nach numerischen Gesichtspunkten | 205 |
5.6 Übungsaufgaben | 205 |
5.6.1 Erstellen von LTI-Modellen | 205 |
5.6.2 Verzögerte Übertragungsglieder | 207 |
5.6.3 Verzögerte Übertragungsglieder zeitdiskretisiert | 208 |
5.6.4 Typumwandlung | 209 |
5.6.5 Stabilitätsanalyse | 209 |
5.6.6 Regelung der stabilen PT2-Übertragungsfunktion | 211 |
5.6.7 Regelung der instabilen PT2-Übertragungsfunktion | 212 |
5.6.8 Kondition und numerische Instabilität | 215 |
6 Signalverarbeitung – Signal Processing Toolbox | 217 |
6.1 Aufbereitung der Daten im Zeitbereich | 217 |
6.1.1 Interpolation und Approximation | 217 |
6.1.2 Änderung der Abtastrate | 220 |
6.1.3 Weitere Werkzeuge | 222 |
6.2 Spektralanalyse | 223 |
6.2.1 Diskrete Fouriertransformation (DFT) | 223 |
6.2.2 Averaging | 225 |
6.2.3 Fensterung | 225 |
6.2.4 Leistungsspektren | 228 |
6.3 Korrelation | 230 |
6.4 Analoge und Digitale Filter | 235 |
6.4.1 Analoge Filter | 235 |
6.4.2 Digitale FIR-Filter | 237 |
6.4.3 Digitale IIR-Filter | 239 |
6.4.4 Filterentwurf mit Prototyp-Tiefpässen | 242 |
6.5 Übungsaufgaben | 245 |
6.5.1 Interpolation | 245 |
6.5.2 Spektralanalyse | 245 |
6.5.3 Signaltransformation im Frequenzbereich | 246 |
6.5.4 Lecksuche mittels Korrelation | 246 |
6.5.5 Signalanalyse und digitale Filterung | 247 |
6.5.6 Analoger Bandpass | 247 |
6.5.7 Digitaler IIR-Bandpass | 247 |
7 Optimierung – Optimization Toolbox | 249 |
7.1 Anonymous Functions | 250 |
7.2 Algorithmensteuerung | 251 |
7.3 Nullstellenbestimmung | 254 |
7.3.1 Skalare Funktionen | 254 |
7.3.2 Vektorwertige Funktionen / Gleichungssysteme | 258 |
7.4 Minimierung nichtlinearer Funktionen | 263 |
7.5 Minimierung unter Nebenbedingungen | 269 |
7.5.1 Nichtlineare Minimierung unter Nebenbedingungen | 270 |
7.5.2 Quadratische Programmierung | 276 |
7.5.3 Lineare Programmierung | 278 |
7.6 Methode der kleinsten Quadrate (Least Squares) | 282 |
7.7 Optimierung eines Simulink-Modells | 289 |
7.8 ÜUbungsaufgaben | 292 |
7.8.1 Nullstellenbestimmung | 292 |
7.8.2 Lösen von Gleichungssystemen | 292 |
7.8.3 Minimierung ohne Nebenbedingungen | 292 |
7.8.4 Minimierung unter Nebenbedingungen | 292 |
7.8.5 Ausgleichspolynom | 293 |
7.8.6 Curve Fitting | 293 |
7.8.7 Lineare Programmierung | 293 |
8 Simulink Grundlagen | 295 |
8.1 Starten von Simulink | 296 |
8.2 Erstellen und Editieren eines Signalflussplans | 300 |
8.3 Simulations- und Parametersteuerung | 302 |
8.3.1 Interaktive Steuerung | 302 |
8.3.2 Programmatische Steuerung | 302 |
8.4 Signale und Datenobjekte | 305 |
8.4.1 Arbeiten mit Signalen | 305 |
8.4.2 Arbeiten mit Datenobjekten | 307 |
8.4.3 Der Model Explorer | 309 |
8.5 Signalerzeugung und -ausgabe | 310 |
8.5.1 Bibliothek: Sources – Signalerzeugung | 310 |
8.5.2 Bibliothek: Sinks, Signal Logging und der Simulation Data Inspector | 316 |
8.5.3 Der Signal & Scope Manager | 327 |
8.6 Mathematische Verknüpfungen und Operatoren | 329 |
8.6.1 Bibliothek: Math Operations | 329 |
8.6.2 Bibliothek: Logic and Bit Operations | 332 |
8.7 Simulationsparameter | 332 |
8.7.1 Die Model Configuration Parameters Dialogbox | 333 |
8.7.2 Numerische Integration von Differentialgleichungen | 345 |
8.7.3 Fehlerbehandlung und Simulink Debugger | 348 |
8.8 Verwaltung und Organisation eines Simulink-Modells | 349 |
8.8.1 Arbeiten mit Callbacks | 350 |
8.8.2 Der Model Browser | 353 |
8.8.3 Bibliotheken: Signal Routing und Signal Attributes – Signalführung und -eigenschaften | 353 |
8.8.4 Drucken und Exportieren eines Simulink-Modells | 358 |
8.9 Subsysteme und Model Referencing | 359 |
8.9.1 Erstellen von Subsystemen / Bibliothek: Ports & Subsystems | 359 |
8.9.2 Maskierung von Subsystemen | 364 |
8.9.3 Erstellen einer eigenen Blockbibliothek | 367 |
8.9.4 Model Referencing | 369 |
8.10 Übungsaufgaben | 372 |
8.10.1 Nichtlineare Differentialgleichungen | 372 |
8.10.2 Gravitationspendel | 373 |
9 Lineare und nichtlineare Systeme in Simulink | 377 |
9.1 Bibliothek: Continuous – Zeitkontinuierliche Systeme | 377 |
9.2 Analyse von Simulationsergebnissen | 383 |
9.2.1 Linearisierung mit der linmod-Befehlsfamilie | 383 |
9.2.2 Bestimmung eines Gleichgewichtspunkts | 388 |
9.2.3 Linearisierung mit dem Simulink Control Design | 389 |
9.3 Bibliothek: Discontinuities – Nichtlineare Systeme | 392 |
9.4 Bibliothek: Lookup Tables – Nachschlagetabellen | 396 |
9.5 Bibliothek: User-Defined Functions – Benutzer-definierbare Funktionen | 398 |
9.5.1 Bibliotheken: Model Verification und Model-Wide Utilities – Prüfblöcke und Modell-Eigenschaften | 405 |
9.6 Algebraische Schleifen | 406 |
9.7 S-Funktionen | 407 |
9.8 Übungsaufgaben | 415 |
9.8.1 Modellierung einer Gleichstrom-Nebenschluss-Maschine (GNM) | 415 |
9.8.2 Modellierung einer Pulsweitenmodulation (PWM) | 416 |
9.8.3 Aufnahme von Bode-Diagrammen | 417 |
10 Abtastsysteme in Simulink | 419 |
10.1 Allgemeines | 419 |
10.2 Bibliothek: Discrete – Zeitdiskrete Systeme | 420 |
10.3 Simulationsparameter | 423 |
10.3.1 Rein zeitdiskrete Systeme | 423 |
10.3.2 Hybride Systeme (gemischt zeitdiskret und zeitkontinuierlich) | 425 |
10.4 Der Model Discretizer | 428 |
10.5 Übungsaufgaben | 430 |
10.5.1 Zeitdiskreter Stromregler für GNM | 430 |
10.5.2 Zeitdiskreter Anti-Windup-Drehzahlregler für GNM | 431 |
11 Regelkreise in Simulink | 433 |
11.1 Die Gleichstrom-Nebenschluss-Maschine GNM | 433 |
11.1.1 Initialisierung der Maschinendaten | 434 |
11.1.2 Simulink-Modell | 435 |
11.2 Untersuchung der Systemeigenschaften | 437 |
11.2.1 Untersuchung mit Simulink | 437 |
11.2.2 Untersuchung des linearisierten Modells mit Matlab und der Control System Toolbox | 438 |
11.2.3 Interaktive Untersuchung eines Modells mit Simulink Linear Analysis Tool | 440 |
11.3 Kaskadenregelung | 443 |
11.3.1 Stromregelung | 443 |
11.3.2 Drehzahlregelung | 445 |
11.4 Zustandsbeobachter | 448 |
11.4.1 Luenberger-Beobachter | 450 |
11.4.2 Störgrößen-Beobachter | 451 |
11.5 Zustandsregelung mit Zustandsbeobachter | 453 |
11.6 Initialisierungsdateien | 457 |
11.6.1 Gleichstrom-Nebenschluss-Maschine | 457 |
11.6.2 Stromregelung | 457 |
11.6.3 Drehzahlregelung | 458 |
11.6.4 Grundeinstellung Zustandsbeobachter | 458 |
11.6.5 Zustandsbeobachtung mit Luenberger-Beobachter | 459 |
11.6.6 Zustandsbeobachtung mit Störgrößen-Beobachter | 459 |
11.6.7 Zustandsregelung mit Zustandsbeobachter | 460 |
11.6.8 Zustandsregelung mit Luenberger-Beobachter | 460 |
11.6.9 Zustandsregelung mit Störgrößen-Beobachter | 461 |
11.7 Übungsaufgaben | 462 |
11.7.1 Zustandsdarstellung GNM | 462 |
11.7.2 Systemanalyse | 462 |
11.7.3 Entwurf eines Kalman-Filters | 463 |
11.7.4 Entwurf eines LQ-optimierten Zustandsreglers | 463 |
12 Stateflow | 465 |
12.1 Elemente von Stateflow | 466 |
12.1.1 Grafische Elemente eines Charts | 468 |
12.1.2 Chart-Eigenschaften und Trigger-Methoden | 478 |
12.1.3 Nichtgrafische Elemente eines Charts | 480 |
12.2 Strukturierung und Hierarchiebildung | 485 |
12.2.1 Superstates | 485 |
12.2.2 Subcharts | 490 |
12.2.3 Grafische Funktionen | 492 |
12.2.4 Truth Tables | 494 |
12.2.5 Matlab Functions in Stateflow Charts | 498 |
12.2.6 Simulink Functions in Stateflow | 499 |
12.2.7 State Transition Tables | 500 |
12.3 Action Language | 501 |
12.3.1 Numerische Operatoren | 502 |
12.3.2 Logische Operatoren | 503 |
12.3.3 Un¨are Operatoren und Zuweisungsaktionen | 503 |
12.3.4 Detektion von Wertänderungen | 504 |
12.3.5 Datentyp-Umwandlungen | 504 |
12.3.6 Aufruf von Matlab-Funktionen und Zugriff auf den Workspace | 505 |
12.3.7 Variablen und Events in Action Language | 506 |
12.3.8 Temporallogik-Operatoren | 508 |
12.4 Anwendungsbeispiel: Getränkeautomat | 510 |
12.5 Anwendungsbeispiel: Steuerung eines Heizgebläses | 512 |
12.6 Anwendungsbeispiel: Springender Ball | 514 |
12.7 Übungsaufgaben | 516 |
12.7.1 Mikrowellenherd | 516 |
12.7.2 Zweipunkt-Regelung | 517 |
Symbolverzeichnis | 519 |
Literaturverzeichnis | 523 |
Index | 527 |