MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen...

18
Ottmar Beucher MATLAB und Simulink Eine kursorientierte Einführung

Transcript of MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen...

Page 1: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Ottmar Beucher

MATLAB und SimulinkEine kursorientierte Einführung

Außerdem bei mitp:

Aus dem Inhalt:• Rechnen und Visua-

lisieren mit MATLAB: Variablen, arithmetische Operationen, logische und relationale Operationen, mathematische Funktio-nen, Grafi kfunktionen, I/O-Operationen, elemen-tare Matrixmanipulationen

• Elementare Programmierung: Scripts und Funktionen, prozedurale Sprachkon-strukte, Function Handles, Lösung von Differential-gleichungen, symbolische Rechnungen mit der Symbolic Math Toolbox

• Fortgeschrittene Programmierung: Komplexere Datenstruk-turen, Objektorientiertes Programmieren, Toolboxes nutzen, symbolische Rechnungen mit MuPAD

• Einführung in Simulink: grafi sche Programmierung, Simulation dynamischer Systeme, Benutzerober-fl äche

• Ausgewählte Simulationstechniken: Vereinfachung von Simulink-Systemen, Interaktion mit MATLAB, Umgang mit Kennlininen und Kennfeldern

• Übungsaufgaben und Lösungen

Unter Berücksichtigung der umfangreichen Änderungen beider Softwarewerkzeuge ab Release 2012 versucht das vorliegende Buch, die Grundlagen von MATLAB und Simulink innerhalb kurzer Zeit, idealerweise in einem einwöchigen Kurs, zu vermitteln.

Adressiert werden vor allem Ingenieurstudenten der ersten Studiensemester, die für den Umgang mit MAT-LAB und Simulink nach einer Einführung suchen, die sich an den Kenntnissen und Bedürfnissen eines Studienan-fängers orientiert.

Darüber hinaus ist das Buch auch für schon im Beruf stehende Ingenieure interessant, die MATLAB und Simu-link zumindest in ihren Grundzügen kennen und beherr-schen müssen, um spezielle Aufgaben lösen zu können. Die für das Verständnis des vorliegenden Buches not-wendigen Vorkenntnisse hat ein Ingenieur auch noch Jahre nach seinem Studium.

Der kursartige Aufbau des Buches soll schließlich Leh-renden eine Leitlinie geben, wie der Stoff in einem Kurs im Umfang von etwa einer Woche vermittelt werden könnte. Die Struktur gibt im Wesentlichen den Aufbau eines Einführungskurses des Autors an der Hochschule Karlsruhe - Technik und Wirtschaft wieder und spiegelt die Lehrerfahrung von über einem Jahrzehnt auf diesem Gebiet.

Professor Dr. Ottmar Beucher ist Professor für Mathe-matik, Informatik und numerische Signalverarbeitung an der Fakultät Mechatronik der Hochschule Karlsruhe und verfügt über langjährige Lehrerfahrung auf dem Gebiet MATLAB/Simulink.

ISBN 978-3-8266-9454-7

(D) €

29

,95

Grundlagenwissen für einen 5-Tage-KursLeitfaden für Lehre, Studium und BerufMATLAB / Simulink Release 2012

ISBN 978-3-8266-9467-7ISBN 978-3-8266-9467-7

Beuc

her

MAT

LAB

und Si

mul

ink

18,5 mm

ISBN 978-3-8266-9453-0

ISBN 978-3-8266-9156-6

978-3-8266-9467-7_umschlag_K.indd Alle Seiten 2/20/2013 10:26:43 AM

Page 2: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5 Einführung in SimulinkBei dem Simulationswerkzeug Simulink handelt es sich um ein Programm zur Si-mulation dynamischer Systememit einer speziell hierfür konzipierten Oberflächezu grafischen Programmierung.Simulink kann als eine besondere „Toolbox“ von MATLAB aufgefasst werden,die aufgrund der grafischen Programmierumgebung eine andersartige „Program-miertechnik“ erfordert.Ziel der vorliegenden Einführung ist es, in den einfachen Umgang mit Simulinkeinzuführen und die Interaktion von Simulink mit MATLAB deutlich zu machen.

5.1 Was ist Simulink?Wie bereits erwähnt, kann man mit Simulink dynamische Systeme simulieren.In den allermeisten Fällen handelt es sich dabei um lineare oder nichtlineare zeitab-hängige physikalische oder technische Vorgänge, die sich mit Differentialgleichungenoder (im zeitdiskreten Fall) mit Differenzengleichungen beschreiben lassen.Ein sehr einfaches Beispiel hierfür ist der in Abbildung 3.7, S. 123, dargestellteRC-Tiefpass, der in Abbildung 5.1 mit etwas anderen Bezeichnungen nochmalswiedergegeben ist.

