Rechnergest ¨utzte Systemanalyse - Bochum - Ruhr

Werbung
Prof. Dr.-Ing. Attila Bilgiç
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
6. April 2009
Organisation der Lehrveranstaltung
Die Lehrveranstaltung Rechnergestützte Systemanalyse“ besteht aus zwei Teilen:
”
• Teil I: Einführung in MATLAB und Simulink
Dozent: Prof. Dr.-Ing. Jan Lunze (Lehrstuhl für Automatisierungstechnik und Prozessinformatik)
Verantwortlicher wissenschaftlicher Mitarbeiter: Dipl.-Ing. Jan Falkenhain (IC 3/141, Tel.
32 26632)
•
Teil II: Einführung in SPICE
Dozent: Prof. Dr.-Ing. Attila Bilgiç (Lehrstuhl für Integrierte Systeme)
Verantwortlicher wissenschaftlicher Mitarbeiter: Dipl.-Ing. Christoph Schmits (ICFO 03/510,
Tel. 32 22187)
Beide Teile untergliedern sich in jeweils 3 Vorlesungen im Hörsaal HIC und 4 Praktika
im CIP-Pool der Fakultät Elektrotechnik und Informationstechnik. Die Vorlesungen geben eine
Einführung in die beiden behandelten Programmpakete. In den Praktika wird der Umgang mit
diesen Programmpaketen geübt.
Es wird ausdrücklich darauf hingewiesen, dass alle Teilnehmer an den Praktika die Praktikumsaufgaben vor den Praktikumsterminen zu Hause soweit vorbereiten müssen, dass
sich die Tätigkeit im CIP-Pool auf die rechnergestützte Lösung der Aufgaben konzentrieren
kann.
Inhaltsverzeichnis
1
Einführung in die rechnergestützte Systemanalyse am Beispiel von MATLAB . .
1.1 Ziele der Lehrveranstaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Struktur und Anwendungsgebiete von MATLAB . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
5
2
Systemtheoretische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Blockschaltbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Zustandsraummodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Modellgleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Zustandsbegriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Normierung der Signale und Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Zustandsraummodell gekoppelter Systeme [9] . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Reihenschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Parallelschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Rückkopplungsschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 MATLAB-Funktionen für die Modellbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Vorhersage des Systemverhaltens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 Vorhersageaufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2 Lösung der Zustandsgleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 MATLAB-Funktionen für die Analyse des Zeitverhaltens . . . . . . . . . . . . . . . . . .
8
8
12
12
17
18
20
21
22
23
25
29
29
30
33
3
Mathematische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4
Aufgaben für das MATLAB-Praktikum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Einführung in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
5.1 MATLAB-Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
5.2 Matrizenrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
5.2.1 Vektor- und Matrizenrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
5.2.2 Darstellung von Signalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
5.3 Programmieren mit MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2
iv
Inhaltsverzeichnis
5.3.1 Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionen der Control System Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erzeugung weißer Rauschsignale [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
12
13
16
Einführung in Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Simulink-Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Simulink – Kurzanleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Wichtige Simulink Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
6
7
Kommentiertes Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Zusatzaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
5.4
5.5
6
6
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Teil 1: Einführung in die rechnergestützte
Systemanalyse am Beispiel von MATLAB
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
email: [email protected]
6. April 2009
1
Einführung in die rechnergestützte Systemanalyse am
Beispiel von MATLAB
Dieser Teil des Skripts gibt eine allgemeine Einführung in die rechnergestützte Ingenieurarbeit und stellt anschließend das Programmpaket MATLAB vor.
1.1 Ziele der Lehrveranstaltung
Diese Lehrveranstaltung soll einen Einblick in die rechnergestützte Ingenieurarbeit geben. Anhand der beiden Programmsysteme MATLAB und SPICE soll gezeigt werden,
•
•
•
•
dass die Aufbereitung des gegebenen ingenieurtechnischen Problems für die rechnergestützte Bearbeitung eine Aufgabe des Ingenieurs ist und nur punktuell durch Programme
unterstützt werden kann,
dass der Rechner neben der numerischen Lösung von mathematisch genau definierten
Teilproblemen auch die Organisation der Problembearbeitung und die Visualisierung unterstützten kann,
dass die Bedienung der Programmpakete heute vielfach über grafische Nutzerschnittstellen
erfolgt,
dass schlecht gestellte“ Aufgaben zu numerischen Problemen und folglich zu falschen oder
”
gar keinen Ergebnissen führt.
Um die Programmpakete geeignet für die Lösung einer gegebenen Aufgabe einsetzen zu
können, muss man wissen, was die verwendeten Programme mit den eingegebenen Daten tun.
Die Lehrveranstaltung behandelt zwei Programmpakete, die sich in ihrem Anwendungsgebiet grundlegend unterscheiden:
•
MATLAB entstand aus den umfangreichen Programmbibliotheken LINPACK und EISPACK zum Rechnen mit Matrizen. Es ist also ein unverselles Werkzeug, dass für alle Aufgaben eingesetzt werden kann, die sich als Matrizengleichungen formulieren lassen. Durch
eine Vielzahl von Programmen, die in Toolboxen zusammengefasst sind, wird MATLAB
in vielen Bereichen der Informationstechnik eingesetzt, vor allem für Probleme, die sich
1.2 Einführung
3
durch algebraische und Differenzialgleichungen beschreiben lassen und deren Hauptelemente Vektoren und Matrizen sind. Simulink ist eine grafische Oberfläche, mit der dynamische System blockorientiert eingegeben und Simulationsaufgaben durchgeführt werden
können.
•
SPICE ist ein Programmpaket für die Analyse von elektrischen Schaltungen und Schaltkreisen. Es ist speziell auf diese Aufgabe zugeschnitten. Aus einer grafischen Eingabe der
Schaltung stellt es selbstständig das für die Simulation verwendete Gleichungssystem auf.
Es enthält eine Bibliothek mit den Ersatzschaltbildern und Parametern der wichtigsten Bauelemente.
Beide Programmpakete sind heute in der Industrie weit verbreitet und werden in mehreren
Lehrveranstaltungen des Hauptstudiums eingesetzt. Die behandelten Aufgaben werden die unterschiedlichen Einsatzgebiete beider Werkzeuge deutlich machen. Mit der Analyse einer Operationsverstärkerschaltung (Aufg. 4.3) wird jedoch auch gezeigt, dass Simulationsaufgaben mit
beiden Programmpaketen gelöst werden können, hierfür jedoch eine sehr unterschiedliche Aufbereitung erfahren müssen.
1.2 Einführung
Ÿ A u fb e r e it u n g d e r
A u fg a b e n s t e llu n g
Ÿ L ö su n g d e r g e g e b e n e n
P r o b le m e
Ÿ V e rg a b e d e r z u
lö s e n d e n P r o b le m e
Ÿ V e r w a lt u n g v o n D a t e n ,
M o d e lle n u n d E r g e b n is s e n
Ÿ I n t e r p r e t a t io n d e r
E r g e b n is s e
Ÿ V is u a lis ie r u n g v o n D a t e n
Abb. 1.1: Arbeitsteilung zwischen Rechner und Ingenieur bei der
rechnergestützten Systemanalyse
4
1 Einführung in die rechnergestützte Systemanalyse am Beispiel von MATLAB
Sie müssen die zu lösende Analyseaufgabe soweit aufbereiten, dass die Aufgabe in klar
definierte Teilschritte zerlegt ist, die der Rechner ausführen kann.
Der erste Schritt zielt auf eine klare Formulierung der Aufgabenstellung; der zweite beinhaltet häufig die Aufstellung des mathematischen Modells des zu analysierenden Systems. Die
Praktikumsaufgaben geben Ihnen alle dafür notwendigen Informationen, aber sie sind absichtlich wie die in der Praxis vorkommenden Aufgaben formuliert: Die Informationen sind möglicherweise im Aufgabentext versteckt, weitere Informationen sind allgemein zugänglich und
beispielsweise in Handbüchern nachzuschlagen, mögicherweise sind gar nicht alle angegebenen Informationen für die Lösung der Aufgabe relevant.
Jeder Teilnehmer am Praktikum muss dehalb vor dem Praktikumstermin diese Vorbereitungsschritte ausgeführt haben! Dies gilt auch für Praktikumsaufgaben, bei denen der zur Vorbereitung zu lösende Teil nicht gesondert angegeben ist.
Sie müssen den Überblick darüber behalten, was Sie gerade berechnen wollen, welche Informationen (Dateien, Parameter, Signale) Sie dafür benötigen und wie Sie das Ergebnis
interpretieren müssen (z. B. welches Signal mit welcher physikalischen Maßeinheit das Ergebnis repräsentiert). Solange Ihre Vorgaben syntaktisch richtig sind, führt der Rechner diese Vorgaben aus, aber das Ergebnis muss nicht zwangsläufig sinnvoll sein. Behalten Sie den
Überblick!
Das allgemeine Vorgehen bei der rechnergestützten Systemanalyse kann man folgendermaßen zusammenfassen:
Algorithmus 1.1 Rechnergestützte Systemanalyse
Gegeben: Aufgabenstellung
1. Formulieren Sie die gegebene Aufgabe mit systemtheoretischen Begriffen und planen
Sie Ihre Analyseschritte.
2. Stellen Sie ein dynamisches Modell auf und bringen Sie dieses in eine von dem verwendeten Programmsystem verarbeitbare Form.
3. Bringen Sie das Modell in die vom Programmsystem vorgegebene Syntax.
4. Führen Sie die Rechenschritte durch, die für die Lösung der Aufgabe notwendig sind.
Protokollieren Sie die Ergebnisse.
5. Werten Sie Ihre Rechenergebnisse in Bezug zur Aufgabenstellung aus.
Ergebnis: Lösung der Aufgabe
Im ersten Schritt müssen Fragen wie die folgenden beantwortet werden:
•
•
•
•
Welche Signale kommen in der Aufgabe vor?
Welche Bedingungen sollen diese Signale erfüllen?
Unter welchen Bedingungen soll das Systemverhalten berechnet und bewertet werden?
Welche Kenngrößen des Systems bzw. welche Signalverläufe sind zu berechnen?
1.3 Struktur und Anwendungsgebiete von MATLAB
5
Als Ergebnis muss ein Plan entstehen, dessen Lösungsschritte mit Hilfe des verwendeten Programmsystems durchführbar sind.
Im zweiten Schritt wird ein dynamisches Modell aufgestellt. Welche Form das Modell hat,
ist vom verwendeten Programmsystem abhängig. Bei den in dieser Lehrveranstaltung behandelten Problemen beginnt die Modellbildung mit einer grafischen Darstellung des zu untersuchenden Systems als Blockschaltbild bzw. als elektrisches Schaltbild. Zur Modellbildung gehört die
Ermittlung der Werte der Modellparameter.
Der dritte Schritt dient der Übertragung des Modells in eine für das Programmsystem
verständliche Weise. Viele Programmsysteme ermöglichen es, wichtige Programmierschritte
grafisch auszuführen.
Der Inhalt des vierten Schrittes hängt sehr stark von der Aufgabenstellung ab. Unter Verwendung der von dem Programmsystem zur Verfügung gestellten Funktionen sind Kenngrößen,
Parameter, Signalverläufe, Zeiten usw. zu bestimmen, mit denen die in der Aufgabe genannten
Fragen beantwortet werden können.
Im fünften Schritt werden die erhaltenen Ergebnisse als Ganzes bewertet. Dabei soll auch
festgestellt werden, inwieweit die gegebene Aufgabe gelöst wurde und ob – gegebenenfalls
unter Verwendung eines anderen Programmsystems – weitere Untersuchungen notwendig sind.
A u
d ie
e in
A u
fw a n d fü r
L ö su n g
e r
fg a b e
h o c h
P r o g r a m m ie r sp ra c h e n
C , F O R T R A N
P
sy st
n u m
L ö su n g s
M A
ro g ra m m
e m e m it
e r is c h e n
a lg o r it h m e n
T L A B
A n w e n d u n g ss p e z ifis c h e
P ro g ra m m sy ste m e
S P IC E
n ie d r ig
b r e it
sc h m a l
A n w e n d u n g sg e b ie t
Abb. 1.2: Einsatzgebiete von Programmsystemen
1.3 Struktur und Anwendungsgebiete von MATLAB
Die Stärken von MATLAB lassen sich folgendermaßen zusammenfassen:
6
•
•
•
1 Einführung in die rechnergestützte Systemanalyse am Beispiel von MATLAB
Ausgereiftes, zuverlässiges System mit einer Vielzahl implementierter Funktionen,
einfache, intuitive Bedienung mit einer leicht zu erlernenden Programmierumgebung,
sehr gute Grafikfähigkeiten.
Aus diesem Grund ist es seit vielen Jahren in der Industrie verbreitet. Der Nachteil von MATLAB, insbesondere für die Lehre, ist der hohe Preis (> 3000 Euro pro vollwertiger Lizenz mit
allen notwendigen Toolboxen; um 120 Euro für die Studentenlizenz).
Struktur von MATLAB. Das System MATLAB ist in einen Kern und in Zusatzprogramme
unterteilt. Der Kern enthält alle Grundoperationen, die beim Aufruf von MATLAB geladen
werden. Dazu gehören
•
•
•
•
•
der MATLAB-Interpreter, der C-ähnliche Programme abarbeitet (vgl. for-Schleifen usw.),
die Arbeitsumgebung für die Verwaltung von Variablen, Daten und M-Dateien,
das MATLAB-Grafiksystem,
die MATLAB-Funktionsbibliothek mit den elementaren mathematischen Funktionen und
numerischen Lösungsalgorithmen (built-in functions), sowie
die Programmierschnittstelle, mit der C- oder FORTRAN-Programme geschrieben werden
können.
Die Toolboxen sind Programmsammlungen für Zusatzprogramme, die das Anwendungsgebiet von MATLAB in unterschiedliche Richtungen erweitern, beispielsweise für die Analyse dynamischer Systeme (Berechnung des Systemverhaltens, Zeichnen von Bodediagrammen)
oder die Signalanalyse (Berechnung von Spektren usw.). Im Rahmen dieser Lehrveranstaltung
werden Funktionen der C ONTROL S YSTEM T OOLBOX und der S IGNAL P ROCESSING T OOL BOX eingesetzt.
MATLAB ist ein offenes System. Darunter versteht man, dass man einerseits die in den Programmiersprachen C oder FORTRAN geschriebenen Programme in MATLAB einbinden kann
und andererseits die in den Toolboxen zusammengefassten Funktionen einsehen und verändern
kann.
Toolboxen sind eine Sammlung von M-Dateien, die für bestimmte Aufgabenklassen benötigt
werden. Die Gliederung der MATLAB-Programme in Toolboxen hat zwei Ziele:
•
•
Einsparung von Speicherplatz: Toolboxen werden nur bei Bedarf geladen.
Erweiterungsmöglichkeiten für MATLAB: Die in den Toolboxen enthaltenen Programme
können vom Nutzer erweitert oder modifiziert werden.
MATLAB wird aufgrund seiner Toolboxen u. a. in folgenden technischen Anwendungsgebieten eingesetzt:
•
•
•
•
•
•
•
Bioinformatik (B IOINFORMATICS T OOLBOX , S IM B IOLOGY)
Bildverarbeitung (I MAGE P ROCESSING T OOLBOX , I MAGE ACQUISITION T OOLBOX , M AP PING T OOLBOX )
Finanzmathematik (F INANCIAL T OOLBOX F INANCIAL D ERIVATIVES T OOLBOX)
Nachrichtentechnik und Signalverarbeitung [3], [6] (S IGNAL P ROCESSING T OOLBOX),
Regelungstechnik [9] (C ONTROL S YSTEM T OOLBOX),
Modellbildung und Systemidentifikation (S YSTEM I DENTIFICATION T OOLBOX),
Optimierung (O PTIMIZATION T OOLBOX),
1.3 Struktur und Anwendungsgebiete von MATLAB
•
•
7
Simulationstechnik [2], [6] (MATLAB-Erweiterung Simulink, die in dieser Lehrveranstaltung behandelt wird),
Echtzeitsimulation für Hardware-in-the-loop Tests und Rapid Prototyping, Code-Generierung
(R EAL -T IME W ORKSHOP, X PC-TARGET, D S PACE)
S CILAB ist eine frei verfügbare Software mit einem ähnlichen Funktionsumfang wie MATLAB, sowie eng verwandter, aber nicht identischer Syntax [10].
2
Systemtheoretische Grundlagen
Dieses Kapitel behandelt die systemtheoretischen Grundlagen, die für die Behandlung
dynamischer Systeme mit MATLAB und Simulink notwendig sind. Weitere Einzelheiten dazu können in [14] nachgelesen werden.
2.1 Blockschaltbild
Blockschaltbilder sind die Grundlage für die Anwendung von Simulink für die Simulation dynamischer Systeme.
Durch das Blockschaltbild wird beschrieben, aus welchen Teilsystemen sich ein gegebenes
System zusammensetzt und wie die Teilsysteme durch Signale verkoppelt sind. Diese auch als
Wirkungsschema oder Strukturbild bezeichnete Darstellungsform grenzt ein dynamisches System von seiner Umgebung ab und symbolisiert es durch einen Block. Die Wechselwirkungen
zwischen dem System und seiner Umgebung werden durch Signale beschrieben (Abb. 2.1).
U m g e b u n g
E in g a n g s g r ö ß e n
A u sg a n g sg rö ß e n
D y n a m is c h e s S y s t e m
Abb. 2.1: Blockschaltbild eines Systems
Für das Blockschaltbild gelten folgende Vereinbarungen:
• Pfeile stellen Signale dar.
• Blöcke kennzeichnen dynamische Systeme.
• Signale haben eine eindeutige Wirkungsrichtung, die durch die Pfeile beschrieben
wird. Die Blöcke sind rückwirkungsfrei.
2.1 Blockschaltbild
9
Die Blöcke können mehrere Eingangssignale und mehrere Ausgangssignale besitzen, die getrennt dargestellt oder zu Vektoren zusammengefasst sind.
Der Pfeilanfang beschreibt, wo das Signal entsteht und die Pfeilspitze weist auf den Block,
in dem das Signal als Ursache anderer Vorgänge auftritt. Auf Grund der Rückwirkungsfreiheit
der Blöcke haben die Vorgänge innerhalb eines Blockes keinen direkten Einfluss auf die Eingangssignale. Wenn Rückkopplungen auf den Block, in dem das Signal entstanden ist, bestehen,
kann dies durch ein weiteres Signal dargestellt werden.
Spezielle Symbole. Für häufig wiederkehrende Abhängigkeiten zwischen Signalen hat man
einfachere Symbole eingeführt, die in Abb. 2.2 gezeigt werden. Eine Signalverzweigung wird
durch einen Punkt gekennzeichnet. Die zwei oder mehreren Pfeile, die von diesem Punkt abgehen, stellen dasselbe Signal dar. Im Unterschied dazu kennzeichnet ein Kreis eine Summationsstelle, bei der zwei oder mehrere ankommende Signale zu einem abgehenden Signal summiert
werden. Setzt man ein Minuszeichen rechts neben die Pfeilspitze, so wird das betreffende Signal von den anderen subtrahiert. Die Summationsstelle kann natürlich nur bei wertekontinuierlichen Signalen verwendet werden.
Ü b e r t r a g u n g s g lie d
( a llg e m e in )
u
u
1
u
u
3
u
2
u
1
S ig n a lv e r z w e ig u n g
u 2 = u 3
1 =
3
u
u
S u m m a t io n s s t e lle
u 1 + u 2
3 =
2
Abb. 2.2: Grundsymbole des Blockschaltbildes
Häufig werden nichtlineare Systeme besonders gekennzeichnet, wenn innerhalb eines Blockschaltbildes sonst nur lineare Teilsysteme vorkommen (Abb. 2.3). Blöcke ohne Eingangsgröße
beschreiben autonome Systeme, deren Ausgangssignal durch eine von außen nicht beeinflusste Systembewegung entsteht. Ein solcher Block kann beispielsweise einen Anlagenfahrer oder
einen Signalgenerator darstellen, wenn diese unabhängig von ihrer Umgebung den Verlauf eines Signals vorgeben.
Blöcke, die nur Eingangsgrößen, aber keine Ausgangsgrößen haben, stellen Messstellen
oder Aufzeichnungsgeräte dar. Derartige Blöcke kommen vor allem in Blockschaltbildern vor,
in denen gemessene oder angezeigte Signale besonders hervorgehoben werden sollen. Dabei
muss das bei einer Simulation angezeigte Signal nicht unbedingt ein Signal sein, das an der
betreffenden Anlage auch gemessen wird.
Blockschaltbilder gekoppelter Systeme. Blockschaltbilder werden i. Allg. verwendet um
darzustellen, wie sich das betrachtete System aus seinen Teilsystemen zusammensetzt. Häufig
10
2 Systemtheoretische Grundlagen
y =
f (u )
n ic h t lin e a r e s Ü b e r t r a g u n g s g lie d
a u to n o m e s S y ste m
O p e ra to r
S ig n a lg e n e r a t o r
S ig n a la n z e ig e
M e s s g lie d
Abb. 2.3: Spezielle Symbole des Blockschaltbildes
wird anstelle der Darstellung des Systems durch einen einzigen Block wie in Abb. 2.1 eine
Unterteilung des Systems in mehrere Teilsysteme vorgenommen, wie es Abb. 2.4 zeigt.
Beispiel 2.1
Drehzahlgeregelter Gleichstrommotor
Abbildung 2.4 zeigt das Blockschaltbild eines drehzahlgeregelten Gleichstrommotors. Die vier mittleren
Blöcke stellen den Gleichstrommotor, den Drehzahlregler, das Messglied für die Drehkreisfrequenz
und die Umrechnung von der Drehfrequenz zur Drehzahl dar. Der Drehzahlsollwert wird von einem
Menschen vorgegeben. Der Messwert wird aufgezeichnet.
D r e h z a h l- R e g e la b s o llw e r t w e ic h u n g
n s o ll
e
D re h z a
r e g le
D re h z a h l
n
E in g a n g s F re q u e n z
M e ssw e rt
sp a n n u n g
w
u
w M
h lG le ic h s t r o m M e ssr
m o to r
g lie d
U m re c h n u n g
Abb. 2.4: Blockschaltbild des drehzahlgeregelten Gleichstrommotors
Das Beispiel zeigt, dass sich Blockschaltbilder eignen, um bereits vor der Aufstellung mathematischer Modelle für alle verwendeten Blöcke einen Überblick über die Struktur des Systems zu bekommen. Beim drehzahlgeregelten Motor sind – wie bei allen Regelkreisen – alle Blöcke in beiden Richtungen miteinander verkoppelt, so dass der Motor auf den Regler und umgekehrt der Regler auf den
Motor einwirkt. Man kann deshalb nicht ohne Weiteres von den Eigenschaften der Blöcke auf die Eigenschaften des Gesamtsystems schließen. Eine (rechnergestützte) Systemanalyse muss beispielsweise
zeigen, ob der Regelkreis stabil ist. 2
2.1 Blockschaltbild
11
Hierarchische Modellbildung. Um die Struktur eines aus vielen Teilsystemen bestehenden
Modells herausheben zu können, werden die Blöcke von mehreren Teilsystemen häufig zu
einem gemeinsamen Block zusammengefasst, der dann innerhalb des Blockschaltbildes des
Gesamtsystems diese Teilsysteme und deren direkte Verkopplungen repräsentiert. Es entsteht
dabei ein Blockschaltbild, deren Blöcke aus Blöcken einer tieferen Hierarchiestufe zusammengesetzt sind.
Drehzahlgeregelter Gleichstrommotor
Beispiel 2.1 (Forts.)
Abbildung 2.5 zeigt die hierarchische Modellbildung am Beispiel des drehzahlgeregelten Gleichstrommotors. Das Gesamtsystem kann als einzelner Block mit der Eingangsgröße nSoll (Solldrehzahl) und
der Ausgangsgröße n (Drehzahl) dargestellt werden. Wenn man genauer in das System hineinsieht“,
”
kann man einen Regelkreis erkennen, der aus dem Gleichstrommotor einschließlich des Messglieds
als das geregelte System (Regelstrecke) und dem Drehzahlregler besteht. Betrachtet man den Block
Gleichstrommotor mit Messglied“ noch genauer, so erkennt man, dass dieser Block aus dem Gleich”
strommotor, dem Messglied und einem Glied zur Umrechnung des Messwertes ωM in die Drehzahl n
besteht.
n
D r e h z a h lg e r e g e lt e r
G le ic h s t r o m m o t o r
s o ll
n
s o ll
D r e h z a h lr e g le r
n
u
-
u
G le ic h s t r o m m o t o r
n
G le ic h s t r o m m o t o r
m it M e s s g lie d
w
w
M e s s g lie d
M
U m re c h n u n g
n
Abb. 2.5: Hierarchisch strukturiertes Blockschaltbild
Je genauer man sich das System ansieht, desto mehr Blöcke und Kopplungssignale zwischen den
Blöcken erkennt man. Geht man von einer Abstraktionsebene zur nächsthöheren, so verschwinden die
inneren Signale und es bleibt ein Block mit den externen Eingangsgrößen und externen Ausgangsgrößen
übrig. Welche Abstraktionsebene die beste ist, hängt von der betrachteten Aufgabe ab. 2
12
2 Systemtheoretische Grundlagen
2.2 Zustandsraummodell
2.2.1 Modellgleichungen
Es wird ein dynamisches System mit dem Eingangssignal u(t) und dem Ausgangssignal y(t)
betrachtet (Abb. 2.6). Es soll ein mathematisches Modell aufgestellt werden, das den Zusammenhang zwischen diesen beiden Signalen beschreibt. Für die rechnergestützte Systemanalyse
ist nicht nur die Form, die dieses Modell hat, sondern auch der Weg, auf dem man dieses
Modell erhält, sehr wichtig. Es wird deshalb zunächst am Beispiel eines Gleichstrommotors
gezeigt, wie man das mathematische Modell aufstellt.
u (t)
y (t)
K o n t in u ie r lic h e s
S y ste m
x (t)
Abb. 2.6: Kontinuierliches System
u
u
R
R
L
L
J
u
u
u
M
y =
G le ic h s t r o m m o t o r
y
w
i
Abb. 2.7: Schaltbild des Gleichstrommotors
Beispiel 2.2
Aufstellung des Zustandsraummodells für einen Gleichstrommotor
Es soll ein Modell aufgestellt werden, das den in Abb. 2.7 gezeigten Gleichstrommotor beschreibt. Die
Eingangsgröße ist die Motorspannung u, die Ausgangsgröße die Drehgeschwindigkeit ω. Die Modellbildung umfasst die folgenden vier Schritte:
1. Systemzerlegung: Wie die Schaltung zeigt, lässt sich der Gleichstrommotor in vier Komponenten
zerlegen: den ohmschen Widerstand R, die Induktivität L des Ankerkreises, das System StatorRotor sowie die sich drehende Masse. Diese vier Elemente kommen nicht als vier voneinander
getrennte elektrische bzw. mechanische Bauteile vor, sondern gehen aus einer Idealisierung der
elektrischen und mechanischen Vorgänge im Motor hervor. So beinhaltet die rotierende Masse
nicht nur die angetriebene Last, sondern auch die Masse des Rotors, und der Widerstand R umfasst den ohmschen Widerstand der Anschlussleitungen und des Stators.
2.2 Zustandsraummodell
13
2. Beschreibung der Komponenten: Widerstand und Spule sind durch die Gleichungen
uR (t) = Ri(t)
d
uL (t) = L i(t)
dt
(2.1)
(2.2)
beschrieben, wobei uR und uL die Spannungen über den beiden Bauelementen, i den Strom durch
den Motor und R bzw. L den ohmschen Widerstand bzw. die Induktivität des Motors bezeichnen.
Auf Grund des Induktionsgesetzes induziert der Rotor die Spannung uM , die proportional zu seiner
Winkelgeschwindigkeit ω ist:
uM (t) = kM ω(t).
(2.3)
Das durch den Ankerstrom i erzeugte Magnetfeld beschleunigt den Rotor mit dem Drehmoment
M , das in Richtung der Drehgeschwindigkeit ω wirkt und für das
M (t) = kT i(t)
(2.4)
gilt. Die rotierende Masse wird durch die Reibung gebremst, die das Moment
MR (t) = kR ω(t)
(2.5)
erzeugt, das dem Moment M entgegenwirkt. In den angegebenen Gleichungen beschreiben kT ,
kR und kM drei Parameter, die vom Aufbau des Motors abhängen. Das auf den Rotor wirkende
Moment MB verändert die Winkelgeschwindigkeit entsprechend der Beziehung
J ω̇(t) = MB (t),
(2.6)
wobei J das Trägheitsmoment der gesamten rotierenden Masse bezeichnet.
3. Beschreibung der Kopplungen: Die Kopplung zwischen den elektrischen Komponenten ist durch
den Maschensatz beschrieben, demzufolge die Summe aller Spannungen gleich null ist:
uR (t) + uL (t) + uM (t) − u(t) = 0.
(2.7)
Für die mechanischen Größen gilt, dass die Summe aller Momente gleich null ist:
M (t) − MR (t) − MB (t) = 0.
(2.8)
Die Vorzeichen der Momente ergeben sich daraus, dass M in Richtung der Winkelgeschwindigkeit
ω wirkt, während MR und MB der Drehrichtung entgegenwirken.
4. Zusammenfassung der Modellgleichungen: Die Gln. (2.1) – (2.8) beschreiben den Gleichstrommotor vollständig. In diesen Gleichungen kommen jedoch sehr viele Größen vor, die bei der Analyse des Motors nicht von Interesse sind, sondern nur eingeführt wurden, um das Modell aus den
physikalischen Grundbeziehungen ableiten zu können. Im Wesentlichen kommt es ja nur auf den
Zusammenhang zwischen der Eingangsgröße u(t) und der Ausgangsgröße ω(t) an. In den folgenden Umformungen werden deshalb eine Reihe von Signalen aus dem Modell eliminiert.
Zunächst erhält man aus den Gln. (2.1) – (2.3) und (2.7) die Beziehung
Ri(t) + L
d
i(t) + kM ω(t) = u(t).
dt
(2.9)
Andererseits erhält man aus den Gln. (2.5), (2.6) und (2.8) die Beziehungen
M (t) = J ω̇(t) + kR ω(t)
(2.10)
14
2 Systemtheoretische Grundlagen
und mit Gl. (2.4)
kT i(t) = J ω̇(t) + kR ω(t).
(2.11)
Zum Zustandsraummodell des Gleichstrommotors kommt man durch Umformung der Gln. (2.9)
und (2.11), durch die man
d
R
kM
1
i(t) = − i(t) −
ω(t) + u(t)
dt
L
L
L
kT
kR
d
ω(t) =
i(t) −
ω(t)
dt
J
J
erhält. Es sind dies zwei Differenzialgleichungen erster Ordnung, auf deren linken Seiten die beidi
den Ableitungen dt
und dω
stehen und auf deren rechten Seiten außer den beiden nicht abgeleiteten
dt
Größen i und ω nur die Eingangsgröße u auftritt. Man kann die beiden Gleichungen deshalb in der
Matrix-Vektor-Form
!
!
!
!
!
!
1
i(0)
i0
− kLM
i(t)
i(t)
−R
d
L
L
u(t),
=
(2.12)
+
=
kT
dt ω(t)
ω(0)
ω0
ω(t)
0
− kJR
J
!
i(t)
(2.13)
y(t) = (0 1)
ω(t)
schreiben, zu der eine zweite Gleichung hinzugefügt wurde, mit der der messbare Ausgang y = ω
berechnet wird. In der ersten Gleichung stehen der Vektor
!
i(t)
x(t) =
ω(t)
sowie dessen Ableitung ẋ, so dass die beiden Gleichungen auch in der Form
!
!
!
1
−R
i0
− kLM
L
L
ẋ(t) =
u(t), x(0) =
x(t) +
kT
ω0
0
− kJR
J
y(t) = (0 1) x(t)
(2.14)
(2.15)
geschrieben werden können.
Um die Vektordifferenzialgleichung lösen zu können, müssen außer dem Verlauf der Eingangsspannung u auch Anfangswerte für die Winkelgeschwindigkeit ω(0) und die Winkelbeschleunigung ω̇(0) bekannt sein.
u
-
L d i + R i = u - k
d t
M
i
w
k
.
J w + k R w = k T i
w
M
Abb. 2.8: Blockschaltbild des Gleichstrommotors
Diskussion. Aus den während der Modellbildung aufgestellten Gleichungen kann man das in Abb. 2.8
gezeigte Blockschaltbild aufstellen, das die im Motor ablaufenden Prozesse gut strukturiert beschreibt.
2.2 Zustandsraummodell
15
Der linke Block enthält den durch Gl. (2.9) dargestellten Prozess, bei dem sich nach Anlegen einer
Spannung u zunächst der Strom i erhöht. Dieser Prozess wird durch die Ankerinduktivität L verzögert.
Der mit kT multiplizierte Strom ergibt das Antriebsmoment M (vgl. Gl. (2.4)), das zu einer Erhöhung
der Winkelgeschwindigkeit ω führt. Dieser Prozess ist durch die Beziehung (2.11) beschrieben. Die
Rückführung im Blockschaltbild gibt die Rückwirkung des mechanischen Teils des Gleichstrommotors auf den elektrischen Teil wieder. Demzufolge kann sich der Strom nur begrenzt erhöhen, da in
den Ankerkreis eine drehzahlabhängige Gegenspannung kM ω induziert wird. Der im stationären Zustand verbleibende Strom i und das damit verbundene Drehmoment M dienen der Überwindung des
drehzahlproportionalen Reibmomentes kR ω.
In das Modell gehen mit R und L zwei elektrische Größen, mit kT , kR und kM drei Größen, die vom
Aufbau des Motors abhängen, sowie mit J eine die mechanischen Eigenschaften des Rotors und der
Last beschreibende Größe ein. Aus diesen Parametern werden die Elemente der in Gl. (2.14) vorkommenden Matrix und des Vektors gebildet. Bemerkenswerterweise entstehen dabei aus den sechs physikalischen Parametern fünf Modellparameter. Unterschiedliche Motoren können deshalb auf dieselben
Modellparameter führen, sich also trotz ihrer unterschiedlichen physikalischen Parameter dynamisch
gleichartig verhalten. 2
An Stelle der im Beispiel angegebenen zwei Differenzialgleichungen erster Ordnung treten im
Allgemeinen n Differenzialgleichungen auf. Das als Vektordifferenzialgleichung geschriebene
Modell heißt Zustandsraummodell. Es hat die folgende allgemeine Form:
ẋ = Ax(t) + bu(t),
y(t) = c′ x(t) + du(t).
Zustandsraummodell:
x(0) = x0
(2.16)
Die erste Gleichung heißt Zustandsgleichung, die zweite Ausgabegleichung.
x ist i. Allg. ein n-dimensionaler Vektor mit den zeitabhängigen Elementen xi (t)


x1 (t)
 x2 (t) 


x(t) =  .  ,
 .. 
xn (t)
A eine konstante (n, n)-Matrix

a11
 a21

A=.
 ..
a12 · · ·
a22 · · ·
..
.
a1n
a2n
..
.
an1 an2 · · · ann



,

die als Systemmatrix bezeichnet wird, b ein n-dimensionaler Spaltenvektor mit konstanten Elementen
 
b1
 b2 
 
b= . 
 .. 
bn
16
2 Systemtheoretische Grundlagen
und c′ ein n-dimensionaler Zeilenvektor mit konstanten Elementen
c′ = (c1 c2 ... cn ).
d ist ein als Durchgriff bezeichneter Skalar, der bei vielen technischen Systemen verschwindet.
x0 ist ein n-dimensionaler Vektor, der die Anfangswerte aller Komponenten xi von x enthält.
Bei der Anwendung des Modells (2.16) wird i. Allg. vorausgesetzt, dass x0 bekannt ist.
Die Dimension n der Vektoren und der Matrix heißt dynamische Ordnung des Systems.
Wie das Beispiel weiterhin zeigt, erhält man das Zustandsraummodell in den folgenden
Schritten:
Algorithmus 2.1 Aufstellung eines Zustandsraummodells
Gegeben: Kontinuierliches System mit Eingang u und Ausgang y
1. Das System wird in Komponenten zerlegt.
2. Es werden die physikalischen Gesetze aufgeschrieben, die das Verhalten der Komponenten beschreiben.
3. Es werden die Beziehungen beschrieben, die zwischen den Komponenten bestehen.
4. Die Gleichungen werden zu einem Zustandsraummodell zusammengefasst.
Ergebnis: Zustandsraummodell (2.16)
Blockschaltbild des Zustandsraummodells. Die durch die Gl. (2.16) beschriebenen Zusammenhänge zwischen den Signalen u(t), xi (t) und y(t) sind in der Abb. 2.9 durch ein Blockschaltbild veranschaulicht. Doppelpfeile stellen vektorielle Signale dar. Vier Blöcke sind statische Übertragungsglieder mit den Übertragungsfaktoren A, b, c′ und d, mit denen die Eingangsgrößen der Blöcke multipliziert werden, um auf die Ausgangsgrößen zu kommen. Der
mittlere Block enthält n Integratoren für die n Komponenten des Vektors ẋ.
d
x
u (t)
b
d
d t x
ò
0
t
0
x
c '
y (t)
A
Abb. 2.9: Blockschaltbild der Zustandsraumbeschreibung
Zustandsraumdarstellung von Mehrgrößensystemen. Das Zustandsraummodell (2.16) kann
für Systeme mit mehr als einer Eingangsgröße u(t) und mehr als einer Ausgangsgröße y(t)
erweitert werden. Derartige Systeme werden Mehrgrößensysteme genannt. Ihre m Eingangssignale ui (t) und r Ausgangssignale yi (t) werden zu den Vektoren u(t) bzw. y(t) zusammengefasst (Abb. 2.10):
2.2 Zustandsraummodell
17



u(t) = 

u =
u
u
1
u1
u2
..
.
um


y1
 y2 
 
y(t) =  .  .
 .. 



,

yr
S
2
y
1
y
2
= y
Abb. 2.10: Zusammenfassung der Eingangsgrößen und Ausgangsgrößen von
Mehrgrößensystemen zu den Vektoren u und y
Das Zustandsraummodell hat dann die allgemeinere Form
ẋ = Ax(t) + Bu(t),
x(0) = x0
y(t) = Cx(t) + Du(t),
(2.17)
(2.18)
in der folgende Größen vorkommen:
Zustandsvektor
Eingangsvektor
Ausgangsvektor
Systemmatrix
Steuermatrix
Beobachtungsmatrix
Durchgangsmatrix
x
u
y
A
B
C
D
(n, 1)-Vektor
(m, 1)-Vektor
(r, 1)-Vektor
(n, n)-Matrix
(n, m)-Matrix
(r, n)-Matrix
(r, m)-Matrix.
Gültigkeit des linearen Modells. Lineare Modelle werden verwendet, um das Verhalten des
Systems in der Umgebung eines Arbeitspunktes (ū, x̄, ȳ) zu beschreiben. Die im Modell verwendeten Größen beschreiben dann Abweichungen vom Arbeitspunkt, d. h., dass der wahre
Wert des Ausgangs nicht y(t), sondern y(t) + ȳ ist. Gilt ω(t) = 0, so heißt dies nicht, dass der
Gleichstrommotor zur Zeit t steht, sondern, dass die Drehfrequenz mit dem Arbeitspunktwert
ω̄ übereinstimmt.
2.2.2 Zustandsbegriff
Ein für die Anwendung der hier behandelten Modelle sehr wichtiger Begriff ist der des Zustandes eines dynamischen Systems. Um zu verdeutlichen, warum man den in Gl. (2.16) vorkommenden Vektor x als Systemzustand bezeichnet, soll zunächst auf die Lösbarkeit der Zustandsgleichung
ẋ = Ax(t) + bu(t),
x(0) = x0
(2.19)
eingegangen und dabei ein System ohne Eingangsgröße (autonomes System)
18
2 Systemtheoretische Grundlagen
ẋ = Ax(t),
x(0) = x0
betrachtet werden. Das Modell ist eine Vektordifferenzialgleichung, auf die alle Erkenntnisse
über (skalare) lineare Differenzialgleichungen angewendet werden können. Bekanntlich besitzt
diese Differenzialgleichung für eine beliebige durch x0 beschriebene Anfangsbedingung eine
eindeutige Lösung, die jetzt über das Zeitintervall [0, te ] betrachtet und mit x[0,te ] bezeichnet
werden soll. Die Existenz der Lösung kann folgendermaßen interpretiert werden:
Wenn x0 bekannt ist, so kann x[0,te ] berechnet werden.
Das hat insbesondere zur Folge, dass man zur Berechnung von x[0,te ] keine Informationen
darüber benötigt, welche Werte der Vektors x(t) für t < 0 angenommen hat. In x0 stecken also
alle diejenigen Informationen über die Bewegung des Systems bis zum Zeitpunkt t = 0, die für
die zukünftige Bewegung des Systems maßgebend sind. Das ist der Grund, weshalb man den
Vektor x als Systemzustand bezeichnet.
Andererseits kann man ohne die Kenntnis des Zustandes x(0) nichts über die Bewegung des
Systems im Zeitintervall [0, te ] aussagen. Also kann man ohne die Kenntnis von x(0) auch keine Simulationsuntersuchungen durchführen. Für alle dynamischen Elemente eines gegebenen
Systems muss man den Anfangszustand kennen.
Für das durch die Eingangsgröße u erregte System (2.19) gelten diese Aussagen, wenn die
Eingangsgröße für das betrachtete Zeitintervall [0, te ] bekannt ist. Dass man u(t) im Zeitintervall [0, te ] kennen muss, um die Bewegung des Systems für dieses Zeitintervall berechnen zu
können, ist klar. Wichtiger ist, dass man den Verlauf der Eingangsgröße für das davor liegende
Zeitintervall t < 0 nicht kennen muss:
Der Verlauf von x(t) im Zeitintervall [0, te ] hängt bei bekanntem Anfangszustand x(0) = x0
nicht von Werten der Eingangsgröße ab, die vor der Zeit t = 0 bzw. nach der Zeit te auftreten.
Der Anfangszustand x0 enthält also auch alle diejenigen Information über den Verlauf der
Eingangsgröße für t < 0, die für die zukünftige Bewegung des Systems wichtig sind.
Es hängt vom Anwendungsfall ab, welche Länge n der Zustandsvektor hat und welche physikalischen Größen in diesem Zustandsvektor stehen. Die Zahl n der Zustandsvariablen stimmt
häufig mit der Anzahl von Energiespeichern überein, die im Signalweg vom Eingang u zum
Ausgang y auftreten, also bei elektrischen Systemen mit der Anzahl der Kondensatoren und
Induktivitäten oder bei mechanischen Systemen mit der Anzahl der Massen und Federn. Die
physikalischen Zustandsvariablen sind die den Inhalt dieser Energiespeicher beschreibenden
Größen wie Ströme, Spannungen, Kräfte, Geschwindigkeiten oder Stoffkonzentrationen.
2.2.3 Normierung der Signale und Parameter
Die Parameter und Signale, die im Zustandsraummodell auftreten, sind i. Allg. physikalische
Größen, die durch ihren Zahlenwert und ihre physikalische Einheit beschrieben werden. Wenn
man das Zustandsraummodell für Analyse- oder Entwurfsaufgaben einsetzt, schreibt man es
2.2 Zustandsraummodell
19
jedoch als reine Zahlenwertgleichungen. Um zu diesen Gleichungen zu kommen, normiert man
alle Signale und Parameter bezüglich ihrer physikalischen Einheiten.
Wenn man für alle Größen die Grundeinheiten (Sekunde, Meter, Gramm usw.) verwendet,
kommt man von den die Maßeinheiten enthaltenden Größengleichungen zu den Zahlenwertgleichungen, indem man einfach die physikalischen Einheiten weglässt. Diese Vorgehensweise
ist jedoch nicht immer zweckmäßig, weil man bei Verwendung der Grundeinheiten oft sehr
kleine oder sehr große Zahlen erhält. Deshalb wählt man physikalische Einheiten, die für den
betrachteten Anwendungsfall zweckmäßig sind, und misst beispielsweise bei schnellen elektromagnetischen Vorgängen die Zeit in Millisekunden oder bei sehr langsamen verfahrenstechnischen Prozessen die Zeit in Minuten oder Stunden. Man ist bei der Wahl der physikalischen
Einheiten für alle Signale und Parameter frei, muss jedoch darauf achten, dass sich die Zahlenwertgleichungen nach diesen Maßeinheiten richten.
Der Übergang von den Größengleichungen zu den Zahlenwertgleichungen wird dadurch
vollzogen, dass man die auf die gewählte physikalische Einheit bezogenen Größen einführt und
die Maßeinheiten dann aus den Gleichungen herauskürzt. Dies wird schrittweise im folgenden
Beispiel vorgerechnet.
Beispiel 2.2 (Forts.)
Zustandsraummodell eines Gleichstrommotors
Für den Gleichstrommotor werden folgende Parameter eingeführt:
R = 0,5Ω
L = 50mH
mVs
kM = 30
rad
Nm
A
= 30 · 10−6 Nms
kT = 30 · 10−3
kR
J = 13 · 10−4 Nms2 .
und die Zeit
Der Strom i soll in Ampere, die Spannung u in Volt, die Winkelgeschwindigkeit ω in rad
s
t in Sekunden gemessen werden. Das bedeutet, dass im Modell an Stelle der Größen i, u, ω und t die
neuen Signale
u
ω
t
i
ĩ = , ũ = , ω̃ = rad und t̃ =
A
V
s
s
auftreten sollen. Dazu kommt man, wenn man in die Größengleichungen die Signale
i = ĩ · A, u = ũ · V, ω = ω̃ ·
rad
und t = t̃ · s
s
einsetzt, wobei die kursiven Formelzeichen die Variablen und die steil gesetzten Symbole die physikalischen Maßeinheiten darstellen. Für die erste Zeile der Zustandsgleichung (2.12) erhält man auf diese
Weise
20
2 Systemtheoretische Grundlagen
R
dĩ A
1
kM rad
= − ĩ A −
ω̃
+ ũ V
L
L
s
L
dt̃ s
Vs
0,5 V
30 · 10−3 rad
1
rad
A
+
ω̃
ũ V
= −
ĩ
A
−
Vs
Vs
−3
−3
s
50 · 10 A
50 · 10 A
50 · 10−3 Vs
A
A
A
A
dĩ A
= −10 · · ĩ − 0,6 · · ω̃ + 20 · · ũ
·
s
s
s
s
dt̃
dĩ
= −10 · ĩ − 0,6 · ω̃ + 20 · ũ.
dt̃
In der letzten Beziehung kommen keine physikalischen Maßeinheiten mehr vor. Diese Zahlenwertgleichung ist eine Gleichung in den mit der Tilde markierten Signalen, die mit den o. a. physikalischen
Einheiten multipliziert die ursprünglichen Signale i, u, ω und t ergeben. Obwohl sich diese Größen in
ihrer Bedeutung unterscheiden, lässt man i. Allg. die Tilde weg und geht wieder zu den ursprünglichen
Bezeichnungen über:
d
i(t) = −10 i(t) − 0,6 ω(t) + 20 u(t).
dt
In derselben Weise erhält man für die zweite Zeile der Zustandsgleichung die Beziehung
d
ω(t) = 2308 i(t) − 2,3 ω(t),
dt
so dass das Zustandsraummodell als Zahlenwertgleichung geschrieben wie folgt lautet:
!
!
!
!
!
!
i0
i(0)
20
i(t)
−10 −0,6
i(t)
d
=
u(t),
+
=
dt ω(t)
ω0
ω(0)
0
ω(t)
23,08 −0,023
!
i(t)
y(t) = (0 1)
ω(t)
(2.20)
(2.21)
Diese Zahlenwertgleichungen werden bei der rechnergestützten Systemanalyse verwendet. Man muss
sich die verwendeten Maßeinheiten merken, um die Ergebnisse richtig interpretieren zu können. 2
2.3 Zustandsraummodell gekoppelter Systeme [9]
Bei größeren Systemen wird man bei der Modellbildung zunächst Zustandsraummodelle für
Teilsysteme aufschreiben und diese dann entsprechend den im Gesamtsystem geltenden Koppelbeziehungen verknüpfen. Diese Vorgehensweise soll hier für die Reihenschaltung, die Parallelschaltung sowie die Rückkopplung zweier Teilsysteme beschrieben werden. Alle Überlegungen lassen sich leicht auf mehr als zwei Teilsysteme erweitern.
Gegeben seien die Zustandsraummodelle der beiden Teilsysteme
ẋ1 (t) = A1 x1 (t) + b1 u1 (t),
y1 (t) = c′1 x1 (t) + d1 u1 (t)
und
x1 (0) = x10
(2.22)
(2.23)
2.3 Zustandsraummodell gekoppelter Systeme [9]
21
ẋ2 (t) = A2 x2 (t) + b2 u2 (t),
y2 (t) =
c′2 x2 (t)
x2 (0) = x20
+ d2 u2 (t).
(2.24)
(2.25)
Gesucht ist das Zustandsraummodell
ẋ(t) = Ax(t) + bu(t),
x(0) =
y(t) = c′ x(t) + du(t)
x1 (0)
x2 (0)
(2.26)
(2.27)
der Zusammenschaltung beider Teilsysteme. Für alle drei Verknüpfungen der Teilsysteme setzt
sich der Zustandsvektor des Gesamtsystems aus den beiden Zustandsvektoren der Teilsysteme
zusammen:
x1
x=
.
x2
Für die dynamische Ordnung n des Gesamtsystems gilt deshalb
n = n1 + n2 ,
wobei n1 und n2 die dynamischen Ordnungen der Teilsysteme bezeichnen. Dementsprechend
setzt sich auch der Anfangszustand des Gesamtsystems aus den Anfangszuständen der Teilsysteme zusammen:
x1 (0)
.
x(0) =
x2 (0)
Bei Simulationsuntersuchungen muss man also für alle Teilsysteme die Anfangszustände vorgeben. Das Programmsystem Simulink setzt die Anfangszustände dynamischer Teilsysteme
standardmäßig auf x(0) = 0. Dies muss man beachten, wenn man die Simulationsergebnisse
bewertet!
2.3.1 Reihenschaltung
Bei der Reihenschaltung ist der Ausgang y1 des ersten Teilsystems gleich dem Eingang u2 des
zweiten Teilsystems (Abb. 2.11):
u(t) = u1 (t)
u2 (t) = y1 (t)
u
y(t) = y2 (t).
(A
1
,b 1,c 1,d 1)
y
1
(A
2
,b 2,c 2,d 2)
y
=
u
( A ,b ,c ,d )
Abb. 2.11: Reihenschaltung zweier Teilsysteme
y
22
2 Systemtheoretische Grundlagen
Verknüpft man die Teilsystemgleichungen in dieser Weise, so erhält man das Modell (2.26),
(2.27) des Gesamtsystems mit
A1
A =
b =
O
b2 c′1 A2
b1
d1 b2
!
(2.28)
(2.29)
c′ = (d2 c′1 c′2 ),
(2.30)
d = d 1 d2 .
(2.31)
2.3.2 Parallelschaltung
Bei der Parallelschaltung entsteht der Ausgang des Gesamtsystems durch Addition der Ausgänge
y1 und y2 der Teilsysteme, die denselben Eingang u erhalten (Abb. 2.12):
u(t) = u1 (t) = u2 (t)
y(t) = y1 (t) + y2 (t).
(A
,b 1,c 1,d 1)
1
y
1
u
(A
2
,b 2,c 2,d 2)
y
y
=
u
( A ,b ,c ,d )
y
2
Abb. 2.12: Parallelschaltung zweier Teilsysteme
Aus diesen Koppelbeziehungen und den Teilsystemgleichungen erhält man das Modell (2.26),
(2.27) des Gesamtsystems mit:
2.3 Zustandsraummodell gekoppelter Systeme [9]
-
(A
O A2
(2.33)
c′ = (c′1 c′2 )
(2.34)
d = d1 + d2 .
(2.35)
y
y
1
=
y
2
(A
2
(2.32)
b1
b =
b2
,b 1,c 1,d 1)
1
!
A1 O
A =
u
23
,b 2,c 2,d 2)
u
u
( A ,b ,c ,d )
y
2
Abb. 2.13: Rückkopplungsschaltung zweier Teilsysteme
2.3.3 Rückkopplungsschaltung
Entsprechend Abb. 2.13 gelten für die Rückkopplungsschaltung folgende Beziehungen:
y(t) = y1 (t)
u1 (t) = u(t) − y2 (t)
u2 (t) = y1 (t).
(2.36)
(2.37)
(2.38)
Das Zustandsraummodell des Gesamtsystems erhält man besonders schnell, wenn beide Teilsysteme nicht sprungfähig sind, also d1 = 0 und d2 = 0 gilt. Dann setzt man die Beziehung (2.37) in die Zustandsgleichung (2.22) des ersten Teilsystems ein und erhält unter Verwendung von (2.25) die Beziehung
ẋ1 = A1 x1 + b1 (u − y2 )
= A1 x1 − b1 c′2 x2 + b1 u.
(2.39)
Auf ähnliche Weise erhält man aus den Gln. (2.23), (2.24) und (2.38) die Gleichung
ẋ2 = A2 x2 + b2 y1
= A2 x2 + b2 c′1 x1 .
Für die Ausgangsgröße y gilt entsprechend Gl. (2.36)
(2.40)
24
2 Systemtheoretische Grundlagen
y = c′1 x1 .
(2.41)
Schreibt man die Gln. (2.39), (2.40) und (2.41) untereinander, so erhält man
! A1 −b1 c′2
x1
ẋ1
b1
+
=
u(t)
′
x2
ẋ2
0
b2 c1 A2
y = c′1 x1
und schließlich ein Modell der Form (2.26), (2.27) mit
A1 −b1 c′2
A =
b =
b2 c′1
A2
!
b1
0
(2.42)
(2.43)
c′ = (c′1 0′ )
(2.44)
d = 0,
(2.45)
wobei die beiden Nullvektoren die Dimensionen n2 haben. Die Gln. (2.42) – (2.44) zeigen,
wie sich A, b und c aus den Teilsystemmodellen berechnen lassen, wenn nach Voraussetzung
d1 = d2 = 0 gilt.
Wenn beide Teilsysteme sprungfähig sind, wird die Berechnung etwas aufwändiger, denn
u1 hängt über y2 direkt von y1 ab und y1 direkt wieder von u1 . Diese Abhängigkeiten sind
durch die algebraischen Gleichungen (2.23), (2.25) und (2.37) beschrieben, weshalb man auch
von einer algebraischen Schleife spricht. Die beiden Teilsysteme können genau dann zu einem
Gesamtsystemmodell verknüpft werden, wenn die Bedingung
d1 d2 6= −1
erfüllt ist, wovon im Folgenden ausgegangen wird.
Für y2 erhält man aus den genannten Gleichungen
y2 = c′2 x2 + d2 y1
= c′2 x2 + d2 c′1 x1 + d2 d1 u − d2 d1 y2
y2 =
1
(c′ x2 + d2 c′1 x1 + d1 d2 u)
1 + d1 d2 2
y1 =
1
(c′ x1 − d1 c′2 x2 + d1 u) .
1 + d1 d2 1
und analog dazu für y1
An Stelle der Gln. (2.39) – (2.41) führen die Zustandsgleichungen der Teilsysteme auf
(2.46)
2.4 MATLAB-Funktionen für die Modellbildung
25
1
1
d2
′
b1 c1 x1 −
b1 c′2 x2 +
b1 u
ẋ1 = A1 −
1 + d1 d2
1 + d1 d2
1 + d1 d2
d1
d1
1
ẋ2 = A2 −
b2 c′2 x2 +
b2 c′1 x1 +
b2 u
1 + d1 d2
1 + d1 d2
1 + d1 d2
y =
d1
d1
1
c′1 x1 −
c′2 x2 +
u
1 + d1 d2
1 + d1 d2
1 + d1 d2
und zum Modell des Gesamtsystems (2.26), (2.27) mit

A = 
A1 −
d2
′
1+d1 d2 b1 c1
1
′
1+d1 d2 b2 c1
− 1+d11 d2 b1 c′2
A2 −
1
1+d1 d2 b1
d1
1+d1 d2 b2
c =
1
d1
c′
c′
1 + d1 d2 1 1 + d1 d2 2
d =
d1
.
1 + d1 d2
b =
′
d1
′
1+d1 d2 b2 c2 ,


(2.47)
(2.48)
(2.49)
(2.50)
Die Gleichungen zeigen, dass das Gesamtsystem sprungfähig ist, solange das Teilsystem
im Vorwärtszweig sprungfähig ist (d1 6= 0). Der Faktor 1+d11 d2 , der durch die algebraische
Schleife in die Gleichungen hineinkommt, entfällt, wenn eines der beiden Teilsysteme nicht
sprungfähig ist. Für d1 = d2 = 0 geht schließlich das Gleichungssystem in die einfachere
Form (2.26) – (2.44) über.
Diskussion. Bei allen drei Zusammenschaltungen erscheinen die Systemmatrizen A1 und A2
der Teilsysteme als Hauptdiagonalblöcke in der Systemmatrix A des verkoppelten Systems.
Bei der Reihenschaltung und der Parallelschaltung ist A eine Blockdreiecksmatrix bzw. eine
Blockdiagonalmatrix. Bei der Rückkopplungsschaltung sind die beiden Teilsysteme in beiden
Richtungen verkoppelt, was sich auch in der Zusammensetzung der Matrix A ausdrückt.
2.4 MATLAB-Funktionen für die Modellbildung
Zustandsraummodelle der Form (2.17), (2.18) werden durch Angabe der Matrizen A, B, C und
D sowie der Anfangsbedingung x0 notiert, wobei man zweckmäßigerweise für die Variablen
in MATLAB dieselben Namen A, B, C, D und x0 verwendet. Die Variablen A, B, C, D werden
durch die Funktion ss der Variablen System zugewiesen, so dass sie später unter Verwendung
dieses gemeinsamen Namens aufgerufen werden können:
>> System = ss(A, B, C, D);
26
2 Systemtheoretische Grundlagen
An Stelle von System kann man aussagekräftige Namen wie Gleichstrommotor oder
Teilsystem1 verwenden. Will man die Systemparameter für ein System auslesen, so verwendet man die Funktion ssdata:
>> [A, B, C, D] = ssdata(System);
Das Modell kann durch den Funktionsaufruf
>> printsys(A, B, C, D)
auf dem Bildschirm ausgegeben werden.
Das Zustandsraummodell einer Reihen-, Parallel- oder Rückführschaltung zweier Teilsysteme, die als System1 und System2 bezeichnet sind, kann mit den Funktionen
>> Reihenschaltung = series(System1, System2);
>> Parallelschaltung = parallel(System1, System2);
>> Rueckfuehrschaltung = feedback(System1, System2);
entsprechend der Gln. (2.28) – (2.31), (2.32) – (2.35) bzw. (2.47) – (2.50) berechnet werden.
Bei der Rückführschaltung wird von einer negativen Rückkopplung ausgegangen; andernfalls
muss als drittes Argument +1 eingegeben werden.
Simulationsuntersuchungen mit Simulink. Simulink ist ein zu MATLAB gehörendes Programmpaket, mit dessen Hilfe man von einem Blockschaltbild ausgehend Simulationsuntersuchungen durchführen kann. Dafür zeichnet man ein Blockschaltbild nach den Vorgaben aus Abschn. 2.1. Um das dynamische Verhalten des so dargestellten Systems untersuchen zu können,
muss man genau angeben, durch welche mathematischen Modelle die einzelnen Blöcke beschrieben werden. Da es für häufig vorkommende Teilsysteme spezielle Blöcke gibt, beschränkt
sich die Programmierung des betrachteten Systems auf die Auswahl und Zusammenschaltung
geeigneter Blöcke und die Angabe der Parameterwerte.
Das Vorgehen ist in Abb. 2.14 dargestellt. Die Blockschaltbilder werden in .mdl-Dateien
gespeichert. Der Simulator bildet selbstständig aus den Gleichungen aller Blöcke ein Gleichungssystem für das Gesamtsystem und löst dieses Gleichungssystem für die vorgegebenen
Anfangszustände der Blöcke und die ausgewählten Eingangssignale.
Beispiel 2.2 (Forts.)
Zustandsraummodell eines Gleichstrommotors
Das Modell (2.20), (2.21) wird folgendermaßen in MATLAB definiert:
>>
>>
>>
>>
>>
AMotor =
bMotor =
cMotor =
dMotor =
x0 = [1;
[-10 -0.6; 23.08 -0.023];
[20; 0];
[0 1];
0;
1];
wobei wie im Modell des Eingrößensystems mit kleinen Buchstaben für die Variablen gearbeitet wird.
Dem Modell wird durch die Anweisung
>> Gleichstrommotor = ss(AMotor, bMotor , cMotor, dMotor);
2.4 MATLAB-Funktionen für die Modellbildung
27
S im u la t io n s a u fg a b e
M o d e llb ild u n g
B lo c k s c h a lt b ild ,
M o d e lle d e r T e ils y s t e m e ,
S ig n a lm o d e lle
Ü b e r fü h r u n g in e in
S im u lin k -B lo c k s c h a lt b ild
M o d e ll.m d l
S im u la t o r
A u sw a h l v o n
P a ra m e te rn
S im u la t io n s e r g e b n is
E r g e b n is .m a t
V is u a lis ie r u n g
M A T L A B / S im u lin k
G r a fis c h e D a r s t e llu n g
d e s E r g e b n is s e s
Abb. 2.14: Simulationsuntersuchungen mit Simulink
der Name Gleichstrommotor gegeben.
Es wird nun angenommen, dass die Ausgangsgröße ω durch ein Messglied gemessen wird, das als
Verzögerungsglied erster Ordnung mit der Zeitkostante T beschrieben wird
1
1
xM (t) + y(t),
T
T
yM (t) = xM (t).
ẋM (t) = −
xM (0) = xM0
(2.51)
(2.52)
Das Messglied mit der Zeitkonstante T = 0,01 s wird durch
>>
>>
>>
>>
>>
>>
T=0.01;
AM = -1/T;
bM = 1/T;
cM = 1;
dM = 0;
Messglied = ss(AM, bM, cM, dM);
definiert. Das Modell für die Reihenschaltung von Motor und Messglied erhält man dann durch den
Funktionsaufruf
MotorMitMessglied = series(Gleichstrommotor, Messglied);
28
2 Systemtheoretische Grundlagen
Abb. 2.15: Simulink-Blockschaltbild des Gleichstrommotors
Abb. 2.16: Simulink-Blockschaltbild des Gleichstrommotors
wodurch das Modell entsprechend der Gln. (2.28) – (2.31) gebildet wird.
Bei der Verwendung von Simulink wird das Modell entweder aus einem einzigen Block aufgebaut,
der das gesamte Zustandsraummodell enthält. Die Eingangsgröße wird durch einen Signalgenerator (z.
B. Block für die Erzeugung der Sprungfunktion σ(t)) erzeugt und die Ausgangsgröße durch einen Block
( Scope“) angezeigt oder in eine Datei geschrieben (Abb. 2.15). Die zweite Möglichkeit besteht darin,
”
das Zustandsraummodell aus einzelnen Integrator- und Verstärkerblöcken zusammenzusetzen. Dabei
2.5 Vorhersage des Systemverhaltens
29
werden die beiden Zustandsgleichungen einzeln abgebildet, wie es Abb. 2.16 zeigt. Das entstehende
Blockschaltbild wird wieder durch Blöcke für den Signalgenerator und die Anzeige ergänzt.
Bei beiden Möglichkeiten kann die Berechnung der Ausgangsgröße ohne weitere Modellierungsschritte durch Anklicken des entsprechenden Feldes in der Menüleiste von Simulink gestartet werden.
Dies zeigt, dass der Simulink-Interpreter die Modellgleichungen aus den einzelnen Blöcken selbst zum
Modell des Gesamtsystems zusammensetzt, also insbesondere aus dem detaillierten Blockschaltbild
(Abb. 2.15) das Zustandsraummodell (2.20), (2.21) bildet. Diese Eigenschaft von Simulink ist für nichtlineare Systeme besonders wichtig, weil dann die Zusammenfassung der Modellgleichungen erheblich
größere Mühe bereitet als bei linearen Systemen. Für Simulationsuntersuchungen nichtlinearer Systeme
wird in dieser Lehrveranstaltung deshalb ausschließlich Simulink eingesetzt. 2
2.5 Vorhersage des Systemverhaltens
2.5.1 Vorhersageaufgabe
Eine wichtige Aufgabe der rechnergestützten Systemanalyse besteht in der Vorhersage des Systemverhaltens. Zu bestimmen ist dabei der Verlauf der Ausgangsgröße y für ein gegebenes Zeitintervall 0 ≤ t ≤ te . Dieser Verlauf wird mit y[0,te ] bezeichnet. Das Zustandsraummodell zeigt,
dass für die Vorhersageaufgabe neben sämtlichen Modellparametern zwei Dinge bekannt sein
müssen: der Anfangszustand x0 und der Verlauf der Eingangsgröße u(t) für das betrachtete
Zeitintervall 0 ≤ t ≤ te , der mit u[0,te ] bezeichnet wird.
S y ste m
x 0
u
[0 ,t e ]
M o d e ll
x 0
y
E x p e r im e n t
[0 ,t e ]
V o rh e rsa g e
Abb. 2.17: Vorhersageaufgabe
Das Ziel der Vorhersage soll anhand von Abb. 2.17 erläutert werden. Im oberen Teil der
Abbildung ist ein Experiment dargestellt, bei dem das reale System mit der verwendeten Eingangsgröße erregt und der Systemausgang gemessen wird. Bei der Vorhersage wird der im
unteren Teil der Abbildung gezeigte Weg beschritten, bei dem aus der Eingangsgröße mit Hilfe
eines Modells die Ausgangsgröße berechnet (und grafisch dargestellt) wird. Wenn idealisierender Weise angenommen wird, dass das Modell das gegebene System exakt repräsentiert und der
Anfangszustand des Systems genau bekannt ist, so dass mit diesem Anfangszustand im Modell
gerechnet werden kann, so stimmen beide Ergebnisse überein.
Die Aufgabenstellung der Vorhersage (Prädiktion) kann also wie folgt zusammengefasst
werden:
30
2 Systemtheoretische Grundlagen
Vorhersageaufgabe
Gegeben:
Gesucht:
Zustandsraummodell
Anfangszustand x0
Verlauf der Eingangsgröße u[0,te ]
Verlauf der Ausgangsgröße y[0,te ]
In praktischen Anwendungen wird diese Aufgabe häufig nicht nur einmal, sondern mehrfach für unterschiedliche Anfangszustände und unterschiedliche Eingangsgrößen gelöst. Man
spricht dann auch von einer Szenarienanalyse.
2.5.2 Lösung der Zustandsgleichung
Die Grundlage für die Vorhersage des Systemverhaltens bildet die Lösung der Zustandsgleichung
ẋ = Ax(t) + bu(t), x(0) = x0 .
(2.53)
Da es sich um eine lineare (Vektor)-Differenzialgleichung handelt, wird zunächst die homogene
Gleichung
ẋ = Ax(t), x(0) = x0
(2.54)
betrachtet. Im Lösungsansatz
x(t) = e At k
(2.55)
ist k ein n-dimensionaler Vektor. Die (n, n)-Matrix e At ist die Matrixexponentialfunktion, die
durch die Reihe
∞
X
Ai t i
A 2 2 A3 3
e At =
= I + At +
t +
t + ...
(2.56)
i!
2!
3!
i=0
definiert ist. Diese Reihe konvergiert für alle quadratischen Matrizen A und alle Werte für t, so
dass die Differenziation mit der Summenbildung vertauscht werden kann und man
A3 2
A2 2 A3 3
d At
e
= A + A2 t +
t + ... = A I + At +
t +
t + ...
dt
2!
2!
3!
d At
e
= A e At = e At A
dt
erhält. Die letzte Beziehung ist analog zu der für e-Funktionen bekannten Differenziationsregel
d at
= ae at .
dt e
Dass mit dem Ansatz (2.55) tatsächlich die allgemeine Lösung der homogenen Differenzialgleichung gefunden ist, erkennt man durch Einsetzen dieses Ansatzes in Gl. (2.54).
Entsprechend der Methode der Variation der Konstanten wird für die Lösung der inhomogenen Differenzialgleichung (2.53) der Vektor k als zeitabhängig betrachtet, was auf den Ansatz
x(t) = e At k(t)
2.5 Vorhersage des Systemverhaltens
31
führt. Differenziert man den Ansatz und setzt ihn in die Zustandsgleichung ein, so erhält man
Ae At k + e At k̇ = Ae At k + bu.
Die Matrixexponentialfunktion e At ist für beliebige Matrizen A und Zeiten t invertierbar,
wobei
−1
= e−At = e A(−t)
e At
gilt. Multipliziert man die vorherige Gleichung mit (e At )−1 von links und nutzt die Tatsache,
dass in dem Produkt A · e At = e At · A die Reihenfolge der Faktoren vertauscht werden kann,
so erhält man
k̇ = e−At bu,
woraus sich durch Integration die gesuchte Beziehung für k(t)
Zt
0
k̇(τ ) dτ = k(t) − k(0) =
Zt
e−Aτ bu(τ ) dτ
0
ergibt. Nachdem k in den Ansatz eingesetzt wurde, erhält man unter Verwendung der Anfangsbedingung die Lösung der Zustandsgleichung:
Bewegungsgleichung:
x(t) = e At x0 +
Zt
e A(t − τ ) bu(τ ) dτ
(2.57)
0
Gleichung (2.57) heißt Bewegungsgleichung des Systems. Die zweimal in dieser Gleichung vorkommende Matrix e At wird als Übergangsmatrix, Transitionsmatrix oder Fundamentalmatrix
bezeichnet. Die Lösung (2.57) der Zustandsgleichung existiert für beliebige Modellparameter
und beliebige Anfangszustände x0 .
Mit Hilfe der Ausgabegleichung
y(t) = c′ x(t) + du(t)
kann aus der Lösung der Zustandsgleichung die Ausgangsgröße y(t) berechnet werden:
Bewegungsgleichung für den Ausgang:
Zt
y(t) = c′ e At x0 + c′ e A(t − τ ) bu(τ ) dτ + d u(t).
(2.58)
0
Diskussion der Lösung. Die Bewegung x(t) setzt sich aus zwei Komponenten zusammen
x(t) = xfrei (t) + xerzw (t),
die die Eigenbewegung
(2.59)
32
2 Systemtheoretische Grundlagen
x
x
x
fr e i(
x
fre i
0
+
t1)
t
1
x
x
x (t
e rz w
e rz w
x
(t1)
)
1
0
=
t
t
1
t
t
1
t
Abb. 2.18: Zerlegung der Bewegung x(t) in die Eigenbewegung xfrei (t) und
die erzwungene Bewegung xerzw (t)
xfrei (t) = e At x0
(2.60)
und die erzwungene Bewegung
xerzw (t) =
Z
t
0
e A(t − τ ) bu(τ )dτ
(2.61)
des Systems beschreiben (Abb. 2.18). Die Eigenbewegung xfrei (t) wird durch den Anfangszustand x0 hervorgerufen. Wird das System nicht durch eine Eingangsgröße erregt (u = 0), so
tritt ausschließlich diese Komponente der Bewegung auf und es gilt x(t) = xfrei (t). Da diese
Bewegung das freie“ System betrifft, wird sie auch als freie Bewegung bezeichnet. Sie entfällt,
”
wenn sich das System zum Zeitpunkt t = 0 in der Ruhelage befindet (x0 = 0). Die erzwungene Bewegung xerzw (t) wird durch die Eingangsgröße u hervorgerufen. Freie und erzwungene
Bewegung überlagern sich additiv, weil das System linear ist. Dies ist für den Zeitpunkt t1 in
Abb. 2.18 für ein System erster Ordnung mit dem Zustand x gezeigt.
Die hier angegebene Zerlegung der Bewegung in zwei unabhängige Komponenten für die
Eigenbewegung und die erzwungene Bewegung ist nur bei linearen Systemen möglich. Bei
nichtlinearen Systemen bestimmen der Anfangszustand x0 und die Eingangsgröße u(t) gemeinsam die Bewegung x(t), ohne dass man ihre Beiträge wie hier durch zwei unabhängige
Summanden angeben könnte.
Kennfunktionen dynamischer Systeme. Das Verhalten linearer Systeme beurteilt man häufig
anhand der folgenden Kennfunktionen, die den Verlauf der Ausgangsgröße für eine spezielle
Wahl des Anfangszustands und der Eingangsgröße zeigen:
•
Die Übergangsfunktion (Sprungantwort) y(t) = h(t) erhält man für x0 = 0, wenn man
den Einheitssprung
0
für t < 0
.
(2.62)
σ(t) =
1
für t ≥ 0
an den Eingang des Systems anlegt (u(t) = σ(t)):
h(t) =
Zt
c′ e Aτ b dτ + d.
(2.63)
0
Für stabile Systeme nähert sich die Übergangsfunktion für t → ∞ einem Endwert h(∞),
der die statische Verstärkung des Systems beschreibt und mit ks bezeichnet wird. Aus
Gl. (2.63) erhält man
2.6 MATLAB-Funktionen für die Analyse des Zeitverhaltens
ks = −c′ A−1 b + d.
•
(2.64)
Die Gewichtsfunktion (Impulsantwort) y(t) = g(t) erhält man für x0 = 0 bei impulsförmige Erregung u(t) = δ(t):
g(t) = c′ eAt b + d δ(t).
•
33
(2.65)
Die Eigenbewegung yfrei (t) für den Anfangszustand x0 6= 0 erhält man für u(t) = 0:
yfrei (t) = c′ e At x0 .
(2.66)
2.6 MATLAB-Funktionen für die Analyse des Zeitverhaltens [9]
Im Folgenden werden die Analysefunktionen behandelt, mit denen die behandelten Rechenoperationen ausgeführt werden können.
Die Eigenwerte der Matrix A kann man sich mit der Funktion
>> eig(A)
ausgeben lassen. Für die Berechnung der Kennfunktionen im Zeitbereich stehen mehrere Funktionen zur Verfügung. Die Übergangsfunktion (2.63) des Systems erhält man als grafische Darstellung auf dem Bildschirm durch den Aufruf
>> step(System);
Die statische Verstärkung nach Gl. (2.64) erhält man durch den Funktionsaufruf
>> ks=dcgain(System);
Um die Gewichtsfunktion (2.65) zu erhalten, schreibt man
>> impulse(System);
wobei wiederum die grafische Darstellung auf dem Bildschirm erscheint. Die Eigenbewegung (2.66) erhält man für einen vorgegebenen Anfangszustand x0 mit der Anweisung
>> initial(System, x0);
Will man die Ausgangsgröße des Systems entsprechend Gl. (2.58) für eine beliebig vorgegebene
Eingangsgröße berechnen, so müssen zunächst zwei Zeilenvektoren u und t gleicher Länge
mit den Werten der Eingangsgröße bzw. mit den dazugehörigen Zeitpunkten belegt werden.
Die Lösung der Bewegungsgleichung erhält man dann mit dem Funktionsaufruf
>> lsim(System, u, t, x0);
grafisch auf dem Bildschirm dargestellt.
34
2 Systemtheoretische Grundlagen
Step Response
35
30
25
Amplitude
20
15
10
5
0
0
0.5
1
1.5
2
2.5
3
3.5
Time (sec)
Abb. 2.19: Übergangsfunktion des Gleichstrommotors
Beispiel 2.2 (Forts.)
Zustandsraummodell eines Gleichstrommotors
Der Funktionsaufruf
>> step(Gleichstrommotor);
führt auf die in Abb. 2.19 gezeigte Abbildung der Übergangsfunktion des Motors. 2
3
Mathematische Grundlagen
Numerische Operationen führen aus zwei Gründen nicht immer zum erwarteten Ergebnis:
•
•
Zahlen sind nur mit einer beschränkten Genauigkeit im Rechner darstellbar.
Das vom Rechner zu lösende numerische Problem gibt das gegebene Problem nur näherungsweise wieder.
Sie müssen die numerischen Schwierigkeiten der von Ihnen eingesetzten Operationen kennen, um zwischen Ergebnissen, die für Sie erstaunlich, aber richtig sind, und den Wirkungen
schlecht konditionierter Probleme unterscheiden zu können.
Beispiel 3.1
Numerische Probleme
Das Folgende ist ein Beispiel für Fehler, die aus der endlichen Rechengenauigkeit entstehen. Zu berechnen ist
a = 0,1
b = 1
c = a+b
d = c−b
e = d−a
Wenn man die Gleichungen ineinander einsetzt, heißt das Ergebnis e = 0. Bei MATLAB erhält man
aber das folgende Ergebnis:
>>
>>
>>
>>
>>
e =
a=0.1;
b=1;
c=a+b;
d=c-b;
e=d-a
36
3 Mathematische Grundlagen
8.3267e-017
Der Grund hierfür ist die begrenzte Genauigkeit in der Zahlendarstellung.
Bei Matrizenoperationen können sich derartige Fehler darin auswirken, dass beispielsweise nicht
invertierbare Matrizen invertiert werden:
>> A = [1 2 3; 4 5 6; 7 8 9];
>> det(A)
ans =
0
>> inv(A)
ans =
1.0e+016 *
-0.4504
0.9007
-0.4504
0.9007
-1.8014
0.9007
-0.4504
0.9007
-0.4504
Es wird allerdings eine Fehlerausschrift ausgegeben
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.541976e-018.
RCOND ist ein Maß, an dem man die numerische Genauigkeit des Ergebnisses beurteilen kann. Je
kleiner RCOND ist, umso schlechter ist die Matrix A konditioniert (vgl. Informationen unter >> help
rcond). 2
Was kann man in diesen Fällen tun? Generell muss man darauf achten, dass man numerisch
stabile Lösungsverfahren einsetzt. Hierzu gibt es umfangsreiche Untersuchungen, auf die in
dieser Vorlesung nicht eingegangen werden kann. Es soll lediglich anhand eines Beispieles auf
dieses Problem hingewiesen werden.
Beispiel 3.2
Lösung linearer Gleichungssysteme
Bei der Lösung des Gleichungssystems Ax = b soll man aus numerischen Gründen nicht die Lösung
mit Hilfe der inversen Matrix A−1 berechnen, sondern den Gaußschen Algorithmus vewenden, der in
MATLAB in der Linksdivision A \ b implementiert ist: Mit der im Beispiel 3.1 angegebenen Matrix
A erhält man
>> b=[1; 1; 1];
>> inv(A)*b
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.541976e-018.
ans =
-2.5000
3 Mathematische Grundlagen
5.0000
-1.5000
>> A*ans
ans =
3
6
9
Demgegenüber erhält man mit der Linksdivision, wie die Probe zeigt, eine korrekte Lösung.
>> A\b
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.541976e-018.
ans =
-2.5000
4.0000
-1.5000
>> A*ans
ans =
1
1
1
37
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Teil 2: Aufgaben für das
MATLAB-Praktikum
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
email: [email protected]
6. April 2009
4
Aufgaben für das MATLAB-Praktikum
Dieser Teil enthält die Aufgaben, die im MATLAB-Praktikum zu lösen sind. Es ist
dringend erforderlich, dass die Lösung der Aufgaben vor dem Praktikum soweit vorbereitet werden, dass an den Praktikumsterminen sofort mit der rechnergestützten Bearbeitung des Lösungsweges begonnen werden kann.
Aufgabe 4.1
Erste Schritte mit MATLAB
In dieser Praktikumsaufgabe soll MATLAB interaktiv genutzt werden, um bekannte Rechenoperationen
mit Matrizen auszuführen.
Vorbereitung der Praktikumsaufgabe zu Hause. Wiederholen Sie die Grundlagen der Matrizenrechnung, die Sie für diese Praktikumsaufgabe benötigen.
Lösung der Praktikumsaufgabe mit MATLAB.
1. Geben Sie die folgenden Matrizen in den Workspace ein:
!
!
−10 −0,6
−10 2.5
,
,
AMotor =
A1 =
23,08 −0,023
3 0.034
A2 =
1 1
0 1
!
2. Bestimmen Sie die Determinante und den Rang dieser Matrizen.
3. Berechnen Sie die Spektralnorm
kAk =
q
λmax {A′ A},
aller Matrizen, wobei λmax den größten Eigenwert der angegebenen Matrix bezeichnet.
4. Berechnen Sie die Eigenwerte und Eigenvektoren dieser Matrizen und transformieren Sie diese
Matrizen in Diagonalform.
5. Erzeugen Sie einen Zeilenvektor mit den Werten 0 bis 1 im Abstand von 0,1. 2
4 Aufgaben für das MATLAB-Praktikum
Aufgabe 4.2
3
Erzeugung und Darstellung eines stochastisch gestörten Signals
In dieser Aufgabe sollen Sie mit MATLAB programmieren. Schreiben Sie ein Skript und eine Funktion
zur Erzeugung einer Sinusfunktion f (t) = sin ωt über ein von Ihnen vorgegebenes Zeitintervall [0...T ].
Überlagern Sie dieses Signal mit einem Rauschsignal mit dem Mittelwert 0 und der Streuung σ und
stellen Sie das Ergebnis grafisch dar.
Vorbereitung der Praktikumsaufgabe zu Hause. Informieren Sie sich über die statistischen Eigenschaften von Rauschsignalen (vgl. Abschn. 5.5).
Lösung der Praktikumsaufgabe mit MATLAB.
1. Schreiben Sie das Skript und die Funktion und wenden Sie beide an.
2. Berechnen Sie den Mittelwert und die Streuung des von Ihnen verwendeten Rauschsignals und
überprüfen Sie, dass Ihr Ergebnis mit Ihren Vorgaben überein stimmt.
3. Benutzen Sie dieses Skript bzw. diese Funktion, um Signale mit unterschiedlicher Kreisfrequenz
ω und unterschiedlicher Streuung σ in einem gemeinsamen bzw. in mehrere in gleicher Weise
skalierte Bilder zu zeichnen. 2
4
4 Aufgaben für das MATLAB-Praktikum
Aufgabe 4.3
Operationsverstärkerschaltung
R2
R1
uE
C
uD
-
uA
+
Abb. 4.1: Operationsverstärkerschaltung
Parameter
R1
R2
C
Wert
1kΩ
10kΩ
10µF
Vorbereitung der Praktikumsaufgabe zu Hause. Da zunächst ein idealer Operationsverstärker
angenommen wird, ist davon auszugehen, dass kein Strom in den Operationsverstärker fließt und uD
null ist. (Diese Annahme ist gleichbedeutend mit einer sehr hohen Verstärkung v0 = UA /UD → ∞
des Operationsverstärkers.)
1. Stellen Sie das Zustandsraummodell der Operationsverstärkerschaltung auf.
2. Stellen Sie die Parameter der Schaltung zusammen, wählen Sie geeignete Maßeinheiten für alle
Signale und bestimmen Sie das Zustandsraummodell als Zahlenwertgleichung.
3. Wie müssen Sie die Werte der Bauelemente ändern, so dass die Schaltung einen Tiefpass mit der
Zeitkonstante T = 1 s darstellt.
Lösung der Praktikumsaufgabe mit MATLAB.
1. Zeichnen Sie die Übergangsfunktion und die Gewichtsfunktion für beide Schaltungen. Welche
statische Verstärkung besitzt das System?
2. Verwenden Sie Sinussignale unterschiedlicher Frequenz als Eingangsspannung für die Operationsverstärkerschaltung, die den Tiefpass darstellt. Berechnen Sie die dabei entstehenden Ausgangsspannungen. Bewerten Sie die Ergebnisse im Hinblick darauf, ob der Tiefpass die vorgegebene
Zeitkonstante besitzt.
3. Stellen Sie das Bodediagramm der Operationsverstärkerschaltung dar, sowie dass der Reihenschaltung zweier solcher Schaltungen. Vergleichen und interpretieren Sie die Ergebnisse. (Befehl: bode(System))
4. Erzeugen Sie ein Blockschaltbild in Simulink mit ihrem Zustandsraummodell eines beschalteten
Operationsverstärkers. Die Schaltung soll wieder durch ein Sinussignal angeregt werden. Stellen
Sie den Ausgang graphisch dar.
4 Aufgaben für das MATLAB-Praktikum
5
Rückkopplungsstruktur eines Operationsverstärkers.
Im Folgenden wird die Annahme der unendlich hohen Verstärkung des Operationsverstärkers, die
gleichbedeutend mit UD = 0 ist, fallengelassen. Die Spannung UD erhält man jetzt in Abhängigkeit
von UA und UE , beschrieben durch das Zustandsraummodell
1
1
1
UE
U̇C = −(
, UC (0) = 0,
(4.1)
+
)UC +
[1 − 1] ·
UA
R1 C
R2 C
R1 C
UE
UD = −UC + [0 − 1] ·
.
UA
Die endliche Verstärkung des Operationsverstärkers sei v0 =
UA
UD
(typ. v0 = 10000).
Vorbereitung der Praktikumsaufgabe zu Hause. Zeichnen Sie ein Blockschaltbild der Schaltung,
worin das gegebene Zustandsraummodell, der durch die Verstärkung v0 beschriebene
Operationsverstärker, sowie die Ein- und Ausgangssignale auftauchen.
Lösung der Praktikumsaufgabe mit MATLAB.
1. Erweitern Sie ihr Simulink-Blockschaltbild aus Aufgabe 4.3, indem Sie den Operationsverstärker
zusätzlich durch eine eine hohe Verstärkung v0 und die Rückkopplung 4.1 darstellen. Verwenden
Sie das selbe Eingangssignal wie für den idealen Operationsverstärker und stellen Sie die
Ausgänge in einem Diagramm dar. Vergleichen Sie die Ergebnisse bei unterschiedlichen
Verstärkungen v0 .
2. Im Folgenden sei die Ausgangsspannung des Operationsverstärkers auf ±12V begrenzt.
Berücksichtigen Sie dies durch einen Sättigungsblock in ihrem Modell. Erhöhen Sie die
Eingangsspannung, bis die Begrenzung der Ausgangsspannung sichtbar wird.
6
4 Aufgaben für das MATLAB-Praktikum
Aufgabe 4.4
Drehzahlgeregelter Gleichstrommotor
Betrachten Sie den in Abb. 2.4 gezeigten drehzahlgeregelten Gleichstrommotor. Das Motormodell ist
im Beispiel 2.2 abgeleitet worden. Es soll hier für folgende Parameter verwendet werden:
Parameter
Widerstand der Wicklung
Symbol und Wert
R=9
Maßeinheit
Ω
Induktivität der Wicklung
L = 110
mH
Motorkonstante
kM = 5
Vs
rad
Motorkonstante
kR = 0,1
Nms
Motorkonstante
kT = 1
Nm
A
Trägheitsmoment
J = 0,1
Nms2
Das Messglied wird als System erster Ordnung (2.51), (2.52) mit der Zeitkonstanten T = 0,008 s
beschrieben. Der Block Umrechnung“ formt das Messsignal (Maßeinheit rad
) in die Drehzahl n (Maßs
”
einheit 1s ) um. Der Drehzahlregler wird durch die Gleichungen
ẋr = n(t) − nSoll (t)
u(t) = −kI xr − kP (n(t) − nSoll (t))
dargestellt, wobei mit folgenden Reglerparametern gerechnet werden soll:
kI = 231 V,
kP = 3 Vs.
Vorbereitung der Praktikumsaufgabe zu Hause.
1. Fassen Sie die Modellgleichungen für die einzelnen Blöcke des in Abb. 2.4 gezeigten Blockschaltbildes zusammen und überprüfen Sie, dass sich die Gleichungen auf die richtigen Eingangs- und
Ausgangssignale der Blöcke beziehen.
2. Wählen Sie geeignete Maßeinheiten für alle Signale und stellen Sie die Parameter in diesen Maßeinheiten zusammen.
3. Wie muss das Modell erweitert werden, wenn man eine zusätzliche Last durch ein Lastmoment
ML (t) beschreibt?
4. Welchen Drehzahlverlauf erwarten Sie, wenn Sie einerseits den Sollwert nSoll um 10
bzw. andererseits das Lastmoment zur Zeit t = 0 um 100 Nm erhöhen (Skizzen)?
1
s
erhöhen
Lösung der Praktikumsaufgabe mit MATLAB.
1. Übertragen Sie das Blockschaltbild in Simulink.
2. Definieren Sie die Parameter im Workspace und tragen Sie die entsprechenden Variablennamen in
die Simulink-Blöcke ein.
3. Verwenden Sie eine sprungförmige Eingangsgröße, die eine Änderung des Drehzahlsollwertes gegenüber dem Nominalwert vorgibt. Welche statische Verstärkung besitzt der Regelkreis?
4. Die Motordrehzahl soll einer Sollwertänderung innerhalb von 2 Sekunden folgen. Untersuchen
Sie, ob der Regelkreis diese Güteforderung erfüllt.
4 Aufgaben für das MATLAB-Praktikum
7
5. In welcher Weise ändert der Regler die Eingangsspannung des Motors, wenn der Drehzahlsollwert
um 10 1s verkleinert wird? Wie können Sie aus den Diagrammen für n(t) und u(t) die statische
Verstärkung des Gleichstrommotors ablesen? Hinweis: Trennen Sie den Regelkreis an geeigneter
Stelle auf.
6. Das Verhalten des Gleichstrommotors wird näherungsweise durch das Modell erster Ordnung
dx̂
= −7,080x̂ − 1,55u(t)
dt
ω(t) = −0,775x̂
beschrieben. Vergleichen Sie das Verhalten dieses Modells mit dem des Modells zweiter Ordnung.
Verändert sich das Verhalten des Regelkreises wesentlich, wenn Sie das Modell zweiter Ordnung
durch das Näherungsmodell ersetzen?
7. Wie verändert sich das Verhalten des Regelkreises, wenn das Trägheitsmoment J aufgrund einer Laständerung Werte im Intervall 0,1Nms2 ... 0,5Nms2 annimmt? Ist die Güteforderung unter
diesen Laständerungen erfüllt?
8. Der Motor wird durch ein zusätzliches Lastmoment ML (t) = 100σ(t) Nm gestört. Wie verhält
sich der Regelkreis?
9. Welcher Drehzahlverlauf ergibt sich, wenn zur Zeit t = 0 eine Sollwerterhöhung um 10
nommen wird und zur Zeit t = 10 s das Lastmoment um 100 Nm erhöht wird? 2
1
s
vorge-
10. Stellen Sie die freie Bewegung y frei des Regelkreises für (i0 , ω0 ) = (0, 60) dar. (Der Sollwert ist
nsoll = 0. Denken Sie daran, Motor und Messglied konsistent zu initialisieren.)
11. Stellen Sie die erzwungene Bewegung y erzw des Regelkreises für sprungförmige Anregung nsoll =
60
.
2π
12. Überprüfen Sie, dass das Verhalten der Kombination freier Bewegung und erzwungener Bewegung tatsächlich zur Summation der freien und erzwungenen Bewegung führt. Warum gibt es bei
Überlagerung dieser freien und erzwungenen Bewegungen überhaupt einen Einschwingvorgang?
13. Die Motorspannung kann sich aus physikalischen Gründen nur mit einer Rate von 1000 V/s ändern.
Fügen Sie dazu einen Rate-Limiter ein. Prüfen Sie, ob das Superpositionsprinzip noch immer
erfüllt ist.
8
4 Aufgaben für das MATLAB-Praktikum
Schwebende Kugel“
”
Der in der Vorlesung vorgeführte Versuch Schwebende Kugel“ soll mit Hilfe von Simulink analysiert
”
werden. In vereinfachter Form ist der Versuchsaufbau in Abb. 4.2 gezeigt.
Aufgabe 4.5
i(t)
u(t)
s(t)
Regler
a
y(t)
b
Abb. 4.2: Versuchsaufbau Schwebende Kugel“
”
Die Abstand s(t) der Kugel vom Elektromagnet wird mit einer Solarzelle gemessen, deren Ausgangsspannung y(t) proportional zur beleuchteten Fläche ist. Der Regler gibt in Abhängigkeit von der
Messgröße y(t) den Strom i(t) am Elektromagnet vor.
Arbeiten Sie mit folgenden Modellvereinfachungen:
• Die Kraft FM , die der Elektromagnet auf die Kugel ausübt, ist näherungsweise gleich
FM (t) = k1
•
i2 (t)
.
s2 (t)
Die Reibungskraft FR ist proportional zur Geschwindigkeit der Kugel:
FR (t) = kR
•
ds
.
dt
(4.5)
gilt.
Wenn sich die Kugel nicht zwischen Lampe und Solarzelle befindet, hat die Solarzelle die Ausgangsspannung ymax . Andernfalls wird näherungsweise angenommen, dass sich die Spannung y(t)
in Abhängigkeit von der Kugelposition aus
y(t) =
•
(4.4)
Berücksichtigen Sie bei der Modellbildung die Trägheit (Trägheitskraft FT (t)) der Kugel, so dass
FM (t) + FT (t) + FR (t) − FG (t) = 0
•
(4.3)
ymax
(s(t) − a)
b
für a ≤ s(t) ≤ a + b
berechnet.
Der Regler bestimmt den Strom i(t) durch die Spule nach folgendem Reglergesetz:
(
0
wenn y < w,
i(t) =
kP (y(t) − w) wenn y > w,
(4.6)
(4.7)
wobei durch Vorgabe von w die gewünschte Kugelposition bestimmt wird. Das Reglergesetz sichert, dass der Strom nicht negativ werden darf. Da man die Kugel in der Mitte der Solarzelle
halten möchte und die Solarzelle in diesem Fall die Spannung ymax
ausgibt, wird mit
2
4 Aufgaben für das MATLAB-Praktikum
9
w=
ymax
2
gearbeitet.
Beachten Sie bei der Modellierung insbesondere die Nichtlinearitäten, die sich durch physikalische
Beschränkungen ergeben.
Verwenden Sie folgende Parameterwerte:
•
Parameter
Erdbeschleunigung
Masse der Kugel
Konstante des Elektromagneten
Reibungskonstante
Reglerparameter
Abstand zwischen Elektromagnet und Solarzelle
Höhe der Solarzelle
Maximalspannung der Solarzelle
Symbol und Wert
g = 9,81
Maßeinheit
m = 50
g
k1 = 2 · 10−4
Nm2
A2
kR = 0, 1
kP = 10
a=2
b=5
ymax = 4
Ns
m
A
V
m
s2
cm
cm
V
Vorbereitung der Praktikumsaufgabe zu Hause. Bereiten Sie die Aufgabe so vor, dass Sie sie in der
verfügbaren Zeit von 3 Stunden vollständig lösen können.
Lösung der Praktikumsaufgabe mit MATLAB.
1. Übertragen Sie Ihr Blockschaltbild in Simulink. Stellen Sie den Löser mit variabler Schrittweite
ode 113 (Adams) mit der maximalen Schrittweite 10−3 ein. Beachten Sie die Signalbegrenzungen
für y und i mit Hilfe von Saturation-Blöcken!
2. Tragen Sie die Parameterwerte in die Blöcke ein. Denken Sie daran, die Anfangsbedingungen der
Integratoren zu setzen.
3. Welches Simulationsergebnis erhalten Sie, wenn die Kugel zur Zeit t = 0 die Position s(0) = a
bzw. s(0) = a + 23 b befindet?
4. Welcher konstante Strom I¯ fließt durch den Elektromagneten, wenn die Kugel ruhig in der Gleichgewichtslage schwebt?
5. Verändern Sie den Reglerparameter kP und untersuchen Sie, wie sich das Verhalten der Kugel
qualitativ verändert, wenn kP sehr groß bzw. sehr klein gemacht wird (0 ≤ kP ≤ 1000).
Formale Hinweise zur Abgabe der Lösung.
1. Fertigen Sie zu den Fragen 3 bis 5 aussagekräftige Plots an. Fertigen Sie für jeden wesentlichen
Aspekt ihrer Antwort einen eigenen Plot an.
2. Versehen Sie jeden Plot in MATLAB vor dem Ausdrucken mit ihrem Namen und dem Datum
der Übung.
3. Notieren Sie zu jeder Frage direkt auf dem ausgedruckten Plot eine kurze Antwort (maximal 3
Sätze).
4. Geben Sie ihre Vorbereitungsunterlagen zusammen mit den Plots und Antworten zusammen
ab. Stellen Sie sicher, dass Name und Matrikelnummer auf jedem abgegebenen Blatt stehen.
10
4 Aufgaben für das MATLAB-Praktikum
Die folgenden Aufgaben dienen der Prüfungsvorbereitung. Bei der Prüfung wird eine Aufgabe diesen Typs gestellt. Bewertet werden die abgegebenen Aufzeichnungen über die Vorbereitungsschritte (z. B. über die Modellbildung), Ausdrucke der MATLAB-Ergebnisse sowie die
Antworten auf die gestellten Fragen. Halten Sie sich bei der Lösung der Aufgaben deshalb an
die im Algorithmus 1.1 vorgegebenen Lösungsschritte!
Aufgabe 4.6
Analyse der Bewegung eines Fahrzeugs
Das vereinfachte Modell einer Automobilfederung (siehe Abb. 4.3) soll mit Simulink untersucht werden.
Dabei ist insbesondere der Einfluss der Dämpfung d2 zu untersuchen.
Karosserie m2
y(t)
d2
c2
Rad m1
x(t)
c1
Straße
u(t)
Abb. 4.3. Mechanisches Ersatzschaltbild einer Automobilfederung
Die Federung wird durch
m2 ÿ + d2 (ẏ − ẋ) + c2 (y − x) = 0
m1 ẍ + d2 (ẋ − ẏ) + c2 (x − y) = c1 (u − x)
mit x(0) = ẋ(0) = 0 und y(0) = ẏ(0) = 0 beschrieben.
Parameter
Symbol und Wert
Maßeinheit
Federkonstante 1
c1 = 9 · 104
N
m
Federkonstante 2
c1 = 3 · 104
N
m
Masse des Rads
m1 = 25
kg
Masse der Karosserie
m2 = 250
kg
x1 = 18
cm
Abstand Karosserie zu Achse
Beantworten Sie unter Nutzung von MATLAB folgende Fragen:
1. Wie heißt das Zustandsraummodell des Fahrzeugs? Welche Eigenwerte hat das System?
2. Welches Simulink-Blockschaltbild verwenden Sie für Ihre Untersuchungen (Skizze)?
3. Das Fahrzeug fährt über eine Bordsteinkante von 20 cm Höhe. Untersuchen Sie für verschiedene
Dämpfungen d2 , ob die Karosserie auf die Achse aufschlägt, und nach welcher Zeit sich die durch
die Erregung ausgelöste Schwingung beruhigt hat.
4 Aufgaben für das MATLAB-Praktikum
Aufgabe 4.7
11
Fahrt mit der Eisenbahn [9]
Ein Personenzug besteht aus einer Lokomotive (Masse 150 t) und 10 Wagen (Masse je 10 t). Der
Rollwiderstand erzeugt eine von der Geschwindigkeit v des Zuges abhängige Bremskraft Fr = cv,
wobei für die Konstante der Wert c = 2 st angenommen wird. Nach Abfahrt des Zuges am Bahnhof 1
zur Zeit t = 0 beschleunigt die Lokomotive den Zug mit der Kraft Fa = 75 kN bis zum Zeitpunkt
t1 = 200 s. Anschließend rollt der Zug ohne Beschleunigung durch die Lok, aber unter Wirkung des
Rollwiderstandes, um vom Zeitpunkt t2 = 300 s an mit konstanter Bremskraft von Fb = 80 kN bis
zum Stillstand abgebremst zu werden.
1. Stellen Sie den Geschwindigkeitsverlauf über der Zeit dar.
2. In welcher Zeit t3 kommt der Zug zum Stillstand? Wie weit befindet er sich dann vom Ausgangspunkt entfernt?
3. Wie groß muss die Bremskraft Fb gewählt werden, damit der Zug zur Zeit t3 = 400 s zum Stillstand kommt? 2
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Teil 3: Einführung in MATLAB
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
email: [email protected]
6. April 2009
5
Einführung in MATLAB
Dieser Teil gibt eine kurze Einführung in das Programmpaket MATLAB. Ausführlichere Darstellungen findet man in der im Teil 5 angegebenen Literatur.
5.1 MATLAB-Interpreter
Nach dem Aufruf von MATLAB öffnet sich das MATLAB-Fenster, dessen wichtigster Teil das
Kommandofenster (Command Window) ist. In diesem erscheint der Prompt >> (bzw. EDU >>
bei der Studentenversion), hinter den das nächste Kommando geschrieben werden kann.
Weitere Teile des Kommando-Fensters sind
•
•
•
Command History Window: Liste der zuletzt eingegebenen Befehle (durch Doppelklicken
kann ein dort aufgeführter Befehl erneut aktiviert werden)
Workspace (Arbeitsfenster): Speicher, in dem alle bereits definierten Variable gespeichert
werden
Current Directory Window: Liste der MATLAB-Funktionen im aktuellen Verzeichnis
Weitere Fenster wie z. B. das Hilfefenster, können bei Bedarf geöffnet werden.
Das Kommandofenster dient zur Eingabe der Aufgaben, die der Rechner lösen soll und
dessen Ergebnis er im Kommandofenster ausgibt (interaktive Arbeitsweise). Alle für die Problemformulierung und die Lösung verwendeten Variablen werden im Workspace gespeichert.
In diesem Fenster werden die Namen der Variablen zusammen mit ihrem Typ und ihrer Größe
angezeigt.
Wertzuweisung an eine Variable erfolgt durch das Gleichheitszeichen =. Die Standardvariable ans enthält das letzte Ergebnis eines Befehls, wenn dieses Ergebnis nicht einer Variablen
zugewiesen wird. Variablen müssen nicht vereinbart werden, sondern können sofort in einer
Wertzuweisung verwendet werden: a=5;
>> who
>> clear
gibt die Namen der im Workspace stehenden Variablen aus
löscht alle Variablen im Workspace
5.2 Matrizenrechnung
3
speichert alle Variablen in der Datei var.mat
lädt die Variablen aus der Datei var.mat
>> save var
>> load var
√
pi ist eine vordefinierte Variable mit dem Wert π. i und j stellen die imaginäre Einheit −1
dar und dürfen nicht als Laufvariable verwendet werden. Mit der Funktion format kann das
Ausgabeformat (allerdings nicht die Rechengenauigkeit) von Zahlen verändert werden
>> format short e
>> format long e
Fließkommadarstellung mit 5 Stellen nach dem Komma
Fließkommadarstellung mit 15 Stellen nach dem Komma.
Für Variablennamen gelten die in vielen Programmiersprachen bekannten Konventionen (Namen beginnen mit einem Buchstaben), Zahlen können als ganze Zahlen (integer), Fest- oder
Fließkommazahlen eingegeben werden. Als arithmetische Operationen und Funktionen stehen
die üblichen zur Verfügung: +, -, *, /, sin, cos, tan, cot, log (natürlicher Logarithmus),
exp, abs usw.
Help-Funktion. Es werden hier nur die wichtigsten Operationen und diese nur in ihrer einfachsten Form vorgestellt. Informationen über weitere Funktionen und eine Erweiterung der
Anwendungsgebiete der behandelten Funktionen erhält man über die MATLAB-Hilfe bzw. in
den genannten Handbüchern.
Die MATLAB-Hilfe wird mit
>> help
aufgerufen. Informationen über einzelne Funktionen (z. B. eig) erhält man durch den Aufruf
>> help eig
Der MATLAB-Help-Browser wird mit
>> helpdesk
geöffnet.
Für ausführliche MATLAB-Dokumentationen siehe [7].
5.2 Matrizenrechnung
In MATLAB werden Matrizen, Vektoren und Skalare gleichartig verwendet. Insbesondere
können Vektoren und Skalare als Matrizen mit geringer Dimension betrachtet werden. Ein Zeilenvektor kann einfach durch
4
5 Einführung in MATLAB
>> a = [1, 2, 3]
erstellt werden. Der Befehl wird nach der Betätigung von Enter ausgeführt und die Ausgabe
a =
1
2
3
wird dargestellt. Durch Abschließen des Befehls mittels Semikolon (>> a = [1, 2, 3];)
wird die Ausgabe unterdrückt, der Befehl aber trotzdem ausgeführt.
Ein Spaltenvektor wird wie folgt erstellt:
>> b = [1; 2; 3]
b =
1
2
3
Ein Vektor mit fortlaufenden Elementen kann durch den Doppelpunkt-Operator erstellt werden, wobei die untere Grenze, die Schrittweite zwischen zwei Werten und die obere Grenze
angegeben werden:
>> a = (1: 3: 20)
a =
1
4
7
10
13
16
19
Wird keine Schrittweite angegeben so wird +1 als Schrittweite verwendet.
Eine Matrix kann durch Angabe der Elemente erstellt werden:
>> A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
A =
1
2
3
4
5
6
7
8
9
Komplexe Zahlen werden durch ihren Realteil und Imaginärteil angegeben:
>> a = [1+5i, -2i]
a =
1.0000 + 5.0000i
0 - 2.0000i
Der Zugriff auf einzelne Elemente einer Matrix erfolgt durch Angabe der Indizes:
>> A(2,3)
ans =
6
Dabei ist 1 der kleinste Index und mit end wird auf das letzte Element zugegriffen.
Um auf mehrere Elemente einer Matrix zuzugreifen wird der Doppelpunkt-Operator verwendet:
5.2 Matrizenrechnung
5
>> A(3,2:3)
ans =
8
9
Ein allein stehender Doppelpunkt bezeichnet eine ganze Zeile bzw. Spalte:
>> b = A(3,:)
b =
7
8
9
Zum Erstellen einiger spezieller Matrizen stellt MATLAB entsprechende Befehle zur Verfügung.
Durch den Befehl eye(Zeilen) wird eine quadratische Einheitsmatrix erstellt, wobei mit Zei”
len“ die Anzahl der Zeilen gemeint ist:
>> eye(2)
ans =
1
0
0
1
Eine Matrix mit zufälligen Elementen kann durch rand(Zeilen,Spalten) oder randn(Zeilen,Spalten)
erstellt werden, wobei Spalten“ die Anzahl der Spalten beschreibt. Im ersten Fall sind die Ele”
mente gleichverteilt, im zweiten Fall normalverteilt:
>> rand(2,3)
ans =
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
Mit zeros(Zeilen,Spalten) und ones(Zeilen,Spalten) können Matrizen erstellt werden, deren
Elemente alle 0 bzw. 1 sind:
>> zeros(3,3)
ans =
0
0
0
0
0
0
0
0
0
Matrizen können auch aus Teilmatrizen zusammengesetzt werden:
>> C = [A; b]
C =
1
2
4
5
7
8
7
8
3
6
9
9
6
5 Einführung in MATLAB
Zusammenfassung
=
[ : : ]
eye(Zeilen)
rand(Zeilen,Spalten), randn(Zeilen,Spalten)
zeros(Zeilen,Spalten)
ones(Zeilen,Spalten)
Variablenzuweisung
Doppelpunkt-Operator
Einheitsmatrix
Zufallsmatrix
leere Matrix
Matrix mit allen Einträgen 1
5.2.1 Vektor- und Matrizenrechnung
Die Rechnung mit Vektoren und Matrizen erfolgt in MATLAB äquivalent zur Rechnung mit
Skalaren:
>> b = [7, 8, 9];
>> c = [2, 3, 4];
>> d = b + c
d =
9
11
13
Achtung, die häufigste Fehlerursache sind nicht passende Dimensionen:
>> b = [7, 8, 9];
>> c = [2; 3; 4];
>> d = b + c
??? Error using ==> plus Matrix dimensions must agree.
Mit * wird das Produkt zweier Matrizen berechnet. Wird ein Zeilenvektor mit einem Spaltenvektor multipliziert ergibt sich das Skalarprodukt:
>> b = [7, 8, 9];
>> c = [2; 3; 4];
>> d = b * c
d =
74
Mittels des Befehls transpose (abgekürzte Schreibweise: ’) kann eine Matrix bzw. ein Vektor transponiert werden:
>> d = b’ * c’
d =
14
21
16
24
18
27
28
32
36
Zur elementweisen Rechnung existieren die Operationen .*, ./ und .ˆ :
5.2 Matrizenrechnung
>> d = b .* c’
d =
14
24
7
36
Vordefinierte Funktionen. Zum Rechnen mit Matrizen stellt MATLAB einige grundlegende
Funktionen (Built-in functions) zur Verfügung. Mit size(Matrix), wobei Matrix“ eine belie”
bige Matrix darstellt wird die Größe einer Matrix bestimmt:
>> B = [1 2 4 0; 2 4 8 1; 1 2 4 3]
B =
1
2
4
0
2
4
8
1
1
2
4
3
>> size(B)
ans =
3
4
Der Rang einer Matrix wird mit rank(Matrix) bestimmt:
>> rank(B)
ans =
2
Die Determinante einer Matrix wird mit det(Matrix), die Inverse wird mit inv(Matrix) und
die Eigenwerte werden mit eig(Matrix) berechnet:
>> A = [-2 -1;1 0]
A =
-2
-1
1
0
>> det(A)
ans =
1
>> inv(A)
ans =
0
1
-1
-2
>> eig(A)
ans =
-1
-1
Ein lineares Gleichungssystem der Form b = A · x kann durch
>> x = inv(A) * b;
oder, numerisch stabiler, durch
>> x = A\b;
8
5 Einführung in MATLAB
gelöst werden.
Mit exp(Matrix) wird eaij für jedes Element der Matrix berechnet. Für eine 2×2-Matrix ergibt
sich:
a
e 11 ea12
exp(A) =
(5.1)
ea21 ea22
>> exp(A)
ans =
0.1353
2.7183
0.3679
1.0000
Die Matrixexponentialfunktion entsprechend Gl. (2.56) wird mit expm(Matrix)= eA berechnet:
>> expm(A)
ans =
-0.0000
0.3679
-0.3679
0.7358
Zusammenfassung
+, Summe, Differenz von Matrizen
/
Division von Skalaren
Matrixprodukt
*
.*, ./, .ˆ
Elementweise Operationen
size(Matrix) Dimensionen einer Matrix
det(Matrix)
Determinante einer Matrix
inv(Matrix)
Inverse einer Matrix
\
Linksseitige Matrixdivision
eig(Matrix)
Eigenwerte einer Matrix
exp(Matrix)
ex aller Elemente einer Matrix
expm(Matrix) Matrixexponentialfunktion
5.2.2 Darstellung von Signalen
Signale werden in MATLAB in zeitdiskreter Form verwendet, d.h. der Signalwert ist zu diskreten (äquidistanten) Zeitpunkten gegeben. Ein Signal kann somit durch zwei Vektoren beschrieben werden, wobei ein Vektor die Signalwerte und ein Vektor die entsprechenden Zeitpunkte
enthält:
>> t = [0:0.01:2*pi]’;
>> y = sin(t);
Um ein Signal grafisch darzustellen, wird zunächst mit dem Befehle figure(Fensternummer)
ein leeres Fenster geöffnet und anschließend mit plot(x,y) das Signal gezeichnet:
5.2 Matrizenrechnung
9
>> figure(1);
>> plot(t,y);
Das Fenster (siehe Abb. 5.1) kann über den Befehl close(Fensternummer) oder über den
Menüpunkt close“ im Menü file“ des Fensters geschlossen werden. Um mehrere Signale in
”
”
ein Koordinatensystem zu zeichnen wird der Befehl hold on verwendet. Ohne diesen Befehl
führt jede Verwendung von plot zum Löschen der alten Signale. Mit hold off wird in den
normalen Modus zurückgewechselt. Damit die verschiedenen Signale besser zu unterscheiden
sind, kann für das zweite Signal eine andere Farbe und eine andere Linienart verwendet werden
(siehe Abb. 5.1):
>> hold on
>> plot(t,cos(t),’-.’);
Abb. 5.1. Grafische Darstellung zweier Signale
Mit dem Befehl subplot(Zeilen, Spalten, aktiv) können mehrere Koordinatensysteme in einem Fenster dargestellt werden (siehe Abb. 5.2):
>>
>>
>>
>>
>>
>>
>>
>>
>>
figure(2)
subplot(2,2,1);
plot(t,y)
subplot(2,2,2);
plot(t,cos(t),’-.’);
subplot(2,2,3);
plot(t,exp(-t));
subplot(2,2,4);
plot(t,log(t));
10
5 Einführung in MATLAB
Abb. 5.2. Grafische Darstellung in mehreren Koordinatensystemen
Die Eigenschaften des aktiven Koordinatensystems können mit dem Befehl axis verändert
werden. Im Normalfall ist das zuletzt verwendete Koordinatensystem aktiv. Über die Befehle figure und subplot können auch zuvor erstellte Grafen wieder aktiviert werden. Die
Überschrift eines Koordinatensystems kann mit title(Überschrift-String) und die Achsenbeschriftung mit xlabel(Beschriftung-String) und ylabel(Beschriftung-String) gesetzt werden.
Zusammenfassung
figure(Fensternummer)
Neues Fenster/ aktiviert Fenster
plot(x,y)
Graf von y über x
close(Fensternummer)
Schließt Fenster
hold on, hold off
Modus für mehrere Grafen in einem KO-System
subplot(Zeilen, Spalten, aktiv) Mehrere KO-Systeme in einem Fenster
axis
Parameter eines KO-Systems
Überschrift des aktiven KO-Systems
title(Überschrift-String)
xlabel(Beschriftung-String)
Beschriftung x-Achse
ylabel(Beschriftung-String)
Beschriftung y-Achse
5.3 Programmieren mit MATLAB
Nach dem Start befindet sich MATLAB im aktuellen Arbeitsverzeichnis. Der Name des Verzeichnisses kann mit cd und der Inhalt mit dir angezeigt werden. Mit cd kann das Verzeichnis
gewechselt werden. Die MATLAB-Dateien im aktuellen Verzeichnis können mit what angezeigt werden.
5.3 Programmieren mit MATLAB
11
5.3.1 Skripte
Die bisher beschriebene Arbeitsweise unter Verwendung des MATLAB-Prompts ist bei der Verwendung von mehrzeiligen Kontrollstrukturen ungeeignet. In MATLAB besteht die Möglichkeit, mehrere Befehle in einem Skript zusammenzufassen und als Datei mit der Endung .m“
”
zu speichern ( M-Datei“). Die Befehle können dann durch Aufruf der Datei im Command”
Window ausgeführt werden. Dabei verhalten sich die Befehle genauso, wie Befehle die über
den MATLAB-Prompt eingegeben werden. Sie greifen insbesondere auf die Variablen im
Workspace zu und können diese auch verändern.
Zum Bearbeiten von Skripten kann der MATLAB-Editor verwendet werden. Dieser kann
über den Menüpunkt File → New → M-File oder über edit geöffnet werden. Das in Abbildung 5.3 dargestellte Skript wird durch beispiel1 aufgerufen.
Abb. 5.3. Editor – Anzeige eines Skripts zur Bestimmung des Maximums einer zufällig generierten Zahlenfolge.
Alle üblichen Kontrollstrukturen stehen auch in MATLAB zur Verfügung (for - end, if
- elseif - else - end, while - end, switch - case - end). Da MATLAB für die Bearbeitung von Matrizen/Vektoren optimiert ist, können viele Aufgaben durch die Verwendung
von Vektor-Operationen einfacher programmiert und schneller berechnet werden, als durch die
Verwendung von (for)-Schleifen (siehe Beispiel-Skript in Abbildung 5.3). Kommentare wer-
12
5 Einführung in MATLAB
den durch % gekennzeichnet. Um eine lange Zeile umzubrechen können drei Punkte (...)
verwendet werden.
Zusammenfassung
cd
Verzeichniswechsel
dir
Inhalt des Verzeichnisses
what
MATLAB-Dateien im Verzeichnis
edit
MATLAB-Editor
for - end
for-Schleife
if- elseif- else- end if-Abfrage
while- end
while-Schleife
switch- case- end
switch-Abfrage
%
Kommentar
...
Zeilenumbruch innerhalb eines Befehls
5.3.2 Funktionen
Der entscheidende Unterschied zwischen Funktionen und Skripten ist der, dass Funktionen
einen eigenen Workspace (Variablen-Bereich) besitzen. Funktionen können nur mit genau den
Variablen arbeiten, die ausdrücklich übergeben werden und sie geben nur die Rückgabewerte
an den aufrufenden Workspace zurück. Viele MATLAB-Befehle sind als Funktionen implementiert (siehe sinc), so dass der Befehlsumfang von MATLAB durch eigene Funktionen
erweitert werden kann. Funktionen können direkt aus dem Command-Window oder von anderen Funktionen oder Skripten aufgerufen werden. Ebenso wie Skripte werden Funktionen in
M-Dateien“ gespeichert.
”
Funktionen beginnen mit dem Schlüsselwort function in der ersten Zeile der Datei:
function[out1,out2,... ] = Funktionsname (in1, in2, ...)
Der Name der Datei sollte gleich dem Funktionsnamen sein. Auch wenn mehrere Rückgabeparameter (siehe Funktion in Abbildung 5.4) definiert sind, kann eine Funktion mit nur einem
Rückgabeparameter aufgerufen werden, wobei in diesem Fall der erste Parameter zurückgegeben wird:
>> werte = [1.1 1.3 1.2 1.4 1.3];
>> [a, b] = mean_std(werte)
a =
1.2600
b =
0.1140
>> mean_std(werte)
ans =
1.2600
5.4 Funktionen der Control System Toolbox
13
Abb. 5.4. Funktion zur Berechnung von Mittelwert und Standardabweichung
5.4 Funktionen der Control System Toolbox
Mittels der Control System Toolbox kann eine regelungstechnische Systemanalyse durchgeführt werden. Zum Funktionsumfang gehören auch zahlreiche Funktionen zum Entwurf und
zur Optimierung von Reglern, auf die aber im Folgenden nicht näher eingegangen wird. Ein
System lässt sich in Form eines Zustandsraummodells
ẋ = Ax(t) + bu(t),
x(0) = x0
′
y(t) = c x(t) + du(t)
durch den Befehl ss(A, B, C, D) angeben:
>>
>>
>>
>>
>>
>>
A = [-0.8 2; -2 -0.8];
b = [1; 1];
c = [1 1];
d = 0.3;
x0 = [1; 1];
System = ss(A, b, c, d);
Für dieses System kann die Bewegungsgleichung (2.58) für verschiedene Fälle gelöst werden:
•
•
•
•
step(System)
Berechnung der Übergangsfunktion (Sprungantwort) (x0 = 0 und u(t) = σ(t), wobei σ(t)
den Einheitssprung bezeichnet)
impulse(System)
Berechnung der Gewichtsfunktion (Impulsantwort) (x0 = 0 und u(t) = δ(t), wobei δ(t)
den Diracimpuls bezeichnet)
initial(System, Anfangszustand)
Berechnung der Eigenbewegung yfrei (t) (x0 vorgegeben und u(t) = 0)
lsim(System, Eingangsvektor, Zeitvektor, Anfangszustand)
Simulation des Systems(x0 und u(t) vorgegeben)
Der Aufruf
14
5 Einführung in MATLAB
>> t = [0:0.01:4*pi]’;
>> u = sin(t);
>>
>>
>>
>>
>>
>>
>>
>>
>>
figure(3)
subplot(2,2,1);
step(System);
subplot(2,2,2);
impulse(System);
subplot(2,2,3);
initial(System, x0);
subplot(2,2,4);
lsim(System, u, t, x0);
führt zu dem in Abbildung 5.5 dargestellten Ergebnis.
Abb. 5.5. Funktionen zur Systemanalyse
Um für ein gegebenes System die Zustandsraumdarstellung zu erhalten, wird ssdata(System)
verwendet:
>> [A, b, c, d] = ssdata(System);
5.4 Funktionen der Control System Toolbox
15
Ein wichtiges Werkzeug für die Systemanalyse stellt das Bode-Diagramm dar, welches mit
bode(System) erstellt werden kann.
Zusammenfassung
ss(A, B, C, D)
System aus der Zustandsraumdarstellung
step(System)
Sprungantwort
impulse(System)
Impulsantwort
initial(System, Anfangszustand) Eigenbewegung
lsim(System, Eingang, Zeit, x0 )
Simulierter Systemausgang
ssdata(System)
Zustandsraumdarstellung
bode(System)
Bode-Diagramm
Nachfolgend wird ein gut dokumentiertes Skript zur Eingabe des Modells des Gleichstrommotors aus Beispiel 2.2 gezeigt:
%
Script BSPGLEICHSTROMMOTOR.M zur Eingabe der Motordaten
%
% J. Lunze
% Version vom 5.4.2005
%
%
Löschen der verwendeten Variablen
echo off
clear R L km J kM kR kT Gleichstrommotor
%
%
Beispiel: Gleichstrommotor
%
%
Parameter:
%
R
Widerstand im Ankerkreis
%
L
Induktivität der Ankerwicklung
%
kM
Proportionalitätsfaktor zwischen Drehzahl
%
des Ankers und Gegeninduktionsspannung
%
kR
Koeffizient der viskosen Reibung
%
kT
Proportionalitätsfaktor zwischen Ankerstrom
%
und Drehmoment
%
J
Trägheitsmoment
%
%
Eingang: Spannung an Gleichstrommaschine [V]
%
Ausgang: Drehzahl (Kreisfrequenz omega) [rad/s]
%
%
Zeit in s
%
Parameter
R = 0.5;
% Ohm
16
5 Einführung in MATLAB
L = 0.050;
% H
kM = 0.030 ;
% Vs/rad
kR = 30e-6;
% Nms
kT = 30e-3;
% Nm/A
J = 13e-4;
% Nmsˆ2
%
%
%
Zustandsraummodell
%
%
x1 = Strom in A
%
x2 = Winkelgeschwindigkeit dphi/dt in rad/s
%
u = uM Spannung am Erregerkreis in V
%
y = omega in rad/s
%
AMotor=[-R/L -kM/L; kT/J -kR/J];
bMotor=[1/L; 0 ];
cMotor=[0 1];
dMotor=0;
Gleichstrommotor=ss(AMotor, bMotor, cMotor, dMotor);
5.5 Erzeugung weißer Rauschsignale [6]
Häufig soll das Verhalten eines dynamischen Systems unter dem Einfluss von stochastischen
Störungen untersucht werden. Dabei verwendet man als Störsignal i. Allg. weißes Rauschen.
Bei Simulationsuntersuchungen muss man beachten, dass das kontinuierliche Rauschsignal als
Wertefolge für diskrete Zeitpunkte dargestellt wird. Dies hat Konsequenzen für die Eigenschaften des verwendeten Signals.
Das Rauschsignal wird wie die anderen bei einer Simulation betrachteten Signale durch
seine Werte zu den Zeitpunkten k · ∆t dargestellt, wobei ∆t die bei der betrachteten Simulationsuntersuchung verwendete Schrittweite darstellt. Die Varianz σ 2 (mittlere Leistung) des
Rauschsignals ist unabhängig von der Schrittweite ∆t. Da nach dem Abtasttheorem in dem mit
der Schrittweite ∆t dargestellten Signal nur Frequenzen bis zur Hälfte der Abtastfrequenz“
”
1
f∆t =
∆t
vorkommen können, verteilt sich die mittlere Leistung auf den Frequenzbereich 0... f∆t
2 . Je
kleiner man die Schrittweite wählt, umso größere Frequenzen können also in dem Rauschsignal
auftreten. Die Leistungsdichte S verändert sich also bei gegebener Varianz in Abhängigkeit von
der Schrittweite. Es gilt
S = 2σ 2 · ∆t.
Ein normalverteiltes Rauschsignal mit k Werten, das den Mittelwert 0 und die Varianz
σ 2 = 1 hat, erhält man durch die Funktion
5.5 Erzeugung weißer Rauschsignale [6]
17
F=randn(1, k);
Soll das Signal die Varianz σ 2 besitzen, so muss dieses Signal noch mit sigma multipliziert werden:
F=sigma * randn(1, k);
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Teil 4: Einführung in Simulink
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
email: [email protected]
6. April 2009
6
Einführung in Simulink
Dieser Teil enthält eine kurze Einführung in die Bedienung von Simulink.
6.1 Simulink-Toolbox
Simulink wird von MATLAB aus durch
>> simulink;
gestartet. Darauf öffnet sich der Simulink Library Browser (siehe Abb. 6.1), in dem alle
verfügbaren Blöcke aufgelistet sind. Die Blöcke sind in Gruppen ähnlicher Funktionalität sortiert. Alle als Signal-Quellen verwendeten Blöcke sind zum Beispiel in Simulink → Sources
abgelegt.
Ein neues Simulink-Modell wird durch File → New → Model im Menü des Simulink Library Browser erstellt. Beim Speichern des Modells durch File → Save As im Menü des Modells
wird dem Modell ein Name zugewiesen. Die Dateiendung für Simulink-Modelle ist .mdl“.
”
Um Blöcke zu dem Modell hinzuzufügen, werden sie mit der linken Maustaste im Simulink
Library Browser angeklickt (Taste gedrückt halten) und in das Modell gezogen. Innerhalb des
Modells können sie auf gleiche Art und Weise positioniert werden. Durch Klicken mit der rechten Maustaste auf einen Block öffnet sich ein Menü zur Bearbeitung des Blocks. Im Unterpunkt
Format kann die Ausrichtung des Blocks verändert werden. Die Parameter des Blocks können
nach Doppelklicken auf den Block bearbeitet werden.
Um Blöcke zu verbinden, wird mit der linken Maustaste auf den Ausgang eines Blocks
geklickt (Taste gedrückt halten) und die Maus auf einen Eingang eines anderen Blocks bewegt.
Dort wird die Maustaste losgelassen. Eine Signalverzweigung kann zu einer bestehenden Verbindung hinzugefügt werden, indem auf die bestehende Verbindung mir der rechten Maustaste
geklickt wird, und eine Verbindungslinie zu einem anderen Blockeingang gezogen wird.
Simulink-Blöcke können auf Daten des MATLAB-Workspace zugreifen, indem die Variablennamen als Parameter der Blöcke verwendet werden. Daten können mittels des To
6.1 Simulink-Toolbox
3
Abb. 6.1. Der Simulink Library Browser
Workspace-Blocks (Simulink → Sinks) in den Workspace geschrieben werden. Die Verwendung von Daten aus Dateien in Simulink geschieht mit dem From File-Block aus dem Bereich
Sources und die Speicherung von Daten mit dem To File-Block aus dem Bereich Sinks.
Die allgemeinen Parameter der Simulation werden im Menü Simulation → Configuration
Parameters... des Simulink-Modells angegeben. Im Wesentlichen ist dabei die Simulationszeit
durch Start time“ und Stop time“ anzugeben. Zusätzlich kann hier das Integrationsverfahren
”
”
ausgewählt werden. Die entsprechenden Parameter können in der Regel mit den eingestellten
Standardwerten verwendet werden.
Beispiel für ein Simulink-Modell. Als Beispiel wird das Zustandsraummodell aus Abb. 2.9
in Simulink realisiert. Dazu wird zunächst ein neues Simulink-Modell geöffnet und das leere
Modell gespeichert, um dabei dem Modell einen Namen zuzuweisen. Im Folgenden werden
zwei verschiedenen Realisierungen vorgestellt.
•
Zunächst wird das Zustandsraummodell aus einzelnen Komponenten zusammengesetzt:
1. Für den Steuervektor b wird ein Gain-Block benötigt. Dieser ist im Menü Math Operations im Simulink Library Browser abgelegt. Mit der linken Taste wird der Block
angeklickt und bei gehaltener Taste in das Modell gezogen. Der Name des Blocks steht
unter dem Block. Da in einem Modell jeder Name nur einmal vorkommen darf, wird
4
6 Einführung in Simulink
2.
3.
4.
5.
6.
7.
der Name in Gain b“ verändert, indem der Name angeklickt und anschließend edi”
tiert wird. Durch Doppelklicken auf den Block wird das Parameterfenster geöffnet. Für
Gain“ wird b eingetragen und bei Multiplication“ wird Matrix(K*u)“ ausgewählt.
”
”
”
Als zweites wird ein Sum-Block aus dem gleichen Menüpunkt wie zuvor zum Modell
hinzugefügt. Der Ausgang des Gain-Blocks wird angeklickt und eine Verbindung zum
oberen Eingang des Sum-Blocks gezogen (Maustaste gedrückt halten).
Aus dem Menü Continuous wird ein Integrator-Block in das Modell gezogen. Der Ausgang des Sum-Blocks wird mit dem Eingang des Integrator-Blocks verbunden. Durch
Doppelklicken wird das Parameterfenster geöffnet und bei Initial Condition“ wird x0
”
eingetragen und damit die Anfangsbedingung festgelegt.
Daraufhin werden nacheinander drei Gain-Blöcke für A, c und d zum Modell hinzugefügt und mit Gain A“, Gain c“ und Gain d“ benannt. Der Block Gain A“ wird mit
”
”
”
”
der rechten Maustaste angeklickt und über Format → Flip Block umgedreht. Für die
Addition des Anfangswerts wird kein Block benötigt, da der Anfangswert bereits direkt
im Integrator-Block angegeben wurde. Der Wert Gain“ bei den Gain-Blöcken wird mit
”
A, c bzw. d parametriert und bei Multiplication“ wird Matrix(K*u)“ ausgewählt.
”
”
Für die Addition des durch den Durchgangsvektor gegebenen Anteils wird ein weiterer
Sum-Block hinzugefügt und die List of signs“ mit ++| parametriert.
”
Als Ausgang wird ein Scope-Block aus dem Menü Sinks verwendet.
Zuletzt wird als Quelle ein Step-Block aus dem Menü Sources hinzugefügt. Dieser muss
entsprechend der konkreten Aufgabe parametriert werden. Die Blöcke werden gemäß
Abb. 2.9 verbunden. Dabei bietet es sich an, zunächst die Verbindungen ohne Verzweigungen zu ziehen (siehe Abb. 6.2).
Abb. 6.2. Realisierung des Blockschaltbildes aus Abb. 2.9 in Simulink bevor die letzten Verbindungen
gezogen wurden
8. Abschließend wird der Eingang von Gain d“ mit der Verbindung zwischen Step“ und
”
”
Gain b“ und der Eingang von Gain A“ mit der Verbindung zwischen Integrator“ und
”
”
”
Gain c“ verbunden (siehe Abb. 6.3).
”
9. Im Menü Simulation → Configuration Parameters... kann die Simulationszeit mit Start
”
time“ und Stop time“ angegeben werden.
”
6.1 Simulink-Toolbox
5
Abb. 6.3. Realisierung des Blockschaltbildes aus Abb. 2.9 in Simulink
10. Die Variablen A, b, c, d und x0 müssen im Workspace entsprechend der Aufgabenstellung gesetzt werden.
•
Bei der zweiten Methode wird ein spezieller State Space-Block verwendet:
1. Aus dem Menü Continuous wird ein State Space-Block in das Modell gezogen. Die
Werte A“, B“, C“, D“ und Initial conditions“ werden mit A, b, c, d und x0 para”
”
”
”
”
metriert.
2. Als Ausgang wird ein Scope-Block aus dem Menü Sinks verwendet.
3. Wie bei der ersten Methode wird als Quelle ein Step-Block aus dem Menü Sources
hinzugefügt. Dieser muss entsprechend der konkreten Aufgabe parametriert werden.
Die Blöcke werden der Reihe nach verbunden (siehe Abb. 6.4).
Abb. 6.4. Realisierung des Blockschaltbildes aus Abb. 2.9 mittels State Space-Block
4. Im Menü Simulation → Configuration Parameters... kann die Simulationszeit mit Start
”
time“ und Stop time“ angegeben werden.
”
5. Die Variablen A, b, c, d und x0 müssen im Workspace entsprechend der Aufgabenstellung gesetzt werden.
6
6 Einführung in Simulink
Um das Zustandsraumodell (2.20) zu simulieren, wird zunächst
>>
>>
>>
>>
>>
A = [-10 -0.6;
b = [20; 0];
c = [0 1];
d = 0;
x0 = [0; 0];
23.08
-0.023];
im MATLAB-Prompt eingegeben. Dann wird im Modell unter Simulation → Configuration
Parameters... als Startzeit 0 und als Stoppzeit 5 eingetragen. Im Step-Block wird die Step
”
time“ auf 0, der Initial value“ auf 0 und der Final value“ auf 1 gesetzt.
”
”
Im Menü Simulation → Start wird die Simulation gestartet. Nach der Simulation wird das
Ergebnis nach Doppelklicken auf den Scope-Block sichtbar. Nach Klicken auf das FernglasSymbol wird der Bildausschnitt entsprechend Abbildung 6.5 angepasst.
Abb. 6.5. Simulationsergebnis vor und nach Skalierung mittels Fernglas-Knopf
6.2 Simulink – Kurzanleitung
1. Simulink wird im Kommandofenster von MATLAB gestartet:
>> simulink
2. Mit der Menüleiste wird ein neues Arbeitsfenster eingerichtet: File → New... → Model
(oder: Strg+n).
3. Mittels Doppelklick lassen sich einzelne Blockbibliotheken öffnen.
4. Durch einfaches Mausziehen werden die gewünschten Blöcke in das Arbeitsfenster kopiert
(Anklicken und dann linke Maustaste gedrückt halten).
5. Die Blöcke werden mit der Maus bei gedrückter linker Maustaste in die gewünschte Position gebracht und verschaltet.
6. Die Blöcke werden parametriert: Durch Doppelklick auf den Block erscheint die Parameterliste.
7. Strg+s speichert das Modell (oder mit Menüleiste: File → Save).
6.3 Wichtige Simulink Blöcke
7
8. Strg+e öffnet das Simulation-Parameter-Fenster (oder mit Menüleiste: Simulation → Configuration ...):
• Start-/Stop time: hier wird die Simulatioszeit tSIM definiert.
• Solver options: Auswahl des Integrationsverfahrens.
9. Strg+t startet die Simulation (oder mit Menüleiste: Simulation → Start).
10. Um die Grafik des Simulationsergebnisses zu erhalten, wird ein Doppelklick auf den verwendeten Ausgabeblock (Scope) durchgeführt.
6.3 Wichtige Simulink Blöcke
Symbol
Gleichung / Funktion
Sources
Sinusgenerator
y
Sine Wave
y = ȳ · sin(ωt + φ)
mit ω > 0
ȳ: Amplitude, ω: Kreisfrequenz in rad/s, φ: Phase in rad
Sprungfunktion
y
y = yu · h(ts − t) + yo · h(t − ts )
Generiert einen Sprung zur Zeit ts (Step time) vom Wert
yu (Initial value) zum Wert yo (Final value).
Step
Zufallszahl
Generiert ein normalverteiltes Zufallssignal.
Random
Number
y
Clock
Uhr
y=t
Liefert als Ausgabe die Zeitkoordinate t.
8
6 Einführung in Simulink
Symbol
Gleichung / Funktion
Sinks
Anzeige
u
Bildschirmausgabe des Eingangs u über der Zeit t.
Scope
u
simout
To Workspace
u
untitled.mat
To File
Ausgabe zum Workspace
Erzeugt aus dem im Eingang u zusammengefassten
Größen eine Matrix im Workspace. Für jeden Zeitschritt
wird eine Zeile geschrieben. Die Abtastrate kann im Parameterfenster des Blocks eingegeben werden.
Ausgabe in eine Datei
Schreibt die im Eingang u zusammengefassten Größen
sowie die Zeitkoordinate t als Matrix in eine MAT-Datei.
Für jeden Zeitschritt wird eine Spalte geschrieben. Die
Zeitkoordinate steht in der ersten Zeile. Die Abtastrate
kann im Parameterfenster des Blocks eingegeben werden.
Continuous
Integrator
u
1
s
y
y = y0 +
y0 : Parameter
Integrator
u
y
1
s+1
Transfer Fcn
u x' = Ax + Bu y
y = Cx + Du
State-Space
Rt
0
u(τ )dτ
Übertragungsfunktion
Darstellung eines dynamischen Systems durch eine Differenzialgleichung n-ter Ordnung
Pn
Pq
(i)
= i=0 bi u(i) n ≥ q, y (i) (0) = 0
i=0 ai y
Die Anfangsbedingungen sind standardmäßig zu Null gesetzt.
Lineares Zustandsraummodell
ẋ = Ax + Bu
x(0) = x0
y = Cx + Du
mit x ∈ Rn , u ∈ Rm , y ∈ Rr
Math Operations
Summationsglied
u1
y
un
Anzahl und Vorzeichen der Eingänge werden in der Parameterliste des Blocks definiert.
Bsp.: + + −“ ergibt y = u1 + u2 − u3 .
”
6.3 Wichtige Simulink Blöcke
Symbol
u
9
Gleichung / Funktion
Verstärker
y
k
y =k·u
Gain
Mathematische Funktionen y = f (x)
u
u
e
y
Folgende Funktionen mit reellen oder komplexen Variablen√stehen u.a. zur Auswahl: eu , ln(u), 10u , lg(u), |u|2 ,
u2 , u und up .
Math
Function
Trigonometrische und hyperbolische Funktionen
u
sin
y
z.B. y = sin(u)
Folgende Funktionen stehen zur Auswahl: sin, cos, tan,
arcsin, arccos, arctan, sinh, cosh, und tanh.
Trigonometric
Function
User-Defined Functions
Benutzerdefinierte Funktionen
u
f (u)
Fcn
y
y = f (u)
Die Funktion f (u) wird vom Anwender programmiert.
Prof. Dr.-Ing. Jan Lunze
Rechnergestützte Systemanalyse
Teil 4: Literatur zu MATLAB/Simulink
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
email: [email protected]
6. April 2009
Kommentiertes Literaturverzeichnis
[I.]
Einführung in MATLAB und Simulink
1. Angermann, A.; Beuschel, M.; Rau, M.; Wohlfarth, U.: Matlab – Simulink – Stateflow, OldenbourgVerlag, München 2002.
Einführung mit den Schwerpunkten Regelungstechnik (Control System Toolbox), Signalverarbeitung
(Signal Processing Toolbox) und Optimierung (Optimization Toolbox).
2. Beucher, O.: MATLAB und Simulink, Addison-Wesley, München 2002.
Kurz gefasste Einführung in den Funktionsumfang und die Bedienung von MATLAB und Simulink
mit einfachen Beispielen und Praktikumsaufgaben
3. Böhme, J. F.: Stochastische Signale mit Übungen und einem MATLAB-Praktikum, B. G. Teubner,
Stuttgart 1998.
Praktikumsaufgaben zur Signalanalyse
4. Gramlich, G.; Werner, W.: Numerische Mathematik mit MATLAB, dpunkt-Verlag.
Lösung einfacher Aufgaben der numerischen Mathematik mit MATLAB (lineare Gleichungssysteme, Ausgleichsrechnung, Eigenwertprobleme, nichtlineare Gleichungen
5. Grupp, F.; Grupp, F.: MATLAB 6.5 für Ingenieure, Oldenbourg-Verlag, München 2003.
Kurze Erläuterung der wichtigsten Elemente und Befehle von MATLAB.
6. Hoffmann, J.: MATLAB und SIMULINK in Signalverarbeitung und Kommunikationstechnik,
Addison-Wesley, München 1999.
Einführung in die Signalverarbeitung; Behandlung von Beispielen mit Hilfe der Funktionen der
Signal Processing Toolbox, Control Systems Toolbox, Communication Toolbox
Kommentiertes Literaturverzeichnis
3
7. www.mathworks.com
Auf der Homepage der Fa. Mathworks kann man die Dokumentation von MATLAB als pdf-Dateien
finden. Nützliche Dokumente sind Getting Started Guide“, Using MATLAB Guide“, Reference
”
”
”
Guide“
8. https://academic.softwarehouse.de/cgi-bin/product/P11756 (Quelle: Informationsheft MATLAB select“ 1/03 von Mathworks).
”
9. Lunze, J.: Regelungstechnik, Band 1, Springer-Verlag, Berlin 2004.
Einführung in die Nutzung von MATLAB für die Analyse dynamischer Systeme und den Entwurf
von Regelungen unter Nutzung der Control Systems Toolbox
10. www-rocq.inria.fr/scilag (Download-Seite für Scilab).
Programmsystem mit MATLAB-ähnlichem Funktionsumfang; da andere Funktions- und Befehlsnamen verwendet werden, nicht mit MATLAB kompatibel.
11. Scherf, H. E.: Modellbildung und Simulation dynamischer Systeme, Oldenbourg-Verlag, München
2003.
Einführung in MATLAB und Simulink anhand von Beispielen aus unterschiedlichen Gebieten (Mechanik, Hydrodynamik, Thermodynamik, Elektronik); empfehlenswert für die Prüfungsvorbereitung
aufgrund der Vielzahl von Beispielen.
12. Überhuber, C.; Katzenbeisser, S.; Praetorius, D.: MATLAB 7 – Eine Einführung, Springer-Verlag,
Wien 2005.
Schritt-für-Schritt-Einführung in die aktuelle Version von MATLAB mit vielen Beispielen
13. Werner, M.: Digitale Signalverarbeitung mit MATLAB, Vieweg, Braunschweig 2003.
Nutzung von MATLAB für die digitale Signalverarbeitung in 16 Kapiteln ( Versuchen“); mit
”
Aufgaben und deren Lösungen
Systemtheoretische Grundlagen
[II.]
14. Lunze, J.: Automatisierungstechnik, Oldenbourg-Verlag, München 2003.
Ausführliche Einführung in Blockschaltbild, Zustandsraummodell, Analyse kontinuierlicher Systeme
[III.]
Mathematische Grundlagen:
4
Kommentiertes Literaturverzeichnis
15. Hoffmann, A.; Marx, B.; Vogt, W.: Mathematik für Ingenieure I, Pearson, München 2005
Kap. 18-22: Einführung in die numerischen Methoden, insbesondere für die Lösung linearer und
nichtlinearer Gleichungssysteme Approximation von Eigenwerten
Prof. Dr.-Ing. Jan Lunze
Dipl.-Ing. Jan Richter
Rechnergestützte Systemanalyse
Zusatzaufgaben für die Prüfungsvorbereitung
Vorlesungsskript für den
Studiengang Elektrotechnik und Informationstechnik
Sommersemester 2009
Ruhr-Universität Bochum
Lehrstuhl für Automatisierungstechnik und Prozessinformatik
44780 Bochum
6. April 2009
Prüfungsvorbereitung
Diese Aufgabensammlung dient zur selbstständigen Prüfungsvorbereitung für den MATLABTeil dieser Lehrveranstaltung. Die Aufgaben entsprechen nach Stil und Schwierigkeitsgrad etwa einer Prüfungsaufgabe. Es wurden bewusst Aufgaben zu Themen gewählt, die nur zum Teil
in bisherigen Lehrveranstaltungen behandelt wurden. Versuchen Sie zunächst, den Gegenstand
der Aufgabe in seiner systemtheoretischen Abstraktion durch ein Blockschaltbild darzustellen.
Die Ergebnisse von Simulationen hängen maßgeblich davon ab, ob ein für das Problem
angemessener numerischer Löser verwendet wird.
•
•
•
Prüfen Sie ihre Simulationsergebnisse kritisch!
Verifizieren Sie, ob die errechneten Lösungen plausibel sind. Verletzen die Lösungen technische Randbedingungen?
Treten Bedingungen auf, die physikalisch keinen Sinn machen?
Ein numerisches Simulationsergebnis ohne eine anschließende kritische Beurteilung ist wertlos.
Die numerische Mathematik ist nicht Gegenstand dieser Vorlesung, die Ihnen vielmehr den
erstmaligen Zugang zu entsprechenden Software-Werkzeugen vermittelt. Um diese Werkzeuge
für kompliziertere Probleme sinnvoll einsetzen zu können, brauchen Sie weiteres Handwerkszeug, das im Rahmen von Veranstaltungen zur numerischen Mathematik angeboten wird. Die
Grundprinzipien numerischer Integration kennen Sie jedoch aus den Grundlagenvorlesungen
zur Mathematik.
Ein praktisches Verfahren zum Überprüfen der Ergebnisse auf numerische Korrektheit besteht darin, die Simulation mit einem Löser fester, kleiner Schrittweite zu wiederholen. Stimmt
diese Lösung mit der ursprünglichen überein, ist dies ein gutes Zeichen. Andernfalls darf der
Lösung nicht vertraut werden.
Lesen Sie bei der Bearbeitung der entsprechenden Aufgaben in der MATLAB-Hilfe die
Beschreibung der numerischen Löser nach. Auch wenn Sie nicht alles sofort verstehen, sollten
Sie sich einen Überblick über die angebotenen Löser verschaffen, so dass Sie in der Lage sind,
sich bei einem gegebeben Simulationsproblem einen angemessenen Löser auszuwählen. Diese
Thematik wird jedoch nicht Gegenstand der Prüfung sein, bei der der zu verwendende Löser
angegeben wird, falls die Voreinstellung nicht genügt.
6
Zusatzaufgaben
Dieser Teil enthält eine Reihe von Übungsaufgaben, deren Bearbeitung zur Prüfungsvorbereitung empfohlen wird. Die Aufgaben beinhalten die Simulation eines dynamischen Systems und umfassen die Schritte von der einfachen Umformung gegebener
Gleichungen über die Normierung bis zur Interpretation und Bewertung des Ergebnisses.
Denken Sie bei der Lösung von Differentialgleichungen daran, die Anfangsbedingungen vor der Simulation anzubringen. Soweit nichts anderes angegeben ist, soll der numerische Löser ODE45“ verwendet werden.
”
Aufgabe 1.1
Ein Hund jagt seinen Herrn
Hunde haben eine ganz eigene Art, bewegliche Ziele zu verfolgen. Sie steuern ihr Ziel (Herrchen, Frauchen oder Beute) an, indem sie die Richtung ihrer Bewegung auf das Ziel abgleichen. Bei einem bewegten Ziel resultiert diese Strategie in einer Verlängerung des Weges gegenüber dem kürzesten Weg. Der
vom Hund beschriebene Weg verläuft auf einer gekrümmten Bahn, der sogenannten Hundekurve. Eine
solche Kurve wirdin dieser
Aufgabe betrachtet (Abb. 1.1). Positionen werden zunächst in kartesischen
x1
Koordinaten x =
angegeben.
x2
Aufgabenstellung. Gegeben sind die Anfangspositionen des Hundes xHu,0 und des Herrn xHe,0 sowie der Betrag der Geschwindigkeit des Hundes v̄Hu . Die Bewegungsstrategie des Hundes lautet in
Vektorschreibweise
xHe − xHu
v̄Hu .
(1.1)
v Hu =
kxHe − xHu k2
Bestimmen Sie die Trajektorien von Hund und Herr für die folgenden zwei Fälle.
Geradlinige Bewegung des Herrn. Der Herr bewegt sich auf einer geraden Linie (Abb. 1.1(a)), die
Systemparameter sind:
2
6 Zusatzaufgaben
x2
xHe,0
D
x2
x1
x1
xHu,0
(a) Geradlinige Bewegung
(b) Kreisförmige Bewegung
Abb. 1.1. Ein Hund jagt seinen Herrn
Parameter
Symbol und Wert
Maßeinheit
Anfangsposition des Herrn
xHe,0 = (0, 100)T
m
T
Anfangsposition des Hundes
xHu,0 = (0, 0)
m
konstante Geschwindigkeit des Herrn
v He = (5, 0)T
ms−1
Betrag der Geschwindigkeit des Hundes
v̄Hu = 10
ms−1
Der Herr bewegt sich nach dem Bewegungsgesetz xHe (t) = v He ·t. Die Bewegung wird im Zeitintervall
t ∈ [0; 15] Sekunden betrachtet.
1. Bauen Sie ein Simulink-Blockschaltbild der Bewegung von Hund und Herrn auf. Ermitteln Sie die
zwei Bewegungen. Hinweis: Verwenden Sie zur Visualisierung das Hilfsmittel XY Graph“ aus
”
der Bibliothek Simulink → Sinks. Denken Sie an die Anfangsbedingungen der Integratoren.
2. Zu welcher Zeit erreicht der Hund seinen Herrn?
Kreisförmige Bewegung des Herrn. Der Herr bewegt sich nun um ein kreisförmiges Schwimmbad
(Abb. 1.1(b)). Der Hund startet in der Mitte des Beckens und versucht, seinen Herrn schwimmend zu
erreichen. Die Systemparameter sind:
Parameter
Durchmesser des Beckens
Symbol und Wert
D = 30
Maßeinheit
m
Anfangsposition des Herrn
xHe,0 = (0, 15)T
m
T
Anfangsposition des Hundes
xHu,0 = (0, 0)
m
Geschwindigkeit des Herrn
v̄He = 2
ms−1
Geschwindigkeit des Hundes
v̄Hu = 1
ms−1
Der Herr bewegt sich kreisförmig um den Pool. Hilfreich ist die Betrachtung seiner Bewegung in Polarkoordinaten (r, φ). Die Verknüpfung zwischen Polarkoordinaten und kartesischen Koordinaten ist
gegeben durch
6 Zusatzaufgaben
3
D cos φ
→
−
x He =
2 sin φ
D
v̄He = φ̇
2
(1.2)
(1.3)
Die Bewegung wird im Zeitintervall t ∈ [0; 200] Sekunden betrachtet.
1. Bauen Sie ein Simulink-Blockschaltbild der Bewegungen auf. Ermitteln Sie die Bewegungen. Hinweis: Wenn Sie ein System zum ersten Mal simulieren, und noch nicht wissen, in welchem Zeitraum
interessante Effekte auftreten, können Sie die Simulationszeit auf Unendlich ( inf“) stellen.
”
2. Zu welcher Zeit erreicht der Hund in diesem Fall seinen Herrn?
Aufgabe 1.2
Anfahren eines Zweiniveau-Lasers
Pumplichtquelle
Rückwärtiger
Spiegel
Aktives
Material
Auskoppelspiegel
Abb. 1.2. Typischer Aufbau eines Festkörperlasers
Ziel dieser Aufgabe ist die Simulation des Anfahrvorgangs eines Zweiniveau-Lasers (Abbildung 1.2).
Der innere Zustand eines Lasers ist durch die Inversionsdichte σ und die Photonendichte ñ beschrieben. Eine statistische Betrachtung der Energieübergänge zwischen dem oberen Niveau E1 und
dem unteren Niveau E2 führt auf die folgenden Ratengleichungen, welche die Dynamik des Laserbetriebs widerspiegeln:
dσ
−1
= −2τsp
σ − 2B ñσ + 2R
dt
dñ
= −κñ + B ñσ.
dt
(1.4)
(1.5)
Die Inversionsdichte σ wird vermindert durch spontane Emission mit dem Zeitkonstanten τsp und durch
induzierte Emission, die durch den modifizierten Einsteinkoeffizienten B beschrieben wird. Sie wird
erhöht durch das Pumpen von Energie in das obere Niveau mit der Pumprate R, die technisch mit Hilfe
von Lampen realisiert wird. Die Photonendichte ñ wird vermindert durch die mittels κ beschriebenen
Resonatorverluste und durch die mittels B beschriebene induzierte Emission erhöht. Die Resonatorverluste umfassen Absorptionsverluste im rückwärtigen Spiegel, Streuverluste und den gewollten Austritt
von Photonen aus dem Auskoppelspiegel.
4
6 Zusatzaufgaben
Die Pumprate wird oft als sogenannter Pumpfaktor r angegeben, der die Pumprate im Verhältnis
zur Pumpschwelle Rthr angibt:
R
r=
.
(1.6)
Rthr
Die Pumpschwelle ist gegeben durch
κ
Rthr =
.
(1.7)
Bτsp
Sie beschreibt die minimal erforderliche Pumprate, um das für Laser typische Verhalten der kohärenten
Verstärkung durch induzierte Emission hervorzurufen.
Bei Vernachlässigung der Pumprate R stellen die Gleichungen (1.4)–(1.5) ein Volterra-Modell dar,
das häufig für die Beschreibung periodischer Schwankungen in biologischen, chemischen und fluiddynamischen Systemen verwendet wird.
Aufgabenstellung. Gegeben sind die Anfangswerte der Zustandsvariablen σ0 und ñ0 und die in der
Tabelle unten angegebenen Zahlenwerte für den modifizierten Einsteinkoeffizienten B, die spontane
Emissionsrate τsp , der Pumpfaktor r und die Resonatorverluste κ.
Parameter
Symbol und Wert
−16
Maßeinheit
m3 s−1
Modifizierter Einsteinkoeffizient
B = 9, 3284 · 10
Pumpfaktor
r = 1300
Resonatorverlustrate
κ = 6, 25 · 107
s−1
Zeitkonstante der spontanen Emission
τsp = 2, 5 · 10−3
s
Anfangsinversionsdichte
|σ0 | = 0.1 · 1018
m−3
Anfangsphotonendichte
|ñ0 | = 0.01 · 1018
m−3
Bestimmen Sie die Trajektorien der Inversionsdichte und der Photonendichte im Resonator während
des Anfahrens des Lasers.
1. Bauen Sie ein Blockschaltbild in Simulink auf. Geben Sie die Parameter in ein m-File ein und
berechnen Sie fehlende Parameter ggf. aus den gegebenen. Hinweis: Normieren Sie alle Größen
auf die Längeneinheit Mikrometer und die Zeiteinheit Mikrosekunden, um numerische Probleme
zu vermeiden. Rechnen Sie alle gegebenen Parameter in diesen Bereich um und denken Sie bei der
Interpretation der Ergebnisse an diese Vereinbarung! Denken Sie auch daran, die Anfangswerte
der Integratoren zu setzen. Verwenden Sie zur numerischen Integration den Fixed-Step Löser ODE2
(Heun-Verfahren) mit einer festen Schrittweite von 0,001.
2. Simulieren Sie den Anfahrvorgang des Lasers im Zeiraum t ∈ [0; 14µs]. Plotten Sie die Verläufe
der Inversionsdichte und Photonendichte und stellen Sie beide in einem Phasendiagramm (Inversionsdichte σ über Photonendichte n mit der Zeit als Laufparameter) dar.
3. Bestimmen Sie die Photonendichte und die Inversionsdichte im stationären Gleichgewicht. Welchen maximalen Wert erreicht die Photonendichte während des Anfahrens? Ermitteln Sie den Wert
sowohl aus den einzelnen Plots als auch aus dem Phasendiagramm n − σ.
Zum besseren Verständnis. Laserquellen erzeugen unter Verwendung induzierter Emission von Photonen eine zeitlich und räumlich stark kohärente Strahlung. Diese Eigenschaften äußern sich in hoher
spektraler Reinheit und guter Fokussierbarkeit des entstehenden Laserlichtstrahls. In dieser Aufgabe
wurde der innere Zustand eines Zweiniveau-Lasers während des Anfahrens untersucht. Laser neigen
beim Anfahren zu einem starken Schwingen (sog. Spiking) in den Zustandsvariablen. Dieses Verhalten
6 Zusatzaufgaben
5
wurde hier sichtbar. Dabei wird der Laser als konzentriertes Element betrachtet, von der räumlichen
Abhängigkeit seiner Variablen wird abstrahiert. Daher kann sein Verhalten durch gewöhnliche anstatt
durch partielle Differentialgleichungen beschrieben werden.
Die Funktion beruht auf der Existenz zweier Energieniveaus in der Elektronenhülle des aktiven
Materials. Normalerweise ergibt sich die Verteilung der Atome auf die Niveaus im thermodynamischen
Gleichgewicht temperaturabhängig aus der Boltzmann-Verteilung. Danach befindet sich eine größere Anzahl N1 Atome im niedrigen Energiezustand E1 als N2 im oberen Energiezustand E2 . Durch
Zuführen externer Energie kann dieses Verhältnis umgekehrt werden, so dass sich mehr Atome im oberen Niveau befinden. Diesen Vorgang nennt man pumpen. Dieses Verhältnis beschreibt man durch die
Inversionsdichte σ = N2 − gg12 N1 , wobei gi die Entartungsgrade des jeweiligen Energieniveaus repräsentieren. Sie spielen hier keine weitere Rolle. Die Inversionsdichte beschreibt also das Verhältnis
zwischen der Anzahl von Atomen im Grundzustand und im angeregten Zustand. Eine weitere Kenngröße ist die Anzahl der Photonen im betrachteten Volumen, angegeben als Photonendichte ñ.
4. Stellen Sie mit Hilfe eines Vergleichsblocks graphisch dar, wann die Variable σ (normiert!) den
Wert 8 · 104 überschreitet.
5. Stellen Sie die Kreuzkorrelation zwischen der Photonendichte und der Inversionsdichte dar. Einen
entsprechenden Block finden Sie unter Simulink Extras → Additional Sinks. Vergößern Sie die
Abtastzeit für diese Simulation auf 0.01s und stellen Sie im Kreuzkorrelator eine Pufferlänge von
1000 Samples und eine Plotwiederholung von 10 Samples ein. Passen Sie auch die Abtastzeit an.
Interpretieren Sie das Ergebnis.
6. Stellen Sie die mittlere Leistungsspektrumdichte dar. Einen entsprechenden Block finden Sie ebenfalls unter Simulink Extras → Additional Sinks. Stellen Sie die Pufferlänge auf den Wert von 256
Samples und die Anzahl der Datenpunkte für die FFT auf 1024.
Aufgabe 1.3
Der Springbrunnen des Gaius Plinius
Auch ohne den Einsatz elektronisch gesteuerter Pumpen kann ein Springbrunnen mit periodisch auftretender Fontäne realisiert werden. Die Idee basiert auf auf der Verwendung eines Syphons zusammen
mit einem Vorratstank.
Beschreibung des Brunnens.
Qzu
ho
hu
0
Qab
Abb. 1.3. Ein einfacher Springbrunnen
6
6 Zusatzaufgaben
Der Vorratstank mit dem Radius R wird kontinuierlich mit dem Zustrom Qzu gefüllt. Etwas über
dem Boden des Tanks auf der Höhe hu setzt der Syphon mit dem Innenradius r in Form eines Schwanenhalses an, der bis zur Höhe ho ansteigt, dann unter den Boden des Tanks absinkt und in die Düse
des Springbrunnens mündet. Die Ebene der Düse definiert den hydraulischen Nullpunkt 0 des Systems.
Steigt der Füllstand h über das Niveau ho , so ist der Syphon gefüllt, und es fließt Wasser mit einem
vom Füllstand abhängigen Fluss ab, bis der Füllstand hu erreicht ist. Der Syphon füllt sich mit Luft, für
den Abfluss gilt Qab = 0 und der Zyklus beginnt erneut:
(
√
Cπr2 2gh falls Syphon voll
(1.8)
Qab =
0
falls Syphon leer.
Dieser Vorgang kann durch ein schaltendes System beschrieben werden. Der Füllstand im Behälter mit
der Querschnittsfläche A gehorcht der Gleichung
Aḣ(t) = Qzu (t) − Qab (t).
(1.9)
Die Parameter sind in folgender Tabelle zusammengestellt.
Parameter
Radius Tankbecken
Symbol und Wert
R = 0, 05
Maßeinheit
m
Radius Syphon
r = 0, 005
m
Oberes Niveau Syphon
ho = 0.1
m
Unteres Niveau Syphon
hu = 0, 025
m
Austauschkoeffizient
C = 0.6
Erdbeschleunigung
g = 9,81
ms−2
Zuflussmenge
Qzu = 50 · 10−6
m3 s−1
Anfangshöhe
h(0) = 0
m
Simulation des Brunnenverhaltens. Hinweis: Zur Simulation schaltender Systeme in MATLAB/Simulink
verwendet man üblicherweise die Stateflow-Toolbox. Dieses einfache Beispiel kann aber ohne Stateflow
leicht mit Hilfe eines RS-Flip Flops realisiert werden. Verwenden Sie zur Auswahl des Abflusses gemäß
Gleichung (1.8) einen Switch“ aus der Bibliothek Simulink → Signal Routing. Den boolschen Ein”
gang des Switch steuern Sie mit dem Ausgang Q eines RS-Flipflops aus der Bibliothek Simulink Extras
→ Flip Flops. Zum Setzen des Flip Flops (Eingang S) verwenden Sie das Ergebnis einer Abfrage auf
Überschreiten des Füllstands bezüglich des Grenzwerts ho , zum Rücksetzen (Eingang R) verwenden Sie
das Ergebnis einer Abfrage auf Unterschreiten des Füllstands bezüglich des Grenzwerts hu . Die Blöcke
zur Abfrage der Über- oder Unterschreitung eines Grenzwertes finden Sie in der Bibliothek Simulink
→ Logic and Bit Operations. Sie können an diesen Blöcken den Datentyp des Ausgangs als boolean
festlegen.
1. Schreiben Sie ein Skript zur Erzeugung der Systemparameter und erstellen Sie ein Blockschaltbild
in Simulink zur Simulation des Tanks. Stellen Sie in den Konfigurationsparametern in den Solver Options den Typ Fixed Step Solver“, als Solver den ODE3 (Bogacki-Shampine)“ mit einer
”
”
Schrittweite von 0,1 Sekunden ein. Simulieren Sie das System für 100 Sekunden.
2. Erfüllt der Brunnen mit den angegebenen Parameter seine Funktion? Beobachten Sie ein Schalten?
6 Zusatzaufgaben
7
3. Wie können Sie die Betriebsparameter anpassen, so dass ein Schalten stattfindet? Gehen Sie dabei gemäß nachfolgender Überlegung vor. Beim Bau eines fertig ausgelegten Brunnens muss immer mit Toleranzen der Fertigung gerechnet werden. Parameter wie Brunnendurchmesser, Syphondurchmesser oder die relativen Höhen sind nur unter größerem Aufwand nachträglich zu ändern.
Finden Sie einen Betriebsparameter, unter dessen Benutzung Sie die wunschgemäße Funktion des
Brunnens auch nach seinem Bau problemlos einstellen können.
Aufgabe 1.4
Springender Ball
Gegeben ist ein Ball mit dem Radius r, der Masse m, der Federkonstante c, und dem Dämpfungskoeffizienten d, der aus der Höhe h(0) = h0 auf eine harte, inkompressible Unterlage fällt (Abb. 1.4).
Seine Geschwindigkeit und Beschleunigung werden mit v und a bezeichnet. Es ist bekannt, dass der
Ball beim Aufprall einen Teil seiner Bewegungsenergie in Wärme umwandelt und mit einer verminderten Geschwindigkeit von der Oberfläche abprallt. Der Stoß verläuft gegenüber dem makroskopisch
beobachteten Bewegungsvorgangs des Balls schnell (augenblicklich).
h(t)
Ball
t
Abb. 1.4. Springender Ball auf harter Unterlage
Zur Simulation gibt es verschiedene Möglichkeiten. Der Ball kann elastisch modelliert werden, so
dass auch der Stoßvorgang erfasst wird. Alternativ kann der Stoß als diskretes Ereignis ohne zeitliche
Dauer angenähert werden. Hierbei verlässt der Ball mit einer um den Faktor cr verminderten Geschwindigkeit die Oberfläche in entgegengesetzter Richtung.
Die bei der Simulation zu verwendenden Parameter sind in folgender Tabelle zusammengestellt.
8
6 Zusatzaufgaben
Parameter
Radius des Balls
Symbol und Wert
r = 0, 02
Maßeinheit
m
Masse des Balls
m=1
kg
4
Nm−1
Federkonstante
c = 10
Dämpfung
d = 20
Nm−1 s−1
Starthöhe
h0 = 5
m
Erdbeschleunigung
g = 9,81
ms−2
Bemerkung: Wird der Stoßvorgang dynamisch modelliert, so resultiert numerisch während eines
kurzen Moments beim Übergang von der Freiflugphase zur Stoßphase ein steifes Problem. Steife Probleme sind dadurch gekennzeichnet, dass sich die Eigenwerte der Systemmatrix A um Größenordnungen
voneinander unterscheiden. Ihre Lösung erfordert den Einsatz spezieller numerischer Integrationsverfahren.
Simulation mit elastischem Stoß. Die Bewegungsgleichung des Balls lautet
(
−mg
falls h > r,
mḧ =
−mg − c(h − r) − dḣ falls h ≤ r.
(1.10)
1. Schreiben Sie die Systemgleichungen für die Flugphase und die Stoßphase in Form eines (affinen) Zustandsraummodells der Form ẋ = Ax + f (g, c, m, r) auf. Verwenden Sie den Zustandsvektor x = (h, ḣ)T . Analysieren Sie die Eigenwerte beider Systemmatrizen. Schreiben Sie die
Eigenwerte als analytische Funktion der Systemparameter auf. Welche der Parameter Dämpfung,
Federkonstante und Masse beeinflussen Real- und Imaginärteil der Eigenwerte von A?
2. Erstellen Sie ein Simulink-Blockdiagramm des Balls und legen Sie die Parameter wie gewohnt in
einem m-File fest. Stellen Sie im Menü Simulation/Configuration Parameters“ den Löser für steife
”
Systeme ODE23s ein. Simulieren Sie die Bewegung des Balls für 5 Sekunden. Der Ball befindet
sich anfänglich in Ruhe.
3. Verändern Sie die Parameter des Systems so, dass sich die Realteile der Eigenwerte der Systemmatrix des freien Flugs und des Stoßes um zwei Größenordnungen unterscheiden. Simulieren Sie
das System auf mit dem nichtsteifen Löser ODE23. Vergleichen Sie die Ergebnisse. Betrachten
Sie vor allem die Zeitausschnitte, in denen der Übergang vom freien Fall zum Stoß stattfindet und
umgekehrt.
Simulation mit Schaltereignis. Wenn die eigentliche Phase des elastischen Stoßes nicht im Zentrum
der Fragestellung steht, sondern nur das Ergebnis des Stoßes zählt, ist eine ereignisbasierte Simulation
eine sinnvolle Alternative. Um den erhöhten Rechenaufwand in der Phase des Stoßes zu vermeiden,
wird beim Auftreffen zum Zeitpunkt te der Geschwindigkeitsvektor des Balls um einen Verlustfaktor
cr = 0.7 verkürzt, umgekehrt und die Simulation mit diesem Anfangswert für die Ballgeschwindigkeit
neu gestartet:
t−
e
−
v(t+
e ) = −cr · v(te ).
den Zeitpunkt unmittelbar vor dem Auftreffen des Balls und
Hierbei bezeichnen
unmittelbar nach seinem Auftreffen.
(1.11)
t+
e
den Zeitpunkt
6 Zusatzaufgaben
9
double
Constant1
Gain
Ereignisdetektion
Conversion
Add
2
-0.5
Compare
Q
S
!Q
R
<= r
Höhe
1
S-R
Flip-Flop
boolean
Conversion2
-g
Constant
Product
Gain1
Modusumschalten
a
1
s
xo
Integrator
v
Memory
cr
Abb. 1.5. Elemente zum Aufbau der Ereignisdetektion und zum Umschalten des Geschwindigkeitsvektors
1. Erstellen Sie nun zur Simulation nach diesem Prinzip ein Simulink-Blockschaltbild. Benutzen Sie
dabei die in Abb. 1.5 angegebenen Strukturen zur Detektion des Aufprallereignisses und zum Umschalten des Modus. Das Umschalten der Geschwindigkeit erfolgt unter Benutzung eines Integrators mit externer Vorgabe des Anfangszustands und externem Reset-Eingang. Als Anfangszustand
wird jeweils der letzte Wert verwendet. Bei Detektion eines Aufprallereignisses wird der Integrator der Geschwindigkeit per Reset auf den letzten berechneten Wert mit −cr skaliert gesetzt und
neu gestartet. Jedes Reset-Ereignis wird auch zum Rücksetzen des RS Flip-Flops verwendet, so
dass die nächste Umkehrung des Geschwindigkeitsvektors erst beim nächsten Ereignis passiert.
Simulieren Sie das System ebenfalls für 5 Sekunden. Hinweis: Stellen Sie den Reset-Eingang des
Integrators für die Geschwindigkeit so ein, dass dieser auf die fallende Flanke (falling edge) des
anliegenden Signals reagiert.
2. Überprüfen Sie mit Hilfe ihres Modells, ob das Verhalten ihren Erwartungen entspricht. Beobachten Sie das Ereignissignal. Welches Phänomen beobachten Sie zu späten Zeiten, wenn der Ball
auf der Unterlage zur Ruhe kommen soll? Hinweis: Die vom Ball erreichte Höhe wird mit jedem
Stoß kleiner, da bei jedem Stoß Energie dissipiert wird. Aus diesem Grund treten in dieser Phase
in endlicher Zeit eine unendliche Anzahl von Stoßereignissen auf. Dieses eigenartige Verhalten ist
in der Simulation hybrider Systeme, das heißt gekoppelter diskret-kontinuierlicher Systeme, unter
dem Namen Zeno-Verhalten bekannt.
Herunterladen