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