Einführung in Simulink - Verlagsgruppe Hüthig Jehle Rehm GmbH

mediendb.hjr.verlag.de

Einführung in Simulink - Verlagsgruppe Hüthig Jehle Rehm GmbH

MATLAB undSimulinkEine kursorientierte EinführungOttmarBeucher


5.2 Grafische Programmierung mit Simulink 189Das System wird also durch eine gewöhnliche Differentialgleichung und ein Blockschaltbildbeschrieben. Die Differentialgleichung kann man in ein Blockschaltbildumsetzen und das Blockschaltbild in eine Differentialgleichung.Auf diesem Zusammenhang fußt nun die Grundidee 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 Differentialgleichungenum 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 Regelungstechnik,der Systemtheorie und ggf. anderer Ingenieurdisziplinen vonnötensind, die wir im Rahmen dieser Einführung weder voraussetzen können noch wollen[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 Differentialgleichungssystemerstellt wird und wie dieses mit Simulink dann numerisch gelöst werdenkann.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 Kommandos» simulinkim Command-Window von MATLAB oder durch Klicken auf das entsprechendeSymbol im Toolstrip HOME (s. 1 in Abbildung 5.3).Es öffnet sich dann der in Abbildung 5.4 dargestellte so genannte Simulink LibraryBrowser.Dieser enthält auf der linken Seite (2) einen Verzeichnisbaum mit den in der zurVerfügung stehenden Installation vorhandenen so genannten Blockbibliothekenund auf der rechten Seite (1) die Symbole für die verschiedenen Klassen vonFunktionsblöcken der Simulink-Basisfunktionen.Montag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


190 Kapitel 5: Einführung in SimulinkMontagFreitag Donnerstag Mittwoch DienstagAbb. 5.3: Öffnen von Simulink vom Toolstrip HOME ausBei Anwahl eines Eintrags im Verzeichnisbaum oder eines Icons öffnet sich dannim Simulink Library Browser-Fenster eine Karte mit den zur gewählten Funktionsgruppegehörenden Blocksymbolen.Ein Klick auf die Funktionsgruppe Continuous (1) 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 Simulation,wie zum Beispiel den Integrator (5), anzeigt.5.2.1 Konstruktion eines Simulink-BlockschaltbildesWill man nun mit Hilfe der Blockbibliotheken ein eigenes Simulationssystem konstruieren,so muss man zunächst im Simulink-Browser durch Auswahl des Menüpunktesvon File - New Model oder durch Klick auf das entsprechende Symbol (3)in der Menüleiste ein leeres Modell-Fenster öffnen. Bereits bestehende Blockschaltbilderkönnen unter ihrem Dateinamen mit File - Open... oder durch Klick auf dasentsprechende Symbol (3) geöffnet werden.Es empfiehlt sich, das leere Fenster gleich unter einem geeigneten Dateinamen mitFile - Save As... als *.slx-File 2 abzuspeichern.Im folgenden Beispiel nennen wir das File sl_test1.slx.Ein einfaches BeispielsystemLösungenWir wollen nun die Konstruktion eines Simulink-Blockschaltbildes an einem Beispielillustrieren. 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), so2 Simulink verwendet ab Release 2012 ein komprimiertes neues Format, das slx-Format, um Modellezu speichern. Das frühere mdl-Format ist immer noch gebräuchlich. Alternativ kann ein Modell 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-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 191Abb. 5.4: Simulink Library Browser (Hintergrund) und die geöffneteSimulink-Funktionsbibliothek Continuous (Vordergrund)kann man mit der Maus auf den Schriftzug Sine Wave klickenunddenNamenmit 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 (2) und das Fenster zurKonstruktion des Modells (1).Der Model 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 vorliegenden Modell wird der Model Browser nicht wirklich gebraucht. Er könnteauch durch Klick auf den Doppelpfeil ≪ unten ausgeblendet werden, was wirfür die folgenden Darstellungen auch tun wollen.Das eigentliche Modell wird im Teilfenster (1) aufgebaut. Im Menü finden sichIcons, die die Speicherung und Öffnung von Modellen ermöglichen (5), sowie dieMontag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


192 Kapitel 5: Einführung in SimulinkMittwochDienstagMontagAbb. 5.5: Das Simulink-System sl_test1 nach Einfügung des Sine Wave-BlocksDonnerstagFreitagLösungenParametrierung (4) und die Simulation (3) 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 Quellsignalblocksmit dem Integratoreingang. Dies erfordert am Anfang etwas Übung,obwohl Simulink den Vorgang mit einem intelligenten Routing-Algorithmus unterstütztund mögliche Verbindungen beim Verschieben des Blocks anzeigt.Am besten zieht man das Verbindungssignal immer entgegen der Signalflussrichtungvom Eingang des Zielblocks zum Ausgang des Quellblocks, im vorliegendenFall also vom Integrator zum Quellsignal. Das System entspricht dann der in Abbildung5.6 dargestellten Form.Der Leser möge sich nicht an der Eintragung 1 sim Integratorblock stören. Es handeltsich 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, der Z-Transformierten, gekennzeichnet. Für diese Einfü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-Block 3 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-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 193Abb. 5.6: Das Simulink-System sl_test1 nach Einfügung des Sine Wave-Blocks und desIntegrator-BlocksAbb. 5.7: Das (fast) fertige Simulink-System sl_test1Danach 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 Eingangdes Scope-Blocks.Montag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