x(t) y(t)∼

R

C

Abb. 5.1: RC-Kombination mit Spannungsquelle

Bei dieser elektrischen Schaltung handelt es sich insofern um ein dynamisches Sys-tem, als hier der zeitliche Verlauf einer physikalischen Größe (der Spannung amKondensator) in Abhängigkeit vom zeitlichen Verlauf einer anderen Größe (derSpannung am Eingang) von Interesse ist.Die Wirkungsweise des Systems kann auf verschiedene Weise beschrieben wer-den, u.a. auch dadurch, dass man die Signalflüsse zwischen den einzelnen Kom-

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 3: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

188 Kapitel 5: Einführung in Simulink

ponenten grafisch beschreibt. Eine solche Beschreibung nenntman ein Signalfluss-diagramm oder auch ein Blockschaltbild.Im vorliegenden Fall kann man etwa Kondensator undWiderstand als Blöcke defi-nieren. Der Kondensator ist ein Block, der den Eingangsstrom zu einer Spannung(hier y(t)) umgekehrt proportional zu seiner KapazitätC aufintegriert. Diese Span-nung y(t) entspricht der Eingangsspannung (hier x(t)) minus der Spannung i(t)·R,die am Widerstand abfällt.Wir können den Signalfluss also zunächst mit folgenden Gleichungen beschreiben:

y(t) =1C

t∫0

i(τ) dτ,

