2 Systemanalyse mit Matlab/Simulink



Ähnliche Dokumente
Simulink: Einführende Beispiele

Jederzeit Ordnung halten

MS Access 2010 Kompakt

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Electronic Systems GmbH & Co. KG

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1 Systemanalyse mit Matlab/Simulink

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Drucken aus der Anwendung

Wie halte ich Ordnung auf meiner Festplatte?

Datenbanken Kapitel 2

Modellbildungssysteme: Pädagogische und didaktische Ziele

Programme im Griff Was bringt Ihnen dieses Kapitel?

Dokumentenverwaltung im Internet

Anleitung für die Formularbearbeitung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

RT-E: Entwurf der Drehzahlregelung eines Gebläsemotors

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Arbeiten mit Pivot-Tabellen

Mediator 9 - Lernprogramm

teamsync Kurzanleitung

Dokumentation. estat Version 2.0

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Diese Unterlage bezieht sich auf Excel 2010 (auf Deutsch). Die Benutzeroberfläche kann in anderen Versionen der Software erheblich anders aussehen.

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Tipps und Tricks zu den Updates

Gezielt über Folien hinweg springen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

SRH - Kurzinformation

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Nutzung von GiS BasePac 8 im Netzwerk

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Übung - Konfigurieren einer Windows 7-Firewall

II. Daten sichern und wiederherstellen 1. Daten sichern

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Institut für Leistungselektronik und Elektrische Antriebe. Übungen Regelungstechnik 2

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Hardware - Software - Net zwerke

MMS - Update auf Version 4.4

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Anzeige von eingescannten Rechnungen

Einführungskurs MOODLE Themen:

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Anleitung zur Verwendung der VVW-Word-Vorlagen

BILDER TEILEN MIT DROPBOX

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

Einführung in TexMaker

Installation OMNIKEY 3121 USB

CodeSaver. Vorwort. Seite 1 von 6

Elexis-BlueEvidence-Connector

Vorweg konvertieren der Dateien

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

FRILO-Aktuell Ausgabe 2/2013

Dokumentation zur Versendung der Statistik Daten

BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route:

Installation, Einrichtung, Nutzung von PHOCA DOWNLOAD. Download-Links... 2

TIF2ELO Maskeneditor Handbuch

1. License Borrowing Verfahren

Webalizer HOWTO. Stand:

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Installationsanleitung DIALOGMANAGER

Neuinstallation Einzelplatzversion

Anleitung zum LPI ATP Portal

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Zum Lesen von News-Feeds unter Windows bieten sich diverse kostenlose bzw. kostenpflichtige Feed-Reader an:

Dateimanagement in Moodle Eine Schritt-für

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Software- und Druckerzuweisung Selbstlernmaterialien

Informationsblatt Induktionsbeweis

Dokumentation IBIS Monitor

Dokumentation. Mindestanforderungen: Das Board

Anleitung zum Importieren, Durchführen und Auswerten von Umfragen in Blackboard

Adobe Photoshop CS2, CS3, CS4, CS5 mit Auto-SoftProof-Ansicht

Kursangebot gesammelt einlesen

Updateseite_BuV-PlugIn-NERZ-Gesamt

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

Anleitung für Zugriff auf den LEM-FTP-Server

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

1 topologisches Sortieren

ASDI Benchmarking Projekt. Anleitung zum Datenexport

Computeria Solothurn

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Definition 3.1: Ein Differentialgleichungssystem 1. Ordnung

So gehts Schritt-für-Schritt-Anleitung

Handreichung zu Datenauswertungen im TILL Stand:

Dokumentenarchivierung mit SelectLine-Produkten

Charakteristikenmethode im Beispiel

Transkript:

