Meine Diplomarbeit - Institute of Automatic Control and Control

Transcription

Meine Diplomarbeit - Institute of Automatic Control and Control
Technisch-Naturwissenschaftliche
Fakultät
Regelung eines 3-Tank-Labormodells
mit einem Linux-Echtzeitsystem auf einem
PC/104-Modul
Projektseminar
in der Studienrichtung
Mechatronik
Angefertigt am Institut für Regelungstechnik und Prozessautomatisierung
Beurteilung:
o.Univ.–Prof. Dipl.–Ing. Dr.techn. Kurt Schlacher
Mitwirkung:
Univ.–Ass. Dipl.–Ing. Dr.techn. Karl Rieger, MSc.
Eingereicht von:
Leopold Grießler
3233 Kilb, Christenberg 8
16. März 2010
Linz, März 2010.
Johannes Kepler Universität Linz
A-4040 Linz, Altenberger Str. 69, Internet: http://www.jku.at, DVR 0093696
Inhaltsverzeichnis
Einleitung
1
1 Aufbau
1.1 3-Tank-Labormodell . . . . . . . . . . .
1.1.1 Tanks . . . . . . . . . . . . . . .
1.1.2 Pumpen . . . . . . . . . . . . . .
1.1.3 Sensoren . . . . . . . . . . . . . .
1.2 Verbesserungen am 3-Tank-Labormodell
1.2.1 Neue Schlauchanordnung . . . . .
1.2.2 Pumpen- und Abflussschläuche .
1.3 PC/104 System . . . . . . . . . . . . . .
1.4 Elektrische Zusammenschaltung . . . . .
2 Software und Installation
2.1 Betriebssystem Debian GNU/Linux .
2.2 Grafikbibliothek MesaLib . . . . . . .
2.3 Systembibliothek eFLTK . . . . . . .
2.4 Patchen des Linux-Kernels . . . . . .
2.5 Konfiguration des Linux-Kernels . . .
2.6 Konfiguration des Bootloaders Grub
2.7 Bibliothek ComediLib . . . . . . . .
2.8 RTAI (1) . . . . . . . . . . . . . . . .
2.9 Comedi . . . . . . . . . . . . . . . .
2.10 RTAI (2) . . . . . . . . . . . . . . . .
2.11 Testen der Ein-/Ausgabekarte . . . .
2.12 Scilab / Scicos . . . . . . . . . . . . .
2.13 RTAI-Lab Add-on für Scilab . . . . .
2.14 QRtaiLab . . . . . . . . . . . . . . .
2.15 Matlab für RTAI konfigurieren . . . .
I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
5
6
6
7
8
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
14
15
16
17
17
18
18
19
20
21
21
22
22
23
INHALTSVERZEICHNIS
INHALTSVERZEICHNIS
3 Modellbildung
3.1 Modell eines Tanks . . . . . . . . . . . . . . . . . . .
3.2 Modell einer Pumpe . . . . . . . . . . . . . . . . . .
3.2.1 Elektrisches Teilsystem . . . . . . . . . . . . .
3.2.2 Mechanisches Teilsystem . . . . . . . . . . . .
3.2.3 Gesamtsystem der Pumpe . . . . . . . . . . .
3.3 Modell des Gesamtsystems . . . . . . . . . . . . . . .
3.4 Modellreduktion . . . . . . . . . . . . . . . . . . . . .
3.4.1 Vernachlässigung der elektrischen Dynamik . .
3.4.2 Vernachlässigung der mechanischen Dynamik
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Parameterbestimmung
4.1 Parameterbestimmung der Drucksensoren . . . . . . . . .
4.2 Parameterbestimmung der Tanks . . . . . . . . . . . . .
4.2.1 Ausfließverhalten im Hauptbetriebsbereich . . . .
4.2.2 Ausfließverhalten im Bereich Geringer Pegelstand
4.3 Parameterbestimmung der Pumpen . . . . . . . . . . .
4.3.1 Durchfluss aufgrund der Ankerspannung . . . . .
4.3.2 Durchfluss aufgrund der Pegelstände . . . . . . .
4.4 Parameterbestimmtes Gesamtsystem . . . . . . . . . . .
5 Mehrgrößenregelung der Pegelstände
5.1 Strecke . . . . . . . . . . . . . . . . .
5.2 Stellgrößentransformation . . . . . .
5.3 PI-Regler . . . . . . . . . . . . . . .
5.4 Aufbau und Test der Regelung . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
II
.
.
.
.
.
.
.
.
.
25
25
28
28
29
30
30
32
32
33
.
.
.
.
.
.
.
.
34
35
36
38
40
42
42
44
47
.
.
.
.
50
50
51
53
56
6 Softwareseitige Umsetzung
60
6.1 Betriebssysteme und Rechner . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2 Umstellung auf Scilab/Scicos . . . . . . . . . . . . . . . . . . . . . . . . . 60
7 Inbetriebnahme
63
A Anhang
68
A.1 Messungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
A.2 Simulationsmodelle in Scilab/Scicos . . . . . . . . . . . . . . . . . . . . . . 70
Literaturverzeichnis
72
Abbildungsverzeichnis
1
Gesamtsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
3-Tank-Laboraufbau . . . . . . . . . . . . . . . . .
Tank . . . . . . . . . . . . . . . . . . . . . . . . . .
Tauchpumpe . . . . . . . . . . . . . . . . . . . . . .
Drucksensor . . . . . . . . . . . . . . . . . . . . . .
Aufwallen des Wassers bei alter Schlauchanordnung
Neue Schlauchanordnung . . . . . . . . . . . . . . .
Motherboard Wafer-LX 3.5 . . . . . . . . . . . . . .
Ein-/Ausgabekarte von Sensoray . . . . . . . . . .
PC/104 System Innenansicht . . . . . . . . . . . . .
PC/104 System Außenansicht . . . . . . . . . . . .
Blockschaltbild Gesamtsystem . . . . . . . . . . . .
Verbindungsbox . . . . . . . . . . . . . . . . . . . .
Anschlussbox . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
3
4
5
6
7
7
9
9
10
10
11
12
12
2.1 Architektur RTAI [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1
3.2
3.3
3.4
Tank . . . . . . . . . . . . . . . . . . . . . . . . .
Ausfließkennlinie . . . . . . . . . . . . . . . . . .
Elektrisches Schaltbild einer Gleichstrommaschine
Höhendifferenzen . . . . . . . . . . . . . . . . . .
.
.
.
.
25
28
28
31
4.1
4.2
4.3
4.4
4.5
Strecke mit Pumpenansteuerung und Sensorspannungsmessung . . . . . . .
Sensorkennlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ausfließkennlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
in Abhängigkeit der Pegeldifferenz ∆h . . . . .
Ausfließgeschwindigkeit dh
dt
dh
Ausfließgeschwindigkeit dt in Abhängigkeit des darunterliegenden Pegelstandes hu am Bspl. von Tank 2 . . . . . . . . . . . . . . . . . . . . . . . .
Pumpenkennlinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erforderliche Spannungen uA,i zum Halten eines Pegels . . . . . . . . . . .
Füllgeschwindigkeit dh
in Abhängigkeit von uA . . . . . . . . . . . . . . . .
dt
Blockschaltbild der simulierten Strecke . . . . . . . . . . . . . . . . . . . .
34
35
38
40
4.6
4.7
4.8
4.9
III
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
43
45
47
48
ABBILDUNGSVERZEICHNIS
ABBILDUNGSVERZEICHNIS
IV
4.10 Stellgröße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.11 Pegelstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1
5.2
5.3
5.4
5.5
5.6
5.7
Regler und Strecke mit überlagerter Stellgrößentransformation
PI-Regler mit Transformation und Stellgrößenbeschränkung .
PI-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PI-Regelung Simulation . . . . . . . . . . . . . . . . . . . . .
PI-Regelung PC/104-System . . . . . . . . . . . . . . . . . . .
Ergebnis der PI-Regelung . . . . . . . . . . . . . . . . . . . .
Stellgröße der PI-Regelung . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
52
55
56
57
57
58
59
6.1 Scopes Manager von qRtailab . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.1
7.2
7.3
7.4
Oberfläche von qRtailab . . . . . . . . . . . . . . . . .
Sprungvorgabeparameter . . . . . . . . . . . . . . . . .
Führungssprungvorgabeparameter . . . . . . . . . . .
Führungsverlauf-Vorgabe bei der Ablaufregelung . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
65
65
66
A.1
A.2
A.3
A.4
A.5
A.6
A.7
Messungen zur Identifikation von Pumpe 1
Messungen zur Identifikation von Pumpe 2
Messungen zur Identifikation von Pumpe 3
Blockschaltbild der Strecke . . . . . . . . .
Blockschaltbild eines Tanks . . . . . . . .
Blockschaltbild des Sammelbehälters . . .
Blockschaltbild einer Pumpe . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
68
69
70
70
71
71
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Tabellenverzeichnis
1.1 Abmessungen der Tanks . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1 Mit Synaptic einzubindende Pakete . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Benötigte Softwarepakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.1 Gewählte Eigenwerte beim PI-Regler . . . . . . . . . . . . . . . . . . . . . 54
7.1 Dateien-Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Beispiel zur Regelung mit dem Sprungmodus . . . . . . . . . . . . . . . . . 66
V
Einleitung
Im Rahmen dieses Projektseminars wird ein kompaktes Linux basierendes Automatisierungssystem zur Pegelstandsregelung eines bestehenden 3-Tank-Labormodells entwickelt.
Die Simulation und Regelung werden dabei ausschließlich mit Open-Source Paketen durchgeführt. Das gesamte System ist in Abbildung 1 dargestellt. Es handelt sich um übereinanderliegende Tanks, die mit Pumpen aus einem darunterliegenden Sammelbehälter versorgt
werden. Die Tanks sind so miteinander verbunden, dass der Abfluss von Tank 1 in Tank
2, jener von Tank 2 in Tank 3 und jener von Tank 3 in den Sammelbehälter führt. Die
Pegelstände der Tanks werden mit Drucksensoren gemessen. Die Pumpen werden über
ein Automatisierungssystem angesteuert und geregelt. Als Automatisierungssystem wird
ein PC/104 System mit einem durch RTAI (Real T ime Application I nterface) erweiterten Linux -Betriebssystem entwickelt. Durch diese Erweiterung können die für Echtzeitanwendungen strengen Zeitbeschränkungen bezüglich Lese- und Schreibprozesse eingehalten
werden.
Abbildung 1: Gesamtsystem
Zur Übersicht dieser Arbeit werden die Inhalte der einzelnen Kapitel an dieser Stelle erläutert. Der Aufbau des Labormodells, vorgenommene Verbesserungen an diesem und der
Aufbau des PC/104 Systems werden in Kapitel 1 erklärt. In Kapitel 2 wird die vollständige Installation des echtzeitfähigen Betriebssystems, des Open-Source Simulationspaketes
Scilab/Scicos und des Visualisierungspaketes qRtailab am PC/104 System beschrieben.
Mit der mathematischen Modellbildung und der Bestimmung der benötigteParameter befassen sich Kapitel 3 und 4. Die Mehrgrößenregelung der Pegelstände, welche eine Vorgabe
1
TABELLENVERZEICHNIS
TABELLENVERZEICHNIS
2
für alle drei Pegelstände gleichzeitig zulässt, ist in Kapitel 5 erklärt. Dieses Kapitel enthält
ebenso einen Vergleich von der Simulation der Regelung am mathematischen Modell und
der Regelung am realem 3-Tank-Labormodell. In Kapitel 6 wird auf die softwareseitige
Umsetzung des Projektes eingegangen. Weiters wird auf Probleme aufmerksam gemacht,
die bei der Umstellung vom Programm Matlab/Simulink auf das Open-Source Projekt
Scilab/Scicos entstanden sind. Die Inbetriebnahme des 3-Tank-Labormodells sowie die
Durchführung einer Regelung werden in Kapitel 7 erläutert.
1 Aufbau
In diesem Kapitel wird der Aufbau des 3-Tank-Labormodells vorgestellt. Abschnitt 1.1
beschreibt die konstruktiven Elemente des alten Modells [3], welche bis auf die in Abschnitt 1.2 beschriebenen Verbesserungen, übernommen wurden. Unter Abschnitt 1.3 wird
das neue Automatisierungssystem, ein für das 3-Tank-Labormodell entwickelte PC/104
System, erklärt. Dieses wird zur Ansteuerung und Regelung verwendet. Die Zusammenschaltung des PC/104 Systems mit dem 3-Tank-Labormodell sowie die Versorgung der
elektrischen Komponenten wird in Abschnitt 1.4 beschrieben.
1.1
3-Tank-Labormodell
Abbildung 1.1: 3-Tank-Laboraufbau
Das 3-Tank-Labormodell (Abb. 1.1) besteht aus drei übereinander liegenden Tanks, welche mit Ausflussschläuchen verbunden sind. Jeder Tank wird mit einer Pumpe über einen
Pumpenschlauch aus dem Sammelbehälter mit Wasser versorgt. Dazu wird angenommen,
dass sich immer genug Wasser im Sammelbehälter befindet, damit die Pumpen keine Luft
ansaugen können. Ein Überfließen der Tanks verhindern Sicherheitsschläuche. Alle Wasserleitungen sind als Schläuche ausgeführt, wodurch das Modell in Hinsicht auf Umbauten
3
1. Aufbau
1.1.1. Tanks
4
flexibel ist. Um den Pegelstand der Tanks zu messen, sind drei Drucksensoren an der Unterseite der Tanks angebracht. Die Sensoren messen den Differenzdruck zwischen Druck
im Tank und Atmosphäre und geben diesen als Spannung proportional zum Pegelstand
aus. Weiters können die Pegelstände an Skalen an den Tanks und am Sammelbehälter abgelesen werden. Im Folgenden wird auf die Komponenten Tanks, Pumpen und Sensoren
genauer eingegangen.
1.1.1
Tanks
Abbildung 1.2: Tank
Es werden quaderförmige Tanks verwendet, welche aus Plexiglasteilen aufgebaut sind. Die
Abmessungen können Tab. 1.1 entnommen werden. Der oberste Tank, welcher in Abb. 1.1
als Tank 1 bezeichnet ist, hat einen Zuflussschlauch von der Pumpe. Die beiden anderen
Tanks haben zwei, einen von der Pumpe und einen vom darüberliegenden Tank. Alle
drei Tanks haben zwei flüssigkeitsabführende Schläuche, einen Abflussschlauch und einen
Sicherheitsschlauch, welche über eingeklebte Schlauchanschlüsse an den Tanks angebracht
sind. Alle Schläuche haben einen Innendurchmesser von 10 mm.
Tank 1, 2, 3
Sammelbehälter
Höhe H
90 mm
100 mm
Länge a
51 mm
70.5 mm
Breite b
100 mm
501 mm
Tabelle 1.1: Abmessungen der Tanks
1.1.2
Pumpen
Es werden handelsübliche Gartenpumpen verwendet, da diese einen geringen Anschaffungspreis haben. Die Pumpen werden so ausgelegt, dass deren Fördermenge doppelt so
hoch ist, als die durchschnittliche Ausfließgeschwindigkeit von 5 l/min, welche aus Messungen bestimmt wurde. Theoretisch können diese Pumpen damit einen Tank doppelt so
schnell mit Flüssigkeit befüllen, als diese vom Tank ausfließen kann.
1. Aufbau
1.1.3. Sensoren
5
Abbildung 1.3: Tauchpumpe
Die Pumpen sind Niederspannungs-Tauchpumpen und haben eine geringe Betriebsspannung von 12 V DC. Weiters sind sie als Membranpumpen ausgeführt, welche nach folgendem Prinzip funktionieren. Die Membran wird durch einen Stößel auf und ab bewegt,
wodurch das Volumen einer Arbeitskammer ständig vergrößert und verkleinert wird. Diese
Kammer hat ein Saug- und ein Druckventil, welche beide Flüssigkeit nur in eine Richtung
durchlassen. Dadurch sind die Pumpen unabhängig von der Drehrichtung und fördern
immer in die gleiche Richtung.
In folgender Auflistung sind die wichtigsten Daten der Pumpen zusammengefasst:
• Betriebsspannung von 12 V DC (nur für Intervallbetrieb (max. 30 Minuten ein/aus)
zulässig)
• Max. Fördermenge von 10 l/min
• Max. Stromaufnahme 1.7 A
• Max. zulässige Dauerspannung 9 V
1.1.3
Sensoren
Zur Messung der Pegelstände werden Drucksensoren (Honeywell 164PC01D37 ) verwendet (siehe Abb. 1.4). Diese werden unter jedem Tank angebracht und mit einem dünnen
Schlauch mit dem Tankboden verbunden. Somit kann der Druck im Tank gemessen werden. Über den Differenzdruck p = pT − p0 zwischen dem Druck im Tank pT und dem
Umgebungsdruck p0 kann über die Bernouli-Gleichung
p0 + ρgh = pT
(1.1)
die Verbindung zum Pegelstand
h=
p
ρg
1. Aufbau
1.2. Verbesserungen am 3-Tank-Labormodell
6
Abbildung 1.4: Drucksensor
mit ρ der Dichte des Wassers und g der Erdbeschleunigung, hergestellt werden1 . Der
Sensor liefert eine Spannung proportional zum Differenzdruck p. Diese Spannung führt
über die Empfindlichkeit des Sensors auf den Pegelstand.
Die wichtigsten Daten der Sensoren sind hier angeführt:
• Versorgungsspannung von 8 V
• Empfindlichkeit von 19.69 V/m (0.5 V/in, 1 in = 25.4 mm)
1.2
Verbesserungen am 3-Tank-Labormodell
Am alten Labormodell [3] sind einige Probleme aufgetreten. Diese werden durch konstruktive Verbesserungen in diesem Abschnitt gelöst.
1.2.1
Neue Schlauchanordnung
Beim alten Labormodell enden die Zuflussschläuche am rechten Rand der Tanks, wie
Abb. 1.5 entnommen werden kann. Da das Wasser mit einem gewissen Druck in die Tanks
fließt, strömt das Wasser mit diesem Druck an den rechten Rand und wird dort in die Höhe
gewallt (Abb. 1.5), da es sonst keine Ausweichmöglichkeiten gibt. Dieses Aufwallen ist sehr
unregelmäßig und physikalisch nicht zu erfassen. Daher kann es nicht in die Modellbildung
einfließen.
Wenn an die Pumpen die maximale Spannung von 12 V gelegt wird, erhöht sich dadurch
der Druck so hoch, dass das Wasser so stark nach oben wallt, dass es aus den Tanks
spritzt. Daher wurden die Ankerspannungen bei der Regelung des alten Labormodells auf
10 V begrenzt, wodurch das Ausspritzen verhindert wurde, das Aufwallen jedoch nicht.
1
Die Dynamik wird dabei nicht berücksichtigt.
1. Aufbau
1.2.2. Pumpen- und Abflussschläuche
7
Abbildung 1.5: Aufwallen des Wassers bei alter Schlauchanordnung
Aus diesem Grund wird folgende konstruktive Verbesserung durchgeführt: Die Schlauchanordnung der Pumpen- und Abflussschläuche wird verändert. Der wesentliche Unterschied ist, dass in der neuen Anordnung die Enden der Schläuche nach unten zeigen und
nicht mehr an den rechten Rand. Dadurch kann sich das einfließende Wasser nun am
Tankboden gleichmäßig verteilen. Versuche ergaben, dass bei der Platzierung der Pumpenschläuche in Tankmitte (siehe Abb. 1.6), das ruhigste Verhalten entsteht und kein
Aufwallen des Wassers mehr stattfindet. Da das Wasser durch die Abflussschläuche mit
weniger Druck in die Tanks fließt, genügt es, diese nach unten am linken Tankrand senkrecht zu platzieren, wie Abb. 1.6 entnommen werden kann.
Durch die neue Anordnung können die Pumpen mit maximaler Betriebsspannung von 12
V betrieben werden und müssen nicht mit 10 V, wie beim alten Labormodell, begrenzt
werden.
Abbildung 1.6: Neue Schlauchanordnung
1.2.2
Pumpen- und Abflussschläuche
Beim alten Labormodell wurden billige Schläuche verwendet. An manchen Stellen der
Pumpen- und Abflussschläuchen wurden nach einiger Zeit Querschnittsverengungen sichtbar. Messungen ergaben, dass sich dadurch das Durchflussverhalten der Pumpen und das
Ausfließverhalten der Tanks verändert hat. Daher mussten die Durchflussparameter der
1. Aufbau
1.3. PC/104 System
8
Pumpen und die Ausfließparameter neu identifiziert werden. Um eine weitere Identifikation in Zukunft zu vermeiden, wurden die alten Pumpen- und Abflussschläuche mit neuen
hochwertigen PVC-Gewebeschläuchen ersetzt, welche einen dauerhaften Querschnitt und
somit konstante Parameter garantieren sollen.
1.3
PC/104 System
Zur Steuerung und Regelung des 3-Tank-Labormodells wird ein Automatisierungssystem
benötigt. Am alten Labormodell [3] wurde ein kommerzielles System des Herstellers dSpace
verwendet. Ziel dieses Projektseminars ist es, ein gleichwertiges viel kostengünstigeres
System zu entwickeln.
Das Betriebssystem Linux mit der Echtzeiterweiterung RTAI kann die für Echtzeitanwendungen geforderten, strengen Zeitbeschränkungen bezüglich Lese- und Schreibprozesse
einhalten und läuft auf jedem standardmäßigen Rechner. Über eine entsprechende Ein/Ausgangskarte kann vom Rechner mit dem 3-Tank-Labormodell kommuniziert werden.
Für industrielle Anwendungen wird kein herkömmlicher PC verwendet. Es werden Systeme verwendet, welche kompakt sind und an den jeweiligen Fall angepasst werden können.
Darum wird für das 3-Tank-Labormodell ein PC/104 System verwendet. Im Folgenden
wird dieses System näher erläutert. PC/104 ist ein Standard für kompakte eingebettete
Systeme, auf dessen Basis underschiedliche Platinen angeboten werden. Als Beispiele können komplette Einplatinenrechner und Platinen für digitale und analoge Ein-/Ausgänge
genannt werden. Verbunden können diese ein komplexes Rechensystem bilden.
Folgende Ansprüche werden an das hier zu verwendete PC/104 System gestellt:
• Installation eines echtzeitfähigen Betriebssystem.
• Drei analoge Ausgänge zur Ansteuerung der drei Pumpen des 3-Tank-Modells.
• Drei analoge Eingänge zum Einlesen der drei Drucksensoren des 3-Tank-Modells.
• Ausreichend Anschlüsse für Peripheriegeräte.
Folgende Komponenten wurden gewählt, um diesen Ansprüchen gerecht zu werden:
• Motherboard: Wafer-LX 3.5” Low Power AMD Geode-LX 800 Motherboard von IEI
Technology Corp. (Abb. 1.7)
• Ein-/Ausgangskarte: PC/104 Multifunction I/O Board von Sensoray (Abb. 1.8)
• 80 GB Festplatte
Das PC/104 System hat nun folgende Eigenschaften:
• 5V Versorgung
1. Aufbau
1.3. PC/104 System
Abbildung 1.7: Motherboard Wafer-LX 3.5
Abbildung 1.8: Ein-/Ausgabekarte von Sensoray
• AMD LX-800 500MHz Prozessor
• 1 GB SDRAM
• 4 USB-Anschlüsse
• 2 Ethernet-Anschlüsse
• 2 SATA-Kanäle
• 4 Analoge Ausgänge
• 8 Analoge Eingänge
• 8 Digitale Ein-/Ausgänge
• 4 Encoder Eingänge
• 80 GB Festplattenspeicher
9
1. Aufbau
1.3. PC/104 System
10
• Latenzzeit von 61 µs2
Abbildungen 1.9 und 1.10 zeigen die einzelnen Komponenten, deren Verbindung und die
Anschlüsse des gesamten PC/104 Systems.
Abbildung 1.9: PC/104 System Innenansicht
Abbildung 1.10: PC/104 System Außenansicht
2
Die Latenzzeit wird in Abschnitt 2.8 durch Ausführen des Echtzeittests bestimmt.
1. Aufbau
1.4
1.4. Elektrische Zusammenschaltung
11
Elektrische Zusammenschaltung
Abbildung 1.11: Blockschaltbild Gesamtsystem
In diesem Abschnitt wird beschrieben, wie das PC/104 System mit dem 3-Tank-Labormodell verbunden wird und welche Versorgung die Pumpen und Sensoren benötigen. Abb.
1.11 zeigt die Zusammenschaltung aller Komponenten. Über die Ein-/Ausgangskarte (I/OBoard) kann das PC/104 System analoge Signale an die Pumpen senden bzw. analoge
Signale von den Sensoren empfangen. Als Schutz für das PC/104 System, wird dieses von
den Pumpen und Sensoren potentialgetrennt. Dies erfolgt durch Trennverstärkerkarten
(ISO-2/4 Analog vom Hersteller Imtron). Zur Ansteuerung der Pumpen wird Strom benötigt. Diesen liefern Leistungsverstärker (Universal Power Module von Quanser ), welche
als Spannungsfolger mit hohem Innenwiderstand realisiert werden. Die Pumpen können
bis zu einer Betriebsspannung von 12 V betrieben werden, die Ein-/Ausgangskarte des
PC/104 Systems hat jedoch nur einen Spannungsbereich von ±10 V. Um die Pumpen
mit voller Leistung betreiben zu können, werden in diesem Fall Kabel mit 3-facher Verstärkung verwendet, wodurch die 12 V erreicht werden können. Die Sensoren benötigen
eine Versorgungsspannung von 8 V. Diese wird von einem Netzgerät bereitgestellt.Um
das PC/104 System sicher mit den Trennverstärkerkarten verbinden zu können, wurde
die Verbindungsbox (Abb. 1.12) mit den entsprechenden Anschlusssteckern hergestellt.
Ebenso sorgt die Anschlussbox (Abb. 1.13) dafür, dass die Sensoren und Pumpen am
3-Tank-Labormodell einfach und sicher mit Kabel angeschlossen werden können.
1. Aufbau
1.4. Elektrische Zusammenschaltung
Abbildung 1.12: Verbindungsbox
Abbildung 1.13: Anschlussbox
12
2 Software und Installation
Dieses Kapitel beschreibt die Installation eines echtzeitfähigen Betriebssystems mit ausschließlich Open-Source-Software am PC/104 System, welches in Kapitel 1.3 beschrieben
ist (vgl. [1, 2]).
2.1
Betriebssystem Debian GNU/Linux
Aufgrund von Erfahrungen aus anderen Projekten (unter anderem aus [1, 2]) wird als Betriebssystem die stabile Linux -Distribution Debian GNU/Linux 4.0r3 “Etch”) ausgewählt.
Diese steht im Internet unter [4] frei zur Verfügung. Eine genaue Installationsanleitung
und eine umfassende Dokumentation ist ebenfalls unter [4] zu finden. Für dieses System
wird das netinst-Image mit Basispaketen für ein i386-System ausgewählt. Die Installation
erfolgt über ein externes CD-ROM-Laufwerk, welches über den eSata-Anschluss mit dem
PC/104 System verbunden wird. Dazu muss im BIOS-Setup-Menü1 unter Advanced BIOS
Features/First Boot Device : CDROM eingestellt werden. Nach dem Booten der CD sind
folgende Schritte durchzuführen:
• Sprache und Tastaturlayout auswählen: Deutsch, Österreich.
• Netzwerkeinstellungen werden per DHCP automatisch eingerichtet. Wenn sich der
Rechner in keinem Netzwerk befindet, können die Einstellungen auch manuell getätigt werden.
• Partionierung der 80 GB Festplatte: Standardeinstellung primäre Partition von 78,5
GB und swap Speicher von 1,5 GB bestätigen. Der swap Bereich dient als Auslagerungsspeicher, um den Arbeitsspeicher zu erweitern.
• Passwort für den “root”-Administrator eingeben und einen regulären Benutzer anlegen.
• Die Pakete Desktop und Web für die Verwendung des Rechners auswählen.
• Netzwerkspiegel auswählen, von dem die erforderlichen Pakete heruntergeladen werden können.
• Für alle weiteren Eingaben können die Standard-Einstellungen belassen werden.
1
Ins BIOS-Menü gelangt man beim Award BIOS durch Drücken von Strg-Alt-Esc oder Enf während
des POST (Power on S elf T est).
13
2. Software und Installation
2.2. Grafikbibliothek MesaLib
14
• Der Grafikchip ist vom Hersteller AMD. Damit die grafische Oberfläche funktioniert,
muss der AMD Geode Driver installiert werden: Das Paket xf86-video-geode-2.11.3
kann von http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/ heruntergeladen
und mit der Synaptic-Paketverwaltung installiert werden.
Nach der Grundinstallation von Linux werden für die folgenden Schritte, die in Tabelle 2.1
aufgelisteten Pakete benötigt, welche mit der Synaptic-Paketverwaltung installiert werden.
Um alle Rechte zu haben und Probleme auszuschließen, sollen ab jetzt alle Kommandomake
g77
automake
autoconf
pvm-dev
libtool
bison
doxygen
libqt3-mt-dev
libgtk2.0-dev
cvs
gcc-3.4
g++-3.4
gettext
ocaml
initrd-tools
swig
flex
ruby
lshw
ruby1.8-dev python2.4-dev docbook-utils docbook-to-man
patch
sablotron
tcl8.4-dev
tk8.4-dev
xaw3dg-dev
Tabelle 2.1: Mit Synaptic einzubindende Pakete
zeilenoperationen mit Administratorrechten ausgeführt werden. Um das zu ermöglichen,
muss im Startbildschirm unter dem Menü Aktionen die Option Systemadministrator einloggen möglich ausgewählt werden.
Abschließend werden die verwendeten Kompiler im Root-Terminal mit folgenden Operationen eingestellt:
cd /usr/bin
ln -sf gcc-3.4 gcc
ln -sf gccbug-3.4 gccbug
ln -sf g++-3.4 g++
ln -sf cpp-3.4 cpp
Im nächsten Schritt werden die Quellcodes der benötigten Softwarepakete, welche in Tabelle 2.2 aufgelistet sind in ein beliebiges Download-Verzeichnis z.B. root/Desktop/ Download heruntergeladen, woraus diese dann später installiert werden. Die gewählten Versionen sind bewusst nicht die aktuellsten. Diese haben jedoch bereits auf anderen Systemen
erfolgreich und stabil funktioniert. Die Bedeutung und Verwendung der einzelnen Softwarepakete wird später bei der jeweiligen Implementierung erläutert.
2.2
Grafikbibliothek MesaLib
Die 3D-Grafikbibliothek MesaLib wird für die grafische Verarbeitung des Visualisierungspaketes qRtailab benötigt. Sie ist vergleichbar mit DirektX unter Microsoft Windows,
aber plattformunabhängig und ein Open-Source Paket. In den folgenden Schritten wird
die Version MesaLib-6.4.2 installiert und eingerichtet. Als Download-Verzeichnis wird
root/Desktop/Download gewählt.
2. Software und Installation
Softwarepaket
Mesa Bibliothek
EFLTK Bibliothek
Linux Kernel
RTAI
Comedi
Comedi Bibliothek
Scilab
RTAI-Erweiterung für Scilab
2.3. Systembibliothek eFLTK
Quelle
www.mesa3d.org
www.equinox-project.org
www.kernel.org
www.rtai.org
www.comedi.org
www.comedi.org
www.scilab.org
wiki4students
15
Datei
MesaLib-6.4.2.tar.bz2
efltk-2.0.7.tar.gz
linux-2.6.17.14.tar.bz2
rtai-3.5.tar.bz2
comedi-0.7.76.tar.gz
comedilib-0.8.1.tar.gz
scilab-4.1.2-src.tar.gz
scilab-4.1.2-rtailab.tgz
Tabelle 2.2: Benötigte Softwarepakete
cd /usr/local/src
cp /root/Desktop/Download/MesaLib-6.4.2.tar.bz2 .
→Achte auf das Leerzeichen und den Punkt am Ende dieser Anweisung.
tar xjvf MesaLib-6.4.2.tar.bz2
→Hier werden die Dateien in ein Verzeichnis mit dem selben Namen entpackt.
cd Mesa-6.4.2
make realclean
→Dieser Befehl entfernt die nicht mehr benötigten Dateien.
make linux -x86-static
→Damit werden die Dateien für ein x86 System kompiliert.
make install
→Folgende Pfade müssen bei den folgenden Abfragen angegeben werden:
/usr/x11R6/include
/usr/x11R6/lib
2.3
Systembibliothek eFLTK
Efltk (E xtended f ast l ight toolkit) ist die zweite Systembibiliothek, die für die grafische
Verarbeitung von qRtailab notwendig ist. Mit folgenden Anweisungen wird dieses Paket
installiert:
cd /usr/local/src
cp /root/Desktop/Download/efltk-2.0.7.tar.gz .
tar xzf efltk-2.0.7.tar.gz
ln -s efltk-2.0.7 efltk
cd efltk
./efltk-config.in –prefix=/usr/local/ –multithread
./emake
2. Software und Installation
2.4. Patchen des Linux-Kernels
16
./emake install
gedit /etc/ld.so.conf
→Die Anweisung /usr/local/lib wird am Anfang der Datei eingefügt.
→Mit “Speichern” und “Beenden” wird diese Änderung abgeschlossen.
ldconfig
2.4
Patchen des Linux-Kernels
RTAI (Real T ime Application I nterface) ist eine Erweiterung von Linux zu einem Echtzeitsystem. Als Grundlage dient der noch unveränderte Linux-Kernel, welcher mit dem
RTAI-Patch erweitert wird. Wie in Abb. 2.1 zu sehen ist, wird durch diesen Patch ein
Echtzeit-Kernel zwischen Hardware (Prozessor) und Linux-Kernel eingefügt. Danach verwaltet dieser die Interrupts des Prozessors mit folgender Rangordnung: Der ursprüngliche
Linux-Kernel erhält die niedrigste Priorität, wodurch für die Echtzeittasks die höchste
Priorität bleibt und die strikten Zeitbeschränkungen bezüglich Lese- und Schreibprozessen gewährleistet werden können. Der Linux-Kernel wird also immer nur dann ausgeführt,
wenn die Echtzeittasks nichts zu tun haben. Die folgenden Anweisungen führen das Pat-
Abbildung 2.1: Architektur RTAI [6]
chen des Kernels durch.
cd /usr/src
cp /root/Desktop/Download/linux-2.6.17.14.tar.bz2 .
tar xjvf linux-2.6.17.14.tar.bz2
mv linux-2.6.17.14 linux-2.6.17.14-rtai
ln -s /usr/src/linux-2.6.17.14-rtai linux
cp /root/Desktop/Download/rtai-3.5.tar.bz2 .
tar xjvf rtai-3.5.tar.bz2
ln -s /usr/src/rtai-3.5 rtai
2. Software und Installation
2.5. Konfiguration des Linux-Kernels
17
cd linux
patch -p1 < /usr/src/rtai/base/arch/i386/patches/...
...hal-linux-2.6.17-i386-1.5-02.patch
make oldconfig
→Alle Abfragen mit ENTER-Taste bestätigen um den Standard-Wert auszuwählen.
make xconfig
→Siehe Abschnitt 2.5
make
make modules install
make install
mkinitrd -o /boot/initrd.img-2.6.17.14-rtai 2.6.17.14-rtai
gedit /boot/grub/menu.lst
→Siehe Abschnitt 2.6
Die Installation wird in Abschnitt 2.7 fortgesetzt.
2.5
Konfiguration des Linux-Kernels
Die Konfiguration wird vom Linux-Knoppix-Kernel übernommen und ist auf der beigelegten CD angeführt (kernel configuration.rtf).
2.6
Konfiguration des Bootloaders Grub
Als Bootloader dieses Linux Systems wird der Haupt-Bootloader für i386 Grub (Gr and
unified bootloader) verwendet. Durch gedit /boot/grub/menu.lst kann man die Datei menu.lst, welche das Aussehen und die Funktionalität des Bootmenüs festlegt, bearbeiten
und folgende Flags setzen:
default = 0
howmany = all
memtest86 = false
Die Änderungen mit “Speichern” und “Beenden” abschließen und mit
update-grub
aktualisieren. Danach muss das System neu gestartet werden. Bei jedem Start erscheint
nun das Bootmanager-Menü, in dem das gewünschte startfähige Betriebssystem mit dem
richtigen Kernel, ausgewählt werden kann.
2. Software und Installation
2.7
2.7. Bibliothek ComediLib
18
Bibliothek ComediLib
Comedi (Control and measurement d evice i nterface) stellt den Treiber für die Ein-/
Ausgabekarte bereit. Dieses Open-Source Paket steht für viele der gängigsten Messkarten
zur Verfügung. Die folgenden Anweisungen installieren die Bibliothek von Comedi mit der
Version Comedilib-0.8.1.
cd /usr/local/src
cp /root/Desktop/Download/comedilib-0.8.1.tar.gz .
tar xzf comedilib-0.8.1.tar.gz
cd comedilib-0.8.1
sh autogen.sh
./configure -sysconfdir=/etc -localstatedir=/var
make
gedit /usr/local/src/comedilib/doc/Makefile
→Die Einträge install man und uninstall man auskommentieren.
make install
make dev
Nach erfolgreicher Installation sollen im Verzeichnis /dev die Comedi Devices comedi0 comedi9 erstellt worden sein.
2.8
RTAI (1)
Aufgrund der Abhängigkeit von RTAI und Comedi wird im ersten Schritt RTAI ohne
Comedi-Unterstützung installiert.
cd /usr/src/rtai
make xconfig
→Machine(x86): Number of CPUs auf 1 setzen, speichern und beenden.
make
make install
gedit /etc/bash.bashrc
→Anweisung export PATH=/usr/realtime/bin:$PATH am Ende der Datei
einfügen.
→Speichern, beenden und System neu starten.
Um RTAI verwenden zu können, müssen Module geladen werden. Dazu wird dieses Startskript loadrtai geschrieben, welches am Beginn jedes Tasks ausgeführt werden muss.
gedit /usr/realtime/bin/loadrtai
#!/bin/bash
2. Software und Installation
2.9. Comedi
19
mknod -m66/dev/rtai shm c 10 254
for n in ‘seq 0 9‘
do
f=/dev/rtf$n
mknod -m 666 $f c 150 $n
done
MOD DIR=/usr/realtime/modules
insmod $MOD DIR/rtai hal.ko
insmod $MOD DIR/rtai lxrt.ko
insmod $MOD DIR/rtai fifos.ko
insmod $MOD DIR/rtai sem.ko
insmod $MOD DIR/rtai mbx.ko
insmod $MOD DIR/rtai msg.ko
insmod $MOD DIR/rtai netrpc.ko ThisNode=”10.0.0.50”2
insmod $MOD DIR/rtai shm.ko
insmod $MOD DIR/rtai signal.ko
insmod $MOD DIR/rtai tasklets.ko
#!/usr/realtime/bin/urtnet &
→Speichern und beenden
cd /usr/realtime/bin
chmod a+x loadrtai
gedit /etc/profile
→Nach der Zeile export PATH Anweisung export PATH=/usr/realtime/bin:
$PATH einfügen
Mit folgender Anwendung wird ein Echtzeittest des Systems durchgeführt, mit dem eine
erfolgreiche Installation überprüft werden kann.
loadrtai
cd /usr/realtime/testsuite/kern/latency
./run
Hier dürfen bei der Ausgabe keine zeitlichen Überläufe (overruns) vorkommen.
2.9
Comedi
An dieser Stelle wird nun die Schnittstelle zwischen der Sensoray Ein-/Ausgabekarte und
dem Linux-Echtzeitsystem mit der Version Comedi-0.7.76 installiert.
2
10.0.0.50: Hier wird die IP-Adresse des Rechners im verwendeten Netzwerk angegeben.
2. Software und Installation
2.10. RTAI (2)
20
mkdir /usr/local/src/comedis586
cd /usr/local/src/comedis586
cp /root/Desktop/Download/comedi.tar.bz2 .
tar xvf comedi.tar.bz2
gedit /usr/src/linux/.config
→Am Ende folgende Anweisung anfügen: CONFIG RTHAL=y
→Speichern und beenden
make
make install
cp include/linux/comedi.h /usr/include/
cp include/linux/comedilib.h /usr/include/
ln -s /usr/include/comedi.h /usr/include/linux/comedi.h
ln -s /usr/include/comedilib.h /usr/include/linux/comedilib.h
ln -s /usr/include/linux /usr/local/include/linux
Die Treiber der Sensoray-Karte werden mit folgendem Startskript loadcomedi geladen:
gedit /usr/realtime/bin/loadcomedi
#!/bin/bash
insmod /lib/modules/2.6.17.14-rtai/comedi/comedi.ko
insmod /lib/modules/2.6.17.14-rtai/comedi/kcomedilib/kcomedilib.ko
insmod /lib/modules/2.6.17.14-rtai/comedi/drivers/s526.ko
comedi config /dev/comedi0 s526 0x200,0x33
modprobe comedi fc
sync
insmod /usr/realtime/modules/rtai comedi.ko
sync
2.10
RTAI (2)
Mit dem eingebundenen Paket Comedi kann nun im zweiten Schritt RTAI mit Comedi Unterstützung installiert werden.
cd /usr/src/rtai
make xconfig
• Add-ons:
3
0x200 ist die Adresse der Sensoray-Karte. Als Standard ist 0x2c0 eingestellt. Diese kann durch den
Jumper J1 auf der Karte verändert werden. Genauere Informationen können im Handbuch der Karte unter
www.sensoray.com nachgelesen werden. Die eingestellte Adresse muss mit der Adresse, welche im BIOS
unter Integrated Peripherals/IT8888 ISA Decode IO/Decode I/O Addr. eingegebenen ist, übereinstimmen.
0x3 beschreibt die Interrupt-Linie, welche auch durch den Jumper J1 auf der Sensoray-Karte gesetzt
wird.
2. Software und Installation
2.11. Testen der Ein-/Ausgabekarte
21
– Comedi support over LXRT - aktivieren
– COMEDI installation directory: /usr/local eingeben
• RTAI-Lab
– RTAI-Lab - aktivieren
– EFLTK installation directory: /usr/local eingeben
→Speichern und beenden.
make
make install
2.11
Testen der Ein-/Ausgabekarte
Um die Sensoray-Karte zu prüfen, kann das Testprogramm tut2.c von wiki4students 4 im
Verzeichnis
/usr/local/src/comedilib/demo
ausgeführt werden. Dieses Programm liest einen analogen Eingang ein und schreibt einen
Wert auf einen analogen Ausgang. Die Information über die Adressen und Kanäle der
Karte, welche im Programm zugewiesen werden müssen (mit gedit tut2.c), erhält man
über die Anwendung:
./board info
Mit
./tut2.c
kann die Karte nun getestet werden.
2.12
Scilab / Scicos
Das Open-Source Paket Scilab/Scicos wird für die Simulation des mathematischen Modells und der zugehörigen Regler sowie für die automatische Echtzeitcodegenerierung von
RTAI verwendet. In diesem Abschnitt wird das Softwarepaket mit der Version Scilab-4.1.2
installiert.
4
wiki4students ist ein Studentennetzwerk und internes Informationsportal über RTAI des Institut für
Regelungstechnik und Prozessautomatisierung der JKU Linz.
2. Software und Installation
2.13. RTAI-Lab Add-on für Scilab
22
cd /usr/local
cp /scilab-4.1.2.tar.gz .
tar xzvf scilab-4.1.2.tar.gz
cd scilab-4.1.2
./configure –without-java
make all
cd /usr/src/rtai/rtai-lab/scilab/macros
gedit Makefile
→Scilab-Version auf 4.1.2 umstellen
make install
ln -s /usr/local/scilab-4.1.2/bin/scilab /usr/local/bin/scilab5
Mit Eingabe von scilab im root-Terminal kann nun das Programm gestartet werden.
2.13
RTAI-Lab Add-on für Scilab
Um in Scicos einen Echtzeitcode generieren zu können, wird dieses Zusatzpaket installiert.
cd /usr/local
cp /root/Desktop/Download/scilab-4.1.2-rtailab.tgz .
tar zxvf scilab-4.1.2-rtailab.tgz
Nun müssen die Dateien vom Add-on /usr/local/scilab-4.1.2-rtailab im Verzeichnis
/usr/src/rtai-3.5/rtai-lab/scilab/ überschrieben werden.
cd scilab-4.1.2-rtailab/macros
make install
exit
make user
Beim Start von Scilab soll nun die Kommandozeile RTAI ready erscheinen. Weiters stehen
in Scicos die Optionen CodeGen und Set Target und die RTAI-Lib-Palette zur Verfügung.
2.14
QRtaiLab
QRtailab ist ein Visualisierungspaket, mit dem Daten eines laufenden Echtzeitprozesses
angezeigt und verändert werden können. Dieses kann nur auf einem Linux-Betriebs-system
mit RTAI-Erweiterung verwendet werden. Hier folgt der Installationsvorgang für qRtailab.
• qRtailab on etch von wiki4students herunterladen und den Anweisungen in readme.txt folgen:
5
Dieser Link wird gesetzt, damit Scilab in jedem Verzeichnis gestartet werden kann.
2. Software und Installation
2.15. Matlab für RTAI konfigurieren
23
• Zeilen mit “file:/// ” und “etch-backports main” von sources.list am Ende der Systemdatei /etc/apt/sources.list (mit gedit /etc/apt/sources.list) hinzufügen.
• Pakete von rootfs/root/Desktop/Downloads nach /root/Desktop/Downloads am System ablegen.
• Synaptic Paketverwaltung aktualisieren und alle qt4-4 -Pakete und das Paket libqwt5qt4-dev aus den etch backports installieren.
• Die ausführbare Datei qRtailab von /qrtailab on etch/binary etch in den Ordner
/usr/realtime/bin ablegen.
• Mit ./qrtailab starten.
2.15
Matlab für RTAI konfigurieren
In Matlab besteht die Möglichkeit eine automatische Echtzeitcodegenerierung durchzuführen. Im aktuellen Projekt kommt dies zur Anwendung, um die bereits vorhandenen
Reglerentwürfe in Matlab am Windows-dSpace-System mit dem Linux-PC/104-System zu
vergleichen. Im folgenden Abschnitt wird die Einbindung von RTAI in Matlab beschrieben. Dabei muss auf die verwendeten Softwareversionen Rücksicht genommen werden.
Bei diesem Projekt werden RTAI-3.5 und Matlab R14 SP3 verwendet. (Die Kombination
RTAI-3.5 und Matlab R2007b funktioniert zur Zeit noch nicht.)
• Kopiere vom Linux -System den Inhalt des Ordners /usr/src/rtai-3.5/rtai-lab/ matlab in den Ordner C:\Program Files\Matlab\2007a\rtw\c\rtai 6 am Windows- Rechner
• Führe die Datei setup.m vom rtai -Ordner in Matlab aus. Danach sollten in der
Simulink -Bibliothek RTAI-Devices auswählbar sein.
• Verändere die Datei rtai.tmf im rtai -Ordner folgendermaßen:
– MATLAB ROOT=/usr/local/matlab →Es wird das Matlab-Arbeitsverzeichnis
am Linux-System angegeben.
– COMPUTER=GLNX86 →Es wird vorausgesetzt, dass das Linux-System eine
x86-Architektur besitzt.
– LINUX HOME=/usr/src/linux →Installationsverzeichnis von Linux
– RTAIDIR=/usr/realtime →Installationsverzeichnis von rtai
– COMEDI HOME=/usr/src/comedi →Installationsverzeichnis von comedi
6
Dieser Pfad hängt vom Installationsverzeichnis von Matlab ab. Er könnte z.B. auch
C:\Matlab701\rtw\c\rtai sein.
2. Software und Installation
2.15. Matlab für RTAI konfigurieren
24
– Lösche folgende Zeilen im root-Abschnitt:
|>START EXPAND RULES<|%.o : |>EXPAND DIR NAME<| /%.c
gcc -c $(CFLAGS) $<
|>END EXPAND RULES<|
• Kopiere die drei Ordner extern, rtw und simulink vom Verzeichnis C:\Program Files\Matlab\2007a\ im Windows-System in den am Linux -System erstellten Ordner
/usr/local/matlab. Überprüfe, ob alle c Dateien vom \rtw\c\libsrc-Ordner mitkopiert wurden.
• Um die Code-Generierung zu testen, kopiere die Datei
C:\Program Files\Matlab\2007a\rtw\c\rtai\examples\test.mdl in einen anderen
Ordner z.B. C:\Program Files\Matlab\2007a\work. Öffne diese Datei in Simulink
und führe sie aus.
• Überprüfe, ob RTAI-Target unter dem Menüpunkt
Simulation/Configuration Parameters/Real-Time Workshop ausgewählt ist und generiere den Code mit Build.
• Danach kopiere den generierten Ordner test rtai ins Linux-System z.B. nach
/usr/local/src/tests. Folgende Anweisungen kompilieren und führen das Testprogramm 5 sec aus. Die Eingaben müssen als root-Benützer durchgeführt werden.
cd /usr/local/src/tests/test rtai
make -f test.mk
cd /usr/local/src/tests/
./test -v -f 5
• Um das Visualisierungsprogramm zu testen, starte den Prozess test im Warte-Modus
und führe qRtaiLab aus:
./test &
qrtailab &
3 Modellbildung
Die hier angeführte Modellbildung basiert auf der Modellbildung in [3]. Der wesentliche
Unterschied zu [3] ist, dass in dieser Arbeit nur die Untersuchung von dem verwendeten
Modell mit dichtem Abfluss, wie in Abb. 3.1 dargestellt, durchgeführt wird. Jedes Teilsystem (Tank und Pumpe mit Motor) wird im Einzelnen betrachtet und am Ende zu einem
Gesamtsystem zusammengefasst.
3.1
Modell eines Tanks
Abbildung 3.1: Tank
Jeder Tank lässt sich allgemein als dynamisches System
q zu (t)
dh(t)
= −fab (h(t), hu (t)) +
dt
A
qab (t) = fab (h(t), hu (t))A
(3.1)
(3.2)
beschreiben. Der Zustand h stellt den Pegelstand des betrachteten Tanks dar. Der Pegelstand des darunterliegenden Tanks hu und der Zufluss qzu , angegeben als Volumenstrom,
sind die beiden Eingänge des Systems. Der Ausgang des Tankmodells ist der Abfluss
25
3. Modellbildung
3.1. Modell eines Tanks
26
qab , ebenfalls angegeben als Volumenstrom. Aus physikalischer Sicht wird nur der Bereich
h(t) ≥ 0 betrachtet. A ist der Querschnitt des Tanks. Die Funktion fab beschreibt das
Ausfließverhalten. Das Wasser wird durch einen Schlauch in den darunterliegenden Tank
geführt. Das Ende dieses Schlauches liegt am Boden und somit unter dem Wasserpegel
dieses Tanks. Das Wasser wird als inkompressibles Fluid (r =const.) modelliert. Weiters wird der Pegelstand waagrecht und gleich über dem gesamten Tank angenommen.
Oberflächenwellen werden vernachlässigt.
Das hinunterfließende Wasser tritt am Ende des Abflussschlauches aus (siehe Abb. 3.1
Drucklevel 2). Dort herrscht ein höherer Druck als der Atmosphärendruck p0 . Mit dem
erweiterten Satz von Bernoulli (mit Reibung) wird das Ausfließverhalten modelliert. Dieser wird zweimal angesetzt. In Gl. 3.3 wird die Stromröhre zwischen Drucklevel 1 und
Drucklevel 2 (siehe Abb. 3.1) betrachtet und in Gl. 3.4 die Stromröhre zwischen Drucklevel 3 und Drucklevel 2 (siehe Abb. 3.1). Drucklevel 1 variiert mit dem Pegelstand h, sowie
Drucklevel 3 mit dem Pegelstand des darunterliegenden Tanks hu . Drucklevel 2 befindet
sich an der Austrittsstelle des Wassers am Boden des darunterliegenden Tanks und ist
konstant.
p0 + ρg(h + H) = p2 +
ρv 2
(1 + ζ)
2
p0 + ρghu = p2
(3.3)
(3.4)
v ist die Austrittsgeschwindigkeit aus dem Schlauch, p0 der Atmosphärendruck, p2 der
hydrostatischer Druck an der Austrittsstelles des Wassers am Boden des darunterliegenden
Tanks, ζ die Druckverlustzahl des Ausflusses, welche alle Reibungsverluste der Strömung
beschreibt, und H der vertikale Abstand der beiden Tanks.
Aus den beiden Gleichungen 3.3 und 3.4 ergibt sich die Austrittsgeschwindigkeit im
Schlauch
v(h) =
s
2g(h + H − hu )
.
1+ζ
(3.5)
Aus dieser Austrittsgeschwindigkeit v(h) und der Beziehung
ASch
A
wird das Ausfließverhalten
fab (h) = v(h)
mit dem Schlauchquerschnitt ASch
ASch
fab (h) =
A
s
2g(h + H − hu )
1+ζ
hergeleitet. Das nun erhaltene dynamische System
(3.6)
(3.7)
3. Modellbildung
3.1. Modell eines Tanks
ASch
dh(t)
=−
dt
A
s
2g(h(t) + H − hu (t)) qzu (t)
+
1+ζ
A
s
2g(h(t) + H − hu (t))
qab (t) = ASch
1+ζ
27
(3.8)
(3.9)
hat h(t) als Zustand, qzu (t) und hu (t) als Eingänge und qab (t) als Ausgang. Hier lässt
sich die Verkoppelung der Tanks erkennen. Der untere Pegelstand hu (t) beeinflusst das
Ausflussverhalten des Tanks. Totzeiten treten auf Grund der Massenkontinuitätsbeziehung
keine auf, da ein inkompressibles Fluid zu Grunde gelegt wird1 .
Um das Ausfließverhalten des Tanks über die Zeit zu betrachten, wird die Differentialgleichung 3.8 für h(t) gelöst, wobei qzu (t) = 0 angenommen wird, um nur das Ausfließverhalten ohne Zufluss zu erhalten. Der Anfangszustand h(0) wird mit h0 festgelegt. Zuerst
wird allgemein folgende Differentialgleichung mit Anfangsbedingung
betrachtet, welche die Lösung
p
dx(t)
= −a x(t), x(0) = x0
dt
x(t) =
( √
0
x0 −
at 2
2
√
(3.10)
x
für t < 2 a 0
√
x
für t > 2 a 0
(3.11)
besitzt. Mit Hilfe von Gl. 3.10 und Gl. 3.11 kann Gl. 3.8 mit a =
h(t) + H − hu gelöst werden. Die Lösung lautet


 √h + H − h −
0
u
h(t) =


0
ASch
A
q
2
2g
t
1+ζ
2
− H + hu
ASch
A
für t < 2
A
√
für t > 2
A
√
q
2g
1+ζ
und x(t) =
(h0 +H−hu )(1+ζ)
√
ASch 2g
(3.12)
(h0 +H−hu )(1+ζ)
√
ASch 2g
und stellt eine Parabel dar, wie Abb. 3.2 zeigt. Es wird nur der Bereich h(t) ≥ 0 betrachtet.
1
Im kompressiblen Fall ergeben sich vernachlässigbar kleine Totzeiten (Druckwellen mit Schallgeschwindigkeit).
3. Modellbildung
3.2. Modell einer Pumpe
28
80
60
h in mm
40
20
0
−20
−40
−60
−80
−100
−120
0
5
t in s
10
15
Abbildung 3.2: Ausfließkennlinie
3.2
Modell einer Pumpe
Der Antrieb der Pumpe wird als Gleichstrommotor modelliert, welcher die Ankerspannung
uA (t) als Eingangsgröße besitzt. Das System wird in zwei Teilsysteme unterteilt:
• Elektrisches Teilsystem: Gleichstrommotor ohne Massenträgheit
• Mechanisches Teilsystem: Pumpe mit zusätzlicher Massenträgheit des Motors
3.2.1
Elektrisches Teilsystem
Abbildung 3.3: Elektrisches Schaltbild einer Gleichstrommaschine
In Abbildung 3.3 ist das elektrische Schaltbild der Pumpe dargestellt. Daraus lässt sich
die Maschengleichung 3.13, mit dem Ankerwiderstand RA , der Ankerinduktivität LA und
der induzierten Spannung ui (t), aufstellen
uA (t) = RA iA (t) + LA
diA (t)
+ ui (t).
dt
(3.13)
3. Modellbildung
3.2.2. Mechanisches Teilsystem
29
Mit dieser und den Motorgleichungen für die induzierte Spannung (Gl. 3.14) und das
elektrische Drehmoment (Gl. 3.15), mit der Motorkonstante kM und der Winkelgeschwindigkeit ω(t),
ui (t) = kM ω(t)
(3.14)
Mel (t) = kM iA
(3.15)
lässt sich das elektrische Teilsystem (Gl. 3.16 und 3.17) herleiten. Der Ankerstrom iA (t)
stellt den Zustand dieses dynamischen Systems dar, uA (t) und ω(t) die Eingänge und das
elektrische Drehmoment Mel (t) den Ausgang dieses Systems.
3.2.2
1
diA
=
(uA (t) − RA iA (t) − kM ω(t))
dt
LA
(3.16)
Mel (t) = kM iA (t)
(3.17)
Mechanisches Teilsystem
Das mechanische Teilsystem besteht aus den rotierenden Massen des Gleichstrommotors
und der Pumpe. Für die Motorwelle gilt der Drallsatz (Gl. 3.18), mit dem Moment der
Pumpe MP (t) und den Massenträgheitsmomenten JM des Motors und JP der Pumpe.
dω(t)
(3.18)
dt
In den folgenden Gleichungen 3.19 - 3.23 wird das noch unbekannte Moment der Pumpe
hergeleitet. Dazu wird die Fördermenge der Pumpe qP (t) als Volumenstrom proportional
mit der Pumpenkonstante kP zur Winkelgeschwindigkeit ω(t) angenommen (Gl. 3.19).
Mel (t) − MP (t) = (JM + JP )
qP (t) = kP ω(t)
(3.19)
Weiters wird die Leistungsbilanz (Gl. 3.20) mit konstantem Wirkungsgrad ηP angesetzt.
MP (t)ω(t)ηP = 4p(t)qP (t)
(3.20)
Der Druckanstieg der Pumpe ∆p(t) ist dem hydrostatischen Druck der zu überwindenden
Förderhöhe hP (t) gleichzusetzen (Gl. 3.21)
4p(t) = ρghP (t),
(3.21)
wobei hP (t) unter Gl. 3.27 definiert ist. Durch Zusammenführen der Gleichungen 3.19
- 3.21 erhält man folgende Beziehung (Gl. 3.22), aus welcher die Unabhängigkeit des
Moments der Pumpe von der Winkelgeschwindigkeit ersichtlich wird.
3. Modellbildung
3.2.3. Gesamtsystem der Pumpe
MP (t)ω(t)ηP = ρghP (t)kP ω(t)
30
(3.22)
Durch Umformen der Gl. 3.22 ergibt sich folgendes Moment der Pumpe.
MP (t) =
1
ρghP (t)kP
ηP
(3.23)
Die zeitliche Änderung von hP (t) ergibt sich durch die Pegeländerung des Tanks, in den
gepumpt wird, und von der Pegeländerung des Sammelbehälters. Die
3.2.3
Gesamtsystem der Pumpe
Das dynamische Gesamtsystem der Pumpe ergibt sich durch Zusammenführen der Gl. 3.16
und 3.17 aus dem elektrischen Teilsystem (Abschnitt 3.2.1) und den Gl. 3.18 und 3.22 aus
dem mechanischen Teilsystem (Abschnitt 3.2.2), mit iA (t) und ω(t) als Zustände, uA (t)
und hP (t) als Eingänge und qP (t) als Ausgang.
diA
dt
dω(t)
dt
=
1
(uA (t) − RA iA (t) − kM ω(t))
LA
1
(kM iA (t) − η1P ρgkP hP (t))
JM +JP
qP (t) = kP ω(t)
(3.24)
(3.25)
Das Wasser wird als inkompressibles Fluid vorausgesetzt. Daher treten keine Totzeiten
auf.
3.3
Modell des Gesamtsystems
Die in den vorherigen Abschnitten hergeleiteten Teilsysteme für einen Tank (Gl. 3.8 und
3.9) und eine Pumpe (Gl. 3.24 und 3.25) werden zu dem Gesamtsystem mit 3 Tanks
und 3 Pumpen zusammengesetzt. Der Eingang qzu (t) setzt sich aus dem Ausgang qP des
Pumpenteilsytems bzw. dem Ausgang qab des darüberliegenden Tanks zusammen. Daraus
ergibt sich ein System mit neun Zuständen, drei Eingängen und 3 Ausgängen.
• Zustände: h1 (t), h2 (t), h3 (t), ω1 (t), ω2 (t), ω3 (t), iA,1 (t), iA,2 (t), iA,3 (t)
• Eingänge: uA,1(t), uA,2(t), uA,3(t)
• Ausgänge: h1 (t), h2 (t), h3 (t)
Weiters wird das Verhalten des Sammeltanks benötigt. Dessen Pegel hS (t) lässt sich direkt
aus den Pegelständen h1 (t), h2 (t), h3 (t) der Tanks und den Anfangsfüllständen h1,0 =
h1 (0), h2,0 = h2 (0), h3,0 = h3 (0), hS,0 = hS (0) berechnen, wobei AS der Querschnitt des
Sammeltanks und A1 , A2 , A3 die Querschnitte der jeweiligen Tanks sind.
3. Modellbildung
3.3. Modell des Gesamtsystems
31
(h1,0 − h1 (t))A1 + (h2,0 − h2 (t))A2 + (h3,0 − h3 (t))A3
+ hS,0
(3.26)
AS
Die wirksamen Förderhöhen der Pumpen sind abhängig von den Pegelständen der Tanks
und setzen sich wie folgt zusammen.
hS (t) =
hP,i (t) = Hi + hi (t) − hS (t) mit i = 1, 2, 3
(3.27)
Abbildung 3.4: Höhendifferenzen
Es ergibt sich folgendes dynamisches System, welches in die Simulation eingebunden wird
3. Modellbildung
















dh1 (t)
dt
dh2 (t)
dt
dh3 (t)
dt
dω1 (t)
dt
dω2 (t)
dt
dω3 (t)
dt
diA,1 (t)
dt
diA,2 (t)
dt
diA,3 (t)
dt



 
 
 
 
 
 
 
=
 
 
 
 
 
 
 


3.4. Modellreduktion
q
ASch,1
k ω (t)
2g(h1 (t)+H1,2 −h2 (t))
+ P,1A11
A1
1+ζ1 q
q
ASch,1
A
k ω (t)
2g(h1 (t)+H1,2 −h2 (t))
2g(h2 (t)+H2,3 −h3 (t))
− Sch,2
+ P,2A22
A1
1+ζ1
A2 q
1+ζ2
q
2g(h3 (t)+H3,S −hS (t))
A
k ω (t)
ASch,2
2g(h2 (t)+H2,3 −h3 (t))
− Sch,3
+ P,3A33
A2
1+ζ2
A3
1+ζ3
1
1
(kM,1 iA,1 (t) − ηP,1
ρgkP,1(H1 + h1 (t) − hS (t))
JM,1 +JP,1
1
1
(kM,2 iA,2 (t) − ηP,2
ρgkP,2(H2 + h2 (t) − hS (t))
JM,2 +JP,2
1
1
(kM,3 iA,3 (t) − ηP,3 ρgkP,3(H3 + h3 (t) − hS (t))
JM,3 +JP,3
1
(uA,1(t) − RA,1 iA,1 (t) − kM,1 ω1 (t))
LA,1
1
(uA,2(t) − RA,2 iA,2 (t) − kM,2 ω2 (t))
LA,2
1
(uA,3(t) − RA,3 iA,3 (t) − kM,3 ω3 (t))
LA,3
−
32










.








(3.28)
Die verwendeten Höhenangaben können Abb. 3.4 entnommen werden. Hi ist die Höhendifferenz zwischen dem Tank i und dem Sammeltank und Hi,j ist die Höhendifferenz
zwischen Tank i und Tank j. Dabei werden die Angaben auf die Böden der jeweiligen
Tanks bezogen.
3.4
Modellreduktion
Um den Reglerentwurf zu vereinfachen, wird die Dynamik der Teilsysteme genauer untersucht und schnelle Systeme als statisch angesehen. Daraus ergeben sich folgende Reduktionen:
3.4.1
Vernachlässigung der elektrischen Dynamik
Das dynamische System lässt sich durch Vernachlässigung der elektrischen Dynamik auf
sechs Zustände reduzieren, indem die Ankerinduktivität LA = 0 gesetzt wird. Durch diese
Vernachlässigung entsteht aus den Gleichungen 3.13 und 3.14 eine statische Beziehung
zwischen Ankerstrom iA,i (t), Ankerspannung uA,i (t) und der Winkelgeschwindigkeit ωi (t)
für die Pumpe i (Gl. 3.29)
iA,i (t) =
1
(uA,i (t) − kM,i ωi (t)).
RA,i
Dadurch entsteht folgendes reduzierte dynamische System
(3.29)
3. Modellbildung









dh1 (t)
dt
dh2 (t)
dt
dh3 (t)
dt
dω1 (t)
dt
dω2 (t)
dt
dω3 (t)
dt
3.4.2



 
 
 
 
=
 
 
 


3.4.2. Vernachlässigung der mechanischen Dynamik
q
33
ASch,1
k ω (t)
2g(h1 (t)+H1,2 −h2 (t))
+ P,1A11
A1
1+ζ1 q
q
ASch,1
A
k ω (t)
2g(h1 (t)+H1,2 −h2 (t))
2g(h2 (t)+H2,3 −h3 (t))
− Sch,2
+ P,2A22
A1
1+ζ1
A2 q
1+ζ2
q
2g(h3 (t)+H3,S −hS (t))
A
k ω (t)
ASch,2
2g(h2 (t)+H2,3 −h3 (t))
− Sch,3
+ P,3A33
A2
1+ζ2
A3
1+ζ3
1
1
1
(kM,1 RA,1
(uA,1(t) − kM,1 ω1 (t))) − ηP,1
ρgkP,1(H1 + h1 (t) − hS (t))
JM,1 +JP,1
1
1
1
(kM,2 RA,2
(uA,2(t) − kM,2 ω2 (t))) − ηP,2
ρgkP,2(H2 + h2 (t) − hS (t))
JM,2 +JP,2
1
1
1
(kM,3 RA,3 (uA,3(t) − kM,3 ω3 (t))) − ηP,3 ρgkP,3(H3 + h3 (t) − hS (t))
JM,3 +JP,3
−






.





(3.30)
Vernachlässigung der mechanischen Dynamik
Eine weitere Reduzierung des dynamischen Systems kann erfolgen, wenn angenommen
wird, dass das hydraulische Teilsystem, das Modell der Tanks, langsamer als das mechanische Teilsystem der Pumpen ist. Hiermit verhalten sich die Pumpen rein statisch. Die
Trägheiten von Pumpen und Motoren werden als vernachlässigbar klein angenommen und
zu Null gesetzt. Folglich ergibt sich aus dem Gesamtsystem der Pumpe Gl. 3.24 und 3.25
folgendes statische Beziehung
1
kp
uA (t) − RA ρg
qP (t) =
kM
ηP
kP
kM
2
hP (t),
(3.31)
welche zu einem dynamischen System dritter Ordnung führt



dh1 (t)
dt
dh2 (t)
dt
dh3 (t)
dt



 
=

+
+
+
q
ASch,1
2g(h1 (t)+H1,2 −h2 (t))
A1
1+ζ1 q
q
ASch,2
ASch,1
2g(h1 (t)+H1,2 −h2 (t))
2g(h2 (t)+H2,3 −h3 (t))
− A2
A1
1+ζ1
1+ζ2
q
q
2g(h3 (t)+H3,S −hS (t))
ASch,3
ASch,2
2g(h2 (t)+H2,3 −h3 (t))
− A3
A2
1+ζ2
1+ζ3
−
kp,1
u (t)− η 1 RA,1 ρg
kM,1 A,1
P,1
kP,1
kM,1
A
1
kp,2
u (t)− η 1 RA,2 ρg
kM,2 A,2
P,2
kp,3
u (t)− η 1
kM,3 A,3
P,3
kP,2
kM,2
2
2
(H1 +h1 (t)−hS (t))
(H2 +h2 (t)−hS (t))
A
2
2
k
RA,3 ρg k P,3
(H3 +h3 (t)−hS (t))
M,3
A3




.



(3.32)
Dieses vollständig reduzierte dynamische System (3.32) dient als Grundlage für den Reglerentwurf unter Kap. 5.
4 Parameterbestimmung
Dieses Kapitel beschreibt die Parameterbestimmung des Labormodells. Die grundsätzliche
Vorgangsweise wurde [3] entnommen und an dieses Projekt angepasst. Zur sinnvollen
mathematischen Beschreibung wird das Gesamtsystem in folgende Teilsysteme zerlegt
und die Parameter getrennt voneinander bestimmt:
• Drucksensoren
• Tanks
• Pumpen
Insbesondere werden die Sensorkennlinien, die Ausfließkennlinien der Tanks und die Pumpenkennlinien aufgenommen und anschließend die Kennlinien parametriesiert.
1
Scope
Ankerspannungen
Demux
Scope
Sensor
COMEDI D/A
comedi0 CH−0
Demux
Stellgroesse
COMEDI A/D
comedi0 CH−1
Sensor 2
Pumpe 2
COMEDI D/A
comedi0 CH−2
Pumpe 3
Demux
Sensor 1
Pumpe 1
COMEDI D/A
comedi0 CH−1
1/3
COMEDI A/D
comedi0 CH−0
u_S
Mux
COMEDI A/D
comedi0 CH−2
offset
h
Scope
Pegelstaende
−K−
Demux
Pegelstaende
Sensor 3
Step
Offset−Abgleich 1
Step
Offset−Abgleich 2
Mux
Step
Offset−Abgleich 3
Abbildung 4.1: Strecke mit Pumpenansteuerung und Sensorspannungsmessung
Die dazu nötige Ansteuerung der Pumpen und Messung der Sensorspannungen werden
ausschließlich mit dem PC/104 System durchgeführt. Abb. 4.1 zeigt die Implementierung
der Strecke mit Pumpenansteuerung und Sensorspannungsmessung in Scilab/Scicos. Der
Subblock Stellgroesse dient der Aufschaltung der Ankerspannungen. Der Dämpfungsfaktor
1/3 drittelt die Ankerspannungen damit sie im ±10 V Ein-/Ausgangsbereich des PC/104
Systems sind. Die Signale werden durch die 3-fache Kabelverstärkung, wie unter Abschnitt
1.4 beschrieben, wieder auf Originalgröße skaliert. Die COMEDI -Blöcke sind Hardwaretreiber, welche die Verbindung mit der Ein-/Ausgabekarte von Comedi darstellen. Diese
34
4. Parameterbestimmung
4.1. Parameterbestimmung der Drucksensoren
35
Blöcke dienen zur Ansteuerung der Pumpen und zur Messung der Sensorspannungen. Signale, welche zu den Scope-Blöcken führen, können über das Visualisierungspaket qRtailab
angezeigt und gemessen werden. Der Subblock Pegelstaende und die Blöcke Offset-Abgleich
dienen der Umrechnung der Sensorspannungen auf die Pegelstände, welche im Abschnitt
4.1 näher erläutert wird.
4.1
Parameterbestimmung der Drucksensoren
Die Parameter der Sensoren werden einzeln bestimmt. Dazu werden die Abflüsse der Tanks
abgeschlossen und manuell mit Wasser gefüllt1 . Dies kann in 10 mm Schritten erfolgen
um genügend Messpunkte über den ganzen Pegelbereich zu erhalten. Als Vergleichsmaß
dient die Skala an den Tanks. Die Sensorspannungen zu den vorgegebenen Pegelständen
werden mit dem PC/104 System (Abb. 4.1) gemessen und in Kennlinien aufgenommen.
Abb. 4.2 zeigt die Messpunkte, sowie die angenäherten Kennlinien.
3.5
3.0
uS in V
2.5
2.0
Sensor 1 Näherung
Sensor 1 Messpunkte
Sensor 2 Näherung
1.5
Sensor 2 Messpunkte
Sensor 3 Näherung
Sensor 3 Messpunkte
1.0
0
10
20
30
40
50
60
70
80
90
100
hi in mm
Abbildung 4.2: Sensorkennlinien
Diese werden durch Regressionsgeraden durch Minimieren der Fehlerquadrate erhalten.
uS,i (hi ) = uS0,i + kS,i hi
hi (uS,i ) =
1
uS,i − uS0,i
kS,i
Das Abschließen der Tanks kann durch Ersetzen der Abflussschläuche mit Stöpsel erfolgen.
(4.1)
(4.2)
4. Parameterbestimmung
4.2. Parameterbestimmung der Tanks
36
Daraus werden die Sensorparameter uS0,i und kS,i berechnet, wobei uS0,i die Sensorspannung bei leerem Tank darstellt. Folgende Parameter werden bestimmt:
• uS0,1 = 1.580 V
• uS0,2 = 1.503 V
• uS0,3 = 1.521 V
• kS,1 = 19.178
V
m
• kS,2 = 18.371
V
m
• kS,3 = 19.266
V
m
Jede durch die Sensoren gemessene Sensorspannung wird mit Gl. 4.2 auf den dazugehörigen Pegelstand umgerechnet.
Aus mehreren Messungen wird festgestellt, dass sich die Offsetspannung verschieden einstellt. Ein Grund könnte die unterschiedliche Wasser-Luft-Zusammensetzung im dünnen
Verbindungsschlauch von Sensor und Tankboden (siehe Abb. 1.4) sein. Dieser Verbindungsschlauch hat ein kleines Volumen. Wenn dieses Volumen voll mit Wasser ist, ergibt
das eine höhere Sensorspannung, als würde es voll mit Luft gefüllt sein. Da es schwierig ist,
in diesem Verbindungsschlauch immer die gleiche Zusammensetzung von Wasser und Luft
zu erhalten, kann eine Änderung der Offsetspannung dadurch nicht verhindert werden. Ein
weiterer Grund könnten Ungenauigkeiten der Sensoren sein. Die Sensoren sind schon alt
und verlieren mit der Zeit an Genauigkeit. Dagegen würde jedoch nur ein Austauschen
der Sensoren Abhilfe schaffen. Da weiterhin die alten Sensoren verwendet werden, ist bei
jeder Inbetriebnahme ein Offsetabgleich durchzuführen. Der Offsetabgleich und die Umrechnung von Sensorspannung auf Pegelstand, welche im Subblock Pegelstaende integriert
ist, sind in jeder verwendeten Scicos-Schaltung (siehe u. a. Abb. 4.1) implementiert.
Die Sensorspannungsmessung ist rein statisch, da der eingeschwungene Zustand gemessen
wird. Die Dynamik des Sensors ist schwierig zu messen, da kein geeignetes Referenzmaß vorhanden ist. Jedoch kann verfolgt werden, dass bei angeregter Wasseroberfläche,
die Sensorspannungen den Pegelschwingungen folgen. Somit wird von einer ausreichend
schnellen Sensordynamik ausgegangen. Die gemessenen Schwingungen bewegen sich um
10 Hz.
4.2
Parameterbestimmung der Tanks
Beim Tankmodell, wie in Abschnitt 3.1 hergeleitet, wird ein konstanter Wasserstand
über die gesamte Wasseroberfläche angenommen. Somit hat das dynamische System eines Tanks, welches bei der Parameterbestimmung verwendet wird, einen Zustand, den
4. Parameterbestimmung
4.2. Parameterbestimmung der Tanks
37
Pegelstand hi . Durch die Annahme, dass überlagerte Pegelschwingungen einen geringen
Einfluss haben, können diese vernachlässigt werden.
Eine wesentliche Rolle bei der Parameterbestimmung der Tanks und Pumpen spielen die
verwendeten Zu- und Abflussschläuche. Außerhalb des Betriebs ist in den Schläuchen
Luft. Werden die Tanks mit Wasser befüllt, fließt dieses durch die Schläuche und verdrängt, durch die höhere Dichte die Luft. Damit nirgendwo Luft in die Schläuche dringen
kann, müssen die Schläuche entsprechend abgedichtet sein und an den Enden in Wasser
führen. Luftblasen in den Schläuchen würden den Durchflusswiderstand vergrößern. Diese
veränderlichen Luftblasen bzw. der daraus entstehende Widerstand können nicht gemessen und daher nicht identifiziert werden. Dieser Umstand macht folgende Maßnahmen
notwendig, um ein nachvollziehbares Ausfließverhalten des Wassers zu garantieren:
• Nach jedem Einschaltvorgang muss solange Wasser durch die Schläuche fließen, bis
die gesamte Luft aus den Schläuchen verdrängt wurde. Dadurch erhält man ein
eindeutiges, sich nicht veränderntes Ausfließverhalten2 .
• Das Labormodell kann erst ab einem gewissen Pegelstand identifiziert und geregelt
werden, da ab einer geringen Wasserhöhe auf Grund der Saugwirkung Luft in die
Schläuche dringt, wodurch das Ausfließverhalten nicht mehr nachvollziehbar ist.
Dieser kritische Pegelstand kann am Labormodell beobachtet werden.
Um das Ausfließverhalten zu messen, müssen die Pumpen weggeschalten werden, damit
kein Wasser durch die Pumpen abfließen kann3 . Danach werden alle drei Tanks über das
PC/104 System mit der Pumpensteuerung (Abb. 4.1) oder manuell voll befüllt, damit
das Ausfließverhalten über den ganzen Bereich gemessen werden kann. Sobald lange genug Wasser durch die Schläuche geflossen ist, sodass sich keine Luftblasen mehr darin
befinden, kann der Ausfließvorgang und somit die Messung beginnen. Dabei werden die
Pegelstände hi aller drei Tanks über die mit dem PC/104 System gemessenen Sensorspannungen uS,i und der integrierten Umrechnung laut Gl. 4.2 berechnet und in einer Kennlinie
über die Zeit aufgenommen. Abb. 3.2 zeigt dieses Ausfließverhalten der drei Tanks. Die
Ausfließkennlinien werden in zwei Bereiche unterteilt. Der hinterlegte Bereich ist jener, in
dem ein nachvollziehbares Ausfließen stattfindet, und das 3-Tank-Labormodell normalerweise betrieben wird. Dieser Bereich wird im Folgenden Hauptbetriebsbereich genannt.
Beim nicht hinterlegten Bereich haben die Tanks nur noch einen geringen Pegelstand.
Ab diesem Grenzpegelstand tritt auf Grund der Saugwirkung bereits Luft in die Abflussschläuche. Dieser Effekt zeigt sich unterschiedlich und ist nicht nachvollziehbar. Daher
können die Parameter in diesem Bereich nicht eindeutig bestimmt werden. Er wird im
Folgendem Bereich bei geringem Pegelstand bezeichnet.
2
Dieser Vorgang kann durch gezieltes Zusammendrücken der Schläuche an entsprechenden Stellen
beschleunigt werden.
3
Die einfachste Methode um die Pumpen “wegzuschalten” ist die Pumpenschläuche aus den Tanks zu
ziehen. Die Schlauchenden sollen sich über den Tanks befinden, damit die Tanks weiterhin befüllt werden
können.
4. Parameterbestimmung
4.2.1. Ausfließverhalten im Hauptbetriebsbereich
38
Abbildung 4.3: Ausfließkennlinien
4.2.1
Ausfließverhalten im Hauptbetriebsbereich
Der Hauptbetriebsbereich ist jener Bereich, in dem der Tank noch voll genug ist und keine
Luft in den Abflussschlauch dringt. Zur Parameterbestimmung darf aus der Messung in
Abb. 4.3 nur jener Bereich ausgewählt werden, in dem der darüberliegende Tank schon
leer ist und beim aktuellen Tank noch keine Luft in den Abflussschlauch gesaugt wird4 .
Die Differentialgleichung
dhi (t)
ASch,i
=−
dt
Ai
s
2g∆hi (t)
1 + ζi
(4.3)
beschreibt das Ausfließverhalten eines Tanks, welches in Abschnitt 3.1 hergeleitet wurde.
∆hi (t) = hi (t)+Hi,i+1 −hi+1 (t) ist die Pegeldifferenz zum darunter liegenden Wasserspiegel
mit hi (t) als Pegel des betrachteten Tanks, hi+1 (t) als Pegel des darunterliegenden Tanks
und Hi,i+1 als vertikaler Abstand der beiden Tankböden. ζi beschreibt die Druckverlustzahl
im Abflussschlauch, ASch,i den Schlauchquerschnitt und Ai den Tankquerschnitt. Durch
die Definition von
4
Der darüberliegende Tank muss leer sein, damit die Bedingung, dass nichts zufließt, erfüllt ist.
4. Parameterbestimmung
4.2.1. Ausfließverhalten im Hauptbetriebsbereich
ASch,i
αi =
Ai
r
2g
1 + ζi
39
(4.4)
lässt sich die Differentialgleichung 4.3 kompakt darstellen:
q
dhi (t)
= −αi hi (t) + Hi,i+1 − hi+1 (t)
(4.5)
dt
Die einzigen unbekannten Parameter sind αi . Diese müssen identifiziert werden. Gl. 4.5
lässt sich für hi nicht lösen, da hi+1 unbekannt ist. Wenn in Gl. 4.5 dhidt(t1 ) und
p
hi (t1 ) + Hi,i+1 − hi+1 (t1 ) für einen Zeitpunkt t1 bekannt sind, lässt sich αi (t1 ) mit der
Beziehung
αi (t1 ) = − p
dhi (t1 )
dt
hi (t1 ) + Hi,i+1 − hi+1 (t1 )
(4.6)
berechnen. Die Bestimmung von dhdti (t) erfolgt mit nummerischer Differenzierung, da die
Messungen von hi (t) und hi+1 (t) Abtastungen mit der Abtastzeit TA = 10 ms sind und
in Form der Folgen (hi,k ) und (hi+1,k ) mit dem Abtastindex k vorliegen.
hi,k+1 − hi,k
∆hi,k
=
∆tk
tk+1 − tk
(4.7)
Für jeden Abtastpunkt k ergibt sich durch Verknüpfen der Gleichungen 4.6 und 4.7 ein
αi,k :
αi,k = − p
∆hi,k
∆tk
(4.8)
hi,k + Hi,i+1 − hi+1,k
Der Mittelwert aller αi,k führt zum identifizierten Wert αi :
√
m
s
√
0.0322 sm
√
0.0286 sm
• α1 = 0.0333
• α2 =
• α3 =
Mit diesen Parametern lässt sich die Ausfließgeschwindigkeit
Pegeldifferenz ∆hi (t) = hi (t) + Hi,i+1 − hi+1 (t) ermitteln.
dhi (t)
dt
in Abhängigkeit der
4. Parameterbestimmung 4.2.2. Ausfließverhalten im Bereich Geringer Pegelstand
40
−9
Tank 1
Tank 2
−10
Tank 3
dh/dt in mm/s
−11
−12
−13
−14
−15
−16
100
120
140
160
180
200
220
240
260
280
∆h in mm
Abbildung 4.4: Ausfließgeschwindigkeit
dh
dt
in Abhängigkeit der Pegeldifferenz ∆h
Aus Abb. 4.4 lässt sich ablesen, dass bei vollem und leerem darunterliegenden Tank (größtes ∆h) eine maximale Ausfließgeschwindigkeit von 15 mm/s erreicht werden kann. Weiters
kann erkannt werden, dass durch die Variation der Pegelstände hi und hi+1 die Ausfließgeschwindigkeit bis zu einem Drittel verändert werden kann. Der Rest ist durch den fixen
Höhenunterschied der Tanks bestimmt. Die Auswirkung der Ausfließgeschwindigkeit vom
Pegelstand des darunterliegenden Tanks kann Abb. 4.5 entnommen werden. In dieser Abbildung wird angenommen, dass z. B. bei leerem Tank 3 keine Pegeländerung im Tank
2 stattfindet. Wird jedoch der darunterliegende Tank 3 auf hu befüllt, würde sich aufgrund der Kopplung Tank 2 mit bis zu 3.5 mm/s auffüllen. Ein höherer Pegelstand des
darunterliegenden Tanks bremst also den Ausfluss, da die Höhendifferenz ∆h verringert
wird.
4.2.2
Ausfließverhalten im Bereich Geringer Pegelstand
In diesem Bereich kann angenommen werden, dass an der Ausfließkante des Tanks Umgebungsdruck herrscht und das Ausfließverhalten unabhängig vom darunterliegenden Tank
ist. Die Gleichung 4.3 aus Abschnitt 4.2.1 führt zu folgender Differentialgleichung
dhi (t)
ASch,i
=−
dt
Ai
s
2ghi (t)
1 + ζL,i
(4.9)
4. Parameterbestimmung 4.2.2. Ausfließverhalten im Bereich Geringer Pegelstand
41
4.0
h=0mm
h=50mm
3.5
h=80mm
dh/dt in mm/s
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0
10
20
30
40
50
60
70
80
hu in mm
Abbildung 4.5: Ausfließgeschwindigkeit
standes hu am Bspl. von Tank 2
dh
dt
in Abhängigkeit des darunterliegenden Pegel-
mit ζL,i der Druckverlustzahl, welche nun auch abhängig von der Luft im Abflussschlauch
ist. Werden die konstanten Parameter zu
s
ASch,i
2g
αL,i =
(4.10)
Ai
1 + ζL,i
zusammengefasst, lässt sich die Differentialgleichung 4.9 mit
p
dhi (t)
= −αL,i hi (t)
dt
kompakt darstellen. Die Lösung dieser Gleichung
hi (t) =
p
αL,i t
hi (0) −
2
(4.11)
2
(4.12)
stellt die Ausflusskurve dar. Die Parameter αL,i sollen bestimmt werden. Mit Einsetzen
von Randbedingungen kann diese Gleichung gelöst werden. Folgende Werte ergeben sich
für αL,i :
√
m
s
√
0.0665 sm
• αL,1 = 0.0553
• αL,2 =
4. Parameterbestimmung
• αL,3 = 0.0877
4.3. Parameterbestimmung der Pumpen
42
√
m
s
Aus mehreren Messungen ergibt sich, dass diese Parameter unterschiedlich sind. Der
Grund dafür ist, die fehlende Nachvollziehbarkeit der Menge an Luft, welche in den
Abflussschlauch dringt und nicht gemessen werden kann. Um den ganzen Pegelbereich
simulieren zu können, werden die angeführten Parameter αL,i verwendet.
4.3
Parameterbestimmung der Pumpen
Die Pumpe verhält sich etwas anders als im mathematischen Pumpenmodell Abschnitt
3.2 hergeleitet. Die Funktionsweise kann Abschnitt 1.1.2 entnommen werden.
Durch Messungen stellte sich heraus, dass sich die Dynamik der Pumpe im 100 ms-Bereich
befindet. Im Vergleich zum dynamischen Gesamtverhalten, welches im Sekundenbereich
liegt, ist die Pumpendynamik ausreichend klein und kann vernachlässigt werden. Dadurch
wird jede Pumpe mit dem statischen Zusammenhang
1
kp,i
(uA,i (t) −
RA,i ρg
qP,i (t) =
kM,i
ηP,i
kP,i
kM,i
hP,i (t))
(4.13)
welcher im Abschnitt 3.4.2 hergeleitet wurde, beschrieben. Mit hP,i (t) = Hi + hi (t) − hS (t)
in Gl. 4.13 eingesetzt, wird ersichtlich, dass der Durchfluss von der Ankerspannung uA,i (t)
und von der Förderhöhe hP,i (t) bzw. den veränderlichen Pegelständen hi (t) und hS (t)
abhängt. Es wird eine Funktion
qP,i = fP,i (uA,i , hi , hS )
(4.14)
gesucht.
4.3.1
Durchfluss aufgrund der Ankerspannung
Der Durchfluss qP,i hängt theoretisch über die Beziehung
qP,i (t) = Ai
dhi (t)
dt
(4.15)
mit der Änderung des Pegelstandes dhdti (t) und dem Tankquerschnitt Ai zusammen. Die
Änderung des Pegelstandes kann nur über die Ankerspannung der Pumpe gesteuert werden. Daher wird vorerst die Abhängigkeit der Pegelstände nicht berücksichtigt. Durch
Messungen stellte sich heraus, dass eine konstante Ankerspannung der Pumpe eine bestimmte Änderung des Pegelstandes nach sich zieht und zu einem bestimmten Durchfluss
führt. Es ist eine Beziehung für den Durchfluss
qP,i = gP,i (uA,i )
(4.16)
4. Parameterbestimmung
4.3.1. Durchfluss aufgrund der Ankerspannung
43
in Abhängigkeit der Ankerspannung gesucht. Bei verschlossenem Abfluss der Tanks5 werden Messungen mit dem PC/104 System mit Variation der Spannung uA,i über den gesamten Betriebsbereich von 0 - 12 V für alle drei Pumpen durchgeführt und die jeweiligen
Änderungen des Pegelstandes ermittelt. Diese Messungen sind im Anhang A zu finden.
• An die Pumpe wird über das PC/104 System eine Spannung uA,i angelegt, wodurch
der Tank befüllt bzw. bei niedrigen Spannungen entleert wird und eine Änderung
des Pegelstandes erfolgt.
• Währenddessen wird der Pegelstand hi über die mit dem PC/104 System gemessene
Sensorspannung uS,i und der integrierten Umrechnung laut Gl. 4.2 berechnet und
in eine Kennlinie über die Zeit aufgenommen (Abb. A.1 - A.3).
• Aus dieser Kennlinie ist ein linearer Verlauf erkennbar, welcher durch eine Gerade
angenähert wird. Die Steigung dieser Gerade ist die Änderung des Pegelstandes dhdti (t)
bei einer bestimmten Spannung uA,i .
• Daraus erhält man über die Beziehung 4.15 eine Durchfluss-Spannungsabhängigkeit,
welche in der Pumpenkennlinie Abb. 4.6 dargestellt ist.
Pumpenkennlinie
10
8
qP in l/min
6
4
2
Pumpe 1 Näherung
0
Pumpe 1 Messung
Pumpe 2 Näherung
Pumpe 2 Messung
−2
Pumpe 3 Näherung
Pumpe 3 Messung
−4
0
2
4
6
8
10
12
uA in V
Abbildung 4.6: Pumpenkennlinie
Die Funktion
5
In den folgenden Messungen wird nur das Pumpenverhalten untersucht. Um den Ausfluss wegzuschalten, werden die Abflüsse der Tanks mit Stöpseln geschlossen.
4. Parameterbestimmung
qP,g,i
4.3.2. Durchfluss aufgrund der Pegelstände
(
√
β1,1,i (uA,i − uA,0,i ) − β1,2,i 5 uA,0,i − uA,i
=
√
β2,1,i (uA,i − uA,0,i ) + β2,2,i uA,i − uA,0,i
für 0 ≤ uA,i ≤ uA,0,i
für uA,0,i ≤ uA,i
44
(4.17)
stimmt fast vollkommen mit den Messpunkten überein, wobei uA,0,i der Ankerspannung
bei qP,g,i = 0 entspricht. Folgende Parameter der Funktion sind zu bestimmen:
• β1,1,i ,β1,2,i ,β2,1,i ,β2,2,i
• uA,0,i
Bevor diese Parameterbestimmung durchgeführt werden kann, muss die Untersuchung der
Durchflussabhängigkeit von den Pegelständen der Tanks erfolgen.
4.3.2
Durchfluss aufgrund der Pegelstände
Aus den Messungen aus Abschnitt 4.3.1 ist ein konstanter Durchfluss bei konstanter Ankerspannung festgestellt worden. Bei genauer Betrachtung stimmt dieser Zusammenhang
jedoch im Bereich qP,i ≈ 0, in dem kein Durchfluss zustande kommt, nicht ganz. Diese
Abweichung kann auf die vorher vernachlässigte Abhängigkeit des Durchflusses von den
Pegelständen zurückgeführt werden und wird in diesem Abschnitt vervollständigt. Um
den Durchfluss durch die Ankerspannung wegzublenden, wird untersucht, welche Ankerspannung nötig ist, um einen Pegel auf konstantem Level zu halten. Zur Messung wird
Tank i auf ungefähr halbe Tankhöhe hi,0,id gefüllt, welcher den Startpegelstand darstellt.
Die Höhe des Pegels des Sammelbehälters hS,0,id,i zu diesem Zeitpunkt wird an der Skala
abgelesen. Wird eine Ankerspannung uA,H,i angelegt, welche qP,i ≈ 0 erzeugt, der sogenannten Haltespannung, pendelt sich der Wasserpegel auf einer bestimmten Höhe hi ein.
Der Pegelstand des Sammelbehälters hS berechnet sich zu diesem Zeitpunkt mit
(hi,0,id − hi )Ai
(4.18)
hS = hS,0,id,i +
AS
Die Haltespannung uA,H,i und die Höhendifferenz ∆hi = (hi −hi,0,id −hS + hS,0,id,i ) werden
in einem Diagramm eingetragen. Dieser Vorgang wird durch eine minimale Veränderung
der Ankerspannung mehrmals durchgeführt bis der ganze Pegelbereich erfasst ist. Die
Messungen können Abb. 4.7 entnommen werden.
4. Parameterbestimmung
4.3.2. Durchfluss aufgrund der Pegelstände
45
40
Pumpe 1 Näherung
30
Pumpe 1 Messung
Pumpe 2 Näherung
20
Pumpe 2 Messung
∆h in mm
Pumpe 3 Näherung
10
Pumpe 3 Messung
0
−10
−20
−30
−40
−50
2.2
2.4
2.6
2.8
3.0
3.2
3.4
3.6
3.8
4.0
uA in V
Abbildung 4.7: Erforderliche Spannungen uA,i zum Halten eines Pegels
Daraus lässt sich erkennen, dass sich die Haltespannung uA,H,i für beliebige hi und hS
nach dem Gesetz
uA,H,i(hi , hS ) = kH,i ∆hi + uA,0,i
(4.19)
verhält, wobei uA,0,i die Haltespannung bei den Pegelständen hi,0,id und hS,0,id,i ist. Durch
die Minimierung der quadratischen Abweichung der Messpunkte können die Parameter
kH,i und uA,0,i bestimmt werden.
V
• kH,1 = 3.35 m
V
• kH,2 = 3.91 m
V
• kH,3 = 6.74 m
• uA,0,1 = 3.8V
• uA,0,2 = 3.2V
• uA,0,3 = 2.4V
Im Rahmen der Messungen für die Pumpenkennlinie ist der gesamte Pegelbereich der
Tanks ausgenutzt worden. Es wird angenommen, dass Gl. 4.17 das Pumpenverhalten für
hi (t) = hi,0,id und hS (t) = hS,0,id,i beschreibt. Daher gilt
4. Parameterbestimmung
4.3.2. Durchfluss aufgrund der Pegelstände
qP,g,i (t) = gP,i (uA,i (t)) = fP,i (uA,i (t), hi,0,id , hS,0,id,i )
46
(4.20)
Da nun die Parameter uA,0,i bekannt sind, lassen sich auch alle weiteren Parameter aus
Gl. 4.17 durch Minimierung der quadratischen Abweichung der Messpunkte bestimmen:
3
3
3
3
, β1,2,1 = −308 · 10−7 m
, β2,1,1 = 52 · 10−7 m
, β2,2,1 = 269 · 10−7 m
• β1,1,1 = 36 · 10−7 m
Vs
Vs
Vs
Vs
3
3
3
3
• β1,1,2 = 36 · 10−7 m
, β1,2,2 = −276 · 10−7 m
, β2,1,2 = 69 · 10−7 m
, β2,2,2 = 255 · 10−7 m
Vs
Vs
Vs
Vs
3
3
3
3
• β1,1,3 = 8 · 10−7 m
, β1,2,3 = −248 · 10−7 m
, β2,1,3 = 66 · 10−7 m
, β2,2,3 = 221 · 10−7 m
Vs
Vs
Vs
Vs
Die Funktionen mit diesen Parametern sind in Abb. 4.6 ersichtlich, und ergeben eine
gute Annäherung an die Messpunkte. Die Durchflussabhängigkeit von der Ankerspannung
gP,i (uA,i (t)) und der Haltespannungsanteil kH,i ∆hi (t) werden zusammengeführt. Daraus
entsteht das fertige Modell für jede Pumpe
qP,i (t) = gP,i (uA,i (t) − kH,i ∆hi (t)),
(4.21)
welches eingesetzt in Gl. 4.17 die vollständige Form
qP,g,i
p

β1,1,i (uA,i − kH,i ∆hi − uA,0,i ) − β1,2,i 5 uA,0,i − (uA,i − kH,i ∆hi )




für 0 ≤ uA,i − kH,i ∆hi ≤ uA,0,i
p
=

(uA,i − kH,i ∆hi ) − uA,0,i
β
(u
−
k
∆h
−
u
)
+
β
2,1,i
A,i
H,i
i
A,0,i
2,2,i



für uA,0,i ≤ uA,i − kH,i ∆hi
(4.22)
mit ∆hi = (hi − hi,0,id − hS + hS,0,id,i ) annimmt. Der Pegelstand des Sammelbehälters hS
hängt allgemein von allen drei Tanks ab und lässt sich mit
(h1,0 − h1 )A1 + (h2,0 − h2 )A2 + (h3,0 − h3 )A3
(4.23)
AS
berechnen. Aus der Pumpenkennlinie kann direkt auf die Füllgeschwindigkeit in Abhängigkeit der Ankerspannung geschlossen werden.
In Abb. 4.8 wird ersichtlich, dass durch die Pumpe eine Füllgeschwindigkeit von 25
mm/s erreicht werden kann. Dies setzt jedoch voraus, dass kein Abfließen durch die Abflussschläuche aus den Tanks stattfindet. Weiters kann die Ausfließgeschwindigkeit durch
die Pumpe um 10 mm/s erhöht werden.
hS = hS,0 +
4. Parameterbestimmung
4.4. Parameterbestimmtes Gesamtsystem
47
Pumpenkennlinie
30
25
dh/dt in mm/s
20
15
10
5
0
−5
Pumpe 1
−10
Pumpe 2
Pumpe 3
−15
0
2
4
6
8
10
12
uA in V
Abbildung 4.8: Füllgeschwindigkeit
4.4
dh
dt
in Abhängigkeit von uA
Parameterbestimmtes Gesamtsystem
Die parameterbestimmten Teilmodelle werden zum Gesamtmodell

 
p
dh1 (t)
h1 (t) + H1,2
−α
1
p− h2 (t)
p
 dhdt2 (t)  
=
α1p h1 (t) + H1,2 − h2 (t) − α2p h2 (t) + H2,3 − h3 (t)
 dt 
dh3 (t)
α
h2 (t) + H2,3 − h3 (t) − α3 h3 (t) + H3,S − hS (t)
2
dt

g (u
(t)−kH,1 (h1 (t)−hS (t)+hS,0,id,1 −h1,0,id ))
+ P,1 A,1
A1
gP,2 (uA,2 (t)−kH,2 (h2 (t)−hS (t)+hS,0,id,2 −h2,0,id )) 
+

A2
gP,3 (uA,3 (t)−kH,3 (h3 (t)−hS (t)+hS,0,id,3 −h3,0,id ))
+
A3
(4.24)
zusammengeführt. Für dieses mathematische Modell wird nur der Hauptbetriebsbereich
g (u (t)−kH,i (hi (t)−hS (t)+hS,0,id,i −hi,0,id ))
der Tanks berücksichtigt. Die Terme P,i A,i
in den GleiAi
chungen beschreiben die nichtlinearen Pumpenkennlinien,
die anderen Terme die Ausq
ASch,i
2g
fließkennlinien der Tanks mit αi = Ai
. Dieses Modell wird dem Reglerentwurf in
1+ζi
Kap. 5 zugrunde gelegt. Der Bereich mit geringem Pegelstand, indem ein anderes Ausfließverhalten auftritt, wird im Regelbetrieb nicht erreicht. In der Simulation ist der gesamte
Pegelbereich implementiert.
Abb. 4.9 zeigt die identifizierte Strecke implementiert in Scilab/Scicos. Das detailierte
Simulationsmodell der Strecke mit allen Unterblockschaltbildern ist im Anhang A abgebildet (Abbildungen A.4 - A.7).
4. Parameterbestimmung
4.4. Parameterbestimmtes Gesamtsystem
48
+
To workspace
−
u_sim
Stellgröße
+
u_A
1
−
Mux
h
1e3
Ein/Aus
Füllstände
Strecke
To workspace
h_sim
+
−
Abbildung 4.9: Blockschaltbild der simulierten Strecke
Es wird eine Simulation durchgeführt, bei der die in Abb. 4.10 gezeigten Ankerspannungen
angelegt werden. Das zeitliche Verhalten der Pegelstände, zeigt das Ergebnis in Abb. 4.11.
Stellgröße Tank 1
u in V
9
8
7
6
5
4
3
2
1
0
0
5
10
15
20
25
30
t in s
5
Stellgröße Tank 2
u in V
4
3
2
1
0
0
5
10
15
20
25
30
t in s
5
Stellgröße Tank 3
u in V
4
3
2
1
0
0
5
10
15
20
t in s
Abbildung 4.10: Stellgröße
25
30
4. Parameterbestimmung
4.4. Parameterbestimmtes Gesamtsystem
h in mm
80
60
40
20
0
49
Pegelstand Tank 1
0
5
10
15
20
25
30
t in s
h in mm
80
60
40
20
0
Pegelstand Tank 2
0
5
10
15
20
25
30
t in s
h in mm
80
60
40
20
0
Pegelstand Tank 3
0
5
10
15
20
25
30
t in s
Pegelstand Sammelbehälter
h in mm
70
60
50
40
0
5
10
15
t in s
Abbildung 4.11: Pegelstände
20
25
30
5 Mehrgrößenregelung der
Pegelstände
Dieses Kapitel befasst sich mit einem Reglerkonzept, welches in der Simulation und am
Labormodell durch Implementierung mit dem PC/104 System getestet wird. Es baut auf
das Reglerkonzept, welches unter [3] verwendet wurde, auf und wurde an dieses Projekt
angepasst.
In Abschnitt 5.1 wird die Strecke untersucht, für welche der Regler entworfen werden soll.
Unter Abschnitt 5.2 wird eine Stellgrößentransformation durchgeführt, um die Strecke zu
entkoppeln und den Reglerentwurf zu vereinfachen. In Abschnitt 5.3 wird ein PI-Regler
entworfen, welcher zeitdiskret mit einer Abtastzeit von Ta = 10 ms aufgebaut wird. Das
verwendete Simulationsmodell ist im Abschnitt 5.4 als Scicos-Blockschaltbild dargestellt.
Weiters wird in diesem Abschnitt ein Testergebnis der Mehrgrößenregelung präsentiert.
5.1
Strecke
Als Strecke für den Reglerentwurf wird das identifizierte Gesamtmodell aus Kap. 4.4
verwendet. Wird der Pegelstand h als Zustand x

 

x1
h1
x =  x2  =  h2 
x3
h3
(5.1)
und die Ankerspannug uA als Eingang u

 

u1
uA,1
u =  u2  =  uA,2 
u3
uA,3
(5.2)
eingeführt, kann das Gesamtmodell in folgender allgemeinen Form
ẋ = f(x, u)
(5.3)
y = g(x, u)
(5.4)
mit y als Ausgang angeführt werden. In dieser Darstellung ergibt sich die Strecke zu
50
5. Mehrgrößenregelung der Pegelstände
5.2. Stellgrößentransformation
51
p
 
(x1 + H1,2
−α
ẋ1
1
p− x2 )
p
 ẋ2  =  α1 (x1 + H1,2 − x2 ) − α2 (x2 + H2,3 − x3 )
p
p
ẋ3
α2 (x2 + H2,3 − x3 ) − α3 (x3 + H3,S − xS )

g (u −k (x −x +h
−h
))
+ P,1 1 h,1 1 AS1 S,0,id,1 1,0,id
g (u −k (x −x +h
−h
)) 
+ P,2 2 h,2 2 AS2 S,0,id,2 2,0,id 
g (u −k (x −x +h
−h
))
+ P,3 3 h,3 3 AS3 S,0,id,3 3,0,id

 

y1
x1
 y2  =  x2 
y3
x3
(5.5)
(h1,0 − x1 )A1 + (h2,0 − x2 )A2 + (h3,0 − x3 )A3
.
AS
(5.7)

(5.6)
mit dem Pegelstand des Sammelbehälters
xS = hS,0 +
5.2
Stellgrößentransformation
Das System aus Gl. 5.5 und Gl. 5.6
ẋ = f(x, u)
(5.8)
y=x
(5.9)
ū = f(x, u)
(5.10)
u = fu−1 (x, ū)
(5.11)
kann mit der Stellgrößentransformation
nach Invertierung dieser1
auf die lineare Form von drei entkoppelten Integratoren
1
s

0 0
y(s) 
G(s) =
= 0 1s 0 
ū(s)
0 0 1s

(5.12)
gebracht werden. Die Stellgrößentransformation kann jedoch nur diskret implementiert
werden.
uk = fu−1 (xk , u¯k )
(5.13)
1
Wie Gl. 5.5 entnommen werden kann, ist f (x, u) nach u invertierbar.
5. Mehrgrößenregelung der Pegelstände
5.2. Stellgrößentransformation
52
Wie in Abb. 5.1 zu erkennen ist, befindet sich durch die diskrete Implementierung ein
Digital/Analog-Wandler (DA) zwischen der Stellgrößentransformation und der zeitkontinuierlichen Strecke, wodurch Abweichungen entstehen. Unter der Annahme, dass diese
Abweichungen klein genug sind, wird die Strecke auf die Form von drei entkoppelten
Integratoren gebracht.
 Ta

0
0
z−1
Ta
0 
G(z) =  0 z−1
(5.14)
Ta
0
0 z−1
Abbildung 5.1: Regler und Strecke mit überlagerter Stellgrößentransformation
Werden die Gleichungen 5.10 und 5.13 auf die Strecke aus Gl. 5.5 angewendet, ergibt sich
die Stellgrößentransformation
p
 
−1
gP,1
(A1 (ū1,k + α1 x1,k + H1,2p− x2,k ))
u1,k
p
−1
 u2,k  =  gP,2
(A2 (ū2,k − α1 px1,k + H1,2 − x2,k + α2 p(x2,k + H2,3 − x3,k ))
−1
u3,k
gP,3
(A3 (ū3,k − α2 x2,k + H2,3 − x3,k + α3 x3,k + H3,S − xS,k ))

+kh,1 (x1,k − xS,k + hS,0,id,1 − h1,0,id )
+kh,2 (x2,k − xS,k + hS,0,id,2 − h2,0,id )  ,
(5.15)
+kh,3 (x3,k − xS,k + hS,0,id,3 − h3,0,id )

−1
welche zu jedem Abtastzeitpunkt durchgeführt wird. Die Bestimmung von gP,i
erfolgt
−1
numerisch, da sie analytisch schwer durchführbar ist. Die Funktion gP,i (uA,i ) wird in
Abständen von ∆uA,i = 1 mV ausgewertet und dazwischen linear interpoliert. Diese
Interpolation lässt sich leicht invertieren und wird als Lookup-Table in Scilab-Scicos implementiert.
Der Reglerentwurf für lineare Abtastsysteme gestaltet sich wie für zeitkontinuierliche Systeme, wenn die q-Übertragungsfunktionen für Strecke und Regler verwendet werden. Dazu
werden die Transformationsvorschriften zwischen z- und q-Bereich
z=
1 + q T2a
1 − q T2a
(5.16)
5. Mehrgrößenregelung der Pegelstände
5.3. PI-Regler
53
und
2 z−1
·
Ta z + 1
verwendet, welche zur q-transformierten Strecke
(5.17)
q=


G# (q) = 

1−q T2a
q
0
0
0
0
1−q T2a
q
0
0
1−q T2a
q




(5.18)
führen. Durch die Stellgrößentransformation können die Pegelstände als entkoppelt betrachtet werden und die Regler Ri# (q) einzeln für die Strecken
G#
i (q)
1 − q T2a
=
q
(5.19)
entworfen werden. Dies führt zu drei voneinander unabhängigen Regelkreisen mit den
Regler

0
0
R1# (q)
.
R# (q) =  0
R2# (q)
0
0
0
R3# (q)0

(5.20)
Somit kann der Reglerentwurf als Eingrößenentwurf durchgeführt werden.
5.3
PI-Regler
Der PI-Regler wird mittels algebraischem Reglerentwurf [5] entwickelt, um im geschlossenen Regelkreis nur reelle Polstellen auftreten zu lassen2 . Die Pole werden bei diesem
Entwurfsverfahren vorgegeben. Der PI-Regler
RP#I,i (q) =
VI,i + VP,i q
q
(5.21)
führt zu den Führungsübertragungsfunktionen
Ta
V
+
V
−
V
q − VP,i T2a q 2
−VP,i T2a
(q − q0,1,i ) (q − q0,2,i )
I,i
P,i
I,i
2
·
TP#I.i (q) =
=
Ta
Ta
Ta
2
1 − VP,i 2 (q − q∞,1,i ) (q − q∞,2,i )
VI,i + VP,i − VI,i 2 q + 1 − VP,i 2 q
(5.22)
2
Komplexe Polstellen können ein Schwingen der Pegelstände zur Folge haben. Dies wird mit der
Polvorgabe vermieden.
5. Mehrgrößenregelung der Pegelstände
5.3. PI-Regler
54
und den Störübertragungsfunktionen
q2
1
·
.
1 − VP,i T2a (q − q∞,1,i ) (q − q∞,2,i )
VI,i + VP,i − VI,i 2 q + 1 − VP,i 2 q 2
(5.23)
Die Pole q∞,1,i und q∞,2,i werden laut Tabelle 5.1 vorgegeben.
SP#I,i (q) =
q2
Ta
Ta
q∞,1,i
Regler 1 -1.15
Regler 2 -0.80
Regler 3 -0.95
=
q∞,2,i
-1.25
-0.90
-1.00
Tabelle 5.1: Gewählte Eigenwerte beim PI-Regler
Damit ergibt sich der P-Anteil
VP,i =
und der I-Anteil
2(q∞,1,i q∞,2,i Ta − 2q∞,1,i − 2q∞,2,i )
(q∞,1,i Ta − 2) (q∞,2,i Ta − 2)
(5.24)
4q∞,1,i q∞,2,i
.
(q∞,1,i Ta − 2) (q∞,2,i Ta − 2)
(5.25)
VI,i =
Das Ergebnis bei einer Abtastzeit Ta =10 ms sind die Regler
RP#I,1(q) =
2.4q + 1.438
q
RP#I,2 (q) =
1.7q + 0.72
q
RP#I,3(q) =
1.95q + 0.95
q
im q-Bereich und
2.401z − 2.399
z−1
1.7z − 1.7
RP I,2(z) =
z−1
RP I,1 (z) =
RP I,3(z) =
1.95z − 1.95
z−1
5. Mehrgrößenregelung der Pegelstände
5.3. PI-Regler
55
im z-Bereich. Die Pole werden für jeden Regler unterschiedlich vorgegeben, da die Tanks
verschieden sensibel auf schnelle Eigenwerte reagieren. Tank 2 ist mit den beiden anderen
Tanks direkt über Schläuche verbunden und reagiert dadurch am Sensibelsten.
Der Aufbau des Regelkonzeptes kann Abb. 5.2 und 5.3 in Form von Scicos-Blockschaltbildern
entnommen werden. Abb. 5.2 zeigt den PI-Regler mit überlagerter Stellgrößentransformation sowie eine dem Regler übergeordnete Schutzabschaltung, die ein Überlaufen der
Becken verhindert. Die Schutzabschaltung schaltet die betreffende Pumpe ab, wenn der
Pegelstand 90 mm übersteigt.
1
*
*
Tiefpass
r
1
+
−
e
u
u_dach
udach
y
PI_Regler1
switch
u
Demux
Transformation
*
Product
*
u
Product *
1
Mux
*
Mathematical
Expression
y
Product
Mathematical
2
Expression
Demux
Mathematical
Expression
TP ein/aus
3
Abbildung 5.2: PI-Regler mit Transformation und Stellgrößenbeschränkung
Der genaue Aufbau des PI-Reglers ist in Abb. 5.3 zu sehen. Hier ist zu erwähnen, dass
der Eingang des Integrators auf Null geschalten wird, sobald sich die Stellgröße in der
Begrenzung (uA,i =0 V oder uA,i =12 V) befindet. Somit bleibt der Ausgang des Integrators auf seinem Wert. Verlässt die Stellgröße die Begrenzung, wird der Integrator wieder
aktiv3 .
3
Anti-Windup
5. Mehrgrößenregelung der Pegelstände
5.4. Aufbau und Test der Regelung
56
1
−K−
e
1
u_dach
1
−K−
Demux
Mux
−K−
Mathematical
Expression
*
*
num(z)
den(z)
Product
u
Mathematical
Expression
2
*
*
num(z)
den(z)
Product
Demux
Mathematical
Expression
*
*
num(z)
den(z)
Product
Abbildung 5.3: PI-Regler
5.4
Aufbau und Test der Regelung
Zum Testen wird ein Zyklus für die drei Soll-Pegelstände, bezeichnet als Führungsgröße
r, vorgegeben. Dieser beinhaltet Pegelsprünge sowie gleichmäßige Pegelstandänderungen.
Der Test wurde zuerst in der Simulation und anschließend am Labormodell durchgeführt.
Abbildungen 5.4 und 5.5 zeigen den Aufbau der Regelung in der Simulation und am
PC/104 System.
5. Mehrgrößenregelung der Pegelstände
5.4. Aufbau und Test der Regelung
57
Mux
+
−
Führungsgröße
regelung.Sprung_Ablauf
Stellgröße
r
switch −K−
y
Ein/Aus TP ein/aus
+
−
Mux
u_sim
u
u_A
1
h
1e3
Füllstände
Ein/Aus
regelung.TP_ein
To workspace
Strecke
PI−Regler
+
−
To workspace
h_sim
Demux
Abbildung 5.4: PI-Regelung Simulation
1
Scope
Fuehrungsgroesse
−K−
Demux
Scope
Stellgroesse
Demux
Scope
Sensor
COMEDI D/A COMEDI A/D
comedi0 CH−0
comedi0 CH−0
Pumpe 1
r
y
TP ein/aus
u
0
1/3
Sensor 1
COMEDI D/A COMEDI A/D
comedi0 CH−1
comedi0 CH−1
Sensor 2
Regler Ein/Aus Demux Pumpe 2
PI−Regler
COMEDI D/A COMEDI A/D
Stellgroesse
Demux
Mux
comedi0 CH−2
comedi0 CH−2
Step
Pumpe 3
u_S
offset
Scope
h −K−
Pegelstand
Demux
Pegelstaende
Sensor 3
TP Ein_Aus
Step
Offset−Abgleich 1
Step
Scope
Demux u_y
Demux
Offset−Abgleich 2 Mux
Step
Offset−Abgleich 3
Abbildung 5.5: PI-Regelung PC/104-System
Gemessen wurden die drei Ist-Pegelstände y und die drei Ankerspannungen u, welche als
Stellgröße dienen. In Abb. 5.6 werden die Führungsgrößen r und die Ist-Pegelstände y
dargestellt. Die dazugehörigen Ankerspannungen u zeigt Abb. 5.7.
h in mm
Tank 1
Vorgabe
Messung
Simulation
0
20
40
60
80
100
t in s
h in mm
Tank 2
Vorgabe
Messung
Simulation
0
20
40
60
80
100
t in s
Tank 3
h in mm
80
70
60
50
40
30
Vorgabe
Messung
Simulation
0
20
40
60
80
100
t in s
Sammelbehälter
h in mm
80
70
60
50
40
30
Messung
Simulation
0
20
40
60
100
58
t in s
80
5.4. Aufbau und Test der Regelung
Abbildung 5.6: Ergebnis der PI-Regelung
80
70
60
50
40
30
5. Mehrgrößenregelung der Pegelstände
80
70
60
50
40
30
Messung
uA in V
12
10
8
6
4
2
0
Simulation
20
40
60
80
100
t in s
Tank 2
Messung
uA in V
12
10
8
6
4
2
0
Simulation
0
20
40
60
80
100
t in s
Tank 3
Messung
uA in V
12
10
8
6
4
2
0
Simulation
0
20
40
60
80
100
5.4. Aufbau und Test der Regelung
Abbildung 5.7: Stellgröße der PI-Regelung
0
5. Mehrgrößenregelung der Pegelstände
Tank 1
t in s
59
6 Softwareseitige Umsetzung
In diesem Kapitel wird beschrieben, wie die Umsetzung der Programmierung und Simulation durchgeführt wurde. Es wird weiters auf einzelne Probleme aufmerksam gemacht,
um diese bei zukünftigen Projekten von vornherein auszuschließen.
6.1
Betriebssysteme und Rechner
Wie Kapitel 2 entnommen werden kann, wurde auf das PC/104 System ein echtzeitfähiges
Betriebssystem installiert. Es sollte auch die Möglichkeit geschaffen werden, mit dem
Programm Scilab/Scicos direkt am PC/104 System die Simulation und Programmierung
durchzuführen. Durch Testen stellte sich jedoch heraus, dass die Leistung von 500 MHz des
PC/104 Systems nicht ausreicht um vernünftig darauf arbeiten zu können. Dadurch ist ein
zusätzlicher Rechner erforderlich, auf dem die Programmierung und Simulation mit dem
Programm Scilab/Scicos erfolgt. Wird eine RTAI-Code-Generierung auf einem gleichen,
echtzeitfähigen Betriebssystem durchgeführt, kann eine Datei generiert werden, welche
am PC/104 System ausgeführt werden kann. Dies führt zu folgender Vorgehensweise: Auf
einem zweiten Rechner mit Windows-Betriebssystem wird das Programm Scilab/Scicos
installiert und die Simulation durchgeführt. Zusätzlich wird das gleiche echtzeitfähige
Betriebssystem, welches auf dem PC/104 System läuft, mit Hilfe von VMware Player 1
darauf installiert. Dazu wird das fertige Linux -Paket debian.vmx, auf welchem bereits das
Programm Scilab/Scicos mit RTAI-Lab Add-on (siehe auch Kap. 2.13) integriert ist, von
wiki4students heruntergeladen.
Bei der VMware Player Version 2.5 ist standardmäßig der RAM-Speicher auf 196 MB
eingestellt. Dies kann bei größeren Scicos-Programmen (>1 MB) zu wenig sein. Mit dem
Programm VMmanager, welches ebenso frei aus dem Internet bezogen werden kann, lässt
sich der RAM-Speicher erhöhen. Dabei ist darauf zu achten, ihn maximal auf die Hälfte
des verfügbaren RAM-Speichers einzustellen. Damit können beide Betriebssysteme, die
am Rechner laufen, auf den halben RAM-Speicher zugreifen.
6.2
Umstellung auf Scilab/Scicos
Für die Simulation kann das Modell von Matlab/Simulink in Scilab/Scicos nachgebaut
werden, da es sehr ähnlich ist. Da es schon einige Literatur gibt, die sich mit Dokumentationen über Scilab/Scicos beschäftigen, wird in diesem Abschnitt nur auf einige wenige
1
VMware Player bietet die Möglichkeit mehrere Betriebssysteme gleichzeitig auf einem PC ausführen
zu können, ist Opensource-Software und kann aus dem Internet frei bezogen werden.
60
6. Softwareseitige Umsetzung
6.2. Umstellung auf Scilab/Scicos
61
nützliche Themen eingegangen, welche die Umsetzung von einem Matlab/Simulink -Modell
auf dSpace auf ein Scilab/Scicos-Modell auf dem echtzeitfähigen PC/104 System, erleichtern sollen. Folgende Hinweise können dabei nützlich sein:
• Mit dem Scicos-Block Mathematical Expression können Funktionen wie If - Bedingungen, Größer/Kleiner -Abfragen oder sin/cos-Funktionen implementiert werden.
• Der Scicos-Block Generic Block ist vergleichbar mit einer s-function von Matlab/Simulink : Dazu muss eine sci-function in Scilab erstellt werden. Die Übergabeparameter dieser Funktion werden im Scicos-Block Generic Block definiert und
nicht wie bei der s-function von Matlab/Simulink direkt in der Funktion.
• Die Scicos-Blöcke Lookup-table und Curve verwenden ein Grafikfenster, in dem eine
Funktion gezeichnet oder über eine Datei eingelesen werden kann. Die Datei hat
ein xy-Format, welche folgendermaßen erstellt werden kann: Zwei Spalten-Vektoren
x y werden in eine Matrix xy=[x y] zusammengefasst und mit save(’datei.xy’,xy)
als xy-Datei gespeichert. Das Einlesen von datei.xy erfolgt über Data-read und anschließendem Speichern mit Edit-Ok.
Für die Umstellung auf RTAI müssen folgende Punkte beachtet werden:
• Alle Ein-/ und Ausgänge wie z.B. Steps und Scopes, sowie die comedi -HardwareTreiber müssen durch die Blöcke aus der Bibliothek RTAI-Lib ersetzt werden.
• Um zu große Scicos-Dateien zu vermeiden, können Blöcke durch den Scicos-Block
Mathematical Expression ersetzt werden. Dieser Block kann lange mathematische
Ausdrücke beinhalten, und somit Blöcke einsparen wodurch die Dateigröße verkleinert wird.
Als Visualisierungsprogramm wird qRtailab für das PC/104 System verwendet, welches
equivalent zum Programm Control-Desk von dSpace ist. Auf folgende Problematiken ist
zu achten:
• Im Visualisierungspaket qRtailab können nur Parameter eines Scicos-Blocks eindeutig wieder erkannt werden, wenn diesem eine “Identifikation” unter FormatIdentification hinzugefügt wurde. Ansonsten hat dieser Block eine aufsteigende Nummer, wodurch dieser bei einem großen Programm mit vielen Blöcken schwer zu finden
ist. Deshalb benötigen alle Blöcke, auf welche in qRtailab zugegegriffen werden soll,
einen eindeutigen Identifikationsnamen.
• Die Parameter der Blöcke in Scicos werden in einer Datenpunktliste gespeichert.
qRtailab kann nur eine begrenzte Anzahl verarbeiten. Wenn die Anzahl der Parameter zu groß ist, wird der Fehler Speicherzugriffsfehler angezeigt und das Programm
beendet. Bei der Verwendung von Scicos-Blöcken wie Lookup-Tables oder Curves
werden Kurven implementiert. Besonders dabei soll darauf geachtet werden, diese
Kurven mit nicht zu vielen Datenpunkten (<1000) zu beschreiben.
6. Softwareseitige Umsetzung
6.2. Umstellung auf Scilab/Scicos
62
• Bei der Verwendung von Scopes können Probleme auftreten, wenn qRtailab mehrere
Verläufe mit vielen Datenpunkten anzeigen soll. Es kann zu langen Verzögerungen
in der Menüführung kommen, was eine vernünftige Verwendung von qRtailab nicht
gewährleistet. Um Verzögerungen zu verhindern, müssen folgende Einstellungen getätigt werden, bevor ein Verlauf angezeigt wird: Anzeigen eines kleineren Bereichs
durch Senken von sec/div bzw. erhöhen der Abtastzeit durch Erhöhen des Dividers
im Menüpunkt Display, damit nie das Datenpunktemaximum von 9999 erreicht
wird. Ein vernünftiges Arbeiten erfolgt, je nach Anzahl der Anzeigen, bei bis zu 999
Datenpunkten. Weiters sollen die Anzahl der Frames auf maximal fünf eingestellt
werden, um qRtailab nicht zu überlasten.
Abbildung 6.1: Scopes Manager von qRtailab
Wenn die Umsetzung direkt von Matlab/Simulink auf das PC/104 System durchgeführt
wird, sind folgende Aspekte zu beachten:
• Alle Ein-/ und Ausgänge wie z.B. Steps und Scopes, sowie die comedi -HardwareTreiber müssen mit den Blöcken aus der Simulink -Bibliothek RTAI-Devices ersetzt
werden.
• Bei der Verwendung von Lookup-Tables muss darauf geachtet werden, diese mit nicht
zu vielen Datenpunkten (<1000) zu benutzen. Ansonsten würde die Simulink -Datei
unnötig groß werden, wodurch es zu Problemen bei der Visualisierung mit qRtailab
kommen kann.
7 Inbetriebnahme
In diesem Kapitel wird beschrieben, wie das 3-Tank-Labormodell mit dem PC/104 System
gesteuert und geregelt werden kann. Hier folgt eine Anleitung, wie Schritt für Schritt das
3-Tank-Labormodell in Betrieb genommen werden kann und darauf Regelungen, Steuerungen und Messungen durchgeführt werden können. Die dazu vorbereiteten Dateien können
Tabelle 7.1 entnommen werden.
Steuerung und Messung
Regelung und Messung
Ausführbare Datei qRtailab-Profil Verzeichnis
Strecke rtai.exe
s.qrl
/home/exe
PI rtai.exe
r.qrl
/home/exe
Tabelle 7.1: Dateien-Übersicht
1. Vorbereitung der benötigten Komponenten:
(a) Das 3-Tank-Modell nach Kap. 1 aufbauen und nach Abb. 1.11 verbinden, sowie
die verwendenten elektrischen Komponenten, Leistungsverstärker, Netzgerät,
Trennverstärkerkarten, PC/104 System und Bildschirm entsprechend mit Spannung versorgen und einschalten. Dabei muss am Netzgerät 8 V eingestellt und
über den Schalter Output hinausgeführt werden. Das PC/104 System wird mit
dem Hauptschalter und dem Ein/Aus-Taster (siehe Abb. 1.10) eingeschaltet.
(b) Den Sammelbehälter auf Pegelhöhe 75 mm mit Wasser befüllen.
2. Das PC/104 System starten:
(a) Am Betriebssystem Linux mit dem Benutzer “root” und dem Passwort “rtai”
anmelden.
(b) Den Root Terminal unter dem Menüpunkt Anwendungen/Zubehör/Root Terminal starten.
(c) Im Root Terminal folgende Anweisungen durchführen:
i. Durch Eingabe von loadrtai das rtai -Skript starten.
ii. Durch Eingabe von loadcomedi das comedi -Skript starten.
3. Steuerungs- oder Regelungsprozess starten:
(a) Im Root Terminal folgende Anweisungen durchführen:
63
7. Inbetriebnahme
64
i. In das Verzeichnis mit der ausführbaren Datei laut Tab. 7.1 wechseln: cd
/home/exe
ii. Den Steuerungsprozess durch Eingabe von ./Strecke rtai & bzw. den Regelungsprozess durch Eingabe von ./PI rtai & starten (siehe Tab. 7.1).
iii. Einen neuen Reiter im Terminal öffnen und mit Eingabe von qrtailab &
das Visualisierungspaket qRtailab starten.
Abbildung 7.1: Oberfläche von qRtailab
(b) Die weiteren Anweisungen sind im Visualisierungspaket qRtailab durchzuführen. In Abb. 7.1 ist die Oberfläche von qRtailab zu sehen. Weiters werden in
dieser Abbildung die wichtigsten Werkzeuge des Visualisierungspaketes hervorgehoben.
i. Das vorbereitete qRtailab-Profil s.qrl (für die Steuerung) bzw. r.qrl (für
die Regelung) in qRtailab laden (siehe Abb. 7.1). Dadurch verbindet sich
qRtailab mit dem laufenden Prozess Strecke rtai bzw. PI rtai und zeigt
die gewünschten Anzeigen mit den richtigen Einstellungen.
ii. Bei den Sensoren muss ein Offset-Abgleich durchgeführt werden. Der OffsetAbgleich erfolgt durch Änderung des Parameters Offset-Abgleich 1 für den
Sensor 1. Im Feld V alue[0] wird die Differenz zwischen Skalenwert am Tank
1 und Anzeige 1 im Scope Pegelstand eingetragen. Dies erfolgt ebenso für
die Sensoren 2 und 3 durch Änderung der Parameter Offset-Abgleich 2 und
3.
4. Steuerung durchführen:
(a) Punkte 1 - 3 müssen ausgeführt sein.
7. Inbetriebnahme
65
(b) Zur Ansteuerung ist folgendes Steuerungsprofil eingebunden:
Abbildung 7.2: Sprungvorgabeparameter
Mit den Parametern T ein, T aus und r kann nach Abb. 7.2 im Parameters
Manager ein Spannungssprung für die drei Pumpen vorgegeben werden. Zum
Beispiel wird mit den Parameterwerten T1 ein = 0, T1 aus = 5, r1 = 12 an die
Pumpe 1 ein fünf Sekunden andauernder Spannungssprung von 12 V angelegt.
(c) Mit Ein Aus = 1 wird die Steuerung gestartet.
(d) Beendet wird diese durch Setzen von Ein Aus = 0.
(e) Eine Messung kann im Scopes Manager durch Auswählen des gewünschten
Scope (z.B. Pegelstaende) im Menüpunkt Saving gespeichert werden. Nach
Eingabe von Dateinamen, Verzeichnis und Dauer der Messung werden durch
Klicken auf Save die Messwerte vom Scope Pegelstaende gespeichert.
(f) Nach dem der Prozess laut Abb. 7.1 beendet wurde, kann durch Beenden von
qRtailab die Steuerung abgeschlossen werden. Das Programm ist an dieser Stelle
zum Starten eines neuen Prozess laut Punkt 3 bereit.
5. Regelung: Für die Regelung gibt es zwei Modi, den Sprung-Modus und den AblaufModus.
(a) Punkte 1 - 3 müssen ausgeführt sein.
(b) Regelung mit dem Sprung-Modus
i. Beim Sprungmodus ist folgendes Führungsgrößenprofil eingebunden:
Abbildung 7.3: Führungssprungvorgabeparameter
Durch Setzen der Parameter Value[0]-Value[4] in r1, r2 und r3 im Parameters Manager kann nach diesem Führungsgrößenprofil geregelt werden.
Als Beispiel werden alle drei Pegelstände durch Setzen der Parameter laut
Tabelle 7.2 auf 50 mm geregelt.
7. Inbetriebnahme
66
r1 r2
0
0
0
0
0
0
0
0
50 50
Value[0]
Value[1]
Value[2]
Value[3]
Value[4]
r3
0
0
0
0
50
Tabelle 7.2: Beispiel zur Regelung mit dem Sprungmodus
ii.
iii.
iv.
v.
Mit Sprung/Ablauf = 0 den Sprung-Modus auswählen.
Mit Sprung Ein/Aus = 1 den Sprung aufschalten.
Mit Regler Ein/Aus = 1 den Regler einschalten
Am Ende der Regelung den Sprung mit Sprung Ein/Aus = 0 und den
Regler mit Regler Ein/Aus = 0 ausschalten.
(c) Regelung mit dem Ablaufmodus
i. Beim Ablaufmodus ist folgender Führungsverlauf eingebunden:
Tank 1
h in mm
80
70
60
50
40
30
20
10
0
0
20
40
60
80
100
60
80
100
60
80
100
t in s
Tank 2
h in mm
80
70
60
50
40
30
20
10
0
0
20
40
t in s
Tank 3
h in mm
80
70
60
50
40
30
20
10
0
0
20
40
t in s
Abbildung 7.4: Führungsverlauf-Vorgabe bei der Ablaufregelung
ii.
iii.
iv.
v.
Mit Sprung/Ablauf = 1 in den Ablaufmodus wechseln.
Mit Ablauf Ein/Aus = 1 den Ablauf einschalten.
Mit Regler Ein/Aus = 1 den Regler einschalten
Am Ende der Regelung den Ablauf mit Ablauf Ein/Aus = 0 und den
Regler mit Regler Ein/Aus = 0 ausschalten..
7. Inbetriebnahme
67
(d) Nach dem der Prozess laut Abb. 7.1 beendet wurde, kann durch Beenden von
qRtailab die Regelung abgeschlossen werden. Das Programm ist an dieser Stelle
zum Starten eines neuen Prozess laut Punkt 3 bereit.
Bemerkung: Durch die Ungenauigkeiten der alten Sensoren stimmt der Skalenwert mit der Anzeige nicht immer überein. Es kann bei jedem Pegelstand
zu jeder Zeit ein Offset-Abgleich nach Punkt 3.b.ii durchgeführt werden.
A Anhang
Im Anhang werden alle fehlenden Messungen zur Identifikation und die restlichen Simulationsmodelle in Scilab/Scicos angefügt.
A.1
Messungen
In den folgenden Diagrammen sind die Messungen zur Identifikation der drei Pumpen
dargestellt. In jedem Diagramm ist die Reaktion des Pegelstandes hi auf eine angelegte
Spannung uA,i über die Zeit t abgebildet. Aus den Abbildungen geht deutlich hervor, dass
niedrige Ankerspannungen eine absteigende Kennlinie aufweisen und somit die Tanks
entleeren und erst ab einer bestimmten Spannung die Tanks befüllt werden.
40
30
70
70
70
70
50
2
3
t in s
4
5
40
30
30
30
30
20
0
70
70
h in mm
80
50
40
1
2
3
t in s
4
5
6
60
50
20
0
90
1
2
3
4 5
t in s
6
7
8
9
2
5
6
7
5
10
70
65
65
60
60
55
50
5
6
7
20
1
2
3
4
t in s
5
6
7
0
uA = 6V
100
45
40
40
35
35
4
6
100
8 10 12 14 16 18 20
t in s
uA = 10V
60
50
100
2
3
4
t in s
5
6
7
0
uA = 11V
85
1
2
3
t in s
4
5
6
uA = 12V
60
50
50
40
40
90
80
80
70
60
75
70
h in mm
70
60
90
h in mm
70
h in mm
80
h in mm
h in mm
80
80
70
60
65
60
55
50
50
50
40
40
45
40
35
30
0.0
0.5
1.0
1.5 2.0
t in s
2.5
3.0
3.5
30
0.0
0.5
1.0
1.5 2.0
t in s
2.5
3.0
3.5
30
0.0
0.5
1.0
1.5
t in s
2.0
2.5
3.0
30
0.0
0.5
1.0
1.5
t in s
2.0
2.5
30
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
t in s
Abbildung A.1: Messungen zur Identifikation von Pumpe 1
68
4
5
t in s
6
7
8
uA = 7V
70
60
40
30
1
3
50
40
0
2
80
70
30
2
1
90
80
50
50
30
0
90
55
45
0
uA = 9V
3
4
t in s
75
t in s
90
2
uA = 5V
80
70
15
1
60
40
20
0
30
0
uA = 8V
3
4
t in s
75
30
20
1
uA = 4V
80
40
30
20
0
uA = 3.5V
90
80
60
50
40
6
uA = 3V
90
50
60
40
h in mm
1
50
60
40
20
0
60
h in mm
70
h in mm
80
60
uA = 2.5V
90
80
h in mm
50
uA = 2V
90
80
h in mm
60
uA = 1.5V
90
80
h in mm
h in mm
h in mm
70
uA = 1V
90
80
h in mm
80
h in mm
uA = 0.5V
90
h in mm
uA = 0V
90
30
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
t in s
A. Anhang
A.1. Messungen
40
40
30
30
20
20
10
0
1
2
3
4
t in s
5
6
7
uA = 3V
90
20
0
1
2
3
4
5
t in s
6
7
8
uA = 4V
90
75
60
5
6
60
50
70
70
60
50
60
50
40
40
30
30
1
2
3
4 5
t in s
6
7
8
9
uA = 6V
20
70
70
60
50
1
2
3
4
5 6
t in s
7
8
9 10
0
uA = 7V
90
80
100
40
45
30
30
40
35
20
0
5
10
15
20
0
2
4
6
t in s
t in s
uA = 9V
90
80
80
70
h in mm
60
50
70
60
40
30
30
30
20
20
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
t in s
20
0.0
1.0
1.5 2.0
t in s
2.5
3.0
50
4
5
t in s
6
7
40
30
20
70
60
50
20
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5
t in s
2
3
t in s
4
5
6
40
uA = 12V
110
80
70
60
50
40
0.5
1.0
1.5
t in s
2.0
2.5
30
0.0
3.0
0.5
1.0
1.5
t in s
2.0
2.5
30
30
1
2
3
4 5
t in s
6
7
8
9
uA = 3V
85
1
2
3
4
5 6
t in s
7
8
9 10
uA = 4V
90
90
3
4
5 6
t in s
7
8
9 10
uA = 5V
85
50
60
65
60
55
50
45
50
40
40
35
30
30
0
2
4
6
8
t in s
10
12
14
0
1
2
3
4
t in s
5
6
7
40
30
1
2
3
4
5 6
t in s
7
8
9 10
0
5
10
15
t in s
uA = 6V
100
80
uA = 8V
90
75
80
70
h in mm
55
h in mm
60
70
60
50
0
75
70
65
h in mm
h in mm
2
80
70
70
30
1
85
80
75
70
40
0
80
80
60
uA = 2V
90
80
50
20
0
uA = 1.5V
90
50
40
20
0
uA = 1V
60
40
60
30
1
h in mm
70
70
20
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5
t in s
0
65
60
55
50
45
45
40
40
35
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
t in s
35
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
t in s
h in mm
50
80
uA = 8V
30
90
90
80
h in mm
h in mm
60
h in mm
uA = 0.5V
90
12
30
8
h in mm
uA = 0V
70
10
40
Abbildung A.2: Messungen zur Identifikation von Pumpe 2
80
8
80
60
100
10
0.0
3.5
3
50
40
0.5
2
60
50
40
1
uA = 11V
100
90
6
t in s
40
20
0
100
80
70
12
uA = 10V
110
90
10
h in mm
100
8
4
50
40
h in mm
50
2
90
50
55
50
30
0
80
60
40
20
0
90
60
h in mm
70
7
70
h in mm
h in mm
65
3
4
t in s
80
70
70
2
90
80
80
1
uA = 5V
100
85
80
20
0
h in mm
30
h in mm
50
uA = 2.5V
90
80
h in mm
50
h in mm
50
60
h in mm
h in mm
60
uA = 2V
90
80
h in mm
70
60
uA = 1.5V
90
70
40
h in mm
uA = 1V
80
80
70
h in mm
uA = 0.5V
90
80
h in mm
uA = 0V
90
69
70
60
50
40
30
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
t in s
A. Anhang
uA = 9V
110
uA = 10V
100
100
90
90
70
70
60
0.5
1.0
1.5
t in s
2.0
2.5
3.0
30
0.0
0.5
1.0
1.5
t in s
2.0
2.5
3.0
30
0.0
60
50
40
40
40
uA = 12V
70
70
50
50
50
70
80
60
60
40
0.0
90
80
80
h in mm
h in mm
h in mm
80
uA = 11V
90
h in mm
100
A.2. Simulationsmodelle in Scilab/Scicos
0.5
1.0
1.5
t in s
2.0
2.5
30
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
t in s
3.0
Abbildung A.3: Messungen zur Identifikation von Pumpe 3
A.2
Simulationsmodelle in Scilab/Scicos
Hier wird das detailierte Simulationsmodell der Strecke mit allen Unterblockschaltbildern
gezeigt. Der Aufbau des in Abb. 4.9 benannten Block Strecke ist in Abb. A.4 dargestellt.
In diesem Blockschaltbild sind die Blöcke Behälter, Sammelbehälter und Pumpe enthalten.
q_zu
h_unten
h
q_ab
q_rueck
Behälter1
h
q_ab
q_rueck
q_zu
h_unten
Behälter2
q_zu
h_unten
h
q_ab
q_rueck
Behälter3
u_A
1
h
Demux
Mux
u_A
h
h_S
q
q
Pumpe2
u_A
h
h_S
q
Pumpe3 +
+
+
+
+
++
−
Pumpe1
u_A
h
h_S
q_zu
q_ab
h_S
Sammelbehälter
Abbildung A.4: Blockschaltbild der Strecke
Deren Aufbau wird in den Abbildungen A.5, A.6 und A.7 gezeigt.
1
A. Anhang
A.2. Simulationsmodelle in Scilab/Scicos
q_zu
+
1
num(s)
h
−K−
1
den(s)
−
h_unten
GENERIC
2
−K−
1/s
q_ab
2
Mux
tank(1).H_next
*
constant1
*
tank(1).H
+
−
q_rueck
3
Mathematical
Product
Expression
constant1
Abbildung A.5: Blockschaltbild eines Tanks
Abbildung A.6: Blockschaltbild des Sammelbehälters
Abbildung A.7: Blockschaltbild einer Pumpe
71
Literaturverzeichnis
[1] Ludwig P.: Regelung des Labormodells Wagen und Pendel mit minimalem Linux basierenden Echtzeitsystem und Open-Source Software, Projektseminar am Institut für
Regelungstechnik und Prozessautomatisierung, JKU Linz, 2009
[2] Fürnhammer T.: Regelung des Labormodells Air Levitated Ball mittels Linux Echtzeitsystem und einer Hardware von National Instruments, Projektseminar am Institut
für Regelungstechnik und Prozessautomatisierung, JKU Linz, 2009
[3] Wieser P.: Drei-Tank-Modell Aufbau, Identifikation und Regelung, Projektseminar am
Institut für Regelungstechnik und Prozessautomatisierung, JKU Linz, 2008
[4] www.debian.org : Homepage des Betriebssystems Debian Gnu/Linux, 30.10.2009 um
06:12
[5] Schlacher K.: Vorlesungsskript aus Automatisierungstechnik II, WS 2009
[6] http://de.wikipedia.org/wiki/RTAI, 12.11.2009 um 14:32
72