y(t) = x(t) − i(t) · R(⇐⇒ i(t) =

1R

(x(t) − y(t))

.

(188.1)

Diese Beziehungen können nun grafisch wie in Abbildung 5.2 dargestellt werden.

Σ

x(t) i(t)+

−y(t)

· 1R

1C

t∫0

Abb. 5.2: Beispiel der Blockschaltbilddarstellung eines dynamischen Systems

Aus der Blockschaltbilddarstellung können umgekehrt wieder unmittelbar die Zu-sammenhänge aus den Gleichungen (188.1) abgelesen werden, woraus durch Ein-setzen von i(t) in die erste der beiden Gleichungen folgt:

y(t) =1

RC

t∫0

x(τ) − y(τ) dτ. (188.2)

Die Ableitung dieser Integralgleichung nach t liefert mit T := RC1:

T · y(t) + y(t) = x(t). (188.3)

Dies entspricht (bei geeigneter Umstellung) der in (123.1) angegebenen Differenti-algleichung des RC-Tiefpasses.

1 T = RC ist die so genannte Zeitkonstante. Vgl. dazu auch Seite 125!

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 4: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 189

Das System wird also durch eine gewöhnliche Differentialgleichung und ein Block-schaltbild beschrieben. Die Differentialgleichung kann man in ein Blockschaltbildumsetzen und das Blockschaltbild in eine Differentialgleichung.Auf diesem Zusammenhang fußt nun dieGrundidee von Simulink:

Mit Hilfe einer grafischen Oberfläche setzt man das Blockschaltbild einesSystems - welches i.Allg. viel leichter zu erhalten ist - in ein äquivalentesSimulink-Blockschaltbild um.Simulink wiederum setzt dieses Blockschaltbild intern in ein System von Dif-ferentialgleichungen um und löst dieses numerisch.Diese Lösung ist das Ergebnis der Simulation.

Es muss jedoch an dieser Stelle erwähnt werden, dass zu einer über grundlegendeDinge hinausgehenden Nutzung von Simulink einige Kenntnisse aus der Rege-lungstechnik, der Systemtheorie und ggf. anderer Ingenieurdisziplinen vonnötensind, die wir im Rahmen dieser Einführung weder voraussetzen können noch wol-len [2, 6, 10, 16].Bei der vorliegenden Einführung in Simulink beschränken wir uns daher daraufzu zeigen, wie ein Simulink-System für ein einfaches vorgegebenes Differentialglei-chungssystem erstellt wird undwie diesesmit Simulink dann numerisch gelöst wer-den kann.Im ersten Schritt widmen wir uns zunächst der Frage, wie ein Simulink-Systemmit Hilfe der grafischen Nutzeroberfläche von Simulink aufgebaut werden kann.

5.2 Grafische Programmierung mit SimulinkDer Start des Programms Simulink erfolgt entweder durch die Eingabe des Kom-mandos

» simulink

im Command-Window von MATLAB oder durch Klicken auf das entsprechendeSymbol im Toolstrip HOME (s. ① in Abbildung 5.3).Es öffnet sich dann der in Abbildung 5.4 dargestellte so genannte Simulink Libra-ry Browser.Dieser enthält auf der linken Seite (②) einen Verzeichnisbaum mit den in der zurVerfügung stehenden Installation vorhandenen so genannten Blockbibliothekenund auf der rechten Seite (①) die Symbole für die verschiedenen Klassen vonFunktionsblöcken der Simulink-Basisfunktionen.

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 5: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

190 Kapitel 5: Einführung in Simulink

Abb. 5.3: Öffnen von Simulink vom Toolstrip HOME aus

Bei Anwahl eines Eintrags im Verzeichnisbaum oder eines Icons öffnet sich dannim Simulink Library Browser-Fenster eine Karte mit den zur gewählten Funkti-onsgruppe gehörenden Blocksymbolen.Ein Klick auf die Funktionsgruppe Continuous (①) etwa öffnet das in Abbildung5.4 im Vordergrund dargestellte Fenster, welches die von Simulink zur Verfügunggestellten Funktionsblöcke der Funktionsgruppe für die quasi-kontinuierliche Si-mulation, wie zum Beispiel den Integrator (⑤), anzeigt.

5.2.1 Konstruktion eines Simulink-Blockschaltbildes

Will man nun mit Hilfe der Blockbibliotheken ein eigenes Simulationssystem kon-struieren, so muss man zunächst im Simulink-Browser durch Auswahl des Menü-punktes von File - New Model oder durch Klick auf das entsprechende Symbol (③)in derMenüleiste ein leeresModell-Fenster öffnen. Bereits bestehende Blockschalt-bilder können unter ihrem Dateinamen mit File - Open... oder durch Klick auf dasentsprechende Symbol (③) geöffnet werden.Es empfiehlt sich, das leere Fenster gleich unter einem geeigneten Dateinamen mitFile - Save As... als *.slx-File2 abzuspeichern.Im folgenden Beispiel nennen wir das File sl_test1.slx.

Ein einfaches Beispielsystem

Wir wollen nun die Konstruktion eines Simulink-Blockschaltbildes an einem Bei-spiel illustrieren. Dazu ziehen wir in das leere Fenster aus der im Block LibraryBrowser geöffneten Funktionsgruppe Sources mit Hilfe der Maus den Block SineWave.Will man den Namen Sine Wave nicht verwenden (etwa weil man mehrere solcherBlöcke im System hat und die Blöcke durch ihre Namen unterscheiden will), so

2 Simulink verwendet ab Release 2012 ein komprimiertes neues Format, das slx-Format, um Modellezu speichern. Das früheremdl-Format ist immer noch gebräuchlich. Alternativ kann einModell beimSpeichern immer noch im mdl-Format gespeichert werden. Umgekehrt können mdl-Files in slx-Fileskonvertiert werden.

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 6: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 191

Abb. 5.4: Simulink Library Browser (Hintergrund) und die geöffneteSimulink-Funktionsbibliothek Continuous (Vordergrund)

kann man mit der Maus auf den Schriftzug Sine Wave klicken und den Namenmit der Tastatur editieren. Auf diese Weise können wir den Block beispielsweisein Quellsignal umbenennen.Das System sl_test1 hat dann die in Abbildung 5.5 erkennbare Gestalt. Der SineWave-Block wurde dabei nachträglich mit der Maus durch Ziehen an den Eckennoch etwas vergrößert.Das Modell-Fenster ist unterteilt in einen Model Browser (②) und das Fenster zurKonstruktion des Modells (①).DerModel Browser ist sehr nützlich, wenn das Simulink-System Blöcke enthält, dieihrerseits wieder ganze Simulink-Teilsysteme repräsentieren. In diesem Fall wirdhier ein Verzeichnisbaum dargestellt, der die Blockhierarchie wiedergibt und eserlaubt, bequem zwischen den Ebenen der Hierarchie zu navigieren. Wir werdendiesen Aspekt in Abschnitt 6.1 näher beleuchten.Im vorliegendenModell wird derModel Browser nicht wirklich gebraucht. Er könn-te auch durch Klick auf den Doppelpfeil � unten ausgeblendet werden, was wirfür die folgenden Darstellungen auch tun wollen.Das eigentliche Modell wird im Teilfenster (①) aufgebaut. Im Menü finden sichIcons, die die Speicherung und Öffnung vonModellen ermöglichen (⑤), sowie die

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 7: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

192 Kapitel 5: Einführung in Simulink

Abb. 5.5: Das Simulink-System sl_test1 nach Einfügung des Sine Wave-Blocks

Parametrierung (④) und die Simulation (③) des Modells. Dies wird im Folgendennoch näher zu erläutern sein.

Im nächsten Schritt wollen wir das Quellsignal integrieren. Dazu öffnen wir dieFunktionsbibliothek Continuous. Aus dieser ziehen wir den Block Integrator in dasSystemfenster von sl_test1 und verbinden mit der Maus den Ausgang des Quell-signalblocks mit dem Integratoreingang. Dies erfordert am Anfang etwas Übung,obwohl Simulink den Vorgang mit einem intelligenten Routing-Algorithmus un-terstützt und mögliche Verbindungen beim Verschieben des Blocks anzeigt.Am besten zieht man das Verbindungssignal immer entgegen der Signalflussrich-tung vom Eingang des Zielblocks zumAusgang des Quellblocks, im vorliegendenFall also vom Integrator zum Quellsignal. Das System entspricht dann der in Ab-bildung 5.6 dargestellten Form.Der Leser möge sich nicht an der Eintragung 1

s im Integratorblock stören. Es han-delt sich hierbei um die so genannte Laplace-Transformierte der Integration [2, 6, 16].Die meisten linearen Funktionsblöcke sind mit der Laplace-Transformierten bzw.dem diskreten Pendant dazu, derZ-Transformierten, gekennzeichnet. Für diese Ein-führungmüssen wir aber nicht näher auf diese Transformationen eingehen, da wirim Wesentlichen nur den Integratorblock benötigen.Wir erweitern nun das Testsystem sl_test1 so, dass wir das Sinussignal und seinIntegral bei der späteren Simulation in einem Fenster sehen können. Dazu wählenwir aus der Bibliothek Signal Routing zunächst einen Multiplexer-Block3 Mux undfügen ihn in das System ein.

3 Er hat die Aufgabe, mehrere Signale zu einem vektorwertigen Signal zusammenzuführen.

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 8: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 193

Abb. 5.6: Das Simulink-System sl_test1 nach Einfügung des Sine Wave-Blocks und desIntegrator-Blocks

Abb. 5.7: Das (fast) fertige Simulink-System sl_test1

Danach wählen wir aus der Signalsenken-Bibliothek Sinks den Oszilloskop-BlockScope.Quellsignal und Integratorausgang werden anschließend mit der Maus mit denzwei Eingängen des Multiplexers verbunden und dessen Ausgang mit dem Ein-gang des Scope-Blocks.

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 9: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

194 Kapitel 5: Einführung in Simulink

Die Verbindung des zweiten Multiplexer-Eingangs mit dem Ausgang des Quell-signals erfolgt am besten, indem man den Verbindungspfad mit der Maus vomMultiplexer-Eingang zur Verbindungslinie zwischen Signalquelle und Integratorzieht. Man beachte dabei, dass die Verbindung zu einem Signalpfad (wie hier zudem zwischen Quelle und Integrator) erst dann korrekt ist, wenn an der Kreu-zungsstelle ein kleiner Punkt erscheint.Das (fast) fertige System ist in Abbildung 5.7 zu sehen.Bevor wir mit dem Blockschaltbild jedoch eine Simulation durchführen können,sind noch ein paar Arbeitsschritte zu erledigen. Zum einen müssen etwa die Para-meter der verwendeten Blöcke richtig eingestellt werden – woher sollte Simulinkzum Beispiel wissen, welche Frequenz Ihr Sinussignal haben soll? –, zum ande-ren müssen solche Dinge wie Simulationsdauer, numerisches Lösungsverfahrenetc. festgelegt werden, also allgemeine Parameter der Simulation. Nicht zuletztsollte das gerade erstellte Simulationsmodell auch noch mit einem Minimum anBeschriftung versehen werden, denn auch bei einer grafischen Programmierungist eine ordentliche Dokumentation nicht verzichtbar.

5.2.2 Parametrierung der Simulink-Blöcke

Wir beginnen mit der Blockparametrierung. Der im System sl_test1 verwendeteBlock Mux beispielsweise hat offenbar standardmäßig zwei Eingänge, was in un-serem Beispiel zufällig gerade passend ist. Die Zahl der Eingänge kann jedoch imAllgemeinen eingestellt werden. Wie bei der Veränderung von Blockparameternüblich, öffnetman die zum Block gehörige Parameterliste durch einen Doppelklickauf das entsprechende Blocksymbol oder man wählt im Kontextmenü der rechtenMaustaste den Eintrag Block Parameters (Mux) aus.Die Auswahl liefert das in Abbildung 5.8 im Vordergrund dargestellte Fenster.Wie man sieht, kann die Zahl der Eingänge des Multiplexers dort frei bestimmtwerden, indem man den Eintrag Number of inputs entsprechend abändert.Interessant ist auch der Parameter Display Option. Hier kann die grafische Dar-stellung des Multiplexers verändert werden. Die voreingestellte Darstellung bar,die den Multiplexer als dicken Strich darstellt, ist vor allem für viele Eingänge ge-eignet. Hat man, wie in unserem Fall, nur zwei Eingänge, so eignet sich eher dieEinstellung signals, denn in diesem Fall sind die Eingangsports des Blocks nachVergrößerung des Symbols mit der Maus mit den Namen der Signale versehen,was insbesondere bei großen Simulationssystemen die Übersichtlichkeit wesent-lich erhöht.Das Sinussignal parametrieren wir auf ähnliche Weise. Ein Doppelklick auf denBlock öffnet das in Abbildung 5.8 im Hintergrund dargestellte Fenster.Hier können wir die Amplitude, die Frequenz (in rad/s) und die Nullphaseeinstellen. Den Parameter Sample Time lassen wir auf 0, weil wir eine quasi-zeitkontinuierliche Simulation durchführen wollen. Er wird nur verändert, wenn

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 10: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 195

Abb. 5.8: Parameterfenster zum Simulink-Block Sine Wave (Quellsignal) und zumSimulink-Block Mux

wir eine explizit zeitdiskrete Simulation durchführen. In diesem Fall müssten wirin den Blöcken eine Abtastzeit angeben.Wir ändern für das vorliegende Beispiel die Parameter auf Amplitude 2 und aufFrequenz 2π rad/s entsprechend 1 Hz. Der zugehörige Eintrag ist damit 2*pi undnicht etwa 6.28 o.Ä., denn Simulink kennt wie MATLAB das Symbol pi und somitseinen (numerisch) „exakten“ Wert.Für die Nullphase wählen wir pi/4. Die restlichen Einstellungen bleiben unverän-dert.Der Integratorblock verlangt u.a. den Anfangswert der Integration (Parameter In-itial Condition). Das ist der Wert, der am Integratorausgang zu Beginn der Simu-lation ansteht! Dieser ist insbesondere dann von Bedeutung, wenn wir mit Hilfevon Simulink Differentialgleichungen lösen wollen, da hier die Anfangswerte die-ser Gleichungen eingetragenwerdenmüssen. Für das vorliegende Beispiel soll derAnfangswert auf dem voreingestellten Wert 0 stehen bleiben.Die übrigen Parameter lassen wir im Moment ebenfalls auf den voreingestelltenWerten, da wir ihre Bedeutung (noch) nicht kennen. Man kann sich im Übrigen

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 11: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

196 Kapitel 5: Einführung in Simulink

mit Hilfe des Kontextmenüs der rechten Maustaste für die meisten Blockparametereine Beschreibung anzeigen lassen.

Abb. 5.9: Parameterfenster zum Integratorblock Integrator mit geöffnetem Hilfe-Fenster

Wie in Abbildung 5.9 dargestellt, klappt ein Fensterchen mit dem Eintrag What isthis? auf, wennman den Parametermit der rechtenMaustaste anklickt. Wählt mandas Fensterchen mit der linken Maustaste an, so öffnet sich ein Hilfe-Fenster mitder (mehr oder weniger hilfreichen) Beschreibung des Parameters.Der Scope-Block sollte auch parametriert werden. Ein Doppelklick auf den Scope-Block und ein Klick auf das Parameters-Icon (siehe ① in Abbildung 5.10) öffnenein Karteifenster, in dem Parameter eingestellt werden können.Das Karteifenster selbst ist wieder, wie in Abbildung 5.10 dargestellt, in drei Teil-karten unterteilt.Wichtig für den Moment ist die Einstellung Limit data points to last in der History-Karte (siehe ③ in Abbildung 5.10). Hier sollte das in der Voreinstellung gesetzteHäkchen stets gelöscht werden, da sonst bei längeren Simulationen nur der letzteTeil (eben die voreingestellten letzten 5000 Punkte) dargestellt wird.Eine gute Neuerung abMATLAB Release 2012 ist die Möglichkeit, Hintergrundfar-be und Linienstil des Scopes einzustellen (siehe ④ in Abbildung 5.10).Die Voreinstellung der Hintergrundfarbe ist Schwarz, was insbesondere für eineBeamer-Projektion ungünstig ist. In Abbildung 5.10 ist die Hintergrundfarbe auf

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 12: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 197

Abb. 5.10: Darstellungsfenster zum Simulink-Block Scope mit geöffnetemParameters-Fenster

eine helle Farbe umgestellt. Ferner ist die Linienfarbe für die zwei Signale auf Blauund Magenta sowie auf die Liniendicke 2 eingestellt. Die gewählten Achsenein-stellungen (Grenzen für x- und y-Werte) können im Scope-Fenster mit dem IconSave current axis settings (siehe ②) gespeichert und wieder rekonstruiert werden.Im Übrigen wird die Darstellung der Signale im Scope nach der Simulation überdie Button-Leiste angepasst. Dies sollte der Leser einfach einmal ausprobieren. DasScope sollte übrigens gleich geöffnet werden, denn es öffnet sich nach der Simula-tion nicht automatisch.Den letzten Schliff gibt dem Ganzen nun noch die schon erwähnte Beschriftung.Durch einen Doppelklick in das Modell-Fenster erscheint ein blinkender Cursor.Hier kann frei Text eingetragenwerden, der über denMenüpunktDiagram - Format- Font Style noch nach Geschmack im Erscheinungsbild verändert werden kann. Sokann etwa das System mit Titel und Erstellungsdatum versehen werden.Sehr nützlich ist auch die Beschriftung der Signalpfade. Ein Doppelklick auf einendieser Pfade lässt es zu, den Signalen einen Namen zu geben. Diese Namen wan-

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 13: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

198 Kapitel 5: Einführung in Simulink

dern sogar mit, wenn der Pfad oder ein zugehöriger Block verschoben wird. Na-men von Eingängen von Blöcken, wie etwa die des Multiplexers, die mit diesenSignalnamen verknüpft sind, werden automatisch mit verändert. Gegebenenfallsmuss dafür der Block aber nochmals vergrößert oder bewegt werden, damit sichdie Änderung auswirkt.In Abbildung 5.11 ist nun das Ergebnis unserer Bemühungen, das fertige Systemsl_test1.slx, dargestellt.

Abb. 5.11: Das fertige Simulink-System sl_test1.slx

Die Parametrierung der Blöcke ist damit abgeschlossen.

5.2.3 Simulink-Simulation

Die Simulationsparameter stellen wir über den Aufruf desMenübefehls Simulation– Model Configuration Parameters oder nach Klick auf das entsprechende Icon (s. ④in Abbildung 5.5) ein.Es öffnet sich nach dieser Aktion das in Abbildung 5.12 zu bewundernde Parame-trierungsfenster Configuration Parameters.Standardmäßig werden beim Öffnen die unter dem Eintrag Select:Solver (①) zu-sammengefassten Optionen für den so genannten Solver angezeigt.Wie in Abschnitt 5.1 schon erläutert wurde, steckt ja hinter jedem Simulink-Systemein System vonDifferentialgleichungen (bzw. Differenzengleichungen). Unter einemSolver versteht man das Verfahren zur numerischen Lösung von Differential-gleichungen, welches für die vorliegende Simulation eingesetzt werden soll.Der Leser wird sich vielleicht an dieser Stelle trotz der Diskussion in Abschnitt 5.1noch fragen, was das gerade entworfene Modell mit Differentialgleichungen zu

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 14: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 199

Abb. 5.12: Das Parametrierungsfenster für die Simulink-Simulation eines Modells

tun hat. Dies wird hoffentlich nach der Lektüre von Abschnitt 5.3, S. 203 ff, klarersein. Vorerst sei an dieser Stelle auf Übung 85 verwiesen.Das numerische Lösungsverfahren (der „Solver“) kann in den Pull-Down-MenüsType und Solver der Funktionsgruppe Solver Options (s. ④ in Abbildung 5.12) aus-gewählt werden. Hier wird nach zwei Klassen von Verfahren unterschieden, näm-lich solchen mit und ohne variable Schrittweitensteuerung. Dies wird im Pull-Down-Menü Type durch Auswahl der Parameter Fixed Step oder Variable Stepfestgelegt.Es würde an dieser Stelle zu weit führen, im Einzelnen auf die Verfahren einzu-gehen und dies ist für das Verständnis der folgenden Abschnitte auch nicht nö-tig. Eine tiefere Diskussion der Verfahren würde den Rahmen dieser MATLAB-Simulink-Einführung bei weitem sprengen, da hier modernste mathematische Ver-fahren zum Einsatz kommen [18, 12]. Für den Anfang genügen die wenigen, imWesentlichen direkt auf dem vielleicht geläufigen Runge-Kutta-Verfahren (vgl.[4, 8, 14, 20]) beruhenden und schon aus Kapitel 3 bekannten Methoden ode23,ode45 und ode3. Den anderen Verfahren wird man sich dann zuwenden könnenund müssen, wenn man bereits über genügend Simulationserfahrung verfügt undProbleme hat, die den Einsatz anderer Verfahren notwendig machen.Die Klasse der Variable-Step-Verfahren arbeitet, wie erwähnt, mit einer eingebau-ten Schrittweitensteuerung, das heißt, sie ändern die Schrittweite des numeri-schen Lösungsverfahrens je nach dem dynamischen Verhalten der Lösung. Ändertsich die Lösung wenig, so wird die Schrittweite automatisch größer eingestellt, va-riiert die Lösung stark, so wirdmit kleinerer Schrittweite iteriert. Diese Vorgehens-weise hat den Vorteil, die Berechnung unter Umständen erheblich zu beschleuni-

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 15: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

200 Kapitel 5: Einführung in Simulink

gen. Wie weit diese Schrittweite sich ändern darf und mit welcher Toleranz, kanndurch die Parameter Step Size und Tolerance (s. ④) gesteuert werden. Auch hierwürde es zu weit führen, näher auf die Details einzugehen. In den meisten Fällengenügen die voreingestellten Werte.Wählt man die Klasse der Fixed-Step-Verfahren aus, so erkennt man, dass sich dasAuswahlmenü für die Schrittweite ändert. Nun kann die gewünschte (dann feste)Schrittweite für das Verfahren eingegeben werden. Die restlichen Einstellungensollten zunächst unverändert bleiben.Die Parameter Start Time und Stop Time (s. ②) sind selbsterklärend.Von den weiteren, unter Select im Teilfenster ① anwählbaren Optionen sind fürden Anfang nur noch die Einträge Data Import/Export interessant.Wählt man diese Option an, so kann im Abschnitt Save Options der Karteikarte dieLösung im Falle der variablen Schrittweitensteuerung zwischen den vom Verfah-ren ausgewählten Stellen zusätzlich noch interpoliert werden, um gegebenenfallseine glattere grafische Lösung zu produzieren.Mit der Einstellung Produce specified output only im Pull-Down-Menü OutputOptions kann genau angegeben werden, an welchen Stellen die Lösung berech-net werden soll. Diese Stellen werden in einem entsprechenden Zeitvektor (z.B.(0:0.1:10)) unter dem dann erscheinenden Parameter Output Times konkret ange-geben. Intern rechnet das Verfahren zwar nach wie vor mit variabler Steuerung,die Lösung wird jedoch vor der Ausgabe an den gewünschten Stellen durch In-terpolation ermittelt. Diese Möglichkeit der Beeinflussung der Lösung ist insbe-sondere dann sehr nützlich, wenn man (vielleicht aus Gründen einer optimalenSimulationszeit) mit variabler Schrittweitensteuerung arbeitet, jedoch verschiede-ne Lösungen miteinander vergleichen muss. In diesem Fall haben die Lösungenim Allgemeinen unterschiedliche Stützstellen, was den Vergleich unter Umstän-den sehr erschwert. Mit der Angabe Produce specified output only kann man abererzwingen, dass alle Simulationen Werte an identischen Stützstellen liefern.

Im vorliegenden Beispiel machen wir es uns aber zunächst einfach und zwingenSimulink von vornherein, eine feste Schrittweite zu verwenden, indem wir dasFixed-Step-Verfahren ode3 auswählen und den Step-Size-Parameter auf den Wert0.01 setzen.Die eingestellte Schrittweite hat unmittelbaren Einfluss auf die Simulationsdau-er, welche bei zu kleinen Werten unerträglich lang werden kann. Hier muss, ggf.durch Ausprobieren in mehreren Versuchen, ein Kompromiss zwischen Simulati-onsdauer und Simulationsgenauigkeit gefunden werden. Alternativ kann (sollte)ggf. dann auch, wie oben beschrieben, ein Variable-Step-Verfahren mit äquidistan-ter Interpolation der Lösungen verwendet werden.Nach Einstellung der Simulationsparameter kann die Simulation nun mit demMenüaufruf Simulation - Run oder direkt durch Klick auf das Run-Symbol (s. ③in Abbildung 5.5, S. 192) gestartet werden.

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 16: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.2 Grafische Programmierung mit Simulink 201

Im geöffneten Scope-Block bauen sich im vorliegenden Beispiel dann das in Ab-bildung 5.13 dargestellte Sinussignal und das zugehörige Integral auf.

Abb. 5.13: Ergebnis der Beispielsimulation

Ab diesem Moment sind auch die Icons für den Zoom in x- und in y-Richtung(s. Abbildung 5.10 zwischen ① und ②) zugänglich und können zur detaillierterenBetrachtung der Signale verwendet werden.

Wurde das Ergebnis des Scope-Outputs zusätzlich im Parameterfenster des Scopesauf der Teilkarte History (siehe (③) in Abbildung 5.10) in eine MATLAB-Variable4

umgelenkt, z.B. in die Variable sl_test1_Signale, so kann man sich die Grafik auchunter MATLAB anschauen. Ein Blick auf den Workspace zeigt, dass drei Vektorenals Spalten abgespeichert wurden:

» whosName Size Bytes Class

sl_test1_Signale 1001x3 24024 doubletout 1000x1 8000 double

4 Man beachte: Als Ausgabeformat ist hier leider Structure With Time voreingestellt. Es empfiehlt sich,auf das Format Array umzustellen!

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 17: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tag

Dienstag

Mittw

och

Don

nerstag

Freitag

Lösunge

n

202 Kapitel 5: Einführung in Simulink

Eine der Spalten, nämlich die erste, ist der Zeitvektor (Vektor der Stützstellen fürdie Lösungen). Der Zeitvektor wurde im vorliegenden Fall auch in der Varia-blen t an den MATLAB-Workspace zurückgeliefert, da im Configuration Parame-ters-Fenster unter Data Import/Export - Save to Workspace die Option Time selektiertwar.Mit den folgenden Anweisungen kann dann das Ergebnis auch mit Beschriftungunter MATLAB reproduziert werden:

» plot ( sl_test1_Signale ( : , 1 ) , . . .[ sl_test1_Signale ( : , 2 ) , sl_test1_Signale ( : , 3 ) ] )

» t i t l e ( ’ Ergebnis von sl \ _test1 mit ode3 ’ )» xlabel ( ’ Ze i t / s ’ )» ylabel ( ’ Funktionswerte ’ )» grid

Auf eine Darstellung der Grafik sei hier aus Platzgründen verzichtet.

Übungen

Bearbeiten Sie die folgende Aufgaben zur Einübung der Handhabung von Simu-link.

Übung 84 (Lösung Seite 331)

Probieren Sie das Testsystem sl_test1.slx für verschiedene Simulationsschrittwei-ten und unter Verwendung der Schrittweitensteuerung aus.Vergleichen Sie insbesondere die Rechenzeit für eine Schrittweite von 0.00001,wenn Sie einmal direkt ode3 mit dieser Schrittweite und zum anderen ode23 mitAnpassung der Ausgabe an die Schrittweite 0.00001 verwenden.Interpretieren Sie die Ergebnisse!

Übung 85 (Lösung Seite 332)

Überlegen Sie, warum das Ergebnis der Simulation des Testsystems sl_test1.slxdie Lösung der Differentialgleichung (des Anfangswertproblems)

y(t) = x(t), y(0) = 0 (202.1)

darstellt! Welches der Signale ist x(t), welches y(t)?

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467

Page 18: MATLAB Simulink - mitp.de · PDF fileMontag Dienstag Mittwoch Donnerstag Freitag Lösungen 5 Einführung in Simulink Bei dem Simulationswerkzeug Simulinkhandelt es sich um ein Programm

Mon

tagDien

stagM

ittwoch

Don

nerstag

FreitagLösu

ngen

5.3 Simulation dynamischer Systeme 203

Übung 86 (Lösung Seite 332)

Entwerfen Sie ein Simulink-Testsystem sl_LsgDiff.slx für den DifferenziererblockDerivative. Ändern Sie dazu am besten das System sl_test1.slx.Experimentieren Sie anschließend damit wie in Übung 84.

Übung 87 (Lösung Seite 332)

Überlegen Sie sich, wie man mit Hilfe von Simulink und mit Hilfe des Integrator-Blocks das Anfangswertproblem

u(t) = −2 · u(t), u(0) = 1 (203.1)

lösen könnte und realisieren Sie ggf. ein solches Simulink-System.Vergleichen Sie die gewonnene numerische Lösung mit der exakten Lösung!

5.3 Simulation dynamischer SystemeIn Abschnitt 5.1, S. 187 ff, wurde Simulink als grafische Programmierumgebungfür die Simulation dynamischer Systeme vorgestellt. Was dynamische Systemesind, wurde dabei anhand eines einfachen Beispiels verdeutlicht. Dabei wurdegezeigt, dass die Beschreibung des dynamischen Systems mit einem Simulink-Blockschaltbild äquivalent ist zur Beschreibung des Systems mit Differentialglei-chungen. Die Grundidee von Simulink ist, die Beschreibung als Blockschaltbild(automatisch) in Differentialgleichungen umzuwandeln und diese dann nume-risch zu lösen.In den nachfolgenden Beispielen beschränken wir uns auf die quasi-kontinuier-liche Simulation zeitkontinuierlicher Systeme und gehen davon aus, dass das Sys-tem schon mit Hilfe von (gewöhnlichen) Differentialgleichungen modelliert ist.Im Grunde genommen zeigen wir somit, wie Simulink zur Lösung von Differen-tialgleichungen verwendet werden kann.

5.3.1 Beispiel: ungedämpfte Schwingung

Zum Einstieg beginnen wir mit einem simplen Anfangswertproblem 2. Ordnung.Wir lösen die Differentialgleichung

y(t) = −y(t), y(0) = 1, y(0) = 0. (203.2)

Diese Differentialgleichung ist ein drastisch vereinfachter Spezialfall der linearenSchwingungsdifferentialgleichung

© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9467-7) 2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9467