2 Systemanalyse mit Matlab/Simulink Ziel dieser Übung ist es, das Computerprogramm Matlab/Simulink für die Systemanalyse einzusetzen. Alle Aufgabenstellungen dieser Übungseinheit sind mit diesem Softwarepaket zu lösen. Im Computerlabor des Instituts steht Matlab/Simulink in der Version 2012b zur Verfügung. Studieren Sie als Vorbereitung auf die Übung zumindest folgende Skripten: Skriptum zur VU Automatisierung (WS 2013/14) [2.1] Kapitel 1, vollständig Kapitel 2, vollständig Kapitel 3, vollständig Kapitel 6, vollständig Bei Fragen oder Anregungen zu dieser Übung wenden Sie sich bitte an Stephan Strommer <strommer@acin.tuwien.ac.at> oder Stefan Flixeder <flixeder@acin.tuwien.ac.at>. 2.1 Matlab Matlab ist ein Computernumerikprogramm. Der Name ist eine Abkürzung für Matrix Laboratory, womit bereits angedeutet wird, dass das Programm gut zum Rechnen mit Vektoren und Matrizen geeignet ist. Der Matlab-Desktop (das eigentliche Programmfenster) enthält in der Standardeinstellung folgende Fenster. (Dies kann jedoch individuell angepasst werden.) Command Window Es stellt den Eingabebereich dar, welcher auf jeden Fall angezeigt werden muss. Hier können alle Befehle hinter der Eingabeaufforderung >> eingegeben und direkt ausgeführt werden. Schließt man eine Befehlssequenz mit einem Semikolon ab, so wird die Ausgabe von Matlab unterdrückt. Das Drücken der Eingabe-Taste bewirkt die sofortige Ausführung der Befehlszeile. Im Falle mehrzeiliger Befehlseingaben kann mit der Umschalt- und der Eingabe-Taste in eine neue Zeile gesprungen werden. Editor Im Editor können Funktionen, Skripte oder Programm-Code (z. B. C-Code) erstellt und editiert werden. Es werden die in Programmierumgebungen üblichen Möglichkeiten zum schrittweisen Ausführen der Befehlssequenzen, zum Debuggen, etc. zur

2.1 Matlab Seite 14 Verfügung gestellt. Skripte werden auch M-files genannt; sie besitzen die Dateiendung *.m und werden zur Laufzeit von einem Interpreter abgearbeitet. Skripte enthalten Matlab-Befehlssequenzen, wie sie prinzipiell auch direkt im Command Window eingegeben werden können. Funktionen besitzen ebenfalls die Dateiendung *.m. Sie erhalten meist Eingangsparameter und geben Rückgabewerte zurück. Workspace Browser Die aktuellen Variablen werden in Matlab im so genannten Workspace angezeigt. Sie können durch Anklicken aufgerufen und verändert werden. Current Directory Browser Im Current Directory Browser wird das aktuelle Arbeitsverzeichnis dargestellt. Dateien und Ordner können geöffnet, angelegt, bearbeiten, etc. werden. Es ist zu empfehlen, dass alle Dateien, auf die während der Rechnung oder Simulation zugegriffen wird, in einem gemeinsamen, lokalen (aktuellen) Verzeichnis liegen. Command History Window Es stellt ein chronologisch sortiertes Protokoll in der Vergangenheit ausgeführter Befehle dar. Die Befehle können herauskopiert bzw. durch einen Doppelklick erneut ausgeführt werden. Hinweis: Auf der Homepage der Lehrveranstaltung steht für Sie das zip-archiv uebung2.zip zum Download zur Verfügung. In diesem Archiv sind alle für die folgende Übung notwendigen Dateien enthalten. 2.1.1 Grundlagen in Matlab Die grundlegenden Befehle sind in der Datei cds_matlab_intro_part1.m gezeigt und beschrieben. Aufgabe 2.1. Öffnen Sie die Datei cds_matlab_intro_part1.m im Matlab-Editor und arbeiten Sie alle Befehle schrittweise durch. Beachten Sie, dass die Funktion mittelwert.m aufgerufen wird, welche sich daher im aktuellen Arbeitsverzeichnis befinden muss. Zum Ausführen einzelner Befehlssequenzen markieren Sie diese im Editor und drücken F9. Zum Ausführen eines ganzen M-files geben Sie entweder dessen Name (ohne Dateiendung) im Command Window ein oder öffnen Sie die Datei im Editor und drücken F5. Versuchen Sie alle Befehle zu verstehen und machen Sie gegebenenfalls von der Hilfefunktion Gebrauch. Aufgabe 2.2. Gegeben ist das Gleichungssystem x 1 + 2x 2 + 4x 3 = 5 2x 1 + 2x 2 + x 3 = 4 3x 1 + 2x 2 = 1. (2.1)

