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