Matlab & Tools

Ein Lehrbuch für die Simulation dynamischer Systeme
von Josef Hoffmann und Urban Brunner

© 2002 ADDISON WESLEY Verlag, München
ISBN 3-8273-1895-5, ca. 550 Seiten.

Inhaltsverzeichnis von Matlab & Tools

1       MATLAB-Grundlagen
2       Differentialgleichungen in MATLAB 
3       MATLAB-Funktionen zur Fourier-Analyse 
4       Simulink-Erweiterung
5       Control-System-Toolbox: Klassische Verfahren
6       Control-System-Toolbox: Zustandsregler
7       Nonlinear-Control_Design_Blockset: Entwerfen von nichtlinearen Systemen
8       System_Identification-Toolbox und -Blockset
9       Stateflow
10      Fuzzy-Logic-Toolbox
11      Literatur
12      Stichwortsverzeichnis

1    MATLAB-Grundlagen
1.1 Einführung 17
1.1.1 Starten 17
1.1.2 Ausführen der MATLAB-Funktionen im Kommando-Fenster 19
1.1.3 Die Online-Hilfe 21
1.2 Interaktives Arbeiten in MATLAB 23
1.2.1 MATLAB-Variablen 24
1.2.2 Komplexe Variablen 25
1.2.3 Vektoren und Matrizen 25
1.2.4 Vergleichsoperationen und logische Operationen 29
1.2.5 Elementare mathematische Funktionen 30
1.2.6 Einfache Datenanalyse 30
1.2.7 Abspeichern der Arbeitssitzung im interaktiven Modus 31
1.3 MATLAB-Programme 32
1.3.1 Programmbeispiel 32
1.3.2 Neue Funktionen bilden 33
1.4 Programmflusssteuerung 35
1.4.1 Die for-Schleife 35
1.4.2 Die while-Schleife 36
1.4.3 switch/case-Anweisung 36
1.4.4 Die if-Anweisung 36
1.5 Zeichenketten (Strings) 37
1.5.1 Die eval- und feval-Funktion 37
1.6 Polynome 38
1.7 Funktionen für die Fourier-Analyse 39
1.8 Graphik 40
1.8.1 2D- und 3D-Darstellungen mit plot und plot3 40
1.8.2 Logarithmische Achsen 42
1.8.3 Axis-Befehl 44
1.8.4 Subplots 44
1.8.5 Darstellung diskreter Daten mit stem und stairs 45
1.8.6 Darstellung einer Matrix als Fläche und/oder Kontur 47
1.8.7 Graphische Eigenschaften 49
1.8.8 Erzeugung von graphischen Objekten 52
1.9 Einige nützliche Tricks 53
1.9.1 Ändern der Eigenschaften der Beschriftungen 54
1.9.2 Platzieren von Text außerhalb der Achsen 54
1.9.3 Ändern der Tick-Stellen 55
1.10 INPUT/OUTPUT-Dateien 56
1.10.1 Lesen und Schreiben in ASCII-Format 56
1.10.2 Lesen und Schreiben von Binärdaten 59
1.11 Der Import-Wizard von MATLAB 6 59
1.12 Weitere Funktionen für Import und Export von Textdateien 61
1.13 Weitere I/O-Funktionen für Binärdateien 62
1.14 Neue Datenstrukturen 63
1.14.1 Mehrdimensionale Felder 63
1.14.2 Cell-Felder 64
1.14.3 Struktur-Variablen 65
1.15 Private Verzeichnisse und Unterfunktionen 66
1.16 Die spezielle Variable end 67
1.17 Variable Anzahl von Funktionsargumenten 67
1.18 Projekt: Lineares Feder-Masse-System 68

