Praktikum Automatisierungstechnik Vertiefung
Transcription
Praktikum Automatisierungstechnik Vertiefung
Johannes Kepler Universität Linz Institut für Regelungstechnik und Prozessautomatisierung Praktikum Automatisierungstechnik Vertiefung y ẋ = Ax + Bu y = Cx + Du ẇ = Âw + B̂u u + B̂y y x̂ = Ĉw + D̂u u + D̂y y x̂ K Stand: WS 2016/17 O.Univ.Prof. Kurt Schlacher Inhaltsverzeichnis 1 Organisation 1 2 Praktikum 1 2.1 Beispiel: Pendel mit Feder und Dämpfer 2.2 Die EL- und die H-Gleichungen . . . . . 2.3 Ein elektrisches System . . . . . . . . . . 2.4 Wagen & Pendel . . . . . . . . . . . . . 4 4 5 7 8 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ii Kapitel 1 Organisation Das Praktikum bietet den Studierenden die Möglichkeit, die Open-Source Programme Maxima, Scilab/Xcos oder Gnu Octave sowie ein echtzeitfähiges Linux System kennen zu lernen. Im Vordergrund stehen regelungstechnische Anwendungen. Für die Installation und Einarbeitung in die Programmpakete werden entsprechende Links zur Verfügung gestellt. Die Programme Maxima, Scilab/Xcos oder Gnu Octave stehen für Linux, OS X oder Windows basierte Systeme zur Verfügung. Als Echtzeitsystem eignen sich diverse Linux Distributionen mit Realtime-Preempt Linux Kernel”. Zudem werden die ” theoretischen Erklärungen durch Beispiele begleitet. Den Abschluss des Praktikums bildet die Implementierung eines Regelalgorithmus auf einem echtzeitfähigem Linux System. Ansprechpersonen Bei Fragen zu den Aufgaben wenden Sie sich an den Praktikumsleiter Prof. Kurt Schlacher. Praktikumsvorbereitung und -durchführung Das Praktikum wird in Zweiergruppen absolviert. Die Gruppeneinteilung erfolgt in der Vorbesprechung. Die Aufgabenstellungen werden zeitgerecht auf der Institutshomepage im Downloadbereich zur Verfügung gestellt. Jeder/jede Studierende muss mit der Lösung der Aufgabenstellungen vertraut sein. Dies wird zu Beginn jedes Praktikums überprüft. Um den Fortschritt im Praktikum zu überprüfen, werden in unregelmäßigen Abständen Einzelaufgaben gestellt. Rechnerraum Der Rechnerraum steht allen PraktikumsteilnehmerInnen zur Verfügung. Folgende Punkte sind zu beachten: • Der Rechnerraum muss nach dem Benützen wieder ordnungsgemäß verlassen werden. 1 Kapitel 1. Organisation • Kopieren von Software ist Diebstahl. • Zum Ablegen von Daten steht Ihnen nur das Verzeichnis /home/rt_preempt/ zur Verfügung. Der Benutzername ist rt_preempt, das Passwort lautet rt_preempt. Bei Starten des Rechners wählen Sie die Version rt.... aus. Für den Erhalt der lokal abgespeicherten Daten können wir keine Garantie abgeben. Die Laufwerke werden gelegentlich von den StudentInnendaten gesäubert, d.h. bringen Sie ins Praktikum Ihre Daten auf einem Datenträger (USB-Stick, externe Festplatte, CD,...) mit. • Stecken Sie keine Verbindungskabel um! Bei unsachgemäßer Behandlung kann es zur Beschädigung der Hardware kommen. Bei Fragen wenden Sie sich bitte nur an Institutsangestellte. • Sollten bei den Rechnern technische Gebrechen auftreten, so ist dies ebenfalls am Institut zu melden! • Es ist nicht möglich mit den Laborrechnern ins Internet zu gelangen. • Die Programme Maxima, Scilab/Xcos und Gnu Octave sind auf den Laborechnern installiert. Kontrollieren Sie, ob ihre Dateien kompatibel sind. Im Praktikum kann keine Rücksicht auf nicht funktionierende Ausarbeitungen genommen werden! Maxima Maxima ist ein symbolisches Rechenprogramm, es ist unter GPL lizenziert und man findet es auf SourceForge.net unter der Adresse http://maxima.sourceforge.net/. Den Ursprung hat Maxima im Computer-Algebra-System Macsyma, das ursprünglich in den späteren sechziger Jahren vom MIT (Massachusetts Institute of Technology) in Boston entwickelt wurde. Seit 1998 ist Macsyma Dank der Erlaubnis des amerikanischen Energieministeriums öffentlich zugänglich. Im Jahre 2000 wurde Maxima an SourceForge übergeben und wird seit dem über dieses Portal gewartet und verbessert. Maxima ist in der Programmiersprache Common LISP implementiert, es ist ein Kommandozeilen orientiertes Programm. Inzwischen gibt es einige Benutzeroberflächen, allen voran wxMaxima, http://andrejv.github.io/wxmaxima/download.html, das auf wxWidgets basiert. Für den universell erweiterbaren Editor Emacs, man findet ihn unter http://www.gnu.org/software/emacs/, gibt es die Erweiterung Imaxima, siehe auch https://sites.google.com/site/imaximaimath/. Benutzt man das Programm TEXmacs, http://www.texmacs.org/tmweb/home/welcome.en.html, dann steht Maxima als Hilfsprogramm direkt zur Verfügung. Man beachte, dass einige Linux Distributionen fertige Pakete für die Installation zur Verfügung stellen. Scilab/Xcos Scilab ist ein numerisches Rechenprogramm, entwickelt für die Regelungstechnik und Signalverarbeitung. Als Alternative zu Matlab wurde es 1990 am Institut national de 2 Kapitel 1. Organisation recherche en informatique et en automatique (INRIA) in Frankreich entwickelt und die Weiterentwicklung wird seit 2004 von einem Konsortium unter der Leitung des INRIA koordiniert. Dieses in C und Fortran programmierte Softwarepaket findet man auf Scilab.org unter der Adresse http://www.scilab.org/. Es ist unter CeCILL lizenziert. Die Funktionalität und die Syntax ist stark an das weit verbreitete numerische Rechenprogramm Matlab/SimuLink angelehnt. Seine Stärke erhält Scilab/Xcos erst durch die große Anzahl von Bibliotheken. Xcos erlaubt auch die Handhabung impliziter dynamischer Systeme. Durch die Integration von Modelica können Modelle elektrischer oder hydraulischer Schaltungen, kombiniert mit Regelungen oder Signalverarbeitungen, einfach objektorientiert ohne Lösen der Netzwerksgleichungen für die numerische Simulation erstellt werden. Man beachte, dass einige Linux Distributionen fertige Pakete für die Installation zur Verfügung stellen. Octave Gnu Octave entstand 1988, zunächst als Begleitsoftware für ein studentisches Lehrbuch. Die Vollzeitentwicklung begann 1992, seitdem wurde GNU Octave, man findet die aktuelle Version unter https://www.gnu.org/software/octave/, mehrmals grundlegend überarbeitet. Implementiert ist Octave in C++, erweiterbar ist es aber auch durch Module, die in Octave selbst oder in anderen Sprachen verfasst wurden, zum Beispiel Fortran, C oder C++. Für die grafische Ausgabe von 2D- und 3D-Plots wird voreingestellt GnuPlot, http://www.gnuplot.info/, verwendet. Die von Matlab abgeleitete Skriptsprache ist überwiegend kompatibel. Die Kompatiblität von Gnu Octave zu Matlab (ohne Toolboxen) ist ebenfalls überwiegend gegeben. Fast vollständige Kompatibilität lässt sich durch das Zusatzpaket octave-forge und andere freie Ersatzfunktionen des Mathworks FileExchange erreichen. Auch für Matlab geschriebene externe MEX-Funktionen in C oder C++ lassen sich oft ohne Code-Anpassungen verwenden. Gnu Octave ist ein kommandozeilenorientiertes Programm. Inzwischen gibt es eine graphische Benutzeroberfläche, die bei der aktuellen Version automatisch aktiviert ist. Für den universellen Editor Emacs gibt es ebenfalls eine Erweiterung. Benutzt man das Programm TEXmacs, dann steht Octave als Hilfsprogramm direkt zur Verfügung. Man beachte, dass einige Linux Distributionen fertige Pakete für die Installation zur Verfügung stellen. Gnu Octave hat keine Simulationsumgebung ähnlich zu Xcos oder Simulink, es verfügt aber über sehr leistungsfähige Algorithmen für explizite und implizite Systeme gewöhnlicher Differenzialgleichungen. 3 Kapitel 2 Praktikum 1 Das erste Praktikum widmet sich der Modellbildung und Simulation von dynamischen Systemen unter Verwendung der Open-Source Anwendungen Maxima, Scilab/Xcos oder Gnu Octave. 2.1 Beispiel: Pendel mit Feder und Dämpfer Ein mathematisches Pendel (masseloser Stab der Länge l und der Punktmasse m) ist über eine lineare Drehfeder, die bei ϕ = 0 entspannt ist, und einem winkelgeschwindigkeitsproportionalen Drehdämpfer im Drehgelenk mit einem Rahmen verbunden. Der Winkel ϕ des Pendels wird von der Horizontalen durch den Drehpunkt im Uhrzeigersinn gemessen. Auf das System wirkt ein Moment M(t) und die Schwerkraft g (siehe Abbildung 2.1). Mit Hilfe des Drallsatzes um dem Lagerpunkt des Pendels erhält man die Gleichung 2.1 ml2 ϕ̈ = mgl cos(ϕ) − cϕ − dϕ̇ − M(t) . (2.1) Daraus folgt das System nichtlinearer Differenzialgleichungen erster Ordnung ϕ̇ = ω ω̇ = 1 (mgl cos(ϕ) − cϕ − dω − M(t)) . ml2 Abbildung 2.1: Modell Pendel 4 (2.2) Kapitel 2. Praktikum 1 2.2 2.2. Die EL- und die H-Gleichungen Die EL- und die H-Gleichungen Es seien x1 , . . . , xn die Koordinaten für die Konfiguration und ẋ1 , . . . , ẋn die Koordinaten der zugehörigen Geschwindigkeiten eines Systems mit Lagrange’scher Funktion L (t, x, ẋ) = n 1X ẋi Mij (x) ẋj − V (t, x) 2 i,j=1 mit positiv definiter Massenmatrix M (x) und potentieller Energie V (t, x). Dann lauten die EL-Gleichungen d ∂ ∂ ∂ L (t, x, ẋ) − L (t, x, ẋ) = Qi (t, x, ẋ) − R (t, x, ẋ) dt ∂ ẋi ∂xi ∂ ẋi mit der totalen Zeitableitung n n X X ∂ ∂ ∂ d + ẍi , = + ẋi dt ∂t i=1 ∂xi ∂ ẋ i i=1 den verallgemeinerten Kräften Q1 , . . . , Qn und Rayleigh’scher Dissipationsfunktion R (t, x, ẋ). Die Hamilton’schen Gleichungen erhält man von den EL-Gleichungen mit Hilfe der Legendre Transformation pi = ∂ L (t, x, ẋ) = hi (t, x, ẋ) , ∂ ẋi wobei angenommen wird, dass die Umkehrfunktion ẋi = h−1 i (t, x, p) existiert. Mit der Hamilton’schen Funktion H (t, x, p) = n X i=1 pi ẋi − L (t, x, ẋ) ! ẋ=h−1 (t,x,p) folgen die Hamilton’schen Gleichungen in der Form ∂ H (t, x, p) ∂pi ∂ ∂ ṗi = − H (t, x, p) + Qi (t, x, ẋ) − R (t, x, ẋ) . ∂xi ∂ ẋi ẋ=h−1 (t,x,p) ẋi = Eine anschauliche Deutung der Legendre Transformation erhält man, wenn man eine strikt konvexe, stetig differenzierbare Funktion f : R1 → R1 mit y = f (x) und u = ∂ f (x) = h (x) betrachtet. Mit der Umkehrfunktion x = h−1 (u) folgt aus ∂x df (x) d (f (x) − h (x) x) d (h (x) x − f (x)) d (h (x) x − f (x)) ◦ h−1 (u) 5 = = = = h (x) dx −xdh (x) xdh (x) h−1 (u) du Kapitel 2. Praktikum 1 2.2. Die EL- und die H-Gleichungen die Legendre Transformierte g (u) = (ux − f ) ◦ h−1 (u) in der unabhängigen Variablen u. Sie erfüllt noch die Bedingung g (u) = sup (ux − f (x)) x = (ux − f ) ◦ h−1 (u) . Aufgabe 2.1 Lösen Sie die folgenden Aufgaben mit Hilfe des Computer-Algebra Programms Maxima: 1. Implementieren Sie die Modellbildung des mathematischen Pendels mit Feder und Dämpfer aus Abschnitt 2.1. Verwenden Sie nun eine nichtlineare Drehfeder mit der Federkraft FF = −cϕ3 cosh(ϕ2 ). 2. Schreiben Sie eine Maxima-Prozedur Fibonacci zur Berechnung der ersten n Glieder der Fibonacci-Folge. 3. Schreiben Sie eine Maxima-Prozedur Jacobi zur Berechnung der Jacobi-Matrix, Eingangsparameter ist die Liste der abzuleitenden Funktionen v und die Liste mit den Variablen vars, nach denen abgeleitet wird. Die vorgefertigte Prozedur in Maxima darf nicht verwendet werden. 4. Schreiben Sie eine Maxima-Prozedur Lagrange zur Berechnung der Bewegungsgleichungen auf Basis der Lagrange’schen Gleichungen zweiter Art. Eingangsparameter ist die Lagrange’sche Funktion, die Liste der generalisierten Koordinaten und die generalisierten Kräfte. 5. Schreiben Sie eine Maxima-Prozedur Legendre, die mit Hilfe der Legendre Transformierten H von L die EL-Gleichungen auf die Hamilton’sche Form bringt. 6. Betrachten Sie nun die Funktion f (x) = x2 + 1 für x ≥ 1. Berechnen Sie die zugehörige Legendre Transformierte, und interpretieren Sie das Ergebnis graphisch. Aufgabe 2.2 Für das EL-Modell des Pendels sollen folgende Aufgaben mit Scilab/Xcos oder Gnu Octave gelöst werden: 1. Bauen Sie eine Simulation √ für das nichtlineare Modell mit den Parametern g = 10, m = 2π, l = 1, c = 60 3 auf. Verifizieren Sie durch Simulation die Ruhelage(n) des Systems. 2. Berechnen Sie jenes Moment M(t), das notwendig ist, um ϕ(t) = 0, ω(t) = 0 für die Anfangswerte ϕ(0) = ω(0) = 0 zu erzeugen. Verifizieren Sie Ihr Resultat durch Simulation. 3. Simulieren Sie das linearisierte Modell des dynamischen Systems. Vergleichen Sie das Verhalten des nichtlinearen und des linearisierten Systems anhand der Sprungantwort im Arbeitspunkt. 6 Kapitel 2. Praktikum 1 2.3. Ein elektrisches System Aufgabe 2.3 Simulieren Sie in Scilab/Xcos oder Gnu Octave die Antwort des linearen Modells 1 1 −2 −2 u x0 = x+ ẋ = 0 0 1 0 y= 01 x für die Eingangsgröße √ 3t σ (t) . u(t) = sin Verifizieren Sie die Simulation durch Rechnung. 2.3 Ein elektrisches System Gegeben ist ein aktiver Tiefpass zweiter Ordnung nach Bild 2.2. R u (t) C 1 C 2 R R R u U 1 u C 2 C 2 1 I 3 0 1 5 0 1 O P R V I 4 0 2 1 V u O P 1 U 0 2 O P V 2 V y (t) Abbildung 2.2: Ein einfaches elektrisches Netzwerk. Aufgabe 2.4 Für dieses elektrische Netzwerk sollen folgende Punkte untersucht werden: 1. Bestimmen Sie unter der Voraussetzung idealer Operationsverstärker das zugehörige mathematische Modell der Form ẋ = Ax + bu y = cT x + du mit der Eingangsspannung u(t) und der Ausgangsspannung y(t). Wählen Sie dazu geeignete Zustandsgrößen x. 2. Simulieren Sie die Sprungantwort des Systems in Scilab/Xcos oder Gnu Octave unter Berücksichtigung, dass der Kondensator C1 zum Zeitpunkt t = 0 auf 5V geladen ist. Für die Bauteilwerte gelte C1 = 10nF, C2 = 6.8µF , R1 = R5 = 10kΩ, R2 = 20kΩ, R4 = 20kΩ und R3 = 820kΩ. 3. Ist das System vollständig erreichbar bzw. beobachtbar? 7 Kapitel 2. Praktikum 1 2.4 2.4. Wagen & Pendel Wagen & Pendel Auf einer Schiene gleitet ein Wagen, auf welchem ein drehbar gelagertes Pendel montiert ist, siehe Bild 2.3. Der Wagen hat die Masse m1 und es wirkt darauf in horizontaler y m F 1 x l,m 2 j Abbildung 2.3: Wagen mit Pendel. Richtung eine Kraft F (t), welche die Eingangsgröße des Systems ist. Zwischen Wagen und Schiene wirkt eine geschwindigkeitsproportionale Reibung mit der Reibkonstante d1 . Das Pendel ist ein homogener Stab mit der Masse m2 und der Länge l. Im Gelenk wirkt eine Reibung, welche proportional zur Winkelgeschwindigkeit ist (Reibkonstante d2 ). Aufgabe 2.5 Untersuchen Sie die folgenden Punkte zum Wagen-Pendel Modell mit Hilfe von Maxima. 1. Bestimmen Sie ein mathematisches Modell der Form ẋ = f(x, u) y = g(x, u) mit Hilfe der Methode von Lagrange. 2. Bringen Sie mit Hilfe der Legendre Transformation die EL-Gleichungen auf die Hamilton’sche Form. 3. Berechnen Sie alle Ruhelagen des EL-Systems. 4. Linearisieren Sie das EL-Modell um die Ruhelagen. 5. Untersuchen Sie das Modell ebenfalls für den Fall d1 = d2 = 0. 6. Nehmen Sie für diesen Punkt an, dass der Wagen an einer bestimmten Position befestigt ist. Zeigen Sie die Stabilität der unteren Ruhelage, indem Sie eine geeignete Liapunov-Funktion finden. 8 Kapitel 2. Praktikum 1 2.4. Wagen & Pendel Aufgabe 2.6 Für die nachfolgenden Aufgabenstellungen verwenden Sie die Parameter m1 = 0.455kg, m2 = 0.21kg, l = 0.61m, d1 = 0.1kg/s, d2 = 0.01kgm2 /s . Untersuchen Sie die folgenden Punkte in Scilab/Xcos oder Gnu Octave. 1. Implementieren Sie das (nichtlineare) mathematische H-Modell des Systems. Achten Sie auf eine schnelle Änderbarkeit der Parameterwerte bzw. der Anfangswerte. 2. Vergleichen Sie das Verhalten des nichtlinearen und des linearisierten Modells in einer Umgebung um die Ruhelagen. Nehmen Sie z.B. verschiedene Anfangsauslenkungen für das Pendel und lassen es dann frei ausschwingen. 9 Literaturverzeichnis [1] Braun S., Häuser H.: Macsyma Version 2, Addison-Wesley Publishing Company, Bonn, Paris, 1995 [2] Campbell S.L., Chanceller J.-P. und Nikoukhah R.:, Modeling and Simulation in Scilab/Scicos, Springer Verlag, New York 2006 [3] Glasner M.: A Maxima Guide for Calculus Students, Dep. of Mathematics, Pennsylvania State University, 2007 [4] Institut für Regelungstechnik und Prozessautomatisierung: Skriptum zu Automatisierungstechnik Praktikum, Johannes Kepler Universität, Linz, SS 2007 [5] Institut für Regelungstechnik und Prozessautomatisierung: Skriptum zu Prozessautomatisierung II Praktikum, Johannes Kepler Universität, Linz, SS 2008 [6] Kilian J.: Einführung in numerische und symbolische Open Source Mathematiksoftware, Projektseminar, 2009. [7] Nikoukhah R., Steer S.: Scicos - a Dynamic System Builder and Simulator, INRIA, Rocquencourt, 2005 [8] Pincon B.: Eine Einführung in Scilab, Institut Elie Cartan Nancy, Université Henri Poincaré, Nancy/Frankreich, o.J. [9] Schlacher K.: Vorlesungsskriptum Automatisierungstechnik I, Institut für Regelungstechnik und Prozessautomatisierung, Johannes Kepler Universität, Linz, WS 2005 [10] Schlacher K.: Vorlesungsskriptum Prozessautomatisierung II, Institut für Regelungstechnik und Prozessautomatisierung, Johannes Kepler Universität, Linz, SS 2008 [11] Scilab Group: Introduction to Scilab 4.1.2, INRIA, Rocquencourt/Frankreich, 2007 [12] Scilab Group: Signal Processing with Scilab, INRIA, Rocquencourt/Frankreich, 2007 [13] Scilab Group: On Line Help Scilab 4.1.2, INRIA, Rocquencourt/Frankreich, 2008 [14] Souza P. N. d., Fateman R. J., Moses J., Yapp C.: The Maxima Book, 2004 [15] Vodopivec A.: User Manual wxMaxima 0.7.4 with Maxima 5.14.0, 2007 [16] Zogg J.-M.: Arbeiten mit Scilab und Scicos, Hochschule für Technik und Wirtschaft Chur, Chur/Schweiz, 2007 10