2.1 Matlab Seite 15 Schreiben Sie dieses Gleichungssystem in Matrixdarstellung an und bestimmen Sie [ ] T den Lösungsvektor x = x 1 x 2 x 3. Führen Sie die Rechnung einmal mit dem Befehl inv() und einmal mit dem Befehl mldivide() (oder in seiner Kurzform \) durch. Überlegen Sie sich die Unterschiede der beiden Befehle und wann welcher angewandt werden sollte. Hinweis: Um die benötigte Rechenzeit zu bestimmen, können die Befehle tic und toc verwendet werden. Weiters kann mithilfe von norm(ax b) der numerische Fehler der Berechnung bestimmt werden. 2.1.2 Grafische Darstellung von Ergebnissen Um Ergebnisse grafisch darzustellen, gibt es in Matlab eine Vielzahl von Befehlen. Einige dieser Befehle sind in der Datei cds_matlab_intro_part2.m zu finden. Aufgabe 2.3. Öffnen Sie die Datei cds_matlab_intro_part2.m im Matlab-Editor und arbeiten Sie alle Befehle schrittweise durch. Versuchen Sie alle Befehle zu verstehen und machen Sie gegebenenfalls von der Hilfefunktion Gebrauch. Aufgabe 2.4. Gegeben ist die Fourier-Reihenentwicklung n-ter Ordnung der Rechteckfunktion rect (x) A n k=1 4 sin ((2k 1) x), (2.2) π (2k 1) wobei A = 10 die Amplitude bezeichnet. Stellen Sie mit Hilfe einer for-schleife diese Rechteckfunktion für n = 1, 2,..., 100 im Intervall x [0, 10] dar. Nutzen Sie zur grafischen Darstellung der Funktion in der for-schleife den pause-befehl. Aufgabe 2.5. Gegeben ist die Funktion ( ) ( ) xπ yπ f (x, y, t) = sin sin sin (t). (2.3) 10 10 Stellen Sie die zu dieser Funktion gehörige Fläche z = f (x, y, t konst ) mit Hilfe einer for-schleife für verschiedene Zeitpunkte t konst sowie x [0, 10] und y [0, 10] grafischen dar. 2.1.3 Control System Toolbox Toolboxen sind Sammlungen von Funktionen, meist in Form von M-files, die den Funktionsumfang des Basisprogramms erweitern. Nach der erstmaligen Installation werden Toolboxen automatisch beim Programmstart von Matlab geladen. Eine Übersicht der installierten Toolboxen erhält man mit dem Befehl ver.

