06.04.2014 Aufrufe

MATLAB-Simulink - Umwelt-Campus Birkenfeld

MATLAB-Simulink - Umwelt-Campus Birkenfeld

MATLAB-Simulink - Umwelt-Campus Birkenfeld

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!