2    Differentialgleichungen in MATLAB
2.1 ODEs und DAEs mit Anfangswerten 81
2.1.1 Einfaches Beispiel 83
2.1.2 Die Masse-Matrix und die DAE-Eigenschaften 91
2.2 Randwertprobleme für ODEs 95
2.2.1 Beispiel für den Einsatz des Solvers bvp4c 97
2.2.2 Verbessern der Eigenschaften des bvp4c-Solvers 100
2.3 Partielle Differentialgleichungen 101
2.3.1 Der MATLAB PDE-Solver 102
2.3.2 Beispiel für den Einsatz des Solvers pdepe 103
2.4 Schlussfolgerungen 105
2.5 Projekte 106
2.5.1 Nichtlineare Differentialgleichung aus der Schwingungslehre 106
2.5.2 Mechanisches nichtlineares Schwingungssystem 108

3    MATLAB-Funktionen zur Fourier-Analyse
3.1 Übersicht der Funktionen 111
3.2 Die kontinuierliche Fourier-Transformation 112
3.3 Die Discrete-Time-Fourier-Transformation 119
3.4 Die Discrete-Fourier-Transformation 120
3.5 Die Fourier-Reihe und ihre Annäherung durch die FFT 122
3.5.1 Gibbs Phänomen 128
3.5.2 Parsevals Theorem 129
3.5.3 Berechnung der Fourier-Reihe über die FFT 130
3.5.4 Der Leakage-Effekt 136
3.6 Die Annäherung der Fourier-Transformation durch die FFT 141
3.6.1 Berechnung der Fourier-Transformation über die FFT 142
3.6.2 Fourier-Transformation des Ausgangs der linearen zeitinvarianten Systeme 147
3.7 Anhang 149
3.7.1 Aliasing oder Verschiebung im Frequenzbereich als mangelnde Eindeutigkeit der diskreten Signale 149
3.8 Projekte 151
3.8.1 Die FFT der Sequenzen mit Nullwerterweiterungen 151
3.8.2 Die Berechnung der Faltung und Korrelation mit Hilfe der FFT 155
3.8.3 Das Spektrum eines komplexen Signals 159

4    Simulink-Erweiterung
4.1 Aufbau eines einfachen Modells 163
4.2 Erweiterungen des einfachen Modells 168
4.3 Die Arbeitsweise von Simulink 174
4.3.1 Zero-Crossings 175
4.4 Simulation kontinuierlicher Systeme 176
4.4.1 Integrator-Block 176
4.4.2 Algebraische Schleifen 179
4.4.3 Die Funktionsblöcke Fcn und MATLAB-Fcn 182
4.5 Z eitdiskrete und gemischte Systeme 184
4.6 Fixed-Step gegenüber Variable-Step 185
4.7 Simulink-Solver 187
4.8 Aufruf der Simulation aus der MATLAB-Umgebung 188
4.8.1 Aufruf der Simulation aus MATLAB-Funktionen 190
4.9 Ermittlung der Eigenschaften eines Modells 191
4.10 Linearisierung und Ermittlung des Gleichgewichtszustands 193
4.10.1 Linearisierung 193
4.11 Untersysteme 196
4.11.1 Erste Methode zur Erzeugung von Untersystemen 196
4.11.2 Zweite Methode zur Erzeugung von Untersystemen 199
4.12 Maskierte Blöcke 201
4.12.1 Das Editieren des Icons 204
4.13 Einige Hinweise 206
4.13.1 Blöcke für Übertragungsfunktionen linearer zeitinvarianter Systeme 206
4.13.2 Modell-Umwandlungen 214
4.14 Steuerung und Synchronisation der Simulationen 215
4.14.1 Einsatz der Switch-Blöcke 215
4.14.2 Bedingte Ausführung von Untersystemen 218
4.14.3 Der Hit-Crossing-Funktionsblock 221
4.14.4 Der Merge-Block 221
4.14.5 Goto-, From- und andere nützliche Blöcke 223
4.15 Simulation nichtlinearer und zeitvarianter Systeme 225
4.15.1 Nachbildung von Nichtlinearitäten mit den Blöcken der Bibliothek Function & Tables 225
4.15.2 Simulation zeitvarianter Systeme 228
4.16 Simulation von zufälligen Prozessen 232
4.16.1 Simulation weißer, normal verteilter Rauschsignale 233
4.16.2 Simulation weißer Rauschsignale für diskrete Systeme 235
4.16.3 Simulation von Rauschsignalen mit beliebiger Spektraldichte 236
4.16.4 Beispiel für ein System mit zufälliger Anregung 237
4.17 Simulation eines schwierigen Systems 242
4.18 Erzeugung einer eigenen Bibliothek 244
4.19 Projekte 246
4.19.1 Simulation von Operationsverstärkern 246
4.19.2 Simulation eines Feder-Masse-Systems mit Haft- und Gleitreibung 253

