MATLAB-Simulink - Umwelt-Campus Birkenfeld
MATLAB-Simulink - Umwelt-Campus Birkenfeld
MATLAB-Simulink - Umwelt-Campus Birkenfeld
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
<strong>MATLAB</strong>-<strong>Simulink</strong>
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
1. Einführung in <strong>Simulink</strong><br />
<strong>Simulink</strong> ist eine <strong>MATLAB</strong>-Toolbox zur Simulation Dynamischer Systeme<br />
mit Hilfe einer grafischen Benutzeroberfläche.<br />
Insbesondere eignet sich <strong>Simulink</strong> zur Behandlung linearer und nichtlinerarer<br />
zeitabhängiger Vorgänge, die durch Differentialgleichungen beschrieben<br />
werden. Weiterhin findet es Anwendung bei der Simulation von Schalt- und<br />
Regelkreisen.<br />
Hierbei werden die mathematischen Beziehungen in Form von Blockschaltbildern<br />
aufgestellt und das Verhalten des Eingangssignals simuliert.<br />
Die Ergebnisse der Simulation lassen sich grafisch darstellen oder an<br />
<strong>MATLAB</strong> übergeben.<br />
<strong>Simulink</strong> stellt einen numerischen Differentialgleichungslöser dar, dessen<br />
lineare Funktionsblöcke überwiegend auf der Basis der Laplace-<br />
Transformation beruhen.<br />
<strong>Simulink</strong><br />
2
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
1.1 Funktionalität<br />
Der Start von <strong>Simulink</strong> erfolgt durch die Eingabe des Befehls „<strong>Simulink</strong>“ im<br />
Kommandofenster von <strong>MATLAB</strong>.<br />
Es öffnet sich der <strong>Simulink</strong> Library Browser.<br />
Die Blockbibliothek enthält nach Funktionsgruppen<br />
unterteilte Funktionsblöcke zur Erzeugung,<br />
Verarbeitung und Ausgabe von Signalen.<br />
Bei Anwahl eines Listeneintrages werden die<br />
zugehörigen Funktionssymbole angezeigt. Für<br />
die Funktionsgruppe Continous lässt sich<br />
beispielsweise der Funktionsblock Integrator.<br />
Das System ist vom Anwender durch eigene<br />
Funktionsblöcke erweiterbar.<br />
<strong>Simulink</strong><br />
3
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
1.2 Aufbau eines Blockschaubildes<br />
Prof. Dr.-Ing. T. Preußler<br />
Zur Aufbau eines <strong>Simulink</strong>-Modells ist im <strong>Simulink</strong>-Browser mit File/Open<br />
ein Arbeitsfenster zu öffnen, in dem grafisch das Blockschaltbild erzeugt<br />
werden kann.<br />
Durch ziehen mit der Maus lässt sich z. B.<br />
aus der Funktionsgruppe Sources die Funktion<br />
Sine Wave in das Grafikfenster kopieren<br />
Das Modell wird mit einem geeigneten Dateinamen als mdl-File gespeichert.<br />
<strong>Simulink</strong><br />
4
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
In einem nächsten Schritt soll das Sinussignal integriert werden. Dazu wird<br />
aus der Funktionsgruppe Continous der Funktionsblock Integrator in das<br />
Grafikfenster gezogen und mit der Maus der Ausgang des Signalblocks mit<br />
dem Eingang des Integrators verbunden.<br />
Der Funktionspfeil zeigt die Richtung des Signals an. Vorteilhaft ist es, wenn<br />
die Verbindungen immer vom Eingangssignal zum Ausgangssignal gezogen<br />
werden. Bei Bedarf lassen sich die Funktionsblöcke in ihrer Größe ändern und<br />
umbenennen.<br />
<strong>Simulink</strong><br />
5
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Das Quellsignal soll zusammen mit dem Ergebnis der Integratíon dargestellt<br />
werden. Dazu wird aus der Funktionsgruppe Signal Routing der Funktionsblock<br />
Mux und aus Sinks der Funktionsblock Scope in das Grafikfenster<br />
gezogen und die miteinander verbunden.<br />
Um Ecken zu erzeugen, wird die Maustaste beim Erzeugen der Verbindungen<br />
kurz losgelassen. Die Verbindung zweier Signalpfade ist korrekt, wenn an der<br />
Verbindungsstelle ein Punkt erscheint.<br />
<strong>Simulink</strong><br />
6
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
1.3 Parametrisierung von Funktionen<br />
Vor der Simulation müssen i. allg. die Parameter der verwendeten<br />
Funktionsblöcke eingestellt werden.<br />
Doppelklick auf den Funktionsblock Quellsignal<br />
öffnet das zugehörige Parameterfenster.<br />
Für die Sinusfunktion soll die<br />
Amplitude 2 betragen und die Frequenz auf<br />
2π entsprechend 1 Hz eingestellt werden.<br />
Hierzu kann die <strong>MATLAB</strong>-Konstante pi<br />
verwendet werden.<br />
Der Nullphasenwinkel und alle anderen<br />
Parameter bleiben zunächst unverändert.<br />
werden die Parameter übe-<br />
Mit OK<br />
nommen<br />
<strong>Simulink</strong><br />
7
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Ebenfalls parametrisiert werden die Funktionsblöcke des Multiplexers und der<br />
Anzeige, der Integratorblock wird auf den Anfangswert Null initialisiert.<br />
Die Anzahl der Eingänge des Multiplexers wird auf 2 eingestellt und dessen<br />
Darstellung verändert. Beim Ausgabeblock wird die Beschränkung auf 5000<br />
Datenpunkte aufgehoben und die Ergebnisse in der Array-Variablen<br />
Sinussignal an <strong>MATLAB</strong> übergeben.<br />
<strong>Simulink</strong><br />
8
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Abschließend lassen sich die Verbindungen durch Doppelklick beschriften.<br />
Doppelklick auf freie Stellen erzeugen ein frei verschiebbares Textfeld für<br />
weitere Informationen.<br />
Mit der linken Maustaste lassen sich die Funktionsblöcke bearbeiten und z. b.<br />
farblich gestalten.<br />
<strong>Simulink</strong><br />
9
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
1.4 <strong>Simulink</strong>-Simulation<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Zur Durchführung der Simulation müssen unter Simulation/Simulation<br />
Parameters die Einstellungen für die Simulation vorgenommen werden.<br />
Hierbei interessieren nur die<br />
Solverparameter. Die Simulationszeit<br />
wird mit 2π vorgegeben. Alle<br />
anderen Einstellungen werden<br />
übernommen. Es wird als Lösungsmethode<br />
der auf dem Runge-Kutta-<br />
Verfahren beruhende ode45-Solver<br />
verwendet.<br />
Mit Simulation/Start wird die<br />
Simulation gestartet.<br />
<strong>Simulink</strong><br />
1<br />
0
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Als Ergebnis der Simulation erhält man durch anklicken des Anzeigeblocks<br />
den Verlauf des Quellsignals (rot) und des zugehörigen Integrals (gelb).<br />
Auf der <strong>MATLAB</strong>-Kommando-Ebene erkennt<br />
man, dass <strong>Simulink</strong> die Daten als<br />
dreispaltiges Feld übergeben hat.<br />
Sinussignal =<br />
0 0 0<br />
0.1257 0.0942 1.4201<br />
0.2513 0.3210 1.9999<br />
0.3770 0.5462 1.3964<br />
0.5027 0.6366 -0.0334<br />
0.6283 0.5386 -1.4434<br />
: : :<br />
Mit dem Befehl<br />
>> plot(Sinussignal(:,1),[Sinussignal(:,2),Sinussignal(:,3)])<br />
lassen sich die Ergebnisse im Grafikfenster<br />
von <strong>MATLAB</strong> ebenfalls darstellen.<br />
<strong>Simulink</strong><br />
11
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
1.5 Schrifttum<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Ottmar Beucher:<br />
<strong>MATLAB</strong> und <strong>Simulink</strong><br />
Pearson-Verlag, 2006<br />
A. Angermann, M. Beuschel, M. Rau, U. Wohlfarth:<br />
Matlab - <strong>Simulink</strong> - Stateflow<br />
Oldenburg-Verlag, 2005<br />
Josef Hoffmann:<br />
Matlab und <strong>Simulink</strong>: Beispielorientierte Einführung in die Simulation<br />
dynamischer Systeme<br />
Addison-Wesley, 1998<br />
<strong>Simulink</strong><br />
1<br />
2
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
Übung 1<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
1) Vollziehen Sie das angegebene Beispiel nach<br />
2) Probieren Sie das Beispiel für verschiedene Simulationsschrittweiten<br />
unter Verwendung der Schrittweitensteuerung aus. Vergleichen Sie<br />
auch die Ergebnisse bei fester Schrittweite von 0,2, wenn als Solver<br />
ode1 bis ode5 verwendet wird.<br />
3) Ändern Sie das Quellsignal durch Einfügen der Funktionsblöcke Pulse<br />
Generator bzw. Repeating Sequence mit der Aplitude 2 und der<br />
Periode π/4. Testen Sie weitere Quellsignale!<br />
4) Ersetzen Sie den Integrationsblock durch den Differenzierblock<br />
Derivative und testen Sie entsprechend den Punkten 2 und 3. Was fällt<br />
auf?<br />
<strong>Simulink</strong><br />
1<br />
3
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
2. <strong>Simulink</strong>-Blockbibliothek<br />
<strong>Simulink</strong> – Sources (Eingangsgrößen)<br />
Konstant einstellbarer Wert<br />
Impulse mit variabler Höhe, Frequenz, Breite (Pulse<br />
Width) und Verschiebung (Phase Delay)<br />
Liefert die aktuelle Simulationszeit<br />
Funktionsgenerator zur Erzeugung verschiedener<br />
Eingangssignale<br />
Sinussignal mit einstellbarer Amplitude, Lage (Bias),<br />
Frequenz und Nullphasenwinkel (Phase)<br />
Sprung mit variabler Sprunghöhe (Final Step) und<br />
definiertem Sprungbeginn (Step Time)<br />
<strong>Simulink</strong><br />
14
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
<strong>Simulink</strong> – Sinks (Ausgabeblöcke)<br />
Ausgabe numerischer Werte in einer Anzeige<br />
Stoppt Simulation, wenn Eingang ungleich Null<br />
Grafische Ergebnisdarstellung von werten auf einem<br />
Monitor (Oszilloskop)<br />
Ausgabe von Zahlenwerten in Datei, die von <strong>MATLAB</strong><br />
gelesen werden kann<br />
Ausgabe von Zahlenwerten in Arbeitsspeicher von<br />
<strong>MATLAB</strong><br />
Darstellung von Diagrammen<br />
<strong>Simulink</strong><br />
15
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
<strong>Simulink</strong> – Continous (Übertragungsfunktionen)<br />
Differenzierer<br />
Integrator<br />
Verschiebt Signal um festen Betrag (Delay)<br />
<strong>Simulink</strong> – Signalrouting (Signalführung)<br />
Führt Signale zusammen (Mulitplexer)<br />
Spaltet Vektorsignale in separate Variablen<br />
Schaltet Eingänge in Abhängigkeit vom Wert der<br />
Signalleitung<br />
<strong>Simulink</strong><br />
16
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
<strong>Simulink</strong> – Math Operation (Mathematische Verknüpfungen)<br />
Absolutwert<br />
Multiplikation mit einem Zahlenwert (Skalar)<br />
Mathematische Funktionen<br />
Multiplikation bzw. Division<br />
Ausgabe des Minimums oder Maximums der Eingabe<br />
Vorzeichenfunktion (Signum)<br />
Summation bzw. Subtraktion<br />
Trigonometrische Funktionen<br />
<strong>Simulink</strong><br />
17
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
3. Differentialgleichung in <strong>Simulink</strong><br />
Differentialgleichungen erster Ordnung werden in <strong>Simulink</strong> gelöst, indem<br />
das Ausgangssignal des Integratorblocks auf seinen Eingang gelegt wird.<br />
Für die homogene lineare Differentialgleichung 1. Ordnung<br />
y ' =<br />
y<br />
y( 0) =<br />
1<br />
ergibt sich folgende Lösung<br />
<strong>Simulink</strong><br />
18
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Differentialgleichungen höherer Ordnung werden gelöst, indem mehrere<br />
Integratorblöcke miteinander verbunden werden.<br />
Für die homogene lineare Differentialgleichung 2. Ordnung<br />
y'<br />
' = −2y<br />
y( 0) = 1, y' (0) = 0<br />
folgt<br />
Der Gain-Block lässt sich mit rechte Maustaste/Format/Flip block spiegeln.<br />
<strong>Simulink</strong><br />
19
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
Das Störglied einer inhomogenen Differentialgleichung wird mit Hilfe des<br />
Funktionsblocks Clock implementiert, der den Zeitschritt liefert.<br />
Für die inhomogene lineare Differentialgleichung 2. Ordnung<br />
y'<br />
' =<br />
e<br />
x<br />
− 2y<br />
y( 0) = 1, y' (0) = 0<br />
folgt unter Verwendung des Funktionsblocks Math Function<br />
<strong>Simulink</strong><br />
20
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
Übung 2<br />
Lösen Sie mit <strong>Simulink</strong> die sog. logistische Differentialgleichung<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
y'<br />
=<br />
a ⋅<br />
y<br />
− b ⋅<br />
y<br />
2<br />
in den Grenzen von 0 bis 200 mit a = 0,05, b = 10 -6 für den Anfangswert<br />
y(0) = 1000 und stellen Sie das Ergebnis grafisch dar.<br />
Variieren Sie die Parameter a und b. Wie Verändert sich das Ergebnis?<br />
Hinweis: Die logistische Differentialgleichung beschreibt Wachstumsprozesse<br />
unter Berücksichtigung begrenzter Resourcen. Die analytische Lösung<br />
lautet:<br />
a<br />
y = a<br />
mit c = −<br />
−ax<br />
b + c ⋅e<br />
y(0)<br />
b<br />
<strong>Simulink</strong><br />
2<br />
1
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
4. Modularisierung von Systemen<br />
<strong>Simulink</strong>-Systeme können schon bei der Simulierung einfacher Systeme<br />
recht umfangreich und unübersichtlich werden.<br />
4.1 Fcn-Block<br />
Mit Hilfe des Fcn-Blocks aus der Funktionsgruppe UserDefined Functions<br />
lassen sich ganze Formeln unter Verwendung der <strong>MATLAB</strong>-Syntax in einer<br />
Einheit zusammenzufassen, so dass auf Elementarblöcke (z. B. Sum oder<br />
Gain) verzichtet werden kann.<br />
Die unabhängige Variable des Fcn-Blocks (Eingangssignal) muss mit u bezeichnet<br />
werden. Es kann eine skalare oder vektorielle Größe sein. Mehrere<br />
Einganssignale müssen zunächst zu einer vektoriellen Größe zusammengefasst<br />
werden. Die Komponenten werden durch ihren Index angesprochen.<br />
<strong>Simulink</strong><br />
22
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
4.2 Subsysteme<br />
Mit Hilfe selbstdefinierter Funktionsblöcke lassen sich <strong>Simulink</strong>-System modularisieren.<br />
Hierzu werden diese zusammen mit ihren Verbindungen selektiert<br />
und mit Edit/Create Subsystem zu einem Subsystem zusammengefaßt.<br />
Durch Doppelklick auf den Funktionsblock öffnet sich ein Fenster mit dem<br />
Inhalt des Subsystems. Mit View/Model Browser Options/ Model Browser<br />
lasst sich die Funktionsblöcke in hierarchischer Struktur darstellen<br />
<strong>Simulink</strong><br />
23
<strong>Umwelt</strong>-<strong>Campus</strong> <strong>Birkenfeld</strong><br />
Numerik<br />
der Fachhochschule Trier<br />
Prof. Dr.-Ing. T. Preußler<br />
4.3 Interaktion mit <strong>MATLAB</strong><br />
Wie bereits in 1.3 erläutert, lassen sich mit dem Funktionsblock Scope die<br />
Ergebnisse einer <strong>Simulink</strong>-Berechnung in einem Feld abspeichern, das in<br />
<strong>MATLAB</strong> weiter verarbeitet werden kann.<br />
Umgekehrt können in <strong>MATLAB</strong> definierte Variablen an <strong>Simulink</strong> übergeben<br />
werden, indem in die entsprechenden Funktionsblöcke die Variablen<br />
eingetragen werden. Der Funktionsblock <strong>MATLAB</strong> Fcn eignet sich zur<br />
Übergabe von Funktionen aus der <strong>MATLAB</strong>-Umgebung, wobei diese auch<br />
als Inlinefunktion definiert werden können.<br />
Weiterhin besteht die Möglichkeit, mit der <strong>MATLAB</strong>-Funktion sim eine<br />
<strong>Simulink</strong>-Berechnung zu starten, wobei auch eine Reihe von Simulationsparameter<br />
mit übergeben werden können (s. help sim).<br />
Weitere Optionen lassen sich mit dem Befehl simset einstellen.<br />
<strong>Simulink</strong><br />
24