194 Kapitel 5: Einführung in SimulinkLösungen Freitag Donnerstag Mittwoch Dienstag MontagDie Verbindung des zweiten Multiplexer-Eingangs mit dem Ausgang des Quellsignalserfolgt 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 Kreuzungsstelleein 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 Parameterder verwendeten Blöcke richtig eingestellt werden – woher sollte Simulinkzum Beispiel wissen, welche Frequenz Ihr Sinussignal haben soll? –, zum anderenmü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öckeWir beginnen mit der Blockparametrierung. Der im System sl_test1 verwendeteBlock Mux beispielsweise hat offenbar standardmäßig zwei Eingänge, was in unseremBeispiel zufällig gerade passend ist. Die Zahl der Eingänge kann jedoch imAllgemeinen eingestellt werden. Wie bei der Veränderung von Blockparameternüblich, öffnet man 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 Darstellungdes Multiplexers verändert werden. Die voreingestellte Darstellung bar,die den Multiplexer als dicken Strich darstellt, ist vor allem für viele Eingänge geeignet.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 wesentlicherhö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 quasizeitkontinuierlicheSimulation durchführen wollen. Er wird nur verändert, wenn© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 195Abb. 5.8: Parameterfenster zum Simulink-Block Sine Wave (Quellsignal) und zumSimulink-Block Muxwir 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 1Hz. 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ändert.Der Integratorblock verlangt u.a. den Anfangswert der Integration (Parameter InitialCondition). Das ist der Wert, der am Integratorausgang zu Beginn der Simulationansteht! Dieser ist insbesondere dann von Bedeutung, wenn wir mit Hilfevon Simulink Differentialgleichungen lösen wollen, da hier die Anfangswerte dieserGleichungen eingetragen werden mü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 ÜbrigenMontag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


196 Kapitel 5: Einführung in SimulinkMontagmit Hilfe des Kontextmenüs der rechten Maustaste für die meisten Blockparametereine Beschreibung anzeigen lassen.MittwochDonnerstagFreitagLösungenDienstagAbb. 5.9: Parameterfenster zum Integratorblock Integrator mit geöffnetem Hilfe-FensterWie in Abbildung 5.9 dargestellt, klappt ein Fensterchen mit dem Eintrag What isthis? auf, wenn man den Parameter mit der rechten Maustaste 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 1 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 Teilkartenunterteilt.Wichtig für den Moment ist die Einstellung Limit data points to last in der History-Karte (siehe 3 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 ab MATLAB Release 2012 ist die Möglichkeit, Hintergrundfarbeund Linienstil des Scopes einzustellen (siehe 4 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-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 197Abb. 5.10: Darstellungsfenster zum Simulink-Block Scope mit geöffnetemParameters-Fenstereine helle Farbe umgestellt. Ferner ist die Linienfarbe für die zwei Signale auf Blauund Magenta sowie auf die Liniendicke 2 eingestellt. Die gewählten Achseneinstellungen(Grenzen für x- und y-Werte) können im Scope-Fenster mit dem IconSave current axis settings (siehe 2) 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 Simulationnicht 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 eingetragen werden, der über den Menüpunkt Diagram - Format-FontStylenoch 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-Montag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


198 Kapitel 5: Einführung in SimulinkMontagDienstagdern sogar mit, wenn der Pfad oder ein zugehöriger Block verschoben wird. Namenvon 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.MittwochDonnerstagAbb. 5.11: Das fertige Simulink-System sl_test1.slxDie Parametrierung der Blöcke ist damit abgeschlossen.FreitagLösungen5.2.3 Simulink-SimulationDie Simulationsparameter stellen wir über den Aufruf des Menübefehls Simulation–ModelConfiguration Parameters oder nach Klick auf das entsprechende Icon (s. 4in Abbildung 5.5) ein.Es öffnet sich nach dieser Aktion das in Abbildung 5.12 zu bewundernde ParametrierungsfensterConfiguration Parameters.Standardmäßig werden beim Öffnen die unter dem Eintrag Select:Solver (1) zusammengefasstenOptionen für den so genannten Solver angezeigt.Wie in Abschnitt 5.1 schon erläutert wurde, steckt ja hinter jedem Simulink-Systemein System von Differentialgleichungen (bzw. Differenzengleichungen). Unter einemSolver versteht man das Verfahren zur numerischen Lösung von Differentialgleichungen,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-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 199Abb. 5.12: Das Parametrierungsfenster für die Simulink-Simulation eines Modellstun 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. 4 in Abbildung 5.12) ausgewähltwerden. Hier wird nach zwei Klassen von Verfahren unterschieden, nämlichsolchen 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 einzugehenund 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 Verfahrenzum 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 eingebautenSchrittweitensteuerung, das heißt, sie ändern die Schrittweite des numerischenLösungsverfahrens je nach dem dynamischen Verhalten der Lösung. Ändertsich die Lösung wenig, so wird die Schrittweite automatisch größer eingestellt, variiertdie Lösung stark, so wird mit kleinerer Schrittweite iteriert. Diese Vorgehensweisehat den Vorteil, die Berechnung unter Umständen erheblich zu beschleuni-Montag Dienstag Mittwoch Donnerstag Freitag Lösungen© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


200 Kapitel 5: Einführung in SimulinkLösungen Freitag Donnerstag Mittwoch Dienstag Montaggen. Wie weit diese Schrittweite sich ändern darf und mit welcher Toleranz, kanndurch die Parameter Step Size und Tolerance (s. 4) 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. 2) sind selbsterklärend.Von den weiteren, unter Select im Teilfenster 1 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 Verfahrenausgewä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 berechnetwerden soll. Diese Stellen werden in einem entsprechenden Zeitvektor (z.B.(0:0.1:10)) unter dem dann erscheinenden Parameter Output Times konkret angegeben.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 Interpolationermittelt. Diese Möglichkeit der Beeinflussung der Lösung ist insbesonderedann sehr nützlich, wenn man (vielleicht aus Gründen einer optimalenSimulationszeit) mit variabler Schrittweitensteuerung arbeitet, jedoch verschiedeneLösungen miteinander vergleichen muss. In diesem Fall haben die Lösungenim Allgemeinen unterschiedliche Stützstellen, was den Vergleich unter Umständensehr 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 Simulationsdauer,welche bei zu kleinen Werten unerträglich lang werden kann. Hier muss, ggf.durch Ausprobieren in mehreren Versuchen, ein Kompromiss zwischen Simulationsdauerund Simulationsgenauigkeit gefunden werden. Alternativ kann (sollte)ggf. dann auch, wie oben beschrieben, ein Variable-Step-Verfahren mit äquidistanterInterpolation 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. 3in Abbildung 5.5, S. 192) gestartet werden.© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