5    Control-System-Toolbox: Klassische Verfahren
5.1 LTI-Modelle 259
5.1.1 Erzeugung von Transfer-Function-Modellen 261
5.1.2 Pol-Nullstellenmodelle 263
5.1.3 Zustandsmodelle 264
5.1.4 Descriptor-Zustandsmodelle 265
5.1.5 FRD-Modelle 266
5.1.6 Zeitdiskrete Modelle 267
5.1.7 Erhaltung der Parameter der Modelle 270
5.1.8 LTI-Eigenschaften 270
5.1.9 Umwandlung der LTI-Modelle 274
5.1.10 Operationen an LTI-Modellen 276
5.1.11 Einfügen von Verspätungen in den LTI-Modellen 279
5.1.12 Die Pade-Annäherung der Verspätungen 281
5.1.13 Umwandlung kontinuierlich/diskret und umgekehrt 282
5.1.14 Felder von LTI-Modellen 285
5.1.15 Simulink-Block für LTI-Systeme 286
5.2 Werkzeuge zur Analyse von LTI-Modellen 287
5.2.1 Funktionen zur Bestimmung der Dynamik 287
5.2.2 Spezielle Funktionen zur Analyse von SS-Modellen 288
5.2.3 Die Zeit- und Frequenzantwort 289
5.2.4 Reduzierung der Ordnung von LTI-Modellen 296
5.3 LTI-Viewer 298
5.4 Simulink LTI-Viewer 306
5.5 Entwicklung von Reglern für SISO-Systeme 308
5.6 Projekte 314
5.6.1 Untersuchung eines Bohrhammers 314
5.6.2 Modell eines kapazitiven Mikrofons 319
5.6.3 Untersuchung eines Servosystems mit dem Simulink-Viewer 322

6    Control-System-Toolbox: Zustandsregler
6.1 Einführung 327
6.2 Einfaches Beispiel für die Polplatzierung 328
6.3 Polplatzierung für ein Servosystem 333
6.4 Beobachter 340
6.5 Optimale LQR-Regelung 345
6.6 Weitere Beobachter und Schätzer von Zustandsvariablen 351
6.7 Kalman-Filter für die Schätzung der Zustandsvariablen 357
6.8 Diskretes Kalman-Filter 363
6.9 LQG-Regelungsexperiment 366
6.9.1 LQR-Regelung für MIMO-System 368
6.10 Projekte 373
6.10.1 Stabilisierung eines Prozesses über Polplatzierung 373
6.10.2 LQR-Regelung (Übung) 377
6.10.3 LQR-Regelung (Übung) 378
6.10.4 Entwerfen eines Beobachters (Übung) 379
6.10.5 Entwicklung eines Kalman-Filters 380

7    Nonlinear-Control_Design_Blockset: Entwerfen von nichtlinearen Systemen
7.1 Einfaches Beispiel 385
7.2 Einsatz des NCD-Werkzeugs zur Identifikation eines Systems 388
7.3 Optimierung der Polplatzierung 391
7.4 Projekte 396
7.4.1 Nichtlineare Füllstandsregelung 396
7.4.2 Regelung einer weglosen Waage 400