2.2 Simulink Seite 16 Die Toolbox Control System ist häufig bei regelungstechnischen Aufgabenstellungen nützlich. Sie unterstützt bei der Analyse und dem Reglerentwurf von linearen dynamischen Systemen. Aufgabe 2.6. Öffnen Sie die Datei cds_matlab_intro_part3.m im Matlab-Editor und arbeiten Sie alle Befehle schrittweise durch. Versuchen Sie alle Befehle zu verstehen und machen Sie gegebenenfalls von der Hilfefunktion Gebrauch. Zur Bestimmung der numerischen Lösung eines (nichtlinearen) Differentialgleichungssystems der Form ẋ = f (x, u) (2.4) werden in Matlab zahlreiche Integrationsalgorithmen zur Verfügung gestellt. Die Funktion eines solchen Integrationsalgorithmus soll anhand des einfachen Euler-Vorwärts- Verfahrens gezeigt werden. Dazu wählt man den Ansatz ẋ k x k+1 x k T a (2.5) mit x k = x (kt a ) und der (nicht notwendigerweise) konstanten Schrittweite T a, so dass das Differentialgleichungssystem zeitlich diskretisiert in der Form angegeben werden kann. x k+1 = x k + T a f (x k, u k ) (2.6) Aufgabe 2.7. Schreiben Sie ein M-file, in welchem der Integrationsalgorithmus (2.6) auf das Differentialgleichungssystem ẋ = ] [ẋ1 ẋ 2 [ ] [ ] [ ] [ ] 0 1 x1 0 0 = + u, x(0) = 4 3 1 0 x 2 (2.7) angewendet wird. Verwenden Sie als Integrationszeitraum t [0, 5]s, als Eingang u den Einheitsprung σ(t) und als Zeitschrittweite (Abtastzeit) zunächst T a = 0.1 s. Vergleichen Sie Ihre Ergebnisse mit den mittels Control System Toolbox berechneten Sprungantworten des gegebenen kontinuierlichen Systems und des zugehörigen Abtastsystems (Abtastzeit T a ). Zur Diskretisierung können Sie den Befehl c2d() verwenden. Überlegen Sie sich, warum welche Signale übereinstimmen. Untersuchen Sie ferner durch Veränderung der Abtastzeit T a deren Einfluss auf die Genauigkeit und die Stabilität des Euler-Vorwärts-Verfahrens. 2.2 Simulink Simulink ist eine Erweiterung von Matlab zur Simulation und Analyse dynamischer Systeme. Simulink-Modelle besitzen die Dateiendung *.mdl. Die grafische Bedienoberfläche erlaubt die Erstellung von Blockschaltbildern der untersuchten Systeme. Einerseits

2.2 Simulink Seite 17 stellt Simulink eine Bibliothek mit vorgefertigten Funktionsblöcken zur Verfügung, andererseits können benutzerdefinierte Blöcke erstellt werden. Eine flexible Möglichkeit dafür sind so genannte S-function-Blöcke. S-functions können z. B. als Matlab M-file oder in C programmiert werden. Sie erlauben die Implementierung dynamischer Modelle in einem Block. 2.2.1 Grundlagen von Simulink Mit dem Befehl simulink wird der Simulink Library Browser geöffnet. Er enthält die Funktionsblöcke, welche per Drag & Drop in das Simulink Modell gezogen werden können. Die Blöcke sind mittels Signalflußleitungen zu verbinden. Besonders häufig benötigte Blöcke sind in der Gliederung des Simulink Library Browsers z. B. in den folgenden Gruppen zu finden. Continuous: Blöcke zur Simulation zeitkontinuierlicher Systeme, unter anderem der zeitkontinuierliche Integrator 1/s. Math Operations: Einige mathematische Operationen, z. B. Addieren, Multiplizieren, Quadrieren. Sinks: Blöcke, die nur einen Eingang (oder mehrere Eingänge), aber keinen Ausgang besitzen. Z. B. werden Scopes zur grafischen Darstellung von Signalen genützt. Signale können an beliebiger Stelle direkt von Signalflussleitungen abgegriffen werden. Der Block To Workspace erlaubt den Export von Simulationsergebnissen in den Matlab-Workspace, wo sie dann als Variable zur weiteren Auswertung zur Verfügung stehen. Sources: Blöcke, die nur einen Ausgang (oder mehrere Ausgänge), aber keinen Eingang besitzen, wie etwa Signalgeneratoren. Zur effizienten Arbeit mit Simulink wird folgendes Vorgehen empfohlen: 1. Parameterwerte werden nicht direkt in Simulink eingetragen, sondern zusammengefasst in einem M-file definiert, welches vor der Simulation ausgeführt wird. Damit können die Parameter einfach und an zentraler Stelle geändert werden. Zum Update der Parameter muss das M-file erneut ausgeführt werden. Hinweis: Alle Variablen, die sich im Matlab-Workspace befinden, stehen auch in Simulink zur Verfügung. 2. Werden die mathematischen Ausdrücke umfangreicher, empfiehlt es sich, die Verschaltung vieler Einzelblöcke durch die Verwendung benutzerdefinierter (programmierter) Blöcke zu umgehen. Die entsprechenden Blöcke finden sich in der Gruppe User-Defined Functions. Beispielsweise können im Block Fcn beliebige mathematische Ausdrücke aus mathematischen Operatoren und Matlab Funktionen zusammengesetzt werden. Für dynamische Systeme eignet sich der Block level 2 MATLAB S-Function.

2.2 Simulink Seite 18 3. Eine weitere Möglichkeit die Übersichtlichkeit von Modellen zu verbessern, ist die Verwendung von Subsystemen (Ports & Subsystems Subsystem). 4. Um die Anzahl der am Bildschirm dargestellten Signalflußleitungen zu reduzieren, können die Blöcke From und Goto aus der Gruppe Signal Routing verwendet werden. Simulationseinstellungen können im Menü Simulation Model Configuration Parameters vorgenommen werden. Besonders wesentlich ist dabei die Wahl der Simulationsdauer und des Integrationsalgorithmus. Ferner können für den Integrationsalgorithmus Schranken der Zeitschrittweite und Genauigkeitsanforderungen eingestellt werden. Im Rahmen dieser Einführung soll auf eine detaillierte Diskussion der verwendeten Algorithmen verzichtet werden. Einen Überblick über einige in Matlab zur Verfügung stehende Lösungsverfahren für Anfangswertprobleme erhalten Sie in der Hilfe ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb (aufrufbar z. B. mit doc ode45) unter der Überschrift Algorithms. Diese Algorithmen werden auch von Simulink verwendet. Ferner sei auf die Fachliteratur, z. B. [2.2, 2.3], verwiesen. Die Simulation kann durch Anklicken des Startknopfes oder durch Drücken der Tasten Strg + T gestartet werden. Um eine Simulation alternativ aus dem Eingabefenster oder einem M-file zu starten, kann der Befehl sim() verwendet werden. 2.2.2 Implementierung von dynamischen Systemen Die Implementierung eines dynamischen Systems, für das ein Modell in Form einer (expliziten) Differentialgleichung existiert, kann entweder als Blockschaltbild oder als S- function erfolgen. Beides wird im Folgenden kurz erläutert. Blockschaltbild In der Simulationsdatei cds_simulink_testfile.mdl und der dazugehörigen Parameterdatei set_parameter_simulink.m ist die Implementierung eines dynamischen Systems in Form von Blockschaltbildern zu finden. Als Beispiel betrachte man hier ein PT 2 -Glied, welches durch die Übertragungsfunktion G (s) = V 1 + 2ξTs + (st) 2 (2.8) gegeben ist. Um dieses in Form eines Blockschaltbildes mit Integratoren darstellen zu können, muss zunächst die Beschreibung des Systems in Form eines Differentialgleichungssystems ẋ 1 (t) = x 2 (t) ( ẋ 2 (t) = 1 T 2 x 1 (t) 2ξ T x 2 (t) + V ) T 2 u (t) (2.9a) (2.9b)

2.2 Simulink Seite 19 mit dem Ausgang y = x 1 und dem Eingang u oder äquivalent t x 1 (t) = x 1,0 + x 2 (t) = x 2,0 + 0 t 0 x 2 (τ) dτ ( 1 T 2 x 1 (τ) 2ξ T x 2 (τ) + V ) T 2 u (τ) dτ (2.10a) (2.10b) gegeben sein. Ausgehend von der Integraldarstellung (2.10) lässt sich leicht eine Implementierung als Blockschaltbild in Simulink herleiten, siehe Abbildung 2.1. u V/T^2 1 s x2 1 s y=x1 2*xi/T 1/T ^2 Abbildung 2.1: Implementierung des PT 2 -Gliedes in Simulink. Aufgabe 2.8. Ermitteln Sie die numerische Lösung der nichtlinearen Differentialgleichung... x + cos (x) 2 ẍ + ẋ + e x u = 0 (2.11) mit dem Zustand x, dem Eingang u und den Anfangsbedingungen ẍ (0) = ẋ (0) = x (0) = 0. Formen Sie dazu die Differentialgleichung in ein Differentialgleichungssystem erster Ordnung um und entwerfen Sie das entsprechende Blockschaltbild. Testen Sie die Simulation für u (t) = sin (t). Control System Toolbox Für lineare zeitinvariante, zeitkontinuierliche und zeitdiskrete Systeme ist eine Implementierung mit Hilfe der Control System Toolbox wesentlich einfacher möglich. Dabei können die vordefinierten dynamischen Systeme (siehe auch Abschnitt 2.1.3) sowohl als Übertragungsfunktion als auch direkt in Zustandsraumdarstellung ẋ = Ax + Bu, x(t 0 ) = x 0 y = Cx + Du (2.12) angegeben werden. Es bietet sich dabei insbesondere der Block LTI System aus der Control System Toolbox an, in welchem das System in beliebiger Darstellung der Control System Toolbox eingetragen werden kann.

2.2 Simulink Seite 20 S-function Sollen umfangreichere Systeme simuliert werden, geht die Übersichtlichkeit der in Form von Blockschaltbildern implementierten Modelle relativ rasch verloren. Hier kann die Verwendung von S-functions Abhilfe schaffen, wobei im Rahmen dieser Lehrveranstaltung ausschließlich so genannte Level 2 MATLAB S-functions zur Anwendung kommen. Das in Zustandsraumdarstellung gegebene System ] [ ] [ẋ1 x2 + sin (u 1 ) ẋ = = (2.13) ẋ 2 ax 1 + bu 2 [ ] T mit dem Eingangsvektor u = u 1 u 2, den Parametern a und b, den Zuständen x und dem Ausgangsvektor y wurde in einer S-function in der Beispieldatei test_sfunc_m.m implementiert. Die Ausgänge sind durch x 1 y = x 2 (2.14) e x 1 cosh (x 2 ) gegeben. Das zentrale Element einer Level 2 MATLAB S-function ist ein run-time Objekt - eine Instanz der Klasse Simulink.MSFcnRunTimeBlock. Das Objekt wird üblicherweise als block bezeichnet. Es stellt für die Simulation wichtige Attribute und Methoden zur Verfügung, auf die mit Hilfe des Punkt-Operators zugegriffen werden kann. Die wichtigsten Methoden sind in Tabelle 2.1 zusammengefasst und erläutert. Bezeichnung Methode block.inputport block.contstates block.derivatives block.outputport block.dialogprm Erklärung Liefert die Eingänge u Liefert die Zustände x Liefert die zeitlichen Ableitungen der Zustände ẋ Liefert die Ausgänge y Liefert die Parameter des Systems Tabelle 2.1: Die wichtigsten Methoden des Objektes block. Zusätzlich können einer S-function Parameterwerte, z. B. physikalische Parameter des Systems, übergeben werden. Damit ist die Änderung von Parametern direkt in Simulink bzw. von Matlab aus möglich, ohne die S-function selbst zu verändern. Typischerweise enthält eine S-function für dynamische Systeme die folgenden Funktionen (siehe auch das Beispiel test_sfunc_m.m). 1. function setup(block) In dieser Funktion wird das run-time Objekt block initialisiert. Dabei wird z. B. die Länge der Eingangs-, Zustands-, Parameter- und Ausgangsvektoren festgelegt. Es ist möglich, Eingänge und Ausgänge zu so genannten Ports zu gruppieren. In der

2.2 Simulink Seite 21 Beispieldatei test_sfunc_m.m wurden zwei Ausgangsports festgelegt, wobei Port 1 die Ausgangssignale x 1 und x 2 zusammenfasst und Port 3 den dritten Ausgang enthält, welcher durch die Funktion e x 1 cosh (x 2 ) gegeben ist. Die beiden Eingänge werden jeweils über separate Ports an die S-function übergeben. Der Parametervektor ist kein herkömmlicher Matlab-Vektor, da dessen Elemente unterschiedliche Datentypen aufweisen dürfen. In der Beispieldatei ist das dritte Element ein Vektor. Sollen sehr viele Parameter übergeben werden, ist die Verwendung von Structures zu empfehlen. Die verwendeten Feldnamen stehen dann auch in der S-function zur Verfügung, womit der Verwechslung von Parametern vorgebeugt werden kann. 2. function InitConditions(block) In dieser Funktion werden den Zuständen die Anfangswerte zugewiesen. Günstigerweise werden diese im Parametervektor an die S-function übergeben. 3. function Output(block) Berechnung der Ausgangsgleichung y = h(x, u). (2.15) 4. function Derivatives(block) Diese Funktion kommt nur bei zeitkontinuierlichen dynamischen Systemen vor. Es werden die Ableitungen berechnet, d. h. die Differentialgleichung wird in der Form eingegeben. ẋ = f(x, u) (2.16) 5. function Update(block) Diese Funktion kommt bei zeitdiskreten dynamischen Systemen vor. Es wird die Differenzengleichung in der Form implementiert. x k+1 = f(x k, u k ) (2.17) Die obigen Funktionen werden zur Laufzeit der Simulation von Simulink aufgerufen - zum Teil auch mehrmals, wie z. B. die Funktionen Output(block) und Derivatives(block) oder Update(block). Bei den Funktionen in der Beispieldatei test_- sfunc_m.m ist zu beachten, dass meist neue Variablen für die Attribute des Objektes block eingeführt wurden. Dies dient der besseren Lesbarkeit der Programme und kann den Schreibaufwand verringern. Beachten Sie im Zusammenhang mit S-functions folgende Hinweise: Der Name des M-files, welches die S-function beinhaltet, muss mit dem S-function Namen (im vorliegenden Fall: test_sfunc_m) identisch sein.

2.2 Simulink Seite 22 Das Simulink-Modell (*.mdl) und die S-function (*.m) müssen verschiedene Namen haben, sich aber im selben Verzeichnis befinden. Verwenden Sie in Simulink den Block User-Defined Functions level 2 MAT- LAB S-Function. S-function-Blöcke können maskiert werden, so dass man die Parameter direkt in einer Maske eingeben kann (siehe Beispiel sim_test_sfunc.mdl). Aufgabe 2.9. Erstellen Sie für den translatorischen Zweimassenschwinger aus Übung 1 ein Simulationsmodell, in welchem 1. das vollständige nichtlineare Modell mit Hilfe einer level 2 MATLAB S-function und 2. das linearisierte Modell mit Hilfe der Control System Toolbox implementiert sind. Vergleichen Sie die Ergebnisse der zwei Modelle indem Sie als Stellgröße u und Störung v zwei zeitlich versetzte Sprünge von 0 auf 2 N aufschalten. Als Startwerte verwenden Sie die in Übung 1 bereits berechneten Ruhelagen des Systems. Die für die Simulation notwendigen Parameter finden Sie in Tabelle 2.2. Parameter Wert m 1 5 kg m 2 1 kg s 10 0.35 m s 120 0.5 m d 1 3 Ns/m d 12 0.15 Ns/m c 1 50 N c 12 5 N Tabelle 2.2: Parameter des translatorischen Zweimassenschwingers.

2.3 Literatur Seite 23 2.3 Literatur [2.1] A. Kugi, Skriptum zur VU Automatisierung (WS 2013/2014), <http://www.acin.tuwien.ac.at/?id=42>, Institut für Automatisierungs- und Regelungstechnik, TU Wien, 2012. [2.2] A. Angermann, M. Beuschel, M. Rau und U. Wohlfarth, Matlab - Simulink - Stateflow, Grundlagen, Toolboxen, Beispiele. München: Oldenbourg Verlag, 2005. [2.3] H. Schwarz, Numerische Mathematik. Stuttgart: B.G. Teubner, 1997.