1 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 R2015a zur Verfügung. Studieren Sie als Vorbereitung auf die Übung zumindest folgende Kapitel im Skriptum zur VU Automatisierung (WS 2015/16) [1.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 Herwig Koppauer <koppauer@acin.tuwien.ac.at>. 1.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. m-code oder auch C-Code) erstellt und editiert werden. Es werden die in Programmierumgebungen üblichen Möglichkeiten zum schrittweisen Ausführen der Befehlssequenzen, zum Debuggen, etc. zur Verfügung gestellt. Skripte werden auch m-files genannt;
1.1 Matlab Seite 5 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 oft auch 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, bearbeitet, etc. werden. Für kleine Projekte empfiehlt es sich, alle Dateien, auf die während der Rechnung oder Simulation zugegriffen wird, in einem gemeinsamen, lokalen (aktuellen) Verzeichnis abzulegen. Command History Window Die in der Vergangenheit ausgeführten Befehle sind im Command History Window chronologisch sortiert. Die einzelnen 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 uebung1.zip zum Download zur Verfügung. In diesem Archiv sind alle für die folgende Übung notwendigen Dateien enthalten. 1.1.1 Grundlagen in Matlab Die grundlegenden Befehle und deren Anwendung sind in den Dateien cds_matlab_- intro_part1.m und cds_matlab_intro_part2.m gezeigt. Hinweis: Vor der Bearbeitung der nachstehenden Aufgabe öffnen Sie diese Dateien 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. Mithilfe der Symbolfolge %% kann der Programmcode in einzeln ausführbare Sektionen unterteilt werden, welche durch die Tastenkombination Strg + Enter abgearbeitet werden. Zum Ausführen eines ganzen m-files geben Sie entweder dessen Namen (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.
1.1 Matlab Seite 6 Aufgabe 1.1. In den folgenden Aufgaben sollen die in cds_matlab_intro_part1.m und cds_matlab_intro_part2.m beschriebenen Befehle an konkreten Beispielen angewandt werden. 1. Gegeben ist das Gleichungssystem x 1 + 2x 2 + 4x 3 = 5 2x 1 + 2x 2 + x 3 = 4 3x 1 + 2x 2 = 1. (1.1a) (1.1b) (1.1c) Schreiben Sie dieses Gleichungssystem in Matrixdarstellung an und bestimmen [ ] T. Sie 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. Gegeben ist die Fourier-Reihenentwicklung n-ter Ordnung der Rechteckfunktion rect(x) A n k=1 4 sin((2k 1)x), (1.2) π(2k 1) wobei A = 10 die Amplitude bezeichnet. Stellen Sie diese Rechteckfunktion für n = 1, 2,..., 100 im Intervall x [0, 10] mithilfe einer for-schleife dar. Nutzen Sie zur schrittweisen grafischen Darstellung der Funktion in der for-schleife den pause-befehl. 3. Gegeben ist die Funktion ( ) xπ f(x, y, t) = sin sin 10 ( yπ 10 ) sin(t). (1.3) Stellen Sie die zu dieser Funktion gehörige Fläche z = f(x, y, t konst ) mithilfe einer for-schleife für verschiedene Zeitpunkte t konst sowie x [0, 10] und y [0, 10] grafisch dar. 1.1.2 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.
1.1 Matlab Seite 7 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. Hinweis: Vor der Bearbeitung der nachstehenden Aufgaben ö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) (1.4) werden in Matlab zahlreiche Integrationsalgorithmen zur Verfügung gestellt. Die Funktion eines solchen Integrationsalgorithmus soll anhand des expliziten Euler-Verfahrens x k+1 = x k + T a f(x k, u k ) (1.5) gezeigt werden. Hierbei bezeichnet x k x(kt a ) die Approximation des Zustandsvektors zum Zeitpunkt t = kt a mit der Abtastzeit T a. Aufgabe 1.2. Betrachten Sie die Differentialgleichung zweiter Ordnung zur Beschreibung eines harmonischen Oszillators in der Form m s + cṡ + ks = f, s(0) = s 0, ṡ(0) = v 0 (1.6) mit der Masse m, der Auslenkung s, der Dämpfungskonstante c, der Federkonstante k sowie der externen Kraft f. Schreiben Sie (1.6) in Zustandsraumdarstellung ẋ = Ax + Bu y = c T x (1.7a) (1.7b) ] ] mit x T = [x 1, x 2 und u T = [u 1, u 2 an. Wählen sie hierfür u 1 = 0, u 2 = f und y = s. Bestimmen Sie die Eigenwerte der Dynamikmatrix und beurteilen Sie das System hinsichtlich Stabilität unter Annahme positiver Konstanten m, c und k. Berechnen Sie die Transitionsmatrix Φ(t) und bestimmen Sie die allgemeine Lösung von (1.7) für den Fall, dass u 2 durch den Einheitssprung σ(t) gegeben ist. Schreiben Sie ein m-file, in welchem der Integrationsalgorithmus (1.5) auf das Differentialgleichungssystem (1.7) angewendet wird. Verwenden Sie als Integrationszeitraum [0, 20]s, als Zeitschrittweite (Abtastzeit) T a = 0.05 s und für die Systemparameter m = 1 kg, c = 1 N s/m, k = 2 N/m, s 0 = 1 m, v 0 = 0.5 m/s. Variieren Sie nun die Abtastzeit und untersuchen Sie deren Einfluss auf die Genauigkeit der numerisch berechneten Lösung. Stellen Sie hierzu den Zeitverlauf der Zustände der numerischen, als auch der exakten Lösung in einer Grafik dar. Vergleichen Sie Ihre Ergebnisse mit den mittels Control System Toolbox berechneten Sprungantworten des gegebenen kontinuierlichen Systems und des zugehörigen
1.2 Simulink Seite 8 Abtastsystems (Abtastzeit T a ). Zur Diskretisierung können Sie den Befehl c2d() verwenden. 1.2 Simulink Simulink ist eine Erweiterung von Matlab zur Simulation und Analyse dynamischer Systeme. Simulink-Modelle besitzen die Dateiendung *.slx. Die grafische Bedienoberfläche erlaubt die Erstellung von Blockschaltbildern der untersuchten Systeme. Einerseits 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. 1.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. Scopes beispielsweise dienen zur grafischen Darstellung von Signalen. 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.
1.2 Simulink Seite 9 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. 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 Signalflussleitungen 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 zu 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. [1.2], [1.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. 1.2.2 Implementierung von dynamischen Systemen Die Implementierung eines dynamischen Systems, für das ein Modell in Form einer (expliziten) Differentialgleichung existiert, kann als Blockschaltbild, als S-function oder auch als Matlab-function erfolgen. Die ersten beiden Varianten werden im Folgenden kurz erläutert. Blockschaltbild In der Simulationsdatei cds_blockschaltbild_pt2.slx und der dazugehörigen Parameterdatei set_parameter_simulink.m ist die Implementierung eines dynamischen Systems in Form von Blockschaltbildern zu finden. Als Beispiel wird hier ein P-T 2 -Glied, welches durch die Übertragungsfunktion G(s) = V 1 + 2ξTs + (st) 2 (1.8)
1.2 Simulink Seite 10 gegeben ist, betrachtet. Um dieses in Form eines Blockschaltbildes mit Integratoren darstellen zu können, muss zunächst die Beschreibung des Systems in Form eines Differentialgleichungssystems erster Ordnung ẋ 1 (t) = x 2 (t) ( ẋ 2 (t) = 1 T 2 x 1(t) 2ξ T x 2(t) + V ) T 2 u(t) (1.9a) (1.9b) mit dem Ausgang y = x 1 und dem Eingang u oder äquivalent t x 1 (t) = x 1,0 + x 2 (τ)dτ 0 t ( x 2 (t) = x 2,0 + 1 T 2 x 1(τ) 2ξ T x 2(τ) + V ) T 2 u(τ) dτ 0 (1.10a) (1.10b) gegeben sein. Die Integraldarstellung (1.10) lässt sich leicht als Blockschaltbild in Simulink, wie in Abbildung 1.1 gezeigt, realisieren. u V/T^2 1 s x2 1 s y=x1 2*xi/T 1/T ^2 Abbildung 1.1: Implementierung des P-T 2 -Gliedes in Simulink. Aufgabe 1.3. Betrachten Sie für die nachstehenden Teilaufgaben die nichtlineare Differentialgleichung... x + cos(x) 2 ẍ + ẋ + e x u = 0. (1.11) 1. Ermitteln Sie die numerische Lösung der Differentialgleichung 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 implementieren Sie das entsprechende Blockschaltbild. Testen Sie die Simulation für u(t) = sin(t). 2. Linearisieren Sie das Differentialgleichungssystem erster Ordnung um die Ruhelage x R = 0, u R = 0 und überprüfen Sie die Stabilität des linearen Systems.
1.2 Simulink Seite 11 Control System Toolbox in Simulink Eine einfache Möglichkeit der Implementierung linearer zeitinvarianter Systeme bietet die Control System Toolbox. Diese kann für zeitkontinuierliche wie auch zeitdiskrete LTI- Systeme verwendet werden. Dabei können die vordefinierten dynamischen Systeme (siehe auch Abschnitt 1.1.2) sowohl als Übertragungsfunktion, als auch direkt in Zustandsraumdarstellung ẋ = Ax + Bu, x(t 0 ) = x 0 (1.12a) y = Cx + Du (1.12b) 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. 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 ẋ 2 = [ ] x2 + sin(u 1 ) ax 1 + bu 2 (1.13) [ ] 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 (1.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 mithilfe des Punkt-Operators zugegriffen werden kann. Die wichtigsten Methoden sind in Tabelle 1.1 zusammengefasst und erläutert. 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.2 Simulink Seite 12 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 1.1: Die wichtigsten Methoden des Objektes block. 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 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). (1.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) (1.16) 5. function Update(block) Diese Funktion kommt bei zeitdiskreten dynamischen Systemen vor. Es wird die Differenzengleichung in der Form x k+1 = f(x k, u k ) (1.17)
1.3 Anwendungsbeispiele Seite 13 implementiert. 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. Das Simulink-Modell (*.slx) 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.slx). 1.3 Anwendungsbeispiele In diesem Abschnitt wird Matlab zur Simulation und Analyse konkreter Anwendungsbeispiele genutzt. Die folgenden Beispiele sind so konzipiert, dass die Herleitung der mathematischen Modelle händisch durchgeführt werden kann. 1.3.1 Elektrisches Netzwerk In der folgenden Aufgabe soll das elektrische System aus Abbildung 1.2 untersucht werden. Das betrachtete Netzwerk besteht aus einem Operationsverstärker, einer nichtlinearen Kapazität C 1 (U C1 ), einer linearen Kapazität C 2 sowie den linearen Widerständen R 1, R 2 und R 3. Weiterhin bezeichnet U s eine auftretende Störung. Aufgabe 1.4 (Modellierung). 1. Leiten Sie unter der Annahme eines idealen Operationsverstärkers das mathematische Modell des elektrischen Netzwerks aus Abbildung 1.2 in der Form ẋ = f(x, u, d) y = h(x, u, d) (1.18a) (1.18b) mit der Spannung U e als Eingang u bzw. der Spannung U s als Störeingang d sowie der Spannung U a als Ausgang y her. Wählen Sie dazu die beiden Kon-
1.3 Anwendungsbeispiele Seite 14 C 1 (U C1 ) U s R2 U C1 U e R 1 R 2 U C2 C 2 i ein,p u d OP V V + (K 1)R 3 U a i ein,n R 3 Abbildung 1.2: Elektrisches System. [ ] T. densatorspannungen als Systemzustände x = U C1 U C2 Setzen Sie für die in der Kapazität C 1 gespeicherte Ladung zunächst den allgemeinen Ausdruck Q 1 (U C1 ) an, womit C 1 (U C1 ) = dq 1 du C1 gilt und C 1 (U C1 ) als differentielle Kapazität zu verstehen ist. Beachten Sie weiters die eingetragenen Pfeilrichtungen. Hinweis: Unter einem idealen Operationsverstärker versteht man einen Verstärker, bei dem die beiden Eingangsströme i ein,p und i ein,n sowie die Differenzspannung u d gleich Null sind. 2. Linearisieren Sie das System (1.18) für den stationären Eingang u R = U e,r und den stationären Störeingang d R = U s,r um eine allgemeine Ruhelage x R = [ ] T. U C1,R U C2,R Stellen Sie das linearisierte System in der Form ẋ = A x + b u u + b d d y = c T x + d u u + d d d (1.19a) (1.19b) mit x = x x R, u = u u R, d = d d R und y = y y R dar. [ ] T 3. Berechnen Sie die Ruhelagen x R = U C1,R U C2,R des Systems (1.18) für den stationären Eingang u R = U e,r und den stationären Störeingang d R = U s,r.
1.3 Anwendungsbeispiele Seite 15 Hinweis: Laden Sie das zip-archiv uebung1.zip von der Homepage der Lehrveranstaltung herunter. Das M-file Parameter.m stellt ein Grundgerüst für die Lösung der nachfolgenden Aufgaben dar. 4. Bestimmen Sie für das linearisierte System (1.19) in Matlab die Übertragungsfunktionen G(s) vom Eingang u zum Ausgang y und G d (s) von der Störung d zum Ausgang y. Spezifizieren Sie dazu das nichtlineare Verhalten von C 1 (U C1 ) mittels Q 1 (U C1 ) = ( ( )) UC1 C 1,ref + k C1 2 U C1,ref U C1 (1.20) sowie die Ruhelage durch U e,r = 5 V und U s,r = 5 V. Wählen Sie die Parameter C 1,ref = 1 µf, U C1,ref = 10 V, k C1 = 800 nfv 1, C 2 = 1 µf, R 1 = 625 Ω, R 2 = 3500 Ω, K = 3. 5. Bei der Übertragungsfunktion G(s) aus Punkt 4 handelt es sich um ein Verzögerungsglied 2-ter Ordnung (P-T 2 ) in der Form G(s) = V 1 + 2ξ(sT) + (st) 2. Bestimmen Sie den Verstärkungsfaktor V, den Dämpfungsgrad ξ und die Zeitkonstante T. 6. Zeichnen Sie in Matlab die Bode-Diagramme der beiden Übertragungsfunktionen und interpretieren Sie diese. Hinweis: Zur Überprüfung Ihrer Ergebnisse sind an dieser Stelle die numerische Dynamikmatrix und die zugehörigen Eingangsvektoren des Systems (1.19) angegeben [ ] [ ] [ ] 1885.71 5371.43 1600 0 A =, b u =, b d =. 285.71 285.71 0 285.71 Aufgabe 1.5 (Implementierung in Matlab/Simulink). Das nichtlineare Modell (1.18) soll nun als S-function und das linearisierte Modell (1.19) als State-Space-Block implementiert werden. Verwenden Sie hierzu das M-file Esys_S_m.m, die Simulationsdatei Esys.slx sowie das bereits in Aufgabe 1.4 bearbeitete M-file Parameter.m aus dem zip-archiv uebung1.zip. Verwenden Sie weiterhin die Parameter aus Punkt 4 von Aufgabe 1.4. 1. Öffnen Sie das M-file Esys_S_m.m und vervollständigen Sie die Methoden Output und Derivatives der darin enthaltenen S-function. Unvollständige Einträge sind durch den den Kommentar TODO gekennzeichnet. Führen Sie anschließend die Simulation Esys.slx aus und überzeugen Sie sich von der Lauffähigkeit der fertiggestellten S-function.
1.3 Anwendungsbeispiele Seite 16 2. Das Simulationsmodell Esys.slx enthält bereits eine Grundstruktur für die Implementierung des linearisierten Modells (1.19) als State-Space-Block. Vervollständigen Sie alle durch TODO gekennzeichneten Blöcke. Das Ziel ist es die Zustände x und den Ausgang y des nichtlinearen System mit den aus dem linearisierten Modell abgeleiteten Größen x R + x und y R + y in den vorbereiteten Scopes zu vergleichen. 3. Im Folgenden soll das Verhalten des Systems untersucht werden. Im Simulationsmodell Esys.slx stehen Ihnen eine sprungförmige und eine sinusförmige Eingangsgröße U e (t) (U e (t) = U e (t) + U e,r ) zur Verfügung. Variieren Sie Winkelfrequenz und Amplitude der sinusförmigen Eingangsgröße z. B. gemäß der Folgen [10 rad/s, 10 2 rad/s, 10 3 rad/s, 10 4 rad/s] und [0.1 V, 0.5 V, 1 V]. Welches Systemverhalten können Sie hierbei erkennen? Wie verhält sich das System bei Aufschaltung einer sprungförmigen Störung? Wie wirkt sich die nichtlineare Kapazität auf das dynamische Systemverhalten aus? In welcher Weise beeinflusst sie das stationäre Systemverhalten aus? Dokumentieren und diskutieren Sie ihre Simulationsergebnisse. 1.3.2 Datenkompression Das in Abbildung 1.3 dargestellte System zur Kompression von Datenströmen wird durch einen Speicher und eine Prozessoreinheit beschrieben. Der eingehende Datenstrom d in wird im Speicher gepuffert, aus dem der Prozessor Daten entnimmt, komprimiert und als Datenstrom d c an den Speicher zurückgibt. Von dort werden diese mit der Datenrate d out wieder ausgegeben. Das Eingangs-Ausgangsverhalten des Prozessors wird durch ein PT 1 - Glied mit der Kompressionsrate c = 0.5 und der Zeitkonstanten T 1 = 1 ms angegeben. Der Datenstrom d p am Eingang des Prozessors sei abhängig von der aktuellen Datenmenge S im Speicher und wird durch d p = as mit a = 0.4 s 1 definiert. Aufgabe 1.6. 1. Schreiben Sie das dynamische Verhalten des Prozessors durch ein zeitdiskretes, lineares System mit dem Eingang u k = d p, dem Ausgang y k = d c in Zustandsraumdarstellung an. Wählen Sie als Abtastzeit T a = 1 µs. 2. Stellen Sie das Gesamtsystem als zeitdiskretes, lineares System mit dem Eingang u k = d in d out, dem Ausgang y k = S sowie geeigneten Zuständen dar. 3. Implementieren Sie das dynamische System der Datenkompression in Matlab/Simulink als Blockschaltbild. Realisieren Sie dabei den Prozessors als Zustandsraumdarstellung in einem LTI-Systems-Block. 4. Berechnen Sie, welche Datenmenge S R sich im Speicher einstellt, wenn am Eingang ein konstanter Datenstrom u R = 1 anliegt. 5. Das System befinde sich in einem Arbeitspunkt mit dem konstanten Eingang
1.3 Anwendungsbeispiele Seite 17 d in d out Speicher S d p d c H A c st 1 +1 Prozessor Abbildung 1.3: Datenkompression. u R = 1 und der Datenmenge S R. Berechnen Sie wie groß der Speicher ausgelegt werden muss, damit dieser nicht überläuft, wenn am Eingang für den Zeitraum von 5 ms die Datenrate sprungförmig auf u R = 1000 ansteigt und danach wieder auf u R zurückgeht? Überprüfen Sie ihr Ergebnis durch Simulation, indem Sie den Sprung der Eingangsdatenmenge zum Zeitpunkt t = 10 ms aufschalten. Hinweis: Beachten Sie die korrekte Wahl des Anfangszustandes.
1.4 Literatur Seite 18 1.4 Literatur [1.1] A. Kugi, Skriptum zur VU Automatisierung (WS 2015/2016), <http://www.acin.tuwien.ac.at/?id=42>, Institut für Automatisierungs- und Regelungstechnik, TU Wien, 2015. [1.2] A. Angermann, M. Beuschel, M. Rau und U. Wohlfarth, Matlab - Simulink - Stateflow, Grundlagen, Toolboxen, Beispiele. München: Oldenbourg Verlag, 2005. [1.3] H. Schwarz, Numerische Mathematik. Stuttgart: B.G. Teubner, 1997.