MATLAB-Simulink - Umwelt-Campus Birkenfeld

29 downloads 196 Views 636KB Size Report
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