248 75 11MB
German Pages 130 [132] Year 2007
Simulink® Grundlagen und Beispiele von Frieder Grupp und Florian Grupp
Oldenbourg Verlag München Wien
Prof. Dr. Frieder Grupp lehrt seit 1992 an der Fachhochschule Würzburg-Schweinfurt im Fachbereich Allgemeinwissenschaften Mathematik. Zuvor war er von 1988 bis 1992 bei der DASA (heute EADS) in Ulm in der Entwicklung tätig. Dipl.-Inform. Florian Grupp studierte an der Universität Würzburg Informatik und Mathematik mit den Schwerpunkten Numerik und Differentialgleichungen. Seit 2005 arbeitet er bei der Deutschen Bank in Frankfurt.
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.
© 2007 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0 oldenbourg.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Kathrin Mönch Herstellung: Anna Grosser Coverentwurf: Kochan & Partner, München Coverausführung: Gerbert-Satz, Grasbrunn Gedruckt auf säure- und chlorfreiem Papier Druck: Grafik + Druck, München Bindung: Thomas Buchbinderei GmbH, Augsburg ISBN 978-3-486-58091-4
Vorwort
VI
spondierende Abschnitte in den Kapiteln 2 und 3, die entsprechende Erläuterungen zu MATLAB und den mathematischen Grundlagen der einzelnen Modelle enthalten. Eine Zusammenfassung der im Buch verwendeten SLMULLNK-Blöcke ist in Kapitel 4 aufgeführt. In Kapitel 5 geben wir einen kurzen Uber blick zur Laplace- und z-Transformation. Gerade größere Modelle lassen sich durch Anwendung der Laplace- und z-Transformation erheblich vereinfachen. Alle im Buch aufgeführten SiMULlNK-Modelle und MATLAB-Programme können unter dem folgenden Link heruntergeladen werden: www.oldenbourg-wissenschaftsverlag.de/olb/de/l.c.985374.de Obwohl wir alle SiMULlNK-Modelle und MATLAB-Programme mehrfach getestet haben, lassen sich Fehler nicht gänzlich ausschließen. Für Hinweise per E-Mail sind wir daher sehr dankbar ([email protected]). Frau Mönch vom Oldenbourg-Verlag danken wir für Ihre Unterstützung bei der Erstellung des Buches, Frau Dr. Latour für die Durchsicht unseres Manuskripts und Courtney Esposito von MathWorks für ihre Unterstützung bei der Beschaffung der Software. Also, liebe Leser, starten Sie MATLAB, danach wie am Anfang des Kapitels 1 beschrieben SIMULINK und bauen Sie unter ausführlicher Anleitung dieses Buches ihre ersten SiMULlNK-Modelle. Viel Spaß und viel Erfolg!
Bergrheinfeld
Frieder Grupp
Eschborn
Florian Grupp
Weitere Informationen zu den Produkten MATLAB und SIMULINK erhalten Sie unter: The MathWorks, Inc. 3 Apple Hill Drive Natick, MA, 01760-2098 USA Tel: 508-647-7000 Fax: 508-647-7101 E-mail: [email protected] www.mathworks.com
Vorwort MATLAB1
mit SIMULINK 2 ist heutzutage ein sehr weit verbreitetes Softwaretool für praktische mathematische Anwendungen. In der Industrie gehört M A T L A B mit SLMULINK zum Standard und vor allem für Ingenieure sind Kenntnisse in MATLAB und SIMULINK für die Praxis fast unabdingbar. Dies zeigt sich auch daran, dass einführende Vorlesungen zum Thema MATLAB an Hochschulen sich einer großen Nachfrage erfreuen. SIMULINK bietet Anwendern die Möglichkeit, die zahlreichen Funktionen in MATLAB sehr einfach über eine grafische Benutzeroberfläche zu nutzen. Vielen Anwendern von MATLAB fällt der Einstieg schwer und insbesondere die Programmierung in MATLAB schreckt so manchen Nutzer am Anfang ab. Hier bietet SIMULINK einen eleganten Ausweg an. Mit wenigen Mausklicks lassen sich komplizierte mathematische Modelle wie Differentialgleichungen zusammenstellen und auswerten.
Für die Verwendung von SIMULINK sind zumindest Grundkenntnisse in M A T L A B notwendig. An einigen Stellen in diesem Buch erläutern wir kurz einige Aspekte von MATLAB. Wer bisher noch keine Kenntnisse in MATLAB hat, dem sei unser erstes Buch (Grupp-Grupp [3]) empfohlen. Dort werden dem Leser die Grundlagen in MATLAB näher gebracht. Dieses Buch soll eine Einführung in SIMULINK sein, die es einem angehenden Nutzer von SIMULINK ermöglicht, ohne fremde Hilfe den Einstieg in SIMULINK zu schaffen. SIMULINK findet in vielen Bereichen der Technik Anwendung. Wir beschränken uns aber bei der Einführung in SIMULINK auf Differentialgleichungen und Differenzengleichungen, da diese weite Teile der technischen Anwendungsmöglichkeiten abdecken. Grundkenntnisse in Mathematik sind unseres Erachtens unabdingbar, sollten aber nicht im Vordergrund stehen. Wir starten in Kapitel 1 sofort mit SIMULINK, indem wir S I M U L I N K - M o d e l l e für eine Vielzahl von Anwendungsfällen erstellen und auswerten. In Kapitel 2 schieben wir die entsprechenden Inhalte in M A T L A B in kurzer Form nach. Wer bisher wenig oder gar nicht mit MATLAB gearbeitet hat, dem sei nochmals die Lektüre von (Grupp-Grupp [3]) empfohlen. Schließlich wollen wir in Kapitel 3 die mathematischen Grundlagen der in Kapitel 1 vorgestellten SiMULiNK-Modelle erläutern. Alle drei Kapitel haben dieselbe Unterstruktur. Zu jedem Modell in den Abschnitten von Kapitel 1 finden sich korre1
(G) MATLAB
2
(g)
SIMULINK
is a registered trademark of The MathWorks, Inc. is a registered trademark of The MathWorks, Inc.
Inhaltsverzeichnis 1
SIMULINK
1
1.1 1.1.1 1.1.2
Grundlagen Funktionen skizzieren Funktionen differenzieren
1 3 8
Ein diskretes SiMULiNK-Modell
11
Funktionen integrieren
15
Ein diskretes SiMULiNK-Modell
17
1.2 1.2.1 1.2.2 1.2.3 1.2.4
Die lineare Differential- und Differenzengleichung erster Ordnung Lösung der Differentialgleichung mit Rückkopplung Lösung der Differentialgleichung ohne Rückkopplung Lösung einer Differentialgleichung mit Parametern Lösung einer Differenzengleichung ohne Rückkopplung
19 19 21 24 27
1.3 1.3.1 1.3.2 1.3.3
Die Differential- und Differenzengleichung zweiter Ordnung Lösung der linearen Differentialgleichung mit konstanten Koeffizienten.. Lösung der allgemeinen Differentialgleichung zweiter Ordnung Lösung der linearen Differenzengleichung mit konstanten Koeffizienten .
30 30 35 37
1.4 1.4.1 1.4.2
Systeme von Differentialgleichungen Systeme linearer Differentialgleichung mit konstanten Koeffizienten Allgemeine Systeme linearer Differentialgleichungen
39 40 45
2
MATLAB
49
2.1 2.1.1 2.1.2 2.1.3
Grundlagen Funktionen skizzieren Funktionen differenzieren Funktionen integrieren
49 49 49 50
2.2 2.2.1 2.2.2 2.2.3
Die lineare Differential- und Differenzengleichung erster Ordnung Lösung der linearen Differentialgleichung Modelle der Differentialgleichung mit Parametern Lösung der linearen Differenzengleichung
50 50 52 59
2.3 2.3.1 2.3.2 2.3.3
Die Differential- und Differenzengleichung zweiter Ordnung Lösung der linearen Differentialgleichung mit konstanten Koeffizienten.. Lösung der allgemeinen Differentialgleichung zweiter Ordnung Lösung der linearen Differenzengleichung mit konstanten Koeffizienten .
61 61 62 63
1.1.3
Inhaltsverzeichnis
VIII 2.4 2.4.1 2.4.2
Systeme von Differentialgleichungen Systeme mit konstanten Koeffizienten Allgemeine Systeme linearer Differentialgleichungen
65 65 68
3
Mathematische Grundlagen und Erläuterungen
71
3.1 3.1.1 3.1.2 3.1.3
Grundlagen Punktionen skizzieren Punktionen differenzieren Funktionen integrieren
71 71 71 73
3.2 3.2.1 3.2.2
Die lineare Differential- und Differenzengleichung erster Ordnung Lösung der Differentialgleichung Lösung der Differenzengleichung
74 74 78
3.3 3.3.1 3.3.2 3.3.3
Die Differential-und Differenzengleichung zweiter Ordnung Lösung der linearen Differentialgleichung mit konstanten Koeffizienten.. Lösung der allgemeinen Differentialgleichung zweiter Ordnung Lösung der linearen Differenzengleichung mit konstanten Koeffizienten .
80 80 84 85
3.4 3.4.1 3.4.2
Systeme von Differentialgleichungen Systeme linearer Differentialgleichungen mit konstanten Koeffizienten... Allgemeine Systeme linearer Differentialgleichungen
87 87 91
4
Zusammenfassung ( S I M U L I N K - B l ö c k e )
93
4.1
SlMULlNK-Blöcke aus der Bibliothek Sources
95
4.2
SlMULlNK-Blöcke aus der Bibliothek Commonly Used Blocks
97
4.3
SlMULlNK-Blöcke aus der Bibliothek Continuous
99
4.4
SlMULlNK-Blöcke aus der Bibliothek Discrete
100
4.5
SlMULlNK-Blöcke aus der Bibliothek Math Operations
102
4.6
SlMULlNK-Blöcke aus der Bibliothek Sinks
103
5
Transformationen
105
5.1 5.1.1 5.1.2
Laplace-Transformation Anwendung der Laplace-Transformation (Schema) Diskretisierung
105 106 107
5.2
z-Transformation
107
5.2.1
Anwendung der z-Transformation (Schema)
108
6
Tabellen
111
Literaturverzeichnis
117
Index
119
1
SIMULINK
1.1
Grundlagen
Die folgende Beschreibung bezieht sich auf MATLAB 7 . 2 ( R 2 0 0 6 A ) . 1 MATLAB wird unter Microsoft Windows mit einem Doppelklick auf das MATLABSymbol gestartet. Dieses Symbol wird bei der Installation von MATLAB automatisch auf der Benutzeroberfläche angelegt. Wer mit MATLAB in einer Netzwerkumgebung arbeiten will, sollte sich zunächst an das zuständige Rechenzentrum wenden. Wer mit MATLAB wenig oder keine Erfahrung hat, kann das Buch Grupp-Grupp [3] zur Hand nehmen, das eine Einarbeitung in MATLAB im Eigenstudium ermöglicht. • Uly! Ffe Edt Detug Desttcc Whd*. Hdp Q
fii
& - h — Unknown date si»ulink
^
3
—*
I J a
j 0 FrograrmeWATLABKXX&atwwt
To get started, select MATLfiB Help or Deiaos from the Help Menu
olo *-- 07.04.0« 06:40 —% H— 01.01 06 06:49 --%
H ' •••••• Abb.
1.1: Die
••••-.••..-:.••• ••••••• '
- .
.1 ii
MATLAB-Oberfläche
Am Ende der Startprozedur erscheint die voreingestellte MATLAB-Oberfläche (siehe Abbildung 1.1), sofern der Benutzer in der vorherigen Sitzung nicht eine andere Oberfläche 1
F ü r andere Systeme ziehe man das Handbuch zu Rate.
2
1
SIMULINE
abgespeichert hat. Diese voreingestellte Oberfläche kann auch durch Desktop —> Desktop Layout — • Default hergestellt werden. (Desktop ist ein Stichwort der ersten Menüzeile unterhalb der blauen MATL AB-Überschrift.)
Um SIMULINK zu starten, gibt man nun im MATLAB Command Window den Befehl Simulink ein oder man führt einen Doppelklick auf das SLMULLNK-Symbol aus.
Abb. 1.2: Das SlMVUNK-Symbol Eine neues Fenster wird geöffnet mit dem Titel SIMULINK Library Browser. Diese Bibliothek verwenden wir nun, um unser erstes vollständiges Modell mit SIMULINK ZU erstellen.
Cootinuous: slmulink/Continuous
p H ! » « * * | : j I : I 1 : jh 1 I I I j "j I j I •
: ü ä Commonly Used Blocks è J Continuous ^Discontinuities ifcf Discrete fei Logic and Bit Operations ¡5$ Lookup Tables ; Math Operations ; S M««W Verification à-ì Model-Wide Utilities M Ports & Subsystems Signal Attributes ÌSfc) Signal Routing ! Sinks ; gjj Sources
User-Defined Functions :j i S - I B Additional Math 8< Discrete j ffi m Real-Time Workshop j © $ Simulink Extras % Stateflow
Commonly Used Blocks
I Double dick thiTl Discrete
Lookup Tables
Model Verification Model-Wide Utlkies Ports & Subsystems Signal Attributes Signal Routing
Abb.
1.3:
Die
SIMULINK-Bibliothek
3
1.1 Grundlagen
1.1.1
Funktionen skizzieren
Das Beispiel soll einfach sein und zunächst den Umgang mit dieser Bibliothek beschreiben. Zuerst muss ein neues SlMULlNK-Modell erzeugt werden oder ein bereits bestehendes SiMULiNK-Modell geöffnet werden. Um ein neues SlMULlNK-Modell zu erzeugen, klickt man im Fenster SIMULINK Library Browser in der zweiten Menüzeile auf das erste Symbol, das weiße Blatt (Create a new model). Es wird ein neues Fenster mit der Uberschrift untitled geöffnet. Um ein bestehendes SlMULlNK-Modell zu öffnen, klickt man auf das zweite Symbol, den gelben Aktenordner (Open a model). Nun werden wir aus Quellen (Sources) und mathematischen Operationen (Math Operations) aus der Bibliothek die gedämpfte Schwingung e - 0 24 sin(i) als Graph erzeugen und in einem neuen Fenster unter Verwendung von Sinks ausgeben. tfiSSSS
J f l l X] • .'ttotóftWt -fi*«*:- -TMip- f-wfc ••
:.' s a i
Sine Wave: Output a sine wave
e £- t a
pvjioo j I3
0(t) • Amp"Sr«
.-jqiüI
Tods Hefe
D g Hjg: -v P i v < t ;'--
> • ¡'im ät- B»
[s«w Font... Schriftart, Schriftschnitt und Schriftgrad im Fenster Set Font festlegen.
6
1 SIMULINK
SiMULlNK-Blöcke verbinden Nachdem die einzelnen SiMULlNK-Blöcke im Fenster plaziert sind, müssen sie miteinander verbunden werden. Man klickt mit der Maus den Ausgang > des SlMULiNK-Blocks Clock an, der bei 3 Uhr am Rand des SlMULiNK-Blocks Clock steht, und zieht — linke Maustaste gedrückt lassen — die Spitze des Pfeils auf den Eingang > von Gain . Ebenso verbindet man Gain mit Math Function, Math Function mit Product, Sine Wave mit Product und schließlich Product mit Scope. So erhält man Abbildung 1.7. SlMULlNK-Modell ausführen Nun ist das erste Modell lauffähig. Wir speichern es ab mit einem Klick auf das Diskettensymbol und wählen in der Menüleiste des Fensters Schwingung Simulation —> Start. Eine eventuelle Warnung im M a t l a b Command Window, die man abstellen kann 2 , wird ignoriert. Mit einem Doppelklick auf den SiMULiNK-Block Scope öffnet man das Fenster Scope, in dem die gewünschte gedämpfte Schwingung e~0,2tsin(t) skizziert wird. Um die Graphik optimal darzustellen, kann man auf auf das Symbol Fernglas (Autoscale) klicken. Man erhält dann Abbildung 1.8.
Abb. 1.8: Vierter Schritt im Simulink-Modell: Graphische Darstellung des Ergebnisses 2 I n der Menüleiste wähle m a n Simulink —• Configuration Parameters... Im sich öffnenden Fenster klicke m a n Diagnostics an, ersetze im Feld „ A u t o m a t i c solver p a r a m e t e r selection" den E i n t r a g warning durch none. Diese Wahl wird mit Apply bestätigt und das Fenster mit O K geschlossen.
1.1 Grundlagen
7
SiMULlNK-Modell ergänzen Um unser Modell optisch etwas aufzubereiten, beschriften wir die SiMULlNK-Blöcke mit passenden Bezeichnungen. Dazu klickt man die Unterschrift unter einem S I M U L I N K Block an und kann den gewünschten Text eintragen. Klickt man einen SlMULlNK-Block an, so lässt sich wie bereits oben erwähnt in der ersten Menüzeile mit Format —> Font... das Schriftbild anpassen. Mit einem Klick auf einen Pfeil wird dieser aktiviert. Dies wird durch zwei Quadrate am Anfang und am Ende des Pfeils angezeigt. Klickt man nun diesen aktivierten Pfeil erneut an, so wird das Symbol «J» angezeigt und man kann den Pfeil anpassen. Dies ist insbesondere in komplizierteren Modellen hilfreich. Führt man einen Doppelklick auf einen Pfeil aus, so geht ein kleines Fenster auf, in das man die Beschriftung eintragen kann. Aktiviert man den Pfeil anschließend mit einem einfachen Klick, so kann man über Format —> Font... das Schriftbild ändern. Die SiMULlNK-Blöcke können auch verschoben werden, indem man sie anklickt und an ihre neue Position zieht. Mit einem Doppelklick auf eine freie Fläche im Modell wird ein kleines Fenster geöffnet, in das dann ein Text (etwa ein Titel) eingetragen werden kann. Si EA VÜM Smfetlon Format Tcrafs Hefc o I « b « a .-s • |5«vg(CM4-5jl
-iplxl • 1 jioo
3
S E B i
Ein erstes Simulink-Modell
slnft) Quellsignal
X
Multiplikation
sin(t) exp(-0.2t) ' Ausgabe
exp(-0.2t) Funktion
Abb.
1.9:
Ein erstes SIMULINK-Modell
In Formeln ist es mitunter angenehm, eine optisch gewohnte Darstellung zu haben, etwa exp(-Q.2t) in der Form e~0 2t zu schreiben. Hierzu führt man einen Doppelklick
1 SIMULINK
8
auf eine freie Stelle im Modell aus oder aktiviert eine bereits bestehende Beschriftung. Will man etwa e~°'2t am Eingang des SLMULLNK-Blockes Multiplikation positionieren, so schreibt man e A {—0.2i} in ein aktiviertes Feld und führt dann in der 2. Menüzeile des Fensters Schwingung die Option Format —> Enable Tex Commands aus. So entsteht die Darstellung e~°' 2 i . Die Bezeichnungen entsprechen den M^X-Befehlen. Schließlich speichert man die gewünschte Version und erhält etwa Abbildung 1.9.
1.1.2
Funktionen differenzieren
Im Beispiel des letzten Abschnitts wurde eine Funktion erzeugt und dargestellt. Jetzt wollen wir eine Funktion differenzieren sowie die Funktion und ihre Ableitung darstellen und speichern. Wir legen dazu ein neues SLMULLNK-Modell an (siehe vorheriges Kapitel). Q SnnHHHMHaaHHH^ Fte Edt Wew Smiaüoi F«mat Tock Hefe D : ci H # ® -i . Q • • p j - S - B & ft S B +
,10!*!
Differenzieren mit SIMULINK
Sine Wave
Derivative Scope
lioim Abb.
1.10:
SlMULlNK-Modell
Differenzieren,
erster
|
Schritt
Wie zuvor zieht man (drag and drop) aus dem SLMULLNK Library Browser unter Sources den SIMULINK-Block Sine Wave und unter Sinks den SLMULLNK-Block Scope in unser neues Modell, das unter Differenzieren.mdl abgespeichert wird. Aus Continuous ziehe man den SLMULLNK-Block Derivative und aus Signal Routing schließlich den SIMULINKBlock Mux. Zum Ziehen der Verbindungspfeile kann man nun vorgehen wie im Abschnitt zuvor. Es geht aber auch schneller und bequemer. Man klickt die Quelle (Sine Wave) an, drückt
1.1 Grundlagen die Taste
Strg
9 und klickt nacheinander mit der Maus die gewünschten SlMULlNK-
Blöcke an, hier also Derivative, Mux, Scope. Dann werden die Pfeile gezeichnet. Nun klickt man mit der rechten Maustaste auf den Pfeil von Sine Wave zu Derivative und zieht die Maus zu Mux. So wird auch das Eingangssignal auf Mux gesetzt. Nach eventuellem Umgestalten und Beschriften (vgl. Abschnitt zuvor) erhält man dann etwa Abbildung 1.10. Das Eingangssignal soll nun von s i n i zu 1 + 2 sin(27ri + geändert werden. Ein Doppelklick auf Sine Wave öffnet das Fenster Source Block Parameters: Sine Wave, in dem man die entsprechenden Anpassungen vornehmen kann (siehe Abbildung 1.11): • „Amplitude" wird auf 2 geändert, • „Bias" auf 1, • „Frequency (rad/sec)" auf 2 * pi, • „Phase (rad)" auf pi/4. *J Output a sine wave: 0(t) » Amp"S infFreqt+Phase) + Bias Sine type determines the computational technique used. T h e parameters in the two types are related through: Samples per period = 2*pt / (Frequency" Sample time) Number of offset samples « P h a s e " Samples per period / (2"pi) U s e the sample-based sine type if numerical problems < 1 « to running for large times (e.g. overflow in absolute time) occur. f Parameters Sine '.vpe:
- i M f M l
Time (tjr j Use simulation time
13 "3
Amplitude:
F
Frequency (rad/secfc
P h a s e (tad):
p/T
Samptehme:
p
Interpret vector parameters a s 1-D
Help
Abb. 1.11: Source Block Parameters: Sine Wave „Frequency" und „Phase" müssen im Bogenmaß und nicht im Gradmaß eingegeben werden. Man beachte auch die Formel in der 3. Zeile des Fensters. Mit OK werden die neuen Werte übernommen und das Fenster geschlossen.
1 SIMULINK
10
Das Ausgangssignal 1 + 2 sin(27r£ + 7r/4) der Quelle schreibt man nun wie im Abschnitt zuvor beschrieben an den Pfeil. Das Ausgangssignal aus dem SLMULLNK-Block Derivative kann man bei diesem Beispiel natürlich leicht berechnen. Nach Abspeichern führt man das Modell mittels Simulation —> Start aus und nach einem Doppelklick auf Scope erhält man Abbildung 1.12, wobei in Scope das Fernglas (Autoscale) angeklickt wurde. Das Ergebnis sieht möglicherweise nicht so aus, wie man es erwartet hat (siehe Abbildung 1.12). Zur Erläuterung beachte man die Kapitel 2.1, 2.2, 3.1 und 3.2. Man kann leicht Abhilfe schaffen, indem man die Schrittweite anpasst. Dazu wählt man im Fenster Differenzieren die Option Simulation —> Configuration Parameters. Im sich dann öffnenden Fenster Configuration Parameters: Differenzieren/Configuration (Abbildung 4.3) ändert man die Schrittweite „Max step size" von auto auf 0.01 (etwa). Mittels Apply und OK speichert man die Änderung, führt nun Simulation —> Start erneut aus und mit einem Doppelklick auf Scope erhält man das erwartete Ergebnis.
Abb. 1.12:
Ausgang
Differenzieren
Beendet man MATLAB, SO gehen alle berechneten Daten verloren. Man kann die Ausgabedaten aber vorher speichern. Hierzu klickt man im Fenster Scope auf das zweite Symbol (Parameters) der Menüleiste. Dann geht das Fenster 'Scope'Parameters auf, in dem man die Option Data history wählt. Man setzt durch Anklicken den Haken im Feld „Save data to workspace" , trägt in das dann weiß unterlegte Feld „Variable name" einen Namen nach Wahl ein (zum Beispiel DifferenzierenData) und wählt im Feld „Format" die Option Array, bevor man mit Apply die Einträge übernimmt und mit
1.1 Grundlagen
11
OK das Fenster schließt. Um die Daten der Ausgabe zu sichern, speichert man das Modell Differenzieren erneut und startet nochmals die Simulation. Im Workspace, einem Teilfenster von MATLAB — man beachte Abbildung 1.1 —, findet man nun die Daten. Man überprüft das sehr leicht mit einem plot-Befehl in MATLAB (vgl. Kapitel 2.1.2). Abschließend kann man im Modell im Fenster Differenzieren mit einem kleinen Text daraufhinweisen, dass die Daten der Ausgabe gespeichert sind (siehe Abbildung 1.13).
FDe
Echt
D
Vta*
Simulation
« 1 8
Format
Tools
Help
j» -
•
• foT
®
[
'
[Saye (Orl+S)]
Differenzieren mit Simulink
Mux
Die Daten der Ausgabe sind in DifferenzierenData gespeichert im Workspace
Ka«ft
t = 0 : 0.1 : 2 * p i ;
% t = [0,0.1,0.2,0.3,..., 6.2]
» u = sin(t);
% u = [sin(O), sin(O.l), sin(0.2),..., sin(6.2)]
> A = [t;u];
%A i s t vom Typ (2,63);
save SinDiskret.mat A
% Matrix A speichern
-im xi
R Differenz lerenOtskrel Ffc Ed» View Simulation Format
D öBä
' m
Tools HHp
!0®
» Ed E
Diskret Differenzieren mit Simulink
From File
Abb. 1.14:
Difference
Gain
Scope
Erstes SiMVUNK-Modell zum diskreten Differenzieren
Die Datei SinDiskret.mat enthält die Datenreihe und dient als Input in das S I M U LINK-Modell. Zunächst wird wiederum ein neues SLMULLNK-Modell angelegt. Aus dem S I M U L I N K Library Browser zieht man aus Sources den SLMULLNK-Block From File, aus Discrete den SlMULlNK-Block Difference, aus Commonly Used Blocks den S I M U L I N K Block Gain und aus Sinks den SlMULlNK-Block Scope. Dann verbindet man die SlMULiNK-Blöcke mit den Pfeilen wie oben beschrieben und speichert das Modell unter DifferenzierenDiskretl.mdl. Man führt einen Doppelklick auf den SlMULlNK-Block From File aus. Im sich öffnenden Fenster Source Block Parameters: From File ändert man das Feld „File name" zu SinDiskret.mat und das Feld „Sample time" zu 0.1, der Schrittweite im Vektor t. Man beachte Kapitel 3.1.2. Mit OK bestätigt man die Änderungen.
1.1 Grundlagen
13
Die Bezeichnung im SiMULlNK-Block Difference wird klar, wenn man im Kapitel 3.1.2 den Abschnitt über die z-Transformation beachtet oder im Kapitel 5.1.2 (LaplaceTransformation) die Formeln (5.2),(5.3) analysiert. Mit einem Doppelklick auf Gain wird das Fenster Function Block Parameters: Gain geöffnet. Man trägt im Feld „Gain" 10 ein, den Kehrwert der Schrittweite 0.1, bestätigt mit Apply und schließt das Fenster mit OK. Damit liegt am Ausgang von Gain nun sin(tfc)-sin(t,.-i); d i e d i s k r e t i s i e r t e Ableitung von sin(i). Man erhält Abbildung 1.14. Nun muss das SlMULlNK-Modell noch als diskret festgelegt werden. Dazu wählt man im Modell-Fenster Simulation —> Configuration Parameters... und öffnet damit gleichnamiges Fenster (vgl. Abbildung 4.3). Man wählt unter Solver Options im Feld „Type" die Option Fixed-step und im Feld „Solver" die Option discrete (no continuous states), bestätigt mit Apply und schließt das Fenster mit OK. Startet man (nach Abspeichern) die Simulation und führt einen Doppelklick auf Scope mit anschließendem Klick auf das Symbol Fernglas (Autoscale) aus, so erhält man die diskretisierte Ableitung des Sinus (Abbildung 1.15). Der erste Wert der diskreten
Abb.
1.15:
Ausgabe SlMULlNK-Modell zum diskreten
Differenzieren
Ableitung ist nicht korrekt, da der Anfangswert nicht gesetzt wurde. Dies holen wir jetzt nach. Mit einem Doppelklick auf den SiMULlNK-Block Difference wird das Fenster Function Block Parameters: Difference geöffnet, in welchem man im Feld „Initial condition for previous input" den Wert - 0 . 1 einträgt, mit Apply bestätigt und mit OK
1 SIMULINK
14
das Fenster schließt. Der Eintrag —0.1 wurde gewählt, da sin(—0.1) « —0.1 gilt. Die beiden SiMULiNK-Blöcke Difference und Gain lassen sich durch einen SiMULlNKBlock, nämlich Discrete Derivative ersetzen. Man lege hierzu ein neues Modell an oder öffne das Modell DifferenzierenDiskretl.mdl, bringe die Änderungen ein und speichere etwa unter DifferenzierenDiskret2.mdl. Die Beschriftung im SlMULlNKBlock Discrete Derivative ist wieder an die z-Transformation angelehnt. Man beachte in Kapitel 3.1.2 den Abschnitt z-Transformation oder die Formeln (5.2) und (5.3). Mit einem Doppelklick auf den SlMULlNK-Block öffnet man das Fenster Function Block Parameters: Discrete Derivative (oder Diskrete Ableitung, falls der Name des SlMULlNKBlocks schon auf Diskrete Ableitung geändert wurde). Man ändere im Feld „Initial condition for previous weighted input" den Wert 0.0 auf —1.0 (siehe oben] und achte darauf, dass „Gain" auf 1.0 steht. Mit Apply und OK übernimmt man die Änderungen und erhält etwa Abbildung 1.16. Ausführliche Hilfe zu einem SlMULlNK-Block erhält man, wenn man mit der Maus auf einen SlMULlNK-Block zeigt, die rechte Maustaste drückt und die Option Help wählt. Die wichtigsten SiMULiNK-Blöcke sind zudem in Kapitel 4 beschrieben. Beide SlMULiNK-Modelle liefern dasselbe Ergebnis.
- I°l * !
Filo Eck View Simulation Format Toots Help •
i f l i
B»
t ] .
j a r
-
ä
»
a
m
®
jj'.ar- ^nui-amn]
Diskret Differenzieren mit Simulink
Diskrete Ableitung
Ausgabe
Ready
Abb.
1.16:
Zweites
SIMULINK-Modell zum diskreten
Differenzieren
1.1 Grundlagen
1.1.3
15
Funktionen integrieren
Das Modell Diffenzieren.mdl soll geändert werden zum Modell Integrieren.mdl. Dazu speichert man das alte SlMULiNK-Modell Differenzieren.mdl unter Integrieren.mdl und entfernt den SlMULlNK-Block Derivative (du/dt), indem man ihn mit der rechten Maustaste anklickt und in dem sich dann öffnenden Rollladen die Option Cut auswählt. Ullllll I Iii II ¡••••••••••••MMBMWIliWIlillllll^ltilii'i) Fle Edt View Simirttan
D
» U ä
Fwtn.v
e
Tods
Jbjä
>
:
2
• » fmo"
g
-
•
ü S r a *
__
Isurt awinacr»! integrieren mit Simulink
Mux Die Daten der Ausgabe sind in IntegrierenData gespeichtert im Workspace
RMdy
Abb. 1.17: SmuLWK-Modell
100%
zum
QdMS
Integrieren
Aus dem S I M U L I N K Library Browser zieht man nun aus Continuous den S I M U L I N K Block Integrator in unser Modell. Man reskaliert ihn, zieht ihn an die Stelle, an der im alten Modell der SlMULlNK-Block Derivative war, und ändert die Beschriftungen wie in den Abschnitten zuvor beschrieben. Die Bezeichnung ^ im SlMULlNK-Block wird klar, wenn man im Kapitel 3.1.3 den Abschnitt Laplace-Transformation für die Integration beachtet.Um alle Stammfunktionen zu einer Punktion zu bestimmen, genügt es bekanntlich, eine Stammfunktion zu bestimmen. Alle anderen Stammfunktionen erhält man dann durch Addition einer Konstanten. Mit einem Doppelklick auf den neuen SlMULlNK-Block Integrator öffnet man das Fenster Function Block Parameters: Integrator. Dort kann man im Feld „Initial condition" den Anfangswert eintragen. Dieser Anfangswert taucht auch in Kapitel 3.1.3 im Abschnitt Laplace-Transformation auf. Er bleibt in unserem Beispiel unverändert auf 0. Falls man ihn ändert, muss man darauf achten, die neue Einstellung mit Apply zu übernehmen. Zu u(t) = 1 + 2sin(27rt + j ) ist die Stammfunktion y(t) mit y(0) = 0 bekanntlich
1 SIMULINK
16
y(t) = t - l COS(27rt + F) + l cos(F). Man erhält schließlich Abbildung 1.17. Das Modell Integrieren.mdl führt man nun mit Simulation —> Start aus und kann mit einem Doppelklick auf Scope/Ausgabe Quellsignal und Stammfunktion mit dem Anfangswert 0 entnehmen. Das Ergebnis ist enttäuschend. Das Quellsignal wird viel zu ungenau skizziert. Um die Ausgabe in einer Datei zu speichern, klickt man im Fenster Scope/Ausgabe das zweite Symbol Parameters in der Menüleiste an. Im sich dann öffnenden Fenster 'Scope/Ausgabe'parameters klickt man D a t a history an, setzt den Haken in „Save d a t a to workspace", trägt unter „Variable name" I n t e g r i e r e n D a t a ein und wählt in „Form a t " Array. Führt man das Modell nochmals aus und aktiviert den Workspace (vgl. Abbildung 1.1), so sieht man, dass I n t e g r i e r e n D a t a eine Matrix vom Typ (52,3) ist, Dif f e r e n z i e r e n D a t a aber vom Typ (1001,3). Zum Integrieren wurden also zu wenige Stützwerte verwendet. Man beachte, dass auch in diesem (scheinbar) kontinuierlichen Modell numerisch integriert wird. Folgender Ausweg bietet sich an. Im Fenster Integrieren wählt man Simulation —• Configuration Parameters und trägt im sich dann öffnenden Fenster unter „Max step size" statt auto den Wert 0.01 ein, übernimmt den neuen Wert mit Apply und schließt das Fenster mit OK. Man speichert, führt das Modell erneut aus und entnimmt der Ausgabe nun das erwartete Ergebnis nach einem Klick auf das Symbol Fernglas (Autoscale). Abbildung 1.18 zeigt das gewünschte Ergebnis.
Abb.
1.18:
Ausgabe
SIMULINK-Modell zum
Integrieren
1.1 Grundlagen
17
Da auch in diesem kontinuierlichen Modell numerisch integriert wird, stellt sich die Frage, ob man nicht von vorne herein diskretisieren sollte.
Ein diskretes SlMULlNK-Modell Man öffnet das SLMULLNK-Modell DifferenzierenDiskret2.mdl, indem man in M A T L A B im Fenster Current Directory — siehe Abbildung 1.1 — einen Doppelklick auf DifferenzierenDiskret2.mdl ausführt oder im S I M U L I N K Library Browser mit einem Klick auf den gelben Aktendeckel (Open a model) ein Fenster öffnet und ebenfalls DifferenzierenDiskret2.mdl öffnet. Klickt man mit der rechten Maustaste auf den SlMULiNK-Block Derivative — oder falls bereits umbenannt — auf Diskrete Ableitung und wählt im sich dann öffnenden Rollladen die Option Cut, so wird der SlMULiNK-Block entfernt. Man speichert diese neue Datei unter IntegrierenDiskret.mdl. Aus dem S I M U L I N K Library Browser zieht man nun unter Discrete den SlMULiNK-Block Discrete-Time Integrator in das Modell IntegrierenDiskret.mdl, reskaliert ihn und zieht ihn an die Stelle, an der im SlMULlNK-Modell DifferenzierenDiskret2.mdl der S I M U L I N K Block Discrete Derivative war. Die Bezeichnung j^f i m SlMULiNK-Block wird klar, wenn man im Kapitel 3.1.3 den Abschnitt z-Transformation betrachtet.
D ei u &
a % e
- i g «Ii
4s, = .
l¥)liUllil' iiMlliU Fie &Ä VbW anuldtion Format Tools Help 2s;j > •
ifflft
»0®*
Diskret integrieren mit Simulink
SinDiskretmat From File
KT» sinft kj
z-1
Summe über sinft
k) ist etwa
Discrete-Time Integrator
Ready
Abb. 1.19: SlMULiNK-ModeZZ zum diskreten
1-cos(t_k)
Ausgabe
1CÖ% Integrieren
FixedStepOfecrete
1 SIMULINK
18
Die hier verwendete diskrete Integration läuft in SlMULlNK unter dem Namen Forward Euler Method. Andere diskrete Integrationsmethoden, die in Help aufgeführt sind (etwa Backward Euler Method, Discrete-Time Integrator Trapezoidal u.a.), erhält man, indem man die entsprechende Methode unter den Optionen festlegt. Mit einem Doppelklick wiederum auf den SiMULiNK-Block Discrete-Time Integrator öffnet man das Fenster Function Block Parameters: Discrete-Time Integrator. Dort wählt man unter „Main/Integrator method" die gewünschte Regel (hier Integration: Forward Euler), definiert „Gain value K " (hier zu 1.0), wählt den Anfangswert der Integration „Initial condition" (hier 0), stellt gegebenenfalls die „Sample time T s " um (hier 0.1), übernimmt diese Änderungen mit Apply und schließt das Fenster mit OK. Nachdem gegebenenfalls Beschriftungen angepasst sind und wiederum abgespeichert wurde, erhält man Abbildung 1.19. Führt man mit der Simulationsdauer 6.2 (etwa eine Periode der Lösung) das SIMULINKModell IntegrierenDiskret.mdl aus mit Simulation —> Start und macht einen Doppelklick auf Ausgabe, so erhält man nach einem Klick auf das Fernglas (Autoscale) Abbildung 1.20.
Abb. 1.20: Ausgabe SLMULLNK-Modell zum diskreten
Integrieren
1.2 Die lineare Differential- und Differenzengleichung erster Ordnung
19
1.2
Die lineare Differential- und Differenzengleichung erster Ordnung
1.2.1
Lösung der Differentialgleichung mit Rückkopplung
Zunächst soll die Differentialgleichung y' = —2y, y(0) = 1 gelöst werden. Hierbei wird erstmals eine Rückkopplung verwendet. Die mathematischen Hintergründe sind in Kapitel 3.2.1 beschrieben. Man zieht aus aus dem SlMULlNK Library Browser die SlMULlNK-Blöcke Integrator aus Continuous und Scope aus Sinks in ein neues Modell, verbindet den Ausgang von Integrator mit seinem Eingang, klickt diesen Pfeil mit der rechten Maustaste an und zieht den Pfeil auch auf Scope, so dass man (abgesehen von Gain und den Umbenennungen) Abbildung 1.21 erhält. Das Ergebnis wird abgespeichert in DglErsterOrdl.mdl. Mit einem Doppelklick auf Integrator öffnet man das Fenster Function Block Parameters: Integrator und trägt im Feld „Initial condition" die Anfangsbedingung 1 ein. Man bestätigt mit Apply und schließt das Fenster mit OK. Il I Fte Edt
D
Ö
•»»«¡•»•••••••»MMMM^ VBW
a
I
•
A
Format
Tods
E
rtsfc
. • a
> f FM a
' .
ni &
.;
.
_
•
• .
•
'
'"'yi-'V" - :
1
»@B
l5ave(Qri+S)l
Die Differentialgleichung y"=-2y, y(0)=1
Abb.
1.21:
Erstes
SlMULlNK-Modell mit
Rückkopplung
Mit der Wahl Simulink —> Start oder einem Klick auf das schwarze Dreieck (Start Simulation) in der ersten Menüleiste im Fenster DglErsterOrdl kann man schon einmal einen kurzen Test machen. Mit Doppelklick auf Scope öffnet man ein Fenster, in dem
20
1 SIMULINK J f l K l
jttBiüs DrudtEfi 5« Fl, umHfe iu etfiaftorp.
Ln 28, Coi 300
DÖS
Abb. 1.22: Ausgabe des erstes SlMULINK-Modells mit Rückkopplung
iie Lösung y(t) = et der Differentialgleichung y' = y, y(0) = 1 skizziert wird. Die Darstellung wird deutlicher, wenn man zunächst einen Klick auf das Fernglas (Autoscale) durchführt. Zur Genauigkeit der Ergebnisse beachte man Kapitel 1.1.3. Nun fügt man noch den SiMULlNK-Block Gain ein. Er wird aus dem S l M U L I N K Library Browser ins Modell DglErsterOrdl.mdl gezogen und dann mit der rechten Maustaste mgeklickt. Im sich öffnenden Rollladen wählt man die Option Format —^ Flip Block, um len SiMULlNK-Block zu drehen. Mit einem Doppelklick öffnet man das Fenster Function 3lock Parameters: Gain, setzt im Feld „Gain" den Wert auf - 2 , bestätigt mit Apply md schließt das Fenster mit OK. Schließlich wird Gain durch Ziehen an die gewünschte stelle positioniert. Die Pfeile passen sich automatisch an. Die Beschriftung kann nun roch adaptiert werden. Das Modell wird ausgeführt mit Simulink Start. Vlit einem Doppelklick zunächst auf den SiMULlNK-Block Ausgabe und danach im Fenster Ausgabe mit einem Klick auf das Symbol Fernglas (Autoscale) reskaliert man die Ausgabe. Der Zeitbereich der Ausgabe ist etwas zu groß und wird nun nachträglich Rändert. Durch einen Klick im Fenster Ausgabe auf das zweite Symbol der Menüleiste Parameters) wird das Fenster Ausgabe'parameter 1 geöffnet. In diesem wird im Feld • Time ränge" der Wert 3 statt auto eingetragen. Dann erhält man Abbildung 1.22. Vis Nächstes wollen wir die Differentialgleichung y' = - 2 y + e _ i , y(0) = 0 lösen. Zur Mathematik beachte man Kapitel 3.2.1. Man öffnet das Modell DglErsterOrdl.mdl und
1.2 Die lineare Differential- und Differenzengleichung erster Ordnung
Fio
flow
D ÖH#
Jota!
xxi Format Tools Help
•• e
-v
21
ì ci •
• ; » ¡10 0
s: ' @
£
»11«
IStytrtinJattain
Die Differentialgleichung y'+2y=exp(-t), y(0)=0
mpft) Mathe
/ff)
yft) y(t)
'
-2y(V Integrieren Scope Lösung: y(l)'exp(-t)-exp(-lt)
Saint
y»
Abb.
1.23:
Zweites
SlMULlNK-Modell mit
Rückkopplung
speichert es wieder unter DglErsterOrd2.mdl. Der Pfeil vom Ausgang von Gain zum Eingang von Integrator wird entfernt. Dazu klickt man den Pfeil mit der rechten Maustaste an und wählt die Option Cut. Die SlMULiNK-Blöcke Clock, Gain, Math Function und Add werden aus dem SlMULlNK Library Browser ins Modell DglErsterOrd2.mdl gezogen und reskaliert. „Initial condition" im SlMULiNK-Block Integrator (Integrieren) wird auf 0, „Gain" auf —1 gesetzt und die Pfeile so gezogen wie in Abbildung 1.23 dargestellt. Das gesamte Blockschaltbild kann verschoben werden. Dazu klickt man mit der linken Maustaste einen Punkt außerhalb der Schaltung an, zieht die Maus mit der gedrückten Maustaste über die Schaltung, bis ein Rechteck die Schaltung umfasst. Alle SlMULlNKBlöcke sind nun an den Eckpunkten durch kleine Quadrate aktiviert, ebenso wie die Pfeile mit Quadraten markiert sind. Klickt man nun mit der linken Maustaste einen SlMULiNK-Block an, so kann das gesamte Rechteck verschoben werden. Nach Beschriften wird mit Simulink —> Start das Modell DglErsterOrd2.mdl ausgeführt. Man erhält mit einem Doppelklick auf Scope Abbildung 1.24, die die Lösung für die Differentialgleichung y' + 2y — e _ t , y(0) = 0 anzeigt.
1.2.2
Lösung der Differentialgleichung ohne Rückkopplung
Das Modell in Kapitel 1.2.1 ist für eine ziemlich einfache Differentialgleichung bereits recht groß. Schon mit wenigen Kenntnissen über die Laplace-Tansformation (Kapitel
1 SIMULINK
22
Abb. 1.24•' Ausgabe des zweites SiMVLiNK-Modells mit
Rückkopplung
3.2.1 oder Kapitel 5.1) lässt sich das Modell vereinfachen. Man kann insbesondere auf eine Rückkopplung verzichten. Man öffne das Modell DglErsterOrd2.mdl, speichere es unter DglErsterOrd3.mdl und ziehe aus dem SIMULINK Library Browser aus Continuous den SLMULLNK-Block Transfer Fcn, der in Ubertragungsfunktion umbenannt wird, und aus Sinks den SlMULlNK-Block To File ins neue Modell, dessen Umbennung in DglErsterOrd3Data.mat weiter unten beschrieben ist. Man löscht nun einige SlMULlNK-Blöcke und Pfeile und fügt an geeigneter Stelle die neuen SlMULlNK-Blöcke ein. Zum Drehen des SIMULINK-Blocks To File führe man einen Klick mit der rechten Maustaste auf den SlMULlNK-Block aus und wähle die Option Format —> Rotate. Schließlich formatiert man neu und erhält (etwa) Abbildung 1.25. Der SlMULlNK-Block Ubertragungsfunktion muss noch angepasst werden. Mit einem Doppelklick auf diesen SlMULlNK-Block öffnet man das Fenster Function Block Parameters: Ubertragungsfunktion und trägt im Feld „Denominator CoefRcient" [1,2] ein, die MATLAB-Darstellung des Nennerpolynoms p(s) = s+2. Warum genau dieser Eintrag benötigt wird, ist im Kapitel 3.2.1 detailliert erklärt. Die Darstellung von Polynomen in M A T L A B ist kurz in Kapitel 2.2.1 erläutert und ausführlich etwa in Grupp-Grupp [3]. Mit einem Doppelklick auf den SlMULlNK-Block To File öffnet man das Fenster Sink Block Parameters: Ausgabe speichern in (oder To File). Man trägt im Feld „File na-
1.2 Die lineare Differential- und Differenzengleichung erster Ordnung
23 WJ2J-*! I
Fl« El» Vbw Sm i ualtn ie Fwmat Tods Hep l • • pM ffi 0 ®i 11» a •3 # D ÜH3 ® £2
1
Die Differentialgleichung y'+2y=e < , y(0)=0
eu Mathe
1 eJ
s+2 Übertragungsfunktion
Ausgabe Lösung: yfÜ-e'-e"
Ausgabe speichern in DgiErsterOrd3Data.mat
SsK' Abb. 1.25: Zweites SlMULlNK-Modell ohne
iwit«'"
Rückkopplung
me" DglErster0rd3Data.mat ein und im Feld „Variable name" DglErster0rd3Aus, übernimmt mit Apply, schließt das Fenster mit O K und speichert das Modell DglErsterOrd3.mdl mit einem Klick auf das Diskettensymbol. Nun wird im Fenster DglErsterOrd3 mit Simulation —> Start das Modell ausgeführt. Mit einem Doppelklick auf den SlMULlNK-Block Ausgabe wird das Fenster Ausgabe geöffnet. Die Darstellung kann mit einem Klick auf das Fernglas (Autoscale) im Fenster Ausgabe optimiert werden. Es ist auch möglich, die Werte der Ausgabe im MATLAB-Workspace zu speichern. Im Fenster Ausgabe öffnet man mit einem Klick auf das zweite Symbol Parameters der Menüleiste das Fenster Ausgabe 'parameters'. Man wählt mit einem Klick die Option Data history, setzt dort mit einem Klick im Feld „Save data to workspace" den Haken, trägt im Feld „Variable name" DglErster0rd3w ein und wählt im Feld „Format" die Option Array. Man übernimmt die Eingaben mit Apply und schließt das Fenster mit OK. Man speichert erneut mit dem Diskettensymbol und führt das Modell nochmals Aktiviert man nun zunächst das MATLAB-Fenster und dann dort den Workspace, so findet man dort DglErster0rd3w, die Variable, unter der die Werte abgelegt wurden. Ebenso findet man im MATLAB-Fenster mit einem Klick auf Current Directory in diesem die Datei DglErster0rd3Data.mat, in der ebenfalls die Daten abgelegt wurden.
1 SIMULINK
24
Im anschließenden Kapitel und im Kapitel 2.2.1 wird erläutert, wie man auf diese Daten in MATLAB zugreifen kann. Da Differentialgleichungen in MATLAB ohnehin diskret gelöst werden, stellt sich die Frage, ob nicht schon die SLMULLNK-Modelle diskretisiert werden sollten. Dies wird in Kapitel 1.2.4 beschrieben.
1.2.3
Lösung einer Differentialgleichung mit Parametern
Die bisher in Kapitel 1.2 gelösten Differentialgleichungen enthielten keine Parameter. Nun betrachten wir ein Modell mit Parametern und erläutern, wie man diese Parameter ändern und von außen in das Modell einbringen kann. Die Differentialgleichung soll zunächst mit einer Rückkopplung gelöst werden, so dass Kenntnisse aus der LaplaceTransformation zum Verständnis dieses Modells nicht notwendig sind. Wir betrachten ein einfaches Beispiel aus der Elektrotechnik. Ein Ohm'scher Widerstand R und eine Induktivität L werden hintereinander geschaltet sowie eine Spannung u(t) = UQ sin(wt) angelegt. Die Schaltung wird beschrieben durch die Diffferentialgleichung Li' + Ri = UQ sin(wi) mit zunächst unbekannter Stromstärke i = i(t). Die mathematischen Erläuterungen findet man in Kapitel 3.2.1 (Beispiel 2). Abbildung 1.26 zeigt ein Modell zur Lösung dieser Differentialgleichung. Wie ein solches Modell erstellt wird, ist in den vorangegangenen Abschnitten — insbesondere in Kapitel 1.1 — ausführlich beschrieben. Neu ist, dass in den SLMULLNK-Blöcken Gain, Gainl, Gain2 und Sinus jetzt Parameter stehen und keine Zahlenwerte. Wie üblich öffnet man die SIMULLNK-Blöcke mit einem Doppelklick. Man gibt in die sich dann öffnenden Fenster Function Block Parameters: • Gain im Feld „Gain" 1/L, • Gainl im Feld „Gain" — R, • Gain2 im Feld „Gain" R, • Integrieren im Feld „Initial condition" 0, • Sinus im Feld „Frequeny (rad/sec)" omega, • To file im Feld „Variable name" DglParalAus und in „File name" DglParalData.mat ein. Letztere Eingabe ändert den Namen des SLMULINK-Blockes To File in DglParalData.mat. Das Modell wird schließlich unter dem Namen DglParal.mdl gespeichert. Im Modell-Fenster DglParal wählt man nun noch Simulation —> Configuration Parameters..., trägt im Feld „Stop time" 0.002 — das Ende der Simulation — und im Feld „Max step size" 0.00001 ein, um die Genauigkeit der Ergebnisse zu erhöhen und speichert nochmals (vgl. Abbildung 4.3).
1.2 Die lineare Differential- und Differenzengleichung erster Ordnung ^feîÇrî""'-". " He Edt View
D i B ä
Format
e
h Help
- t a
• « |örär : m
Ia«t*nda5ön]
»m
@ mit den Einheiten
H und ^ versehen.
Führt man nun das Modell aus dem Fenster DglParal mit Simulation —• Start aus, so erhält man nach einem Doppelklick auf den SIMULLNK-Block Ausgabe und einem sich anschließenden Klick im Fenster Ausgabe auf das Fernglas (Autoscale) die Abbildung 1.27. Die Ergebnisse werden in Kapitel 2.2.2 diskutiert. Es sei hier schon darauf hingewiesen, dass die Werte der Ausgabe auch in der Datei DglParalData.mat gespeichert sind unter dem Namen DglParalAus und so auf diese in MATLAB zugegriffen werden kann (siehe Kapitel 2.2.1 und Kapitel 2.2.2). Wenn die direkte Eingabe der Parameter im MATLAB Command Window die einzige Möglichkeit wäre, die Parameter zu definieren, könnte man sie auch direkt ins Modell eingeben. Es genügt aber, dass diese Daten im Workspace zur Verfügung stehen. Man kann daher auch mittels eines Script files oder eines function files in MATLAB die Daten zur Verfügung stellen. Dies eröffnet weitere Möglichkeiten, die wir im Kapitel 2.2.2
1 SIMULINK
26 I1 1 —HÜIIMiWIitii 'M M #§3 WWß> A H B S «
WWW1 III ' " "
Abb. 1.27: Ausgabe SIMULINK-Modell mit Parametern
-.ja«)
ohne
Rückkopplung
ausführlich erörtern. Tatsächlich kann man so auch die Simulation aus dem MATLAB Command Window starten, etwa mit »
simCDglParal')',
Zum Abschluss dieses Abschnitts wird noch ein SlMULlNK-Modell DglPara2.mdl ohne Rückkopplung für die Differentialgleichung jtu'a + ua = sin(wi) gegeben. Ersetzt man i(t) im ersten SlMULlNK-Modell durch ua(t) = Ri(t), der Spannung am Ohm'schen Widerstand R, so erhält man diese Differentialgleichung. Die Handhabung der Parameter und die Ausführung dieses Modells aus MATLAB ist in Kapitel 2.2.2 ausführlich beschrieben. In diesem SlMULlNK-Modell wird auf eine graphische Ausgabe über Scope verzichtet, denn dieses SlMULlNK-Modell soll mehrfach hintereinander ausgeführt werden und das Aufbereiten einer Graphik kostet ja bekanntlich Zeit. Ein Vergleich mit dem SlMULlNK-Modell mit Rückkopplung zeigt, dass die Verwendung des SIMULINKBlocks Transfer Fcn und die Verwendung der Laplace-Transformation eine deutlich kompaktere und übersichtlichere Darstellung des Sachverhalts zulässt. Eine ausführliche Beschreibung, wie die Parameter in das SlMULlNK-Modell aus MATLAB gebracht werden, und eine detaillierte Auswertung der Daten findet man in Kapitel 2.2.2.
1.2 Die lineare Differential- und Differenzengleichung erster Ordnung
Ffc £dt
D
vew StmjMxn Form*
Tods Heto
t *. -v J -
27 .101$
' • « P»Ö S • 0 • - » @ OS * Die Differentialgleichung
LR-1ua"(t)+ua(t)=sin(œt),
ua(0)=0
(mit R=10, L=0.001 und variablem •)
DglPara2Data.mat 10000 s+10000
VY Quelle
to Current Directory
Übertragungsfunktion
Abb. 1.28: Ausgabe SIMULINK-Modell mit Parametern
1.2.4
ohne
Rückkopplung
Lösung einer Differenzengleichung ohne Rückkopplung
Die Differenzengleichung Vk+1JTVk + 2yk = Xk — e~tk, yo = 0, die durch Diskretisierung aus der Differentialgleichung y' + 2y = e _ t , y(Q) = 0 entstanden ist, soll in einem neuen SLMULLNK-Modell gelöst werden. Man beachte hierzu im Kapitel 3.2.2 im Abschnitt z-Transformation das erste Beispiel und insbesondere die Formel (3.9). Zunächst muss die Zahlenfolge Xk erzeugt werden. Dies ist bereits im Abschnitt 1.1.2 beschrieben. Im MATLAB Command Window werden die folgenden Befehle eingegeben: » t = 0 : 0.1 : 10;
% t = [ 0 , 0 . 1 , 0 . 2 , 0 . 3 , . . . , 10]
» x = exp(-t);
% x = [exp(0), exp(—0.1), exp(—0.2),..., exp(—10)]
> A = [t; x];
% A i s t vom Typ ( 2 , 1 0 1 ) ;
»
save ExpDiskret.mat A
% Matrix A speichern
E x p D i s k r e t .mat dient als Input in unser Modell. Alternativ kann man obige Befehle (ohne » ) natürlich auch in ein script file schreiben und diese Datei ausführen. Man legt nun ein neues Modell an, zieht aus dem SIMULINK Library Browser die SLMULLNK-Blöcke From File aus Sources, Discrete Transfer Fcn aus Discrete, Scope aus
1 SIMULINK
28
H a Edt
Vew
SmiiflUon Format Tods
d öaa
e
Hefe
••, a = 3;b = 2; ab. Nun startet man das SlMULlNK-Modell aus dem Fenster DglZweiterOrd2 mittels Simulation —> Start oder einem Klick auf das schwarze Dreieck (Start Simulation) in der zweiten Menüleiste. Mit einem Doppelklick auf Ausgabe erhält man die Lösung y(t) der Differentialgleichung als Graphik in einem neuen Fenster mit dem Titel Ausgabe. Ein Klick auf das Symbol Fernglas reskaliert die Achsen. Das Ergebnis y(t) der Simulation wird auch in der Datei DglZweiter0rd2Data.mat unter dem Variablennamen DglZweiter0rd2Aus gespeichert, wenn diese zuvor entsprechend angepasst wurde. So können die Ergebnisse wie in Kapitel 2.3 bequem ausgewertet werden. Anwendungen Zwei klassische Anwendungen aus der Mechanik und der Elektrotechnik werden in Kapitel 3.3.1 erläutert. Wie man diese mit den obigen beiden Modellen lösen kann, ist dort ausführlich beschrieben. Das erste SlMULlNK-Modell kann, wie in Kapitel 3.3.1 unter dem Abschnitt Erläuterungen zu den SlMULlNK-Modellen beschrieben wird, für das Beispiel aus der Elektrotechnik nicht angewendet werden, da die Eingangsspannung, eine Rechteckspannung ue(t), nicht differenzierbar ist. Für das zweite SlMULlNK-Modell aus der Elektrotechnik muss die Ubertragungsfunktion angepasst werden, und zwar wie folgt. Man kopiere das SlMULlNK-Modell DglZweiterOrd2.mdl nach DglZweiterOrd3.mdl. Mit einem Doppelklick auf das SlMULlNK-Blockbild DglZweiterOrd2Data öffnet man das Fenster Function Block Parameter: To File, trägt DglZweiter0rd3Data.mat in „File name" und im Feld „Variable name" DglZweiter0rd3Aus ein, übernimmt mit Apply und schließt das Fenster mit OK. Ebenso öffnet man mit einem Doppelklick auf das SlMULlNK-Blockbild Ubertragungsfunktion das gleichnamige Fenster Function Block Parameters, trägt dann im Feld „Numerator coefficient" [E/L 0] und im Feld „Denominator coefßcient" [1 R/L 1 / ( L * C ) ] ein, die MATLAB-spezifischen Darstellungen des Zähler- und des Nennerpolynoms der Übertragungsfunktion H(s) (vgl. auch Kapitel 2.2.1 und Kapitel 3.3.1). Man übernimmt mit Apply und schließt das Fenster mit OK. Passt man noch die Beschriftung an, so erhält man Abbildung 1.33. Bevor wir das SIMULINK-Modell ausführen, müssen diesem die Parameter zur Verfügung gestellt werden, etwa im MATLAB Command Window mit R = 10; L = 10 A (—4); C = 1 0 A ( - 6 ) ; Andere Möglichkeiten, diese Parameter zur Verfügung zu stellen, findet man in Kapitel 2.2.2. Nach Ausführung des SlMULlNK-Modells mit Simulation —> Start kommt eine Fehlermeldung, wenn die Einstellungen der Simulationsparameter so gewählt werden wie im
1 SIMULINK
34 |RDgl2weiterOrd3 Fle E m psf" g • 0 & »a
B3
#
ISïrtjwtion stop time (0.00!)|
"'
.i—--'•-"-"-1
Der Reihenschwingkreis beschrieben durch
i' +(R/L)i +q/(LC) = u e (t)/L
Eingang
System
5et tfie struiaöon stopöme
Abb.
1.33:
Ausgang
• IÜ3Ö%
SiMULiNK-Mode/Z
ohne
• '-T""
V-.' '.V-' -
"
Rückkopplung
letzten Modell. Dies hat mit der Dimensionierung der Größen R, L und C zu tun. Wir erläutern die Gründe hierfür in Kapitel 3.3. Zunächst aber wollen wir unsere Simulation zur fehlerfreien Ausführung bringen. Durch einen Doppelklick auf das SiMULiNK-Blockbild Rechteckfunktion öffnet man das gleichnamige Fenster Function Block Parameters und trägt im Feld „Sample time" den Wert 0.000001 ein, ändert „Initial value" auf 5, übernimmt mit Apply und schließt das Fenster mit OK. Im Fenster DglZweiterOrd3 wählt man die Option Simulation —> Configuration Parameters... (vgl. Abbildung 4.3) und nimmt im sich dann öffnenden gleichnamigen Fenster Function Block Parameters einige Änderungen vor. Im linken (großen) Feld „Select" wählt man Solver, trägt unter Simulation time (rechts oben) im Feld „Stop time" 0.001 ein, wählt unter Solver Options im Feld „Type" Fixed-step und im Feld „Fixed-step size (fundamental sample time)" 0.000001. Man bestätigt mit Apply und schließt das Fenster mit OK. Die Ausgabe ist in Abbildung 1.34 dargestellt. Falls die Graphik nur einen Teil der oberen Graphik enthält, sollte im Fenster Ausgabe das zweite Symbol Parameters angeklickt, unter Data history im Feld „Limit data points to last" der Haken gesetzt und im zugehörigen Feld die Zahl angepasst werden (etwa auf 50000). Dann sollte das SlMULlNK-Modell erneut gestartet, auf Ausgabe ein Doppelklick ausgeführt und gegebenenfalls im sich dann öffnenden Fenster das Symbol Fernglas (Auto-scale angeklickt werden.
1.3 Die Differential- und Differenzengleichung zweiter Ordnung
Abb. 1.34-' Ausgabe des SIMULINK-Modells ohne
35
Rückkopplung
Bemerkung Auf SlMULiNK-Modelle zu linearen Differentialgleichungen höherer Ordnung mit konstanten Koeffizienten wird hier verzichtet. Es ist naheliegend, wie die SlMULiNK-Modelle in den Abbildungen 1.31 und 1.32 anzupassen sind.
1.3.2
Lösung der allgemeinen Differentialgleichung zweiter Ordnung
Da im letzten Abschnitt die lineare Differentialgleichung zweiter Ordnung mit konstanten Koeffizienten behandelt wurde, werden hier solche Differentialgleichungen behandelt, die nicht von diesem Typ sind. Ein Beispiel aus der Elektrotechnik, die van der Pol'sche Differentialgleichung, ist in einem Spezialfall in Grupp-Grupp [3] mit MATLAB gelöst. In der MATLAB-Hilfe mit dem gelben Fragezeichen findet man ein SlMULiNK-Modell über den Help-Navigator, wenn man Search wählt und im Feld „Search index for" das Stichwort van der Pol example eingibt. Die van der Pol'sche Differentialgleichung ist ein Beispiel für ein so genanntes steifes Problem im Rahmen von Differentialgleichungen.
1 SIMULINK
36
Wir betrachten nun das wohlbekannte mathematische Pendel. Dieses wird allgemein beschrieben durch die Differentialgleichung " + lüq sin{) — 0. Hier wählen wir die Anfangswerte (¡>{0) = 0 und '{0) = 0.2. Die Bezeichnungen stammen aus Heuser [5]. Die mathematischen Erläuterungen werden in Kapitel 3.3.2 gegeben, die Auswertung der Daten findet man im Kapitel 2.3.2. Es wird ein neues SlMULlNK-Modell DglZweiterOrd4.mdl erstellt, das in Abbildung 1.35 dargestellt ist. Eine detaillierte Beschreibung, wie die SlMULiNK-Blöcke und die Pfeile gezogen und wie die Beschriftungen erstellt werden, ist ausführlich in Kapitel 1.1 gegeben. Man achte darauf, dass der SlMULlNK-Block Sinus aus der Bibliothek Math Functions (und nicht aus Source) gezogen wird, da auch ein Eingang in diesen SlMULlNK-Block benötigt wird. M E & y B i ! * He Cd» a l p h a l = 0.08; alpha2 = 1; b e t a l = 0.00001; b e t a 2 = 0.002; Geschickter ist es, Teile des SiMULiNK-Modells als Subsysteme zu vereinbaren. Man klickt einen Punkt im Fenster DglSysteme4 an, zieht die Maus über einige S I M U L I N K Blöcke, so dass diese als aktiv markiert sind. In der Menüzeile wählt man Edit —> Create Subsystem. Man erhält dann in einem neuen Fenster die ausgewählten SIMULINK-Blöcke mit den Pfeilen. Diese kann man nun nachbearbeiten. In unserem Modell wurden drei solcher Subsysteme kreiert, die in den Abbildungen 1.46 bis 1.48 gegeben sind. Die Ergebnisse werden in Kapitel 2.4.2 analysiert.
1.4 Systeme von Differentialgleichungen
47 -lol»l
Ffc Et« View SmJatìan format Tools
• isaa
H*
p £ .,• $
• « pcT"
' S
0'® •• » am«
100%
»H»
Abb. 1-44: Erstes SIMULINK-Modell für das
MI MUMM O liU:f Ffc Edt Vkn
' '*""* "
Räuber-Beute-Modell
MMRI
Stmiatnn Famst
Tods Heb
e §U- -i
» • ¡äo (g ••: 0 ®
»SB*
Istart rifmiatünl
Rauber-Beute-Modell
Abb. 1.45: Zweites
SlMULiNK-AfodeZZ
für das
«WS
Räuber-Beute-Modell
-IQIxl
48
1
SIMULINK
Dot Product!
Abb. I.46:
Zweites SiMUiANK-Modell
für das Räuber-Beute-Modell,
Subsystem
Constantt
Abb. 1.47:
Zweites SIMULINK-Modell für das Räuber-Beute-Modell,
Subsystem
1
Abb. I.48:
Zweites
SiMUUNK-Modell für das Räuber-Beute-Modell,
Subsystem
2
2
MATLAB
2.1
Grundlagen
In diesem Kapitel werden alle im Kapitel zuvor mit SLMULINK gelösten Beispiele direkt in MATLAB geschrieben. Dabei sollten die Programme möglichst kurz gehalten werden. Natürlich ist es möglich, die Achsen zu beschriften, eine Überschrift, eine Legende, Text einzufügen etc. Interessierte Leser mögen etwa in Grupp-Grupp ([3]) oder der MATLABHilfe nachschlagen. Die mathematischen Erläuterungen findet man in den jeweiligen Abschnitten des nächsten Kapitels.
2.1.1
Funktionen skizzieren
Im Intervall [0,10] soll die Funktion x(t) = e~ 0/2t • sin(i) skizziert werden. Man gibt die folgenden Befehle im MATLAB Command Window ein oder schreibt die Befehle (ohne das Zeichen in eine Datei und führt diese Datei dann aus: > a = 0; b = 10; n = 1000; h = (b - a)/n;
%t = [0,h,2h,..., 10] » x = exp(—0.2 * t ) . * s i n ( t ) ; %x = [0, exp(-0.2h)sin(h),...] » plot(t,x) » t = a:h:b;
Man beachte, dass exp(—0.2 * t) und sin(i) Vektoren mit ebenso vielen Elementen sind wie t. Um sie komponentenweise zu multiplizieren, braucht man den Operanden .*, um t mit —0.2 zu multiplizieren, genügt der Operand *.
2.1.2
Funktionen differenzieren
Im Intervall [0,10] soll die Funktion f(t) = 1 + 2sin(27rf + j ) differenziert und skizziert werden. Dabei soll numerisch diffferenziert werden (vgl. Kapitel 3.1.2). > a = 0; b = 10; n = 1000; h = (b - a)/n; » t = a:h:b;
% t = [ t ( l ) , t ( 2 ) , . . . , t ( n + 1)] ; t ( l ) = 0; t(2) = h
» v = t ( [ i : l e n g t h ( t ) - 1]);
%v = [ t ( l ) , t ( 2 ) , ...,t(n)]
» x = l + 2*sin(2*pi*t+pi/4); > y = dif f (x)/h;
% x = [x(t(l)),..., x(t(n + 1))]
% d i f f (x) = [x(t(2)) - x ( t ( l ) ) , x(t(3)) - x(t(2)),...]
>plot(t,x,'r',v,y,'b')
2 MATLAB
50
Man beachte, dass der Vektor d i f f (x) ein Element weniger hat als der Vektor x. Daher benötigt man zur Skizze der Ableitung y den Vektor v. Hier sei noch eine Anmerkung zu Kapitel 1.1.2 gemacht. Die Ausgabedaten wurden in Dif f e r e n z i e r e n D a t a in Form eines array gespeichert und können mit dem MATLABBefehl (im MATLAB Command Window) p l o t ( D i f f e r e n z i e r e n D a t a ( : , l ) , D i f f e r e n z i e r e n D a t a ( : , [2 : 3])) wieder in einem Fenster mit Namen Figure dargestellt werden. Skizziert werden in einem Fenster 1 + 2sin(27ri + f ) und 47rcos(27rf + f ) über t.
2.1.3
Funktionen integrieren
Im Intervall [0,27r] soll die Funktion x(t) = 1 + 2sin(2-7rf + integriert und skizziert werden. Dabei soll numerisch integriert werden (vgl. Kapitel 3.1.3). > a = 0; b = 2 * p i ; n = 1000; h = (b - a)/n; > t = a:h:b;
% t = [ t ( l ) , t ( 2 ) , . . . , t ( n + l)] ; t ( l ) = 0 ; t ( 2 ) = h
» x = 1 + 2 * sin(2 * pi * t + pi/4); > yO = 0;
% x = [x(t(l)), x ( t ( 2 ) ) , . . . , x ( t ( n + 1))]
% Anfangswert y(0) = 0
» y = h * cumsum(x) + yO;
% cumsum(x) = [x(t(l)), x ( t ( l ) ) + x(t(2)),...]
>plot(t,x/r',t,y/b')
2.2
Die lineare Differential- und Differenzengleichung erster Ordnung
2.2.1
Lösung der linearen Differentialgleichung
Die Differentialgleichung y' = - 2 y + e~t, y(0) = 0 aus Kapitel 1.2.1 (zweites SlMULlNKModell) soll im Intervall [0,10] numerisch gelöst werden. Hierzu schreibe man zunächst ein Script file DglOrdlLoesen.m (Zeichen » weglassen), etwa wie folgt: tO = 0; tEnde = 10; yO = 0; [t, y] = ode45(Dgl0rdlDef, [tO, tEnde], yO); p l o t ( t , y,' r - ' , t , e x p ( - t ) - e x p ( - 2 * t ) , ' b :'); Natürlich fehlt hier noch die Definition der zu lösenden Differentialgleichung. Dies geschieht im function file DglOrdlDef .m. f u n c t i o n y S t r i c h = DglOrdlDef (t, y) y S t r i c h = — 2 * y + exp(—t); Nun führe man das Script file DglOrdlLoesen aus.
2.2 Die lineare Differential- und Differenzengleichung erster Ordnung
51
Zur Kontrolle wird nicht nur die numerische Lösung der Differentialgleichung (in rot) sondern auch die exakte Lösung y(t) = e _ t - e~2t (in blau) skizziert. Beide Lösungen unterscheiden sich optisch in der Graphik nicht, solange Teile der Graphik nicht mit der Lupe vergrößert werden. P o l y n o m e in MATLAB darstellen In SLMULLNK wurde diese Differentialgleichung ohne Rückkopplung mit dem SIMULINKBlock Transfer Fcn gelöst. Dabei musste im Fenster Function Block Parameters: Transfer Fcn die rationale Übertragungsfunktion eingegeben werden. Im Feld „Numerator coefficients" und im Feld „Denomenator coefficients" müssen die Koeffizienten des Zählerpolynoms und des Nennerpolynoms eingegeben werden. Die MATLAB-spezifische Schreibweise für ein Polynom erfolgt durch Angabe der Koeffizienten (fallend nach Potenzen) in eckigen Klammern. So wird etwa das Polynom p(x) = x3 — Ax + 3 durch p = [1,0, - 4 , 3 ] (oder p = [1 0 - 4 3]) in MATLAB dargestellt. Eine Skizze des Polynoms im Intervall [0,2] erhält man durch Eingabe der folgenden Befehle im MATLAB Command Window > p = [1,0,-4,3];
%p(x) = X 3 - 4 X + 3
» t = 0 : 0.01 : 2;
% t = [0,0.01,0.02,..., 2]
> f =polyval(p,t);
%f = [p(0),p(0.01), ...,p(2)]
>plot(t,f) Alternativ kann man die Befehle (ohne das Zeichen » ) in ein script file schreiben und diese Datei dann ausführen. SIMULINK-Modell-Ergebnisse in MATLAB d a r s t e l l e n
In Kapitel 1.2.2 wurde die Ausgabe des zweiten SLMULINK-Modells auf zwei verschiedene Arten gespeichert, einmal im Ausgabefenster von Scope über die Option Parameters unter DglErster0rd3w im Workspace und einmal über den ursprünglichen SIMULINKBlock untitled.mat, der nach Eingabe von DglErster0rd3Data.mat umbenannt wurde. DglErsterOrd3w ist eine Matrix vom Typ (1004,2), wie man der zweiten Spalte im Workspace, einem Teilfenster im MATLAB-Fenster, entnimmt. Die erste Spalte dieser Matrix enthält die Zeittaktung des SlMULiNK-Modells, die zweite die zugehörige Rückgabegröße y(t). Auf die Daten DglErster0rd3w kann direkt zugegriffen werden und man kann die Ergebnisse des Modells wie folgt in einem MATLAB-Fenster darstellen. » p l o t ( D g l E r s t er0rd3w(:, 1), DglErster0rd3w(:, 2)) Die Ausgabedaten stehen auch in der Datei DglErster0rd3Data.mat im Current Directory. Diese Datei muss nun zunächst mit load geöffnet werden. Dann stehen in der Matrix DglErster0rd3Aus vom Typ (2,1004) - diese wurde so im SLMULLNK-Modell definiert — in der ersten Zeile die Zeittaktung und in der zweiten Zeile die Rückgabegrößen. Mit den folgenden beiden Befehlen kann dann wieder in einem MATLAB-Fenster
2 MATLAB
52 die Funktion y(t) skizziert werden: > load DglErster0rd3Data.mat > plot(DglErster0rd3Aus(1, :),DglErster0rd3Aus(2,:))
Hier ist zu beachten, dass DglErster0rd3w eine Matrix vom Typ (1004,2) und dass DglErster0rd3Aus eine Matrix vom Typ (2,1004) ist. Dies erklärt die unterschiedliche Verwendung des Doppelpunkts (einmal als erstes und einmal als zweites Argument) in den Befehlen.
2.2.2
Modelle der Differentialgleichung mit Parametern
Direkte Lösung mit MATLAB Die Differentialgleichung in Kapitel 1.2.1 wurde in Kapitel 2.2.1 mit MATLAB unter der Verwendung eines Script files und eines function files gelöst. Mittels anonymer Funktionen ist es möglich, die Definition und die Lösung der Differentialgleichung in einer Datei durchzuführen. Man gebe hierzu im MATLAB Command Window die nachfolgenden Befehle ein oder schreibe diese ohne das Zeichen » in ein script file, etwa DglOrdlEinFile.mgenannt, und führe dieses dann aus. » tO = 0; tEnde = 0.002; yO = 0; » R = 10; L = 0.001; uO = 1; w = 10 A 4; > f = @ ( t , y) (—R/L) * y + (uO/L) * sin(w * t ) ; %f a l s anonyme Funktion » [t,y] = ode45(f, [tO, tEnde], yO); » p l o t ( t , y * R/ r - ' , t , uO * sin(w * t ) , ' b - ' ) ; Bereitstellung der P a r a m e t e r für das SIMULINK-Modell in MATLAB Die Daten für R, L und omega müssen dem Modell DglParal.mdl im Workspace zur Verfügung gestellt werden, bevor das Modell ausgeführt werden kann. Folgende drei Möglichkeiten bieten sich an: • Eingabe der Werte direkt im MATLAB Command Window, • Verwendung eines script files, • Verwendung eines function files. Die Möglichkeit, direkt im MATLAB Command Window mit » R = 10; L = 0.001; omega = 10 A 4; diese Daten in den Workspace zu bringen, wurde schon im Kapitel 1.2.3 erläutert. Falls daran gedacht ist, R, L oder omega vor der Verwendung mittels Formeln zu bestimmen, sei angeraten, diese Formeln innerhalb eines script files oder eines function
2.2 Die lineare Differential- und Differenzengleichung erster Ordnung
53
files zu berechnen. Nimmt man an, dass R aus der Formel R = RQ(1 + A(T - T0)) mit festen Konstanten T 0 und RO (Widerstand zur Temperatur T 0 ) und Parametern T (Temperatur) und a (Materialkonstante) berechnet werden soll, so könnte ein Script file D g l P a r a l S c r i p t l .m wie folgt aussehen 1 RO = 10; L = 0.001; omega = 10 A 4; alpha = 0.0001; TO = 273; T = 293; R = R0 * (1 + alpha* (T - TO)); sim('DglParal')
Mit dem letzten Befehl im script file wird das SLMULLNK-Modell aus M A T L A B gestartet. Bevor das script file gestartet wird, stellen wir sicher, dass R, L und omega im Workspace von M A T L A B nicht zur Verfügung stehen. Im M A T L A B Command Window wird daher der Befehl clear R L omega
ausgeführt. Man prüft jetzt etwa mit der Eingabe » R
— es kommt eine Fehlermeldung im M A T L A B Command Window —, dass R im Workspace nicht verfügbar ist. Nun wird mit der Eingabe »
DglParalScriptl
im M A T L A B Command Window das script file ausgeführt. Es sei angemerkt, dass das SlMULlNK-Modell DglParal.mdl hierzu nicht geöffnet sein muss. (Für bequemere Möglichkeiten, das script file auszuführen, beachte man Grupp-Grupp [3].) Man überzeugt sich nun leicht, dass R, L und omega zur Verfügung stehen und das Modell DglParal.mdl ausgeführt wurde. Geschickter wäre es vielleicht, ein function file DglParalFunction.mzu schreiben, das mit frei wählbaren Parametern für T und A aufgerufen werden könnte. Dies kann aber tückisch sein. DglParalFunction.m könnte wie folgt aussehen: 2 function [R, L, omega] = DglParalFunction(Temp, MatKonst) R0 = 10; TO = 273;
% Konstante
R = R0 * (1 + MatKonst * (Temp - TO)); L = 0.001; omega = 10 A 4; % sim('DglParal') ' E s sei daran erinnert, dass in script files die Eingabe der MATLAB-Befehle ohne das Zeichen erfolgt. 2 E s sei d a r a n erinnert, dass in function files die Eingabe der MATLAB-Befehle ohne das Zeichen erfolgt.
» »
2
54
MATLAB
Bevor DglParalFunction.m ausgeführt wird, sei hier kurz das Wichtigste zu function files beschrieben. Ein function file beginnt (abgesehen von Kommentaren) mit dem Schlüsselwort function, danach kommen die Rückgabegrößen in eckigen Klammern durch Kommata getrennt, dann das Gleichheitszeichen gefolgt vom Dateinamen mit anschließenden Eingabegrößen in runden Klammern durch Kommata getrennt. Die in der eckigen Klammer stehenden Rückgabegrößen müssen im function file wenigstens einmal zugewiesen werden. Alle Variablen innerhalb des function files sind lokale Variablen, sind also außerhalb des function files nicht bekannt. Die letzte Zeile des function files ist bewusst auskommentiert. Wir gehen darauf weiter unten ein. Zunächst werden die Variablen R, L und omega wieder gelöscht mit clear R L omega
Nun wird das function file DglParalFunction.m aus dem ausgeführt mit >
MATLAB
Command Window
[R, L, omega] = DglParalFunction(300,0.0001)
Jetzt stehen R, L und omega im Workspace und das SLMULLNK-Modell kann aus dem Fenster DglParal mit Simulation —> Start oder aus dem MATLAB Command Window mit »
sim('DglParal')
erfolgen. Naheliegender scheint es zu sein, im function file DglParalFunction.m den Kommentar der letzten Zeile zu entfernen, dann das file zu speichern und auszuführen. Zuvor werden aber wieder R, L und omega aus dem workspace gelöscht mit clear R L omega
Dann setzt man den Befehl »
[R,L, omega] = DglParalFunction(300,0.0001)
ab. Das Modell wird nicht ausgeführt! Vielmehr erscheint im MATLAB Command Window eine Fehlermeldung! Dies ist wie folgt zu erklären. Obwohl in DglParalFunction.m vor der Ausführung des Befehls sim( 'DglParal') die Größen R, L und omega zugewiesen werden, stehen diese nicht im Workspace, was zur Ausführung der Simulation aber notwendig wäre. Es sei daran erinnert, dass Variablen in function files lokale Variablen sind, also als solche nicht außerhalb des function files zur Verfügung stehen. Eine Lösung des Problems könnte wie folgt aussehen. Man erstellt ein weiteres script file DglParalScript2.m, in dem man das function file aufruft, bevor man die Simulation ausführt, etwa [R, L, omega] = DglParalFunction(300,0.0001); sim('DglParal');
2.2 Die lineare Differential- und Differenzengleichung erster Ordnung
55
Im function file muss hierbei die letzte Zeile s i m ( ' D g l P a r a l ' ) natürlich auskommentiert sein. Man achte auch auf Gross- und Kleinschreibung. In DglParalFunction.m sei die letzte Zeile s i m ( ' D g l P a r a l ' ) ; auskommentiert. Zur Demonstration werden die Variablen nochmals gelöscht mit c l e a r R L 1 omega Dann wird der Befehl > [R,l, omega] = DglParalFunction(300,0.0001) abgesetzt und das SlMULINK-Modell ausgeführt mit
»
sim('DglParal')
Nun erscheint die Fehlermeldung, dass L nicht im Workspace zur Verfügung steht. Rückgabewerte des SlMULlNK-Modells mit Rückkopplung
Die Ausgabedaten des Modells DglParal.mdl wurden in der Datei DglParalData.mat unter dem Variablennamen DglParalAus gespeichert (vgl. Kapitel 1.2.3). Mit » load DglParalData werden die gespeicherten Werte im Workspace unter DglParalAus — einer Matrix vom Typ (3,201) — zur Verfügung gestellt. Am Ende des Kapitels 2.2.1 wurde erklärt, wie man diese Daten in MATLAB weiter verwenden kann, etwa zur graphischen Aufbereitung. In der ersten Zeile dieser Matrix steht (diskretisiert) die Zeit, in der zweiten Zeile die zu diesen Zeitpunkten gehörende Eingangsfunktion u(t) = sin(wi) in das Modell und in der dritten Zeile die Rückgabegröße aus dem Modell zu diesen Zeitpunkten. Die Daten des Modells können im Workspace auch auf eine andere Art und Weise zur Verfügung gestellt werden, und zwar mit » [t,x] = sim('DglParal') Man achte darauf, dass vor der Ausführung der Simulation dieser die Parameter R, L und omega zu Verfügung gestellt werden. Bei den Rückgabegrößen besteht ein kleiner Unterschied zwischen x, der Rückgabegröße aus obigem sim-Befehl und der dritten Zeile der Matrix DglParalAus. Beide unterscheiden sich 3 um den Faktor R, da über den sim-Befehl die Modellgröße i(t), über DglParalAus ( 3 , : ) jedoch Ri(t) ausgegeben wird. 3
Weiterer formaler Unterschied: x ist ein Spaltenvektor und DglParalAus ( 3 , : ) ein Zeilenvektor.
2 MATLAB
56
Auswertung der Rückgabewerte des SiMULINK-Modells mit Rückkopplung Jetzt wird zunächst angestrebt, die Übertragungsfunktion H(s) = R+Ls mit R = 10, L = 0.001 an der Stelle s = j • omega mit omega = 10 A 4 allein aus den Daten des SiMULINK-Modells DglParal.mdl zu bestimmen. Man beachte die Formeln (3.6) und (3.7). \H(ju)\ ist der Quotient aus dem Maximum von ua(t) (in unserem SlMULlNK-Modell die dritte Zeile von DglParalAus) und dem Maximum von u(t) (in unserem SlMULlNK-Modell die zweite Zeile von DglParalAus), wenn der Einschaltvorgang beendet ist. Mit den folgenden Befehlen bestimmt man diesen Quotienten (DglParalScript3.m) load DglParalData A = DglParalAus;
% Modell beachten % zur Abkuerzung
B = A(2 : 3,round(size(A, 2)/2) : size(A,2)); maxOut = max(ß');
% max spaltenweise bilden fuer B transponiert
Uebertragungsfunktion = max0ut(2)/max0ut(l)
Im SlMULlNK-Modell ist DglParalAus diejenige Matrix, unter der die in der Datei DglParalData.mat gespeicherten Ausgabedaten nach load zugänglich sind. Die Matrix B entsteht aus der Matrix A wie folgt: Mit B=A( [2:3],... werden zunächst die zweite und dritte Zeile von A herausgeschnitten. Von diesen Zeilen werden nur etwa die Hälfte der Spalten gewählt ab der (gerundeten) Mitte bis zur letzten Spalte der Matrix, um nur die Daten ohne den Einschaltvorgang zu erfassen. Der mit dem Modell berechnete Wert für die Übertragungsfunktion stimmt mit dem theoretischen Wert aus Kapitel 3 im Rahmen der Genauigkeit (Zeitdiskretisierung) überein. Das Herausschneiden des Einschaltvorgangs aus den Ausgangsdaten ist nicht sehr transparent. Im nächsten SIMULINK-Modell werden diese Ausgangsdaten schon im S I M U L I N K Modell selbst so vorbereitet, dass sie ohne den Einschaltvorgang zur Auswertung der Daten zur Verfügung stehen. Interessant im Hinblick auf die Ubertragungsfunktion wäre es, diese für verschiedene Werte von omega zu bestimmen, um die Ubertragungsfunktion dann allein mit Ergebnissen aus dem SlMULlNK-Modell graphisch darzustellen, etwa in Form einer Ortskurve oder eines Bodediagramms. In diesem Abschnitt wird nur der Betrag der Übertragungsfunktion bestimmt, nicht das Argument also der zugehörige Winkel. Eine einfache Ergänzung des folgenden script files würde es ermöglichen, auch auf das Argument zugreifen können.
2.2 Die lineare Differential- und Differenzengleichung erster Ordnung
57
Das SlMULlNK-Modell ohne Rückkopplung DglPara2 .mdl wird v o m folgenden Script file DglPara2Script .m aus gestartet. % Initialisierung
% N = 6; UeFunk = zeros(l, N); % Betrag der Uebertragungsfunktion
% % Schleife ueber die Kreisfrequenz
% f or k = 1 : N
% % Parameter des Simulink — Modells
% omega = 10 A k; Optionen = simset('MaxStep', 1/(100 * omega)/RelTol', 0.0001); DauerDerSimulation = [0.1,0.1 + 70 * pi/omega];
% % Simulink — Modell ausfuehren
% [t,x] = sim('DglPara2', DauerDerSimulation, Optionen);
% % Auswertung der Ergebnisse
% % % % load DglPara2Data.mat % siehe Modell %%%
a
= DglPara2Aus(3,:); % Variable name im Modell
% % % UeFunk(k) = max(a'); UeFunk(k) = 10 A 4 * max(x); end;
% % Graphische Darstellung
% wl = logspace(l, 6,6); w = logspace(l, 6,101); H = l./(l + j * w/10000); semilogx(w, 20* logl0(abs(H))/r-',wl,20* logl0(UeFunk)/b*') legend(3,'theoretische Übertragungsfunktion',' Werte aus dem Modell')
58
2
MATLAB
Hier noch einige Anmerkungen zu obigem Programm. Der Befehl s im ( ' M o d e l l n a m e ' ) führt bekanntlich das genannte Modell aus. Hier wird er mit den beiden Rückgabegrößen t und x, die wir bereits im letzten SiMULiNK-Modell erläutert haben, und drei Eingangsgrößen aufgerufen. Eine detaillierte Beschreibung aller möglichen Eingangsund Rückgabegrößen findet man in der MATLAB-Hilfe zum Befehl sim. Hier erläutern wir die Eingangsgrößen unseres Modells. Die erste Eingangsgröße des sim-Befehls ist — in Hochkommata — das auszuführende Modell, die weiteren Größen sind optional. Die zweite Eingangsgröße DauerDerSimulation enthält in eckigen Klammern den Beginn und das Ende der Simulation. Sie kann auch im Modell-Fenster DglPara2 über Simulation —> ConfigurationParameter... in den Feldern zu Simulation time eingegeben werden (vgl. Abbildung 4.3). Hier ist es geschickter, sie als Parameter dem Modell mitzugeben, da das Ende der Simulation abhängig von omega gewählt wird. Die auf den ersten Blick scheinbar merkwürdige Wahl des Zeitintervalls wird weiter unten erläutert. Die dritte Eingangsgröße Optionen wird (wie die zweite) vor dem sim-Befehl definiert. Über simset können zahlreiche Parameter für das SiMULiNK-Modell festgelegt werden. Eine vollständige Darstellung findet man in der MATLAB-Hilfe. Hier haben wir nur zwei Optionen benannt, die maximale Schrittweite MaxStep und die relative Genauigkeit R e l T o l . In simset werden mehrere Optionen durch Kommata getrennt, wobei jede einzelne Option aus zwei Größen besteht. Erstere legt die Art der Option fest (in Hochkommata), zweitere den zugehörigen Wert. Nun noch ein paar Erläuterungen zur Wahl der Größenordnung der Parameter. Im Kapitel 3.2.1 wird im Abschnitt Laplace-Transformation (Beispiel 2) das SlMULlNKModell mittels der Übertragungsfunktion beschrieben. Beachtet man (3.5), so ist der Rest betragsmäßig < e _ o o o o u . Dieser Rest sollte zur Auswertung der Daten (fast) null sein, denn der Einschaltvorgang soll (wegen der Datenauswertung) beendet sein. Für die Intervalllänge der Simulation beachte man die Kreisfrequenz omega in der Rückgabegröße und richte das Intervall so ein, dass genügend viele Werte zur Bestimmung des gesuchten Maximums berechnet werden. Danach richten sich auch die Parameter MaxStep und RelTol. Natürlich wäre es einfach, eine möglichst hohe Genauigkeit anzustreben, aber dies bezahlt man mit einer langen Rechenzeit. Der Benutzer von SlMULlNK sollte hier mit etwas Geduld einige Versuche unternehmen. Eine weitere Bemerkung sollte zum Abschnitt Auswertung der Ergebnisse im Programm gemacht werden. In der Zeile UeFunk(k)=10 A 4 *max(x) muss der Faktor 10 A 4. stehen. Man ändere etwa in der Ubertragungsfunktion im Modell D g l P a r a l . m d l den Zähler von 10000 zu 1 und starte das Modell erneut. Man bemerkt dann, dass diese Konstante im Zähler keinen Einfluss auf die Ausgabe x hat. Aktiviert man hingegen die drei Programmierzeilen mit %%% und kommentiert UeFunk(k)=10A 4 *max(x) aus, so stellt man leicht fest, dass die Konstante im Zähler der Übertragungsfunktion sehr wohl Eingang in die Ergebnisse findet. Die Erläuterung zu den Befehlen im Teil Graphische Darstellung des Script files findet man in Grupp-Grupp [3]. In Abbildung 2.1 sind die Ergebnisse dargestellt.
2.2 Die lineare Differential- und Differenzengleichung erster Ordnung
59
Abb. 2.1: Ausgabe des Script files DglPara2Script.m
2.2.3
Lösung der linearen Differenzengleichung
In Kapitel 1.2.4 wurde die Differenzengleichung yk+^TVk + 2 y k = xk = e~kT, yo = 0, mit einem diskreten Modell gelöst. Diese Differenzengleichung wird hier mit den folgenden MATLAB-Befehlen gelöst, die etwa in einem script file Dif fErsterOrdScript .m gespeichert sind (daher kein » ) .
clear y T = 0.1;
% Schrittweite
t = 0 : T : 10; y0 = 0; y(l) = T; for k = 1 : length(t) - 2 y(k + 1) - y(k) * ( 1 - 2 * T ) + T * exp(-k * T); end
% D.gleichung
2 MATLAB
60 s t a i r s ( t , [y0,y]/r—') hold on plot(DiffErsterOrdw(:, l),DiffErsterOrdw(:, 2 ) , ' b - ' ) hold off
Abb. 2.2: Ausgabe des script
files
DiffErsterOrdScript.m
Es sei darauf hingewiesen, dass die Indizierung von Vektoren in MATLAB mit 1 beginnt. Die direkte Lösung der Differenzengleichung mit MATLAB wurde treppenartig (in rot) skizziert mit dem Befehl s t a i r s , wohingegen zum Vergleich die Ausgabedaten Dif f ErsterOrdw aus dem diskreten Modell DifTErsterOrd.mdl als quasistetige Funktion (in blau) mit dem Befehl p l o t skizziert wurde. Natürlich wäre es auch möglich, die Lösung der Differenzengleichung mit MATLAB unter Verwendung von (3.10) zu skizzieren.
2.3 Die Differential- und Differenzengleichung zweiter Ordnung
2.3
Die Differential- und Differenzengleichung zweiter Ordnung
2.3.1
Lösung der linearen Differentialgleichung mit konstanten Koeffizienten
61
In Kapitel 1.3.1 werden zwei SlMULiNK-Modelle zur Lösung der linearen Differentialgleichung zweiter Ordnung mit konstanten Koeffizienten präsentiert. Beide liefern dieselbe Lösung y(t), wie man leicht mit folgendem Script file DglZweiterOrdScriptl.m überprüft:
load DglZweiterOrdlData.mat load DglZweiter0rd2Data.mat plot(DglZweiterOrdlAus(1,:), DglZweiter0rdlAus(2, : ) , ' r - ' ) ; hold on plot(DglZweiter0rd2Aus(1, :),DglZweiter0rd2Aus(2, : ) / b :'); hold o f f
Mit einem zweiten Script file DglZweiter0rdScript2.müberprüft man die Ubereinstimmung der theoretischen Ergebnisse aus Kapitel 3.3 (Formel (3.15)) und der Ergebnisse aus dem zweiten SiMULiNK-Modell.
load DglZweiter0rd2Data.mat plot(DglZweiter0rd2Aus(l, :),DglZweiter0rd2Aus(2, : ) , ' r - ' ) ; hold on t = 0 : 0.001 : 3; h = exp(—t) — exp(—2 * t ) ; p l o t ( t , h / b :') hold off
Die Ergebnisse der Dateien DglZweiterOrdScriptl .m und DglZweiter0rdScript2.m sind hier nicht abgebildet. Auf eine Lösung der Differentialgleichung direkt in MATLAB wird an dieser Stelle verzichtet. Es soll aber darauf hingewiesen werden, dass Differentialgleichungen zweiter Ordnung in ein System von Differentialgleichungen erster Ordnung umgeschrieben werden müssen, damit die entsprechenden MATLAB-Befehle angewendet werden können.
62
2.3.2
2 MATLAB
Lösung der allgemeinen Differentialgleichung zweiter Ordnung
Die Ergebnisse aus dem SiMULlNK-Modell D g l Z w e i t e r O r d 4 . m d l zur Lösung 4>{t) — in Abbildung 2.3 exakte Lösung (j> genannt — der Differentialgleichung = 0 ,
0) = 0 , V'(0) = 0.2.
Für kleine Auslenkungen DiffZweiterOrdlAus(l, 1: 4)
2.4 Systeme von Differentialgleichungen
65
der die Antwort
ans = 0 ,1 ,2 ,3 bringt.
2.4
Systeme von Differentialgleichungen
2.4.1
Systeme mit konstanten Koeffizienten
Erstes SiMULiNK-Modell für Systeme In Kapitel 1.4.1 werden zwei SlMULlNK-Modelle zur Lösung des ersten Systems von Differentialgleichungen gegeben. Beide liefern dieselbe Lösung y(t). Dies überprüft man mit folgendem Script file D g l S y s t e m e l S c r i p t .m, dessen Ergebnisse in Abbildung 2.5 dargestellt sind. Zur Kontrolle sind die exakten Ergebnisse mit + eingezeichnet. Man kommentiere die eine oder andere Zeile in DglSystemelScript.maus, damit nicht alle Kurven skizziert werden.
%
DglSystemelScript.m
load DglSystemelData.mat load DglSystemelaData.mat plot(DglSystemelAus(l,:), DglSystemelAus(2, :)/r :') hold on plot(DglSystemelaAus(l,:), DglSystemelaAus(2, :),'r-') plot(DglSystemelAus(l,:), DglSystemelAus(3, :),'b :') plot(DglSysteme 1 aAus(1,:), DglSystemelaAus(3, :)/b—')
% %
Zum Vergleich die theoretische Loesung
t = 0 : 0.3 : 3; yl = 3/2 * t. * exp(—2 * t) + 1/4. * exp(-2 * t) - 1/4; y2 = - 3 / 2 * t. * exp(—2 * t) - 7/4. * exp(-2 * t) + exp(-t) + 3/4; plot(t,yl,'r+',t,y2/b+') hold off
2 MATLAB
66
Abb. 2.5: Ausgabe der Datei
DglSystemelScript.m
Zweites SlMULlNK-Modell für S y s t e m e (Schwingungstilger) Man führt DglSysteme2Script2.m aus, um die Ergebnisse aus DglSysteme2.mdl darzustellen. Man erhält dann abgesehen von den Symbolen + und * Abbildung 2.6. Die Zeichen + und * sind die Ergebnisse der exakten Lösung. Das zur exakten Lösung gehörende MATLAB-Programm ist hier nicht wiedergegeben. DglSysteme2Script2.m
wertet nur die Daten des SiMULlNK-Modells DglSysteme2.mdl aus. Die exakten Lösungen findet man in Kapitel 3.4.1 im Abschnitt Laplace-Transformation. Dort wird auch erklärt, welche Schwingung unter welchen Bedingungen getilgt wird.
%
DglSysteme2Script2.m
load DglSysteme2Data.mat plot(DglSysteme2Aus( 1, :), DglSysteme2Aus(2, :)/r :') hold on plot(DglSysteme2Aus(l, :),DglSysteme2Aus(3, :)/b-') hold off
2.4 Systeme von Differentialgleichungen
Abb. 2.6: Schwingungstilger
67
(Ausgabe)
Die in der Legende in Abbildung 2.6 beschriebenen Funktionen yi(t) und f/2(i) sind die Auslenkungen der Massen m\ und m^ aus der Ruhelage (vgl. Abbildung zum Schwingungstilger in Kapitel 3.4.1). D r i t t e s SlMULiNK-Modell für S y s t e m e ( E n t s t ö r f i l t e r ) Um die Ergebnisse aus dem SlMULiNK-Modell DglSysteme3.mdl (siehe Kapitel 1.4.1) darzustellen, führt man D g l S y s t e m e 3 S c r i p t .m aus. Man erhält dann Abbildung 2.7. Dort sind die Eingangsspannung (mit Punkten) und die Ausgangsspannung mit deutlich kleinerer Amplitude dargestellt. % DglSysteme3Script.m l o a d DglSysteme3Data.mat plot(DglSysteme3Aus(l,:),DglSysteme3Aus(2, : ) / r :') hold on plot(DglSysteme3Aus(1,:), DglSysteme3Aus(3, : ) / b - ' ) holf
off
2 MATLAB
68
Abb. 2.7: Entstörfilter
2.4.2
(Ausgabe)
Allgemeine Systeme linearer Differentialgleichungen
Um die Ergebnisse aus DglSysteme4.mdl darzustellen, führt man DglSysteme4Script .m aus. Man erhält dann Abbildung 2.8. %
DglSysteme4Script.m
load DglSysteme4Data.mat plot(DglSysteme4Aus(2,:), DglSysteme4Aus(3,:)) xlabel ('Raubtiere') ylabel ('Beutetiere')
2.4 Systeme von Differentialgleichungen
Abb. 2.8: Räuber-Beute-Modell
(Ausgabe)
69
3
Mathematische Grundlagen und Erläuterungen
3.1
Grundlagen
In diesem Kapitel werden die mathematischen Grundlagen zu den entsprechenden Abschnitten in Kapitel 1 und Kapitel 2 gegeben. Bei umfangreicheren sehr technischen Themen — wie den Methoden zur numerischen Lösung von Differentialgleichungen — verweisen wir auf Spezialliteratur, etwa Stoer [7] oder Hämmerlin-Hofmann [4]. MATLAB-Hilfe zur numerischen Lösung von Differentialgleichungen findet man unter dem Stichwort ode. Mehrfach wird in diesem Abschnitt auf die Laplace- und die z-Transformation zurückgegriffen. Eine kurze Einführung in die Laplace- und z-Transformation findet der Leser im Kapitel 5, Tabellen zu den Transformationen im Kapitel 6. Für Details zu den Transformationen verweisen wir auf Doetsch [1].
3.1.1
Funktionen skizzieren
Um in MATLAB den Graphen zu einer Punktion f(t) im Interval [a, 6] zu skizzieren, muss die Funktion diskretisiert werden. Hierzu bestimmt man zu einer vorgegebenen natürlichen Zahl n eine äquidistante Zerlegung des Intervalls [a, b], etwa
n
(3.1)
und berechnet die Funktionswerte f(tk)- Man erhält nun Wertepaare (ifc,/(ife)), die in ein Koordinatensystem eingetragen werden. Liegen diese Punkte sehr nahe beieinander, ist also die Schrittweite T klein, so erscheint der Graph auf einem Display zusammenhängend. Die Bezeichnung T - in der mathematischen Literatur ist h üblich - soll an die Abtastrate T in der Technik erinnern.
3.1.2
Funktionen differenzieren
Gesucht werde zu einer gegebenen Punktion x(t) (t G [A, b}) die Ableitung y(t) = x(t). Um in MATLAB zu differenzieren, muss diskretisiert werden. Es gilt y(t) = x(t) = lim
x{t) - x(t - T) T
3 Mathematische Grundlagen und Erläuterungen
72 und man bildet
(3.2) als Näherung für y(t). Setzt man (3.3)
Xk = x(tk) , Vk = y(tk) (tk wie in (3.1)), so ist Xk - Xk-l t/fc
m
eine Näherung für y(ffc). Diese Näherung ist um so besser, je kleiner T ist. Da in SIMULINK Schreibweisen gängig sind, die an die Laplace-Tansformation oder (im diskreten Fall) an die z-Transformation angelehnt sind, führen wir auch hier die Laplace- und z-Transformation durch. Einzelheiten zur Laplace-Tansformation und zur z-Transformation findet man in Kapitel 5 und in den Tabellen zu den Transformationen im Kapitel 6. Laplace-Transformation Mit den üblichen Bezeichnungen x(t) o
. X(s)
,
y(t) o
. y(s)
folgt — man beachte aus der Tabelle Rechenregeln der Lapace-Transformation die Regel Ableitung (Urbild) y(t) = x(t) o—y(s)
= sX(s) - x(0)
z-Transformation Mit den üblichen Bezeichnungen xk o
• X(z)
,
yk o
•
Y(z)
folgt — man beachte aus der Tabelle Rechenregeln der z-Transformation die Regel zur Differenz (Urbild) Vk =
Xk - Xk-1 7?, °—*
y(z) =
Z
~7Fx{z)
~ X~T
Hieraus erklärt sich die Bezeichnung K2^ im SLMULLNK-Block Discrete Derivative aus dem SIMULINK Library Browser. Der Verstärkungsfaktor (Gain) K ist hier 1 gesetzt. Der Anfangswert x - \ wird in SIMULINK im Fenster Function Block Parameters unter Initial condition eingegeben.
3.1 Grundlagen
3.1.3
73
Funktionen integrieren
Gesucht werden zu einer gegebenen Funktion x(t) (t 6 [a, &]) alle Funktionen y(t) mit y(t) = x(t). Es gilt
J y(r) dr = j x(r) dr. t
y(t) - y(0) =
t
o Um in
M A T L A B ZU
o
integrieren, muss diskretisiert werden. Es gilt t+T
y{t + T ) - y ( t ) = j
X(T) dr ~
Tx(t)
t
(Rechteckregel), so dass nach Diskretisierung mit (3.3) Vr+i - y
r
=
Txr
gesetzt wird. Nach Summation über r von 0 bis k — 1 folgt fc-i Vk
=
T^xr
+ yo-
r=0 Da in SlMULlNK Schreibweisen gängig sind, die an die Laplace-Tansformation oder (im diskreten Fall) an die z-Transformation angelehnt sind, führen wir auch hier die Laplace- und z-Transformation durch. Einzelheiten zur Laplace-Tansformation und zTransformation findet man in Kapitel 5 und in den Tabellen in Kapitel 6. Die oben gegebene Art der numerischen Integration ist bekanntlich sehr einfach. Andere Arten der numerischen Integration wie etwa die Trapezregel, die wir hier nicht explizit erwähnen und herleiten wollen, sind in SlMULlNK möglich. Man beachte hierzu Kapitel 1.1.3. Laplace-Transformation Mit den üblichen Bezeichnungen x(t)
o
*X(s)
,
y(t)
o
• Y(s)
folgt - man beachte aus der Tabelle der Lapace-Transformation (Regeln) die Regel Ableitung (Urbild) y(t) = x(t) o
= ! ( * ( * ) +y(0)).
Dies erkärt die Bezeichnung J im SLMULLNK-Block Integrator aus dem SIMULINK Library Browser. Wie der Anfangswert y(0) in SIMULINK gesetzt wird, ist in Kapitel
74
3 Mathematische Grundlagen und Erläuterungen
1.1.3 erklärt. Durch Rücktransformation mit der Tabelle zur Laplace-Transformation (Regeln) erhält man unter Verwendung der Regeln Linearität und Integration t Y(s)
= -X(s)+y(0)S S
•—•—° y{t) = fx(T)dT J
+
y(0).
0
Verwendet wurde hierbei außerdem aus der Tabelle Laplace-Transformation (Funktionen) die Urbildfunktion 1 zur Laplace-Transformierten z-Transformation Mit den üblichen Bezeichnungen xk
o
• X(z)
,
yk
o
•
Y(z)
folgt — man beachte aus der Tabelle der Z-Transformation (Regeln) die Regel Differenz (Urbild) Vk+i ~Vk
= Txk
o
• (z - l)Y(z)
- zy0 =
TX(z)
und nach Umformung
Den Faktor in der großen Klammer findet man im SlMULlNK-Block Discrete-Time tegrator in der Formel j ^ f , wobei hier der Gain K = 1 ist.
In-
Mittels Rücktransformation erhält man y
(*) =
2"1 \
+
^—^
— ° V k = T j 2 x r + yor=0
Hierbei wurden aus der Tabelle z-Transformation (Regeln) die Linearität und die 1. Summation verwendet und aus der Tabelle z-Transformation (Funktionen) die Ur-
bildfunktion 1 ZU -jf-j-.
3.2
Die lineare Differential- und Differenzengleichung erster Ordnung
3.2.1
Lösung der Differentialgleichung
Die lineare Differentialgleichung erster Ordung lautet y' + a{t)y =
x(t)
3.2 Die lineare Differential- und Differenzengleichung erster Ordnung
75
mit gegebenen (stetigen) Punktion a(t) und x(t). In vielen Anwendungen spielt x(t) die Rolle einer Eingangsgröße (in SIMULINK das Symbol Source) und die (zunächst) unbekannte Funktion y = y(t) die Rolle der Ausgangsgröße (in SIMULINK das Symbol Sinks). Die mathematischen Methoden zur Lösung dieser Differentialgleichung findet man in vielen Büchern, erwähnt seien hier Heuser [5] und Papula [6]. Wir betrachten zwei Beispiele, die wir beide in MATLAB und SIMULINK realisiert haben. Zunächst ein einfaches Beispiel, das in SIMULINK dazu dient, erstmals eine Rückkopplung zu erläutern. Beispiel 1 y' + 2y = e~t
,
y{ 0) = 0.
Die Lösung lautet y(t) = e - i — e _ 2 i , wie man leicht durch Einsetzen nachprüft. Das folgende Beispiel ist ein einfaches Beispiel aus der Elektrotechnik Beispiel 2 Schaltet man einen Ohm'schen Widerstand R und eine Induktivität L hintereinander und legt die Wechselspannung u(t) = UQ sin(wi) an — es ist hier angemessen, die Eingangsgröße mit u(t) statt mit x(t) zu bezeichnen — , so lautet die zugehörige Differentialgleichung R. ,
+
I
t =
u(t) L '
wobei die Lösung i(t) dann die Stromstärke ist, also für die Ausgangsgröße y(t) = i(t) gilt. Es ist 1 i(t) = c e " T 4 +
U° = sin(a;i + ), = - a r c t a n { , y/R? + (üjL)2 K
wobei c aus dem Anfangswert ¿(0) = io zu bestimmen ist. Die Rolle, die im Beispiel 1 der Faktor 2 von y gespielt hat, spielt hier der Faktor ^ und die Eingangsgröße x(t) = e - t in Beispiel 1 ist hier die an die Schaltung angelegte Spannung u{t) dividiert durch den Faktor L. Um die Bezeichnungen in SIMULINK zu erläutern, lösen wir die allgemeine lineare Differentialgleichung y' + ay = x(t) (mit dem konstanten Koeffizienten a) mittels
1 Wird diese Differentialgleichung ohne Laplace-Transformation gelöst, so erleichtert eine komplexe Rechnung den rechentechnischen Aufwand. Man ersetzt u(t) = uo sin(a>i) durch u(t) = uoeJU,t und nimmt von der Lösung i(t) den Imaginärteil.
3 Mathematische Grundlagen und Erläuterungen
76 Laplace-Tansformation Ist a eine Konstante und x(t) o
. X(s)
,
y(t) o
. Y(s)
(x(t) spielt oft die Rolle einer Eingangsgröße, y(t) die einer Ausgangsgröße), so folgt mit den Regeln Linearität und Ableitung (Urbild) der Tabelle Laplace-Transformation (Regeln) y' + ay = x{t) o
• sY{s) - y(0) + aY(s) = X ( s ) .
Man löst nun nach Y(s) auf — die Laplace-Transformation hat die Differentialgleichung in eine algebraische Gleichung ohne Ableitung transformiert — und führt die Rücktransformation durch, etwa Y(s) = y(0)- — s+a
+X(s)
y(t) = y(0) • e~at
+x(t)-ke~at
s+a
= y(0)e~at + e~at [ eaTx(r)dT. Jo Hier wurden aus der Tabelle Laplace-Transformation (Regeln) die Regeln Linearität und Faltung verwendet (* ist das Zeichen für die Faltung) und aus der Tabelle LaplaceTransformation (Funktionen) die Urbildfunktion e~at zur Laplace-Transformierten In typischen Anwendung (vgl. Beispiel 2) ist a > 0, so dass der Term y(0)e~at gegen null geht mit wachsendem t. Der Anfangswert hat dann (bekanntermaßen) keinen Einfluss auf den Dauerzustand. Es sei nochmals explizit darauf hingewiesen, dass die Differentialgleichung mit der Laplace-Transformation in eine Gleichung transformiert wird, die keine Ableitung mehr enthält! Dies ist die eigentliche Stärke der Laplace-Transformation. So ist es auch möglich, das schwierige Thema Differentialgleichungen mit einer anschaulichen Oberfäche (SIMULINK) übersichtlich zu behandeln. Beispiel 1 (Fortsetzung) In diesem Beispiel ist a = 2 und x(t) = e - t . Die Beschriftung im SlMULiNK-Block Transfer Fcn oder Ubertragungsfunktion, wie er in Kapitel 1.2.2, Abbildung 1.25, genannt wurde, ist nun klar. Verzichtet man nämlich auf den Einschaltvorgang, d.h. man setzt ?/(0) = 0, so gilt
sogar für die Laplace-Transformierte X(s) einer beliebigen Eingangsgröße x(t). Die zentrale Bedeutung der Laplace-Transformation kann man hier nochmals deutlich sehen. Die Differentialgleichung wurde in eine Gleichung ohne Ableitungen transformiert und diese Gleichung verknüpft die Laplace-Transformierten X(s) und Yfs) der
3.2 Die lineare Differential- und Differenzengleichung erster Ordnung
77
Eingangs- und Ausgangsgröße x(t) und y(t) auf einfache Art und Weise mit der Übertragungsfunktion. Beispiel 2 (Fortsetzung) Setzt man u(t) o
• U(s)
,
i(t) o
• I(s)
¿(0) = 0 und ua(t) = Ri(t) — ua(t) ist also die Spannung am Ohm'schen Widerstand —, so gilt nach Durchführung der Laplace-Transformation Ua(s) = RI(s) =
•
o u«(i) =
Ist also die Ubertagungfunktion bekannt, so ist auch das Verhalten der Schaltung (im Bildbereich) bekannt. Man sieht, dass sowohl aus der Transformierten als auch der Lösung der Differentialgleichung mit der Faltung die Lösung für beliebige Spannungen x(t) = u(t) in einfacher Art und Weise dargestellt werden kann. Für andere Spannungen u(t) kann mit den Tabellen und einer Rücktransformation die Lösung der Differentialgleichung dann gewonnen werden. Rechentechniken, wie das Verwenden komplexer Zahlen oder die Partialbruchzerlegung, sind hilfreich. Sie sollen aber hier nicht erläutert werden. Man schreibt auch Ua{s) U(s)
R =: H(s) Ls + R
(3.4)
und nennt H(s) die Übertragungsfunktion, kurz: AusgangiimBild) •• „ , ,. — -. ——— = Übertragung sjunktion. Eingang(imBila) Für den wichtigen Fall (komplexe) Wechselspannung u{t) = UQe]wt folgt aus (3.4) Ua(s) = H(s) • U(s) . Ua{t)
=u0J
o oo
t /i(r)-e^ (t " T) dr = u0ejuJt (
0
J /i(r)-e"^ 0
oo
T
dr~
j /i(r)- -^ e
T
dr)
t
Die beiden uneigentlichen Intergale konvergieren, denn es gilt h(t) = jje'i* oo tivem R und L. Wegen (5.1) ist H(juj) = f h(r) • e'jbJT dr, o
mit posi-
oo j h(r) • e~jujT dr < e-V* t
.
(3.5)
3 Mathematische Grundlagen und Erläuterungen
78 und daher für große t ua(t)
~
u0H(jw)e
Für u(t) = Im(u(t))
= uosin(ujt)
(3.6)
folgt (uo > 0) ua(t)
~ u0Im{H{juj)eiult)
= Im{yjt))
= u0\H(jüj)\sin(u>t
+ ^(w)),
(3.7)
wobei \H(JUJ)\ =
.R 2
y/R
,
2
+ (ujL)
(W) = arg(H(JU))
= -
wZi arctan(—). tt
Dies zeigt, dass Wechselstromtechnik auch über die Darstellung (3.4) bequem zugänglich ist. Es sei schließlich bemerkt, dass man die Ubertragungsfunktion natürlich auch ohne die Differentialgleichung bestimmen kann (etwa über die Wechselstromtechnik). Insgesamt zeigt dies, welche Bedeutung die Laplace-Transformation hat.
3.2.2
Lösung der Differenzengleichung
Statt der Differentialgleichung wollen wir nun das diskrete Analogon zur Differentialgleichung y' + ay = x(t) betrachten, nämlich die Differenzengleichung 2/fc+i - Vk , j,
h ayk =
xk.
Gelöst wird mittels z-Transformation Man setzt xk
o
• X(z)
,
yk
o
•
Y(z)
(xk spielt oft die Rolle einer Eingangsgröße, y k die einer Ausgangsgröße.) Mittels der Tabelle zur z-Transformation (Regeln) folgt unter Verwendung der Regeln Linearität und Differenz (Urbild) Vk+1 - Vk + Tayk
= Txk
°
• (z - (1 - Ta))Y(z)
- zy0 =
TX(z).
Letztere Gleichung lässt sich nun bequem nach Y(z) auflösen. Es gilt =
•T ^ T ü T )
+
{
—
(
^
Setzt man für den Moment yo = 0, so gilt Y(z)
= H(z)-X(z)
,
H { z ) =
z
_ *
(3.9)
3.2 Die lineare Differential- und Differenzengleichung erster Ordnung
79
Hierbei wird H(z) wiederum wie im kontinuierlichen Fall Übertragungsfunktion genannt. Sie beschreibt also, wie im Bildbereich die Eingangsgröße X(z) auf die Ausgangsgröße Y(z) übertragen wird. In SIMULINK kann man mit dem SLMULLNK-Block Discrete Transfer Fcn die Übertragungsfunktion realisieren. Nun wird (3.8) zurücktransfromiert. Aus z-Transformation (Regeln) verwendet man die Linearität und die Faltung, aus z-Transformation (Funktionen) die Urbildfunktionen zu — i— und z—a —i—. Dann erhält man z—a Y{Z)
yk
= y° • z — (l — Ta) = y0 • (1 - Ta)k = y0-(l-Ta)k
+ Z
-(l-Ta)
X { z )
~
+ T{ 1 - Ta)k*xk = k +T^(l-Ta)r-1xfe_r. r=l
Die Analogie der Ergebnisse im kontinuierlichen Fall mit der Laplace-Transformation und im diskretisierten Fall mit der z-Transformation sind gut zu erkennen. Bemerkt sei, dass für a > 0 und T hinreichend klein 0 < 1 - Ta < 1 gilt, so dass der Term y0 • (1 — Ta)k für große k gegen null geht (Einschaltvorgang). Beispiel 1 (Fortsetzung) Die Differenzengleichung zur Differentialgleichung y' + 2y — e~l lautet wegen y(0)=0 — man beachte auch (3.1) — Vk+i ~Vk —
„ -t -kT h 2yk = xk = e k = e
Daher gilt nach (3.9)
Für die Lösung gilt demnach k 1 - 2T)r-1e-(fe-r)T
yk =
k =T e ^ ^ l
r=1
- 2T)r~1erT.
(3.10)
r=l
Die rechte Seite verhält sich für kleine T wie e~Tk - e~2Tk, Differentialgleichung, wenn man t — Tk setzt. 2
also wie die Lösung der
Beispiel 2 (Fortsetzung) Setzt man uk o 2
•U(z)
,
ik o
U m dies nachzurechnen, verwende man (1 trische Reihe.
• I(z) 2T) r =
rln e
(1_2T) ~
e~2rT
und die endliche geome-
80
3 Mathematische Grundlagen und Erläuterungen
¿o = 0 und ua{tk) = Ri{tk) = Rik ~ ua{tk) ist also die Spannung am Ohm'schen Widerstand (diskretisiert) — so gilt ua(z) = RI(z) =
TR J^TR-Mz)
rpr> .
O
K)fc =
— ( 1
rpp -
—)
F C
"
1
*Uk
Man schreibt auch
^M -
X
U{z)
=.
MZ) "M[Z)
und nennt H(z) die Übertragungsfunktion, kurz: Ausgang(imBild) = Eingang (imBild)
Übertragungsfunktion
Ist also die Übertagungfunktion bekannt, so ist das Verhalten der Schaltung (im Bildbereich) bekannt. Dies zeigt die zentrale Bedeutung der z-Transformation, wenn man diskretisiert.
3.3
Die Differential- und Differenzengleichung zweiter Ordnung
Die explizite Differentialgleichung zweiter Ordnung ist gegeben durch y" =
f(t,y,y')
mit den Anfangswerten y(to) = yo und y'(to) = y\. Unter geeigneten Voraussetzungen kann die eindeutige Lösbarkeit der Differentialgleichung mit y = y(t) bewiesen werden (Heuser [5]).
3.3.1
Lösung der linearen Differentialgleichung mit konstanten Koeffizienten
Dies ist die Differentialgleichung y" + ay' + by = x(t)
, y(t0) = y0 , y'(t0) = yi
(3.11)
mit Konstanten a und b. In vielen Anwendungen spielt x(t) die Rolle einer Eingangsgröße (in S I M U L I N K das Symbol Source) und die (zunächst) unbekannte Funktion y = y(t) die Rolle der Ausgangsgröße (in S I M U L I N K das Symbol Sinks). Die Lösung dieser Differentialgleichung ohne Verwendung der Laplace-Transformation findet man in Büchern zu Differentialgleichungen, etwa Heuser [5] oder Papula [6].
3.3 Die Differential- und Differenzengleichung zweiter Ordnung
81
Hier die Lösungen unter Verwendung der Laplace-Tansformation Sind a, b konstant, j/(0) = yo, y'(0) = yi und x(t) o
. X(s)
,
y(t) o
. Y(s) ,
so folgt mit den Regeln Linearität und Ableitung (Urbild) der Tabelle Laplace-TYansformation (Regeln) y" + ay' + by = x(t)
(s2 + as + b)Y{s) = X{s) + (s + a)y0 + y i . Man löst nun nach y ( s ) auf — die Laplace-Transformation hat die Differentialgleichung in eine algebraische Gleichung ohne Ableitung transformiert — und erhält Y{s) = X(s) •
1
s* + as + b
+ y0 •
*+ + yi • s* + as + b
2
J + as + b
(3.12)
Setzt man für den Moment yo = y\ = 0 und verwendet aus den Tabellen für die Rechenregeln den Faltungssatz, so gilt Y{a) = H{s) • X(s)
•
o y(t) = h(t) * x{t),
(3.13)
wobei für die Ubertragungsfunktion H(s) H(s) = - 25 — w s +as
+b
^
o h(t) w
gilt. (* steht für die Faltung.) Die explizite Lösung lässt sich also für eine beliebige Eingangsgröße x(t) sehr übersichtlich darstellen. H(s) taucht im SLMULLNK-Modell ohne Rückkopplung in Kapitel 1.3.1 im Blockbild Transfer Fcn (oder Übertragungsfunktion) auf (Abbildung 1.32).
SIMULINK-
In typischen Anwendung (siehe unten) gilt a > 0, b > 0, und man rechnet mit den Tabellen zur Laplace-Transformation nach, dass die Urbilder zu H(s) und (s + a)H(s) betragsmäßig kleiner c • ept sind, wobei p = max{Äe(si), Re(s2)} (< 0) gilt, wenn si und S2 verschiedene Nullstellen des Polynoms s2 + as + b sind. Die Konstante c lässt sich leicht berechnen. 3 Falls die Nullstellen von s2 + as + b übereinstimmen, sind die Urbilder zu H(s) und (s + a)H(.s) betragsmäßig kleiner als ct-exp(-^t), wie man direkt den Tabellen zur Laplace-Transformation entnimmt. Insgesamt gehen für t —> oo alle genannten Urbilder gegen null. Die Anfangwerte yo und yi haben also kaum Einfluss auf die Lösung y(t) für große t, die dann im Wesentlichen durch (3.13) gegeben ist. 3 Man führe etwa eine Partialbruchzerlegung durch und transformiere zurück mit den Tabellen zur Laplace-Transformation.
82
3 Mathematische Grundlagen und Erläuterungen
Gilt nach Durchführung einer Laplace-Transformation y ( s ) = H(s) • X(s), also nach dem Faltungssatz y(t) = h(t) * x(t), so folgt mit der Wahl X(s) — 1 y(t) = h(t), also ist die Rückgabegröße das Urbild der Ubertragungsfunktion. Leider ist das Urbild zu X(s) = 1, S(t) genannt, keine Funktion, sondern eine verallgemeinerte Funktion. 4 In Simulationen sucht man nun einfache Funktionen, die die Rolle von 6(t) übernehmen. Wir haben unten eine „schmale" Rechteckfunktion r(t) gewählt, so dass Breite*Höhe= 1 ist. Die Ergebnisse der SlMULlNK-Modelle werden in Kapitel 2.3 analysiert. Mathematik zum SlMULiNK-Modell ohne Rückkopplung Für To > 0 wird die Differentialgleichung »• + V
+
» - r « - {
0
*
(3.14)
mit ?/(0) = j/(0) = 0 gelöst. Die Laplace-Transformation liefert unter Verwendung des Linearitätssatzes, des Ableitungssatzes (Urbild) und des Verschiebungssatzes
^»-¿•.C.+iK. +
a r C " - ^
Mit Partialbruchzerlegung, dem Linearitätssatz, dem Verschiebungssatz und den Urbildern zu ¿ j , ^ folgt die Lösung Vit) = 1 ((I - e-« + ¡e-2')
- (i - e-(t_7o)
+ \ e - ^ ) a { t - T0))
der Differentialgleichung. a{t) ist in den Tabellen zur Laplace-Transformation definiert. Es gilt y{t) =
( ^ * (I -_ t + Tie~2t) > f a l l s * < To, 2t 2T e ( l e °) + | e ( l e °) , falls t > T0. l To To ( ®
Verwendet man für T0 klein die Näherungen eT° ~ 1 + T0, e2T° ~ 1 + 27o, SO folgt y(t) ~ e _ t - e~2t = h(t), falls t > T0 , wobei h(t) das Urbild zu H(s) =
l
(s+l)(s+2)
(3.15)
_ i2 3l = gs ++ 3Ss++22 ist- Dieses Ergebnis wird durch
das SlMULiNK-Modell bestätigt.
Anwendungen 1. Mechanik Ein eindimensionales Masse-Feder-System wird nach dem Newton'schen Grundgesetz durch die Differentialgleichung mx + rx + kx = K(t) beschrieben mit 4 Diesen Sprachgebrauch verwenden oft Ingenieure. Mathematiker rechtfertigen dies im Rahmen der Distributionentheorie, die aber hier nicht besprochen wird.
3.3 Die Differential- und Differenzengleichung zweiter Ordnung
83
Konstanten m (Masse), r, k und der von außen wirkenden Kraft K(t). (Die Bezeichnungen sind wie in Heuser [5] gewählt.) Man setzt p = f(t) =
uj0 =
und
und erhält die Differentialgleichung x + 2px -(- WqX — f(t).
Führt man die Laplace Transformation durch (Linearitätssatz, Ableitungssatz) mit den Bezeichnungen x{t)
o
.x(s)
,
f(t)
.F(s),
o
so folgt mit x(0) = x(0) = 0 X(s) = H(s) • F(s) mit H(s) =
1 s2 + 2ps + Wq '
so dass in unserem SlMULlNK-Modell a = 2p und b = lüq gesetzt wird. 2. Elektrotechnik Der Reihenschwingkreis mit Ohm'schem Widerstand R, Kapazität C und Induktivität L wird durch dti 1 L- + Ri+-q
= ue{t)
(3.16)
beschrieben, wenn i = i(t) die gesuchte Stromstärke, ue(t) die zum Zeitpunkt t t = 0 angelegte Spannung und q = q(t) = J i(u) du die Ladung des Kondensators o ist. Setzt man i(t) o
• I(s)
,
ue(t) o
• Ue(p),
so folgt mittels .Laplace-Transformation mit dem Linearitätssatz, dem Ableitungssatz (Urbild) und dem Integrationssatz (Ls + R + -^)I(s) = Ue(s). Mit ua{t) = Ri(t), der Spannung am Ohm'schen Widerstand, und ua(t) o • Ua{s) folgt UM
- m - w
n>tt m
=
-
i v
+
f ' .
+ 1
f e -
Erläuterung zu den SiMULiNK-Modellen Im SlMULlNK-Modell muss also im SlMULlNK-Blockbild Übertragungsfunktion diese angepasst werden. Man beachte auch (3.13). (3.16) ist, da q(t) das Integral über i(t) ist, eine Integro-Differentialgleichung für i — i(t). Mittels Differentiation erhält man aus (3.16) die lineare Differentialgleichung fi dt
+
Rdi 1 . _ 1 due{t) L dt + LCl ~ L dt '
84
3 Mathematische Grundlagen und Erläuterungen mit konstanten Koeffizienten, sofern die rechte Seite ue(t) differenzierbar ist. Dies ist nun bei der im SlMULlNK-Modell in Kapitel 1.3 gewählten Rechteckfunktion leider nicht der Fall, so dass wir dieses Beispiel in S I M U L I N K nur ohne Rückkopplung behandeln können. In Beispielen, in denen die angelegte Spannung ue(t) differenzierbar ist, kann jedoch sowohl das SlMULlNK-Modell mit Rückkopplung als auch das SIMULINK-Modell ohne Rückkopplung verwendet werden mit a = und x(t) = Die numerische Wahl der Parameter R, L und C hat Einfluss auf die Wahl der Simulationsparameter im Modell DglZweiterOrd3.mdl. Mit der Wahl R = 10, L = 10" 4 , C = K T 6 und ue{t) = 5T 0 r(t) (siehe (3.14)) gilt 1 f)5
K . M = 5- s ,
+
1Q5a + 1Q10
• (1 ~ e ~ T > * ) .
Es wäre kein Problem, hieraus ue(t) zu bestimmen. Es gilt nämlich — man verwende den Linearitätssatz, den Dämpfungssatz und den Verschiebungssatz aus der Tabelle zu den Rechenregeln der Laplace-Transfromation — ua{t) = 5 • (g{t) - g{t - T0) - a(t - T 0 )) , wobei g(t) =
2
_isi-t „• / 'sin^lO V3 2
bt) 7
105 s 2 + 10 5 s + 1 0 1 0
gilt. Allerdings kann man das Wesentliche zur Wahl der Parameter in der Simulation bereits aus Ua(s) ablesen. Die Nullstellen des Nennerpolynoms s 2 + 10 5 s+10 1 0 , also si,2 = — ± j ^ l O 5 , zeigen an, dass am Urbild zu Ua(s) eine gedämpfte Schwingung mit Dämpfungsfaktor — dem Realteil von Si^, und einer Kreisfrequenz ^ 1 0 5 , dem (positiven) Imaginärteil von S12, beteiligt ist. Dies beeinflusst maßgeblich die Wahl der Sample Time und der Schrittweite. Klar ist, dass an der Stelle To etwas Wichtiges passiert, daher sollte die Dauer der Simulation etwas länger sein als To. Allgemein sollte der SiMULiNK-Nutzer hier etwas experimentieren. Es sei aber nochmals darauf hingewiesen, dass die (grobe) Wahl der Parameter in der Simulation aus den Nennernullstellen der Übertragungsfunktion zu erkennen ist. Dieses Nennerpolynom kann offensichtlich leicht mit den konstanten Koeffizienten der Differentialgleichung beschrieben werden. Die Laplace-Transformation gibt also auch einen Einblick in die Wahl der Simulationsparameter und ist somit weitaus mehr als nur ein bequemes Hilsmittel zur Lösung von Differentialgleichungen.
3.3.2
Lösung der allgemeinen Differentialgleichung zweiter Ordnung
In Kapitel 1.3.2 wurde das mathematische Pendel, beschrieben durch " + ¿ 1 • sm = 0 , (0) = 0 , '(0) = 0.2 ,
3.3 Die Differential- und Differenzengleichung zweiter Ordnung
85
behandelt. Hier wird auf eine exakte Angabe der nicht einfachen Lösung verzichtet. Zwar kann man T = ^ als Funktion der maximalen Auslenkung o des Pendels über ein elliptisches Integral angeben, aber zur Beschreibung der Lösung (t) der Differentialgleichung benötigt man Kenntnisse über die Umkehrfunktionen zu den elliptischen Integralen erster Gattung, den Jacobifunktionen. Wir gehen an dieser Stelle nicht darauf ein. Stattdessen geben wir eine Herleitung der Lösung zur Differentialgleichung +
=
V(0) = o , ^ ( 0 ) = ^ 0 ,
mittels Laplace Transformation. Mit (3.11) und (3.12) folgt = -TT-2 s
z
+
0
•
tW) = — s i n M , LÜ0
l j q
wobei ip(t) s—• Ü>(s) und die Tabelle Funktionen der Laplace-Transformation verwendet wurde.
3.3.3
Lösung der linearen Differenzengleichung mit konstanten Koeffizienten
Dabei handelt es sich um die Gleichung Vk+2 + ayk+1
+ byk = xk , k G N 0
mit Konstanten a und b. Gegeben sind hierin die Zahlenfolge xk — die Eingangsgröße in das SlMULlNK-Modell - und die Anfangswerte yo, Vi- Gesucht ist die Zahlenfolge yk die Ausgangsgröße aus dem SiMULlNK-Modell die diese Differenzengleichung zweiter Ordnung löst. Die Lösung ist eindeutig, denn aus der zur gegebenen Gleichung äquivalenten Gleichung yk+2 = ~ayk+1 - byk + xk lassen sich y2, 2/3,••• eindeutig bestimmen. Hier soll nun für das SIMULINK-Modell aus Kapitel 1.3.3 die Lösung mittels z-Transformation gegeben werden. Daran erkennt man dann einerseits, wie die Ubertragungsfunktion im SlMULlNK-Block Transfer Fcn zu wählen ist, und andererseits sieht man an der z-Transformierten der Differenzengleichung, wie gewisse Parameter im S l M U L l N K Modell zu wählen sind. Setzt man wie üblich xk o
• X(z)
,
yk o
• Y{z)
und verwendet aus der Tabelle Regeln der z-Transformation die Linearität und die 2.Verschiebung, so gilt yk+2 + ayk+1 + byk=xk o
, k G N0
•
(z2 + az + b)Y(z) = X(z) + (y0z){z + a) + {yiz).
3 Mathematische Grundlagen und Erläuterungen
86
Löst man letztere Gleichung nach Y(z) auf, so erhält man Y(z) =
1 X(z) + zyo z + z2 +az + b z +az + b
* , 2 zz + az + b
(3-17)
Man beachte die Analogie zur Formel (3.12) im Rahmen der Laplace-Transformation für Differentialgleichungen zweiter Ordnung. Setzt man für den Moment yo = yi = 0, so gilt Y(z) =
H(z)-X{z)
mit der Übertragungsfunktion = z2 + 1ag + b Mit dem Faltungssatz folgt nun Y(z) = H(z) • X(z)
•
o yk = hk*xk
,
wobei hk das Urbild zu H(z) ist. Die Terme in (3.17) mit den Anfangswerten yo und yi lassen sich zusammenfassen und umformen. Es gilt z
syoz + yoa + yi\ \V — 2z*~ + ; az +nrb ))
= a
z z z — z\ + ß z — Z2
wobei zi, Z2 die Nullstellen von z2 + az + b und a, ß Konstanten sind, die sich leicht bestimmen lassen (Partialbruchzerlegung). Daher gilt unter Verwendung der Tabellen für die z-Transformation z — Z\
• Z — Z"2
oaz\
+ ߣ.
(3.18)
Gilt nun |zi| < 1 und ¡22! < 1, so geht die rechte Seite von (3.18) gegen null, wenn k über alle Grenzen wächst. Ist nur eine der beiden Nullstellen betragsmäßig größer als 1, so wächst die rechte Seite von (3.18) (betragsmäßig) unbeschränkt. Zum ersten SlMULlNK-Modell in Kapitel 1.3.3 Mit der in Kapitel 1.3.3 getroffenen Wahl a — —|, 6 = | und xk = 1 , k £ No, folgt y (
" - - ' ( , - } ) ( , - > ) ( , - ! ) •
(3 19)
'
Die Anfangswerte sind dort null gesetzt. Aus obigen Ausführungen entnimmt man auch, dass Anfangswerte ungleich null wegen z\ = \ und = \ für große Werte von k fast keinen Einfluss auf die Lösung der Differenzengleichung haben. Mittels Partialbruchzerlegung findet man unter Verwendung der Tabellen für die z-Transformation z - \
z - \
z-1
3.4 Systeme von Differentialgleichungen •
87
©
Bereits in (3.19) erkennt man, welche Zahlenfolgen in der Lösung yk eine Rolle spielen. Bezeichnet man mit z\, und Z3 die Nennernullstellen von Y(z), so sieht man (Partialbruchzerlegung), dass yk Linearkombinationen der Zahlenfolgen und sind. Man kann also bereits an der z-Transformierten Y(z) ablesen, welchen Einfluss die Nennernullstellen der rationalen Ubertagungsfunktion Y(z) auf die Lösung yk haben. So lässt sich auch bereits aus den Nennernullstellen von Y(z), also den Nennernullstellen der Ubertragungsfunktion und der Funktion X(z), eine angemessene Dauer der Simulation festlegen.
3.4
Systeme von Differentialgleichungen
3.4.1
Systeme linearer Differentialgleichungen mit konstanten Koeffizienten
E r s t e s SlMULlNK-Modell f ü r S y s t e m e
Vorgelegt ist das folgende System von Differentialgleichungen y\ + ¥2 -
+
= f
4
(3.20)
v1 + 2 / 2 = 1
mit den Anfangswerten j/i(0) = 2/2(0) = 0. Für das SlMULlNK-Modell DglSystemela.mdl ist es notwendig, dieses System von Differentialgleichungen in Matrixform zu schreiben. Mit
K ; )
•
A
=(1:l) • ' - ( ? )
gilt y' = Ay + b.
(3.21)
Hieraus entnimmt man, wie im SiMULiNK-Block State-Space D gewählt werden müssen.
die Matrizen A, B, C und
F ü r d a s SlMULlNK-Modell D g l S y s t e m e l . m d l b e n ö t i g t m a n die
Laplace-Transformation Mit yi
(t) o
.^(s)
,
y2{t)
o
•r2(a)
88
3 Mathematische Grundlagen und Erläuterungen
geht das gegebene System von Differentialgleichungen nach Laplace-Transformation über in das lineare Gleichungssystem (s + 3 ) F 1 ( s ) + -Y^s)
1
Y2(S) =
s
+ (s + l)F 2 (s) =
+1
(3.22)
-. s
Dieses lineare Gleichungssystem lässt sich nun leicht lösen. Es gilt n ( s )
r
+
= T^rir
*«> =
~
- r
2
1
Je " - 3 =
+ ' •
+
1
-
»•
Im Hinblick auf das SiMULiNK-Modell DglSystemel.indl und auf Verallgemeinerungen unseres Beispiels sollte (3.22) in Matrixform geschrieben werden. Setzt man in (3.20) xi(t) = e - t o • = Xi(s) und x2(t) = 1 o • ^ = X2(s) und vereinbart Y(\
X { S ) =
SX1(S)) (X2(S))
(Y1{S)\
VM '
y ( s ) =
U (
S
) ) '
so gilt /s+ 3
1
\
-
Diese Matrixgleichung löst man nun nach Y(s) auf, indem man mit der Inversen zur Koeffizientenmatix von links multipliziert. Dann folgt f (s) = H(s) • X(s) ,
(3.23)
wobei für die Matrix H(s) vom Typ (2,2) 1
/s +1
-1
\
gilt. Wegen (3.23) kann man H(s) = (hij(s)) die Übertragungsmatrix nennen. Diese hier verwendeten Bezeichnungen findet man auch wieder im SiMULiNK-Modell. Man beachte auch die Bezeichnungen der Kapitel 3.2.1 und 3.3.1. Jedes System linearer Differentialgleichungen mit konstanten Koeffizienten, das sich in der Form (3.21) oder (3.23) schreiben lässt — dazu gehören auch Systeme höherer Ordnung mit konstanten Koeffizienten - kann man nun mit SlMULlNK-Modellen beschreiben wie in Kapitel 1.4.
3.4 Systeme von Differentialgleichungen
89
Zweites SlMULlNK-Modell für Systeme (Schwingungstilger) Das unten dargestellte System zweier Massen m\ und m 2 , die an Federn der Steifigkeit ki und k2 aufgehängt sind, wird bei Vernachlässigung der Dämpfung durch das System linearer Differentialgleichungen beschrieben: miy'i = -kiyi
+ k2(y2 ~ Vi)
m2y'2 = ~k2(y2 ~ Vi)
ki • Ruhelage 0 \
Till
2/i k2 • Ruhelage 0 2
m,2 2/2
Setzt man — die Bezeichnungen sind angelehnt an Heuser [5] — 2 ki + k2 w1 = mi
,
2 k2 w2 — — m2
,
2 ki w10 — — mi
,
_ m2 /x — — , m1
so kann man das System in der Form 2/i +w?2/i - V^lvi 2/2 + ^22/2 -
= WiqAcos (ut)
^22/1 = 0
schreiben, wenn noch eine periodische Zwangskraft einwirkt, indem man den Aufhängepunkt gemäß dem Weg-Zeit-Gesetz Acos(wt) auf- und abbewegt. Führt man nun wieder die Laplace-Transformation durch und wählt die Bezeichnungen wie oben, so gilt / s2 +
mit Xi(s) = uj20AsÌ^
—¡JUjJ2
,)-Y(s) s2 + uj2 -
= X(s)
, X 2 (s) = 0. Nach Auflösung folgt
Y(s)=H(s).X(s)
3 Mathematische Grundlagen und Erläuterungen
90
mit H(s)
' s2 + u>|
=
s2
U>o
also / S2 R
W
=
0
(s2+w2)(,
Da X2(s) = 0 ist, wird das SlMULlNK-Modell einfacher. Es gilt (s2 +u?)(s2 gilt
+ iü\) -
= (s 2 - Ai)(s 2 - A2), wobei Ai < 0 und A2 < 0 ist. Also
o yi(t) = aiCOs(y/-\it)
Yi(s) •
+ oi2Cos(y/-A2i) + 0:3cos(ut) 2
2
mit Konstanten c*i, a 2 , a^, wobei «3 = Auj20 ist- Insbesondere ist für ui = u>2 die Amplitude 0:3 = 0. Dies erklärt den Begriff Schwingungstilger. Es gilt AUI2
?/i(t) = ^
( cos(\/-Ait) -
COS(A/-A2t)J
für
uj = lj2 .
Hierbei ist u20 Ai — A2
k\m\ ^ m i ^ l — u 2 ) 2 + 4m2W2 '
so dass insbesondere für großes ra2 die Amplitude der Schwingung y\(t) klein bleibt. In der Simulation lassen sich die Parameter bequem ändern. Schließlich sei bemerkt, dass sich das gegebene System von Differentialgleichungen zweiter Ordnung mit zwei Gleichungen in ein System von Differentialgleichungen erster Ordnung mit vier Gleichungen transformieren lässt. Das SiMULiNK-Modell DglSystemela.mdl könnte dann mit angepassten Matrizen auch verwendet werden, um dieses Beispiel zu lösen. D r i t t e s SiMULiNK-Modell für S y s t e m e (Entstörfilter) Diese Anwendung findet man in Föllinger [2]. Beim Anschluss elektronischer Geräte an das Lichtnetz (u e (t)) wird häufig ein Entstörfilter vorgesehen, das hochfrequente Schwingungen vom Verbraucher (u a (t)) fernhalten soll.
3.4 Systeme von Differentialgleichungen
91
Entstörfilter «2 L ue(t)
*i R
C:
Ua(t)
L
Auf Grund der Maschenregel und der Knotenregel gilt 2L(»i + i2) + hqi = ue(t) (3.24) -
=
0.
Nun werden beide Gleichungen Laplace-transformiert. Man erhält mit den üblichen Vereinbarungen ii(t) o • h(s), i2(t) o • I2(s) , ue(t) o • Ue(s) und den Rechenregeln der Laplace-Transformation 2Ls(h(s) ¿/i(s)
+ I2(s)) + ¿-Sh(s) -
= Ue(s)
RI2(S)=
0.
Nun kann man formal dieses lineare Gleichungssystem in Matrixform schreiben und lösen, wie es im ersten SlMULiNK-Modell dieses Abschnitts gemacht wurde. Dies würde sich dann anbieten, wenn man mehr als zwei Maschen hat. Hier ist es natürlich einfacher, aus beiden Gleichungen Ii(s) zu eliminieren, da man ohnehin nur an i2(t) interessiert ist. Mit ua{t) = Ri2{t) o * RI2(S) = Ua(s) folgt Ua{s) = H(s) • Ue(s) mit
H(s) =
1 2 LCs2 + 2 s | + 1
Das SlMULiNK-Modell wird nun sehr einfach, da wir nur noch eine Gleichung haben. Wählt man ue(t) = Uo sin(a;i), so ist — man beachte Kapitel 3.2.1 — ua(t) nach Beendigung des Einschaltvorgangs ebenfalls eine sinusförmige Schwingung mit der Kreisfrequenz u> und einer von u> abhängigen Amplitude. Diese Amplitude ist für kleine u>, etwa so groß wie uo, die Amplitude von ue(t). Für große lu ist die Amplitude von ua(t) sehr klein (Idee des Entstörfilters).
3.4.2
Allgemeine Systeme linearer Differentialgleichungen
Wir präsentieren nun ein Beispiel, das mit M A T L A B in Grupp-Grupp [3] gelöst wird. Es handelt sich um ein Räuber-Beute-Modell, das man auch in Heuser [5] findet. Es handelt sich um ¿1 = Zl(-C*l + ß L X ) X2 = x2(+a2 - ß2xi). 2
Hierin bezeichnet x\ = x\(t) die Anzahl der Räuber zur Zeit t und x2 = x2(t) die Anzahl der Beutetiere zum Zeitpunkt t. Die Anfangswerte seien xi(0) = 300, £2(0) = 7000. Für
92
3 Mathematische Grundlagen und Erläuterungen
die Modell-Parameter wird die Wahl ax = 0.08, a 2 = 1.0, ßi = 0.00001, ß2 = 0.002 getroffen. Eine graphische Darstellung der Lösung findet man in Kapitel 2.4.
4
Zusammenfassung (SIMULINK-Blöcke)
Jedes SIMULINK-Modell besteht aus SLMULLNK-Blöcken, die duch Pfeile (Datenflüsse) verbunden sind. Das formale Erstellen solcher SLMULLNK-Modelle ist ausführlich in Kapitel 1.1 beschrieben. 11 >
1 1 — s+1
>
Transfer Fcn SlMULINK-ß/ocfc Transfer
Abb. 4-1: Der aktivierte
Transfer F c r t . - . g ; ^ ; ; r
•
•
—
Fcn
a B H H M K jsï
;
:
;;.;" • O j ' •
; . ] : ' : . -
The numerator coefficient can be a vector or matrix expression. The denominator coefficient must be a vector. The output width equals the number of rows in the numerator coefficient. You should specify the coefficients in descending order of powers of s. -Parameters
-
-
Numerator coefficient:
m | fnri
Denominator coefficient:
Absolute tolerance:
jEWB
wmmmmm
OK
Cancel
Abb. 4.2: Das Fenster Function Block Parameters:
Help
Transfer
Apply
Fcn
In diesem Abschnitt werden die im Buch verwendeten SLMULLNK-Blöcke zusammengefasst und näher erläutert. MATLAB-Hilfe gibt es zu jedem SIMULINK-Block. Hierzu klickt
4 Zusammenfassung (SIMULINK-Blöcke)
94
man in einem Modell-Fenster den SIMULLNK-Block mit der rechten Maustaste an und im dann sich öffnenden Rollladen wähle man die Option Help. Mitunter werden dort sehr umfangreiche Angaben gemacht, daher haben wir fallweise eigene Bemerkungen aufgeführt. In vielen SlMULlNK-Blöcken können oder müssen Parameter festgelegt werden, bevor man die Simulation startet. Mit einem Doppelklick auf einen SiMULlNK-Block öffnet man ein Fenster mit dem Namen {Schlüsselwort} Block Parameters: {Name des SiMULlNK-Blocks}, wobei Schlüsselwort Source, Function oder Sink ist und sich nach dem Teil des S I M U L I N K Library Browsers richtet, aus dem das SLMULLNK-Blockbild entnommen wurde. Ein Beispiel ist in Abbildung 4.2 gegeben. Das Fenster Source Block Parameters: Sine Wave ist in Abbildung 1.11 wiedergegeben. Eine Zusammenfassung der SLMULLNK-Blöcke und deren wichtigste Eigenschaften geben wir weiter unten. Parameter, die die Simulation direkt betreffen (etwa die numerische Integrationsmethode, die Schrittweite, die Dauer der Simulation,...), können in einem Fenster (Abbildung 4.3) eingegeben werden. Dieses Fenster Configuration Parameters: {Name des SiMULlNK-Modells }/Configuration kann aus dem Fenster jedes SiMULlNK-Modells mit der Option Simulation —• Configuration Parameters... (2. Menüzeile) g e ö f f n e t w e r d e n .
Configuration P a r a m e t e r s : untitled / Configuration Select: Solver Data Import/Export Optimization Diagnostics Sample Time Data Validity Type Conversion Connectivity Compatibility Model Referencing Hardware Implementation Model Referencing
Simulation time Start time:
ffi*
Stop time: 110.0
Solver options Type:
JVariable-step
Max step size:
[auto
Relative tolerance: |le-3
jauto
Absolute tolerance: jauto
: Min step size: Initial step size:
j ode45 (Dormand-Prince)
jauto
Zero crossing control J Use local settings P
j J Solver:
3
Automatically handle data transfers between tasks
Solver diagnostic controls Number of consecutive min step size violations allowed: Consecutive zero crossings relative tolerance:
j l 0*128xeps
Number of consecutive zero crossings allowed:
fiooo
OK
Abb. 4-3: Fenster zur Eingabe der
Simulations-Parameter
Cancel
Help
J
4.1 SiMUUNK-Blöcke aus der Bibliothek Sources
95
Einen Überblick über jedes SlMULiNK-Modell beschafft man sich mit einem HTMLReport. Hierzu wählt man im Fenster des SlMULlNK-Modells die Option File —> Print Details... und im sich dann öffnenden Rollladen die Option Print. Anschließend wird der HTML-Report erstellt. Nachfolgend werden im Buch verwendete SiMULlNK-Blöcke beschrieben, geordnet nach Themen des SlMULlNK-Library Browsers.
4.1
SiMULlNK-Blöcke aus der Bibliothek Sources
&
Stellt die Simulationszeit zur Verfügung und zeigt sie an.
Clock Eingang
-
Ausgang
Eine streng monoton steigende Zahlenfolge tk im Intervall, das durch den Beginn und das Ende der Simulation festgelegt ist (siehe Abbildung 4.3, Start time und Stop time). In tk steht die Simulationszeit zu jedem Simulationsschritt k.
Source Block Parameters: Display
Time
regelt, in welchen Zeitabständen die Zeit angezeigt werden soll.
Decimation
1
Clock Ist der Haken gesetzt, so wird die Simulationszeit im SlMULlNK-Block angezeigt.
>
Erzeugt einen konstanten Wert.
Constant Eingang
-
Ausgang
Konstante, die im Fenster Source Block Parameters: Constant definiert ist (Voreinstellung: 1), und zwar zu den Zeitpunkten der Simulationszeit tk, falls Sample time auf inf steht.
Source Block Parameters: Constant Sample
Value time
Constant Konstante, die zu den Simulationszeiten tk ausgegeben wird. Vordefiniert mit inf. Einzelheiten findet man in der MATLAB-Hilfe.
4 Zusammenfassung (SIMULINK-Blöcke)
96
untitled.mat > From File Eingang
Liest Daten aus einer .mat Datei.
-
Ausgang
Die Daten, die zur Verfügung gestellt werden, stehen in einer Matrix mit wenigstens zwei Zeilen. Die erste Zeile ist eine monoton steigende Zahlenfolge von Zeitpunkten. Die weiteren Zeilen enthalten Daten zu diesen Zeitpunkten. Die Datei .mat muss existieren, bevor der Name (siehe unten das Feld File name) im SIMULINK-Modell verwendet wird. Ein Beispiel ist in Kapitel 1.1.2 (SinDiskret .mat) und in Abbildung 1.14 gegeben. Die Datei .mat muss im working directory stehen, damit die Daten dem SiMULiNK-Modell zur Verfügung stehen.
Eingang
-
Source Block Parameters: File name Sample time
V >
From File Ein in MATLAB gültiger beliebiger Name mit der Erweiterung .mat. Vordefiniert mit 0. Einzelheiten findet man in der MATLAB-Hilfe.
Erzeugt eine Sinus-Funktion.
Sir te Wait/e Eingang
-
Ausgang
Bias + Amplitude* sin(Kreisfrequenz* Zeit+Phase), dabei werden für Zeit die Simulationszeiten gesetzt, falls Sample time null ist.
Source Block Parameters: Amplitude
Sine Wave Amplitude
Bias
Verzerrung, additive Störgröße
Frequency
Kreisfrequenz (Bogenmaß/Sekunde)
Phase
Phase (im Bogenmaß)
Sample time
Vordefiniert mit null. Für positive Werte: Diskreter Modus (siehe MATLABHilfe).
4.2 SLMULLNK-Blöcke aus der Bibliothek Commonly Used Blocks
>
97
Erzeugt eine Treppenfunktion.
Step Eingang
-
Ausgang Source Block Parameters:
Step gibt vor und nach der Step time zu den Simulationszeitpunkten eine Konstante aus, falls Sample time null ist. Step
Step time
Zeitpunkt, zu dem der konstante Wert der Ausgabe auf den neuen konstanten Wert geändert wird.
Initial value
Konstante, die vor der Step time ausgegeben wird.
Final value
Konstante, die nach der Step time ausgegeben wird.
Sample time
Vor definiert mit null. Für positive Werte: Diskreter Modus (siehe Hilfe).
4.2
MATLAB-
SlMULlNK-Blöcke aus der Bibliothek Commonly Used Blocks >
K Ts
>
z-1 Discrete-Time Integrator Eingang Ausgang Function Block Parameters: Integrator method
Führt eine diskrete Integration durch.
Zahlenfolge un yn, die diskrete Integration zu un Discrete-Time Integrator Wahl der Integrationsmethode. Voreingestellt ist die Forward Euler Methode, für die y(n) = y(n - 1) + KTsu{n - 1) gilt.
Gain Value
Verstärkungsfaktor K
Initial condition Sample Time
Anfangswert yo Schrittweite Ts
4 Zusammenfassung (SIMULINK-Blöcke)
98
E>
>
Multipliziert die Zahlenfolge am Eingang mit K.
Gain
Eingang
Zahlenfolge Uk
Ausgang
Kuk
Function Block Parameters:
Gain Verstärkungsfaktor K
Gain
t
Mux fasst mehrere Eingangsgrößen in einem Vektor zusammen.
Eingang
mehrere Signale
Ausgang
ein Signal (in einem Vektor zusammengefasst)
Function Block Parameters:
Mux Legt die Anzahl der Eingangssignale fest.
Number of inputs
> U
1 z
> y
Verzögert ein Signal
flit Delà Eingang
Zahlenfolge Uk
Ausgang
Vk = Uk-1; man beachte zur Bezeichnung ^ auch die Rechenregel 1.Verschiebung der Tabelle z-Transformation (Regeln) im Kapitel 6.
Function Block Parameters:
Unit Delay
Initial condiion
Vo
4.3 SlMULlNK-Blöcke aus der Bibliothek Continuous
4.3
99
SlMULlNK-Blöcke aus der Bibliothek Continuous
>du/dt
>
Bildet die Ableitung der Eingangsfunktion.
re D
x? = A x + B u y = Cx+Du
>
jp;
du
die Ableitung wird numerisch gebildet.
Löst ein lineares System von Differentialgleichungen.
State-Space Eingang
vektorwertige Funktion ü(t)
Ausgang
y(t) = Cx + Du, wobei x(t) Lösung von ^ = Ax + Bü ist. (A ,B, C, D: vom Typ her passende Matrizen)
Function Block Parameters:
State Space
Parameters
Matrizen A ,B, C, D
Initial conditions
x(0)
4 Zusammenfassung (SIMULINK-Blöcke)
100
1
)
Modelliert ein lineares System mittels einer Übertragungsfunktion.
s+1 Transfer Fen
Funktion u(t)
Eingang
Ausgang
t = u(t) * h(t) = f u(t — r)/i(r) dr to an den diskreten Zeiten t = tk der Simulation. Dabei steht * für die Faltung bei der LaplaceTransformation. h(t) ist das (Laplace-)Urbild zur Transfer Function (Ubertragungsfunktion), deren Eingabe unten beschrieben ist. Die Wahl der numerischen Integration muss im Fenster Configuration Parameters unter Solver (siehe Abbildung 4.3) getroffen werden.
Function Block Parameters:
Transfer Fcn
Numerator
Zählerpolynom der Ubertragungsfunktion in der MATLAB-spezifischen Darstellung (vgl. Kapitel 2.2.1).
y(t)
coefficient
Denominator
4.4 >
coefficient
Nennerpolynom der Ubertragungsfunktion MATLAB-spezifischen Darstellung.
in
der
SiMULiNK-Blöcke aus der Bibliothek Discrete Z-1
>
z
Berechnet die Differenz der Zahlenfolge
Difference Eingang
Zahlenfolge Uk
Ausgang
Vk = uk~
Function Block Parameters: Initial condition for previous input
Difference Anfangswert
Uk-i
4.4 SiMULlNK-Blöcke aus der Bibliothek Discrete
>
K(z-1)
>
Ts z
101
Berechnet die diskrete Ableitung.
Dis crete Derivat ve
Eingang
Zahlenfolge Uk
Ausgang
Vk =
Function Block Parameters:
Discrete Derivative gewichteter Anfangswert
Initial value for previous weighted input K *u/Ts
>
1
>
uk-1)
Modelliert ein lineares System mittels einer diskreten Ubertragungsfunktion.
z+0.5 Discrete Transfer Fon
Eingang
Zahlenfolge uk
Ausgang
Vk — Uk * hk, wobei * die Faltung der z-Transformation (Kapitel 5, 6) ist und hk das (z-Transformation)-Urbild zur diskreten Ubertragungsfunktion (Transfer Fcn) ist, die unten beschrieben ist.
Function Block Parameters:
Discrete Transfer Fcn
Numerator
Zählerpolynom der Ubertragungsfunktion in der MATLAB-spezifischen Darstellung (vgl. Kapitel 2.2.1).
Denominator
coefficient coefficient
Nennerpolynom der Ubertragungsfunktion MATLAB-spezifischen Darstellung.
in
der
4 Zusammenfassung (SIMULINK-Blöcke)
102
>
K Ts
>
z-1 Discrete-Time Integrator
Führt eine diskrete Integration durch.
Eingang
Zahlenfolge un
Ausgang
yn, die diskrete Integration zu un
Function Block Parameters:
Discrete-Time Integrator
Integrator method
Wahl der Integrationsmethode. Voreingestellt ist die Forward Euler Methode, für die y(n) = y(n - 1) + KTsu{n - 1) gilt.
Gain Value
Verstärkungsfaktor K
Initial
Anfangswert yo
condition
Sample
Time
4.5
Schrittweite Ts
SlMULlNK-Blöcke aus der Bibliothek Math Operations
>+ >
+
>
Addiert oder subtrahiert Eingangsgrößen.
Add Eingang
mehrere Zahlenenfolgen
Ausgang
Summe oder Differenz der Zahlenfolgen.
Function Block Parameters:
Add Zeichenfolge aus + und — Zeichen. Die Anzahl der Zeichen legt die Anzahl der Zahlenfolgen am Eingang fest
List of signs
4.6 SlMULlNK-Blöcke aus der Bibliothek Sinks
> eU
103
>
Führt eine mathematische Funktion (Operation) aus Math Function
Eingang
Funktion (an den Simulationszeitpunkten)
Ausgang
Funktion (an den Simulationszeitpunkten) nach Anwendung der ausgewählten Funktion (Operation).
Function Block Parameters:
Math Function
Function
Uber den auswählen.
> sin
Rollladen
die
Funktion
(Operation)
>
Führt eine trigonometrische Funktion aus Trigonometrie Function
Eingang
Funktion (an den Simulationszeitpunkten)
Ausgang
Funktion (an den Simulationszeitpunkten) nach Anwendung der ausgewählten trigonometrische Funktion.
Function Block Parameters:
Trigonometrie Function
Function
Uber den Rollladen die Funktion auswählen.
4.6
SlMULlNK-Blöcke aus der Bibliothek Sinks Stellt die durch die Simulation generierten Daten dar.
Scope
Eingang
Die eingeghenden Daten zu den Simulationszeitpunkten werden über der Zeit dargestellt.
Ausgang
-
Daten darstellen
Doppelklick auf Scope ausführen
4 Zusammenfassung (SIMULINK-Blöcke)
104
>u n t i t l e d . m a t
Schreibt die Ergebnisse der Simulation in eine Datei.
T o File
Eingang
Daten, die gespeichert werden sollen. Die Daten werden in einer Matrix gespeichert, die in der ersten Zeile die Simulationszeitpunkte enthält. Die weiteren Zeilen enthalten Simulationsergebnisse zu den Zeitpunkten der ersten Zeile.
Ausgang
-
Sink Block Parameters: Filename Variablenname
To File Dateiname mit der Erweiterung .mat, unter dem die Daten gespeichert werden. Variablenname, unter dem man nach dem Offnen der Datei (unter Filename) die gespeicherten Daten weiterverarbeiten kann.
5
Transformationen
In diesem Kapitel werden die Grundlagen der Laplace- und der z-Transformation erläutert. Eine ausführliche Darstellung der Laplace-Transformation und der z-Transformation findet man in Doetsch [1]. Ziel dieser Darstellung ist zu zeigen, dass die Laplace-Transformation — obwohl über ein scheinbar unangenehmes Integral definiert — dazu dient, Differentialgleichungen in algebraische Gleichungen überzuführen, die sich bequemer behandeln lassen als Differentialgleichungen.
5.1
Laplace-Transformat ion
Ist f(t) für i > 0 gegeben, dann heißt für s € C oo F(s) = J f(t)e~ts
dt
(5.1)
o die Laplace-Transformierte zu f (in s). 1 /(£) heißt Originalfunktion oder Urbildfunktion. F(s) heißt Bildfunktion. Ziel dieses Abschnitts ist nicht explizit zu integrieren, sondern die benötigten Integrale einer Tabelle zu entnehmen. Man schreibt zur Abkürzung
m
F(s).
So gilt etwa2 1 o-
e
o
•
. s—a
Eine ausführliche Tabelle mit Funktionen und ihren Lapace-Tansformierten und eine Tabelle mit Rechenregeln für die Laplace-Transformation findet man in Kapitel 6. 1 Wir setzen das Integral als konvergent voraus für ein so € C. Dann konvergiert das Integral in (5.1) für Re(s) > Äe(so). Für beschränkte Funktionen / ( t ) konvergiert das Integral für Re(s) > 0. oo 2 Für f ( t ) = 1 gilt F(s) = / e~ts dt = Re(s) > 0.
5 Transformationen
106
5.1.1
Anwendung der Laplace-Transformation (Schema) Originalbereich £ Differentialgleichung gegeben
Bildbereich Trafo —> algebraische
Gleichung
i l
Umformung
i
C~l - Trafo -pF k=0
(5-4)
5 Transformationen
108
die z- Transformierte3 zu fk (in der Variablen z).4 Wie bei der Laplace-Transformation spricht man nun von der Zahlenfolge fk als Urbild(funktion) zur Bildfunktion F(z). Man schreibt zur Abkürzung (wie bei der Laplace-Transformation) fk o
.F(z).
Verwechslungen der Bezeichnung mit der Laplace-Transformation sind i.A. ausgeschlossen. In diesem Buch wird im Rahmen der Laplace-Transformation die Variable s, im Rahmen der z-Transformation die Variable z verwendet. Es gilt für / fc = 1, fc = 0,1,2,...5 fk = 1 O
•
z Z-
1
Eine Tabelle mit Rechenregeln und z-Transformierten findet man in Kapitel 6.
5.2.1
Anwendung der z-Transformation (Schema) Originalbereich Z Differenzengleichung gegeben
Bildbereich Trafo —> algebraische i i i
Differenzengleichung gelöst
Gleichung
Umformung
Z-1 - Trafo *— Lösung der gleichung im
DifferenzenBildbereich
Hier bei steht Z — Trafo für die z-Transformation und Z 1 — Trafo für die Inverse zTransformation oder Rücktransformation. Diese führen wir mit unseren Tabellen durch.
3 D i e in (5.4) gegebene unendliche Reihe ist eine Laurentreihe, benannt nach dem französischen Mathematiker und Ingenieur Pierre Alphonse Laurent (1813-1854), so dass diese Transformation auch Laurent-Transformation genannt werden könnte. Setzt man z = so ist die rechte Seite von (5.4) eine Potenzreihe in x. 4 W i r setzen voraus, dass die unendliche Reihe in (5.4) für ein zo £ C konvergiert. Dann konvergiert sie auch für \z\ > |zo|. Für beschränkte Zahlenfolgen fk konvergiert die Reihe in (5.4) für Re(z) > 1. oo 5 E s ist fk = 1 £ ( I ) f c = j i j - , wobei zur Auswertung der unendlichen Reihe die geometrische k=o
Reihe verwendet wurde.
5.2 z-Transformation
109
Beispiel 6
Originalbereich
Bildbereich Z-
Z'1 Vk = 2/o(l + T)k
Trafo
—
Trafo
l | I Y{z)=y0-
U m formung
Z
_
(
l
+ T )
Hierbei wurde zur Transformation die Regeln Differenz (Urbild) und Linearität aus der Tabelle z-Transformation (Regeln) verwendet. Die Umformung erfolgt mit elementarsten Methoden der Mathematik. Bei der Rücktransformation wurde die Linearität aus der Tabelle z-Transformation (Regeln) verwendet und aus der Tabelle z-Transformation (Punktionen) die Urbildfunktion ak zur Bildfunktion mit a = 1 + T.
6 Die Differenzengleichung ist entstanden durch Diskretisierung der Differentialgleichung y' = y. Aus der Lösung yfc = yo(l + T)k der Differenzengleichung kann auch wieder die Lösung y(t) = y(0)ef der zugehörigen Differentialgleichung y' = y gewonnen werden, denn y\. ÄS y(kT) = y(0)ekT = j/(0)e' für
t = kT und y 0 (l + T)k = y0el» 1 0 , falls k = 0
z—a (z-
(*) , falls k > m 0 , falls k < m kak,
sin (kT) cos (kT) ak
sm(kT)
ak
cos (kT)
1)2 Z
(z -
l)m+!
za
o^O
f (^)o* , falls k>m \ 0 , falls k < m
meN,
1 z
k
aeC,
Bildfunktion
zam (z -
a)m+1
z sin T z2 - 2z cos T +1 z2
z(z — cos T) -2zcosT+ 1
az sin T z2 — 2azcosT + a2 z2
z(z — acosT) — 2az cos T + a2 z(z2 - 1) sinT
ksin(kT)
(z2
k cos(kT)
z((z2 + 1) cosT — 2z) (z2 — 2zcosT + l)2
T>0
~2zcosT+l)2
115
6 Tabellen
z - Transformation (Regeln) Bezeichnungen: C;
a,a,ßE
o—•
fk
F{z)
;
gk
Urbildfunktion
o
»G(z)
Bildfunktion
a/fc + ßgk
°
akfk
o
A/fe = / fc+1 - fk A/fc_i = / f c - / fc _!
•
üF(z) + ßG(z)
Linearität
Fi-)
Ähnlichkeit (a ^ 0)
o—•
(z - l ) F ( z ) - z/o
Differenz (Urbild)
o
^ F ( z ) - /—i
Differenz (Urbild)
.
•
a
fc-i 1.Summation r=0 2.Summation r=0 fc/fc
o
•
/ fc+m
O—•
-zF'(z)
Ableitung (Bild) m —1
f / fc _ m , falls k>m \ fk-m = 0 , falls k < m
k
r=0
k fr9k-r
a
o—
(.f*g)k= =
o
= E
r=0
fk—r9r
zm(F(z)-
z-mFiz\
F(z)-G(z)
r=0
2.Verschiebung
1. Verschiebung
Faltung
Literaturverzeichnis [1] Doetsch, Gustav: Anleitung zum praktischen Gebrauch der LaplaceTransformation und der z-Transformation, R.Oldenbourg-Verlag, München, (1989). [2] Föllinger, Otto: Laplace- und Fourier-Transformation, u.a., (1986).
Hüthig-Verlag, Berlin
[3] Grupp, Florian / Grupp, Frieder: MATLAB für Ingenieure, Oldenbourg-Verlag, München, (2005). [4] Hämmerlin, Günther / Hoffmann, Karl-Heinz: Numerische Springer-Verlag, Berlin u.a., (1984). [5] Heuser, Harro: Gewöhnliche Differentialgleichungen, gart, (1989).
Mathematik,
Teubner-Verlag, Stutt-
[6] Papula, Lothar: Mathematik für Ingenieure und Naturwissenschaftler, 1-3, Vieweg-Verlag, Wiesbaden, (2001).
Band
[7] Stoer, Josef / Burlisch, Roland: Einführung in die Numerische Mathematik II, Springer-Verlag, Berlin u.a., (1990).
Index A Ableitung, 71 Ableitung, diskretisiert, 13, 72 Add, 21, 30, 102 Amplitude, 9 Anfangswert, 13, 15 a n o n y m e Funktion, 52 Ausgabe, P a r a m e t e r s , 10 Ausgabe, speichern, 11 Ausgang, SiMULlNK-Block, 19 Ausgangsgröße, 75, 77 Autoscale, 6, 13
B bias, 9 Bogenmaß, 9
c
clear, 53 Clock, 4, 6, 95 Constant, 37, 95 Configuration P a r a m e t e r s , 10, 13, 16, 24, 94 current directory, 23
D
d e n o m i n a t o r coefficient, 22, 28, 32 Derivative, 8, 99 D g l E r s t e r O r d l . m d l , 19 D g l E r s t e r O r d 2 . m d l , 21 D g l E r s t e r O r d 3 . m d l , 22 DglErster0rd3Aus, 23, 51 DglErster0rd3Data.mat, 22, 51 DglErster0rd3w, 23, 51 DglOrdlDef.m, 50 DglOrdlEin File.m, 52 DglOrdlLoesen.m, 50 D g l P a r a l . m d l , 24, 52, 56
DglParalAus, 24, 55 DglParalData.mat, 24, 55 DglParalFunction.m, 53 DglParalScriptl.m, 53 DglParalScript2.m, 54 DglParalScript3.m, 56 D g l P a r a 2 . m d l , 26, 57 DglPara2Script.m, 57 DglSystemel.mdl, 40, 65, 87 DglSystemelAus, 41 DglSystemelData.mat, 41 DglSystemelScript.m, 65 D g l S y s t e m e l a . m d l , 42, 65, 87 DglSystemelaAus, 42 DglSystemelaData.mat, 42 D g l S y s t e m e 2 . m d l , 42, 66 DglSysteme2Aus, 66 DglSysteme2Data.mat, 66 DglSysteme2Scriptl.m, 43 DglSysteme2Script2.m, 66 D g l S y s t e m e 3 . m d l , 44, 67 DglSysteme3Aus, 67 DglSysteme3Data.mat, 67 DglSysteme3Script.m, 67 D g l S y s t e m e 4 . m d l , 45, 68 DglSysteme4Aus, 68 DglSysteme4Data.mat, 68 DglSysteme4Script.m, 68 D g l Z w e i t e r O r d l . m d l , 30 DglZweiterOrdlAus, 31 DglZweiterOrdlData.mat, 31 D g l Z w e i t e r O r d 2 . m d l , 32 DglZwe iter0rd2Aus, 33 DglZwe it erOrd2Dat a.mat, 33 D g l Z w e i t e r O r d 3 . m d l , 33, 84 DglZweiter0rd3Aus, 33 DglZweiter0rd3Data.mat, 33 D g l Z w e i t e r O r d 4 . m d l , 36, 62 DglZweiter0rd4Aus, 37
Index
120 DglZweiter0rd4Data.mat, 37 DglZweiterOrdScriptl.m, 61 DglZweiter0rdScript2.m, 61 DglZweiterOrdScript4.m, 62 Difference, 12, 100 Differentialgleichung, 19, 24 erster Ordnung, 74 linear, 19, 30, 68 mit MATLAB lösen, 52 mit Parametern, 24 Systeme, 39 zweiter Ordnung, 30, 35, 80 differenzieren, 8, 49, 71 diskret, 11 m i t MATLAB, 4 9
Differenzengleichung erster Ordnung, 19, 23, 50, 74 zweiter Ordnung, 35, 80 Differenzieren.mdl, 8 DifferenzierenData, 10, 50 DifferenzierenDiskretl.mdl, 12 DifferenzierenDiskret2.mdl, 14 DiffErsterOrd.mdl, 28 DiffErsterOrdScript.m, 59 DiffErsterOrdw, 29, 60 DiffZweiterOrdl.mdl, 38 DiffZweiterOrdlAus, 38 DiffZweiterOrdlData.mat, 38, 64 DiffZweiterOrdScript.m, 63 DiffZweiterOrd2.mdl, 38 DiffZweiter0rd2Data.mat, 38 Discrete Derivative, 14, 101 Discrete-Time Integrator, 17, 74, 97,102 Discrete Transfer Fcn, 27, 37, 79, 101
E
Eingabe, SIMULINK-Modell, 25 Eingang, SLMULINK-Block, 19 Eingangsgröße, 58, 75, 78, 80 Einschaltvorgang, 56, 79 Entstörfilter, 44, 67, 90 Euler Method, 18 ExpDiskret.mat, 27
F
Faltung, 76 Fernglas, 6, 13 Frequency, 9 From File, 12, 96 Function Block Parameters, 5, 13, 19, 93 Funktionen differenzieren, 8, 49, 71 diskretisieren, 71 integrieren, 15, 50, 73 skizzieren, 3, 49, 71 function file, 54
G
Gain, 4, 13, 98 Gradmaß, 9 Großschreibung, 55
H
HTML-Report, 95
I
initial condition, 13, 14 integrieren, 15, 73 diskret, 17 m i t MATLAB, 5 0
numerisch, 50 Integrator, 15, 73, 97 discrete time, 74 Integrieren.mdl, 15 IntegrierenDiskret.mdl, 17 IntegrierenData, 16
K
Kleinschreibung, 55
L
Laplace-Transformation, 105 I^EXSchreibweise, 8 load, 51
M
.mat-files, 12 Math Function, 4, 21, 103
Index Math Operations, 3, 4 Mathematisches Pendel, 36, 84 MATLAB, 1, 4 9
Command Window, 2, 12, 49 current directory, 23 Oberfläche, 1 Symbol, 23 workspace, 11, 23, 25 Matrix, 16 max step, 16, 24, 44 Mux, 8, 98
N Nennerpolynom, 22, 32 numerator coefficient, 28, 32
o
ode, 71
P Parameter in SLMULLNK-Blöcken, 24
über Command Window, 25, 52 über function file, 52 über script file, 52 Wahl der, 24, 58, 84 Pfeil, 7 aktivieren, 7 anpassen, automatisch, 20 entfernen, 21 schnell zeichnen, 8 mit Text versehen, 7 verschieben, 7 ziehen, 5, 19 phase, 9 plot,11 Polynome in MATLAB, 5 1
R Räuber-Beute-Modell, 47, 91 Rechteckfunktion, 30, 82 Rechteckregel, 73 Reihenschwingkreis, 83 Rückkopplung, 19, 24, 30 ohne, 21, 27, 32
121
s
sample time, 18 Schrittweite, 10 schwarzes Dreieck, 19 script file, 25 Schwingung.mdl, 4 Schwingungstilger, 42, 66, 89 Scope, 5, 13, 103 Parameters, 10 sim, 53, 54, 57, 58 Optionen, 58 simset, 57, 58 Simulation, in MATLAB starten, 25 Configuration Parameters, 10, 16, 24 Dauer der, 31, 44, 57 starten 6, 10, 18 Simulink, 2 SLMULINK, 2
help, 14 starten, 2 SLMULLNK-Bibliothek, 2 SLMULINK-Block, 3
Add, 21, 30, 102 aktivieren, 4 Ausgang, 19 beschriften, 7 Clock, 4, 6, 95 Constant, 37, 95 Difference, 12, 100 Derivative, 8, 99 Discrete Derivative, 14, 101 Discrete-Time Integrator, 74,97,102 Discrete Transfer Fen, 27, 79, 101 drag and drop, 4 drehen, 20, 22 Eingang, 19 entfernen, 15 ergänzen, 7 Gain, 4, 13, 98 Hilfe, 14 Inhalte ändern, 5 Integrator, 15, 73, 97 Math Function, 4, 103
Index
122
Mux, 8, 98 positionieren, 4 Schrift, 5 Scope, 5, 13, 103 Sine Wave, 4, 96 Sinus, 36 skalieren, 5 State-Space, 42, 87, 99 Step, 30, 97 To File, 104 Transfer Fen, 22, 32, 93 Transfer Fen diskret, 27, 101 Trigonometric Function, 103 Unit Delay, 38, 102 untitled.mat, 28, 38, 51 verbinden, 5 vergrößern, 5 verschieben, 4 ziehen, 3 zoomen, 5 SiMULlNK-Blockschaltbild verschieben, 21 SiMULlNK Library Browser, 2 Sinks, 3, 5 Sources, 3, 75, 95 SlMULlNK-Modell, 2, 93 anlegen, 3, 8 als diskret vereinbaren, 13, 28 ausführen, 6 bilden, 3 Daten einlesen, 11 diskret, 11 öffnen, 3, 6 Text einfügen, 7 speichern, 4 SiMULlNK-Symbol, 2 SinDiskret.mat, 12
Sine Wave, 4, 96 Sinks, 3, 75, 80 Sinus, 36 solver, 29 Sources, 3, 80 Source Block Parameters, 9 State-Space, 42, 87, 99 StateSpaceln.mat, 42 StateSpaceScript.m, 42
Step, 30, 97
stop time, 24 Stützwert, 16 Subsystem, 42, 46 Symbol Fernglas, 6 Systeme von Differentialgleichungen, 39 lineare, 87 nichtlineare, 45
T Tabellen, 111 time range, 20 To File, 22, 24, 104 Transfer Fcn, 22, 32, 101 Transfer Fcn diskret, 27 Transformation, 107 Trapezregel, 18, 73 Trigonometrie Function, 103
u
Übertragungsfunktion, 22, 32, 56, 76, 77, 78, 79, 80, 81, 86 diskret, 28 Unit Delay, 38, 102 untitled.mat, 28, 38, 51
V Variable lokale, 54
w Wechselspannung, 75, 77 workspace, 11, 23, 25
z Zählerpolynom, 33, 42, 51, 100, 101 z-Transformation, 107