5.2 Grafische Programmierung mit Simulink 201Im geöffneten Scope-Block bauen sich im vorliegenden Beispiel dann das in Abbildung5.13 dargestellte Sinussignal und das zugehörige Integral auf.Abb. 5.13: Ergebnis der BeispielsimulationAb diesem Moment sind auch die Icons für den Zoom in x- und in y-Richtung(s. Abbildung 5.10 zwischen 1 und 2) 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 (3) in Abbildung 5.10) in eine MATLAB-Variable 4umgelenkt, z.B. in die Variable sl_test1_Signale, so kann man sich die Grafikauchunter MATLAB anschauen. Ein Blick auf den Workspace zeigt, dass drei Vektorenals Spalten abgespeichert wurden:» whosName Size Bytes Classsl_test1_Signale 1001x3 24024 doubletout 1000x1 8000 doubleMontag Dienstag Mittwoch Donnerstag Freitag Lösungen4 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-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


202 Kapitel 5: Einführung in SimulinkMontagDienstagMittwochEine 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 Variablent an den MATLAB-Workspace zurückgeliefert, da im Configuration Parameters-Fensterunter 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)])» title ( ’Ergebnis von sl \ _test1 mit ode3 ’ )» xlabel( ’Zeit /s’)» ylabel( ’Funktionswerte ’ )» gridAuf eine Darstellung der Grafik sei hier aus Platzgründen verzichtet.DonnerstagÜbungenBearbeiten Sie die folgende Aufgaben zur Einübung der Handhabung von Simulink.Übung 84 (Lösung Seite 331)FreitagLösungenProbieren Sie das Testsystem sl_test1.slx für verschiedene Simulationsschrittweitenund 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)darstellt! Welches der Signale ist x(t), welches y(t)?ẏ(t) =x(t), y(0) = 0 (202.1)© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530


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 Differentialgleichungen.Die Grundidee von Simulink ist, die Beschreibung als Blockschaltbild(automatisch) in Differentialgleichungen umzuwandeln und diese dann numerischzu lösen.In den nachfolgenden Beispielen beschränken wir uns auf die quasi-kontinuierlicheSimulation zeitkontinuierlicher Systeme und gehen davon aus, dass das Systemschon mit Hilfe von (gewöhnlichen) Differentialgleichungen modelliert ist.Im Grunde genommen zeigen wir somit, wie Simulink zur Lösung von Differentialgleichungenverwendet werden kann.5.3.1 Beispiel: ungedämpfte SchwingungZum Einstieg beginnen wir mit einem simplen Anfangswertproblem 2. Ordnung.Wir lösen die DifferentialgleichungMontag Dienstag Mittwoch Donnerstag Freitag Lösungenÿ(t) =−y(t), y(0) = 1, ẏ(0) = 0. (203.2)Diese Differentialgleichung ist ein drastisch vereinfachter Spezialfall der linearenSchwingungsdifferentialgleichung© des Titels »MATLAB und Simulink« (ISBN 978-3-8266-9530-8)2013 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.Nähere Informationen unter: http://www.mitp.de/9530

Weitere Magazine dieses Users
Ähnliche Magazine