8    System_Identification-Toolbox und -Blockset
8.1 Das Verfahren des kleinsten quadratischen Fehlers 403
8.2 Impulsantwort, Frequenzbeschreibung und Spektren 407
8.3 Die polynomiale Darstellung der Übertragungsfunktionen 409
8.3.1 Das ARX- und AR-Modell 409
8.3.2 Das ARMAX-Modell 412
8.3.3 Das Output-Error-Modell 414
8.3.4 Das Box-Jenkins-Modell 415
8.4 Darstellung mit Zustandsmodellen 417
8.4.1 Identifikation eines SS-Modells 419
8.5 Schätzung der Impulsantwort 420
8.6 Identifikation des Frequenzganges 426
8.7 Einige spezielle Themen und Hinweise 430
8.7.1 Die Modellierung von Zeitsequenzen (Time-Series) 431
8.7.2 Anwendung periodischer Eingangssignale 435
8.7.3 Die Verbindung zwischen der Control-System-Toolbox und der System-Identification-Toolbox 437
8.7.4 Die Unterschiede in den Darstellungen 441
8.7.5 Lokale Minima und die Anfangsbedingungen 442
8.7.6 Anfangszustände, Kovarianzmatrix und Verspätungen 443
8.7.7 Lineare Regressionsmodelle 445
8.7.8 Die Interpretation der Loss-Function 446
8.7.9 Parameter-Reihenfolge 447
8.7.10 Komplexe Daten und unerwartete Ergebnisse 448
8.8 Rekursive Parameterschätzung 450
8.8.1 Der grundlegende Algorithmus 450
8.8.2 Die Wahl einer Anpassung 451
8.9 Referenzliste 455
8.10 Der System-Identification-Blockset 458
8.11 Die graphische Bedienoberfläche der System-Identification-Toolbox 460
8.11.1 Die Vorbereitung der Daten 463
8.11.2 Die Schätzung der Modelle 468
8.12 Projekte 470
8.12.1 Identifikation eines Prozesses aus einem Regelungssystem 470
8.12.2 Vergleich einiger Identifikationsverfahren 473

9    Stateflow
9.1 Einleitung 479
9.2 Konstruktion und Simulation eines einfachen Modells 480
9.2.1 Der Editor 480
9.2.2 Der Explorer 482
9.2.3 Interpretation von Zustandsdiagrammen 483
9.2.4 Simulation und Animation von Zustandsdiagrammen 485
9.3 Modellbildung mit Stateflow 487
9.3.1 Sicht und Modellbildung 487
9.3.2 Sequentielle Zustände (Exclusive Decomposition) 488
9.3.3 Parallele Zustände (Parallel Decomposition) 492
9.3.4 Hybride Systeme (State Events) 497
9.4 Notation und Semantik von Stateflow 500
9.4.1 Action Language 500
9.4.2 Inner Transitions 504
9.4.3 Debugger 505
9.5 Projekt: Steuerung eines Druckkessels 507
9.5.1 Beschreibung der Anlage und Problemformulierung 507
9.5.2 Steuerungsentwurf 509
9.5.3 Test und Implementierung 513

10    Fuzzy-Logic-Toolbox
10.1 Einleitung 515
10.2 Fuzzy-Control 516
10.2.1 Grobanalyse der Regelstrecke 517
10.2.2 Der FIS Editor 519
10.2.3 Der Membership-Function-Editor (Fuzzyfizierung) 522
10.2.4 Der Rule Editor (Regelbasis und Inferenz-Vorgang) 524
10.2.5 Die FIS Datenstruktur 526
10.2.6 Simulation eines FIS 528
10.3 Neuro-Fuzzy 533
10.3.1 Sugeno-Type FIS 533
10.3.2 ANFIS 534
10.4 Projekt: Approximation einer Nichtlinearität 534

11    Literatur
12    Stichwortverzeichnis

BACK
Zurück zur Homepage von Urban Brunner