Strömungsmechanik und Ausgewählte Kapitel Ausgabe: Oktober 2011

Werbung
Institut fü
ürr
mu n g s m e c h a n i k und
Strööm
Umweltphysik im Bauwesen
Ausgewählte Kapitel
Dipl.-Ing. R. Ratke
Prof. Dr.-Ing. W. Zielke
Ausgabe: Oktober 2011
Institut für
Strömungsmechanik und
Umweltphysik im Bauwesen
Vorlesungs- und Übungsskript
•
Theorie
•
• Mathematik •
• Algorithmen •
R. Ratke / W. Zielke
Hannover – Ausgabe: Oktober 2011
Vorwort
Dieses Skript enthält die theoretischen Grundlagen für eine Reihe von numerischen Modellen und das
dazu benötigte mathematische Handwerkszeug des Ingenieurs. Es ist keinesfalls als auch nur halbwegs
vollständige Zusammenfassung der Vorlesung Prozeßsimulation“ zu verstehen. Zu einigen weiteren
”
Themen wird auf das Skript Strömungsmechanik II verwiesen.
Anders als die Ingenieure früherer Tage sind wir heute in der Lage, auf sehr preiswerten und immer
schnelleren Computern sehr komplexe Vorgänge zu simulieren. Die berechneten Ergebnisse sind oft
so umfangreich, daß sie sinnvoll nur noch graphisch dargestellt werden können – in allen Übungsprogrammen unter MATLAB implementiert. Wir haben uns unter Beschränkung auf Wesentliches bemüht,
die Beispiele klein und einfach zu halten. Entsprechende Programme (und Datenmengen!) aus der
heutigen Baupraxis wären so groß, daß das Detailverständnis darunter leiden müßte. Die zugrunde
liegenden Methoden aber sind dieselben.
Benutzen Sie die Computer-Pools des Fachbereichs! Computersimulation nur aus einem (diesem) Buch lernen zu wollen, stellt sich immer wieder als Unmöglichkeit heraus. Fertigen Sie die Übungsprogramme ganz eigenständig an – nicht in einer Gruppe! Sie werden dabei naturgemäß viele Fehler
machen; das erging uns auch nicht anders. Das Aufspüren und Beseitigen solcher Fehler hat aber den
erwünschten Seiteneffekt, daß Sie sich mit der nicht gerade einfachen Materie sehr vertraut machen!
Wir geben Ihnen in den Übungs- und Sprechstunden gern jede gewünschte Hilfestellung.
An dieser Stelle sei besonders meinem Hilfsassistenten Ulrich Natke gedankt, der die erste Fassung
sehr sorgfältig in LATEX gesetzt hat.
Hannover, im September 2001
Inhaltsverzeichnis
A Einführung
1
A.1 Typische Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
A.2 Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
A.3 Drei Grundaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
A.4 Deduktion und Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
A.4.1 Herleitung der Modelle über Deduktion . . . . . . . . . . . . . . . . . . . . . .
6
A.4.2 Herleitung der Modelle mittels Induktion . . . . . . . . . . . . . . . . . . . . .
6
A.4.3 Beispiel: Masse-Feder-System . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
A.5 Das Spektrum von Modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
B Netzwerke: Einführung
9
B.1 Lineares Widerstandsnetzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
B.1.1 Modellannahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
B.1.2 Zur Problembeschreibung notwendige Daten . . . . . . . . . . . . . . . . . . . .
11
B.2 Zur Netzwerktopologie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
B.2.1 Knoten-, Element- und Maschenanzahl . . . . . . . . . . . . . . . . . . . . . . .
12
B.3 Aufgabenstellung – Lösungswege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
B.3.1 Grundgleichungen zum Widerstandsnetzwerk . . . . . . . . . . . . . . . . . . .
13
B.3.2 Das element- und maschenorientierte Verfahren
. . . . . . . . . . . . . . . . .
14
B.3.3 Das knotenorientierte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . .
15
B.4 Knoten- oder maschenorientiert? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
B.4.1 Maschenorientiertes Verfahren – Vorteile
. . . . . . . . . . . . . . . . . . . . .
17
B.4.2 Vorteile des knotenorientierten Verfahrens . . . . . . . . . . . . . . . . . . . . .
i
17
C Nichtlineares Netzwerk: Rohrsysteme
19
C.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
C.1.1 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
C.1.2 Elemente von Rohrsystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
C.2 Stationäre Berechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
C.2.1 Hydraulische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
C.2.2 Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
C.2.3 Iterationsalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
C.3 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
C.4 Anhang: SRS - Programmbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
C.4.1 Eingabebeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
C.4.2 Speicherplan zu SRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
C.4.3 Kurzbeschreibung einiger Unterprogramme . . . . . . . . . . . . . . . . . . . .
42
C.4.4 Includefile für den Gleichungslöser . . . . . . . . . . . . . . . . . . . . . . . . .
44
D Handwerkszeug I: Lineare Gleichungssysteme
45
D.1 Generelles Vorgehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
D.1.1 Staffeln der Koeffizientenmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
D.1.2 Lösung von A · x = r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
D.1.3 Zeitaufwand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
D.2 Gaußsches Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
D.3 Cholesky-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
D.3.1 Effiziente Speicherung von A und O . . . . . . . . . . . . . . . . . . . . . . . .
50
D.4 Anhang: Programmbeispiel Choleskylöser . . . . . . . . . . . . . . . . . . . . . . . . .
54
D.5 Iterative Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
D.5.1 Grundidee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
D.5.2 Methode des stärksten Abstiegs . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
D.5.3 Konjugierte Gradienten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
D.5.4 Konjugierte Gradienten mit Vorkonditionierung . . . . . . . . . . . . . . . . . .
63
D.6 Optimale Knotennumerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
D.6.1 Cuthill-McKee-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
D.6.2 Rückwärtsnumerierung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
D.6.3 GPS-Verfahren (Gibbs, Poole, Stockmeyer) . . . . . . . . . . . . . . . . .
66
D.6.4 Relaxation (Rosen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
D.6.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
67
E Nichtlineares Netzwerk: Fachwerk, Theorie 2. Ordnung
71
E.1 Fachwerkstab nach linearer Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
E.1.1 Bezeichnungen am Stabelement . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
E.1.2 Geometrie, Transformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
E.1.3 Materialgesetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
E.1.4 Lineare Elementsteifigkeitsmatrix . . . . . . . . . . . . . . . . . . . . . . . . . .
73
E.1.5 Gesamtsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
E.2 Nichtlinearitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
E.2.1 Große Verschiebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
E.2.2 Nichtlineares Materialgesetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
E.3 Übungsaufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
E.3.1 Algorithmische Aufbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
E.4 Vergleich knotenorientierter Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
F Verkehrssimulation
79
F.1 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
F.2 Diskretisierung des Untersuchungsraumes . . . . . . . . . . . . . . . . . . . . . . . . .
80
F.3 Verkehrsverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
F.3.1 Zusammenhänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
F.3.2 Gravitationsmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
F.3.3 Splitmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
F.3.4 Iterationsschema I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
F.3.5 Bilineares Gleichungssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
F.3.6 Konvergenzverbesserung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
F.3.7 Durchschnittsfaktormethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
F.3.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
F.4 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
F.4.1 Bemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
G Kalibrierung
93
G.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
G.2 Gütekriterium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
G.2.1 Größter Absolutbetrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
G.2.2 Summe der Beträge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
94
G.2.3 Fehlerquadratmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
G.3 Ein einfaches Schachtelungsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
G.3.1 Pseudocode zur Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
G.4 Newton-Iteration: Kalibrierung bei Verkehrsverteilung . . . . . . . . . . . . . . . . . .
98
G.4.1 Fehlerquadrat und Distanzempfindlichkeit α . . . . . . . . . . . . . . . . . . . .
99
G.4.2 Näherungsansatz für das Fehlerquadrat . . . . . . . . . . . . . . . . . . . . . . 100
G.5 Gauß-Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
H Handwerkszeug II: Integration gewöhnlicher Differentialgleichungen
101
H.1 Adams-Bashfort-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
H.2 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
H.2.1 Formeln für n=2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
H.2.2 Formelsatz 3. Ordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
H.2.3 Formelsatz 4. Ordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
H.2.4 Anwendung auf Systeme gewöhnlicher DGln
. . . . . . . . . . . . . . . . . . . 104
H.2.5 Fehlerabschätzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
H.3 Steife Systeme
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
H.3.1 Das Verfahren dritter Ordnung nach Jonas . . . . . . . . . . . . . . . . . . . . 105
H.3.2 Ein Halbierungsverfahren vierter Ordnung (Jonas) . . . . . . . . . . . . . . . . 106
H.3.3 Anwendung auf den Einmassenschwinger . . . . . . . . . . . . . . . . . . . . . 106
H.4 Praktische Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
I
Klärwerkssimulation
111
I.1
Möglichkeiten der Modellbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
I.2
Ein nulldimensionales Teilmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
I.2.1
Systemkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
I.2.2
Wachstumsgleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
I.2.3
Belüftung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
I.2.4
Diskretisierung des Modells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
J Differenzenverfahren I
115
J.1
Gerinnequerschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
J.2
Explizite Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
J.2.1
Instabiles Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
J.2.2
Diffusives (Lax-) Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
iv
J.3
J.2.3
Upstream-Differenzenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
J.2.4
Leap-Frog-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
J.2.5
Lax-Wendroff-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
J.2.6
Behandlung von Randbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . 120
Implizite Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
J.3.1
J.4
J.5
Stabilität und Genauigkeit
J.7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
J.4.1
Courant-Friedrichs-Lewy-Kriterium . . . . . . . . . . . . . . . . . . . . . . . . . 129
J.4.2
Eine Stabilitätsanalyse
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Ergänzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
J.5.1
J.6
Das Preissmann-Schema
Ordnung des Diskretisierungsfehlers . . . . . . . . . . . . . . . . . . . . . . . . 135
Ergänzung: Charakteristiken-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
J.6.1
Die einfache Welle im Gerinne mit Normalabfluß . . . . . . . . . . . . . . . . . 137
J.6.2
Einfache Welle mit Reflektionen . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
K Differenzenverfahren II: Transport in Fließgewässern
143
K.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
K.2 Eindimensionale Transportgleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
K.2.1 Advektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
K.2.2 Diffusion und Dispersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
K.2.3 Anfangs- und Randbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . 148
K.3 Numerische Lösungsschemata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
K.3.1 Zentrale Differenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
K.3.2 Upstream-Schema für Advektion . . . . . . . . . . . . . . . . . . . . . . . . . . 152
K.3.3 Nichtreflektierende Randbedingung am Ausstromrand . . . . . . . . . . . . . . 153
K.3.4 Numerische Dispersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
L Diskrete Simulation: Zellulare Automaten
155
L.1 Was sind zellulare Automaten? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
L.1.1
Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
L.2 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
L.2.1
Formale Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
L.2.2
Gittergeometrien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
v
L.2.3
Nachbarschaftsbeziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
L.2.4
Zustände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
L.2.5
Ränder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
L.3 Das Lebensspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
L.3.1
Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
L.3.2
Beobachtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
L.4 Stausimulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
M Handwerkszeug III: Hilfsmittel für Finite Elemente
161
M.1 Natürliche Koordinaten für Dreiecke . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
M.1.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
M.1.2 Ableitung der Flächenkoordinaten . . . . . . . . . . . . . . . . . . . . . . . . . 163
M.2 Partielle Integration, Gauß-Greenscher Satz . . . . . . . . . . . . . . . . . . . . . . . . 163
M.3 Numerische Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
M.3.1 Algebraische Darstellung für n = 2, 3
. . . . . . . . . . . . . . . . . . . . . . . 165
M.4 Allgemeines bilineares Viereckselement . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
M.4.1 Einheitsviereck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
M.4.2 Formfunktionen im Einheitsviereck . . . . . . . . . . . . . . . . . . . . . . . . . 166
M.4.3 Differentialbeziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
M.5 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
N Stationäre Grundwasserströmung
169
N.1 Theorie der Grundwasserströmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
N.1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
N.1.2 DGl für Standrohrspiegelhöhen h . . . . . . . . . . . . . . . . . . . . . . . . . . 171
N.2 Finite Element Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
N.2.1 Einfaches lineares Dreieckselement . . . . . . . . . . . . . . . . . . . . . . . . . 172
N.2.2 Kontinuitätsbedingung im Finite-Element-Netz . . . . . . . . . . . . . . . . . . 174
N.3 Verallgemeinerung des FE-Verfahrens
. . . . . . . . . . . . . . . . . . . . . . . . . . . 176
N.3.1 Linearer Ansatz in Flächenkoordinaten: . . . . . . . . . . . . . . . . . . . . . . 176
N.3.2 Residuenminimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
N.3.3 Durchführung des Verfahrens von Galerkin . . . . . . . . . . . . . . . . . . . . 178
N.4 Ein einfaches Viereckselement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
N.5 Bilineares Viereckselement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
vi
N.6 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
N.6.1 Erste Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
N.6.2 Eckströmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
N.6.3 Umströmung einer Spundwand . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
O Interpolation von Funktionswerten
185
O.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
O.2 Bestimmung der Koeffizienten ck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
O.3 Skalierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
O.3.1 Normierung der xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
O.3.2 Vorskalierung der xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
O.3.3 Normierung des Systems und Genauigkeit . . . . . . . . . . . . . . . . . . . . . 187
O.4 Testbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
P MATLAB – Kurzanleitung
P.1 Was ist Matlab?
189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
P.1.1
Studentenversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
P.1.2
Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
P.2 Operatoren und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
P.2.1
Allgemeine Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
P.2.2
Dateien, Ein- und Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
P.2.3
Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
P.2.4
Matrix-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
P.2.5
Mathematische Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
P.2.6
Textvariablen und -Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
P.2.7
Steuerungskonstrukte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
P.2.8
Graphik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
vii
Kapitel A
Einführung
- 1 -
KAPITEL A - Einführung
A.1
Typische Vorgehensweise
Schadstoffausstoß aus
einer Fabrik
..
.
λ =
64
Re
(laminar)
2.51
√ + k
= −2log Re
3.71d
λ
..
.
..
.
100 IF (RE .LE. 2320) THEN
LAMBDA = 64/RE
ELSE
CALL TURB
&
(RE,K,D,LAMBDA)
END IF
..
.
bzw.
√1
λ
Tests und
Verifikation
Simulation
politische
Entscheidungen
- 2 -
A.1. Typische Vorgehensweise
Einordnung des Problems
Nr.
Fragestellung
Kurzantwort
1.
Wie ist die Fragestellung?
2.
Welche Informationen muß
das Ergebnis enthalten?
3.
Welche Informationen stehen
zur Verfügung?
4.
Wem wird das Ergebnis
vorgelegt?
5.
Welche Entscheidungen sind
auf Grundlage der Ergebnisse
zu treffen?
6.
Wer trifft die Entscheidungen
auf Basis der Modellresultate?
- 3 -
KAPITEL A - Einführung
A.2
Begriffe
Die Prozeßsimulation umfaßt die mathematische Modellierung und die Computersimulation von
Ingenieuraufgaben und technisch-wissenschaftlichen Systemen aller Art.
Nachfolgend werden einige häufig gebrauchte Begriffe vorgestellt und erläutert.
Ein Modell repräsentiert einen Ausschnitt der (zum Teil auch nur gedachten) Wirklichkeit. Dieser
Ausschnitt wird soweit wie erforderlich möglichst exakt durch das Modell beschrieben. Da für den
vorgesehenen Zweck nicht alle Aspekte berücksichtigt werden können und sollen! (s. u.), ist ein solches
Modell mehr oder weniger abstrakt; es ist auf die wesentlichen Gesichtspunkte beschränkt.
Ein Modell dient immer bestimmten Zwecken, als da sind:
• Vorhersage (z.B. Wetter, Einflüsse auf die Umwelt)
• Konstruktion (Finite Elemente in der Statik)
• Numerisches Experiment (um eine neue These zu untermauern)
• Entscheidungsfindung (wirtschaftlich, politisch)
Zur Beschreibung von Modellen sind natürliche Sprachen wegen ihrer inhärenten Mehrdeutigkeiten ungeeignet. Die Formelsprache der Mathematik, Physik und Technik ist dagegen anwendbar; ihr
festes und unzweideutiges Regelwerk erlaubt die Umformung von Ausdrücken in vielfacher und nachvollziehbarer Weise. Das gilt auch für unscharfe“ Formulierungen (Fuzzy-Logik). Ihre richtige (d.h.
”
hier regelkonforme) Umsetzung in Programmiersprachen (ForTran, Pascal, C) ermöglicht dann
Computersimulationen.
Eigenschaften von Systemen
• Begrenzung räumlich und zeitlich (Ausschnitt aus der Wirklichkeit, für einen bestimmten
Vorhersagezeitraum; u.U. ist auch Unendlichkeit eine Grenze!)
An den räumlichen Grenzen müssen Randbedingungen, am Beginn der Simulationszeit Anfangswerte vorgegeben sein.
Die Komponenten des Systems sind abzählbar.
• Beobachtbarkeit Ein System ist vollständig charakterisiert durch Sätze von
INPUTs (Einwirkungen auf das System) und OUTPUTs (Systemreaktionen).
• Separierbarkeit (Abstraktion) Die meisten der Einflüsse von außen können ignoriert werden.
Die Vorgänge, die das System beschreibt, müssen unabhängig von denen sein, die es nicht beschreibt.
(Trifft das für einen bestimmten Einfluß oder Vorgang nicht zu, muß das System erweitert
werden!)
• Nebenbemerkung (Übersichtlichkeit): Modelle für einen gewissen Zweck sollen nicht die Vorgänge
enthalten, die mit diesem Modell nicht untersucht werden sollen.
- 4 -
A.3. Drei Grundaufgaben
• Kausalität
OUTPUT darf dem INPUT zeitlich nie vorangehen!
INPUT
- SYSTEM
- OUTPUT
(Einwirkung, Ursache)
(Reaktion, Wirkung)
INPUT und OUTPUT müssen durch eine plausible kausale Kette verknüpft sein, die durch
den anerkannten Stand der Technik — mindestens jedoch durch den Stand der Forschung! —
gestützt wird.
Wo vom Ingenieurstandpunkt ein Kausalzusammenhang nicht gegeben ist, können kein System
und kein Modell gebildet werden, die Simulation ist unmöglich.
A.3
Drei Grundaufgaben
Typ
Analyse
(direkt)
Synthese
(inverses
Problem)
Steuerung
INPUT
gegeben
System
INPUT
INPUT
OUTPUT
gesucht
OUTPUT
Anmerkungen
eindeutiges Ergebnis
System
System
OUTPUT
INPUT
mehrdeutig
(Auch Eichung eines
direkten Problems)
mehrdeutig
- SYSTEM
- OUTPUT
Rückkopplung
(Einwirkung, Ursache)
(Reaktion, Wirkung)
- 5 -
KAPITEL A - Einführung
A.4
Deduktion und Induktion
A.4.1
Herleitung der Modelle über Deduktion
• Gesetze und Prinzipien als gesicherte Basis:
– Erhaltungssätze der Mechanik
konzeptionelles Modell
z.B. Widerstandsnetzwerk
(nächstes Kapitel)
– Newtons Gesetz
– Kontinuität
geben den Typ der zu lösenden Differentialgleichungen vor.
• Die zu untersuchende Struktur mit
– Beschreibung der Berandung und Komponententopologie
– Art der Komponenten und Parameter
bestimmt spezielle Terme der Gleichungen.
• Aus den Zahlenwerten der Parameter resultieren schließlich die Koeffizienten der Gleichungen.
• Durch Eichung von bisher nicht festgelegten Parametern kann eine verbesserte Übereinstimmung
der Simulation mit dem beobachteten Systemverhalten erreicht werden und damit einhergehend
auch meistens eine verbesserte Prognosefähigkeit.
A.4.2
Herleitung der Modelle mittels Induktion
• Daten sammeln:
– Experimentieren, Messen, Beobachten von In- und Outputs
• Empirische Formeln:
empirisches Modell
z.B. Klärwerkssimulation
(Kapitel I)
– Interpolation, Mustererkennung
– Regressionsanalyse
• Generalisierung:
– Bestimmung der Charakteristika
– Parameteridentifikation
• Gebrauch:
– Vergleich Modell und Beobachtung, Verbesserung des Modells
– Prognose
- 6 -
A.4. Deduktion und Induktion
A.4.3
Beispiel: Masse-Feder-System
Die Differentialgleichung
6 H
HH
l0 HH
H
? C
6 HHH
z HH
H
?
z
?
m
C
l0
z
~m
Masse
Federkonstante
Federlänge
(spannungsfrei)
Anfangsauslenkung
0=
X
|
{z
Fz
=
mg
|{z}
}
Gleichgewicht
Erdanziehung
− |{z}
Cz −
Hooke
mz̈
|{z}
Newton
ist abgeleitet aus
• Annahmen: kein Luftwiderstand
masselose, linear elastische Feder
• Kräftegleichgewicht und Newtons Gesetz, deduktiv
• Hookeschem Gesetz und Konstanten, induktiv, empirisch
• Randbedingungen: zt=0 = z,
żt=0 = 0
Die Lösung
mg
mg
+ z−
cos(ωt)
z=
C
C
s
mit ω =
C
m
stellt ein unter den getroffenen Annahmen äußerst zuverlässiges
mathematisches Modell dar, da die Koeffizienten sehr genau bestimmbar sind.
Verallgemeinerung
Die Modellbildung erfolgt meist als Kombination aus
• Deduktion, die den Aufgabentyp direkte Analyse mit eindeutiger Lösung verkörpert,
• und Induktion, die auf ein nicht eindeutig lösbares inverses Problem führt. Die Datenbasis für
diesen Teil deckt selten den gesamten zu untersuchenden Bereich ab und wird daher in der Regel
extrapoliert.
Folgerung: Je deduktiver ein Modell abgeleitet wurde, um so wertvoller ist es für Vorhersagen!
- 7 -
KAPITEL A - Einführung
A.5
Das Spektrum von Modellen
Modelle für:
Elektrische Schaltkreise
Dynamik
Ökonomie
Kernreaktoren
Medizin
Soziales
Luftverschmutzung
Statik
Hydrologische Probleme
Politik
Verwendung zu:
Konstruktion
Erstellen von Szenarien
Sicherheitsstudien
Testen von Theorien
Propaganda
Optimierung
Experimentieren
- 8 -
Kapitel B
Netzwerke: Einführung
- 9 -
KAPITEL B - Netzwerke: Einführung
Netzwerke kommen in vielen technischen Anwendungen vor. Beispiele sind Rohrleitungssysteme und
verzweigte Gerinne, elektrische Schaltkreise und im weitergefaßten Sinn auch Fach- oder Rahmentragwerke. Zur Einführung wird hier ein Netzwerk aus Ohmschen Widerständen behandelt. Wenn auch
für Bauingenieure kaum von praktischer Bedeutung, ist es sehr leicht zu verstehen. Die Gleichungen
sind simpel (U = RI) und die Programmstrukturen sind im Prinzip für alle Arten von Netzwerken
verwendbar.
B.1
Lineares Widerstandsnetzwerk
4
-80 V
300 Ω
-
I04
0
|
1
|
50 Ω
1.6 A
-
I01
6
I20
6
200 Ω
500 Ω
100 Ω
I31
-
I21
2
|
2.0 A
3
340 V
200 Ω
-
I23
5
0V
500 Ω
-
I25
B.1.1
Modellannahmen
• Die Widerstände seien konstant, ändern sich also nicht mit der Temperatur bzw. mit dem durchfließenden Strom.
• Die Anschlußleitungen haben keinen Widerstand.
• Stationäre Berechnung, zeitlich unveränderliche Randbedingungen.
- 10 -
B.1. Lineares Widerstandsnetzwerk
B.1.2
Zur Problembeschreibung notwendige Daten
• Systembeschreibung:
Lage und Größe aller Widerstände. Da es auf Längen nicht ankommt, benötigt man für jeden
Widerstand nur die Bezeichnungen der Anschlußpunkte. Diese werden (Netz-) Knoten genannt.
Mit der Reihenfolge der beiden Knoten kann auch die positive Stromrichtung festgelegt werden.
• Randbedingungen:
Für mindestens einen Knoten das Potential (Spannung U gegenüber Null).
An weiteren Knoten kann entweder das Potential oder eine von außen zufließende Stromstärke
Iein vorgegeben werden.
Die nachfolgenden Daten beschreiben das auf der vorigen Seite skizzierte Beispiel vollständig:
WIDERSTANDSNETZWERK - BEISPIEL 0
4
300.
Anfangsknoten, Endknoten, Widerstand
3
1
100.
2
0
200.
0
1
50.
2
5
500.
2
3
200.
2
1
500.
-1
Endekennung (negative Knotennummern nicht erlaubt)
1
1.6
Knoten, Potential / Einspeisung
2
-2.0
3
340.0
4
-80.0
5
0.0
-1
Endekennung
- 11 -
KAPITEL B - Netzwerke: Einführung
B.2
Zur Netzwerktopologie
Man unterscheidet gestreckte, verzweigte und vermaschte Systeme:
t
t
t t
t
t
t
t t
gestreckt
B.2.1
t
t
t
@
t
t
t t
t
@
@t
t
t
baumartig verzweigt
t
t
t
t t
@
@
t
t
t
t @t
t
@
@
@
@t
@t
t @
vermascht
Knoten-, Element- und Maschenanzahl
Von einem Startknoten ausgehend lassen sich die beiden linken Systeme dadurch erzeugen, daß an
einen schon vorhandenen Anfangsknoten ein neues Element mit einem ebenfalls neuen Endknoten
angefügt wird.
Hier gilt also:
(Knotenanzahl) n = 1 + m (Anzahl der Verbindungselemente)
Hängt man zwischen schon bestehende Knoten solcher Systeme weitere Elemente ein, erhält man
vermaschte Systeme. Jedes so eingefügte Element erzeugt eine neue Elementarmasche. In einem
vermaschten System sind nicht alle Maschen (das sind geschlossene Wege durch das System) auch
Elementarmaschen:
yXX
X
XX
XXX A
x
X
X
X
XXX XXXX
AA
XXX
yXX XXX
A X
X
X
X
A
XX
K
XX Xx A
A A
B
A
AA A
A
A
A
A
A
A
C
A A A
A A AA
A U A
AA x
x A
-
Nur zwei der drei geschlossenenen Wege A, B und C sind Elementarmaschen. Die erste davon kann beliebig gewählt werden. Aus der gewählten Masche ist nun eines ihrer Elemente wegzudenken. Danach bleibt
nur eine weitere Masche übrig;
welche das ist, hängt von dem
entfernten Element ab.
Allgemein gilt:
n + e (Anzahl der Elementarmaschen) = 1 + m
- 12 -
(B.1)
B.3. Aufgabenstellung – Lösungswege
B.3
Aufgabenstellung – Lösungswege
Zu berechnen sind:
• Die n Potentiale oder Einspeisungen Iein aller Knoten. (Eine der beiden Größen ist als Randbedingung vorzugeben.)
• Die m Ströme durch alle Verbindungselemente (Widerstände)
• optional: m Spannungen und Verlustleistungen an den Widerständen
B.3.1
Grundgleichungen zum Widerstandsnetzwerk
An jedem Widerstand i − k gilt das Ohmsche Gesetz:
∆U
Ui − Uk
Iik
= I ∗R
(B.2)
= Iik ∗ Rik
= (Ui − Uk )/Rik
(B.3)
m Elementgleichungen
An jedem Knoten i gilt die Kontinuitätsgleichung:
Ieini
=
X
Iik
(B.4)
(Ui − Uk )/Rik
(B.5)
k
=
X
k
n
Knotengleichungen
Die Summe der Spannungen auf jedem geschlossenen Weg (Masche) ist Null!
e
(B.6)
(Elementar-)Maschengleichungen
Hilfsmaschen: Die Summe der Spannungen auf jedem Weg zwischen zwei Knoten
mit vorgegebenen Potentialen ist die Differenz dieser Potentiale!
h
Hilfsmaschengleichungen
- 13 -
(B.7)
KAPITEL B - Netzwerke: Einführung
B.3.2
Das element- und maschenorientierte Verfahren
Als primäre Unbekannte werden die m Ströme Iik gewählt. Die Knotengleichungen (B.4) des eingangs skizzierten Netzwerks lauten:













+1.0
0
−1.0 +1.0
0
0
0




0
−1.0
0
−1.0
0
0
−1.0 




0
0
+1.0
0
+1.0 +1.0 +1.0 

 ∗


0
+1.0
0
0
0
−1.0
0 



−1.0
0
0
0
0
0
0 


0
0
0
0
−1.0
0
0
Ak
I0 4
I3 1
I2 0
I0 1
I2 5
I2 3
I2 1


I

 ein0

 I

 ein1

 I



 =  ein2
 I

 ein3

 I


 ein4

Iein5
∗ I











=E
(B.8)
Die Matrix Ak , die die Richtungen der an den jeweiligen Knoten i angeschlossenen Elemente wiedergibt, ist einfach singulär. (Jede Zeile ist die negative Summe aller anderen.) Das bedeutet, daß
mindestens eine der Zeilen nicht brauchbar ist. Weiter sind die Gleichungen derjenigen Knoten nicht
benutzbar, an denen eine U -Randbedingung vorgegeben ist, weil dort der eingespeiste Strom nicht
vorgegeben werden darf – die rechte Seite also unbekannt ist (Knoten 3, 4 und 5). Es stehen hier also
nur die ersten drei Gleichungen zur Verfügung.
Mit den Maschengleichungen (B.6),(B.7) der Elementarmaschen 0 − 2 − 3 − 1 − 0 und 2 − 3 − 1 − 2
bzw. der Hilfsmaschen 3 − 2 − 0 − 4 und 3 − 2 − 5 wird das Gleichungssystem zur Ermittlung der 7
unbekannten Ströme vervollständigt:


Em.




Hm. 
0
R3 1 −R2 0 −R0 1
0
R2 3
0
0
R3 1
0
0
0
R2 3 −R2 1
R0 4
0
R2 0
0
0
−R2 3
0
0
0
0
0
R2 5 −R2 3
0






Am






∗





I0 4
I3 1
I2 0
I0 1
I2 5
I2 3
I2 1





0.0




0.0

 =
 U −U

4
 3


U3 − U5


∗ I
= ∆U






(B.9)
Das globale Gleichungssystem ist damit zahlenmäßig:












1.0
0.0
0.0
0.0
0.0
300.0
0.0
0.0
-1.0
0.0
100.0
100.0
0.0
0.0
-1.0
0.0
1.0
-200.0
0.0
200.0
0.0
1.0
-1.0
0.0
-50.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
1.0
0.0 200.0
0.0 200.0
0.0 -200.0
500.0 -200.0
0.0
-1.0
1.0
0.0
-500.0
0.0
0.0











 ∗











A
- 14 -

I0 4
I3 1
I2 0
I0 1
I2 5
I2 3
I2 1
∗ I













 =










=B
0.0
1.6
-2.0
0.0
0.0
420.0
340.0












(B.10)
B.3. Aufgabenstellung – Lösungswege
Das unsymmetrische Gleichungssystem kann nun mit dem Gauss’schen Algorithmus aufgelöst
werden. Die ungünstige Struktur der Koeffizientenmatrix A
• Die Hauptdiagonalglieder überwiegen nicht, sind sogar teilweise Null!
• Den Koeffizienten der Knotengleichungen mit dem Betrag 1.0 stehen in den Maschengleichungen die
Zahlenwerte der Widerstände gegenüber. Es können daher leicht Größenordnungsunterschiede von 106
auftreten (Netzwerk mit MΩ-Widerständen).
erfordert, daß eine Pivotsuche (mit Spalten und Zeilentausch) durchgeführt wird.
In einem Nachlauf werden die Spannungen an den Widerständen berechnet sowie sukzessive die Potentiale Ui aller Knoten, ausgehend von den Knoten, an denen diese schon bekannt sind. Zur Kontrolle
können die eingespeisten Ströme Ieini durch knotenweise Summation der Elementströme Iik ermittelt
und ausgegeben werden.
Das Verfahren ist wegen der nicht mit einfachem Schema durchführbaren Ermittlung der
Elementar- und Hilfsmaschen sowie der unsymmetrischen Koeffizientenmatrix relativ aufwendig!
B.3.3
Das knotenorientierte Verfahren
Als primäre Unbekannte werden die n Potentiale Ui gewählt. Es werden die Knotengleichungen
(B.5) benutzt, die durch Einsetzen der Elementgleichungen (B.3) in die Form (B.4) entstehen.
 P
k
L0k

 −L
10



 −L20



0


 −L40

0
−L01
P
k
L1k
−L21
−L02
0
−L04
0
−L12
−L13
0
0
−L23
0
−L25
0
0
P
k
L2k
−L31
−L32
0
0
0
L40
0
0
−L52
0
0
L52
P
k
L3k





Iein0


 I

 ein1 

U0





U1 






 U 
 Iein2



2

 ∗
=



 U3 
 Iein3









U
 4 
 I

 ein4

U
5










Iein5
mit den Leitfähigkeiten Lik = Lki = 1.0/Rik
L
∗ U
= E (B.11)
zahlenmäßig (Beispiel wie oben):









0.0283
-0.020
-0.005
0.0
-0.0033
0.0
-0.020
0.032
-0.002
-0.010
0.0
0.0
-0.005
-0.002
0.014
-0.005
0.0
-0.002
0.0
-0.010
-0.005
0.015
0.0
0.0
-0.0033
0.0
0.0
0.0
0.0033
0.0
0.0
0.0
-0.002
0.0
0.0
0.002











 ∗







U0
U1
U2
U3
U4
U5












 =








Iein0
Iein1
Iein2
Iein3
Iein4
Iein5











Die Koeffizientenmatrix L ist symmetrisch, ihre Hauptdigonalglieder sind positiv und die Zeilensummen sind Null. Sie ist aber noch singulär (alle Spaltensummen sind Null), was durch Einarbeiten
von U -Randbedingungen beseitigt wird.
- 15 -
KAPITEL B - Netzwerke: Einführung
B.3.3.1
Berücksichtigung der Randbedingungen
Einspeisungen werden direkt in die rechte Seite eingespeichert. Die zu einer U -Randbedingung gehörende Spalte von A wird mit dieser ausmultipliziert und das Produkt von beiden Seiten des Gleichungssystems abgezogen. Die Spalte wird zu Null gesetzt. Einspeisungen werden direkt in die rechte Seite
aufaddiert:









zahlenmäßig
0.0283 -0.020
-0.020
0.032
-0.005
-0.002
0.0
-0.010
-0.0033
0.0
0.0
0.0
(Beispiel
-0.005
-0.002
0.014
-0.005
0.0
-0.002
wie oben):
0.0
 1.6
 



U0
 -2.0



 
 ∗  U1  =  I
 ein3



U2
 Iein4

Iein5
 0.0
-0.010

-0.005

− 
 0.015

 0.0
0.0











-0.0033
0.0
0.0
0.0
0.0
-0.002
0.0
0.0
0.0033
0.0
0.0
0.002

 


340.0

 
 ∗ -80.0 


0.0

Die letzten Zeilen des Systems sind unbrauchbar wegen der unbekannten Einspeisungen Ieinj . Um den
Aufwand gering zu halten, kann für jeden Knoten j mit U -Randbedingung formal geschrieben werden:
1.0 ∗ Uj = vorgegebener Wert. Damit werden die nicht mehr benötigten Teile des Gleichungssystems
überschrieben:









0.0283
-0.020
-0.005
0.0
0.0
0.0
-0.020
0.032
-0.002
0.0
0.0
0.0
-0.005
-0.002
0.014
0.0
0.0
0.0
0.0
0.0
0.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0



 
 
 
 
∗
 
 
 

U0
U1
U2
U3
U4
U5

 -0.267

 
5.0
 
  -0.3
 
=
  340.0
 
  -80.0










0.0
Das positiv definite und symmetrische System kann jetzt mit einem zweckmäßigen Algorithmus (z.B.
nach Cholesky) aufgelöst werden. Danach sind alle Knotenpotentiale bekannt, in einem Nachlauf
über alle Elemente werden anschließend alle gewünschten Zustandsgrößen an den Elementen berechnet.
- 16 -
B.4. Knoten- oder maschenorientiert?
B.4
B.4.1
Knoten- oder maschenorientiert?
Maschenorientiertes Verfahren – Vorteile
• Dieses Verfahren bietet eventuell Vorteile bei weitverzweigten Systemen mit wenigen Maschen.
• Das System kann verkleinert werden, in dem hintereinander liegende Elemente zu einem Ersatzelement zusammengefaßt werden – nur möglich, wenn keine Randbedingungen im Strang
vorgegeben sind. Zweige, an deren einem Ende eine Einspeisung vorgegeben ist, dürfen entfernt
werden.
• Das Verfahren eignet sich für Handrechnung: Man wählt dazu als Elementarmaschen die mit
den größten Leitfähigkeiten, entfernt dann daraus immer das Element mit dem größten Widerstand. Die mit diesem nun unvermaschten Hauptsystem berechenbare Startlösung kann nun
durch Iteration der Maschengleichungen (Cross-Verfahren) verbessert werden.
B.4.2
Vorteile des knotenorientierten Verfahrens
• Schematischer, übersichtlicher Aufbau der Gleichungen ohne Maschenermittlung und Wahl eines
Hauptsystems – besonders geeignet für die Programmierung!
• Symmetrisches Gleichungssystem mit verringertem Speicherbedarf.
• Unkomplizierte Nachlaufrechnung, da alle Eingangsgrößen dann schon bekannt sind.
- 17 -
frei für Notizen
Kapitel C
Nichtlineares Netzwerk: Rohrsysteme
- 19 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.1
Einleitung
• Fernleitungen für Öl, Erdgas, Wasser, Kohle-Wasser, Sand-Wasser
• Wasserversorgungsnetze, Abwasserpumpsysteme
• Fernwärmesysteme
• Verfahrenstechnische Anlagen - Chemie
• Kühlkreisläufe in Kraftwerken
• Riser für Erdöl, Erdgas (Meerestechnik)
• Wasserkraftanlagen, insbesondere Hochdruckstollen
C.1.1
Aufgaben
Transport von flüssigen oder gasförmigen, z.T. auch festen Stoffen (z.B. Kohle in Wasser, Sand in
Wasser)
C.1.2
Elemente von Rohrsystemen
• Rohrleitungen (Stahl, Beton, Kunststoffe)
• Pumpen, Turbinen
• Absperr- und Regelungssysteme (Klappen, Schieber, Drosseln, Ventile)
• Rückschlagklappen, -ventile
• Be- und Entlüftungsventile
• Windkessel
• Wasserschlösser
• Krümmer
• Übergangsteile
- 20 -
C.2. Stationäre Berechnung
C.2
Stationäre Berechnung
C.2.1
Hydraulische Grundlagen
C.2.1.1
Rohrleitung
Energielinie
Drucklinie
α
Verlusthöhe hv
v22
α
2g
v12
2g
p2
ρg
p1
ρg
z1
Energiehöhe:
z2 piezometrische
Druckhöhe h2
D
Rohrachse
geod. Bezugsniveau
hE
=
z+
p
v2
+α
ρg
2g
| {z }
h
piezometrische Druckhöhe:
h
z+
=
p
ρg
v2
α
2g
hE1 − hE2 ' h1 − h2
Druckhöhe:
Geschwindigkeitshöhe:
hv
Verlusthöhe:
p
ρg
=
Rechengröße
Überdruck p
vernachlässigbar
a) laminare Strömung
wird durch ein lineares Widerstandsgesetz beschrieben:
hv
=
32 lν
128 lν
v=
Q
2
gD
gπD4
kinematische Zähigkeit ν
Re
=
vD
< 2300
ν
Reynoldszahl Re
für
- 21 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
b) turbulente Strömung, Darcy-Weisbach
8 lQ2
l |v|
l |Q|
lv 2
=λ 2 5 =λ
Q=λ
Q
2gD
gπ D
2gAD
2gA2 D
1
2.51
k/D
1
√
√ +
⇐ −2 log
zum Iterieren von √
3.71
λ
Re λ
λ
1
1
k
+ 1.14
⇒ λ=
Re → ∞ ⇒ √ = −2 log
D
λ
(1.14 − 2 log (k/D))2
hv
=
h1 − h2 = λ
(C.1)
(C.2)
(C.3)
Wird λ unabhängig von Re, ist das Widerstandsgesetz streng quadratisch, sonst annähernd quadratisch. Gl. (C.3) gibt brauchbaren Startwert für Iteration (C.2) bei kleineren Re.
c) turbulente Strömung, Hazen-Williams
hv =
10.675 l
Q1.852
cHW 1.852 D4.87
Wird in angelsächsischen Ländern für Wasserversorgungsleitungen verwendet. Von Material und Verkrustung abhängige Rohrrauhigkeitsbeiwerte cHW sind tabelliert.
hv = KQn ;
d) Allgemeine Gleichung:
1/n
Q − s = khv
√
mit K = 1/k n und k = 1/ n K
= k|hv |1/n−1 hv = r(h1 − h2 )
|
2gA2 D
r=
λl |Q|
1/n
Q = khv
{z
r
s = 0
bei Rohrleitung
}
für Rohr nach Darcy-Weisbach
und laminare Strömung mit λ = 64/Re
(aus Umformung von Gl. (C.1))
n
K
√
k = 1/ n K
1
128νl
gπD4
gπD4
128νl
Darcy-Weisbach
2
8λl
gπ 2 D5
Hazen-Williams
1.852
10.675 l
cHW 1.852 D4.87
laminar
- 22 -
s
gπ 2 D5
8λl
C.2. Stationäre Berechnung
Reibungsbeiwert λ nach Colebrook-White
λ
0.07
k/D
6
3.310 −2
0.06
0.05
1.610 −2
0.04
8.310 −3
0.03
4.010 −3
2.010 −3
0.02
1.010 −3
4.010 −4
2.010 −4
1.010 −4
0.01
1|
2 {z 4
∗103
6 8} 1|
2 {z 4
∗104
6 8} 1|
-
laminar (Re < 2330):
turbulent (Re > 2330):
Wasser bei 20 o C:
λ
1
√
λ
ν
=
2 {z 4
∗105
Re =
6 8} 1|
∗10
64
Re
1.0*10−6 m2 /s
- 23 -
{z 4
6
vD
ν
k
2.51
√ +
= −2 log
Re λ 3.71 D
=
2
!
6 8 10}
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
e) Verallgemeinertes Verbindungselement j mit Knoten i und k
Elementfluß Qj > 0 , wenn von i nach k
Knotenfluß Qik > 0 , wenn von i nach k
Knotenfluß Qki > 0 , wenn von k nach i
Qj = Qik = −Qki
hvj
= Kj |Qj |n−1 Qj
= Rj Qj mit Rj = Kj |Qj |n−1
Qj
= kj |hi − hk | n −1 (hi − hk )
Kj
kj
:
:
1
Widerstand des Elements j;
Leitwert des Elements j;
Qik − sik = rik (hi − hk )
Kj
kj


 r
ik


mit
= Kik = Kki = 1/kjn
p
= kik = kki = 1/ n Kj
= kj |hi − hk |1/n−1 =
sik = 0
C.2.1.2
1
Kj |Qj |n−1
bei Rohrleitung
Absperr- und Regelarmaturen
(Drosseln, Klappen, Ventile, Schieber; auch lokale Verluste)
Nenndurchmesser Dj und Querschnitt Aj konstant, unabhängig
von der Schieberstellung!
hvj = ζj
n = 2;
8ζj
;
gπ 2 Dj4
kj = πDj2
Kj
=
hvj
= Kj |Qj |n−1 Qj
= Rj Qj
Qj
= kj |hvj |1/n−1 hvj
Qik − sik = rik (hi − hk )
bzw.
vj 2
8ζj |Qj |
ζj |Qj |
=
Qj =
Qj
4
2
2g
gπ Dj
2gA2j
rik =
2gA2j
;
ζj |Qj |
mit
sik = 0
r
g
;
8ζj
Rj = Kj |Qj |
rik = kj |hi − hk |1/n−1
und sik = 0
aus Umformung von Gl. (C.4)
Struktur der Gleichungen ist identisch mit denen der Rohrleitung.
- 24 -
(C.4)
bei Verlusten
C.2. Stationäre Berechnung
C.2.1.3
Pumpen
Fall a) vorgegebene konstante mechanische Leistung Pj :
Pj
= ρgQj ∆hEj
hE = z +
∆hEj
p
v2
+α
ρg
2g
= (zk − zi ) +
|
(s. Skript Strö I, Kap. 8)
{z
klein
}
v 2 − vi2
p k − pi
+α k
ρg
2g
| {z }
sehr klein
' hk − hi = −hvj
hvj
= hi − hk = −
n = −1 ;
mit h = z +
Pj
ρg Qj
Pj
;
ρg
(C.5)
Kj
= −
kj = Kj = −
hvj
= Kj |Qj |n−1 Qj
= Rj Qj
Qj
= kj |hvj |1/n−1 hvj
Pj
= − (hvj )−1
ρg
(
Qik − sik = rik (hi − hk )
bzw.
rik = −
p
ρg
ρgQ2j
;
Pj
mit
sik = 0
Pj
;
ρg
Rj = Kj / |Qj |2
rik = kj |hvj |1/n−1
sik = 0
(Pumpe mit konst. Leistung)
aus Umformung von Gl. (C.5)
Struktur der Gleichungen ist identisch mit denen der Rohrleitung.
Bemerkungen: Der stets negative Koeffizient rik ist problematisch besonders für das knotenorientierte Verfahren. Es muß darauf geachtet werden, daß die Pumpe sich in einem vernünftigen“
”
Betriebszustand befindet, also nicht etwa durch ein Ventil abgedrosselt wird. Bei verschwindendem
Durchfluß geht die mechanische Leistung jeder Pumpe gegen Null!
- 25 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
Fall b)
vorgegebene Kennlinie: (vor allem Kreiselpumpen)
Zur Illustration: Zwei gedachte Pumpensysteme
Experimentell aufgenommene Kennlinien liegen meist graphisch vor. Sie können aus wenigen Kennlinienpunkten analytisch approximiert werden.
Nullförderhöhe:
In
einem genügend hohen
Standrohr stellt sie
sich ohne Durchfluß
ein.
Der Durchfluß Q steigt bei sich verringernder Förderhöhe ∆h.
Analytische Approximation:
Neben der Nullförderhöhe h0 müssen mindestens zwei weitere Kennlinienpunkte (h1 |Q1 ) und (h2 |Q2 )
gegeben sein. Sind mehr als zwei gegeben, benutzt man die beiden dem aktuellen Betriebszustand
zunächst liegenden Punkte für den folgenden Formelsatz.
horizontale Tangente bei Q = 0 !
Ansatz: −hv = ∆h = h0 − cQd
h0 − h1 = c Qd1
h0 − h2 = c Qd2
h 0 − h1
h 0 − h2
;
d = log
h0 − h2
Q2
/ log
h0 − h1
Q1
Mit den nun bekannten Konstanten c und d folgt jetzt
hvj = −∆hEj = hi − hk = −h0j + cj |Qj |d−1 Qj
;
Qik −
h0
c|Qik |d−1
=
= (Q1 /Q2 )d (Division)
und nach Einsetzen:
1
c|Qik |d−1
(hi − hk )
- 26 -
Punkt 1 und
2 eingesetzt
c=
h0 − h1
h0 − h2
=
d
Q1
Qd2
C.2. Stationäre Berechnung
Qik − sik = rik (hi − hk )
Qki + sik = rik (hk − hi )
mit
rik =
und
sik
1
c|Qik |d−1
= h0 rik 6= 0 !
Struktur der Gleichungen ist identisch mit denen der Rohrleitung.
C.2.1.4
Einfache Rohrsysteme mit Pumpe
graphische Lösung:
hgeo
hv
:
:
geodätische Förderhöhe
Verlusthöhe (Ventil u. Rohrleitung)
hv (Q) =
l
ζ +λ
D
Q2
2gA2
Q2
l
+ζ
D
2gA2
2
n
f (Q) = KRohr Q + KP umpe Q + hgeo − h0 = 0 (nichtlineare Gleichung)
numerische Lösung:
gesucht Q so, daß
h0 − KP umpe Qn = hgeo + λ
Newton-Iteration nach dem µ-ten Iterationsschritt:
f (Q) = 0
;
µ+1Q
µQ
=
µ+1Q
= µQ −
µ
− f ( Q)
df µ
( Q)
dQ
KRohr µQ2 − KP umpe µQn + hgeo + h0
2KRohr µQ + nKP umpe µQn−1
- 27 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.2.1.5 Topologie
(Vergleiche auch Abschnitt B.2)
Jedes Rohrsystem ist darstellbar als ein System von Knoten und
knotenverbindenden Elementen (KVE), auch Elemente genannt.
KVE sind Rohrleitungen, Armaturen, Pumpen etc.
Typische Systemkonfigurationen:
j
j
j
j
KVE in Reihe
j
j
H
HH
H j
j
j
@
@
j
j
@
@
@
@
j
j
HH
H
H j
j
@
@
@
@
@
@
j
vermaschtes System (2 Maschen)
baumartig verzweigtes System
m = Zahl der Elemente, n = Zahl der Knoten, e = Zahl der Elementarmaschen
verzweigtes System und Reihe: m = n − 1
vermaschtes System: m > n − 1 ; e = m − n + 1
An jedem Knoten ist eine externe Einspeisung (+) oder eine
Entnahme (-) möglich: Knotenfluß
Eine Masche ist ein beliebig geschlossener Weg innerhalb eines Netzes.
Es gibt zwei Arten von Knoten:
h-Knoten: Die Druckhöhe ist vorgegeben, der Knotenfluß errechnet sich
aus den Systemgleichungen.
j
j
Q-Knoten: Der Knotenfluß ist vorgegeben, die Druckhöhe errechnet
sich aus den Systemgleichungen.
- 28 -
j
C.2. Stationäre Berechnung
Beispiel: vermaschtes System
h-Knoten: 1 (h1 gegeben, E1 gesucht; z.B. Reservoir)
Q-Knoten: 2, 3, 4, 5 (E gegeben, h gesucht)
C.2.2
Gleichungssysteme
C.2.2.1
Knoten- und Elementgleichungen
5 Knotengleichungen:
∗
E1 − Q1
E2 + Q1 − Q2 − Q3
E3 + Q2 − Q4 − Q5
E4 + Q3 + Q4 − Q6
E5 + Q5 + Q6
=
=
=
=
=
0
0
0
0
0
Durch Summation der 5 Knotengleichungen ergibt sich:
E1 + E2 + E3 + E4 + E5 = 0 (Kontinuitätsgleichung des Gesamtsystems)
6 Elementgleichungen:
h1 − h2
h2 − h3
h2 − h4
h3 − h4
h4 − h5
h3 − h5
=
=
=
=
=
=
∗
K1 Q1 n
K2 Q2 n
K3 Q3 n
K4 Q4 n
K6 Q6 n
K5 Q5 n
11 Gleichungen verfügbar für
11 Unbekannte: E1 , h2 . . . h5 , Q1 . . . Q5
⇒ Nichtlineares Gleichungssystem für Drücke und Durchflüsse
∗
Randbedingungen:
Unbekannte:
h1 , E 2 − E 5
E1 , h2 − h5
...
...
normale Schrift
fett gedruckt
- 29 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.2.2.2
Gleichungssysteme für Druckhöhen
Elementgleichungen nach Q aufgelöst werden in Knotengleichungen eingesetzt:
∗
Q1 = k1 (h1 − h2 )1/n
Q2 = k2 (h2 − h3 )1/n
..
..
. =
.
Q6 = k6 (h4 − h5 )1/n
1:
2:
3:
4:
5:
E1 − k1 (h1 − h2 )1/n
E2 + k1 (h1 − h2 )1/n − k2 (h2 − h3 )1/n − k3 (h2 − h4 )1/n
E3 + k2 (h2 − h3 )1/n − k4 (h3 − h4 )1/n − k5 (h3 − h5 )1/n
E4 + k3 (h2 − h4 )1/n + k4 (h3 − h4 )1/n − k6 (h4 − h5 )1/n
E5 + k5 (h3 − h5 )1/n + k6 (h4 − h5 )1/n
=
=
=
=
=
0
0
0
0
0
5 nichtlineare Gleichungen mit 4 unbekannten Druckhöhen und 1 unbekannter Einspeisung E1 . Die
Gleichungen 2 . . . 5 können für h2 . . . h5 gelöst werden. Danach ergibt sich E1 aus der ersten Gleichung.
C.2.2.3
Gleichungssysteme für Durchflüsse
5 Kontinuitätsgleichungen der Knoten
2 Maschengleichungen
7 unbekannte Durchflüsse
Maschengleichungen (Druckverluste):∗
Masche 1:
Masche 2:
K2 Qn2 + K4 Qn4 − K3 Qn3 = 0
K5 Qn5 − K6 Qn6 − K4 Qn4 = 0
Kontinuitätsgleichungen:∗
3:
4:
5:
6:
7:
E1 − Q1
E2 + Q1 − Q2 − Q3
E3 + Q2 − Q4 − Q5
E4 + Q3 + Q4 − Q6
E5 + Q5 + Q6
=
=
=
=
=
0
0
0
0
0
7 Gleichungen für 7 unbekannte Durchflüsse. (E1 und Q1 . . . Q6 )
∗
Randbedingungen:
Unbekannte:
h1 , E 2 − E 5
E1 , h2 − h5
...
...
normale Schrift
fett gedruckt
- 30 -
C.2. Stationäre Berechnung
Wahl der Maschen:
2
7
9
unbekannte Knotenflüsse
unbekannte Durchflüsse
gesuchte Größen
6
3
9
Knotengleichungen
Maschengleichungen
Gleichungen
Sind im System kH h-Knoten, so sind kH − 1 zusätzliche Maschen durch h-Knoten zu legen. Wegen
der Wahl der Maschen siehe Abschnitt B.4.1.
Mögliche Maschenkonfigurationen:
Maschen: a)
2
3
1
b)
2
3
1
3
4
4
5
2
3
5
2
3
5
4
3
- 31 -
2
3
6
4
1
2
3
6
1
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.2.3
C.2.3.1
Iterationsalgorithmen
Knotenbezogenes Einzelschrittverfahren
Einfachstes Verfahren mit schlechtem Konvergenzverhalten und für große Systeme unbrauchbar. Nicht
näher behandelt.
C.2.3.2
Maschenbezogenes Einzelschrittverfahren
Das Iterationsverfahren nach Cross war zu Zeiten der Handrechnung das meistbenutzte und ist
auch in viele Computerprogramme integriert worden. Das Konvergenzverhalten ist mäßig. Nicht näher
behandelt.
C.2.3.3
Maschenbezogenes Gesamtschrittverfahren
Wird relativ wenig eingesetzt, weil der Aufbau der Gleichungen unübersichtlicher als beim knotenbezogenen Gesamtschrittverfahren ist. Die Konvergenz ist zudem von der Maschenwahl abhängig. Siehe
auch Abschnitt B.3.2.
- 32 -
C.2. Stationäre Berechnung
C.2.3.4
Knotenbezogenes Gesamtschrittverfahren
Linearisierte Elementgleichung:
Qik − sik = µkik µ|hi − hk |1/n−1 · µ+1 (hi − hk )
= µrik · µ+1 (hi − hk )
Qik
= −Qki
Qki + sik = − µrik · µ+1 (hi − hk )
µ
µ+1
: bekannt, letzter Iterationsschritt
: gesucht, aktueller Iterationsschritt
rik ist abhängig von der Verlusthöhe hv = hi − hk , die während der Iteration entnommen werden
kann aus dem Vektor µh aller Druckhöhen des vorangegangenen Iterationsschrittes. Alternativ läßt
sich rik auch aus dem Durchfluß µQik berechnen. Somit wird rik innerhalb eines Iterationsschrittes als
Konstante behandelt, die Elementgleichung ist damit linear.
Elementmatrizen:
"
Qik − sik
Qki + sik
µ"
#
=
rik −rik
−rik rik
µ+1"
#
·
hi
hk
#
Knotengleichungen:
N
X
Qij = Ei
;
Qij = 0 , wenn Element i − j nicht existiert
j=1
a) lineares Problem, vergleiche Abschnitt B.3.3
(1) Aufbau des Gleichungssystems: (N Gleichungen für N Unbekannte)
Beginne mit leerer Matrix N ×N . Speichere elementweise ab, indem für jedes Element i−k
rik zur Hauptdiagonalen i, i und k, k hinzuaddiert wird. Außerdem −rik zur Position i, k
und k, i. Auf der rechten Seite entsteht analog der Vektor E aus den sik (nur bei Pumpen)
und den vorgegebenen Einspeisungen Êi .
Ergebnis: L h = E
L ist die Systemmatrix. Für sie gilt:
Lii =
P
rik (Diagonalelemente)
rik 6= 0, wenn Element i − k existiert. Alle Lii sind positiv.
Lik = −rik für i 6= k sofern Element i − k existiert.
Lik = 0 für i 6= k wenn das Element i − k nicht existiert.
- 33 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
|Lii | ≥ |Lik |
für alle i, k = 1 (1) N
Der größte Wert innerhalb einer Zeile liegt auf der Hauptdiagonalen.
L ist positiv definit und 1-fach singulär.
Lik = −rik
für i 6= k
Lki = −rik
L ist symmetrisch, da
Element i − k im Gesamtsystem:
1

2



















3
..
.
i
..
.
k
..
.
N
1 2 3
...
i
0 0 0 ...
0
0 0 0 ...
0
0 0 0 ...
0
.. .. ..
..
. . .
.
0 0 0 . . . rik
.. .. ..
..
. . .
.
0 0 0 . . . −rik
.. .. ..
..
.
. . .
...
...
...
...
0 0 0 ...
...
0
1
2



















3
..
.
i
..
.
k
..
.
N
2
3
r11 −r12 −r13
P
−r21
r22 −r23
P
−r31 −r32
r33
..
..
..
.
.
.
−ri1 −ri2 −ri3
..
..
..
.
.
.
−rk1 −rk2 −rk3
..
..
..
.
.
.
 P
−rN 1
−rN 2
. . . N 
h1
... 0

. . . 0   h2


... 0 
  h3
 .
.. 
.   ..


 h
. . . −rik . . . 0 
 i
..
..   ..

.
. 
 .

. . . rik . . . 0   hk

..
.. 
 .
.
.   ..
Zusammenbau zum Gesamtsystem:
1
k
0
0
0
..
.
−rN 3
0
... 0
PN
k=1 Qik
hN


0
0
0
..
.
 
 
 
 
 
 
 
 
 
 =  Qik
 
  ..
  .
 
 
  Qki
  .
  .
  .




















0
= Ei
...
i
...
k
...
N

. . . −r1i . . . −r1k . . . −r1N
. . . −r2i . . . −r2k . . . −r2N 


. . . −r3i . . . −r3k . . . −r3N 


..
..
..

.
.
.
rii . . . −rik . . . −riN
..
..
..
.
.
.
P
. . . −rki . . .
rkk . . . −rkN
..
..
..
.
.
.
P
. . . −rN i . . . −rN k . . .
rN N
...
P
































h1
h2
h3
..
.
- 34 -

E1
E2
E3
..
.
hk
..
.
 
 
 
 
 
 
 
 
 
 =  Ei
 
  ..
  .
 
 
  Ek
  .
  .
  .
hn
En
hi
..
.
·
L

h
=




















E
C.2. Stationäre Berechnung
Wegen der Symmetrie brauchen für ein N × N System nur N (N + 1) /2 Koeffizienten
gespeichert zu werden, z.B. N = 100 ⇒ 5050 statt 10000.
L ist eine Bandmatrix mit einer Bandbreite B < N und Lik = 0 für |k − i| ≥ B. Für
N = 100 und B = 20 z.B. 2000 Koeffizienten.
Die Bandbreite errechnet sich aus der maximalen Knotennummerndifferenz für ein Element. Die Bandbreite hängt also von Systemstruktur und Knotennumerierung ab.
(2) Nebenbedingungen:
ist Ei gegeben (auch Ei = 0 ist ein gegebener Wert! ), so wird Ei in Zeile i des Spaltenvektors E eingespeichert.
Ist hk gegeben, so wird die Zeile k gestrichen und damit auch hk . Die auf der linken Seite
befindlichen Produkte Lik hk (i = 1 . . . N ) werden auf die rechte Seite gebracht.
Beispiel:
L11 h1 + L12 h2 + L13 h3 = E1
L21 h1 + L22 h2 + L23 h3 = E2
L31 h1 + L32 h2 + L33 h3 = E3
h2 = ĥ2 sei gegeben (Randbedingung):
L11 h1 + L13 h3 = E1 − L12 ĥ2
L31 h1 + L33 h3 = E3 − L32 ĥ2
Dabei wird die Zahl der Gleichungen um so viele reduziert, wie es Knoten mit bekanntem ĥi gibt. Der Nachteil des Verfahrens ist die damit verbundene Umnumerierung des
Gleichungssystems. Deshalb ist es günstiger, bei Systemen, die nur wenige Knoten mit
bekanntem h enthalten, die k-te Zeile durch die Gleichung 1.0 ∗ hk = ĥk zu ersetzen. Die
Zahl der Gleichungen bleibt dabei erhalten.
Beispiel:
L11 h1 + 0 +L13 h3 = E1 − L12 ĥ2
0 + h2 + 0
= hˆ2
L31 h1 + 0 +L33 h3 = E3 − L32 ĥ2
möglich wäre auch:
L11 h1 + L12 h2 +L13 h3 = E1
0+
h2
+0
= ĥ2
L31 h1 + L32 h2 +L33 h3 = E3
dann bleibt jedoch die Matrix nicht symmetrisch!
- 35 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
(3) Berechnung der Durchflüsse und Einspeisungen:
für alle Elemente gilt: Qik = rik (hi − hk )
für alle Knoten mit unbekanntem E gilt:
Ei =
N
X
Qij sofern Element ij existiert.
j=1
b) nichtlineares Problem mit Picard-Iteration
L (h) h = E
Schätze Startwerte für Iteration
-
Berechne µ rik für alle Elemente
Berechne µ+1hi aus Gleichungssystem
Berechne µ+1Qj für alle Elemente
Berechne µ+1Ei für alle Knoten
Prüfe Konvergenz
Prüfung der Konvergenz:
|µQik − µ−1Qik | ≤ ε für alle Elemente
z.B. mit ε = 0.001 Max{|Ei |, |Qj |}
oder
1
N
P
P Ei − N
j=1 Qij ≤ ε
z.B. mit Fehler ε = 0.0001 m3 /s
Konvergenzverhalten:
Zu hohe Durchflüsse ergeben einen höheren Widerstand und damit im nächsten Iterationsschritt zu kleine Durchflüsse – alternierende Annäherung. Die Iteration wird beschleunigt,
wenn man ab dem zweiten Iterationschritt die Verbesserung der Durchflüsse mit einem
Relaxationsfaktor Fr < 1.0 abschwächt:
µ+1
Qj
⇐
µ
=
µ
Qj (1 − Fr ) +
µ+1
Qj Fr
Qj + δQj Fr
- 36 -
C.2. Stationäre Berechnung
Zu den Startwerten:
Für übersichtliche Systeme läßt sich der Vektor h schätzen. Das ist keine computergeeignete Methode! Die Geschwindigkeit in technischen Rohrsystemen liegt aber immer in der
Größenordnung |v| = 1 m/s, womit sich die rik auch berechnen lassen – besser geeignet
für alle Elemente j.
;
|vj | = 1m/s
|Qj | = |vj | Aj = Aj · 1.00 m/s
Für die Berechnung der rik benutzt man dann

Beweis:






rik
= kik |hi − hk |1/n−1





 |Qik |
= rik |hi − hk |
n
rik = kik
|Qik |1−n


rik






rik 1/n




rik
= kik |Qik /rik |1/n−1
= kik |Qik |1/n−1
= kik n |Qik |1−n
(unabhängig von der Richtung des Durchflusses!)
c) Verbesserung der Genauigkeit
Wenn das globale Gleichungssystem nicht für die piezometrischen Druckhöhen µ+1h sondern für ihre
Verbesserungen δh = µ+1h − µh gelöst wird, werden die sich nicht mehr ändernden führenden Stellen
von h nicht durch den Algorithmus geschleppt und so die Genauigkeit gesteigert.
L·
µ+1
h = E
⇒
L · δh = E − L · µh
Die Umstellung kann auch auf Elementebene erfolgen.
ˆ i = ĥi − µ hi
Modifizierte Randbedingungen beachten: δh
d) nichtlineares Problem mit Newton-Raphson-Iteration
Nicht näher behandelt, jedoch Anmerkungen: Die Verbesserungen δh berechnen sich mit Hilfe einer
Gradientenmatrix L0 (Ableitungen der rik nach hi und hk ). Bei einem gut geschätzten Anfangszustand
ist schnellere Konvergenz als nach b) zu erwarten. Der numerische Aufwand ist jedoch höher und das
Verfahren ist nicht unbedingt robust. Bei einer schlecht gewählten Startlösung kann es vorkommen,
daß das Verfahren nicht konvergiert.
- 37 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.3
Lernziele
Wesentliche Überlegungen für die Berechnung von nichtlinearen Netzwerken sind:
• Das knotenorientierte Verfahren ist übersichtlicher als das maschenorientierte. Vor allem entfällt
dabei die Wahl eines Hauptsystems.
• Man wählt als Unbekannte an den Knoten diejenige Größe, die an allen am Knoten anschließenden Elementenden den gleichen Wert besitzen muß (hier h) =⇒ Erfüllung der Stetigkeitsbedingungen.
• Innerhalb der Elemente wird der Zusammenhang von Knotengrößen und den Unbekannten am
Element (hier Q) hergestellt. Die Elementgleichungen lassen sich auch für ganz verschiedene
Elementtypen auf gleiche Form bringen.
• Durch Addition der Elementgleichungen wird ein globales Gleichungssystem erzeugt, das an allen
P
Knoten ein Gleichgewicht herstellt (hier: Erfüllung der Kontinuitätsbedingungen j Qkj = Ek ).
• Da in die Elementgleichungen immer nur Differenzen der Knotenunbekannten eingehen, ist das
globale Gleichungssystem singulär. Die Singularität wird durch Vorgabe mindestens einer Knotenunbekannten beseitigt.
• Das nichtlineare Problem wird gelöst durch Linearisierung und Iteration. Einfachstes Verfahren: Picard-Iteration (Einsetzen der Werte aus dem vorangehenden Schritt). Iteration nach
Newton-Raphson konvergiert meist erheblich schneller — dafür sind aber alle Elementgleichungen nach den Unbekannten abzuleiten.
• Man kann nie gleichzeitig am gleichen Knoten die Knotenunbekannte (hi ) und die Größe auf der
Rechten Seite (Ei ) vorgeben! Das würde das Gleichungssystem überbestimmen und meistens
auch einen Widerspruch erzeugen.
- 38 -
C.4. Anhang: SRS - Programmbeschreibung
C.4
Anhang: SRS - Programmbeschreibung
Das Programm Stationäre RohrStrömung läuft nach dem gleichen Schema ab, wie es in fast allen
Finite-Element-Codes benutzt wird. Deshalb wird die Beschreibung in diesem Anhang beispielhaft
und detailliert wiedergegeben.
C.4.1
Eingabebeschreibung
An Daten sind einzulesen und während des Programmlaufs vorzuhalten:
• Koordinaten der Knoten
• Beschreibung der Elemente, mit −→ Verknüpfung zu den Knoten- und Materialdaten
• Randbedingungen −→ vorgegebene Werte im Vektor der Unbekannten
• Belastungsglieder −→ Rechte Seite
• (Bei instationären Aufgabenstellungen muß noch der Anfangszustand zur Zeit t = t0 vollständig
beschrieben werden)
Nach Aufruf von SRS öffnet das Programm das graphische User-Interface (GUI) und man kann eine
Eingabedatei auswählen. (Die Daten von Datei in Tabellenform einzulesen ist bei den oft weitverzweigten Rohrleitungssystemen weniger umständlich als das System mit Hilfe einer graphischen Oberfläche
zu generieren.)
Der Name der Ausgabedatei ist immer SRS.OUT.
Die Eingabedatei muß enthalten: (vergleiche auch ROHR1.DAT)
(Alle Angaben in [m], [m WS], [s])
a) Überschrift zum Datensatz in der ersten Zeile, Angaben zum berechneten System, Variante,
Lastfall u.s.w.
b) Beschreibung des Systems; dabei beachten: Die weiteren Daten bestehen nur aus Zahlen, formatfrei, durch Leerzeichen (nicht Komma!) getrennt.
Mehrere gleichartige Sätze der Eingabe stehen je einer auf einer Zeile, den Abschluß bildet eine
Zeile mit -1 am Anfang. (Das erste Item jeder Zeile ist stets > 0, das Programm kann also
erkennen, wann ein Abschnitt beendet ist und die Anzahl Zeilen selbst zählen.) Hinter den Zahlen kann beliebiger Kommentartext stehen. Die gesamte Eingabe wird während des Lesens im
Command-Window protokolliert.
1. Knotenbeschreibungen
Daten
i xi yi zi
:
:
-1
Erläuterung
Knotennummern i mit Koordinaten. x und y sind
i.a. nur für Plots relevant, z ist geod. Höhe.
(Nummern i von 1 bis N, in beliebiger Folge)
Ende der Koordinaten, siehe oben
- 39 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
2. Elementbeschreibungen mit vier möglichen Typen: 1 = Rohr, 2 = Verlust, 3 = Pumpe
und 4 = VRohr (Rohr mit Ein- und Auslaufverlusten)∗ . Eingabe der Elementtypen ist in
beliebiger Reihenfolge erlaubt.
Daten
1 i k D ks l
:
:
:
:
Erläuterung
1 am Anfang: Rohr von Knoten i nach k
D hydraulischer Durchmesser, ks äquivalente Sandrauhigkeit
l Länge des Rohrelements; wird nur aus
Koordinaten berechnet, wenn ≤ 0.0 !
2i k D ζ
:
:
2 am Anfang: Verlust zwischen Knoten i und k
D hydraulischer Durchmesser, ζ Verlustbeiwert
3 i k D h0
:
Q1 h1
Q2 h2
:
:
-1
:
3 am Anfang: Pumpe zwischen Knoten i und k
D hydraulischer Durchmesser, h0 Nullförderhöhe
1. Kennlinienpunkt
2. Kennlinienpunkt (mindestens 2 Punkte!)
ggf. weitere Kennlinienpunkte, nach aufsteigendem
Durchfluß Qj sortiert, hj sind hier Förderhöhen.
Abschluß der Kennlinie
4 i k D ks l ζi ζk
:
:
:
:
4 am Anfang: Rohr mit Verlusten von Knoten i nach k
D, l, ks wie oben bei Rohr
ζi Ein- bzw. Auslaufverlust am Anfangsknoten i
ζk Aus- bzw. Einlaufverlust am Endknoten k
-1
Ende aller Elemente
c) Randbedingungen für die Knoten; es kann nur Ei oder hi vorgegeben werden.
1. vorgegebene Druckhöhen hi
Daten
i hi
:
-1
Erläuterung
Knotennummer und vorgegebene Druckhöhe
für alle Knoten mit h-Randbedingung
Ende der h-Randbedingungen
2. vorgegebene Einspeisungen Ei
Daten
i Ei
:
-1
∗
Erläuterung
Knotennummer und vorgegebene Einspeisung
Nicht aufgeführte Knoten erhalten automatisch Ei = 0.0
Ende der E-Randbedingungen
In der zu Übungszwecken herausgegebenen Fassung sind nicht alle Verbindungselemente vollständig implementiert.
- 40 -
C.4. Anhang: SRS - Programmbeschreibung
Datensatz ROHR1
BEISPIEL ROHRSCHLEIFE EINFACH
1
0
0 190.
% Knoten, x, y, z
2 100
50 170.
3 100 -50 170.
4 200
0 150.
-1
% Ende Koordinaten
1 1 2 .5 .02 2000. % Verbindungselemente: Typ, i, k, Dh, Ks, L
1 1 3 .5 .02 2000. % ( hier alles Rohre)
1 2 3 .2 .01
500.
1 2 4 .5 .02 2000.
1 3 4 .5 .02 2000.
-1
% Ende der Elementbeschreibungen
1 190.
% H-Randbedingungen: i, H [m WS]
4 150.
-1
% Ende H-Rdb.
2 .050
% E-Randbedingungen i, E
3 .050
-1
% Ende der Einspeisungen, Ende Datensatz
C.4.2
Speicherplan zu SRS
C.4.2.1 Allgemeine Angaben
Durch die Vereinbarung am Beginn des Hauptprogramms
global rnue g
werden die Variablen ν (Zähigkeit von Wasser) und g (Erdbeschleunigung) als global deklariert und
stehen nach entsprechender Vorbelegung allen Unterprogrammen einheitlich zur Verfügung. Weitere
Parameter wie Dichte ρ, geforderte relative Genauigkeit und maximale Iterationsanzahl werden nur
lokal im Hauptprogramm benötigt und sind dort zu Beginn mit Werten vorbelegt.
C.4.2.2 Eingabedaten
Mit dem Aufruf des Einleseprogramms
[N, M, Nh, KOOR, ELE, PKenn, HRAND, Resei1, ofile] = srsein(0);
werden alle Daten der Eingabe dem Hauptprogramm geordnet übergeben. (Der Parameter 0 ist bedeutungslos; er dient nur dazu, daß srsein überhaupt als Funktion erkannt wird.)
- 41 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
N
int
1
Anzahl der Knoten
M
int
1
Anzahl der Verbindungselemente
Nh
int
1
Anzahl Knoten mit h-Randbedingungen
KOOR
double
N×3
x-, y-, und z-Koordinaten aller Knoten
ELE
double
M×9
Typ, i, j und Elementwerte
aller Verbindungselemente, siehe unten
PKenn
double
1×(?)
Hilfsvektor für alle Pumpen,
mit Kennlinienpunkten, siehe unten
HRAND
double
Nh×2
i, hi für alle Knoten mit h-Randbedingung
Resei1
double
N×1
Spaltenvektor der E-Randbedingung aller Knoten
0 an Knoten ohne Vorgabe)
ofile
file
-
geöffnete Ausgabedatei
Anmerkungen zu ELE und Pkenn: Für das Verbindungselement e findet man in
Ort
Rohr
Verlust
Pumpe
VRohr
ELE(e,1)
ELE(e,2)
ELE(e,3)
ELE(e,4)
ELE(e,5)
ELE(e,6)
ELE(e,7)
ELE(e,8)
ELE(e,9)
1
i
k
D
A
ks
l
-1
-1
2
i
k
D
A
ζ
-1
-1
-1
3
i
k
D
A
h0
ip
ipe
-1
4
i
k
D
A
ks
l
ζi
ζk
Kommentar
Typ
Anfangs- und
Endknoten
hydraulischer Durchmesser
Querschnitt, berechnet
Werte je nach Elementtyp
”
”
”
Beim Elementtyp Pumpe ist in ELE(e,7) der Index ip gespeichert, der auf die zugehörige Kennlinie
zeigt. In ELE(e,8) steht ein weiterer Zeiger ipe, der auf den letzten Q-Wert der Kennlinie zeigt. Diese
Listenkonstruktion ermöglicht es, Kennlinien mit unterschiedlicher Anzahl von Punkten kompakt zu
speichern.
Beispielsweise sei PKENN ab Index 10 frei und eine neue Pumpe mit drei Kennlinienpunkten wird eingelesen. Die zugehörige Kennfeld wird dann so belegt: (ELE(e,7)=ip=10, zeigt auf Q1 ; ELE(e,8)=ipe=14
zeigt auf letzten Durchfluß Q3 )
Ort
Inhalt
PKENN(10)
PKENN(11)
PKENN(12)
PKENN(13)
PKENN(14)
PKENN(15)
PKENN(16)
Q1
h1
Q2
h2
Q3
h3
—
C.4.3
Erläuterung
(hierhin zeigt ip) Durchfluß und
Druckerhöhung Punkt 1
dito
Punkt 2
dito (hierhin zeigt ipe)
Punkt 3
frei für nächste Kennlinie
Kurzbeschreibung einiger Unterprogramme
Neben dem oben beschriebenen Leseprogram srsein sind noch erforderlich: (mit Aufrufen, Ergebnisse
links)
- 42 -
C.4. Anhang: SRS - Programmbeschreibung
• Elementprogramme, speziell für SRS
function
rik = Rohr(j,qabs,ELE)
function
rik = Zeta(j,qabs,ELE)
function [rik,sik] = Pump(j,qabs,ELE,PKenn)
function
rik = Vrohr(j,qabs,ELE)
% Berechnung Rik, (Sik) der Verbindungselemente
Parameter
j
qabs
ELE
PKenn
rik
sik
Erläuterung
Elementnummer (Zeile in ELE)
| Qj | im Element (letzte Iteration)
Elementverzeichnis (siehe oben)
Kennlinienfeld für Pumpen (siehe oben)
Resultat: linearisierter Koeffizient rik
Resultat: (nur PUMP.M) Term für rechte Seite sik
% Hilfsprogramm fuer Rohrelement
% berechnet den Reibungsbeiwert Lambda nach dem Moody-Diagramm
% mit Interpolation im Uebergangsbereich
function Lambda = lambda (kd, Re)} \hfill
Parameter
kd
Re
Lambda
Erläuterung
ks /D Sandrauhigkeit / Durchmesser
Reynoldszahl
Ergebnis: Reibungsbeiwert λ
Berechnet für Re < 2200 :
λ = 64/Re (laminarer Beiwert), für Re > 3000 : Beiwert nach
Coolebrook-White. Bei Reynoldszahlen dazwischen wird linear interpoliert.
• Graphische Ausgabe, speziell für SRS
function srsplot(N,M,KOOR,ELE,Hk,Ek,Qj)
% srsplot zeichnet System und Ergebnisse in 3-d-Darstellung
% N Knoten und M Elemente
% KOOR (N*3) : Koordinaten
% ELE (M*7) : ELE(j,2) und ELE(j,3) sind die Knotennummern
% Hk
(N)
: berechnete Druckhoehen
% Ek
(N)
: Einspeisungen in die Knoten
% Qj
(M)
: Durchfluesse
% zu SRS, Ratke 2000
Diese ergebnislose Routine stellt den berechneten stationären Zustand dreidimensional dar. (ohne
weitere Erläuterung)
- 43 -
KAPITEL C - Nichtlineares Netzwerk: Rohrsysteme
C.4.4
Includefile für den Gleichungslöser
• Die Lösung linearer Gleichungssysteme ist oft eine der zentralen Aufgaben von Programmen zur Simulation natürlicher oder technischer Systeme. Die Koeffizientenmatrizen können sehr unterschiedliche
Eigenschaften besitzen bezüglich Symmetrie, Größe, Struktur, Grad der Besetzung und Konditionszahl. Die Auswahl des Lösers (Gauß mit oder ohne Pivotsuche, Cholesky, iterative Verfahren) sollte
sich daran orientieren und bei veränderten Anforderungen muß der Löser leicht ausgetauscht werden
können. Es empfiehlt sich, die zugehörigen Routinen (gut ausgetestet!) austauschbar als Bibliotheksfunktionen vorzuhalten.
SRS: Zur Zeit wird der in MatLab implementierte \-Operator verwendet, der auf dem Gaußschen
Algorithmus beruht (bei voll abgespeicherter Koeffizientenmatrix). Da die Matrizen symmetrisch und
positiv definit sind, empfiehlt sich mindestens das Verfahren nach Cholesky mit Dreiecksspeicherung
– benötigt nur den halben Speicherplatz, ist schneller und genauer.
Praxisnahe Systeme enthalten oft mit einige Hunderte oder Tausende von Knoten. Dann ist der
Übergang zu Skyline-Speicherung oder Sparse-Techniken angeraten. Denn die Koeffizientenmatrix ist
stets dünn besetzt und die letztgenannten Methoden ersparen nicht nur einen Großteil der Rechenzeit,
sondern machen es überhaupt erst möglich, Probleme von einer höheren Größenordnung zu bearbeiten.
Näheres wird im nächsten Kapitel ausgeführt.
- 44 -
Kapitel D
Handwerkszeug I:
Lineare Gleichungssysteme
- 45 -
KAPITEL D - Lineare Gleichungssysteme
D.1
Generelles Vorgehen
D.1.1
Staffeln der Koeffizientenmatrix
Die m×m Matrix A wird in das Produkt A = U ·O zerlegt. (U ist untere und O obere Dreiecksmatrix,
d.h. uik = oki = 0 für i < k.) Für die Diagonalelemente uii bzw. oii müssen noch spezielle Konventionen
getroffen werden.
D.1.2
Lösung von A · x = r
zerfällt dann in die einfachen Teilaufgaben
und
D.1.3
U ·y = r
(Vorwärtseinsetzen, y ist gestaffelte Form von r)
O·x = y
(Rückwärtseinsetzen).
Zeitaufwand
Die Zerlegung von A in U · O kostet Zeit proportional zu m3 ; es sind m · m Koeffizienten zu berechnen und die dazu erforderlichen Skalarprodukte werden mit zunehmendem m ebenfalls länger.
Wenn mehrere rechte Seiten r vorliegen, wird die Zerlegung deshalb nur einmal vor der Ermittlung
der zugehörigen Lösungen durchgeführt.
- 46 -
D.2. Gaußsches Verfahren
D.2
Gaußsches Verfahren
Die Formeln hierzu sind aus der Matrizenmultiplikation herleitbar. Da die Zerlegung nicht eindeutig
ist, wird gesetzt:
oii = 1
(Gauss)
1
1
j
?
1
∅
j-
Formeln:
O
1
aik =
1
1
A
uij
m
?
U
(D.1)
Für die Dreiecksmatrizen wird
k
i
uij ojk .
j=1
-
∅
m
X
= 0
für j > i,
ojk = 0
für j > k,
m
aik =
also
i
X
uij ojk
für i ≤ k,
(D.2)
uij ojk
für i ≥ k.
(D.3)
j=1
aik =
k
X
j=1
Aus (D.2) folgt
aik =
i−1
X
j=1

uij ojk + uii oik
;
oik = aik −
i−1
X
j=1
- 47 -

uij ojk  /uii
für i < k
KAPITEL D - Lineare Gleichungssysteme
und aus (D.3)
aik =
k−1
X
uij ojk + uik okk
mit
okk = 1
;
uik = aik −
k−1
X
uij ojk
für i ≥ k
j=1
j=1
Formeln für die rechte Seite:
(Gauß und andere Formen der Dreieckszerlegung, z.B. Cholesky)
ri =
i
X

uij yj
;
analog zu Gl. (D.2)
yi = ri −
j=1
yi =
m
X
i−1
X

uij yj  /uii
(Staffeln)
j=1
oij xj
;
wegen oii = 1
und oij = 0
für j < i
j=1
;
yi =
m
X
oij xj + xi
;
j=i+1
xi = yi −
m
X
oij xj
j=i+1
(Diese letzte Formel gilt wegen oii = 1 nur für Gauß.)
Schlecht konditionierte Matrizen
Falls sich sehr kleine uii ergeben (oder gar uii = 0 !), sind die oik nur ungenau bzw. nicht berechenbar.
Es muß dann eine Pivot-Suche durchgeführt werden, bei der die Zeilen von A und die von r vertauscht
werden. Das Verfahren ist dann nicht mehr mit Trennung der Einzelschritte (Behandlung von A und
r) durchführbar!
- 48 -
D.3. Cholesky-Verfahren
D.3
Cholesky-Verfahren
A sei symmetrisch und positiv-definit. Dann läßt sich A so zerlegen, daß gilt
d.h. U = O T , also A = O T · O.
uik = oki ,
Es braucht also nur die halbe Matrix bearbeitet zu werden!
Formeln:
aus (D.2):

oik = aik −
i−1
X

oji ojk  /oii
;
für i < k
(D.4)
j=1
und
oii oii = aii −
i−1
X
oji oji ;
für i = k
;
j=1
j=1
Rechte Seite:

yi = ri −
i−1
X

oji yj  /oii
(Staffeln)
j=1

xi = yi −
v
u
i−1
X
u
o2ji
oii = taii −
m
X

oij xj  /oii
(Lösen)
j=i+1
- 49 -
(D.5)
KAPITEL D - Lineare Gleichungssysteme
D.3.1
Effiziente Speicherung von A und O
D.3.1.1
Dreiecksmatrizen für Cholesky-Verfahren
Da aik = aki und uik = oki , müssen nur Elemente auf und oberhalb der Diagonalen gespeichert werden.
Für die Elemente oii wird 1/oii abgespeichert (weil stets die Kehrwerte benötigt werden).
Speicherung der aik bzw. oik in einem eindimensionalen Feld A(·):
k=
1
2
3
4
5
6
i = 1 (1) (2) (4) (7) (11) (16)
2
(3) (5) (8) (12) (17)
3
(6) (9) (13) (18)
4
(10) (14) (19)
5
(15) (20)
6
O
Spaltenweise Speicherung
(·) Index in A
m+1
(21)
m
Speicherbedarf für m×m Matrix:
(m · m + m)/2
Plätze
Index JA in A für das Element aik :
vor der Spalte k sind k − 1 Spalten gespeichert
;
((k − 1) · (k − 1) + (k − 1))/2
Plätze
JA = (k · k − k)/2 + i
Anmerkung:
• Bei der Berechnung der oik , yi , xi kann der Index oft auch durch Hochzählen ermittelt werden,
• spezielle Routinen für Einspeichern, Multiplikation, Einarbeiten von Randbedingungen und
Drucken sind erforderlich.
- 50 -
D.3. Cholesky-Verfahren
D.3.1.2
Skylinetechnik
Die globalen Matrizen großer Systeme sind oft nur dünn besetzt. Koeffizienten aik 6= 0 können nur
dann entstehen, wenn es auch ein Element von i nach k gibt. Aus den Formeln (D.4) und (D.5) ist
abzulesen, daß für alle Matrixelemente gilt:
oik = 0, falls ajk = 0 für alle j ≤ i . Führenden Nullen einer Spalte müssen nicht berechnet und also
auch nicht gespeichert werden! Man speichert die Matrix unter Ausschluß dieser Nullen spaltenweise
hintereinander in ein eindimensionales Feld und merkt sich den Beginn einer jeden Spalte in einem
Indexfeld. Die Ersparnis an Speicherplatz und Rechenzeit ist enorm.
Die Technik wird hier anhand von Dreieckselementen mit einem Freiheitsgrad je Knoten erläutert
(Knotennummer ist auch die Gleichungsnummer). Liegen nF Freiheitsgrade je Knoten vor, erhalten
die Freiheitsgrade am Knoten i die Gleichungsnummern (i − 1) ∗ nF + 1 bis (i − 1) ∗ nF + nF , wenn die
Nummerierung mit 1 beginnt. Das Verfahren ist dann analog mit diesen Nummern durchzuführen.
Elementverzeichnis
Element
1
:
:
e
:
:
m
Knoten
:
:
:
j, k, i
:
:
:
1
Globale Matrix
i j
k
n
1
i
X
X
X
j
u
X
X
X: speichern
u: Untermatrix
k
u
u
X
(nur für Gauß)
n
Berechnung des Indexfeldes iSky
•
Feld mit 0 vorbelegen (n + 1 Elemente!)
•
Für alle Elemente e von 1 bis m:
und alle Kombinationen von Knotennummern i, k am Element e:
Berechne maximale Spaltenlänge zu Spalte k
→ iSky(1+k) = Max{iSky(1+k), k − i + 1}
•
iSky(1) auf 1 setzen (Startindex)
Mögliche Kontrolle: Falls noch Zahlen im Indexfeld Null sind,
hängen an den entsprechenden Knoten keine Elemente!
•
Berechne Anfangsindizes der Spalten:
Für alle Spalten k = 2 bis n + 1:
→ iSky(1+k) = iSky(1+k) + iSky(k)
(Im letzten Element des Indexfeldes steht die Gesamtlänge der Matrix +1.)
- 51 -
KAPITEL D - Lineare Gleichungssysteme
Beispiel: (n = 7, m = 4)
Elementverzeichnis
e
1
2
3
4
i
1
2
3
5
j
4
3
4
6
Indexfeld
k
2
7
5
7
iSky
Sp.-Längen
Indizes
=⇒
(1)
0
1
(2)
1
2
(3)
2
4
(4)
2
6
(5)
4
10
(6)
3
13
(7)
2
15
(8)
6
21
Die Matrixelemente werden im eindimensionalen Feld A gespeichert an den Plätzen:
Z. / Sp.
1
2
3
4
5
6
7
1
1
-
2
2
3
-
3
.
4
5
-
4
6
7
8
9
-
5
.
.
10
11
12
-
6
.
.
.
.
13
14
-
7
.
15
16
17
18
19
20
Erläuterung:
Matrix A
ist frei ab
Index 21
.
-
Führende Null
Untermatrix, symmetrisch
(nicht gespeichert)
Indexformeln in Routinen für Gleichungssystem
Beginn von Spalte k
oberste Zeilennr. zu k
Hauptdiagonalelement (k, k)
Obermatrixelement (i, k)
:
:
:
:
iSky(k)
iSky(k) -iSky(k + 1) +k +1
iSky(k + 1) -1
iSky(k + 1) -1 +i -k
Nutzen am Beispiel G3 zu Grundwassermodell
Länge der Matrix bei n=151 Knoten:
Voll gespeichert
Dreiecksspeicherung
Skyline
:
:
:
n∗n
n ∗ (n − 1)/2
LMAT =
22.801
11.476
1.638
Anzahl der Multiplikationen bei Zerlegung:
Dreiecksspeicherung
:
n P
k
P
i=
k=1 i=1
Skyline
:
n
P
k(k + 1)/2
k=1
≈ n ∗ ( LMAT/n )2 /2 = LMAT2 /(2n)
|
{z
585.276
8.884
}
mittlere Höhe
G3 ausgezählt
- 52 -
9.880
∼ n3 !
D.3. Cholesky-Verfahren
Modifikationen - unsymmetrische Matrizen
Die Hauptdiagonale wird vorweg gespeichert in A(1) bis A(n) und das Indexfeld wird nur noch für
das darüberliegende Restdreieck aufgebaut. Dadurch erhält man direkteren Zugriff auf die Hauptdiagonalelemente und kann die Untermatrix (zeilenweise!) – die von der Form her symmetrisch zur
Untermatrix ist – mit dem gleichen Indexfeld iSky ansprechen. Für jede Spalte wird ein Platz weniger
reserviert, weil das Diagonalelement entfällt.
Sei lDreieck = iSky(n)-1 die Anzahl der Koeffizienten oberhalb der Hauptdiagonalen, so findet man
in A
Index
i
n+kSky(k)
n+kSky(k+1)-1
n+lDreieck+kSky(i)
n+lDreieck+LkSky(i+1)-1
Inhalt
Diagonalelement Aii
oberstes Nicht-Null-Element der Spalte k
Obermatrix-Element Ak−1 k
linkestes Nicht-Null-Element von Zeile i
Untermatrix-Element Ai i−1
- 53 -
KAPITEL D - Lineare Gleichungssysteme
D.4
Anhang: Programmbeispiel Choleskylöser
Es folgen Listings von Funktionen (als MATLAB M-files) und eine kleine Anwendung hinter Funktion
chol3.
function MAT =chol0 (n)
% MAT =chol0(n) erzeugt
% fuer Cholesky-Loeser,
L=(n*n+n)/2;
MAT=zeros(L,1);
return
leere Dreiecksmatrix MAT mit n Zeilen und Spalten
Ratke, 2000
%Laenge des ganzen Dreiecks
%mit Nullen vorbelegen
In chol6 sieht man gut, wie der Index ia hochgezählt wird. Die Ausgabe erfolgt zeilenweise und die
Obermatrix wird nicht gezeigt.
function chol6 (MAT,TXT)
% chol6 (MAT,TXT) gibt Dreiecksmatrix MAT mit Text TXT aus
% (als untere Dreiecksmatrix)
% Cholesky-Loeser, Ratke 2000
disp (TXT);
n1=length(MAT)+1;
%der erste Platz hinter der Matrix
ia=1;
%Beginn 1. Spalte
n=0;
while ia<n1
%solange
disp((MAT(ia:ia+n,1))’)
n=n+1;
ia=ia+n;
end
return
wir in der Matrix sind
%eine Zeile zeigen
%Zeilenlaenge
%Anfang naechste Zeile
- 54 -
D.4. CHOLESKY-ZERLEGUNG, Dreiecksspeicherung
Viele Systeme haben nF (mehr als eine) Unbekannte pro Knoten, zum Knoten j gehören dann die
Gleichungen (j − 1) ∗ nF + 1 bis j ∗ nF . Man speichert dann nicht einzelne Koeffizienten ab sondern
läßt das durch eine Routine erledigen, die eine ganze Elementmatrix einspeichert:
function MAT =chol1 (ALT,EMAT,Knoten)
% MAT =chol1 (MAT,EMAT,Knoten)
% speichert Elementmatrix EMAT in globale Dreiecksmatrix MAT ein
% in Knoten stehen die Knotennummern zur Elementmatrix (Beginn mit 1)
% die Elementmatrix hat sizeof(Knoten)*(Anzahl Freiheitsgrade je Knoten)
% Zeilen und Spalten
% fuer Cholesky-Loeser,Ratke, 2000
% Gleichungsnummernvektor bilden
nk=length(Knoten); %Anzahl Knoten
ne=length(EMAT);
%Groesse Elementmatrix
nf=ne/nk;
%Freiheitsgrade je Knoten
i=0;
for j=1:nk
g=Knoten(j)*nf-nf;%globale Gleichungsnummer -1 zum j-ten Knoten des Elements
for k=1:nf
%ueber alle Freiheitsgrade
i=i+1;
Nr(i)=g+k;
%Gl.-Nrn. mit 1 beginnend, alle Freiheitsgrade
end
end
MAT=ALT;
for j=1:ne
% alle Spalten der Elementmatrix
k=Nr(j);
% Gl.-Nr. im Globalen System
d=(k*k+k)/2; % Zeiger auf Diagonalelement
MAT(d)=MAT(d)+EMAT(j,j); %Diagonalelement
for j1=1:ne % alle Zeilen
i=Nr(j1); % glob. Nr.
if (i<k)
ik=d+i-k;
MAT(ik)=MAT(ik)+EMAT(j1,j); %oberes Dreieck
end %i
end %j1
end %j
return
- 55 -
KAPITEL D - Lineare Gleichungssysteme
function [MAT,Resei] =chol2 (ALT,Ralt,ir,wert)
% [MAT,Resei] =chol2 (MAT,Resei,ir,wert)
% beruecksichtigt Randbedingung fuer Gleichung ir
% mit Wert wert in globaler Dreiecksmatrix MAT und rechter Seite Resei
% fuer Cholesky-Loeser, Ratke 2000
MAT=ALT;
Resei=Ralt;
% kopieren
n1=length(MAT)+1; % Laenge Dreiecksmatrix+1
j=(ir*ir-ir)/2;
% belegte Anzahl vor Spalte ir
for i=1:(ir-1)
j=j+1;
%Element i,ir
Resei(i)=Resei(i)-wert*MAT(j); %Produkt abziehen
MAT(j)=0.0;
%Spalte auf 0
end
j=j+1;
Resei(ir)=wert;
MAT(j)=1.0;
% Diagonalelement
j=j+ir;
% ir,ir+1
i=ir+1;
while(j<n1)
Resei(i)=Resei(i)-wert*MAT(j);
MAT(j)=0.0;
j=j+i;
i=i+1;
end
return
%solange j in Matrix ist
%Produkt abziehen
%Zeile auf 0
%Element ir,i+1
- 56 -
D.4. CHOLESKY-ZERLEGUNG, Dreiecksspeicherung
Oft braucht man auch eine Matrix-Vektor-Multiplikation, z.B. um den Fehler nach Lösen zu berechnen:
Fehler =Resei- Chol3 (A, X);
function Cvek =chol3 (AMAT,Bvek)
% Cvek =chol3 (AMAT,Bvek)
% Matrix-Vektor-Multikation Cvek=AMAT*Bvec
% fuer symmetrische Dreiecksmatrix AMAT
% zu Cholesky-Loeser, Ratke 2000
n=length(Bvek) ;
Cvek=zeros(n,1);
%Nullenvektor
j=0;
for k=1:n
for i=1:(k-1)
j=j+1;
Cvek(i)=Cvek(i)+AMAT(j)*Bvek(k);
Cvek(k)=Cvek(k)+AMAT(j)*Bvek(i);
end
j=j+1;
Cvek(k)=Cvek(k)+AMAT(j)*Bvek(k);
end
return
% zeigt auf (i,k)
%Produkt (i,k)*k
%Produkt (k,i)*i
%Produkt (k,k)*k
Bei vielen Gleichungen (einige Hundert) ist die Lösung nicht immer genau. Eine Nachiteration kann
wie folgt realisiert werden.
%Matrix MAT
tol
=
CHMAT
=
Xvektor =
eps
=
und rechte Seite ReSei sind fertig aufgebaut.
max(abs(Resei))*1.E-6;
% Toleranz: 6. Stelle!
chol4(MAT);
% Zerlegung
chol5(CHMAT, ReSei);
% erste Loesung
10*tol;
% Dummy
while (eps>tol)
Rest
= ReSei - chol3(MAT, Xvektor);
eps
= max(abs(Rest));
Xvektor = Xvektor +chol5(CHMAT, Rest);
end
clear (Rest, eps, tol, CHMAT);
% Residuum
% groesster Fehler
% Verbesserung
% fertig
- 57 -
KAPITEL D - Lineare Gleichungssysteme
Zerlegen der Matrix: Die zerlegte Matrix kann im gleichen Platz stehen wie das Original. Allerdings
kann man dann den Fehler nicht berechnen!
z.B: MAT =chol4 (MAT);
function MAT =chol4 (AMAT)
% MAT =chol4 (ALT)
% zerlegt eine symmetrische Dreiecksmatrix AMAT
% in ihre gestaffelte Form MAT
% AMAT darf durch MAT ueberschrieben werden
% Cholesky-Loeser, Ratke 2000
n1=length(AMAT);
MAT=AMAT;
%Kopie
ka=0; % vor Spalte k
k =0;
while (ka<n1)
%alle Spalten k der Matrix, Zaehlung ab 1
k=k+1;
ia=0; %vor Spalte i
for i=1:k
%alle Elemente aus Spalte k
for j=1:(i-1), MAT(ka+i)=MAT(ka+i)-MAT(ia+j)*MAT(ka+j); end %j (Skprod.)
if (i<k),
MAT(ka+i)=MAT(ka+i)*MAT(ia+i); %Kehrwert Diag. i!
else,
MAT(ka+k)=1.0/sqrt(MAT(ka+k)); end
ia=ia+i;
end %i
ka=ka+k;
end %k
return
- 58 -
D.4. CHOLESKY-ZERLEGUNG, Dreiecksspeicherung
Die Lösung kann am gleichen Platz stehen wie die Rechte Seite. Auch dann kann man den Fehler nicht
berechnen!
z.B: ReseiX =chol5 (MAT, ReseiX);
function X =chol5 (MAT,B)
% Xvek =chol5 (MAT, Resei)
% berechnet die Loesung Xvek aus rechter Seite Resei
% und der gestaffelten Form MAT (in Dreiecksform)
% Resei darf durch Xvek ueberschrieben werden
% Cholesky-Loeser, Ratke 2000
n=length(B);
X=B;
%Kopie
% Vorwaertseinsetzen
ia=0; %vor Spalte i
for i=1:n
%alle Elemente B/X
for j=1:(i-1), X(i)=X(i)-MAT(ia+j)*X(j); end %j (Skalarprodukt)
X(i)=X(i)*MAT(ia+i); %Kehrwert im Diagonalelement i!
ia=ia+i;
end %i
%Rueckwaertseinsetzen
for i=n: -1: 1
ia=ia-i;
X(i)=X(i)*MAT(ia+i); %Kehrwert im Diagonalelement i!
for j=1:(i-1), X(j)=X(j)-MAT(ia+j)*X(i); end %j (Skalarprodukt)
end %i
return
- 59 -
KAPITEL D - Lineare Gleichungssysteme
D.5
Iterative Lösung
Die direkten Methoden (Gauss, Cholesky) benötigen einen mit der Anzahl n der Unbekannten
linear und mit der Bandbreite b quadratisch wachsenden Rechenzeitbedarf. Da bei der Zerlegung, bei
Vor- und Rückwärtseinsetzen die erste Zeile indirekt in die Berechnung aller nachfolgenden eingeht,
wird zusätzlich die Lösung mit wachsendem n auch immer ungenauer, da Fehler durch die gesamte
Berechnung hindurchgeschleppt werden. Eine gute Alternative bieten iterative Lösungsverfahren. Sie
sind ab ca. 1000 Gleichungen genauer und ab ca. 5000 Unbekannten auch schneller als direkte Löser.
Hier wird das c-g-Verfahren vorgestellt, das nur auf symmetrische Systeme anwendbar ist. Andere
Iterationsschemata funktionieren auch für unsymmetrische Koeffizientenmatrizen.
Literatur: W. Hackbusch, Iterative Lösung großer schwachbesetzter Gleichungssysteme,
Teubner Studienbücher Mathematik, Stuttgart 1991
D.5.1
Grundidee
Ax = r
F
=
Ein symmetrisches lineares Gleichungssystem
xT Ax
− xT r → Min
2
(D.6)
und das zugehörige Variationsproblem
(D.7)
haben die gleiche Lösung! Beweis in Indexschreibweise:
Für F
=
∂F
=0 =
∂xj
xi aik xk
− xj rj → Min
2
müssen alle partiellen Ableitungen ∂F/∂xj verschwinden.


i=j=k:





i=j=
6 k:
1
i 6= j = k :

2

(=




2ajj xj
ajk xk
xi aij
ajk xk
2ajk xk








wegen aik
− rj = Ax − r
(D.8)


= aki ) 




Wenn also auf einem neuen Weg das Minimum von Gl. (D.7) gefunden werden kann, hat man auch
die Lösung zu (D.6)! Ein solcher Weg wird nachfolgend vorgestellt und an einem kleinen Beispiel
illustriert:
4u − 2v = 6
−2u + 4v = 6
"
⇒ A=
4 −2
−2
4
#
"
;
r=
6
6
#
"
;
x=
|
u
v
#
"
=
3
3
{z
noch unbekannt
Das Variationsproblem (D.7) lautet in diesem Fall F = (4u2 + 4v 2 − 4uv)/2 − 6u − 6v
F = 2u2 + 2v 2 − 2uv − 6u − 6v und man verifiziert Beweis (D.8) durch
∂F/∂u =
4u − 2v − 6 = 0
∂F/∂v = −2u + 4v − 6 = 0
- 60 -
#
}
bzw.
D.5. Iterative Lösung
Darstellung des Beispielproblems
Bild 1:
Das Funktional zum Beispiel
F = 2u2 + 2v 2 − 2uv − 6u − 6v
bildet ein Paraboloid. Die räumliche Darstellung im Bereich −1 ≤ u, v ≤ 7 enthält einige
Höhenschichtlinien des Funktionals; diese
sind Ellipsen mit dem Mittelpunkt (3, 3).
Die Hauptachsen aller Ellipsen liegen auf
den vertikalen Ebenen v = u und v = 6 − u,
ebenso die Scheitel.
Gesucht ist der tiefste Punkt des Paraboloids.
D.5.2
Methode des stärksten Abstiegs
Beginn an einem beliebigen Startpunkt, z.B. 0x = 0, im Minibeispiel also 0u = 0 , 0v = 0. Man
berechnet eine Suchrichtung 0g aus dem negativen Gradienten an dieser Stelle – vergleiche Gl. (D.8):
0
g = −grad F (0x) = −∂F/∂xj = r − A 0x
bzw. später nach der ν-ten iterativen Verbesserung:
"
Im Beispiel starten wir mit:
1
x(λ) = 0x + λg
0g
=r=
νg
= r − A νx.
#
6
. Der verbesserte Vektor ergibt sich danach zu
6
mit noch unbekanntem optimalem λ .
Die zu 1x(λ) gehörigen Funktionswerte Fλ bilden eine Kurve auf dem Funktional. Der tiefste Punkt
dieser Kurve ergibt das beste λ aus den Minimumbedingungen:
Fλ = (0x + λ 0g)T A(0x + λ 0g)/2 − (0x + λ0g)T r → Min
= (0xT A 0x +0 xT A λ 0g + λ 0g T A 0x + λ2 0g T A 0g)/2 − (0x + λ0g)T r
∂Fλ /∂λ = 0 = 0g T A 0x + λ 0g T A 0g − 0g T r
0g T 0g
0g T (r − A 0x)
=
; λopt =
0g T A 0g
0g T A 0g
- 61 -
KAPITEL D - Lineare Gleichungssysteme
Für das kleine Zahlenbeispiel erhalten wir
λopt =
0g T 0g
0g T A 0g
=
6
6
6 6 72
4 −2
6
−2
4
6
6 6 12 12 144
= 1/2
und sofort die Lösung des Variationsproblems und natürlich auch des Gleichungssystems:
"
1
0
0
x = x+λ g =
0
0
#
1
+
2
"
6
6
#
"
=
3
3
#
"
=
u
v
#
!
gesucht
Zugegeben, hier waren wir etwas glücklich: Der Startpunkt (0,0) lag zufällig auf einem Scheitel der
elliptischen Höhenlinie F = 0. Etliche Iterationen mehr werden benötigt, wenn der Startpunkt nicht
auf einem solchen Scheitel liegt, wie bei b) im folgendem Bild.
Bild 2: Abstiegsverfahren im Grundriß:
a) Jedes Gradientenvervahren, das auf einem
Ellipsenscheitel beginnt, findet das Minimum in
einem Schritt.
b) Ein Schritt nach der Methode des stärksten
Abstiegs endet stets tangential zu einer Höhenschichtlinie. Der nächste steht senkrecht darauf.
Hier wird die Lösung erst nach sechs Iterationen
gefunden (abhängig von der Genauigkeit).
c) Iteration mit konjugierten Gradienten benötigt
nicht mehr Schritte, als Unbekannte n vorhanden
sind, hier n = 2.
D.5.3
Konjugierte Gradienten
englisch: conjugate gradients, daher auch cg-Verfahren
Die Iteration (Bild 2b) läuft im Zickzack über die Ellipsenachsen hinweg, denn
νg ` ν+1g,
ν+1g ` ν+2g,
; νg k ν+2g.
Die Suchrichtung stärkster Abstieg“ ist nach dem ersten Schritt nicht mehr optimal.
”
- 62 -
D.5. Iterative Lösung
Eine wesentlich verbessertes Konvergenzverhalten ergibt sich, wenn konjugierte Suchrichtungen νg
benutzt werden:
0x
Start:
= beliebig
= 0r − A 0x
0g = 0d
Startlösung
Restfehler
Suchrichtung wie vor
0d
Iteration:
h
e
λ
ν+1x
ν+1d
ν+1g
= A νg
= νg T h
= νdT νg/e
= νx + λ νg
= νd − λh
= ν+1d − ν+1g(ν+1dT h)/e
Matrix*Vektor
(**)
optimal
verbesserte Lösung
neuer Restfehler
neue Suchrichtung
Anmerkungen:
1) Die Suchrichtungen dieses Algorithmus bleiben optimal bezüglich der Minimumsuche. Wenn sich
e = 0 in (**) ergibt, muß die Iteration abgebrochen werden. Sie ist dann auch beendet, es gibt keine
weitere Verbesserung mehr. Das ist spätestens nach n Schritten der Fall, meistens jedoch eher.
2) Die aufwendigsten Operationen im Iterationsschritt sind nur ein Matrix-Vektorprodukt h sowie drei
Skalarprodukte verschiedener Vektoren. Da es beim Matrix-Vektorprodukt nicht auf die Reihenfolge
ankommt, muß die Matrix A nicht wie bei der Skylinetechnik explizit aufgebaut werden! Es genügt,
die aus den Elementgleichungen entstehenden Koeffizienten aik mit ihrer Zeilen- und Spaltennummer
i bzw. k in drei Vektoren abzulegen (Zeile, Spalte, Wert). Diese müssen nicht sortiert sein.
D.5.4
Konjugierte Gradienten mit Vorkonditionierung
englisch: preconditioned conjugate gradients, daher auch pcg-Verfahren
Alle iterativen Verfahren zum Lösen linearer Gleichungen lassen sich durch Vorkonditionierung weiter
beschleunigen. Mit der unteren Dreiecksmatrix L wird das Ausgangsproblem transformiert:
Ax = r
⇐⇒
T
L
| A
{z L} y = L r
'I
mit der Rücktransformation x = LT y
Es gibt verschiedene Methoden (s. Literaturhinweis), L so zu bestimmen, daß das unterklammerte Produkt eine Näherung der Einheitsmatrix wird. Die Berechnung von y mit dem cg-Verfahren verläuft
umso schneller, je besser diese Näherung ist (im Idealfall in einem Iterationsschritt). Die Rücktransformation ist trivial wegen der Dreiecksform von L. Das pcg-Verfahren hat nur noch einen Zeitbedarf
von
t ∼ n log n
gegenüber n3
eine enorme Verbesserung!
(Leider muß zur Bestimmung von L die Matrix A doch wieder explizit aufgebaut werden.)
- 63 -
KAPITEL D - Lineare Gleichungssysteme
D.6
Optimale Knotennumerierung
Eine effiziente Speicherung (daraus resultierend auch schnellste Bearbeitung der Gleichungssysteme)
bei der Skyline- und verwandten Techniken, Abschnitt D.3.1.2, wird nur erreicht bei einer günstigen
Numerierung der Knoten eines Systems. Das heißt, die Numerierung muß so gewählt werden, daß
die von Null verschiedenen Matrixelemente möglichst nahe der Hauptdiagonalen liegen. Solche Nichtnullelemente aik entstehen nur, wenn es ein Element gibt, das beide Knoten i und k enthält. (Bei
Systemen mit nF > 1 Freiheitsgraden pro Knoten ist aik eine (nF × nF )-Untermatrix, was aber an
der Problemstellung nichts ändert.)
Fachwerkträger
Das nebenstehende kleine Netz ist einmal zufällig (senkrechte Ziffern) und optimal (kursiv) numeriert. Die zugehörigen
Matrixbelegungen darunter verdeutlichen den Effekt:
Sämtliche grau unterlegten eingeschlossenen Nullelemente
links sind durch Umnumerierung außerhalb der Skyline
plaziert worden. Die Zahlen in den Matrixelementen geben
an, wie viele Elemente darüber vorhanden sind =
ˆ Anzahl
der Multiplikationen im Skalarprodukt beim Staffeln.
links: 45 Matrixelemente
Multiplikationen:
8·1+6·2+6·3+4·4
+3·5+3·6+3·7+8+9
=125
rechts: 27 Matrixelemente
Multiplikationen:
9 · 1 + 8 · 2 = 25
; 80% gespart!
Die zunächst so einfach anmutende
Aufgabe kann bei größeren Systemen kaum noch von Hand bewältigt
werden. Das System der Mecklenburger Boddenkette mit 781 Knoten
stellt dabei noch längst keine Obergrenze dar!
Eine automatische interne Umnumerierung kann mit den nachfolgend
beschriebenen Methoden realisiert
werden. Die internen Knotennummern werden ausschließlich benutzt
beim Einspeichern der Elementmatrizen in das globale Gleichungssystem, dem Umordnen der rechten
Seite vor dem Lösen und der Lösung danach. Für den Anwender sind bei Ein- und Ausgabe nur die
externen Knotennummern (beliebig) sichtbar.
- 64 -
D.6. Optimale Knotennumerierung
D.6.1
Cuthill-McKee-Algorithmus
Für eine geschickte Umnumerierung ist nur die Kenntnis der topologischen Beziehungen notwendig;
Koordinaten der Knoten werden nicht gebraucht. Als Nachbarn von i werden alle Knoten k bezeichnet,
die mit i gemeinsam an irgendeinem Element vorkommen. Natürlich ist i dann auch Nachbar von k.
Die Anzahl aller Nachbarn von i heißt Grad gi von i.
Aus dem Elementverzeichnis stellt man zunächst eine
kompakte Nachbarschaftstabelle auf, hier für den eingangs dargestellten Fachwerkträger. Man setzt jetzt
einen Startknoten iStart als erstes Element in einen
Vektor. Dieser sollte ein Randknoten sein. Randknoten haben meistens geringere Grade als Innenknoten.
Wir nehmen hier also iStart = 5 wegen seines minimalen Grades g5 = 2. Der Grad aller Nachbarn von
iStart wird um 1 vermindert, da iStart schon einsortiert ist. Der Vektor wird dann mit den Nachbarn von
iStart – in aufsteigender Reihenfolge ihrer Restgrade
– aufgefüllt. Wieder werden die Restgrade der Nach-
Index Sp.1 Sp. 2 bis 1 + gi
i gi
Nachbarn
1
4
4 2 8 10
4
9 4 8
1
2
3
4
8 10 6
7
4
4
5 9 2
1
5
2
9 4
6
3
10 3 7
7
2
3 6
8
4
2 1 10 3
3
2 4 5
9
10
4
1 8 3
6
barn eines gerade eingesetzten Knotens um 1 vermindert. Das Ganze so lange wiederholen, bis alle
Knoten im Vektor stehen. Es ist klar, daß jeder Knoten nur einmal eingetragen wird. Man erhält so
die externen Knotennummern in interner Reihenfolge:
Index:
1 2 3 4 5 6 7 8 9 10
ext. Nummer: 5 9 4 2 1 8 10 3 6 7
Die Indizes sind die internen Knotennummern zu den darunter stehenden externen, sie geben hier
genau die optimale Skyline (siehe oben). Es wurden ja benachbarte Knoten möglichst eng aufeinander
folgend in den Vektor einsortiert. Ein genau so gutes Ergebnis hätten wir erhalten, wenn wir mit
dem Startknoten 7 begonnen hätten. Der Umnumerierungsvektor interne Knotennummern in externer
Reihenfolge
ext. Nummer: 1 2 3 4 5 6 7 8 9 10
interne:
5 4 8 3 1 9 10 6 2 7
D.6.2
ist leicht zu erstellen.
Rückwärtsnumerierung
Zu jeder neuen Numerierung soll immer auch ihre Umkehrung ausprobiert werden.
; interne Nummer ⇐ Knotenanzahl +1 - Index
Bei obigem Beispiel also – mit gleicher Skylinelänge –
Index:
1 2 3 4 5 6 7 8 9 10
interne Nr.:
10 9 8 7 6 5 4 3 2 1
ext. Nummer: 5 9 4 2 1 8 10 3 6 7
- 65 -
KAPITEL D - Lineare Gleichungssysteme
D.6.3
GPS-Verfahren (Gibbs, Poole, Stockmeyer)
Bei größeren Systemen wird der Cuthill-McKee-Algorithmus sehr aufwendig: Es gibt viele Knoten
mit minimalem Grad, der beste Startknoten hat eventuell einen etwas höheren Grad. Deshalb muß
für mehrere Startknoten (etwa 10% bis 20% von allen) ausprobiert werden, ob sich eine verkleinerte
Skyline ergibt. Und es bleibt trotzdem unsicher, ob man das Optimum dabei findet.
Die folgende Iteration ermittelt einen größten topologischen Durchmesser:
• Beginn mit einem beliebigen Startknoten. Dieser hat die Schichtnummer (Level) 1.
• Einsortieren aller Knoten nach Cuthill-McKee. Dabei erhält jeder Knoten eine gegenüber
seinem Vorgänger um Eins erhöhte Levelnr.
• Im äußersten Level liegen die topologisch vom Startknoten am weitesten entfernten Randknoten.
• Alle diese Knoten auf dem letzten Level wieder als Startknoten benutzen! Je mehr Level erzeugt
werden, um so besser wird die Numerierung. Bei gleicher Anzahl von Schichten ist der Startknoten der günstigere, der eine geringere Breite (maximale Anzahl von Knoten in einem Level)
ergibt.
• Wiederholung, bis sich keine Verbesserung mehr ergibt.
Beginnend mit 1 als Startknoten würde sich beim Fachwerkbeispiel ergeben
Index:
ext. Nummer:
Level:
ext. Nummer:
Level:
ext. Nummer:
Level:
1
1
1
7
1
5
1
2
4
2
6
2
9
2
3 4 5 6 7 8
2 8 10 9 5 3
2 2 2 3 3 3
3 10 8 1 2 4
2 3 3 4 4 5
4 2 2 8 10 3
2 3 3 4 4 5
9 10 Breite verbessert
6 7
3 4
4
–
9 5
5 6
2
ja
6 7
5 6
2
nein
Auch wenn als erster Knoten ein denkbar ungünstiger gewählt wird, der größte Durchmesser (hier: 7
- 5) und die damit verbundene günstige Numerierung werden in wenigen Schritten gefunden!
- 66 -
D.6. Optimale Knotennumerierung
D.6.4
Relaxation (Rosen)
Der GPS-Algorithmus stellt in obiger Form aber noch nicht sicher, daß die Knoten innerhalb eines
Levels tatsächlich in optimaler Folge einsortiert wurden. Optimal wäre es, wenn die Nichtnull-Elemente
der Matrix nur in einem dünnen Band längs der Haupdiagonale angeordnet wären:
Bei diesem idealen Zustand liegt eine Hälfte der Nachbarn von Knoten
i vor und die andere hinter dem Knoten i. Die Nummer vom Knoten
i ist genau der Mittelwert der Knotennummern aller seiner Nachbarn.
Daraus leitet sich die folgende iterative Verbesserung der internen neuen
Knotennumerierung her:
1. Vorbereitung: Belege die erste Zeile einer 2×n-Matrix mit den externen Knotennummern in der
internen Reihenfolge, die sich aus dem GPS-Algorithmus ergeben hat.
2. Berechne für jeden Knoten den Mittelwert der internen Knotennummern seiner Nachbarn und
speichere das Ergebnis in der zweiten Zeile als reelle Zahl. (Nicht gerundet!)
3. Sortiere die Spalten 2 bis n − 1 der Matrix nach aufsteigenden Werte dieser zweiten Zeile –
mit einem schnellen Algorithmus, am besten: Sortieren durch Mischen“. Start und Endknoten
”
bleiben am Anfang und Ende; es ist klar, daß der neue Knoten 1 nur Nachbarn mit größerer
und der neue Knoten n nur solche mit kleinerer Knotennummer haben können und daher ihre
Numerierung hier nicht verbesserbar ist.
4. Überprüfe, ob die jetzt in der ersten Zeile stehende interne Folge eine kleinere Matrixbelegung als
bisher ergibt. Wenn ja, rette das Ergebnis und setze die Iteration mit Punkt 2 fort. Andernfalls:
Ende der Iteration!
D.6.4.1
Sortieren durch Mischen, Kurzbeschreibung
Vorbemerkung: Eine oft benutzte Methode ist Bubble-Sort“: Suche für jedes Element i der zu sortie”
renden Folge von n Elementen aus dem unsortierten Rest das kleinste Element heraus und vertausche
es mit dem Element i. Es werden dabei für jedes i genau n − i Vergleiche durchgeführt, insgesamt also
Pn
i=1 (n − i) = n ∗ (n − 1)/2. Der Aufwand steigt also quadratisch mit der Länge – fatal!
Eine beliebige Folge wird beim Sortieren durch Mischen zunächst aufgefaßt als eine Anzahl von n
Boxen, innerhalb deren schon eine sortierte Folge der Länge LS = 1 vorhanden ist. Aus je zwei
dieser Boxen wird (durch Mischen) nun eine neue erstellt: Das kleinere Element, das in den beiden
Eingangsboxen vorn steht, kommt als nächstes in die neue Box. Das wird so lange wiederholt, bis beide
Eingänge leer sind. Dabei verdoppelt sich die Sortierlänge. Diese Mischdurchgänge werden wiederholt,
bis LS ≥ n wird. In jedem der log2 n (aufgerundet) Mischdurchgänge werden dabei weniger als n − 1
Vergleiche durchgeführt. Der Gesamtaufwand ist also nur proportional zu n log n .
D.6.5
Zusammenfassung
Die vorstehend beschriebenen Methoden erlauben eine vollautomatische Umnumerierung der Knoten
eines Systems, die zu einer sehr kompakten Skyline-Matrix führen. Die Effektivität wird am eingangs
gezeigten Beispiel der Mecklenburger Boddenkette demonstriert, deren beste Numerierung von Hand“
”
nicht so einfach zu finden ist.
- 67 -
KAPITEL D - Lineare Gleichungssysteme
Die ursprünglichen Knotennummern, mit Zufallszahlen generiert, erzeugen eine riesige Matrix mit
sehr vielen Nullelementen innerhalb der Skyline –
rechts die entsprechende Belegung der Obermatrix.
Levelbildung (bei ungünstigem Startknoten) findet
hintersten Winkel “ des Systems.
”
Von dort ausgehend zu einer gegenüber liegenden
äußersten Ecke ...
Nach einer weiteren Iteration ergibt sich der topologisch größte Durchmesser,
der zur besten Numerierung nach der GPS-Methode
führt.
- 68 -
D.6. Optimale Knotennumerierung
Rechts: Umnumerierung nach Gibbs, Poole und
Stockmeyer reduziert die ursprungliche Skyline
bei diesem Beispiel auf nur ca. 6% des Speicherplatzes; noch größer ist die Ersparnis bei der Rechenzeit.
Unten links: Relaxation nach Rosen behält Startund Endknoten bei, es ergeben sich nur kleine lokale Änderung der Numerierung – in der Darstellung
kaum sichtbar.
Unten rechts: Die zuvor glatte Skyline wird etwas
rauher, dennoch wird der Speicherbedarf noch einmal erheblich vermindert.
D.6.5.1
Optimale Numerierung und iterative Löser
Für das gewöhnliche cg-Verfahren bringt eine Umnumerierung keinerlei Vorteile. Das ändert sich, wenn
Vorkonditionierung (pcg) benutzt wird. Die Verfahren zur Bestimmung der Transformationsmatrizen
beruhen auf unvollständigen (Gauss- oder Cholesky-)Zerlegungen, d.h. es wird eine Dreieckszerlegung durchgeführt, bei der sämtliche Nullen übergangen werden – auch die, die von der Skyline
eingeschlossen sind.
Die Zerlegung wird also umso besser (d.h. näher an einer vollständigen Z.), je weniger solche Nullen
vorhanden sind. Ohne Knotennummernoptimierung ist Vorkonditionierung meist gänzlich uneffektiv!
- 69 -
frei für Notizen
Kapitel E
Nichtlineares Netzwerk:
Fachwerk, Theorie 2. Ordnung
- 71 -
KAPITEL E - Fachwerk
E.1
Fachwerkstab nach linearer Theorie
E.1.1
Bezeichnungen am Stabelement
J
3J
Fzk , vzk
J
6
JJ
Fxk , vxk
k
6
l
+
+
J
S
Fzi , vzi
J
3
J
6
JJ
Fxi , vxi α
i
z
6
Annahmen:
- konstanter Querschnitt A
- kleine Verformungen
(d.h. α =const.)
- kleine Verzerrungen
(d.h. E-Modul E=const.)
lz
?
lx
-
-x
E.1.2
"
Geometrie, Transformationen
cos α
sin α
#
"
=
lx /l
lz /l
#
1
= p
2
(xk − xi ) + (zk − zi )2
"
Stabverlängerung durch Verschiebung der Knoten
∆l = (vxk − vxi ) cos α + (vzk − vzi ) sin α

=
h
− cos α − sin α cos α
"
= T·
vi
vk
i 

sin α · 


vxi
vzi
vxk
vzk
#
T : Transformationsmatrix
- 72 -






xk − xi
zk − zi
#
E.1. Fachwerkstab nach linearer Theorie
Kräftegleichgewicht am Stab






"
E.1.3
Fxi
Fzi
Fxk
Fzk

Fi
Fk
#





 = 




− cos α
− sin α
cos α
sin α



·S


(E.1)
= TT · S
Materialgesetz
Spannung σ und Dehnung ε sind über das Hookesche Gesetz verknüpft:
σ = E·ε
(E.2)
S/A = E · ∆l/l

S =
E.1.4
i 

EA h
− cos α − sin α cos α sin α · 

l

vxi
vzi
vxk
vzk






(E.3)
Lineare Elementsteifigkeitsmatrix
Gleichung (E.1) läßt sich mit (E.3) umschreiben zu:






Fxi
Fzi
Fxk
Fzk




 =


=

EA 

l 

TT
− cos α
− sin α
cos α
sin α
EA
{zl


 h

 · − cos α


"
T
·
vi
vk
− sin α cos α sin α
i 

·


vxi
vzi
vxk
vzk






#
|
}
immer symmetrisch!


eF
=
EA 

l 

=
ek
· ev
cos2 α
cos α sin α
− cos2 α
− cos α sin α
2
cos α sin α
sin α
− cos α sin α
− sin2 α
2
2
− cos α
− cos α sin α
cos α
cos α sin α
2
− cos α sin α
− sin α
cos α sin α
sin2 α
(Elementindex
- 73 -
e
links oben)
 
 
 
·
 
 
vxi
vzi
vxk
vzk






(E.4)
KAPITEL E - Fachwerk
E.1.5
Gesamtsystem
Die Verschiebungen e vk aller Stabenden e, die an einem Knoten k anschließen, müssen gleich sein
(Verträglichkeit). Als globale Unbekannte sind also die 2 ∗ n Knotenverschiebungen zu nehmen.
v = [v1x v1z v2x v2z v3x · · · vnx vnz ]T
Sie spielen die gleiche Rolle wie die Potentiale beim Widerstandsnetzwerk und die Druckhöhen bei der
Rohrnetzberechnung.
Der Kontinuitätsgleichung in der Hydromechanik entspricht in der Statik die Forderung, daß die äußeren Lasten Pk an jedem Knoten mit der Summe der Stabendkräfte im Gleichgewicht stehen müssen:
Pe
Pk =
Fk . Die Summen der Stabendkräfte läßt sich — ganz analog zu Widerstandsnetzwerk
oder Rohrnetz — dadurch berechnen, daß man die einzelnen Elemente der Elementmatrizen e k in
eine (2n × 2n) Globalmatrix K einsortiert und diese mit dem Unbekanntenvektor v ausmultipliziert.
Dabei sind nun neben den Knotenindizes (i, k) auch noch die Richtungen (x, z) zu beachten.
K ·v = P
Die Globalmatrix ist dreifach singulär, was man den Elementmatrizen e k ansehen kann: Die beiden
letzen Zeilen entstehen aus den vorigen durch Multiplikation mit -1. Die zweite unterscheidet sich von
der ersten nur durch den Faktor sin α/ cos α. D.h. es sind mindestens drei voneinander unabhängige
Randbedingungen vorzugeben!
Nach Auflösen des Systems lassen sich stabweise die Verschiebungen e v zusammenstellen und die
Stabkräfte nach Gleichung (E.3) ermitteln.
E.2
Nichtlinearitäten
E.2.1
E.2.1.1
"
Große Verschiebungen
Geometrieänderung bei Belastung
cos α
sin α
#
1
= p
2
(xk + vxk − xi − vxi ) + (zk + vzk − zi − vzi )2
Die Stabverlängerung berechnet sich entsprechend zu
∆l =
q
(xk + vxk − xi − vxi )2 + (zk + vzk − zi − vzi )2 − l
- 74 -
"
xk + vxk − xi − vxi
zk + vzk − zi − vz i
#
E.2. Nichtlinearitäten
E.2.1.2
Iterationsverfahren
Falls angenommen werden darf, daß das Hookesche Gesetz noch gilt:
1. Vorbereitung: Aufbau der globalen Matrix wie im linearen Fall
Staffeln der globalen Matrix nach Cholesky vorweg
Setze Hilfsvektor ∆P auf Null
2. Berechnung der Verschiebungen aus K·v = P + ∆P
3. Kopiere ursprünglichen Lastvektor P auf Hilfsvektor ∆P
4. Berechne alle Stabkräfte e S mit Geometrie nach E.2.1.1 und Stabendkräfte Fix bzw. Fiz , diese
werden vom entsprechenden Element in ∆P abgezogen.
∆P enthält jetzt nur noch den Anteil der äußeren Last, der mit den inneren Kräften nicht im
Gleichgewicht ist, sowie an Lagern die Auflagerkräfte .
5. Falls noch kein befriedigendes Gleichgewicht erreicht ist:
Ungleichgewichtskräfte als zusätzliche Last aufbringen =⇒ 2
sonst: =⇒ fertig!
Das Verfahren konvergiert, so lange die Stäbe ihre Richtung nicht gänzlich ändern (Durchschlagproblem).
E.2.2
Nichtlineares Materialgesetz
E.2.2.1
Beispiel einer Materialkennlinie
σ
$
6
σF
−εB
−εF &
εF
εB
- ε
Vereinfachungen:
∗ isotropes Material
∗ Proportionalitätsgrenze = Fließgrenze
∗ konstante Fließspannung = Bruchspannung
|
Bruch
−σF
{z
Fließen
}|
{z
linear el.
}|
{z
Fließen
} -
Bruch
- 75 -
KAPITEL E - Fachwerk
E.2.2.2
Spannungen im Stab
Im linear elastischen Bereich gilt wie zuvor: σ = E · ε .
Die Spannung kann nie die Fließspannung überschreiten! Im Fließbereich ist der E-Modul abzuminεF
dern: EF = E
. Dann ergibt sich immer die konstante Stabkraft
ε
S = ±AE · εF = ±AEF · ε
Wird an einem Stab die Bruchdehnung erreicht, ist die Tragfähigkeit des gesamten Systems überschritten. Man bringt daher zuerst eine Last auf, die mit Sicherheit vom System ertragen werden kann
und steigert diese dann in kleinen Stufen bis zum Bruch.
E.2.2.3
Picard-Iteration
1. Vorbereitung: Setze Verschiebungsvektor v auf Null
Setze Lastvektor P auf Grundbelastung
2. Berechne globale Matrix K mit
• Stabwinkeln α nach E.2.1.1
• E-Modul E nach E.2.2.2
• Falls an einem Stab die Bruchdehnung überschritten wird:
Abbruch der Rechnung =⇒ 5
3. Berechnung der Verschiebungen aus K·v = P
4. Berechne alle Stabkräfte mit neuen Verschiebungen
Berechne Lagerkräfte und Ungleichgewichtskräfte
Wenn noch kein Gleichgewicht erreicht: =⇒ 2
Sonst: Erhöhe Lastvektor P um nächste Laststufe =⇒ 2
5. Berechne System noch einmal mit der vorigen Laststufe
(die gerade noch keinen Bruch herbeigeführt hat)
Mit diesem Verfahren lassen sich Traglasten von Systemen bestimmen. Es konvergiert auch bei sich
gänzlich verändernder Geometrie. Der Aufwand ist höher als bei der Methode der Zusatzlasten, da
die Steifigkeitsmatrix in jedem Iterationsschritt neu aufgebaut und gestaffelt werden muß.
- 76 -
E.3. Übungsaufgabe
E.3
Übungsaufgabe
Bei welcher Belastung -Pz schlägt das abgebildete symmetrische System nach unten
durch?
6
v
ez
Q
Q
Q
Q E, A, l
E, A, l0 ?
0
Q
Q
-Pz
Q
Q
Qe
e
2 Lx
E.3.1
gegeben: [m, kN]
6
Lz
E (Stahl)
A (25 cm2 )
Lx
Lz
?
2,1*108
0,0025
3,00
2,00
-
Algorithmische Aufbereitung
• Geometrie des unbelasteten Systems:
l0 =
p
L2x + L2z ; sin2 α = L2z /(L2x + L2z );
∆P = 0
Was bleibt vom globalen Gleichungssystem übrig?
(1) vz =
• Gleichgewichtsbetrachtung am verformten System:
(2) l =
p
L2x + (Lz + vz )2 ;
sinα =
(3) σ =
∆l = l − l0
ε=
S=
(4) ΣFz =
(5) ∆P =
Schreiben Sie ein kleines Programm, das obige Formeln iterativ auswertet, bis ∆P ' 0 wird!
- 77 -
KAPITEL E - Fachwerk
E.4
Vergleich knotenorientierter Verfahren
Widerstandsnetzwerk / stat. Rohrströmung / Fachwerk
Knotenkoordinaten
Materialgesetz
WiderstandsStationäre
netzwerk
Rohrströmung
nur zum Zeichnen
linear
nichtlinear
⇒ Elementgleichung
I=
Transformation
geometrisch
nichtlinear
Globale Unbekannte
Rechte Seite
Zusammenbau des
Gesamtsystems
1
∆U
R
Q=
1
hv
K|Q|n−1
—
—
nein
N Potentiale
nein
N Druckhöhen
Uk
hk
Einspeisungen
ungerichtet
Einspeisungen
ungerichtet
Iein k
Ek
Kontinuität
Ikj = Iein k
Kontinuität
Qkj = Ek
P
P
j
j
Fachwerk
Theorie 2. Ordnung
erforderlich
nichtlinear
S=
EA
∆l;
l
Fαk = Tα
E = E(ε)
EA
Tβ vβk
l
ja
2N Verschiebungen
"
#
vx
vk =
vz k
Knotenlasten
vektoriell
"
#
Px
Pk =
Pz k
Gleichgewicht
P
Fxkj = Pxk
j
P
Fzkj = Pzk
j
Eigenschaften der
Globalmatrix
ohne Randbedingungen:
Erst Addition der Elementmatrizen
Multiplikation mit globalem Unbekanntenvektor
symmetrisch
symmetrisch
symmetrisch
pos. definit
pos. definit
pos. definit
einfach singulär einfach singulär
dreifach singulär
- 78 -
Kapitel F
Verkehrssimulation
(speziell: Verkehrsverteilung)
∗
Erste Fassung dieses Kapitels und des Programms H0180 von Dr.-Ing. S. Gärtner, Uni Hannover, Institut für
Strömungsmechanik und Elektronisches Rechnen im Bauwesen, 1980
- 79 -
KAPITEL F - Verkehrssimulation
F.1
Übersicht
Zur Verkehrssimulation werden drei Teilmodelle benötigt
• Verkehrserzeugung: Welcher Bedarf an Ab- und Anfahrten entsteht wann und wo? (Wird nur
kurz gestreift.)
• Verkehrsverteilung: Welche Fahrten werden in einem bestimmten Zeitraum im Untersuchungsgebiet durchgeführt? Dieses Modell wird nachfolgend entwickelt.
• Verkehrsumlegung: Mit welchen Verkehrsmitteln können bzw. sollen die bei der Verteilung ermittelten Fahrten durchgeführt werden? (Nicht näher behandelt)
F.2
Diskretisierung des Untersuchungsraumes
Der Untersuchungs- oder Planungsraum wird in Bezirke (Verkehrszellen) aufgeteilt:
Die Verkehrsbeziehung zwischen den Bezirken wird quantifiziert durch die Größe Fij = Verkehrsbedarfswert, z.B. Anzahl der Fahrten vom Quellbezirk i zum Zielbezirk j während eines gewissen
Zeitintervalls zu einem gewissen Zweck.
- 80 -
F.2. Diskretisierung des Untersuchungsraumes
Als Quellverkehr(saufkommen) Qi des Bezirks i definiert man die Summe aller Fahrten, die im Bezirk i im betrachteten Zeitraum beginnen.
X
Fij = Qi
(F.1)
j
Als Zielverkehr(saufkommen) Zj des Bezirks j definiert man die Summe aller Fahrten, die während
des gleichen Zeitraums im Bezirk j enden.
X
Fij = Zj
(F.2)
i
Die Größe Fkk interpretiert man als Binnenverkehr(saufkommen) des Bezirks k. Der Binnenverkehr
wächst mit zunehmender Größe des Bezirks. Wenn nur Fahrten erfaßt werden,die die Bezirksgrenzen
überschreiten, dann entfällt der Binnenverkehr, d.h. es ist
Fij = 0
für i = j.
Die Verkehrsaufkommen Qk und Zk werden autonom für jeden Bezirk k mit Hilfe eines
(M1) Verkehrserzeugungsmodells
ermittelt. Sie dienen als Randbedingungen (F.1) und (F.2) des hier behandelten
(M2) Verkehrsverteilungsmodells,
das den Qi -Zj -Input in einen Fij -Output umsetzt. Die Verkehrsbedarfswerte Fij zwischen allen Bezirken i und j lassen sich in einer Matrix darstellen:
Q nach
Q
von Q
Q
Q
1
2
···
3
F1j
F2j
F3j
..
.
i
..
.
Fi1
Fi2
Fi3
n
q
···
Fqj = Zj
n
P
z
1
2
3
..
.
P
j
Z1
Z2
Z3
F1n
F2n
F3n
Q1
Q2
Q3
..
.
Qi
..
.
···
Fij
..
.
···
Fin
..
.
···
Fnj
···
Fnn
Zj
···
···
Fiz = Qi
Zn
Qn
P
Qk =
k
P
Zk
k
Da die Fij den Randbedingungen (F.1) und (F.2) genügen müssen, folgt als weiteres die Beziehung
n
X
i=1
Qi =
n
X
j=1

Zj
=
n X
n
X

Fij 
i=1 j=1
die eine Bedingungen für ein geschlossenes System repräsentiert.
- 81 -
(F.3)
KAPITEL F - Verkehrssimulation
Wird diese Bedingung verletzt, weil z.B. die Erhebung der Verkehrsaufkommen fehlerhaft ist oder das
Verkehrsbedürfnis die Grenze des Untersuchungsraumes überschreitet, dann sind revidierte Verkehrsaufkommen zu betrachten. Ihre Berechnung wird durchgeführt nach folgendem
Q-Z-Ausqleich:
n
P
Qi =
k=1
Q∗k +
n
P
2
m=1
n
P
Zj
=
k=1
Q∗k +
2
n
P
m=1
n
P
l=1
Zl∗
Q∗m
n
P
l=1
∗
Zm
Zl∗
Q∗i
(F.4)
Zj∗
(F.5)
Dabei entsteht aus dem mit (M1) bezirksweise prognostiziertem Q∗i -Zj∗ -Verkehrsaufkommen ein revidierter Qi -Zj -Input für das Verkehrsverteilungsmodell (M2). Die Formeln (F.4, F.5) haben notwendigerweise folgende Eigenschaften:
• Wenn die Q-Z-Werte Bedingung (F.3) von vornherein erfüllen, dann ist Qi = Q∗i und Zj = Zj∗ .
• Die revidierten Qi -Zj -Verkehrsaufkommen erfüllen Bedingung (F.3).
Die mit (M2) ermittelten Verkehrsbedarfswerte (Fahrten) Fij lassen sich nun mit Hilfe eines
(M3)Verkehrsumlegungsmodells
auf das Verkehrsnetz (Straßen, Eisenbahn, . . .) aufteilen.
Es ist zwar üblich, die Modelle (M1), (M2) und (M3) getrennt zu betrachten, doch sind dabei ihre
Wechselbeziehungen untereinander zu beachten. So ist die Verkehrserzeugung u.a. an das Verkehrsnetz
gebunden. Ebenso richtet sich die Bezirksaufteilung nach dem Verkehrsnetz, wenn das Verteilungsmodell aussagefähige Verkehrsbedarfswerte (abstrakte Verkehrsströme, die noch nicht an das Verkehrsnetz
gebunden sind) liefern soll.
Das Bild zeigt Abgrenzungen
von Verkehrszellen (Bezirken) im
innerstädtischen Bereich, Kriterien sind:
• Erschließungsfunktion der
Straße
• Haltestelleneinzugsbereich
• öffentlicher Parkplatz
- 82 -
F.3. Verkehrsverteilung
Verkehrserzeugungsmodelle benötigen weitere Angaben zu den Zellen, beispielsweise:
• Einwohnerzahl mit Alters- und Einkommensstruktur
• Vorhandene oder geplante Arbeitsplätze
• Ämter, Schulen, Krankenhäuser, Bahnhöfe
• Gastronomieangebot
• Freizeiteinrichtungen
Nur bei schon vorhandenen Ortsteilen kann ein Verkehrserzeugungsmodell durch Zählungen ersetzt
werden (aufwendig).
Abschließend sei betont, daß das Programme zur Berechnung von Verkehrsverteilungen aus Verkehrsaufkommen lediglich den hierfür herangezogenen Rechenalgorithmus durchführen. Die Aussagefähigkeit des implementierten Verkehrsverteilungsmodells steht und fällt mit der Fähigkeit seines Anwenders, den Qj -Zj -Input sachgemäß zu erzeugen und den Fij -Output realistisch zu interpretieren.
F.3
F.3.1
Verkehrsverteilung
Zusammenhänge
Die Verkehrsaufkommen, also die Summe der Verkehrsbedürfnisse, die den Bezirk i als Quellverkehr
verlassen und die Summe derjenigen, die den Bezirk j als Zielverkehr erreichen, verteilen sich im Raum
gemäß dem Gewicht der konkurrierenden Quellen und Ziele. Dabei sind im Ablauf des Verkehrsgeschehens bei Vorhandensein konkurrierender Quellen und Ziele im Planungsraum folgende Zusammenhänge
erkennbar:
(Z1) Ein Verkehrsbedürfnis ist umso größer, je größer die Ausstrahlungskraft einer Verkehrsquelle i
ist. Diese Ausstrahlungskraft ist eine Funktion der Aktivitäten der Menschen in i, ausgedrückt durch
das Maß der Verkehrserzeugung Qi aufgrund der Struktur von i.
(Z2) Ein Verkehrsbedürfnis ist umso größer, je größer die Attraktion eines Verkehrsziels j ist. Letztere
ist ihrerseits ein Abbild der menschlichen Aktivitäten in j, dargestellt durch Zj .
(Z3) Ein Verkehrsbedürfnis klingt mit größer werdendem Widerstand zwischen der Verkehrsquelle i
und dem Verkehrsziel j ab. Der Widerstand hängt von der Art der Verkehrsgelegenheit zwischen i
und j ab.
(Z4) Die Konstellation der Quellen und Ziele im Planungsraum modifiziert diese allgemeingültigen
Aussagen.
- 83 -
KAPITEL F - Verkehrssimulation
F.3.2
Gravitationsmodell
Die Verteilung der Verkehrsaufkommen im Raum kann durch ein Modell formal dargestellt werden,
das bereits im 19. Jahrhundert konzipiert wurde und (wegen seines äußeren Aufbaus analog dem
Gravitationsgesetz von Newton) als Gravitationsmodell“ heute weltweite Anwendung findet. Sein
”
äußerer Aufbau kann wie folgt angeschrieben werden
Fij = kij
Qi Zj
f (wij )
mit
(F.6)
Fij
=
Reisen (Fahrten) von i nach j in einem festgelegten Beobachtungszeitraum (oder
f (wij )
=
wij
=
kij
=
Qi
Zj
=
=
Widerstandsfunktion, die die mittlere Reaktion auf das Kollektiv beschreibt, das für
die Reise von i nach j aufzunehmen ist
Streckenmerkmal (z.B. räumliche Distanz der Schwerpunkte von i und j oder auch
Reisezeit, Reisekosten u.a.)
Proportionalitätsfaktor für die Beziehung von i nach j, der die Dimensionsrichtigkeit
zu besorgen hat und den Einfluß der Konstellation aller konkurrierenden Quellen und
Ziele im Planungsraum berücksichtigt (zu berechnen!)
Quellverkehrsaufkommen des Bezirks i in einem festgelegten Zeitintervall
Zielverkehrsaufkommen des Bezirks j in einem festgelegten Zeitintervall
andere Verkehrsbedarfswerte im weitesten Sinne, etwa Telefongespräche etc.)
Gl. (F.6) trägt damit den vier Zusammenhängen Rechnung, die oben zur Beschreibung des Verkehrs(Z1), (Z2) −→ Qi Zj
geschehens angegeben sind: (Z3),
−→ 1/f (wij )
(Z4),
−→ kij
- 84 -
F.3. Verkehrsverteilung
Der Zusammenhang (Z3) läßt sich noch verfeinern, um beispielsweise folgende Gegebenheiten zu
berücksichtigen:
- Das Verkehrsbedürfnis verschwindet für wjj = 0, wenn Fußwege nicht zum betrachteten Verkehr
gehören.
- Im Umfeld des Quellbezirks wächst die Anzahl der Zielbezirke bei gleichmäßiger Streuung der Aktivitäten (Wohnen, Besorgen, Bilden, Besuchen, Erholen, ...) quadratisch an. Einerseits steigt damit
das Verkehrsbedürfnis (im Nahfeld) bei zunehmender Entfernung wj j ,
- Andererseits fällt die Attraktivität der Ziele mit wachsender Entfernung, so daß das Verkehrsbedürfnis
nach Erreichen eines Maximalwertes (im Fernfeld) wieder abklingt.
Ein denkbarer Ansatz für die entsprechende Widerstandsfunktion f (wij ) lautet
f (w) = eαw /w,
wobei die Distanzempfindlichkeit“ α dem Verkehrsgeschehen entsprechend gewählt wird, beispielswei”
se aus Erfahrungswerten. Der Beiwert α liegt stets zwischen 0 und 1,0 [1/km] und kann an Zählwerte
angepaßt werden (automatische Kalibrierung des Modells).
Da der Verkehrsbedarfswert Fij dem reziproken
Widerstand [f (wij )]−1 proportional ist, betrachten wir nebenstehenden Graphen:
Man beachte, daß der reziproke Widerstand mit
wachsendem w bis zur Grenze 1/α zu- und danach wieder abnimmt.
Für eine Distanz wij bilden wir den Koeffizienten
aij = [f (wij )]−1 = wij exp(−αwij ) ,
so daß das Gravitationsmodell (F.6) folgende
Form erhält:
Fij =
kij
aij Qi Zj
|{z}
|
gesucht
{z
bekannt
(F.7)
}
Bei fehlendem Binnenverkehr ist akk = 0. Kommt im Bezirk k auch Binnenverkehr in Betracht, so ist
für akk ein entsprechender Wert vorzugeben.
- 85 -
KAPITEL F - Verkehrssimulation
F.3.3
Splitmodelle
Der Zusammenhang (Z4) bleibt unberücksichtigt, wenn zunächst im gesamten Planungsraum ein konstanter Proportionalitätsfaktor angenommen wird, der lediglich die Dimensionsrichtigkeit zu besorgen
hat:
kij =
k
(k = const. für alle i, j)
Fij = kaij Qi Zj
(F.8)
(Modell mit der Graviationskonstanten“ k)
”
Damit werden aber die Randbedingungen (F.1) und (F.2) verletzt, das Gleichungssystem
P
Fij ≡ k
P
Fij ≡ k
P
j
P
aij Qi Zj = Qi
j
i
aij Qi Zj = Zj
ist mit Widersprüchen behaftet.
i
Z
Diese Widersprüche lassen sich für jeweils eine Gleichung mit Korrekturfaktoren dQ
i bzw. dj wie folgt
beseitigen:
dQ
i
P
dZ
j
P
j
i
Fij ≡ dQ
i k
P
Fij ≡ dZ
j k
P
aij Qi Zj = Qi
j
aij Qi Zj = Zj
i
; dQ
i = Qi /
P
; dZ
j = Zj /
P
Fij
j
Fij
i






Fij = k aij Qi Zj





Durch Koeffizientenvergleich der oberen Korrekturgleichung mit (F.7) erhält man das auf den
Quellverkehr bezogene Splitmodell:
dQ
i k
kij =
Fij =
dQ
i k
aij Qi Zj
(= const. für alle j)
aij
(= P
Qi Zj )
; aij Zj
(F.9)
j
Es erfüllt Randbedingung (F.1) und verletzt Randbedingung (F.2).
Das auf den Zielverkehr bezogene Splitmodell wird in analoger Weise aus der unteren Korrekturgleichung hergeleitet:
dZ
j k
kij =
Fij = dZ
j k aij Qi Zj
(= const. für alle i)
aij
(= P
Qi Zj )
; aij Qi
(F.10)
i
Es erfüllt Randbedingung (F.2) und verletzt Randbedingung (F.1).
Um beide Randbedingungen zu berücksichtigen (nicht: zu erfüllen), wird das Resultat der Modelle
(F.9) und (F.10) gemittelt:
Z
kij = k (dQ
i + dj )/2
kij =
k
q
Z
dQ
i dj
(arithmetisches Mittel)
(F.11)
(geometrisches Mittel)
(F.12)
Dadurch werden beide Randbedingungen verletzt!
- 86 -
F.3. Verkehrsverteilung
F.3.4
Iterationsschema I
Um beide Randbedingungen (F.1) und (F.2) gleichzeitig zu erfüllen, kann die mit Gl. (F.11) oder
(F.12) gebildete Fij -Matrix iterativ verbessert werden.
Da sich die mit k vorgenommene Dimensionskorrektur in beiden Splitmodellen herauskürzt, opererieren wir nachfolgend mit k = 1.
Marke
Anweisung
Kommentar
ν=0
Iterationszähler
Fij = aij Qi Zj
(k = 1) gesetzt!
ν =ν+1
Zähler erhöhen
(0)
iterat: −→
Q(ν)
di
6
= Qi /
P
j
Z(ν)
dj
= Zj /
P
i
(ν)
dij =
(ν−1)
Zeilenfaktor für Fij
(ν−1)
Spaltenfaktor für Fij
Fij
Fij
 Q(ν)
Z(ν)

d
+
d
/2

i
j




. . .q
..............
Q(ν) Z(ν)
dj
di
(ν)
(ν)
(ν−1)
Fij = dij Fij
iterat ←− > ε
←− ≤ ε
STOP
@
@
(ν−1) (ν)
Fij − Fij
Durchschnittsfaktormethode (F.11)
...................................
geometrisches Mittel (F.12)
Verbesserung
@
? @
genau genug?
Iterationsende
Der Iterationsschritt ν = 1 liefert dabei (F.11) bzw. (F.12). Für ν > 1 werden die Randbedingungen
beliebig genau erfüllt.
Dieser Iterationsablauf definiert den Proportionalitätsfaktor
kij
=
=
bzw.
=
∞
Y
(ν)
dij
ν=1
∞ Y
Q(ν)
di
ν=1
∞ r
Y
Q(ν)
di
Z(ν)
+ dj
/2
(F.13)
Z(ν)
dj
(F.14)
ν=1
- 87 -
KAPITEL F - Verkehrssimulation
F.3.4.1
Bemerkungen
• Die Notwendigkeit veränderlicher Korrekturfaktoren kij läßt sich auch anschaulich zeigen. Die Größen Qj
und Zi treten in zweifacher Bedeutung auf. In der Formulierung der Verkehrsbedarfswerte Gl. (F.7) repräsentieren sie Ergiebigkeit und Attraktivität der Verkehrsbezirke, während sie bei den Randbedingungen (F.1) und
(F.2) als Summen der Verkehrsbedarfswerte das Ergebnis von Ergiebigkeit und Attraktivität unter dem Einfluß
des Widerstandes darstellen. Eine starre Verknüpfung dieser unterschiedlichen Eigenschaften durch Konstanten in Gl. (F.8) enthält einen Widerspruch, der am Beispiel eines Vergleichs zweier Zielbezirke deutlich wird:
Bei gleicher Attraktivität beider Bezirke, jedoch unterschiedlicher Lage zu Quellbezirken, ist die Summe der
Zielverkehrsfahrten dort größer, wo eine Ballung von Quellbezirken auftritt. Wenn nun eine gleiche Summe an
Zielverkehrsfahrten in beiden Bezirken entstehen soll, dann muß die Attraktivität des von starkem Quellverkehrsaufkommen umgebenen Zielbezirks um soviel geringer sein, daß die fahrtensteigernde Wirkung der konkurrierenden Quellen wieder ausgeglichen wird. Entsprechendes gilt auch für den Zusammenhang von Ergiebigkeit
und Quellverkehrsaufkommen. Ergiebigkeit und Attraktivität sind also nicht allein durch das Verkehrsaufkommen zu beschreiben, sondern müssen darüber hinaus auch die Einflüsse von Konkurrenzen im Gesamtsystem
enthalten. Das erfordert in den Gleichungen der Verkehrsflüsse aber zusätzliche Glieder, die einen solchen Konkurrenzeinfluß berücksichtigen und die daher mit der wechselnden Konstellation der Verkehrsbezirke zueinander
für alle Verkehrsflüsse prinzipiell unterschiedlich sind.
• Das dargelegte Iterationsverfahren dient der gedanklichen Einführung. Im Folgenden ist noch die unterschiedliche Wirkungsweise von (F.13) und (F.14) zu klären. Außerdem läßt sich der mit (F.14) verknüpfte
Iterationsprozess beschleunigen.
F.3.5
Bilineares Gleichungssystem
Der Proportionalitätsfaktor (F.14) repräsentiert das Produkt
kiQ kjZ
kij =
kiQ =
kjZ =
∞
Q
q
Q(ν)
di
ν=1
∞ q Z(ν)
Q
dj
ν=1
, wobei
und
sind.
Damit erhält das Gravitationsmodell (F.7) den folgenden Aufbau:
Fij =
aij Xi Yj
Xi =
kiQ Qi
kjZ Zj
Yj =
wobei die Größen
und
im Quellbezirk i bzw. im Zielbezirk j definiert sind.
Mit den Randbedingungen (F.1) und (F.2) entsteht ein ein System bilinearer Gleichungen:
P
aij Xi Yj = Qi
j
P
i
aij Xi Yj = Zj
Die gesuchten 2n Unbekannten {Xi }, {Yj } und damit auch
die n2 Werte Fij sind durch die 2n Gleichungen eindeutig
bestimmt.
- 88 -
F.3. Verkehrsverteilung
F.3.6
Konvergenzverbesserung
Als nächstes betrachten wir einen weiteren Iterationsalgorithmus, der ebenfalls auf das System bilinearer Gleichungen führt, also auch die gleiche Fij -Matrix erzeugt:
Marke
Anweisung
Kommentar
ν=0
Iterationszähler
Fij = aij Qi Zj
(k = 1) gesetzt!
ν =ν+1
Zähler erhöhen
(0)
iterat: −→
@
ν ?@
6
@
@
ungerade
(ν)
dij = P
j
gerade
Qi
Zj
(ν)
dij = P
(ν−1)
Fij
(ν)
i
(ν)
(ν−1)
Fij
(ν−1)
Fij = dij Fij
iterat ←− > ε
STOP
←− ≤ ε
@
@
(ν−1) (ν)
Fij − Fij
abwechselnd:
Q(ν)
Z(ν)
= di , d j
Verbesserung
@
? @
genau genug?
Iterationsende
Bei dieser Ausgleichsrechnung wird entsprechend den beiden Splitmodellen (F.9) und (F.10) alternierend iteriert. Der Iterationsschritt ν = 1 liefert dabei (F.9). Für ν > 1 werden die Randbedingungen
beliebig genau erfüllt.
Bei genügend vielen Iterationsschritten führt sie auf exakt das gleiche Ergebnis wie das erste Schema
F.3.4, was nachfolgend gezeigt wird.
- 89 -
KAPITEL F - Verkehrssimulation
Der obige Ablauf definiert anstelle von (F.14) den Proportionalitätsfaktor
kij =
∞
Q
µ=1
Q(2µ−1) Z(2µ)
dj
di
kiQ kjZ
kij =
kiQ =
kjZ =
, mit
∞
Q
sowie
Q(2µ−1)
di
µ=1
∞
Q
µ=1
(F.15)
und
Z(2µ)
dj
.
Es entsteht wieder das dargelegte bilineare Gleichungssystem! Da dessen Lösung eindeutig ist, müssen
beide Iterationen (F.14) und (F.15) auf das gleiche Resultat führen. Der Ansatz (F.15) bewirkt aber
eine wesentlich schnellere Konvergenz!
F.3.7
Durchschnittsfaktormethode
Der Proportionalitätsfaktor (F.13) läßt sich im Gegensatz zu (F.14) nach Abschnitt F.3.5 nicht mehr
multiplikativ zerlegen:
kij =
∞ Y
Q(ν)
di
Z(ν)
+ dj
/2 6= kiQ kjZ
ν=1
Es entsteht daher auch kein eindeutig lösbares System bilinearer Gleichungen. Mit Gl. (F.13) wird
lediglich ein Gravitationsmodell realisiert mit dem Aufbau:
Fij = bij Qj Zj und bij = kij aij .
Mit den Randbedingungen (F.1) und (F.2) entsteht nun das System
P
bij Qi Zj = Qi
j
P
bij Qi Zj = Zj
wobei die (n × n)-Matrix {bij } gesucht wird. Es ist klar, daß
die 2n Gleichungen dazu nicht ausreichen.
i
(0)
Das Resultat hängt also von den Startwerten Fij und den Details des Iterationsablaufes ab. Wir
wählen dazu speziell den anfangs dargelegten Iterationsalgorithmus aus Abschnitt F.3.4, der auf den
Proportionalitätsfaktor (F.13) führt und der auch als Durchschnittsfaktormethode bezeichnet wird.
- 90 -
F.3. Verkehrsverteilung
F.3.8
Zusammenfassung
Das Schema aus Abschnitt F.3.4 wird modifiziert, um die oben erörterte mögliche Beschleunigung der
Konvergenz zu berücksichtigen:
Marke
Anweisung
Kommentar
ν=0
Iterationszähler
Fij = aij Qi Zj
(k = 1) gesetzt!
ν =ν+1
Zähler erhöhen
(0)
iterat: −→
Q(ν)
di
6
=P
j
Z(ν)
dj
=P
i
Qi
Zeilenfaktor
(ν−1)
Fij
Zj
Spaltenfaktor
(ν−1)
Fij
@
Zweig ? @
Schalter
@
@

= 1:






 = 2:






= 3:
(ν)
Q(ν)
dij = di
Zweig = 2
........................
(ν)
Z(ν)
dij = dj
Zweig = 1
. . . . . . .. . . . . . . . . . . . . .. . .
(ν)
Q(ν)
Z(ν)
dij = di
+ dj
/2
(ν)
(ν)
(ν−1)
Fij = dij Fij
iterat ←− > ε
STOP
←− ≤ ε
@
@
(ν−1) (ν)
Fij − Fij
Verbesserung
genau genug?
Iterationsende
@
? @
Mit diesem Iterationsablauf lassen sich folgende Modelle realisieren:
Modell
(A)
(B)
(C)
quellverkehrsbezogenes Splitmodell
zielverkehrsbezogenes Splitmodell
arithmetisches Mittel aus (A) und (B)
(D)
(E)
Durchschnittsfaktormethode
System bilinearer Gleichungen
erfüllte Rbed.
Zweig
(F.1)
(F.2)
–
1
2
3
(F.1) und (F.2)
(F.1) und (F.2)
- 91 -
3
1 oder 2
νmax
1
1
1
>1
>1
KAPITEL F - Verkehrssimulation
F.4
Literatur
[1] P.A. Mäcke / H. Hensel: Arbeitsmethode der städtischen Verkehrsplanung; Bauverlag, Wiesbaden/Berlin 1975
[2] P. Kirchhoff: Verkehrsverteilung mit Hilfe eines Systems bilinearer Gleichungen; Veröffentlichungen des Instituts für Stadtbauwesen, Technische Universität Braunschweig, Heft 5, Braunschweig
1970
[3] H. Hensel: Wörterbuch und Modellsammlung zum Algorithmus der Verkehrsprognose; Berichte
Stadt, Region, Land“, Institut für Stadtbauwesen, RWTH Aachen, Bericht B 4, Aachen 1976
”
F.4.1
Bemerkungen
Die ausgewählte Literatur dient der Einführung [1], der Ergänzung [2] und der Übersicht [2], [3].
Der Literatur sind zahlreiche Vorschläge zur Widerstandsfunktion f (wij ) zu entnehmen. Hier wird exemplarisch
ein Ansatz zugrundegelegt gelegt, der am Institut für Verkehrswirtschaft, Straßenwesen und Städtebau der
Universität Hannover verwendet wird.
- 92 -
Kapitel G
Kalibrierung
- 93 -
KAPITEL G - Kalibrierung
G.1
Problemstellung
Bei baustatischen Problemen sind die das Ergebnis bestimmenden Eingabewerte (Längen, Querschnitte, Elastizitätsmoduln, Belastungen etc.) in der Regel vollständig bekannt. Bei anderen Fragestellungen
sind einige von ihnen mit erheblichen Unsicherheiten behaftet, beispielsweise:
• Rohrströmung: relative Rauhigkeiten k/D
• Verkehrsverteilung: Attraktivitätskoeffizient α
• Oberflächengewässer und Transport: Dispersionsbeiwerte D
• Grundwasser: Durchlässigkeiten k und Porositäten np
Das numerische Modell kann dann zunächst oft nur mit Schätzwerten betrieben werden. Stehen für
das berechnete Ereignis genügend Beobachtungen bereit, beispielsweise gemessene oder gezählte
• Rohrströmung: Geschwindigkeiten v, Drücke p
• Verkehrsverteilung: Verkehrsflüsse Fij
• Oberflächengewässer und Transport: Geschwindigkeiten v, Konzentrationen C
• Grundwasser: Standrohrspiegelhöhen h und Filtergeschwindigkeiten vF
muß versucht werden, die obigen Eingabewerte ( Parameter“) so einzustellen (das Modell zu kali”
”
brieren“), daß Rechen- und Meßergebnisse weitestgehende Übereinstimmung aufweisen.
G.2
Gütekriterium
Gegeben seien ein Vektor (oder eine Matrix) X von m berechneten Werten und eine ebenso große
Anzahl von gemessenen Sollwerten S. Für die Beurteilung der Güte der Kalibrierung müssen die
Differenzen Di = Si − Xi normiert werden (nur eine skalare Größe F ).
G.2.1
Größter Absolutbetrag
Nur in sehr einfachen Fällen genügt es, das betragsgrößte Element des Fehlervektors D herauszusuchen: F = Max{|Di |} .
G.2.2
Summe der Beträge
In fast jedem Falle unzureichend ist die Summierung der Beträge von D: F =
m
P
|Di | . Es kommt
i=1
dabei häufig vor, daß zwar viele Differenzen Di nahezu verschwinden, einige wenige aber sehr groß
bleiben.
- 94 -
G.3. Ein einfaches Schachtelungsverfahren
G.2.3
Fehlerquadratmethode
Sehr geeignet und üblich als Norm ist die Summe der Fehlerquadrate: F =
m
P
i=1
Di2 . Es ist klar, daß
hierbei die größten Abweichungen besonders ins Gewicht fallen und so bei der Kalibrierung vorrangig
minimiert werden, bevor die kleineren beachtet werden.
Modifikation: Liegen Ergebnisse unterschiedlicher Art vor (beispielsweise mV Geschwindigkeiten und
mP Drücke), müssen sie auch unterschiedlich gewichtet werden:
F = WV
mV
X
DV2 i + WP
i=1
G.3
mP
X
DP2 j
(G.1)
j=1
Ein einfaches Schachtelungsverfahren
Liegt im gesamten System nur ein einzelner zu kalibrierender Parameter P vor, der durch bekannte
Grenzen eingeschränkt wird
P = Pmin + α (Pmax − Pmin ) mit 0.0 ≤ α ≤ 1.0 ,
läßt er sich meist durch Einschachtelung bestimmen. (Dabei ist die Definition des Parameters α etwas
verallgemeinert; die Distanzempfindlichkeit bei der Verkehrsverteilung erfüllt sie eher zufällig!)
Dazu wird das Einheitsintervall in nT eil gleichgroße Stücke ∆ = 1.0/nT eil geteilt und die Simulation
durchgeführt für alle Werte von
α = {∆, 2∆, 3∆ . . . (nT eil − 1)∆}
mit anschließender Berechnung der Fehlerquadratsumme. (Für die Intervallgrenzen selbst muß die
Rechnung nicht ausgeführt werden.)
Um den Wert αopt mit dem kleinsten zugehörigen Fehlerquadrat Fmin sucht man mit den nächsten
Einschachtelungsschritten weiter:
α1 = αopt − ∆(ν) ;
α2 = αopt + ∆(ν)
∆(ν+1) = 2∆(ν) /nT eil
(G.2)
α = {α1 + ∆, α1 + 2∆, α1 + 3∆ . . . α1 + (nT eil − 1)∆}
=⇒ Schritt ν + 1
Nach Berechnung mit den neuen Werten α und erneuter Minimumsuche wird das Suchintervall mit
dem Formelsatz (G.2) weiter eingeschränkt.
- 95 -
KAPITEL G - Kalibrierung
Anmerkungen:
• Für nT eil wählt man eine kleine ungerade Zahl (z.B. 5). Bei geradem nT eil erhielte man gleiche
α-Werte in aufeinander folgenden Schritten.
• Falls lokale Minima erwartet werden müssen, muß nT eil jedoch so groß gewählt werden, daß das
globale Minimum miterfaßt wird (siehe rechtes Bild).
• Die Einschachtelung wird abgebrochen, wenn sich αopt nicht mehr wesentlich ändert. Nicht erwartet werden kann, daß die Fehlerquadratsumme Null wird!
• Die Methode eignet sich besonders für Probleme, bei denen die partielle Ableitung der Fehlernorm nach dem Parameter wie bei der Verkehrsverteilung kompliziert oder nicht darstellbar ist
und deshalb das Gauß-Newton-Verfahren nicht infrage kommt.
Der Verlauf der Iteration wird durch die beiden Abbildungen illustriert:
G.3.1
Pseudocode zur Kalibrierung
Die Kalibrierung kann bei der Verkehrsverteilung wie folgt realisiert werden:
Gemeinsame Variablen (global) in Haupt- und Unterprogrammen
Name
N
Fij
SOLL
TestAus
Typ
int
(N*N) double
(N*N) double
Boolean
Inhalt
Größe
Fij
Fˆij
Steuergröße
Erläuterung
Anzahl der Bezirke
Fahrtenmatrix
Sollwerte der Fahrtenmatrix
wenn false keine Testausgaben
- 96 -
G.3. Ein einfaches Schachtelungsverfahren
G.3.1.1
true:
repeat
Hauptprogramm
Resultate
[zweig,. . . , α]
Anweisung
=vvein(daten);
Kalib
Kalib?
(
[α, Kalib]
 TestAus

Fij



 Kalib?

true: [α, Kalib]



 false:
=α < 0.0;
=vvcalib(-1.0);
=0;
=vviter(zweig,. . . , α)
=vvcalib(α);
break;
Protokoll;
vvplot(0);
end;
G.3.1.2
Kommentar
Eingabedaten lesen, mit
Q-Z-Ausgleich und Protokoll
Kennzeichen Kalibrierung
Abfrage
Vorbereitung
(false) keine Ausgabe
Berechnung
Abfrage
neues α
Ende repeat
Zahlenausgabe
graphische Ausgabe
Programmende
Kalibrierungsroutine
Matlab-Definition: function [alpha,Kalib] =vvcalib(alphaAlt);
Einige interne Variablen müssen statisch (persistent) deklariert werden, da ihr letzter Wert
auch im nächsten Aufruf noch bekannt sein muß:
Name
Alpha1
Alpha2
AlphaOpt
dAlpha
nTeil
iTeil
FQopt
Typ
double
double
double
double
double
int
double
Inhalt
α1
α2
αopt
∆
nT eil
Zähler iT eil
Fopt
Erläuterung
untere Intervallgrenze
obere Intervallgrenze
bisher bestes α
Länge Teilintervall
Anzahl Intervallstücke
aktueller Intervallpunkt
bisher kleinste Fehlernorm (bei αopt )
- 97 -
KAPITEL G - Kalibrierung
Programmablauf:
falls αalt < 0.0
(1. Aufruf)
Anweisung(en)
Kalib = 1;
Kommentar
Vorbelegung: (true)


α1





nT eil




∆

α





i

T eil



äußerste Grenzen für α
in nT eil Teile unterteilen
Schrittweite
unterer Wert (ohne die Grenzen)
allererstes Ergebnis berechnen
Ende Vorbereitung
weiter
Fehlerquadratsumme, (G.1)
= 0.0;
α2 = 1.0;
= 5;
= (α2 − α1 )/nT eil ;
= α1 + ∆;
= 0;
return;
sonst:
Berechnung der Norm F
falls iT eil ≡ 0
(allererstes Ergebnis)


 Fopt
= F;
αopt = αalt ;


iT eil = 1;
Ergebnis und
Parameter merken
1. Punkt im Intervall
(
Ergebnis und
Parameter merken
falls F < Fopt
(besseres Ergebnis)
falls iT eil < nT eil
(noch im Intervall)
sonst:
Fopt = F ;
αopt = αalt ;
iT eil = iT eil + 1;
neues α: interner Zähler
(
α erhöhen
neue Rechnung
weiter
Grenzen verengen
siehe (G.2)
neue Schrittweite
α = αalt + ∆;
return;
α1 = αopt − ∆;
α2 = αopt + ∆;
∆ = (α2 − α1 )/nT eil
(
falls ∆ < 0.0001
andernfalls
G.4
α = αopt ;
( Kalib = 0;
α = α1 + ∆;
iT eil = 1;
return;
end;
3 Dezimalen genau
(false) fertig
1. Wert im Intervall
interner Zähler
Ende Unterprogramm
Newton-Iteration: Kalibrierung bei Verkehrsverteilung
Falls sich das Fehlerquadrat F (siehe G.2.3) nach dem gesuchten Parameter α differenzieren läßt,
kommt für die Suche nach seinem Minimum eine Newton-Iteration sehr in Betracht. Sie benötigt in
der Regel erheblich weniger Schritte als das Schachtelungsverfahren nach G.3.
Die notwendige Bedingung für ein Minimum (wir hoffen, es liegt nur eines vor!) lautet:
∂F
= 0
∂α
(G.3)
Wenn diese explizit nach α auflösbar ist, erhält man den Parameter direkt - ohne Iteration.
- 98 -
G.4. Newton-Iteration: Kalibrierung bei Verkehrsverteilung
Leider scheitert der Versuch, dieses auf eine Verkehrsverteilung mit der Fahrtenmatrix Fij und ihre
gegebenen Sollwerte Sij anzuwenden:
∂F
∂α
=




X
X
∂
(Fij − Sij )2

∂α
i
j






XX
∂

=
Fij − Sij
2(Fij − Sij ) ·



|{z}
∂
α


i
j

const.






XX
∂

aij kij Qi Zj 
=
2(Fij − Sij ) ·


|
{z
}
∂
α


i
j

const.





XX
∂


{aij kij } 
=
2(Fij − Sij ) Qi Zj ·


∂
α
|
{z
}
i
j 
kij
∂aij
∂α
+aij
∂kij
∂α
Für i = j ist der Binnenverkehrskoeffizient aii =const., also nicht von α abhängig. Die partielle
Ableitung der restlichen aij ist leicht zu berechnen:
∂ aij
∂ 2
· e−αwij
=
wij · e−αwij = −wij
∂α
∂α
Auch die Korrekturfaktoren kij sind vom Parameter α abhängig, aber nicht explizit als Funktion anzugeben! Sie entstehen erst auf etwas verwickelte Weise im Iterationsalgorithmus. Auf analytische Weise
ist die Minimumsuche daher zunächst nicht durchführbar.
G.4.1
Fehlerquadrat und Distanzempfindlichkeit α
Das Diagramm läßt erkennen, daß für sehr groß werdende Werte von α das Fehlerquadrat asymptotisch auf einen
Wert zugeht, der weit größer als das Minimum ist. Die
Attraktivitäten gehen wegen der Exponentialfunktion im
Nenner gegen Null – nur die Binnenverkehrskoeffizienten
haben dann noch Einfluß auf die Berechnung. α = 0 liefert auch ein erhöhtes Fehlerquadrat. Ein einziges Minimum liegt in dem Bereich 0 < α < 1. Die Kurve ist ausgesprochen glatt.
- 99 -
KAPITEL G - Kalibrierung
G.4.2
Näherungsansatz für das Fehlerquadrat
Führt man für drei verschiedene Parameter αk eine Berechnung der Verkehrsverteilung und des zugehörigen Fehlerquadrats Fk durch, läßt sich ein Näherungsansatz für F bestimmen:
F
(G.4)
1.0 α1 α12
F1
c1




 
 F2  =  1.0 α2 α22  ·  c2 
F3
1.0 α3 α32
c3

mit
' c1 + c2 α + c3 α2

F
;

=
C =
 
H
H −1
·
C
·

(Einsetzen der drei Wertepaare)
F
(Bestimmung der cp )
(G.5)
Mit diesem Ansatz läßt sich das Minimum näherungsweise nach (G.3) finden:
!
∂F/∂α ' c2 + 2c3 α = 0
; αmin. = −0.5c2 /c3
(G.6)
Der optimale Parameter α kann iterativ beliebig genau ermittelt werden. Dazu muß nach erneuter
Bestimmung des Fehlerquadrates zu einem verbesserten α immer das vom Minimum am weitesten
entfernteste Paar [αk , Fk ] durch die neuen Werte ersetzt werden. Damit werden wieder die cp
und ein verbessertes αmin. nach (G.5) und (G.6) bestimmt. Das Interpolationspolynom (G.4) wird dabei
bezüglich des Minimums immer genauer, weil die Stützstellen immer näher an dieses heranrücken.
G.5
Gauß-Newton-Verfahren
Dieser Abschnitt ist noch unbearbeitet.
- 100 -
Kapitel H
Handwerkszeug II: Integration
gewöhnlicher Differentialgleichungen
- 101 -
KAPITEL H - Integration gew. DGln
Überblick
Typisch ist die Aufgabe, aus einem gegebenen Zustandsvektor y0 zur Zeit t = t0 die Zustände yi
in den Zeitpunkten t = ti zu berechnen; wobei das System von gewöhnlichen Differentialgleichungen
.
y i = f (yi ,ti ) zu lösen ist.
Beispiele sind
• die Schwingungen eines Bauwerks nach Stoßbelastung
• die Zustände in einem (biologischen / chemischen) Reaktor, dessen Zustandsgrößen durch gewöhnliche DGln gekoppelt sind.
Die numerischen Methoden für diese Art von Problemen werden hier nur mit einer abhängigen
Veränderlichen dargestellt, sind aber auch auf Systeme gewöhnlicher DGln übertragbar.
Das Problem schreibt sich dann
DGl:
Anfangswert:
ẏ
= f (t, y)
y0 an der Stelle t0
Ausgangspunkt für alle Integrationsschemata ist die Taylorentwicklung an der Stelle t0 :
...
(IV )
yh = y(t0 + h) = y0 + hẏ0 + h2 ÿ0 /2! + h3 y 0 /3! + h4 y0 /4! ...
H.1
(H.1)
Adams-Bashfort-Schema
Ist die Differentialgleichung oft genug differenzierbar, gewinnt man aus ihr weitere Ableitungen und
kann Gl. (H.1) direkt benutzen. Wenn so n Ableitungen gegeben sind, ist der Abbruchfehler
(n+1)
R = hn+1 y0
/(n + 1)! + ...
Man schreibt dafür auch O = O (hn+1 ) — der Abbruchfehler ist von der Ordnung n + 1 .
- 102 -
H.2. Runge-Kutta-Verfahren
H.2
Runge-Kutta-Verfahren
Von Gl. (H.1) ausgehend lassen sich beliebig genaue Formelsätze entwickeln, mit denen ẏ = f (t, y)
integriert werden kann. Dazu werden die zweite Ableitung und höhere mit Hilfe der Kettenregel
umgeformt:
∂ ẏ
∂ ẏ
dy
)0 + ( )0 ( )0
∂t
∂y
dt
∂ ẏ
∂ ẏ
= ( )0 + ( )0 f (t0 , y0 )
∂t
∂y
= ft (t0 , y0 ) + fy (t0 , y0 ) f (t0 , y0 )
y¨0 = (
...
y0
(H.2)
= ftt (t0 , y0 ) + 2fty (t0 , y0 ) f (t0 , y0 ) + fyy (t0 , y0 ) f 2 (t0 , y0 )
+ft (t0 , y0 ) fy (t0 , y0 ) + fy2 (t0 , y0 ) f (t0 , y0 )
(IV )
y0
=
... usw.
weitere Ableitungen durch erneutes Differenzieren
d(...)
dt
Mit diesen Termen in die Taylorreihe eingesetzt erhält man die Lösung
yh = y(t + h)
= y0 + hf + h2 (ft + fy f )/2
+h3 (ftt + 2fty f + fyy f 2 + ft fy + fy2 f )/6 + h4 (...)/24
alle f , fj an (t0 , y0 )
(H.3)
Das Integral
k = y h − y0 =
tZ
0 +h
f (t, y(t))dt
t0
wird numerisch integriert:
k ' h
n
X
Ai f (t0 + hλi , y(t0 + hλi ))
i=1
mit den Gewichten Ai
und den Stützstellen 0 ≤ λi ≤ 1
Gewichte und Stützstellen werden so bestimmt, daß möglichst viele Glieder der Reihenentwicklung
(H.1) bzw. (H.2) exakt wiedergegeben werden. Da leider die Funktionswerte y(t0 + hλi ) unbekannt
sind, wird als Ansatz benutzt
y(t0 + λ1 h) =
y(t0 )
+β1 hf (t0 , y0 )
y(t0 + λ2 h) = y(t0 + λ1 h) +β2 hf (t0 + λ1 h, y(t0 + λ1 h))
und so fort.
- 103 -
KAPITEL H - Integration gew. DGln
Das bedeutet, daß auch noch n Koeffizienten βi zu bestimmen sind! Das Ergebnis der länglichen
Rechnung sind einfach zu handhabende Formelsätze wie nachfolgend angegeben.
H.2.1
Formeln für n=2
Damit lassen sich alle Terme mit h2 exakt darstellen, dabei sind die Stützstellen noch frei wählbar.
A1 = A2 = 1/2;
;
λ1 = 0,
k1 = hf (t0 , y0 );
β1 = 0;
λ2 = 1,
β2 = 1
k2 = hf (t0 + h, y0 + k1 )
yh = y0 + k = y0 + (k1 + k2 )/2
oder A1 = 0,
;
A2 = 1;
k1 = hf (t0 , y0 );
λ1 = 0,
β1 = 0;
λ2 = 1/2,
β2 = 1/2
k2 = hf (t0 + h/2, y0 + k1 /2)
yh = y0 + k = y0 + k2
Beide Formeln sind von gleicher (2.) Ordnung genau, Unterschiede ergeben sich nur noch bei den
Koeffizienten der Restglieder (h3 ). Die Runge-Kutta-Fehlberg-Verfahren sind besonders genau, da
bei ihnen Stützstellen und Gewichte so bestimmt werden, daß diese Restgliedkoeffizienten besonders
klein werden oder gar verschwinden.
H.2.2
Formelsatz 3. Ordnung
k1 = hf (t0 , y0 );
k2 = hf (t0 + h/2, y0 + k1 /2);
k3 = hf (t0 + h, y0 + 2k2 − k1 )
yh = y0 + k mit k = (k1 + 4k2 + k3 )/6
H.2.3
Formelsatz 4. Ordnung
k1 = hf (t0 , y0 );
k2 = hf (t0 + h/2, y0 + k1 /2);
k3 = hf (t0 + h/2, y0 + k2 /2);
k4 = hf (t0 + h, y0 + k3 )
yh = y0 + k mit k = (k1 + 2k2 + 2k3 + k4 )/6
H.2.4
Anwendung auf Systeme gewöhnlicher DGln
Ist ein System gewöhnlicher DGln gegeben als z.B:
ẏ = f (t, y, z) und ż = g(t, y, z) muß man die Teilschritte für jede Variable (y, z) ineinander verschränken:
ky1 = hf (t0 , y0 , z0 );
kz1 = hg(t0 , y0 , z0 );
ky2 = hf (t0 + h/2, y0 + ky1 /2, z0 + kz1 /2);
kz2 = hg(t0 + h/2, y0 + ky1 /2, z0 + kz1 /2);
... und so fort. Verbesserungen kij werden für jede der Abhängigen berechnet und nachfolgend eingesetzt; nur für die unabhängige Variable t ist die vorgegebene Schrittweite h zu benutzen.
- 104 -
H.3. Steife Systeme
H.2.5
Fehlerabschätzung
Eine Schätzung für den Fehler ist a priori nicht möglich. Sie kann nach einer zusätzlichen Rechnung
mit der Schrittweite 2h erfolgen:
Seien y¯h das Ergebnis des letzten Zeitschritts mit Schrittweite h und y¯2h das entsprechende mit der
doppelten, enthält das Ergebnis y¯h bei einem Verfahren n-ter Ordnung y¯h keinen größeren Fehler als
ε≤
H.3
|y¯h − y¯2h |
.
2n − 1
Steife Systeme
Manchmal erhält man aber Lösungen, die völlig abweichen von dem, was beobachtet oder sinnvollerweise erwartet wurde. Offenbar wachsen die Fehler so stark an, daß die wahre Lösung von ihnen völlig
überwuchert wird. Ein brauchbares Ergebnis erhält man nur, wenn die Schrittweite h extrem klein
gewählt wird. Solche DGln werden als steif bezeichnet.
Zu diesem Typ gehört beispielsweise das Schwingungsproblem
..
.
M y +C y +Ky = F (t) .
Sinnvolle Ergebnisse liefern Runge-Kutta- und ähnliche Methoden nur dann, wenn der Zeitschritt
h erheblich kleiner gewählt wird als die Periode der schnellsten Eigenschwingung. Es ist klar, daß das
zu einem enormen Aufwand führen kann, wenn Massen- und Dämpfungsmatrix M, C kleine Zahlen
aufweisen im Vergleich zur Steifigkeitsmatrix K.
Für die steifen Differentialgleichungen gibt es besonders konstruierte Lösungsschemata, die nicht an
kurze Zeitschritte gebunden sind, beispielsweise das Newmark-Verfahren∗ oder das Verfahren nach
Jonas† , das um 1975 bei der Hochtief AG zur Untersuchung zeitabhängiger Belastungen auf Kernkraftwerke entwickelt wurde.
H.3.1
Das Verfahren dritter Ordnung nach Jonas
Die Quadraturformel
ϕ2 − ϕ1 =
Z
ξ2 =ξ1 +h
ξ1
ϕ0 dξ ' N =
h 0
h2
(ϕ1 + 2ϕ02 ) − ϕ002
3
6
∗
(H.4)
R. W. Clough, J. Pentzien: Dynamics of Structures, McGraw-Hill, 1975
W. Jonas Stabile Einschrittverfahren zur numerischen Berechnung dynamisch beanspruchter Tragwerke Der Bauingenieur 52, pp 397ff, Springer 1977
†
- 105 -
KAPITEL H - Integration gew. DGln
ist unabhängig vom Zeitschritt stark absolut stabil (dämpft Fehler extrem schnell weg) und
integriert die Ableitungen ϕ0 von Polynomen ϕ = ξ n je nach Grad zu:
ϕ0
0
1
2ξ
3ξ 2
4ξ 3
ϕ00
0
0
2
6ξ
12ξ 2
ϕ01
0
1
2ξ1
3ξ12
4ξ13
ϕ02
0
1
2(ξ1 + h)
3(ξ1 + h)2
4(ξ1 + h)3
ϕ002
0
0
2
6(ξ1 + h)
12(ξ1 + h)2
N
0
h
2hξ1 + h2
3hξ12 + 3h2 ξ1 + h3
3
4hξ1 + 6h2 ξ12 + 4h3 ξ1 + 23 h4
Fehler
0
0
0
0
− 13 h4
also alle Ableitungen bis zum Grade 2 exakt, d.h. alle Polynome ϕ bis zum Grad n < 4. Ist nun ϕ
kein solches Polynom, liefert Gl. (H.4) eine Näherung mit einem Abbruchfehler von der Ordnung h4 ,
die Quadraturformel ist also von dritter Ordnung.
H.3.2
Ein Halbierungsverfahren vierter Ordnung (Jonas)
Mit der obigen Quadraturformel erhält man bei einem Zeitschritt h = ∆t die Näherung ϕ̄(1) = ϕ + ε(1)
4
mit dem Fehler bezüglich des Terms vierter Ordnung ε(1) = − ∆t3 .
Die zweimalige Anwendung von Gl. (H.4) hintereinander mit Zeitschritten h = ∆t/2, beinhaltet
∆t4
∆t4
jedes Mal den Fehler: ε(1/2) = − 3·2
(und weitere Terme höherer
4 , insgesamt also ε(2/2) = − 24
Ordnung). Der Fehler in ϕ̄(2/2) ist also genau ein Achtel dessen in ϕ̄(1) . Beide Näherungen können nun
so kombiniert werden, das die Fehlerterme 4. Ordnung sich aufheben:
ϕ̄ = (8ϕ̄(2/2) − ϕ̄(1) )/7
(H.5)
stellt also ein Integrationsverfahren vierter Ordnung dar.
H.3.3
Anwendung auf den Einmassenschwinger
Die Schwingungsgleichung des Einmassenschwingers
M ẍ + Dẋ + Kx = F (t)
wird mit der Quadratwurzel der Masse normiert
√
mit der zusätzlichen Substitution y = M x
√
√
√
√
√
√
√
√
−1 D
−1 M ẋ + M −1 K
−1 M x =
M
ẍ
+
M
M
M
M −1 F (t)
|
{z
}
|
{z
}
| {z }
| {z }
| {z }
|
{z
}
ÿ
d
y
k
ẏ
(H.6)
f (t)
Übergang auf zwei DGLn 1. Ordnung:
Substitution:
Umschreiben von Gl. (H.6):
z = ẏ
(H.7)
ż + dz + ky = f (t)
(H.8)
Nachfolgend werden die Indizes 0 für die bekannte Zeitstufe t = t0 am Anfang bzw. 1 für die unbekannte
am Ende des Zeitschritts t = t1 = t0 + h eingeführt. Zunächst wird die Substitution H.7 integriert:
Z
Z
ẏdt =
h
zdt = y1 − y0 =
h
- 106 -
h
2h
z0 +
z1
3
3
h2
ż1
6 }
| {z
aus DGL H.8
−
H.3. Steife Systeme
dz1 + ky1 − f1(t+h) = −ż1
y 1 − y0 =
h2
(dz1 + ky1 − f1 )
6
h
2h
z0 +
z1 +
3
3
(H.9)
Ebenso läßt sich H.8 integrieren (Impuls):
Z
2h
h2
h
h
y 1 − z1 ) =
f (t)dt ' (f0 + f1 )
z1 − z0 + d (y1 − y0 ) + k ( y0 +
3
3
6
2
h
bzw. nach Einsetzen von H.9 in d (y1 − y0 )
z0 2z1 h
z1 − z0 + dh ( +
+ (dz1 + ky1 − f1 ))
3
3
6
h
2h
h2
h
+k ( y0 +
y 1 − z1 ) =
(f0 + f1 ), f linear in h
3
3
6
2
(H.10)
Die Gleichungen H.9 und H.10 ergeben nach Umordnen ein Gleichungssystem für den neuen Zustand
[y1 z1 ], der mit den am Anfang des Kapitels gegebenen Beziehungen rücktransformiert wird auf die
Originalvariablen [x1 ẋ1 ].
Das System schreibt sich in Matrizenform als



1−
2h
3 k
h2
6 k
+
h2
6 d
−( 2h
3 +
1+
2h
3 d
+
h2
6 d)
h2 2
6 (d

y1

 = 

− k)

z1
h
3
1
h
2





 z 
0




 f0 
h2

+ 6d 


2
− h6
0
− h3 k 1 − h3 d
y0
h
2
f1
Mit b =
"
1
2h
3
+
h2
6 d
wird das System
bC11 −1
C21 C22
#"
y1
z1
#
"
=
h
h2
z0 − f1
3
6
h
h
h
h h2
− ky0 + (1 − d)z0 + f0 + ( + d)f1
3
3
2
2
6
2
h
1− k
6
2h
h2
k+ d
3
6
2h
h2
1+
d + (d2 − k)
sowie
3
6
C21 + C22 bC11
und C3 = C2 + C22 bC1
bC1
C2
#
mit den Hilfswerten
C1 = y0 +
C2 =
C11 =
C21 =
C22 =
C =
;
y1 = C −1 C3
;
z1 = b (C11 y1 − C1 )
aufgelöst:
Anmerkung: Das Verfahren läßt sich selbstverständlich auf schwingende Systeme mit mehreren Freiheitsgraden erweitern. Die Symmetrie der Systemmatrizen bleibt bei der Transformation analog H.6
erhalten, wenn die Massenmatrix symmetrisch nach Cholesky zerlegt wird.
- 107 -
KAPITEL H - Integration gew. DGln
H.4
Praktische Tests
Es ist oft sinnvoll, sich das Verhalten eines Lösungsschemas anhand einer vereinfachten DGl anschaulich zu vergegenwärtigen. Diese Modellgleichung sollte ähnlich sein zu der des zu untersuchenden
Problems und ihre analytische Lösung muß bekannt sein.
Beispielsweise werden gedämpfte Schwingungen mit einem Freiheitsgrad ohne äußere Kräfte (freie
Schwingung) beschrieben durch
0 = mÿ + cẏ + ky
Mit ẏ = −z
DGl 2. Ordnung
(H.11)
(DGl 1. O.) als Substitution bekommt man
0 = −mż − cz + ky
c
k
y− z
ż =
m
m
(zweite DGl 1. O.)
Die Lösung dieses Systems von 2 DGln erster Ordnung ist nicht ganz trivial. Da Dämpfung auch zum
Abklingen von Fehlern führt, kann sie zum Testen fortgelassen werden. Als Modellgleichungen benutzt
man beispielsweise k/m = 1.0 und c = 0, also
ẏ
= −z
(Geschwindigkeit) mit z0 = ẏ0 = 0.0
ż
= +y
mit der Anfangsauslenkung y0 = 1.0
dabei sind
y(t) = cos t
und
z(t) = sin t
die analytischen Lösungen (zum Vergleich).
Die weiteren Ableitungen für das Adams-Bashfort-Schema sind:
ÿ
...
y
y
(m+1)
= −ż
= −y
= −z̈
= −ẏ
=
−z (m)
= −y (m−1) (rekursiv)
Nach Programmierung eines Zeitschrittverfahrens kann man sich von der Güte des benutzten Schemas überzeugen, indem man mehrere Perioden berechnet und dabei den Zeitschritt variiert. Man
fange an mit einem Zeitschritt von etwa 1/20 der Periodenlänge und steigere ihn vorsichtig auf die
Größenordnung der Periodenlänge.
- 108 -
H.4. Praktische Tests
Erweiterter Test mit Dämpfung
Bei unterkritischer Dämpfung und den Anfangsbedingungen y0 = A, ẏ0 = 0.0 ist die Lösung der
vollständigen Gleichung (H.11) bekannt (mit etwas verwickelten Ausdrücken für Frequenz und Dämpfung):
y(t) = A cos(ωt) eλt
(λ negativ) .
Wir setzen nur A = ω = 1.0 – was der Allgemeinheit keinen Abbruch tut – und wenden das Zeitschrittverfahren auf diese Vereinfachung an.
y(t) = cos t eλt
analytische Lösung mit
ÿ = 2λẏ − (1 + λ2 ) y
z = λy − ẏ
ẏ = (λ cos t − sin t) eλt
DGl∗) mit Randbed.: y0 = 1.0;
ẏ0 = λ
(H.12)
Substitution, mit z(0) = λy0 − ẏ0 = 0
; ẏ = λy − z
(H.13)
und ż = λz + y
(H.14)
Anstelle einer DGl zweiter Ordnung (H.12) ist nun das System (H.13) und (H.14) von zwei DGln
erster Ordnung zu integrieren!
Die länglichen für das Adams-Bashfort-Schema benötigten höheren Ableitungen lassen sich
oft wie hier rekursiv erzeugen:
ẏ = λy − z
ÿ = λẏ − ż
(m+1)
y
= λy (m) − z (m)
(0)
y
= y
ż = λz + y
z̈ = λż + ẏ
(m+1)
z
= λz (m) + y (m)
(0)
z
= z
1. Ableitungen
2. Ableitungen
Rekursion
Startwerte
Der Vorteil der Runge-Kutta-Verfahren liegt darin, daß nur immer nur die ersten Ableitungen
gegeben sein müssen, hier mit Gl. (H.13) und (H.14).
∗)
aus der analytischen Lösung herleitbar:
ÿ
=
(λ2 cos t − 2λ sin t − cos t) eλt
=
(2λ2 cos t − λ2 cos t − 2λ sin t − cos t) eλt
=
2λ (λ cos t − sin t) eλt −(1 + λ2 ) |cos{z
t eλt}
|
{z
ẏ
}
y
- 109 -
frei für Notizen
Kapitel I
Klärwerkssimulation
- 111 -
KAPITEL I - Klärwerkssimulation
I.1
Möglichkeiten der Modellbildung
Die zeitabhängige Berechnung der verschiedenen gekoppelten Prozesse in einem Klärwerk ist keine triviale Aufgabe. Schon die Berechnung der Fließgeschwindigkeiten in den einzelnen Becken und Kanälen
ist schwierig. Zwischen den Subsystemen sind oft Überfallkanten angeordnet, die eine teilweise Entkopplung bewirken. In den Becken müßte eine feine räumliche Diskretisierung gewählt werden als
Grundlage für eine detaillierte Simulation des Stofftransports und der chemisch-biologischen Reaktionen, die zwischen den vielen verschiedenen Komponenten des Abwassers stattfinden. Hochaufgelöste
dreidimensionale Modelle benötigen auch heute noch Rechenzeiten von Tagen auf Hochleistungsrechnern.
Eine Beschränkung der Modelle kann erfolgen hinsichtlich der
• betrachteten Subsysteme
• Kopplung von Dichte und Strömung
• Auflösung in Zeit und Raum, insbesondere der
• berücksichtigten räumlichen Richtungen,
• einbezogenen Inhaltsstoffe des Wassers
• Anzahl der modellierten Reaktionsgleichungen.
Es muß sorgfältig abgewogen werden, welchem Zweck das Modell dienen soll. Die Auswahl des adäquaten Modells ist entscheidend sowohl für die Zuverlässigkeit der Prognose als auch für die Kosten und
den Zeitaufwand.
I.2
Ein nulldimensionales Teilmodell
Als nulldimensional werden Modelle bezeichnet, die nur noch in Zeitrichtung diskretisiert werden,
also keine Ortsrichtungen mehr abbilden. Sämtliche Zustandsgrößen sind nur noch (zeitabhängige)
skalare Größen, eine Fließgeschwindigkeit ist nicht mehr definiert. Dennoch kann ein solches Modell
dazu benutzt werden, um schnell eine grobe Abschätzung des Systemverhaltens zu ermöglichen. Wegen seiner Einfachheit ist es auch sehr geeignet, Einsicht in wesentliche Wirkungsmechanismen zu
gewinnen.
Weiter beschränken wir uns hier auf die biologischen Vorgänge im Belebungsbecken und auch nur auf
das Wechselspiel von Verschmutzung des Zulaufwassers (Substrat), Belebtschlamm (Biomasse) und
Sauerstoffgehalt unter Berücksichtigung einer (teilweisen) Belüftung.
I.2.1
Systemkomponenten
Das Bild zeigt ein Umlaufbecken mit Rotoren zur Belüftung. Zugeführt werden ein konstanter Abwasserzulauf Qe mit einem Substratgehalt Se sowie ein Teil der verdickten Biomasse (Rücklauflaufschlamm
SRl ). Die Wassermenge im Becken muß konstant bleiben, es wird also auch fortlaufend ein Abfluß Qe
aus dem Becken entnommen.
- 112 -
I.2. Ein nulldimensionales Teilmodell
I.2.2
Wachstumsgleichungen
Das Wachstum der heterotrophen Biomasse unter aeroben Bedingungen wird näherungsweise beschrieben durch die Differentialgleichungen:
Monod-Kinetik
dXBH
SS
SO
=
µH
XBH
dt
K S + SS
KOH + SO
dSS
1
SS
SO
=
−
µH
XBH
dt
YH
K S + SS
KOH + SO
1 − YH
SS
SO
dSO
= −
µH
XBH
dt
YH
K S + SS
KOH + SO
(I.1)
(I.2)
(I.3)
mit:
XBH
SS
SO
YH
µH
KS
KOH
[g/m3 ]
[g/m3 ]
[g/m3 ]
[–]
[1/d]
[g/m3 ]
[g/m3 ]
Konzentration der heterotrophen Biomasse
Konzentration des leicht abbaubaren organischen Substrats
Sauerstoffkonzentration
Yield (Ergebnis), beschreibt, wieviele Anteile Biomasse je eliminiertem Substrat produziert werden.
maximale Wachstumsrate der Biomasse
Halbsättigungskonstante des Substrats
Halbsättigungskonstante des Sauerstoffs
Beispiel
0.57
4/Tag
20 g/m3
0.25 g/m3
Die Halbsättigungskonstanten sind die Konzentrationen, bei denen die Prozeßgeschwindigkeit gerade
halb so groß sind wie maximal möglich. Dabei müssen alle anderen prozeßbeinflussenden Substanzen
so ausreichend vorhanden sein, daß sie die Reaktion nicht verzögern. Die Klammerausdrücke in den
Gln. (I.1) bis (I.2) sind für eine auf 1.0 normierte Halbsättigung als Monodkinetikfunktion oben
abgebildet.
Massenerhaltung: Die Koeffizienten links in den Gln. (I.1) bis (I.2) ergeben in der Summe
[1 − 1/YH − (1 − YH )/YH ] µH (. . . = [2 − 2/YH ] µH (. . . ; für YH = 0.57 (wie z.B. gegeben) also
' −1.5µH (. . . . Es bleibt ein Massendefekt übrig! Die Erklärung ist, daß beim Wachsen der Biomasse das Substrat nicht vollständig verwertet wird ( unverdauliche“ Anteile) und zweitens der Be”
lebtschlamm auch abstirbt, wobei wieder nicht weiter verwertbare Anteile entstehen. Diese Reste sind
in den Wachstumsgleichungen aber nicht enthalten.
- 113 -
KAPITEL I - Klärwerkssimulation
I.2.3
Belüftung
Der Sauerstoffeintrag durch die Rotoren in das Becken wird näherungsweise erfaßt mittels
dSO
= k (cS − SO )
dt
cS
k
[g/m3 ]
[1/d]
mit:
(I.4)
Sauerstoffsättigungskonzentration
Belüftungskonstante
z.B. 9.5 g/m3
z.B. 25 pro Tag
Sind die Rotoren nicht eng genug angebracht oder ist das Becken zu tief, werden nicht alle Beckenteile
belüftet – oft auch beabsichtigt. Dann ist (genauer) beim Sauerstoffeintrag nicht das Gesamtvolumen anzusetzen sondern das Becken auf zwei Teilvolumina abzubilden – eines mit und eines ohne
Lufteintrag.
I.2.4
Diskretisierung des Modells
Für jedes Teilvolumen i werden die Konzentrationen im Zustandsvektor Zi = [XBH SS SO ]i zusam(0)
mengefaßt. Ausgehend von einem Anfangszustand Zi (t = 0) sind die Wachstumsgleichungen – als
System von 3 bzw. 6 DGln – über die Zeit schrittweise zu integrieren. Ein dazu geeignetes Verfahren
(Runge-Kutta) wurde im vorangehenden Kapitel (H.2.4) erläutert. Als Belastungsterme gehen dabei ein die Konzentrationen der Zu- und Abflüsse sowie der Sauerstoffeintrag aus Belüftung. Wenn
kein unbelüftetes Teilvolumen modelliert wird, entfallen auch die internen Ströme.
(In der Praxis oft auch Vol1 anaerob)
Da das Absetzbecken nicht zum System gehört, kann der Schlammrücklauf als prozentualer Anteil der
im Auslauf vorhandenen Biomasse vorgegeben werden, optional limitiert durch eine Maximalrate.
- 114 -
Kapitel J
Differenzenverfahren I
(Beispiel: Gerinne, instationär)
- 115 -
KAPITEL J - Differenzenverfahren
Beispiele aus der Strömungsmechanik (offenes Gerinne)
(Herleitung der Gleichungen: siehe Skript Strömungsmechanik für Bauingenieure)
J.1
Gerinnequerschnitt
Bezeichnungen und Formeln
Für die Strömung in einem näherungsweise prismatischen Gerinne gilt:
Kontinuität:
∂v B ∂h
∂h
+
+v
+ ISo
∂s A ∂t
∂s
=0
(J.1)
Bewegung:
∂h 1
+
∂s g
∂v
∂v
+v
∂t
∂s
+ IE = 0
(J.2)
Hierbei sind die Geschwindigkeit v und der Wasserstand h veränderlich in Orts- und Zeitrichtung:
v = v(s, t), h = h(s, t).
Abkürzung: y = A/B
J.2
Explizite Verfahren
Vorbemerkung: Bei den expliziten Differenzenverfahren wird das Gerinne in n − 1 gleichlange Teile
der Länge ∆s eingeteilt, so daß n Ortspunkte entstehen. Die instationäre Lösung wird von einem
gegebenen Anfangszustand zur Zeit t0 in Zeitabständen ∆t an diesen Punkten ermittelt.
Zur Vereinfachung wird geschrieben:
Wjk = Zustandsgröße im Gitterpunkt j zur Zeit t0 + k · ∆t
Hierbei kann W für h, v, y oder Q stehen.
- 116 -
J.2. Explizite Verfahren
J.2.1
Instabiles Verfahren
t 6
k+1
w
w
W unbekannt
g
W bekannt
∆t
g
k
g
∆s
j−1
g
∆s
j
- s
j+1
Die partiellen Ableitungen der Differentialgleichung werden durch Differenzenquotienten ersetzt:
k − Wk
Wj+1
∂W
j−1
≈
∂s
2∆s
,
Wjk+1 − Wjk
∂W
≈
∂t
∆t
Die Funktionswerte werden aus der bekannten Zeitebene genommen: W ≈ Wjk .
Durch Einsetzen in die Kontinuitäts- und Bewegungsgleichung erhält man die Differenzengleichungen:
k+1
k
k
vj+1
− vj−1
1 hj − hkj
+ vjk
+ k
∆t
2∆s
y
"
;
= hkj −
hk+1
j
hkj+1 − hkj−1
+ ISo
2∆s
!#
=0
i
∆t h k k
k
k
vj hj+1 − hkj−1 + 2∆s ISo + y kj vj+1
− vj−1
2∆s
, bzw.
zur Bestimmung des unbekannten Wasserstands hk+1
j
hkj+1 − hkj−1 1
+
2∆s
g
;
vjk+1
=
vjk
k
k
vjk+1 − vjk
vj+1
− vj−1
+ vjk
∆t
2∆s
!
k
+ IEj
=0
hkj+1 − hkj−1
∆t k k
k
k
vj vj+1 − vj−1
− g∆t
+ IEj
−
2∆s
2∆s
!
zur Bestimmung der Geschwindigkeit in der neuen Zeitebene.
Das Schema ist für die praktische Anwendung nicht brauchbar, da es — unabhängig vom gewählten
Zeit- oder Ortsschritt — instabil ist.
Der Abbruchfehler ist von der Ordnung O ∆s2 , ∆t .
Wegen Stabilität, Konvergenz und Genauigkeit siehe Abschnitte J.4 und J.4.2.
- 117 -
KAPITEL J - Differenzenverfahren
J.2.2
Diffusives (Lax-) Verfahren
t 6
k+1
w
@
I
@
W unbekannt
g
W bekannt
@
∆t
@
@
g
k
g
@g
∆s
j−1
k − Wk
Wj+1
∂W
j−1
≈
∂s
2∆s
w
∆s
j
- s
j+1
(wie beim instabilen Verfahren);
Das diffusive Lax-Verfahren unterscheidet sich vom instabilen Schema dadurch, daß für die Zeitableik
k :
tung nicht Wjk benutzt wird, sondern ein Mittel aus Wj−1
und Wj+1
k − Wk
2Wjk+1 − Wj−1
∂W
j+1
≈
∂t
2∆t
oder allgemeiner
h
k + Wk
Wjk+1 − αWjk + (1 − α) Wj−1
j+1 /2
∂W
≈
∂t
∆t
i
(0 ≤ α < 1; für α = 1 ergibt sich das instabile Schema).
W ≈ Wjk
oder
k
k
W ≈ Wj−1
+ Wj+1
/2
Einsetzen in Differentialgleichungen wie beim instabilen Verfahren
Fehler: O ∆s2 , ∆t .
J.2.3
Upstream-Differenzenverfahren
t 6
k+1
∆t
k
w
w
W unbekannt
g
W bekannt
v>0 g
g
∆s
j−1
∂W
k
≈ Wjk − Wj−1
/∆s
∂s
g
∆s
j
- s
j+1
bei Strömung von links nach rechts,
- 118 -
J.2. Explizite Verfahren
∂W
k
≈ Wj+1
− Wjk /∆s
∂s
bei Strömung von rechts nach links.
Dieses Verfahren trägt der Tatsache Rechnung, daß im Verlauf des betrachteten Zeitschritts Zustandsgrößen und ihre Ableitungen aus einer bestimmten Richtung zum Punkt j hintransportiert werden.
∂W
≈ Wjk+1 − Wjk /∆t
∂t
Fehler:
J.2.4
W ≈ Wjk .
,
O(∆s, ∆t).
Leap-Frog-Schema
t 6
k+1
w
∆t
g
k
g
w
W unbekannt
g
W bekannt, 2 Zeitstufen!
∆t
g
k−1
∆s
j−1
k − Wk
Wj+1
∂W
j−1
≈
∂s
2∆s
∆s
j
- s
j+1
Wjk+1 − Wjk−1
∂W
≈
.
∂t
2∆t
,
Die Zeitableitung wird genauer als beim Lax-Verfahren dargestellt.
W ≈ Wjk
oder
k
k
W ≈ Wj+1
+ Wj−1
/2
Es entstehen zwei Rechengitter, die um einen Orts- und Zeitschritt gegeneinander versetzt sind. Da
zwei bekannte Zeitstufen vorausgesetzt werden, müssen aus den gegebenen Anfangswerten zur Zeit
t = 0 zunächst Werte für t = ∆t mit einem anderen Verfahren (z.B. Lax) berechnet werden.
Fehler: O(∆s2 , ∆t2 ).
- 119 -
KAPITEL J - Differenzenverfahren
J.2.5
Lax-Wendroff-Schema
z
t 6
z
k+1
j
Leap-Frog
∆t/2
×
@
I
@
Lax @
j
k
∆s/2
W bekannt
×
∆t/2
W unbekannt
j−1
Lax
j
∆s/2
@
I
@
∆s/2
j
@
j
∆s/2
-
s
j+1
Zuerst werden die zwei Zwischenpunkte (×) (j − 21 , k + 12 ) und (j + 12 , k + 21 ) nach dem Lax-Verfahren
berechnet. Danach wird das Leap-Frog-Schema zur Bestimmung von Wjk+1 aus Wjk und den Zwischenpunkten angewendet.
Der erhöhte Rechenaufwand liefert i.d.R. auch stark verbesserte Ergebnisse.
J.2.6
Behandlung von Randbedingungen
An den Rändern des Lösungsgebiets j = 1 bzw. j = n muß eine der zwei Zustandsgrößen hj = hj (t)
oder vj = vj (t) vorgegeben sein. Die jeweils andere stellt sich in der Natur selbständig ein und ist i.d.R.
unbekannt. Da die Randpunkte immer nur einen Nachbarn besitzen, kann die fehlende Größe nicht
mit den Standardschemata berechnet werden. Man benötigt dazu einen modifizierten Differenzenstern
oder das Charakteristikenverfahren.
J.2.6.1
Modifikation des Differenzensterns für Randbedingungen
t 6
k+1
z
j
j
z
6
∆t
k
j
1
M
2 · ∆s/2
j
?
j
2
n−1
-
M
2 · ∆s/2
j
-
s
n
-
Eine der beiden Differentialgleichungen (J.1) oder (J.2) kann näherungsweise im Punkt + erfüllt werden, wobei sich die fehlende Randgröße ergibt. Die andere Gleichung bleibt unberücksichtigt.
- 120 -
J.2. Explizite Verfahren
Berechnung von v1k+1 bzw. vnk+1 bei gegebenem hk+1
bzw. hk+1
aus Gl. (J.1)
n
1
Approximation
Mittelwerte:
linker Rand
hM = (hk1 + hk2 )/2
= (hk+1
+ hk+1
1
2 )/2
(hk+1
− hk+1
2
1 )/∆s
(h+ −
h+
∂h/∂s
∂h/∂t
hM
rechter Rand
= (hkn−1 + hkn )/2
k+1
h+ = (hk+1
n−1 + hn )/2
(hk+1
− hk+1
n
n−1 )/∆s
hM )/∆t
im Hilfspunkt +: ȳ + = ȳ(h+ )
ȳ
Wenn die Randbedingungen erst nach der Berechnung der inneren Gitterpunkte eingesetzt werden,
sind in der obigen Tabelle alle Werte bekannt! Die Kontinuitätsgleichung schreibt sich dann:
!
v k+1 − v1k+1 h+ − hM
v k+1 + v2k+1
0 = ȳ 2
+
+ 1
∆s
∆t
2
hk+1
− hk+1
2
1
+ ISo
∆s
k+1
v k+1 + vnk+1
v k+1 − vn−1
h+ − hM
+
+ n−1
0 = ȳ n
∆s
∆t
2
hk+1
− hk+1
n
n−1
+ ISo
∆s
+
+
+ ISo ∆s
− hk+1
2ȳ + v2k+1 + 2 (h+ − hM ) ∆s/∆t + v2k+1 hk+1
1
2
− ISo ∆s
+ hk+1
2ȳ + − hk+1
1
2
vnk+1 =
!
v1k+1 =
(links)
k+1
k+1
2ȳ + vn−1
− 2 (h+ − hM ) ∆s/∆t − vn−1
− hk+1
hk+1
n
n−1 + ISo ∆s
2ȳ + + hk+1
− hk+1
n
n−1 + ISo ∆s
bei gegebenem v1k+1 bzw. vnk+1 aus Gl. (J.2)
Berechnung von hk+1
bzw. hk+1
n
1
Approximation
Mittelwerte:
∂v/∂s
linker Rand
vM = (v1k + v2k )/2
rechter Rand
k
vM = (vn−1
+ vnk )/2
v + = (v1k+1 + v2k+1 )/2
k+1
v + = (vn−1
+ vnk+1 )/2
(v2k+1 − v1k+1 )/∆s
k+1
(vnk+1 − vn−1
)/∆s
(v + − vM )/∆t
∂v/∂t
IE
im Hilfspunkt M : IEM
(hydraulischer Umfang in + noch unbekannt)
Aus der Impulsgleichung folgt damit:
v + − vM
v k+1 − v1k+1
+ v+ 2
∆t
∆s
!
0 =
hk+1
− hk+1
1
2
1
+
∆s
g
k+1
v k+1 − vn−1
v + − vM
+ v+ n
∆t
∆s
!
0 =
hk+1
− hk+1
1
n
n−1
+
∆s
g
+ IEM
(links)
+ IEM
(rechts)
hk+1
= hk+1
+
1
2
1 +
(v − vM )∆s/∆t + v + (v2k+1 − v1k+1 ) + IEM ∆s
g
hk+1
= hk+1
n
n−1 −
1 +
k+1
) − IEM ∆s
(v − vM )∆s/∆t + v + (vnk+1 − vn−1
g
- 121 -
(rechts)
KAPITEL J - Differenzenverfahren
J.2.6.2
Randbedingungen mit Charakteristikenverfahren
t 6
k+1
k
z
z
6
J
]
ds
J
= v − cR
J dt
J
J
J
J
J
JR
j
j
1
2
n−1
-
∆s
ds
= v + cL dt
∆t
j
?
@ @
L
∆s
j
-
s
n
-
Die Werte für h und v in den Punkten R und L werden durch lineare Interpolation gewonnen:
WRk
= W1k + W2k − W1k (cR − v) ∆t/∆s
(
Verifikation:
WLk
für (cR − v) =
0
∆s/∆t
)
(
am linken und
W1k
W2k
wirdWRk =
k
− Wnk (cL + v) ∆t/∆s
= Wnk + Wn−1
(
Verifikation: für (cL + v) =
Entlang der beiden Charakteristiken
0
∆s/∆t
)
(
wirdWLk =
am rechten Rand.
Wnk
k
Wn−1
ds
= v ± c gilt:
dt
dv g dy
dv g dh
±
+ g (IE − ISo ) =
±
+ g (IE − ISo ) = 0
dt
c dt
dt
c dt
(s. Skript Strömungsmechanik II (alte Ausgabe), Gl. 8.12).
Die Differenzenformen
k
g hk+1
− hkR
v1k+1 − vR
1
−
+ g (IE − ISo )k1 = 0
∆t
cR
∆t
(linker Rand)
vnk+1 − vLk
g hk+1
− hkL
n
+
+ g (IE − ISo )kn = 0
∆t
cL
∆t
(rechter Rand)
bzw.
sind nach den nicht durch Randbedingung gegebenen Größen aufzulösen (v1k+1 bzw. hk+1
und vnk+1
1
k+1
bzw. hn ).
Anmerkung: Da die Charakteristiken von Gerinneströmungen von den veränderlichen Zustandsgrößen v und c = c(h) abhängen, sind sie nicht gerade! Für eine möglichst genaue Berechnung benutzt
man die Mittelwerte auf der Charakteristik. Ausgehend von den Werten der Randpunkte zur alten
Zeitebene erhält man die erste Näherung für die Lage von R und L sowie für den fehlenden Randwert.
Danach können v und c auf der Charakteristik gemittelt und damit der gesuchte Randwert iterativ
verbessert werden.
- 122 -
J.3. Implizite Verfahren
J.3
Implizite Verfahren
Allgemeines, Abgrenzung von expliziten Verfahren
Bei den expliziten Verfahren werden zur Berechnung einer Zustandsgröße Wjk+1 ausschließlich Werte
k
W
benutzt. Eine Verknüpfung mit noch unbekannten Größen der neuen Zeitstufe
i der alten Zeitstufe
k+1
k+1
Wj−1 , Wj+1 findet nicht statt. Die Ortsschritte sind gleich, die Zeitschritte ∆t sind nicht beliebig
groß wählbar (s. Stabilität, Abschnitte J.4 und J.4.2).
t 6
k+1
z
- z
* H
Y
H
6 HH
H
unbekannt
6
∆t
HH
H
j
k
z
HH
H
j
j
?
-
j−1
j
∆sj−1,j
-
bekannt
s
j+1
∆sj,j+1
-
k+1
k+1
Bei den impliziten Verfahren wird dagegen der Einfluß der unbekannten Zustandsgrößen Wj−1
, Wj+1
der benachbarten Gitterpunkte zur neuen Zeitstufe berücksichtigt. Es ergibt sich ein Gleichungssystem
für den Vektor der Unbekannten Wik+1 . Randbedingungen werden ohne Zuhilfenahme des Charakteristikenverfahrens darin berücksichtigt.
Die Ortsschritte ∆s sind nicht notwendigerweise gleich. Der Zeitschritt ∆t ist nicht durch das CourantKriterium limitiert.
J.3.1
Das Preissmann-Schema
t 6
k+1
z
z
unbekannte Zeitstufe
6
6
(1 − Θ)∆t
Approximationspunkt
?
6
∆t
Θ∆t
k
j
j?
-
i
j
?
bekannte Zeitstufe
s
∆sij /2
- ∆sij /2
∆sij
-
In Orts- und Zeitrichtung sind im Punkt + die ersten Ableitungen darstellbar:
W0+s =
Wjk+1 − Wik+1
Wjk − Wik
∂W +
≈θ
+(1 − θ)
,
∂s
∆sij
∆sij
|
{z
≈(
∂W
∂s
k+1
)
}
|
{z
∂W
∂s
k
≈(
)
- 123 -
}
KAPITEL J - Differenzenverfahren
W0+t =
k+1
+ Wik+1 Wjk + Wik
∂W +
1 Wj
−
≈
∂t
∆t |
2
2
{z
} |
{z
}
Mittelwert k+1
=
Mittelwert k
1 k+1
Wj
− Wjk + Wik+1 − Wik
2∆t
Für die Zustandsgröße im Rechenpunkt wird der Mittelwert gebildet:
W
+
Wjk+1 + Wik+1
Wjk + Wik
≈θ
+ (1 − θ)
.
2
2
Das Verfahren ist stabil für θ > 0.5.
Erfahrungsgemäß bester Wert: θ ≈ 0.55 bis 0.6.
Größere Werte erzeugen numerische Dämpfung.
J.3.1.1
Berechnung offener Gerinne mit Preissmann-Schema
Setzt man die Ansätze in die Gleichungen
+
+ +
+ +
= 0
h+
0 t + v h0 s + y v0 s + v ISo
und
+
= 0
v0+t + v + v0+s + gh+
0 s + gIE
(Kontinuität)
(Bewegung)
, die prinzipiell durch Ite, hk+1
ein, erhält man zwei nichtlineare Gleichungen für vik+1 , vjk+1 , hk+1
j
i
ration lösbar sind. Der Aufwand wird verringert durch Linearisierung. Diese kann erfolgen mit Hilfe
von
hk+1
= hkl + ∆hl
l
,
vlk+1 = vlk + ∆vl
y k+1
= y kl + ∆y kl ≈ y kl + ∆hl
l
IE+ ≈
k + Ik
IEi
Ej
2
unter Vernachlässigung aller Terme, die ∆hl und ∆vl in quadratischer oder höherer Ordnung enthalten.
Je Abschnitt ergeben sich zwei lineare Gleichungen der Form
a ∆hi + b ∆vi + c ∆hj + d ∆vj = e
a0 ∆hi + b0 ∆vi + c0 ∆hj + d0 ∆vj = e0
und somit für das Gesamtsystem ein bandförmiges lineares unsymmetrisches Gleichungssystem für die Unbekannten ∆hl und ∆vl , das nach Einarbeiten von Randbedingungen mit Standardverfahren (Gauss, Double Sweep) lösbar ist – hierbei wird das Charakteristikenverfahren nicht
benötigt!
- 124 -
J.3. Implizite Verfahren
J.3.1.2
Double Sweep für das Preissmann-Schema
Es handelt sich um ein Übertragungsverfahren mit Ablösen der Unbekannten. Das Gerinne wird abschnittsweise beschrieben:
Knoten:
1
2
u
u
Abschnitt:
....
....
1
2
j
k
u
u
....
....
....
n
u
.... n − 1
j
Für jeden Abschnitt ergeben sich 2 Gleichungen aus dem Preissmann-Schema

"
a c b d
á ć b́ d´
#


∗ 


∆hj
∆vj
∆hk
∆vk

"
#


e
 =

é

Die Koeffizienten inklusive rechter Seite werden als (2*5) Matrix A gespeichert und diese umgeformt;
(das Zeichen ∆ wird im Folgenden der Übersichtlichkeit wegen fortgelassen).

"
J.3.1.3
a11 a12 a13 a14
a21 a22 a23 a24
#


∗ 


hj
vj
hk
vk

"
#


a
15
 =

a25

Linkes Abschnittsende, Knoten j
Für eine der Zustandsgrößen des linken Knoten j wird formal geschrieben:
entweder
hj
= Chj + Fhj ∗ vj
oder
vj
= Cvj + Fvj ∗ hj
allgemein: Bj
= CBj + FBj ∗ Uj
(J.3)
Die so ausgedrückte Größe wird mit Bj bekannt, linkes Ende j “ bezeichnet, die andere (Uj ) ist
”
die in der Hinrechnung verbleibende Unbekannte im Knoten j “. C ist eine vorgegebene oder fertig
”
berechnete Konstante und F ein bekannter Faktor vor der noch unbekannten anderen Zustandsgröße.
Im ersten Abschnitt ist eine der möglichen Randbedingungen mit
h1 = hˆ1 ;
Ch1 = hˆ1 , Fh1 = 0
oder
v1 = vˆ1 ;
Cv1 = vˆ1 , Fv1 = 0
gegeben.
Die beiden Gleichungen lassen sich jetzt ohne die Variable Bj anschreiben:

"
a1Bj ∗ (CBj + FBj ∗ Uj ) a1U j
a2Bj ∗ (CBj + FBj ∗ Uj ) a2U j
a13 a14
a23 a24
#


∗ 


- 125 -
1.0
Uj
hk
vk

"
#


a15
 =

a25

KAPITEL J - Differenzenverfahren
beziehungsweise


0.0 a1Bj ∗ FBj + a1U j

 0.0 a2Bj ∗ FBj + a2U j

|

a13 a14



a23 a24  ∗ 


}

{z
neue aiU j
0.0
Uj
hk
vk


a15 − a1Bj ∗ CBj



 =  a25 − a2Bj ∗ CBj

 |
{z
}





neue ai5
Weiter kann nach eventuellem Zeilentausch die Unbekannte Uj isoliert werden, die gestaffelten Koeffizienten stehen wieder in A :

"
J.3.1.4
0.0 1.0 a13 a14
0.0 0.0 a23 a24
#


∗ 


0.0
Uj
hk
vk

#
"


a15
 =

a25

(J.4)
Rechtes Abschnittsende, Knoten k
Die untere Zeile von (J.4) wird benutzt, um eine der beiden Zustandsgrößen dort durch die andere
auzudrücken. Wenn rechts der Gebietsrand (k = n) vorliegt, wird nur die Randbedingung eingesetzt
und die Rückrechnung beginnt (siehe unten).
Als neue Bekannte“ Bk wird diejenige Größe gewählt, die in der zweiten Zeile den betragsgrößeren
”
Koeffizienten hat, damit wird bei Normierung dieser Zeile Division durch 0 vermieden. Der große
Koeffizient bedeutet aber auch, daß der Einfluß dieser Variablen groß ist. Es ergibt sich:

"
#
0.0 1.0 a1Bk a1U k
0.0 0.0 1.0 a2U k


∗ 


0.0
Uj
Bk
Uk

"
#


a15
 =

a25

Außerdem kann der Koeffizient von Bk in der ersten Zeile mit Hilfe der zweiten zu Null gemacht
werden.

"
J.3.1.5
0.0 1.0 0.0 a1U k
0.0 0.0 1.0 a2U k
#


∗ 


0.0
Uj
Bk
Uk

"
#


a
15
 =

a25

(J.5)
Ablösen der Unbekannten
Aus Gleichung (J.5) ergeben sich die Formeln für die Rückrechnung.
Uj = CU j + FU j ∗ Uk
; CU j = a15 , FU j = −a1U k
Bk = CBk + FBk ∗ Uk ; CBk = a25 , FBk = −a2U k
(J.6)
Die Form von Bk ist die gleiche wie oben in Gln. (J.3) für Bj . Die beiden Konstanten C werden
direkt in den Ergebnisvektor gespeichert, die Faktoren F in einen zusätzlichen (2*n) Vektor. Zudem
muß für jeden Knoten in einem Merkfeld festgehalten werden, ob h oder v die Unbekannte Uj war.
Danach kann der gesamte Formelsatz mit Uk als neue linke Unbekannte“ für den nächsten Abschnitt
”
ausgewertet werden.
- 126 -
J.3. Implizite Verfahren
J.3.1.6
Rechter Gebietsrand
Die Unbekannte Uk = Uˆk ist als Randbedingung gegeben. Zu Bk und Uj sind in den Ergebnisvektor
nur noch die Anteile aus Uk nach Gln. (J.6) zu addieren. Damit ist am vorigen Abschnitt die rechte
Unbekannte auch ermittelt. Es werden sukzessive, rückwärts über alle Abschnitte, die Anteile der
ausgerechneten Unbekannten in die Lösung eingetragen, bis der linke Gebietsrand erreicht ist.
J.3.1.7
Speicherung während des Verfahrens bei n Knoten
2∗n
2∗n
n
2*5
5 ∗ n + 10
Konstanten C
Faktoren F
Zeiger
Matrix A
direkt während Hinrechnung in Lösungsvektor
einer je Zustandsgröße
einer pro Knoten, (”U ” ist h oder v)
nur einmal, bei Rückrechnung nicht gebraucht
Speicherplätze insgesamt
Die Auflösung mit dem Gauss’schen Algorithmus hätte dagegen mindestens gebraucht:
8∗n
2∗n
10 ∗ n
Koeffizienten aus Abschnitten und Randbedingungen
Elemente der rechten Seite bzw. der Lösung
Speicherplätze insgesamt
Der Double-Sweep-Algorithmus verbindet zwei Vorteile:
• Umgehung numerischer Probleme, die durch kleine Koeffizienten hervorgerufen werden und
• er kommt mit dem halben Speicherplatz aus.
- 127 -
KAPITEL J - Differenzenverfahren
J.4
Stabilität und Genauigkeit
Sei w(s, t) die exakte Lösung der Differentialgleichung (Fehler in den physikalischen Annahmen,
die zur DGL führen, i.d.R. vorhanden!)
und W (s, t) sei die exakte Lösung der Differenzengleichung,
dann ist δ = W − w der Diskretisierungs- oder Abbruchfehler, der dadurch entsteht daß die
Differentiale durch Differenzen ersetzt werden.
Dadurch, daß nur mit einer beschränkten Anzahl von Dezimalen gerechnet wird, erhält man
W (s, t) als numerische Lösung der Differenzengleichung mit
ε = W − W als Rundungsfehler.
E = ε+δ = W −w, der Gesamtfehler, beinhaltet nicht die Fehler, die bei den Annahmen hinsichtlich
der physikalischen Grundlagen gemacht wurden!
Zu untersuchen sind:
• Konvergenz: geht δ → 0 (und wenn ja, wie?) für ∆t → 0 und ∆s → 0 ?
• Konsistenz: liegt vor, wenn für ∆s → 0 und ∆t → 0 die Differenzengleichung in die Differentialgleichung übergeht.
• Stabilität: |E| muß auch nach vielen Zeitschritten klein gegenüber den Lösungen bleiben! |E|k+1 <
|E|k
Ist ein Schema konsistent und stabil, dann konvergiert es auch!
• Genauigkeit: Das Maß der Übereinstimmung der numerischen Lösung einerseits mit der
exakten, oft nicht bekannten Lösung der Differentialgleichung — nicht mit dem natürlichen
Vorgang (Annahmen!) — andererseits.
• Anmerkung: Beim Vergleich von Rechenergebnissen mit Meßwerten sind also zusätzlich in die
Betrachtung mit einzubeziehen:
- Fehler in den Annahmen zur Physik
- oft erhebliche Beobachtungsfehler
- 128 -
J.4. Stabilität und Genauigkeit
J.4.1
Courant-Friedrichs-Lewy-Kriterium
(zulässige Schrittweiten für explizite Verfahren, wenn Charakteristiken vorliegen)
Bei den hier vorgestellten expliziten Verfahren gehen nur der rechte und linke räumliche Nachbarpunkt
aus der vorigen Zeitstufe in die Lösung ein. (Die Lösung für P wird nur aus den beiden Punkten ◦
berechnet.) Die exakte Lösung entlang der Charakteristiken würde aber auf den Punkten L und R
basieren! Es muß sichergestellt werden, daß diese beiden Punkte im Schema enthalten sind und nicht
extrapoliert werden wie etwa bei L0 , R0 bei P 0 . Dazu muß gelten:
Max{c + v, c − v} = c + |v| ≤
∆s
∆t
bzw. wenn |v| c :
∆t ≤
∆s
c
oder auch:
Cr ≤ 1.0 mit der Courantzahl Cr =
∆t
(c + |v|)
∆s
Das Kriterium gilt nicht für implizite Verfahren, da bei diesen alle Lösungen in der neuen Zeitebene
über das Gleichungssystem mit allen Werten der vorherigen Zeitstufe verknüpft sind.
- 129 -
KAPITEL J - Differenzenverfahren
J.4.2
Eine Stabilitätsanalyse
für offenes Gerinne mit Lax-Verfahren
J.4.2.1
Die Grundgleichungen
∂h
∂h
∂v
+v
+ ISo + y
=0
∂t
∂s
∂s
und
∂v
∂v
∂h
+v
+g
+ gIE = 0
∂t
∂s
∂s
werden mit dem Ziel, lineare Gleichungen zu erhalten, vereinfacht unter den Annahmen:
ISo ≈ IE ≈ 0,
;
v
y ≈ y0 ,
∂h
∂h
∂s
∂t
Fr 1
und
v
(Froudezahl)
∂v
∂v
.
∂s
∂t
Es ergeben sich die linearen Wellengleichungen
∂h
∂v
+ y0
=0
∂t
∂s
J.4.2.2
und
∂v
∂h
+g
= 0.
∂t
∂s
Analytische Lösung
Durch nochmaliges Differenzieren der linearen Wellengleichungen nach s bzw. t erhält man
h0 tt + y0 v0 st = 0
bzw.
v0 st + gh0 ss = 0,
und durch Einsetzen folgt:
h0 tt = y0 gh0 ss
Bei Differenzieren nach t bzw. s:
v0 tt = y0 gv0 ss
Von den möglichen Lösungen dieser DGLn wird nur die harmonische Lösung betrachtet:
h(s, t) = Heiωs eiβt
mit
√
β = ± gy0 ω = ±ωc,
v(s, t) = V eiωs eiβt
und
V = −H
β
.
ωy0
- 130 -
(J.7)
J.4. Stabilität und Genauigkeit
Realteil der harmonischen Lösung bezüglich h:
o
n
n
Re {h(s, t)} = Re Heiωs eiβt = Re Hei(ωs+βt)
o
= H cos(ωs + βt)
(Eulersche Formel)
h(s, t) = const., wenn ωs + βt = const., d.h.
β
ω
∆s
√
√
= − = ∓ gy0 = ∓ gy0 .
∆t
ω
ω
√
Die Fortpflanzungsgeschwindigkeit c = ∓ gy0 ist von der Wellenfrequenz unabhängig. Die Welle
ändert ihre Form beim Fortschreiten in Raum und Zeit nicht (Linearisierung).
Verifikation der Lösung durch Einsetzen in die Differentialgleichung, hier also in die linearen Wellengln.
(J.7):
Heiωs eiβt iβ + y0 V eiωs eiβt iω = 0
⇔
V eiωs eiβt iβ + gHeiωs eiβt iω = 0
Hβ + y0 V ω = 0
⇔
V β + gHω = 0
⇔
V = −H
β
y0 ω
Einsetzen in die erste Gleichung liefert
−H
β2
+ gHω = 0
y0 ω
⇒
gy0 ω 2 = β 2
√
β = ± gy0 ω
⇒
√
Mit β = ± gy0 ω sind die harmonischen Lösungen h(s, t), v(s, t) Lösungen der linearen Wellengleichung.
Analytische Lösung
t
√
spezieller Fall: β = + gy0 ω
2π/β
ωs + βt = 2π
ωs + βt
= const.
H
s
v
2π/ω
- 131 -
KAPITEL J - Differenzenverfahren
J.4.2.3
Stabilitätsanalyse für das Lax-Verfahren
(mit voller Mittelung auf alter Zeitstufe)
Die Differenzengleichungen lauten:
v(s + ∆s, t) − v(s − ∆s, t)
2h(s, t + ∆t) − h(s + ∆s, t) − h(s − ∆s, t)
+ y0
=0
2∆t
2∆s
h(s + ∆s, t) − h(s − ∆s, t)
2v(s, t + ∆t) − v(s + ∆s, t) − v(s − ∆s, t)
+g
=0
2∆t
2∆s
Die strenge Lösung (harmonische Gleichungen) wird in die Differenzengleichungen eingesetzt; damit
folgt:
i
i
H h iβ∆t iω∆s
V h iω∆s
−iω∆s
iβt iωs
−iω∆s
2e
−e
−
e
e
e
+
y
e
−
e
eiβt eiωs = 0
0
|
{z
}
{z
}
2∆t
2∆s |
−2 cos(ω∆s)
2i sin(ω∆s)
(Eulerformel)
i
i
V h iβ∆t
H h iω∆s
2e
− eiω∆s − e−iω∆s eiβt eiωs + g
e
− e−iω∆s eiβt eiωs = 0
2∆t
2∆s
bzw. nach Kürzen:
1 iβ∆t
y0
e
− cos(ω∆s) H + i
sin(ω∆s) V = 0
∆t
∆s
i
g
1 iβ∆t
sin(ω∆s) H +
e
− cos(ω∆s) V = 0
∆s
∆t
Dieses homogene lineare Gleichungssystem für H und V besitzt nur dann nichttriviale Lösungen, wenn
die Determinante der Koeffizientenmatrix verschwindet:
1 iβ∆t
e
− cos(ω∆s)
∆t
2
− i2 gy0
sin(ω∆s)
∆s
2
= 0.
Auflösung nach eiβ∆t ergibt:
∆t
√
eiβ∆t = cos(ω∆s) ± i gy0
sin(ω∆s).
∆s
Im Folgenden wird
schnitt.)
√
∆t
gy0 ∆s
mit r bezeichnet. (Das ist die Courantzahl Cr aus dem vorigen Ab-
- 132 -
J.4. Stabilität und Genauigkeit
Untersuchung des Ergebnisses:
∆s √
= gy0 = c ,
∆t
1. Fall: r = 1, d.h.
Orts- und Zeitschritt den Charakteristiken entsprechend gewählt.
eiβ∆t = cos(ω∆s) ± i sin(ω∆s)
= e±iω∆s
(Euler-Formel)
√
±iω∆t gy0
= e
;
√
β = ±ω gy0
Differenzengleichung, Differentialgleichung und Charakteristikenverfahren haben dann identische Lösungen, sie werden nicht gedämpft.
2. Fall: r 6= 1, komplexes β
iβ∆t = ln [cos(ω∆s) ± ir sin(ω∆s)]
Für komplexes z gilt:
z = |z|eiϕ
,
ϕ = arg z = arctg
Im(z)
Re(z)
und
ln z = ln |z| + i arg z,
damit wird
iβ∆t =
i
1 h 2
ln cos (ω∆s) + r2 sin2 (ω∆s) ± i arctg(r tg(ω∆s))
2
Re(β) = βR = ±
Im(β) = βI = −
1
arctg(r tg(ω∆s))
∆t
h
i
1
ln 1 + r2 − 1 sin2 (ω∆s)
2∆t
und der Wasserstand kann geschrieben werden als
h(s, t) = Heiωs eiβR t e−βI t = Hei(ωs+βR t) e−βI t .
Dabei ist H die Amplitude, ei(ωs+βR t) beinhaltet die Geschwindigkeit und e−βI t die Dämpfung oder
Anfachung.
Die Phasengeschwindigkeit ergibt sich aus
ωs + βR t = const
;
∆s
βR
=−
ω
∆t
- 133 -
KAPITEL J - Differenzenverfahren
und die Näherung für die Wellengeschwindigkeit c zu
c̃ =
βR
1
∆s
=−
=∓
arctg(r tg(ω∆s)) .
ω
∆t
ω
∆t
Stabilität: Für βI > 0 wird der Wasserstand (und ein in ihm enthaltener Fehler!) im Laufe der Zeit
gedämpft, für βI < 0 angefacht (instabil!).
βI = −
h
i
1
ln 1 + r2 − 1 sin2 (ω∆s)
2∆t
∆s
c̃ = ∓ ω∆s
ω∆t = ∆t
βI = 0, das ist die exakte Lösung.
b.) für r < 1: βI > 0, numerische Dämpfung, stabil.
c.) für r > 1: βI < 0, Anfachung, instabil.
Dieser Fall braucht nicht weiter untersucht zu werden.
a.)
für r = 1:
Konvergenz: βR und βI für verschwindende ∆t und ∆s bei r =
lim {βR } = lim
∆t→0
∆s→0
lim {βI } = lim
∆t→0
∆s→0
∆t→0
∆s→0
< 1:
1
1
√
± arctg r tg(ω∆s) = ± rω∆s = ω gy0
∆t
∆t
∆t→0
∆s→0
∆t √
∆s gy0
h
i
1
ln 1 + r2 − 1 sin2 (ω∆s) = 0
2∆t
Die numerische Lösung konvergiert zur exakten.
Abschätzung der Dämpfung:
Bei vorgegebener Ortsschrittweite ∆s ergibt sich für unterschiedliche Wellenfrequenzen ω die numerische Dämpfung in Abhängigkeit vom gewählten Zeitschritt ∆t bzw. der Anzahl nt = t/∆t von
Zeitschritten, die zur Berechnung der Lösung h(s, t) benutzt werden.
Beispiel: Wellenlänge 4 ∆s,
βI
ω=
2π
L
=
π
2 ∆s
h
i
1
ln 1 + r2 − 1 sin2 (ω∆s)
2∆t 1
π
= −
ln 1 + r2 − 1 sin2
2∆t
2
!
1
ln r
= −
ln r2 = −
; βI ≥ 0 (Stabilität)
2∆t
∆t
= −
Damit wird der Dämpfungsterm zu
t
!
t
e−βI t = e ∆t ln r = r ∆t = rnt
=
√
∆t
gy0
∆s
t
∆t
r ≤ 1(Stabilität)
=
c ∆t
∆s
nt
.
Die numerische Dämpfung nimmt also bei verkleinertem r (Courantzahl r < 1) mit der Anzahl
√
der Zeitschritte nt zu! Jede Verkleinerung des Zeitschrittes unter die optimale Größe ∆t = ∆s/ gy0
ergibt bei dem hier untersuchten Lax-Verfahren starke numerische Dämpfung.
- 134 -
J.5. Ergänzungen
J.5
Ergänzungen
J.5.1
Ordnung des Diskretisierungsfehlers
Die Formel von Taylor für den Funktionswert einer Funktion f (x) an den Stellen x = a ± h lautet —
dabei wird die Existenz der Ableitungen in a vorausgesetzt —:
f (a ± h) − f (a) =
n−1
X
l=1
hl (l)
f (a) · (±1)l + Rn
l!
Für n = 2 erhält man:
f (a + h) − f (a)
h
h2
= f 0 (a) + f 00 (a) + f 000 (a) + . . .
h
6{z
|2
}
R2
Mit Ausnahme des Restgliedes R2 ist diese Formel identisch mit denen für die Zeitableitungen beim in∧
stabilen, Lax- und Upstream-Schema (h = ∆t) und mit der für die Ortsableitungen beim Upstream∧
Verfahren (h = ∆s).
Der Fehler dieser Verfahren liegt also im Restglied (das zu 0 gemacht wird), in ihm kommt die Schrittweite in erster Potenz vor.
Man schreibt dafür: Fehler O(h).
Für n = 3 erhält man:
f (a + h) − f (a)
h
h2
h3
= f 0 (a) + f 00 (a) + f 000 (a) + f (4) (a) + . . .
h
2
6
24
und
f (a − h) − f (a)
h
h2
= −f 0 (a) + f 00 (a) − f 000 (a) + − . . .
h
2
| 6
{z
}
R3
sowie nach Subtraktion und Division durch 2
f (a + h) − f (a − h)
h2
= f 0 (a) + f 000 (a) + . . .
2h
|6
{z
}
(J.8)
R3
Das ist die Differenzenformel für die Ortsableitungen beim Lax-, Leap-Frog- und Lax-WendroffVerfahren (h = ∆s) sowie für die Zeitableitungen des Leap-Frog-Schemas.
Das Restglied enthält nur noch h2 : Fehler O(h2 ).
Durch Addition beider Reihenentwicklungen sowie Division durch h
f (a + h) + f (a − h) − 2f (a)
h2 (4)
00
=
f
(a)
+
f (a) + . . .
h2
|6
{z
}
(J.9)
R4
erhält man übrigens eine Differenzenformel für 2. Ableitungen mit dem Fehler O(h2 ).
Durch Taylorreihenentwicklung für die Stellen a ± 2h, a ± 3h usw. lassen sich genauere Differenzenschemata gewinnen. Mit der Genauigkeit steigt dabei auch der Rechenaufwand.
- 135 -
KAPITEL J - Differenzenverfahren
J.6
Ergänzung: Charakteristiken-Verfahren
Die Grundgleichungen der instationären Gerinneströmung erlauben nur mit weiteren Annahmen (z.B.
Reibungsfreiheit, kleine Amplituden) geschlossene Lösungen, die wir hier nicht behandeln wollen. In
der Praxis wird man numerische Lösungen mit Hilfe von Differenzen- oder Finite-Element-Verfahren
benutzen.
Ein Lösungsverfahren, das gewissermaßen den Schritt von der analytischen zur numerischen Lösung
vollzieht, ist das Charakteristikenverfahren. Es vermittelt anschaulich das Phänomen der Wellenausbreitung und sollte prinzipiell vor der Anwendung rein numerischer Verfahren beherrscht werden.
Dabei beschränken wir uns hier auf einen Rechteckquerschnitt (q = vy).
Die Kontinuitäts- und Bewegungsqleichung lauten (s. Gl. J.1 und J.2) bei Verwendung der Wassertiefe
y anstelle des Wasserstandes h:
∂v 1
+
∂s y
∂y 1
+
∂s g
∂v
∂v
+v
∂t
∂s
∂y
∂y
+v
∂t
∂s
= 0
Kontinuität
(J.10)
Bewegung
(J.11)
+ IE − ISo = 0
√
Multipliziert man die Kontinuitätsgleichung mit dem Faktor c = gy (der Fortpflanzungsgeschwindigkeit einer Störung), sowie die Impulsgleichung mit der Erdbeschleunigung g, dann erhält man
c
g
∂v
c
+
∂s y
∂y
∂y
+v
∂t
∂s
= 0
∂y ∂v
∂v
+
+v
+ g (IE − ISo ) = 0
∂s
∂t
∂s
Addition bzw. Subtraktion dieser Gleichungen führt zu:
∂v
∂v
g ∂y
∂y
(v + c) +
+
(v + c) +
+ g(IE − ISo ) = 0
∂s
∂t
c ∂s
∂t
∂v
∂v
g ∂y
∂y
(v − c) +
−
(v − c) +
+ g(IE − ISo ) = 0
∂s
∂t
c ∂s
∂t
dF
∂F ds ∂F
Unter Verwendung der totalen Ableitung einer Funktion F nach der Zeit,
=
·
+
, folgt
dt
∂s dt
∂t
aus den vorstehenden Gleichungen
dv g dy
±
+ g (IE − ISo ) = 0
dt
c dt
und mit
y = c2 /g
sowie
dy
d(c2 /g)
=
dt
dt
=
2c dc
g dt
d
(v ± 2c) = −g (IE − ISo )
dt
wobei
ds
√
= v ± c = v ± gy
dt
- 136 -
folgt
(J.12)
ist.
(J.13)
J.6. Ergänzung: Charakteristiken-Verfahren
(J.12) beschreibt also die zeitliche Änderung der Größe v ± 2c aus der Sicht eines Beobachters, der
ds
= v ± c bewegt. Der Weg des Beobachters kann nun in der s-t-Ebene
sich mit der Geschwindigkeit
dt
graphisch dargestellt werden, wodurch sich Möglichkeiten zur Lösung obiger Gleichungen ergeben.
strömender Abfluß
schießender Abfluß
v < c; F r < 1
v > c; F r > 1
v
v
=√ )
c
gy
Die Linien der oben abgebildeten Kurvenscharen werden Charakteristiken genannt.
J.6.1
Fr =
Die einfache Welle im Gerinne mit Normalabfluß
Im folgenden soll ein Strömungsvorgang betrachtet werden, bei dem der Reibungseinfluß die Wirkung
der Sohlneigung näherungsweise aufhebt, d.h.:IE ' ISo . (J.12) reduziert sich somit auf
d
√
(v ± 2 gy) = 0
dt
In diesem Fall ist also die Größe v ± 2
(J.14)
√
gy konstant entlang
ds
√
= v ± gy.
dt
Wir betrachten nun eine Welle, für die diese Bedingung gültig ist und die in einen ungestörten Bereich
mit Normalabfluß einläuft (einfache Welle). Das Gerinne sei außerdem so lang, daß im betrachteten
Zeitraum keine Reflektionen vom unteren Ende zurückkommen.
In dem abgebildeten Kanal herrsche Normalabfluß,
∂y
∂y
d.h.
= 0,
= 0
∂s
∂t
∂v
∂v
sowie
= 0,
= 0;
∂s
∂t
bei horizontaler Sohle sei stehendes Wasser vorausgesetzt.
Am linken Rand gibt man y(t) oder
v(t) vor, so daß sich die Welle nach
rechts bewegt (s. Abb. rechts). Hier√
bei ist vn + gyn die Geschwindigkeit des Wellenfußes.
- 137 -
KAPITEL J - Differenzenverfahren
In dem rechten Charakteristikendiagramm ist vA0 = vB 0 = vn sowie yA0 = yB 0 = yn , so daß wir
wegen Gl. (J.14) für die nach links laufenden Charakteristiken durch A und B
√
√
vA − 2 gyA = vn − 2 gyn
vB − 2
√
√
gyB = vn − 2 gyn
und
(J.15)
erhalten.
(J.16)
Hieraus folgt:
vA − 2
√
gyA = vB − 2
√
gyB
Andererseits gilt:
√
vA + 2 gyA = vB + 2 gyB .
√
Die Addition der beiden letzten Gleichungen führt zu vA = vB und analog yA = yB .
Also sind entlang der rechtslaufenden Charakteristiken v und y und damit auch die Neigung
ds
√
= v + gy konstant, so daß diese Charakteristiken Geraden sind. Die Neigung der durch A und B
dt
rechtslaufenden Charakteristik berechnet sich aus
ds
√
= vA + gyA
dt
Mit Gl. (J.15) erhalten wir schließlich
bzw.
ds
dt
√
√
= vn + 3 gyA − 2 gyn
ds
dt
=
3 vA
vn √
−
+ gyn
2
2
Wegen vA 6= vn ; vB 6= vn und yA 6= yn ; yB 6= yn
ist die Neigung der linkslaufenden Charakteristiken,
ds
√
= v − gy, nicht konstant.
dt
Somit sind diese Kurven für den Fall der einfachen Welle im allg. nicht gerade.
- 138 -
J.6. Ergänzung: Charakteristiken-Verfahren
Die Charakteristikenschar der einfachen Welle ohne Reflektionseinwirkung hat also folgende Eigenschaften, wenn wir für vA und yA verallgemeinernd v(t) bzw. y(t) setzen:
1. Alle rechtslaufenden Charakteristiken sind Geraden (im allg. keine Parallelen).
2. Entlang jeder rechtslaufenden Charakteristik sind y, v und v + 2
√
gy konstant.
p
√
3. Für jede linkslaufende Charakteristik gilt: v(t) − 2 gy(t) = vn − 2 gyn ;
d.h.: wenn am linken Rand y(t) oder v(t) vorgegeben wird, dann ist jeweils der andere Wert
berechenbar.
4. Für die Steigungen der rechtslaufenden Charakteristiken gelten folgende Beziehungen:
q
ds
√
= vn + 3 gy(t) − 2 gyn ,
dt
bzw.
3 v(t)
vn √
ds
=
v(t) −
+ gyn ,
dt
2
2
wenn y(t) vorgegeben,
wenn v(t) vorgegeben ist.
5. Für den Fall einer Sunkwelle ergibt sich ein Auffächern“ der Charakteristiken in Richtung
”
steigender s-Werte, bei einer Schwallwelle dagegen ein Zusammenlaufen“ derselben (s. nächste
”
Abb.). Daraus folgt, daß sich eine Sunkwelle abflacht, eine Schwallwelle aufsteilt. Kommt es für
den Fall einer Schwallwelle zu einem Schneiden zweier Charakteristiken – Punkt S in der Abb.–,
so beginnt der jeweils höhere Teil der Wellenfront den niedrigeren zu überholen — der Schwall
bricht.
a) Sunkwelle
b) Schwallwelle
Aber auch schon bevor der Schwall bricht, wird in der steilen Wellenfront die eingangs des
Abschnitts genannte Voraussetzung schwach gekrümmter Stromfäden verletzt. Der Schwall läuft
√
dann mit einer Geschwindigkeit, die zwischen den vj + gyj liegen, die sich vor und hinter dem
Schwall errechnen.
J.6.2
Einfache Welle mit Reflektionen
Überlagern sich im Gerinne rechts- und linkslaufende Wellen (z.B. durch Reflektionen an den Enden),
so gilt die einfache Feststellung nicht mehr, daß alle rechtslaufenden Charakteristiken gerade sind.
Wir greifen zurück auf Gleichungen (J.12) und (J.13) und setzen wiederum IE = ISo :
- 139 -
KAPITEL J - Differenzenverfahren
d
(v ± 2c) = 0
dt
ds
auf
= v ± c mit
dt
c =
√
(Die Annahme IE ' ISo ist im Interesse einer einfachen Darstellung getroffen worden,
ohne daß dies grundsätzlich nötig wäre.)
gy.
Durch den Punkt L sei die Charakteristik
ds
= v + c gezeichnet,
dt
entlang der der Ausdruck v + 2c konstant sein muß.
Entsprechend ist durch den Punkt R die Charakteristik
ds
= v − c gezeichnet,
dt
für die der Ausdruck v − 2c konstant ist.
Im Schnittpunkt P, der durch die beiden Charakteristiken festgelegt ist, lassen sich nun cP bzw. die
Wassertiefe yP und die Fließgeschwindigkeit vP berechnen, wenn die entsprechenden Werte yL , vL , yR
und vR bekannt sind:
vL + 2cL =
vP + 2cP
vR − 2cR =
vP − 2cP .
sP − sL
=
tP − tL
vP + cP + vL + cL
2
= zL
die weiteren sind eine Differenzenapproximation
sP − sR
=
tP − t R
vP − cP + vR − cR
2
= zR
von
Bis hier sind die Gleichungen exakt,
ds
= v ± c.
dt
Hieraus lassen sich die unbekannten Größen vP , cP , tP und sP in 4 Schritten explizit bestimmen:
vL + vR
+ cL − cR
2
vP − vR
+ cR
; yP
2
sR − sL + tL zL − tR zR
zL − z R
a)
vP =
b)
cP =
c)
tP =
d)
sP = sR + zR (tP − tR )
Eine systematische Berechnung für das gesamte Gerinne läßt sich dann wie folgt durchführen:
- 140 -
J.7. Literaturhinweise
Anfangsbedingungen:
Vorzugeben sind die Werte c und v für alle auf der Abszisse (t = 0) gelegenen Punkte. Aus diesen
Größen, zusammen mit den dazugehörenden s-Werten, ergeben sich dann nach obigem Gleichungssystem die entsprechenden Werte für den folgenden Zeitpunkt.
Randbedingungen:
An den Rändern (s = 0, s = l) gibt man für jeden Zeitpunkt den Wert c bzw. y oder v vor. Somit
bleiben an den Randpunkten zwei Unbekannte, für die dann zwei Gleichungen zur Verfügung stehen.
Tritt ein Brechen von Wellen ein, so bedeutet das wie schon erwähnt ein Schneiden von Charakteristiken gleicher Richtung.
J.7
Literaturhinweise
[1] Dietrich Marsal: Finite Differenzen und Elemente; Springer Verlag, 1989
[2] Dietrich Marsal: Die numerische Lösung partieller Differentialgleichungen;
B.I. Wissenschaftsverlag, 1976
[3] Graf Finck v. Finckenstein: Einführung in die numerische Mathematik, Bd. 2;
Carl Hanser Verlag, 1978
- 141 -
frei für Notizen
Kapitel K
Differenzenverfahren II:
Transport in Fließgewässern
- 143 -
KAPITEL K - Transportgleichung
K.1
Einleitung
In Gewässern werden Stoffe verschiedener Art und Energie transportiert:
• Abwässer aus Haushalten, Industrie und Landwirtschaft
• Salz aus Kalibergbau und dem Meer (in Ästuaren)
• Toxine aus Deponieleckagen
• Sediment in Oberflächengewässern (Schlamm, Sand und Geschiebe)
• Wärme aus Kühlwassereinleitung von Kraftwerken
Falls die Einleitung beabsichtigt ist: Simulation des Transports, um Umwelteinflüsse innerhalb verträglicher Grenzen zu halten. Bei Unglücksfällen (z.B. in der chemischen Industrie) sind die Auswirkungen – auch eventueller Gegenmaßnahmen – abzuschätzen.
Beschränkung hier auf eindimensionalen Transport eines nichtreaktiven Tracers bei zeitlich und
örtlich konstanter Fließgeschwindigkeit.
Literaturhinweis: Häfner, Sames, Voigt: Wärme und Stofftransport
– Mathematische Methoden –; Springer Berlin, Heidelberg, New York,. . . 1992
K.2
Eindimensionale Transportgleichung
Das Thema ist nicht unkompliziert. Zur Verdeutlichung werden wir ein Gedankenmodell benutzen:
Ein endloser Zug oder ein Förderband kommen aus einem Tunnel mit einer Geschwindigkeit v. Wir
sehen nicht, was sich links vom Portal abspielt, dieses entspricht dem linken Rand unseres Modells.
Das Band sei beladen mit einem festen Körper und wir betrachten den Zug zu einem Zeitpunkt t, der
etwas nach t0 liegt. Letzteres ist die Zeit, zu der die vordere Kante des Festkörpers gerade den Tunnel
verließ. Die Vorderkante hat also ab Portal den Weg x = v(t − t0 ) hinter sich gelassen.
A: Festkörper
Wir modifizieren das Modell ein wenig: Anstelle des Festkörpers sei nun das Band beladen mit Sand,
der vorn von Null auf die endgültige Höhe ansteigt. Den (negativen!) Anstieg erhalten wir durch die
örtliche erste Ableitung ∂/∂x.
B: Sandfracht
Natürlich ist sichergestellt, daß nichts vom Förderband herunterfällt! Das entspricht dem Prinzip der
Massenerhaltung.
- 144 -
K.2. Eindimensionale Transportgleichung
K.2.1
Advektion
Im rechts skizzierten Fall, einer gedachten Strömung
mit konstanter Geschwindigkeit v – ohne jede turbulente Schwankung – und einer Tracerkonzentration C
[Masse/Volumen] ohne Quellen oder Senken, folgt aus
einfachen geometrischen Betrachtungen
∂C
∂C
+v
=0
∂t
∂x
(K.1)
Allgemein gilt in mehreren Richtungen und für
veränderliche Geschwindigkeiten:
∂C
+ div (ṁ) = qm
∂t
(Massenerhaltung) (K.2)
mit dem Massenstrom ṁ und dem Quellterm qm . Im eindimensionalen Fall ergibt sich mit ṁ = vC
und ∂v/∂x = 0 sowie qm = 0 auch hieraus Gl. (K.1).
Zurück zu unserem eingangs beschriebenen Gedankenmodell (Sandversion): Ein Beobachter, der sich
an einem festen Ort befindet (Herr Euler in der Nähe des Portals), sieht zunächst einen zeitlichen
Anstieg der Sandhöhe. Diese entspricht der Konzentration C. Im Falle des Festkörpers gäbe es eine
sprunghafte Änderung. Nichts anderes beschreibt Gl. (K.1).
K.2.2
K.2.2.1
Diffusion und Dispersion
Molekulare Diffusion
In jedem Fluidgemisch ruft die Brownsche Molekularbewegung Diffusion hervor, einen Ausgleich unterschiedlicher Konzentrationsgefälle. Sie wird durch das erste Ficksche Gesetz beschrieben:
ṁ = −Dm grad C
(Massenstrom infolge molekularer Diffusion)
(K.3)
Der Diffusionskoeffizient Dm [Fläche/Zeit] ist eine temperaturabhängige Materialkonstante.
Die zeitliche Änderung der Konzentration an einem festen
Ort allein aus Diffusion ergibt sich mit Gl. (K.2) zu
∂C
∂2C
= Dm
∂t
∂x2
Das soll durch die nebenstehenden Bilder verdeutlicht werden. Die Anfangsverteilung wird eine gewisse Zeit lang
durchmischt, wodurch sich die Gradienten abflachen und die
Konzentration im Punkt M steigt. Auch nimmt die (positive)
Krümmung ab, weshalb sich der Anstieg in M verlangsamt.
Eine vollständige Durchmischung wird erst nach unendlich
langer Zeit erreicht. Die Fläche unter den Kurven (entspricht
der Masse des gelösten Stoffes) ist zu allen Zeiten gleich.
- 145 -
KAPITEL K - Transportgleichung
K.2.2.2
Turbulente Diffusion
Reale Strömungen sind in der Regel mehr oder weniger turbulent. Die Turbulenz bewirkt eine Durchmischung genau wie die Brownsche Molekularbewegung. Die dadurch entstehende Diffusion ist erheblich
größer als die molekulare, wird aber mit derselben Gleichung mathematisch erfaßt:
ṁ = −DT grad C
(Massenstrom infolge turbulenter Diffusion)
Zu unsymmetrischen Konzentrationsverläufen
Die Abbildung zeigt einen Konzentrationsverlauf mit positiver zweiter
Ortsableitung. Die mittleren Geschwindigkeitsschwankungen δv erhöhen
die Konzentration im Schnitt M, wenn sie von links einwirken (δv > 0),
und vermindern sie von rechts einwirkend (δv < 0). Bei im Mittel gleicher
Größe, wie vorausgesetzt, findet auch bei v = 0 ein Transport nach
rechts statt, weil wegen der positiven zweiten Ableitung der Unterschied
CL − CM größer ist als CM − CR .
Betrachtet man den Abschnitt L - R allein – mit gedachtem undurchlässigen Rand, so stellt sich dort letztendlich eine vollständige
Durchmischung ein, mit einem Konzentrationswert größer als CM .
K.2.2.3
Dispersion
Die oben benutzte Geschwindigkeit v stellt einen Mittelwert (hier mit v̄ bezeichnet) im Querschnitt A
und einer Zeitspanne T über die lokal sowie zeitlich unterschiedlichen Geschwindigkeiten v dar, ebenso
rechnen wir bei einem eindimensionalen Modell mit Mittelwerten der Konzentration C̄:
R RR
v̄ =
R RR
v dAdt
T A
=
T A
R RR
v̄ + δv dAdt
T A
und C̄ =
T A
R RR
C dAdt
T A
T A
=
C̄ + δC dAdt
T A
T A
mit verschwindenden Integralen über die Schwankungen δv(y, z, t) und δC(y, z, t) .
Z ZZ
Z ZZ
δC dAdt
δv dAdt =
0 =
T
T
A
A
Sei beispielsweise über die Breite B eines Kanalabschnitts eine parabolische Verteilung der Fließgeschwindigkeit angenommen, ebenso verteilt die Konzentration links von der Stelle x = 0.
Mit der normierten Koordinate r über die Breite gilt
v̄ = vmax (1 − r2 ) und C̄ = Cmax (1 − r2 ).
Wir betrachten hier nicht die (meist kompliziertere) Verteilung über die Tiefe. Nachfolgend ergibt sich:
v̄ =
+1
R
v dr/2 = vmax r − r3 /3
−1
+1
−1 /2
= 32 vmax , analog ist C̄ = 23 Cmax .
Bei den in der Natur meist vorkommenden turbulenten Strömungen liegt v̄ erheblich näher an vmax .
Die mathematische Beschreibung ist ganz analog zu der der Diffusion.
ṁ = −D∗ grad C
(Massenstrom durch Dispersion)
- 146 -
(K.4)
K.2. Eindimensionale Transportgleichung
Der Dispersionskoeffizient D∗ ist hier – wie auch DT aus turbulenter Diffusion – jedoch keine Stoffkonstante,
denn die Ursachen sind die vorgenommenen Mittelungen der Geschwindigkeit und der Konzentration. In einem
(hypothetischen!) bis auf Molekülgröße aufgelösten dreidimensionalen Modell gäbe es keine Dispersion; wir
könnten mit den tatsächlichen ortsabhängigen Größen rechnen. D.h. die Dispersion hängt von der mehr oder
weniger feinen Diskretisierung ab. Dennoch nennen wir den hier behandelten Effekt physikalische Dispersion im
Gegensatz zur numerischen, die sich aus dem gewählten Rechenverfahren ergibt – später.
Rechnen wir mit den Mittelwerten von Geschwindigkeit
und Konzentration, dann erhalten wir nach einer gewissen
Zeit t den nebenstehenden Zustand, der durch unser Gedankenmodell (A: Festkörper) veranschaulicht wird. Links
ist die Draufsicht und rechts die Verteilung über die Länge
dargestellt.
Ganz anders sähe es aus, wenn wir die Verteilungen
über die Breite zunächst berücksichtigen. Links die
Draufsicht und rechts die Längsverteilung (dicke Linie), nachdem wir nachträglich über die Breite gemittelt haben. Die dunklen Flächen stellen die Differenzen gegenüber der Rechnungen mit Mittelwerten dar.
Sind diese beiden gleich groß? (Massenerhaltung?)
a) Rechnung mit Mittelwerten: Im Zeitraum ∆t tritt die Masse m = B · ∆t v̄ C̄ = B · ∆t vmax Cmax · fM über
den linken Rand in das Gebiet ein, mit dem Faktor fM = 4/9 = 0, 4444.
b) Mit den quadratischen Verteilungen ergibt sich dagegen
m =
1
B · ∆t
2
Z+1
vmax (1 − r2 ) Cmax (1 − r2 ) dr = B · ∆t vmax Cmax · fQ mit
−1
fQ
=
1
2
Z+1
2 2
Z1
(1 − r ) dr =
−1
0
1
2 3 1 5
1 − 2r + r dr = r − r + r
= 8/15 = 0, 5333 > fM !
3
5
0
2
4
Bei der letzten genaueren Rechnung tritt also mehr Masse ein; gegenüber der vereinfachten Rechnung mit Mittelwerten findet ein zusätzlicher Transport statt. Dieser wird durch den Dispersionskoeffizienten D∗ modelliert.
K.2.2.4
Vollständige Transportgleichung
Obwohl von unterschiedlicher Herkunft, werden beide Koeffizienten wegen der identischen mathematischen Form zu einem Gesamtkoeffizienten D = Dm + Dt + D∗ zusammengefaßt. (Die physikalische
Dispersion ist meist ein Vielfaches der Diffusion.) Der Massenstrom aus Advektion, Diffusion und
Dispersion ist damit
ṁ = vC − D grad C
und Gl. (K.2) wird zu
∂C
= −div (vC − D grad C) + qm
∂t
woraus für eine Richtung x mit v =const. folgt:
∂C
∂C
∂2C
= −v
+ D 2 [+qm ]
∂t
∂x
∂x
- 147 -
(K.5)
(K.6)
KAPITEL K - Transportgleichung
Bei quell- und senkenfreier Strömung entfällt der Term [+qm ]. Er wird ab hier nicht weiter berücksichtigt, da
ein Tracer wie hier vorausgesetzt mit der Umgebung nicht reagiert, also nicht abgebaut oder erzeugt wird.
Beim Wärmetransport darf er nicht entfallen, da an Oberfläche, Boden und Seiten Wärme abgegeben oder
aufgenommen werden kann.
Veranschaulichen können wir uns die Gesamtwirkung mit Hilfe unseres Gedankenmodells: Wir beobachten einen
Zug mit der Geschwindigkeit v = 2 m/s, der einen Sandkörper geladen hat. Die vordere senkrechte Kante tritt
zur Zeit t0 = 0 s aus dem Tunnel aus. Fünf Minuten später, zur Zeit tc = 300 s, beobachten wir, daß der
Sandkörper abrupt endet. Wie sieht die Situation zur Zeit t1 = 700 s aus? Zu beachten ist, dass das Gleis etwas
holperig sei und den Zug entsprechend durchrüttelt.
Einfach ist der advektive Transport darstellbar. Das Vorderende ist seit 700 s im System, die Hinterkante seit
t1 −tc = 400 s. Sie haben also 1,4 km bzw. 800 m zurückgelegt. Diese Situation ist durch das gestrichelte Rechteck
angedeutet.
Nun wurde aber der Sand geschüttelt – Diffusion –, wodurch die vorher senkrechten Kanten allmählich abgebröckelt sind. (Dabei fällt nichts nebenbei – Massenerhaltung.) D.h. dabei wird der Sandklotz ausgerundet und
etwas länger ohne daß sich die Größe seiner Seitenfläche ändert. Da das vordere Ende schon 300 s länger auf der
Holperstrecke gefahren ist als das hintere, ist hier die Ausrundung weiter fortgeschritten als dort.
Es ist durchaus erlaubt, beide Transportarten getrennt zu behandeln und nachher zu addieren. Die
Transportgleichung ist eine lineare partielle Differentialgleichung und für alle linearen Systeme ist Superposition zulässig.
K.2.3
Anfangs- und Randbedingungen
Anfangsbedingungen: Zu Beginn der Berechnung (t = t0 ) müssen die Konzentrationswerte C (0) im
gesamten Lösungsgebiet bekannt sein.
Randbedingungen: Am Einstromrand wird die Konzentration Cein über den gesamten Zeitraum der
Simulation (t0 ≤ t ≤ te ) vorgegeben. Bei Einleitung eines Stoffs ṁ [Masse/Zeit] in einen Fluidstrom
Q = vA [Volumen/Zeit] erhöht sie sich um ∆Cein = ṁ/Q [Masse/Volumen].
Wäre der Ausstromrand so weit von Konzentrationsänderungen entfernt, daß diese ihn nicht errei(0)
chen können, genügte dort die Vorgabe Caus = Caus . Um das Modellgebiet nicht unnötig weit auszudehnen, muß ein Mechanismus gefunden werden, ankommende Konzentrationen über den Ausstromrand hinweg zu befördern, der keine Störungen nach oberstrom erzeugt (nichtreflektierende Randbedingung K.3.3).
Sinnvolle Kombinationen für Tests: Besonders geeignet zum Testen der nachfolgend entwickelten numerischen Lösungsschemata sind einfache Situationen, zu denen eine geschlossene analytische
Lösung existiert, beispielsweise:
- 148 -
K.3. Numerische Lösungsschemata
Test 1
analytische Lösung mit der komplementären Gauss’schen Glockenkurve
1
x − vt
√
C(x, t) =
erfc
2 2 Dt
x + vt
vx/D
√
+ erfc
e
2 Dt
analytische Lösung nur für D = 0
Test 2
C(x, t2 ) = C(x − v(t2 − t1 ), t1 )
(Translation des Anfangszustands mit der
Geschwindigkeit v)
Für v = 0 und D > 0 muß sich der
Peak symmetrisch ausrunden und ausbreiten. (Im Anfangszustand mehr zur Mitte
hin anordnen!)
K.3
Numerische Lösungsschemata
K.3.1
Zentrale Differenzen
Das Lösungsgebiet wird in Ortsrichtung durch n Gitterpunkte i in gleichem Abstand ∆x diskretisiert.
In Zeitrichtung werden ab dem Anfangszustand in (gleichen) Zeitschritten ∆t neue Zustände berechnet,
die wieder als Ausgangswerte für den nächsten Zeitschritt dienen. Das Verfahren ist eng verwandt mit
dem Preissmann-Schema J.3.1.
t 6
(1)
y
y
y
unbekannte Zeitstufe
6
6
(1 − Θ1 )∆t
?
6
∆t
Approximationspunkt
Θ1 ∆t
(0)
i
i
i−1
i
-
∆x
i?
x
i+1
-
∆x
?
bekannte Zeitstufe
Die Zeitableitung einer Variablen W an der Stelle i wird aus der Differenz von neuem(1) und altem(0)
Wert gewonnen:
(1)
Wi ,t =
Wi ,t ≈
(0)
∂Wi
W − Wi
≈ i
, wegen besserer Stabilität evtl. auch
∂t
∆t
(0)
(1)
(0)
(0) (0)
W
2Wi − Wi−1 − Wi+1
+ Wi+1
1
(1)
Wi − i−1
=
∆t
2
2∆t
|
{z
}
Mittelwert(0)
- 149 -
(K.7)
KAPITEL K - Transportgleichung
Die Ableitungen in Ortsrichtungen gewinnt man aus den Taylorentwicklungen (vgl. Gln. (J.8) und
(J.9)) der Funktion W = W (x) an der Stelle x = a:
W (a + ∆x) = W (a) + ∆xW 0 + ∆x2 W 00 /2 + ∆x3 W 000 /6 + ∆x4 W 0000 /24 + . . .
W (a − ∆x) = W (a) − ∆xW 0 + ∆x2 W 00 /2 − ∆x3 W 000 /6 + ∆x4 W 0000 /24 − . . .
Subtraktion bzw. Addition beider Gleichungen ergeben
W (a + ∆x) − W (a − ∆x) = 2∆xW 0 + ∆x3 W 000 /3 + . . .
W (a − ∆x) + W (a + ∆x) = 2W (a) + ∆x2 W 00 + ∆x4 W 0000 /12 + . . .
und nach kurzer Umformung
W (a + ∆x) − W (a − ∆x)
∂W
= W0 =
+ O(∆x2 )
∂x
2∆x
∂2W
= W 00 =
∂x2
(K.8)
W (a − ∆x) + W (a + ∆x) − 2W (a)
+ O(∆x2 )
∆x2
(K.9)
Die Transportgleichung (K.6) wird mit Gl. (K.7) bis (K.9) im Gitterpunkt + diskretisiert als
(1)
Ci
|
(0)
+
+
C + − Ci−1
C + + Ci+1
− 2Ci+
− Ci
= −v i+1
+D i−1
,
2
∆t
2∆x
∆x
{z
}
|
{z
}
|
{z
}
≈ ∂Ci /∂t
≈ ∂ 2 Ci /∂x2
≈ ∂Ci /∂x
nach Multiplikation mit ∆t und den Abkürzungen r =
(1)
Ci
(0)
v∆t
D∆t
sowie s =
∆x2
2∆x
+
+
+
+
− 2Ci+ ) ,
+ Ci+1
) + r (Ci−1
− Ci−1
− s (Ci+1
= Ci
wobei die Cj+ mit dem noch freien Parameter Θ1 interpoliert werden:
(1)
Cj+ = Θ1 Cj
(0)
− Θ0 Cj
mit Θ0 = Θ1 − 1 .
Einsetzen und Umordnen nach unbekannter bzw. bekannter Zeitstufe ergibt das Lösungsschema:
(1)
+ Θ1 (s Ci+1 − s Ci−1 − r Ci−1 − r Ci+1 + 2r Ci )
(0)
+ Θ0 (s Ci+1 − s Ci−1 − r Ci−1 − r Ci+1 + 2r Ci )
Ci
= Ci
(1)
(1)
(1)
(1)
(1)
(0)
(0)
(0)
(0)
(0)
(1)
(1)
+ Θ1 (s − r) Ci+1
(0)
(0)
+ Θ0 (s − r) Ci+1
−Θ1 (s + r) Ci−1 + (1 + 2Θ1 r) Ci
=
−Θ0 (s + r) Ci−1 + (1 + 2Θ0 r) Ci
oder
(1)
(0)
,
schließlich in Matrizenform:
h
=
h
−Θ1 (s + r) 1 + 2Θ1 r Θ1 (s − r)
i
−Θ0 (s + r) 1 + 2Θ0 r Θ0 (s − r)
i
(1)
aj ∗ Cj
(0)
= bj ∗ Cj
|
{z
rechte Seite

(1)

(0)
Ci−1


 Ci 
Ci+1
Ci−1


 Ci 
Ci+1
(K.10)
;j = i − 1...i + 1
}
bi
Der Zeitwichtungsparameter (0.0 ≤ Θ1 ≤ 1.0 mit Θ0 = Θ1 − 1) bestimmt das weitere Vorgehen und
die Eigenschaften des entstandenen Algorithmus.
- 150 -
K.3. Numerische Lösungsschemata
Explizites Verfahren: Θ1 = 0 und Θ0 = −1
K.3.1.1
Gl. (K.10) vereinfacht sich zu:
(0)

(1)
Ci
=
h
s + r 1 − 2r r − s
i
Ci−1


 Ci 
Ci+1
(1)
An allen Innenpunkten 1 < i < n kann C (1) sofort berechnet werden. C1 am Einstromrand ist eine
bekannte, weil vorgegebene, Konzentration. Der Ausstromrand wird weiter unten behandelt.
Das Verfahren ist an die Courantbedingung für den Transport gebunden:
1.0 ≥ Cr =
v∆t
(= 2s)
∆x
Die Courantzahl Cr beschreibt das Verhältnis von dem in einem Zeitschritt zurückgelegten Transportweg infolge Advektion zum Ortsschritt. Für Cr > 1.0 ist es immer instabil, denn das hieße, daß
an einem Gitterpunkt Masse ankäme, die erst noch den vorigen passieren müßte – also außerhalb des
Schemas läge.
Stabilität ist auch nur dann gegeben, wenn das Neumannkriterium
0.5 ≥ Ne =
D∆t
(= r)
∆x2
eingehalten wird. Die Neumannzahl Ne gibt an, wie sehr infolge Dispersion/Diffusion Knicke in der
2
Konzentrationsverteilung geglättet werden. Für Ne = 0, 5 ergibt sich ∆t = ∆x
2D und bei drei neben0 und C 0 aus der Differenzengleichung
einanderliegenden Werten CL0 , CM
R
1 −C 0
CM
M
∆t
= D
0 −2C 0 +C 0
CL
M
R
,
∆x2
zusammen
1 −C 0 )·2D
(CM
M
∆x2
= D
0 −2C 0 +C 0
CL
M
R
∆x2
1 = (C 0 + C 0 )/2.
; CM
L
R
0 über.
Ein in M vorhandener Knick geht also während eines Zeitschritts in die Gerade CL0 CR
Aber bei Ne > 0, 5 würde sich das Vorzeichen einer Krümmung umkehren! Das kann nicht sein.
Eine weitere dimensionslose Zahl ist die Pecletzahl Pe = Cr/Ne = v ∆x/D. Sie kennzeichnet das
Verhältnis von advektiver und dispersiver Konzentrationsänderung.
K.3.1.2
Voll implizites Verfahren: Θ1 = 1 und Θ0 = 0
Gl. (K.10) vereinfacht sich zu:

h
−s − r 1 + 2r s − r
i
(1)
Ci−1


 Ci 
Ci+1
(0)
= Ci
Diese Gleichung ist die Zeile i eines tridiagonalen unsymmetrischen Gleichungssystems, das
mittels eines speziell zugeschnittenen Gauss’schen Algorithmus gelöst werden kann, nachdem die
Randbedingungen (s. u. K.3.3) eingearbeitet worden sind.
Das Verfahren ist für beliebige Zeitschritte stabil. Seine Dämpfung ist groß und die Ergebnisse deswegen oft nicht besonders genau.
- 151 -
KAPITEL K - Transportgleichung
K.3.1.3
Crank-Nicolson
Ein besonders genaues Verfahren ergibt sich mit der Wichtung Θ1 = 0.5,
(1)

h
−(s + r)/2 1 + r (s − r)/2
i
Θ0 = −0.5:
(0)

Ci−1
h
i Ci−1




 Ci  = (s + r)/2 1 − r (r − s)/2  Ci 
Ci+1
Ci+1
(1)
Auch hier entsteht wieder ein tridiagonales Gleichungssystem für die Unbekannten Ci . Die herausragende Genauigkeit des Schemas beruht auf der gleichgewichtigen Einbeziehung von alter und neuer
Zeitstufe.
Das Crank-Nicolson-Verfahren ist wie das voll implizite an kein Stabilitätskriterium gebunden, es
liegt in dieser Hinsicht gerade auf der Grenze.
K.3.1.4
Andere Wichtungen
Als sehr geschickt erwiesen hat sich, Gl. (K.10) vollständig zu programmieren mit erst durch die
Eingabe festgelegter Zeitwichtung Θ1 . Dadurch können für jede Rechnung Stabilitäts- und Genauigkeitseigenschaften individuell angepaßt werden, Θ1 kann beliebig zwischen 0 und 1 variiert werden.
In der Praxis liegen meist variable Geschwindigkeiten v vor (für die die Differenzengleichungen erweitert werden müssen!) und man wählt oft Θ1 = 0.55 . . . 0.6, um beide Bedürfnisse, Stabilität und
Genauigkeit, zu erfüllen.
K.3.2
Upstream-Schema für Advektion
Es liegt nahe, das Upstream-Schema, siehe Abschnitt J.2.3, für den advektiven Transport einzusetzen. Die Ortsableitung der Konzentration in i nur aus Ci und der des oberstrom nächstliegenden
Gitterpunkts Ci−1 zu bilden, trägt der Tatsache Rechnung, daß die Konzentration unterstrom den
Punkt i durch Advektion nicht erreichen kann. Anstelle von Gl. (K.7) benutzen wir also
+
Ci+ − Ci−1
∂Ci
=
+ O(∆x)
∂x
∆x
bei v > 0 (von links nach rechts).
Damit erhält man
(1)
Ci
|
(0)
+
+
C + − Ci−1
C + + Ci+1
− 2Ci+
− Ci
= −v i
+D i−1
,
2
∆t
∆x
{z
}
| ∆x
{z
}
|
{z
}
≈ ∂Ci /∂t
≈ ∂ 2 Ci /∂x2
≈ ∂Ci /∂x
und mit den Abkürzungen wie zuvor
(1)
Ci
(0)
= Ci
(1)
+ Θ1 (2s Ci
(0)
+ Θ0 (2s Ci
Ci
= Ci
+
+
+
− 2s (Ci+ − Ci−1
) + r (Ci−1
+ Ci+1
− 2Ci+ )
(1)
− 2s Ci−1 − r Ci−1 − r Ci+1 + 2r Ci )
(1)
(1)
(1)
(1)
(0)
− 2s Ci−1 − r Ci−1 − r Ci+1 + 2r Ci )
(0)
(0)
(0)
(0)
(1)
(1)
− Θ1 r Ci+1
(0)
(0)
(0)
−Θ1 (2s + r) Ci−1 + (1 + 2Θ1 (r + s)) Ci
=
oder
(1)
−Θ0 (2s + r) Ci−1 + (1 + 2Θ0 (r + s)) Ci − Θ0 r Ci+1
- 152 -
.
bzw.
K.3. Numerische Lösungsschemata
Die Gl. (K.10) entsprechende Matrizenform ist endlich:
h
h
=
−Θ1 (2s + r) 1 + 2Θ1 (r + s) −Θ1 r
i
−Θ0 (2s + r) 1 + 2Θ0 (r + s) −Θ0 r
i

(1)

(0)
Ci−1


 Ci 
Ci+1
Ci−1


 Ci 
Ci+1
(K.11)
die wie oben mit allen Abarten der Zeitwichtungs verwendet werden kann. Die Hoffnung, ein genaueres Verfahren zu erhalten, erfüllt sich wegen der geringen Fehlerordnung meistens nicht. In den
Advektionstermen sind jedoch die Konzentrationen Ci+1 verschwunden. Würde das auch für die Dispersionsanteile gelingen, hätte man eine für den Punkt n passende Gleichung für den Abstromrand.
K.3.3
Nichtreflektierende Randbedingung am Ausstromrand
Für den letzten Gitterpunkt n existiert kein rechter Nachbar. Die Konzentrationen Cn+1 dürfen daher
in den zugehörigen Gleichungen nicht enthalten sein. Die Konzentration C selbst oder ihren Gradienten
in n vorzugeben, führt zu starken Oszillationen der Lösung. Am wenigsten stört die Annahme, daß
hier die 2. Ableitung verschwindet.
(∂ 2 C/∂x2 )n = 0 ≈ (Cn−1 + Cn+1 − 2Cn )/∆x2
führt sofort auf die Ersetzung für den störenden Wert in i + 1
Cn+1 ≈ 2Cn − Cn−1 , damit wird Gl. (K.10) zu:
h
−2Θ1 s 1 + 2Θ1 s
i
"
Cn−1
Cn
#(1)
=
h
−2Θ0 s 1 + 2Θ0 s
i
"
Cn−1
Cn
#(0)
,
womit alle oben hergeleiteten Schemata hinsichtlich des Abstromrandes vervollständigt werden.
Der Vergleich mit Gl. (K.11) zeigt, daß bis auf den hier fehlenden Wert r = D∆t/∆x2 beide Gleichungen identisch sind. Das bedeutet: über den rechten offenen Rand wird advektiver Transport berechnet
– mit dem Upstream Schema! Diffusion oder Dispersion werden unterdrückt. Denn der Koeffizient D
fehlt in der Gleichung ebenso wie – beabsichtigt – die Näherung für eine 2. Ableitung.
K.3.4
Numerische Dispersion
Die vorgestellten Differenzenverfahren sind mehr oder weniger mit einem Fehler behaftet, der als
numerische Dispersion bezeichnet wird. Er fällt bei der Transportgleichung besonders auf. Hier wird
er anhand des expliziten Upstream Schemas illustriert. Dieses berechnet den neuen Wert für den
Gitterpunkt i zu
(1)
Ci
(0)
(0)
= Cr Ci−1 + (1 − Cr) Ci
bei D = 0 .
- 153 -
KAPITEL K - Transportgleichung
Wie leicht zu sehen ist, ist die numerische Lösung sowohl für Cr = 0 als auch für Cr = 1 exakt.
Praktisch kommen diese speziellen Werte wegen der unterschiedlichen Fließgeschwindigkeiten in der
Natur nur äußerst selten vor.
∆x
Gegeben sei ein Peak mit einer Breite von 4 Ortschritten, der mit einer Geschwindigkeit v = 2∆t
nach
rechts ohne Dispersion oder Diffusion transportiert werden soll, d.h. die Courantzahl ist 0,5. Die
numerische Lösung zeigt das folgende Verhalten:
Vom Ausgangszustand a) werden im ersten
Zeitschritt die Werte in den vorangehenden Abschnittsmitten zu den Gitterpunkten (Knoten) transportiert. Das Ergebnis
1) entspricht der exakten Lösung soweit es
die Knotenwerte betrifft.
Zwischen den Knoten liegt dem Verfahren aber nur ein linearer Ansatz zugrunde.
Deshalb sind die Spitze verschwunden und
die Knicke nicht mehr korrekt dargestellt.
Die Knotenwerte 2) werden aber aus der zwischen den Knoten interpolierten Konzentration berechnet. In den weiteren
Zeitschritten vergrößert sich der Fehler immer mehr. Nach
dem 6. Schritt ist gerade noch die Hälfte der maximalen
Anfangskonzentration vorhanden!
Das, obwohl das Schema von Zeitschritt zu Zeitschritt vollkommen korrekte Knotenwerte ergibt.
K.3.4.1
Ursachen und Abhilfe
Der Grund für diese sehr störende zusätzliche Dispersion ist, daß die gesamte Information über die
Konzentrationsverteilung nur aus den n Knotenwerten besteht. Solche, die von einer linearen Verteilung abweichen, werden nach einem Transportweg v∆t 6= ∆x nicht durch einen Knotenwert dargestellt,
sie fallen durch die Maschen des Rechengitters“.
”
Die numerische Dispersion kann durch verschiedene geeignete numerische Filter teilweise beseitigt
werden. Ein solcher wird hier kurz skizziert:
Als zusätzliche Information können die Tracermassen zwischen den Gitterpunkten dienen, im Anfangszustand aus linearer Verteilung. In den einzelnen Zeitschritten werden zunächst die Knotenwerte
berechnet. In einem Nachlauf ermittelt man dann die Massenflüsse über die Gitterelementgrenzen und
damit die neuen Massen am Ende des Zeitschritts.
Weiter bestimmt man die quadratische Verteilung, die sowohl die beiden Knotenwerte als auch die
Masse im Element richtig wieder gibt. Im jeweils nächsten Zeitschritt wird dann diese zur Ermittlung
der neuen Knotenwerte benutzt.
Diese Methode ist ausbaufähig: Für einen kubischen Hilfsansatz wäre analog noch die Schwerpunktslage der Massen in den Elementen mitzuverfolgen.
- 154 -
Kapitel L
Diskrete Simulation:
Zellulare Automaten
- 155 -
KAPITEL L - Zellulare Automaten
L.1
Was sind zellulare Automaten?
Unter einem zellularen Automaten versteht man einen n-dimensionalen Raum, der in reguläre Zellen
unterteilt ist. Jede Zelle wird durch einen oder mehrere Zustände charakterisiert. Die Zustände ändern
sich synchron mit mit denen der anderen Zellen, basierend auf den Zuständen der benachbarten Zellen.
Sie sind als schnelle Simulationsmethode beliebt u.a. in
• Chemie
• Biologie
• Physik
• Ökologie
• Sozialwissenschaften
• Verkehrssimulation
Nachteil: Es gibt keine Maßstabsgesetze!
; Die simulierten Prozesse werden nur qualitativ
– nie quantitativ! – beschrieben.
L.1.1
Geschichte
1950
1968
ab 1980
John von Neumann (auf Vorschlag von Stanislaw Ulam) konstruiert einen sich
selbst reproduzierenden Automaten auf einem einfachen Gitter.
Ganz ohne Computer: John H. Conway entwickelt das Game of Life; wird hier
noch näher behandelt.
Theoretische Grundlagen der ZA u.a. von S. Wolfram, S. Fredkin und N.
Packard. Zusammenhänge mit Chaostheorie und nichtlinearer Dynamik.
- 156 -
L.2. Allgemeines
L.2
L.2.1
Allgemeines
Formale Definition
Reguläres Gitter∗ : L
Die Elemente von L werden Zellen genannt.
Nachbarschaftsrelationen: N ⊆ Ln
Menge der Nachbarschaften†
Endliche Zustandsmenge: Z
Jede Zelle besitzt genau einen Zustand z aus Z
Zustandsänderung‡ : F : Z n → z
Der Zustand jeder Zelle entwickelt sich nach der gleichen
Regel F aufgrund der Zustände der Nachbarzellen
Zellularer Automat: (L, N , Z, F)
L.2.2
Gittergeometrien
Räumliche Diskretisierung durch Unterteilung des
Raumes in gleichartige Teilbereiche ( Zellen“). Es
”
kommen nur reguläre Unterteilungen (richtungsunabhängig) in Frage.
∗
im Prinzip von unendlicher Ausdehnung
Definition nach v. Neumann oder Moore
‡
Regeln
†
- 157 -
KAPITEL L - Zellulare Automaten
L.2.3
Nachbarschaftsbeziehungen
Jede Zelle eines ZA besitzt eine endliche Anzahl von Nachbarn.
Definitionen im Zweidimensionalen:
• von Neumann: Nachbarn haben gemeinsame Kanten
• Moore: Nachbarn haben gemeinsame Kanten oder Ecken
Allgemeinere Nachbarschaften durch Angabe von Abständen r
a) 1-dimensional
b) Quadratgitter
L.2.4
L.2.4.1
c) 2-dim. r = 1
Zustände
Zustandsmenge
Jede Zelle eines ZA kann nur endlich viele Zustände annehmen. Diese werden durch Elemente eines
Alphabets repräsentiert.
Zustandsmenge: Z = { z; z ∈ A}
eine Konfiguration C : L → Z ordnet jeder Zelle einen bestimmten Zustand zu. Zu Beginn einer
Simulation wird eine Anfangs- oder Startkonfiguration definiert.
L.2.4.2
Zustandsübergangsfunktion (Regeln)
Die Zustandsänderung jeder Zelle eines ZA hängt nur vom Zustand der Zelle selbst und denen ihrer
Nachbarn ab. Die Regeln können als Funktionstabelle, Formel oder verbal definiert sein. Die allgemein
deterministischen Regeln können durch stochastische ergänzt werden.
L.2.5
Ränder
Die unendlich fortgesetzten Gitter der formalen Definition lassen sich nicht auf Computern umsetzen. Daher werden die Gitter abgeschnitten und es müssen für die Ränder möglichst wenig störende
Randbedingungen vorgegeben werden.
- 158 -
L.3. Das Lebensspiel
a) Je nach Lage zum Rand haben die Zellen unterschiedliche Anzahlen von Nachbarn (eine andere lokale Umgebung).
L.3
L.3.1
Das Lebensspiel
Definitionen
Gitter:
2-dimensional, m × n Quadrate
Ränder:
periodisch
Zustände:
lebend oder tot
Nachbarn:
nach Moore, r = 1
Regeln:
Lebensraum
L.3.2
b) Beseitigung der Ränder durch Vorgabe
von vernünftigen Randbedingungen.
Beobachtungen
• Transiente und stabile Konfigurationen
- 159 -
1.
;
Drei lebende Nachbarn
Zelle wird geboren
bzw. bleibt am Leben.
2.
;
Zelle lebt, zwei lebende Nachbarn
Zelle bleibt am Leben.
3.
;
sonst
Zelle stirbt
(Vereinsamumg / Überbevölkerung)
KAPITEL L - Zellulare Automaten
(Die Anzahl der lebenden Nachbarn in den
Zellen eingetragen)
• Es kommt zu beweglichen Mustern
• Bewegliche Muster führen zu Änderungen und Zerfall stabiler und transienter Muster.
L.4
Stausimulation
Dieser Abschnitt wird in Vorlesung und Übung näher erläutert.
- 160 -
Kapitel M
Handwerkszeug III:
Hilfsmittel für Finite Elemente
Dieses Kapitel wird in der aktuellen Lehrveranstaltung nicht behandelt.
- 161 -
KAPITEL M - FEM - Hilfsmittel
M.1
Natürliche Koordinaten für Dreiecke
C
T
T
T
T
T
M.1.1
Die natürlichen Koordinaten geben das
Flächenverhältnis der Teildreiecksflächen zur
Gesamtfläche an und beschreiben damit die
Lage des gemeinsamen Punkts P = P (x, y):
T
ΘB
ΘA T
P
Q
T
Q
Q
ΘC Q T
`
`
T
```
``` QQT
A
```Q
T
`
Q
B
z
6
Definition
Θi = Ai /A∆
- x
Die Flächen berechnen sich am einfachsten aus dem Kreuzprodukt
~ × AC|
~
2A∆ = 2Ae(ABC) = A(ABDC) = |AB
(Doppelte Gesamtfläche)
= (xB − xA )(zC − zA ) − (zB − zA )(xC − xA )
(M.1)
Teilfläche AA (die dem Knoten A gegenüberliegende Teilfläche P BC) für beliebige Koordinaten x, y
mit gleicher Formel wie Gl. (M.1) jedoch anstelle (xA , zA ) → (x, z):
2AA = 2A(P BC) = (xB − x)(zC − z) − (zB − z)(xC − x)
Allgemein, mit i = A, B, C, zyklisch:
2Ai = (xi+1 − x)(zi+2 − z) − (zi+1 − z)(xi+2 − x)
(M.2)
Definition der Flächenkoordinaten Θi :
Θi =
Ai
A∆
(M.3)
Eigenschaften:
→
ΘA + ΘB + ΘC = 1 = const.
→
1 × differenzierbar
→
Θi = 1 für P = i
→
Θi = 0 auf Kante i + 1 → i + 2
→
alle Θi sind linear auf den Kanten
→
e
(M.4)
Θi = fΘi bei benachbarten Elementen e, f auf gemeinsamer Kante
Die Lagrangeschen Interpolationsbedingungen werden also durch einen Ansatz direkt in Flächenkoordinaten erfüllt.
- 162 -
M.1. GAUSS-GREENSCHER INTEGRALSATZ
M.1.2
"
Ableitung der Flächenkoordinaten
∂Θi
∂x
=
zi+1 − zi+2
2A∆
∂Θi
∂z
=
xi+2 − xi+1
2A∆
"
zA − zB
xB − xA
#
=
1
2A∆
|
1
[H ] ( Gradientenmatrix“)
”
2A∆
}
ΘA /∂x ΘB /∂x ΘC /∂x
ΘA /∂z ΘB /∂z ΘC /∂z
#
vgl. (M.2)
zB − zC zC − zA
xC − xB xA − xC
{z
=
(M.5)
wobei die doppelte Dreiecksfläche in H zu finden ist: 2A∆ = h11 h22 − h12 h21 .
Weitere Formeln (die i.a. nützlich sind, hier aber nicht benötigt werden) siehe Teil M.5
M.2
Partielle Integration, Gauß-Greenscher Satz
Sind auf einem Gebiet A mit dem Rand S die mindestens einmal stetig differenzierbaren Funktionen
u(x, z), w(x, z) ū(x, z) und w̄(x, z) gegeben, lautet die Regel für die Differentiation eines Produkts
⇔
d(uw) = udw + wdu
wdu = d(uw) − udw .
Die Integration über A ergibt:
ZZ I =
w
∂u
∂ ū
+ w̄
∂x
∂z
dzdx
(M.6)
A
Z
z2
=
z1
|
[uw]xx21
dz −
{z
}
I1
ZZ
A
∂w
u
dx dz +
∂x
Z
xB
xA
|
[ūw̄]zzB
A
{z
I2
dx −
}
ZZ
ū
∂ w̄
dz dx
∂z
A
Die Integrale I1 und I2 sind in Ringintegrale über den Rand S des Gebiets A überführbar:
- 163 -
KAPITEL M - FEM - Hilfsmittel
z2
Z
u(x2 ) w(x2 ) dz
I1 =
z1
|
{z
rechter Rand
von unten nach oben
Z z1
}
u(x1 ) w(x1 ) dz
+
z2
|
{z
linker Rand
von oben nach unten
}
I
=
uw dz
S
xB
Z
I2 =
ū(zB ) w̄(zB ) dx
xA
{z
|
}
oberer Rand
von links nach rechts
xA
Z
+
ū(zA ) w̄(zA ) dx
xB
|
−
=
{z
unterer Rand
von rechts nach links
}
I
ūw̄ dx
S
Mit dem nach außen weisenden Einheitsnormalenvektor n= [nx , nz ] wird das Randdifferential ausgedrückt zu:
ds = −
dx
dz
=+
nz
nx
(M.7)
somit
I
I
ūw̄ nz ds
uw nx ds und I2 =
I1 =
S
S
Einsetzen in (M.6) ergibt zusammenfassend
ZZ ∂u
∂ ū
w
+ w̄
∂x
∂z
I
(uw nx + ūw̄ nz ) ds −
dA =
S
A
ZZ ∂w
∂ w̄
u
+ ū
∂x
∂z
dA
(M.8)
A
Anmerkungen: Die Ringintegrale können elementweise gebildet und aufsummiert werden, da an benachbarten Elementen wegen der Gegenläufigkeit sich die gleichen Werte mit anderem Vorzeichen
ergeben.
Eine häufige Anwendung auf ein Vektorfeld v= [vx (x, z) vz (x, z)] und eine skalare Funktion
w = w̄ = w(x, z) ist beispielsweise
ZZ
w
A
∂vx
∂vz
+
∂x
∂z
I
dA =
w (vx nx + vz nz ) ds −
S
ZZ vx
A
- 164 -
∂w
∂w
+ vz
∂x
∂z
dA
(M.9)
M.3. Numerische Integration
M.3
Numerische Integration
In vielen Fällen läßt sich das Integral
Z
1
P (x) dx
(P (x): beliebige Funktion von x)
−1
nicht geschlossen berechnen.
Es kann ersetzt werden durch
Z
1
P (x) dx ≈
−1
n
X
Fi P (xi ).
i=1
Nach Gauss können nun die Wichtungsfaktoren Fi und Stützstellen xi so gewählt werden, daß ein
Polynom der Ordnung 2n − 1 exakt integriert werden kann. Das ist erheblich genauer als nach der
Trapezregel (eine andere Form der num. Integration) — erfordert andererseits aber auch mehr Aufwand, wie wir gleich sehen.
Beispielsweise integriert
n = 1; x1 = 0.000; F1 = 2.000 alle linearen Polynome P (x) = ax + b exakt.
M.3.1
Algebraische Darstellung für n = 2, 3
Bei der Programmierung ist es wünschenswert, Stützstellen und Gewichte nicht nur zahlenmäßig
sondern als algebraische Ausdrücke zu kennen.
n = 2 : exakt integrierbar: x3 , x2 , x, 1; Vorfaktoren spielen keine Rolle.
P
R
1
x
x2
x3
x
x2 /2
x3 /3
x4 /4
P dx
R1
−1 P
dx
num. Integration
2 = F1 + F2
0 = F1 x1 + F2 x2
2
2
2
3 = F1 x1 + F2 x2
3
0 = F1 x1 + F2 x32
a)
*)
b)
*)
*) erfüllt, wenn F1 = F2 und x1 = −x2 ,
;
a)
F1 = F2 = 1.000
p
und b) x1,2 = ∓ 1/3 = ∓0.57735
Bei höherem n sind generell die Stützstellen xi und Wichtungen Fi symmetrisch.
- 165 -
KAPITEL M - FEM - Hilfsmittel
Gauß-Integration mit 3 Stützstellen: n = 3
P
R
1
x
x2
x3
x4
x5
x
x2 /2
x3 /3
x4 /4
x5 /5
x6 /6
P dx
R1
−1 P
dx
num. Integration
2 = F1 + F2 + F3
0 = F1 x1 + F2 x2 + F3 x3
2
2
2
2
3 = F1 x1 + F2 x2 + F3 x3
3
3
0 = F1 x1 + F2 x2 + F3 x33
2
4
4
4
5 = F1 x1 + F2 x2 + F3 x3
0 = F1 x51 + F2 x52 + F3 x53
a)
*)
b)
*)
c)
*)
*) erfüllt bei Symmetrie von Stützstellen und Fi , (x2 = 0.0)
b) 2/3 = 2F1 x21
c) 2/5 = 2F1 x41
;
)
; 5x41 = 3x21 und F1 =
x2 = 0.00000
p
x1,3 = ∓ 3/5 = ∓0.77497
1
3x21
mit
F2 = 8/9 = 0.88888
F1 = F3 = 5/9 = 0.55555
Stützstellen xi und Gewichte Fi (numerisch) für größere n siehe M.5
M.4
Allgemeines bilineares Viereckselement
M.4.1
Einheitsviereck
⇔
Das Originalelement
M.4.2
wird abgebildet auf
das Einheitselement
Formfunktionen im Einheitsviereck
Die vier Formfunktionen Nj :
NA = (1 + r)(1 + s)/4 ,
NB = (1 − r)(1 + s)/4,
= (1 − r)(1 − s)/4 ,
ND = (1 + r)(1 − s)/4
NC
- 166 -
(M.10)
M.4. Allgemeines bilineares Viereckselement
erfüllen die Lagrangeschen Interpolationsbedingungen aufgrund ihrer Eigenschaften:
- in r und s 1× differenzierbar
- NA + NB + NC + ND = 1 =const.
- Ni = 1 in Ecke i
- Ni = 0 in Ecke j, j 6= i
- entlang Kante i − j linear und Nk = 0 für k 6= i, k 6= j
bilinearer Ansatz einer Zustandsgröße f :
1
f=
4

#  fA
fB
(1 + r)(1 + s) (1 − r)(1 + s) (1 − r)(1 − s) (1 + r)(1 − s) 
|
{z
} |
{z
} |
{z
} |
{z
} 
 f
 C
4NA
4NB
4NC
4ND
"
fD
M.4.3






(M.11)
Differentialbeziehungen
M.4.3.1
Jakobi-Matrix
Mit dem Ansatz (M.11) lassen sich auch die Koordinaten x, z interpolieren:

h
x z
i
=
h
NA NB NC
ND
i




xA zA
xB zB
xC zC
xD zD






und durch partielle Differentiation nach r bzw. s folgt:
"
∂x
∂r
∂x
∂s
∂z
∂r
∂z
∂s
#
1
=
4
"

#  xA
 xB
(1 + s) −(1 + s) −(1 − s) (1 − s)

(1 + r) (1 − r) −(1 − r) −(1 + r) 
 xC
xD
{z
|
Jakobi-Matrix:
J
zA
zB
zC
zD






(M.12)
}
Kettenregel:
"
∂x
∂r
∂x
∂s
∂z
∂r
∂z
∂s
#"
∂
∂x
∂
∂z
#
"
∂
∂r
∂
∂s
"
=J
∂
∂x
∂
∂z
#
"
=
∂
∂r
∂
∂s
#
(M.13)
bzw.
"
∂
∂x
∂
∂z
#
=J
−1
#
(M.14)
Da J und somit auch J −1 r und s enthalten, ist die Jakobi-Matrix nur für den speziellen Punkt
(r, s) gültig, nicht für das gesamte Viereck!
- 167 -
KAPITEL M - FEM - Hilfsmittel
M.4.3.2
Das Flächenelement dA = dx dz
Das Flächenelement dA = dx dz
Im r-s-System stehen die Linien x = const. und z = const. nicht unbedingt senkrecht aufeinander, sie
sind i.a. auch keine Geraden (sondern Hyperbeln)!
Totale Differentiale:
dx =
∂x
∂x
dr +
ds
∂r
∂s
dz =
∂z
∂z
dr +
ds
∂r
∂s
Das Flächenelement dA bezüglich der r-s Koordinatenbasis ergibt sich dann aus dem Vektorprodukt
~ × dz
~
dx
det er
∂x
∂r dr
∂z
∂r dr
es
et ∂x ∂z ∂x ∂z
∂x
et = dA et
−
0 = dr ds
∂s ds
∂r ∂s
∂s ∂r
∂z
{z
}
|
0
∂s ds
das ist
det J ! vgl.(M.13)
mit der Orthonormalbasis er , es , et
dA = det J dr ds
M.5
(M.15)
Literatur
O.C. Zienkiewicz: Methode der finiten Elemente; Hanser Verlag, München/Wien.
Ein immer wieder aufgelegter Klassiker! Es ist nahezu alles zu finden, was mit der Methode in Verbindung steht. Für Einsteiger und Experten – leicht verständlich.
- 168 -
Kapitel N
Stationäre Grundwasserströmung
Dieses Kapitel wird in der aktuellen Lehrveranstaltung nicht behandelt.
- 169 -
KAPITEL N - Stationäre Grundwasserströmung
N.1
Theorie der Grundwasserströmung
Es wird hier nur der stationäre Fall in einem ebenen Vertikalschnitt betrachtet. Dreidimensionale
Probleme können analog behandelt werden.
N.1.1
Grundlagen
Die Geschwindigkeitsvektoren sind tangential zu
den Stromlinien. Diese bilden mit den Äquipotentiallinien bei isotroper Durchlässigkeit ein
orthogonales Netz. Undurchlässige Berandungen sind immer auch Stromlinien; durchlässige
Ränder an freiem Wasser sind Äquipotentiallinien.
Definition der Standrohrspiegelhöhe:
z
h=z+
6
p
ρg
(N.1)
Druck:
-x
p = ρg(h − z)
(N.2)
Vertikalschnitt durch Grundwasserproblem
Das Darcy-sche Gesetz enthält keine Trägheitsterme:
v = −K grad h
"
⇔
vx
vz
#
"
= −
kxx kxz
kzx kzz
# "
∂h
∂x
∂h
∂z
#
(N.3)
Kontinuitätsgleichung für inkompressible, quell- und senkenfreie Strömung:
div v =
N.1.1.1
∂vx ∂vz
+
=0
∂x
∂z
(N.4)
Durchlässigkeit bei isotropem Boden
kxz = kzx = 0;
Werte für k:
kxx = kzz = k
Feinsand:
Flußsand 1-3 mm:
Flußsand 1-8 mm:
feiner Kies 20-40 mm:
Mittelkies 40-70 mm:
Lehm:
Ton:
0.0001 bis 0.002 m/s
0.0025 m/s
0.0088 m/s
0.03 m/s
0.035 m/s
(0.1 bis 1.0) ·10−6 m/s
(0.02 bis 20) ·10−9 m/s
- 170 -
N.1. Theorie der Grundwasserströmung
N.1.1.2
Durchlässigkeitstensor im anisotropen Fall
Hauptrichtungen 1 und 2:
k11 > k22 , k12 = k21 = 0
Entkoppelte Gleichungen:
v1 = k11 ·
∂h
,
∂1
v2 = k22 ·
∂h
;
∂2
Durchfluß in anisotropem Boden
"
vx
vz
#
"
=
"
=
cos α − sin α
sin α cos α
# "
cos α − sin α
sin α cos α
# "
|
·
·
K
v1
v2
#
"
=
k11 0
0 k22
cos α − sin α
sin α cos α
# "
·
# "
·
cos α sin α
− sin α cos α
{z
k11 0
0 k22
# "
·
∂h
∂x
∂h
∂z
# "
·
∂h
∂1
∂h
∂2
#
#
(N.5)
}
in x, z Koordinaten
K ist ein symmetrischer Tensor.
N.1.2
DGl für Standrohrspiegelhöhen h
Gl. (N.3) in (N.4) eingesetzt ergibt:
∂h
∂h
∂
∂h
∂h
∂
Kxx
+ Kxz
+
Kzx
+ Kzz
=0
∂x
∂x
∂z
∂z
∂x
∂z
(N.6)
für isotropes (Kxz = Kzx = 0, Kxx = Kzz = K) und homogenes (K(x, z) = k = const.) Material
vereinfacht sich Gl. (N.6) zu
∂2h ∂2h
+ 2 =0
∂x2
∂z
(Laplace-Gleichung)
- 171 -
KAPITEL N - Stationäre Grundwasserströmung
N.2
Finite Element Methode
Aufteilung des Lösungsgebiets in Elemente e = 1(1)M
Einfache Ansätze innerhalb der einzelnen Elemente
Ansätze haben Stützstellen in den Knoten i = 1(1)N
Gesucht: h = {h1 , h2 , . . . , hN }; hi = h(xi , zi )
N.2.1
Einfaches lineares Dreieckselement
Koordinaten und Bezeichnungen zu Finitem Dreieckselement
Interpolation (linear) über ein Element: (Näherungsansatz)
;
h(x, z) = a0 + a1 x + a2 z

 


∂h
∂h
= a1 und
= a2
∂x
∂z

a0
1 xA zA
hA


 


·
=
1
x
z
h

 B 
B
B   a1 
a2
1 xC zC
hC
e
e
h =
; ea =
B
·
(N.7)
e
a
B −1 · eh
e
(N.8)
e
h(x, z) = [ 1 x z ] ea
= [ 1 x z ] eB −1 eh
(N.9)
wobei eh ein Teilbereich aus h = {h1 , . . . , hN } ist.
Die Näherungsansätze eh aller Elemente (N.7, N.9) sind
• elementweise linear,
• stetig an den Elementkanten (d.h. beim Übergang auf ein benachbartes Element sind keine
Sprünge vorhanden),
• einmal (stückweise) differenzierbar.
; grad h ist:
• elementweise konstant (dann auch vx , vz !),
• unstetig an den Elementkanten,
• nicht differenzierbar.
- 172 -
N.2. Finite Element Methode
"
∂h/∂x =
∂h/∂z =
e
0 1 0
0 0 1
|
#
B −1 · eh = grad h
e
{z
}
G= Gradientenmatrix (2 × 3)
e"
e
v=
vx
vz
#
= − eK eG eh
(N.10)
Innerhalb des Elements ist nun erfüllt:
• Darcy-sches Gesetz
• Kontinuitätsbedingung (sowohl
∂ evx
∂x
= 0 als auch
∂ evz
∂z
= 0 !)
Berechnung der Gradientenmatrix eG und der doppelten Dreiecksfläche 2A∆
2ABC = 2(ADEC + CEF B − ADF B)
2A∆ =
(zA + zC )(xC − xA )
=
+ (zC + zB )(xB − xC )
− (zA + zB )(xB − xA )
xB zC − xC zB + xC zA − xA zC + xA zB − xB zA
=
|
{z
DBC
}
|
{z
DCA
}
|
{z
DAB
det eB !
=
2A∆ = (zC − zA )(xB − xA ) − (xC − xA )(zB − zA )
(N.11)
~ × AC;
~ man benutze für 2A∆ stets diese Formel, weil damit das Problem
(auch aus Vektorprodukt AB
kleine Differenzen großer Zahlen“ entschärft wird!)
”
Inverse von eB:

 



1
0
0

 



(Einsetzen der Vektoren  0  ,  1  und  0  als Rechte Seite)
0
0
1

B −1
e
DBC
DCA
1 
=
 zB − zC z C − zA
2A∆
| {z }
xC − xB xA − xC
e
det B

DAB

zA − zB 
xB − xA
- 173 -
}
KAPITEL N - Stationäre Grundwasserströmung
Gradientenmatrix in expliziter Form:
"
e
G=
N.2.2
0 1 0
0 0 1
#
e
B
−1
1
=
2A∆
"
zB − zC zC − zA
xC − xB xA − xC
z A − zB
xB − xA
#
(N.12)
Kontinuitätsbedingung im Finite-Element-Netz
Kontinuitätsbedingung
an den Innenknoten
Der Durchfluß, der in einen Knoten i hineingeht, muß sich in den
anhängenden Elementen wiederfinden!
Ei =
X
e
Qi
(Einspeisung)
e
e
Z
Qi =
e
vn ds
−−−
Innenknoten (ohne Quelle/Senke) und Knoten an undurchlässigem Rand: Ei = 0
Kontinuitätsbedingung am freien Wasser
eQ (wie oben)
Ei =
i
Senke:
Ei < 0
(Brunnen)
Quelle:
Ei > 0
(Schluckbrunnen)
P
Alle Durchflüsse durch die Kanten werden ohne
Lücken oder Überlappungen dann erfaßt, wenn
die Schnitte um die Knoten durch die Seitenmitten der Elemente gehen.
Berechnung von Qi (Strahlensatz)
e


eQ
A
eQ
B
eQ
C

e

#
e"
zC − zB xB − xC
1 
vx


=
 zA − zC xC − xA ·
2
vz
zB − zA xA − xB
- 174 -
(N.13)
N.2. Finite Element Methode
Der Vergleich mit Gl. (N.12) zeigt:
e

QA


e
Q =  QB  = −A∆ eGT ev
QC
und nach Einsetzen von Gl. (N.10) erhält man die Elementgleichung
eQ
= A∆ eGT eK eG eh
|
{z
D
e
(N.14)
}
mit der symmetrischen Durchflußmatrix eD des Elements e.
zu Gl. (N.13): Die Kontinuitätsgleichung ist elementweise erfüllt: eQA + eQB + eQC = 0; da
{(zC − zB ) + (zA − zC ) + (zB − zA )} evx = 0
und
{(xB − xC ) + (xC − xA ) + (xA − xB )} evz = 0
Gesamtsystem: Lineares Gleichungssystem für h
D·h=E
Die globale (n × n) Koeffizientenmatrix D wird gebildet durch Einspeichern der Elemente aller eD,
nach Knoten sortiert. Sie ist 1-fach singulär, daher ist mindestens eine h-Randbedingung vorzugeben.
Einspeisungen können vorgeschrieben werden an allen Knoten, die keine h-Randbedingungen erhalten.
Sie werden in die Rechte Seite des Gleichungssystems eingespeichert.
Randbedingungen:
Innenknoten:
Ei oder hi vorgegeben.
in der Regel Ei = 0 (Kontinuität!)
Nach Auflösen des Systems nach h werden die Geschwindigkeiten ev elementweise nach Gl. (N.10)
ermittelt. Durch Ausmultiplizieren des Gleichungssystems erhält man auch die noch unbekannten
Zuflüsse Ei an Knoten mit vorgegebener Standrohrspiegelhöhe.
Die Gleichungssysteme können bei der Berechnung naturnaher Systeme sehr groß werden, wobei sie
aber dünn besetzt sind. Angezeigt ist daher die Verwendung eines schnellen iterativen Lösers, mindestens jedoch des Skylineverfahrens bei mittelgroßen Systemen.
- 175 -
KAPITEL N - Stationäre Grundwasserströmung
N.3
Verallgemeinerung des FE-Verfahrens
Nachfolgend wird die Elementmatrix für ein lineares Grundwasserelement auf einem anderen Wege
hergeleitet. Es ergeben sich exakt die gleichen Ausdrücke. Der Vorteil der neuen Methode ist, daß sich
mit ihr auch ganz andere Elementtypen leicht erzeugen lassen.
Differentialgleichungen, wir benutzen jetzt → Tensorschreibweise
"
v = −K
∂
∂x
∂
∂z
#
h
(Darcy)
vα = −Kαβ h,β
→
α = x, z;
mit
(N.15)
β = x, z
Bei Produkten mit gleichen Indizes
wird summiert, ausgeschrieben also:
vx = −(Kxx h,x +Kxz h,z ),
vz = −(Kzx h,x +Kzz h,z )
div v
=0
(Kontigleichung)
vα ,γ δαγ
→
= 0
α = x, z;
mit
(N.16)
γ = x, z
Definition:
(
δαγ
d.h.
=
1 für α = γ
0 für α 6= γ
v,xx ·1 + v,xz ·0 +
v,zx ·0 + v,zz ·1 = 0
−(Kαβ h,β ),γ δαγ = 0
(N.17)
Dies ist die Dgl. des Problems (N.6) in der neuen Schreibweise.
N.3.1
Linearer Ansatz in Flächenkoordinaten:
für Element ABC, vgl. Gl. (M.2).
e
h̃ = eΘi ehi ;
i = A, B, C
(N.18)
Die Näherung eh̃ gibt die Knotenwerte ehi exakt wieder, jedoch wird die Dgl. (N.17) i.a. nicht erfüllt.
−( eKαβ eh̃,β ),γ δαγ = eε 6= 0
(N.19)
- 176 -
N.3. Verallgemeinerung des FE-Verfahrens
N.3.2
Residuenminimierung
Wenn die DGl bestmöglich erfüllt werden soll, muß der Approximationsfehler ε insgesamt minimiert
werden. Dieses Residuum ist die Summe aller Elementfehler eε. Also genügt es, seine Anteile in den
einzelnen Elementen e (hier: Dreiecke) zu minimieren. Übliche Verfahren sind:
• Kollokation (punkt- oder gebietsweise)
• Fehlerquadratmethode
• Galerkinsches Verfahren (wird im Folgenden benutzt)
N.3.2.1
Kollokation
Punktweise Kollokation
Die Forderung eεj = 0 an drei Punkten j innerhalb des Elements liefert mit Gl. (N.18) und (N.19)
drei Bestimmungsgleichungen für die drei Unbekannten hj .
Teilgebietskollokation
ZZ
!
e
εj dA = 0
Aj
für drei Gebiete Aj des Elements verschwindet das mittlere Residuum.
N.3.2.2
Fehlerquadratmethode
ZZ
e 2
!
ε dA = Min
A∆
führt zu den drei Gleichungen
∂
eε2 dA
RR
A∆
∂hA
∂
⇔
∂
=
eε2 dA
RR
A∆
∂hB
∂
=
eε2 dA
RR
A∆
∂hC
eε2 dA
RR
A∆
∂hi
!
=0
- 177 -
!
=0
KAPITEL N - Stationäre Grundwasserströmung
N.3.2.3
Galerkin-Verfahren
ZZ
!
e
Wj eε dA = 0;
j = A, B, C
A∆
Hier soll der mit den Gewichten eWj gemittelte Fehler Fehler eε verschwinden. Das Standard-Verfahren
nach Galerkin benutzt als Wichtungen die Ansatzfunktionen eWj = eΘj .
N.3.3
Durchführung des Verfahrens von Galerkin
ZZ
e
0=
ZZ
e
A∆
Wj
e
Kαβ eh̃,β ,γ δαγ dA
e
Kα,β eh̃,β ,α dA = 0
|
A∆
1 für α = γ
folgt
0 für α =
6 γ
wegen δαγ =
e
Wj
A∆
(
ZZ
e
Wj ε dA =
{z
−
eṽ
(N.20)
}
α
Partielle Integration in α-Richtung mit dem Integralsatz (M.9) von Gauss und Greene
−
I
e
Wj e(ṽα nα ) ds =
S
|
{z
eJ
1j
}
ZZ
e
Wj ,α eKαβ eh̃,β dA
(N.21)
A∆
|
{z
eJ
}
2j
wandelt die zweiten Ableitungen des Ansatzes eh̃,βα in erste der Wichtungsfunktionen um. DGln 2.
Ordnung können so auch mit linearen Ansätzen approximiert werden! — eine für Finite
Elemente typische Vorgehensweise.
N.3.3.1
Bedeutung des Ringintegrals eJ1j
(ohne Elementindex e , beachte (M.7))
ṽα nα ds = ṽx nx ds + ṽz nz ds
= vx dz − vz dx
= |~vn |
Das ist die Filtergeschwindigkeit über den
Rand nach außen.
- 178 -
N.3. Verallgemeinerung des FE-Verfahrens
Die drei Integrale J1j summiert stellen den gesamten Zufluß in das Element dar (
P
Θj = 1).
Mit der Definition Qj = J1j wird der über die an den Knoten j anliegenden Kanten gehende Fluß
durch konzentrierte Zuflüsse in die Knoten j ersetzt. Dabei wird der Gesamtfluß entsprechend den
Wichtungen Θj auf die Knoten aufgeteilt – hier jeweils die Hälfte von den zwei anliegenden Kanten.
; Qj = J1j = J2j
ZZ
e
Qj = J2j =
e
Wj ,α eKαβ eh̃,β dA
(N.22)
A∆
|
{z
Durchflußmatrix
e
}
D
Hier heben sich Flüsse über die gemeinsame Kante
eQ
jj
|
f
÷ j + 1 und Qj j + 1 ÷ j
{z
Kante
}
|
{z
Kante
}
gegenseitig auf.
Am Gebietsrand gilt:
e
Q(j)j+2÷j +fQ(j)j÷j+1 = Ej
(j +2÷j und j ÷j +1 sind aufeinander
folgende Kanten des Randes)
N.3.3.2
Elementmatrix detailliert
Mit Wj = Θj und Ansatz (N.19) ergibt sich (Elementindex e weggelassen):
ZZ
Qj
Θj ,α Kαβ (Θi
=
| {z }
A∆
h
i
|{z}
),β dA
konstant
konstant
ZZ
=
dA Kαβ hi
Θj ,α Θi ,β
{z
|
}
A∆ konstant, s. (M.5)
ZZ
= Θj ,α Θi ,β
dA Kαβ hi
A∆
Qj
= A∆ Θj ,α Kαβ Θi ,β hi
|
{z
Dji
}
- 179 -
KAPITEL N - Stationäre Grundwasserströmung
in Matrizenform:
Q = A∆ GT K G h
mit


QA


Q =  QB  ,
QC
"
K=
Kxx Kxz
Kzx Kzz


#
,
hA


h =  hB 
hC
und
1
G=
2A∆
"
z B − z C zC − z A
xC − xB xA − xC
z A − zB
xB − xC
#
Hier liefert das Galerkin-Verfahren dieselben Matrizen wie der im Abschnitt N.2.1 beschriebene
Weg! Begründung:
a.) Ansatz in Flächenkoordinaten ist äquivalent zu linearem Ansatz in x und z.
b.) Unterschiede in der Zuordnung Qj = f (vn ) machen sich nicht bemerkbar, weil im Element v =
const. ist. ; vn = const. an den Kanten.
N.4
Ein einfaches Viereckselement
Aus 4 Teildreiecken läßt sich leicht ein allgemeines Viereckselement konstruieren – nicht so gut ist
wegen Bevorzugung einer Diagonalen der Zusammenbau aus nur 2 Dreiecken. Im globalen System
beschrieben werden dabei nur die Eckknoten A, B, C, D. Der Mittelknoten M ist ausschließlich auf
der Elementebene vorhanden!
Die Koordinaten von M werden gemittelt zu:
1
xM = (xA + xB + xC + xD )
4
1
zM = (zA + zB + zC + zD )
4
- 180 -
N.4. Ein einfaches Viereckselement
Mit den Methoden der Abschnitte N.2.1 oder N.3.3 werden die vier Durchflußmatrizen ID, IID, IIID,
und IVD der Teildreiecke berechnet und in eine 5 × 5-Matrix des Elements wie folgt eingespeichert:

I+IV d









Id
Id
AA
I+IId
BA
IId
0
IVd
IIId
I+IId
MA
MB
IIId
CC
MC
|
I+IId
III+IVd

AM









BM
II+IIId
CD
CM
DD
III+IVd
MD
I+II+III+IVd
III+IVd
DC
II+IIId
I+IVd
AD
0
BC
II+IIId
0
DA
I+IVd
IId
BB
CB
IVd
0
AB
DM
MM
{z
}
e
D
eD
ist die Durchflußmatrix des Gesamtelements mit Mittelknoten.




e
D 



hA
hB
hC
hD
hM


 
 
 
=
 
 
 
QA
QB
QC
QD
QM








(N.23)
Da der Mittelknoten M nur elementintern definiert ist, muß QM = EM = 0 gelten!
QM = ed51 hA + ed52 hB + ed53 hC + ed54 hD + ed55 hM = 0

;
hM
1 h e
=− e
d51
d55
ed
52
ed
53
ed
54
i




hA
hB
hC
hD






(N.24)
Nach Berechnung der Eckwerte hA , hB , hC , hD am globalen System wird diese Gleichung wieder benutzt, um für die Berechnung der Geschwindigkeiten der Teildreiecke hM zu ermitteln. (Die 4 Geschwindigkeitsvektoren können anschließend zu ev M gemittelt werden.)
Setzt man Gl. (N.24) in (N.23) ein, so erhält man eine 4×4 Elementmatrix eD für das Viereck ABCD
, die den Innenknoten M nicht mehr enthält:



D=


e

ed
11
ed
12
ed
13
ed
14
ed
21
ed
22
ed
23
ed
24
31
ed
32
ed
33
ed
41
ed
42
ed
43
ed
ed
ed
34



− 1

ed
55

44
(1. bis 4. Zeile/Spalte von eD )






ed
15
ed
25
ed
35
ed
45
h




ed
51
ed
52
ed
53
ed
i
54
(Spatprodukt!)
(Anteile von hM sind nun durch hA , hB , hC und hD ersetzt; diese Vorgehensweise wird Statische
Kondensation genannt.)
- 181 -
KAPITEL N - Stationäre Grundwasserströmung
N.5
Bilineares Viereckselement
Mit einem bilinearen Ansatz und der Galerkinschen Methode (N.3.2.3) läßt sich ein allgemeines
Viereckselement leicht herleiten. Ausgehend von der Differentialgleichung (N.6):
;
−( eKαβ h,β ),γ δαγ = 0
−( eKαβ h,β ),α = 0
mit Ansatz (M.10) eh̃ = Ni ehi
−( eKαβ eh̃,β ),α = ε 6= 0
Fehlerminimierung nach Galerkin, mit den Formfunktionen Nj als Wichtung Wj :
ZZ
Nj
0=
e
Kαβ eh̃,β ,α dA
|
A2
{z
e
(die Nj sind elementunabhängig)
}
− ṽα
partielle Integration mit Gl. (M.8)
−
I
ZZ
e
e
Nj vα nα ds
S
{z
|
A2
}
e
Nj ,α eKαβ eh̃,β dA
=
vgl. (N.22)
Qj
ZZ
e
Nj ,α eKαβ (Ni ehi ),β dA ;
Qj =
(α, β sind noch x und z!)
A2
Mit Hilfe der inversen Jakobi-Matrix J −1 und ihrer Determinante (vgl. Abschnitt M.4.3.1) werden
die Ableitungen der Formfunktionen und die Integration im r-s-System durchführbar.
Z
e
Qj =
1
Z
1
Nj ,γ
−1 −1
e −1
Jαγ
| {z }
nach r und s
|
{z
e
Kαβ
e −1
Jβδ
| {z }
nach r und s
x-z Kompon.
|
}
e
{zdr ds}
|det J
N,
i δ
|{z}
{z
hi
dA
}
nach x und z abgeleitet
nach x und z abgeleitet
{z
|
e
}
e
Dji
Nach numerischer Integration, Abschnitt M.3 in beiden Richtungen erhält man die symmetrische Elementmatrix eD:
e
Dji =
n X
n
X
Fk Fl eklNj ,γ
−1 ekl
ekl −1 e
Jαγ Kαβ eklJβδ
Ni ,δ
det eklJ
k=1 l=1
Hierbei ist J an allen Gaußpunkten rl , sk zu berechnen, ebenso die Ableitungen der Formfunktionen.
Indizierung beachten: In Matrizenform ergeben sich teilweise Produkte mit Transponierten.
- 182 -
N.6. Beispiele
Erforderliche Anzahl Gauß-Punkte: n ist so groß zu wählen, daß der Integrand — r und s in J −1 auch
im Nenner! — mit für den praktischen Zweck ausreichender Genauigkeit integriert werden kann (wenn
die Elemente nicht zu schiefwinklig sind, genügt i.a. n = 3 — probieren!). Mindestens erforderlich ist
dabei, daß die Flächen der Elemente exakt integriert werden (Zienkiewicz).
Nachlauf: Berechnung der Filtergeschwindigkeiten im Schwerpunkt O (r = 0, s = 0) bei bekannten
e(h) :
i
eO
vα = − e(K)αβ
|
{z
x-z- Komponenten
}
eO −1 eO
Jβδ
N,
| {zi δ}
e
hi
nach r, s
|
{z
}
nach x, z abgeleitet
N.6
Beispiele
N.6.1
Erste Tests
Alle in diesem Kapitel entwickelten Elemente nähern die Standrohrspiegelhöhen linear an. Einfachste
Rechenbeispiele sind solche mit K = const. und grad h = const. In diesen Fällen muß die numerische
Lösung immer mit der analytischen exakt übereinstimmen — unabhängig von der Feinheit des Netzes
und dem verwendeten Element. Der Grund liegt darin, daß das Galerkin-Verfahren den Fehler
minimiert; und dieses Minimum muß immer dann Null sein, wenn der Finite-Elemente-Ansatz die
exakte Lösung des Problems darstellen kann.
N.6.2
Eckströmung
Die Äquipotentiallinien sind hier gekrümmt; die FEM-Lösungen können nur Näherungen sein. Die
Strömung wurde mit nur wenigen Elementen diskretisiert, um die Unterschiede zwischen den verschiedenen Elementtypen aufzuzeigen. Dargestellt sind Ergebnisse des Programms GruWa2.
- 183 -
KAPITEL N - Stationäre Grundwasserströmung
a) 6 Dreieckselemente
b) 3 Vierecke aus Teildreiecken
(stat. Kondensation)
c) 3 bilineare Viereckselemente
d) 12 bilineare Viereckselemente
N.6.3
Umströmung einer Spundwand
560 Knoten und 504 bilineare Viereckselemente
(Boden im rechten Teil anisotrop und weniger durchlässig)
- 184 -
Kapitel O
Interpolation von Funktionswerten
- 185 -
KAPITEL O - Interpolation
O.1
Problemstellung
Es seien gegeben n Wertepaare [xi , yi ]. Gesucht wird eine einfache, möglichst auch differenzierbare
Funktion, die die gegebenen Funktionswerte yi an den Stellen xi optimal approximiert und dazwischen
glatt verläuft.
Eine häufig benutzte Methode ist, einen Polynomansatz m-ten Grades zu wählen:
2
3
m
P = c0 + c1 x + c2 x + c3 x . . . + cm x
=
m
X
ck xk mit j < n .
(O.1)
k=0
Die Optimalität wird durch das kleinste Fehlerquadrat hergestellt.
O.2
Bestimmung der Koeffizienten ck
Setzt man die Werte xi in P ein und vergleicht das Ergebnis mit den gegebenen yi , schreibt sich die
Fehlerquadratsumme als
FQ =
n
X
(Pi − yi )2
i=1
=
n
X
m
X
i=1
k=0
!2
ck xki − yi
.
(O.2)
Ein Minimum von F Q kann nur vorliegen, wenn
∂F Q
∂cj
= 0
für alle
j = 0...m
m
P
0 = 2
= 2
;
n
X
m
X
i=1
k=0
n
X
m
X
i=1
k=0
n X
m
X
!∂
ck xki
k=0
− yi
ck xki
− yi
∂cj
!
ck xki − yi xji
ck xki xji =
i=1 k=0
n
X
xji yi
(O.3)
i=1
Gl. (O.3) liefert ein lineares Gleichungssystem zur Bestimmung der gesuchten Konstanten ck :

P
n
i
P
 P


x
 i i
 P

x2i

 i

 ···
 P m
P
i
i
|
xi
i
P
i
P
xi
i
P
x2i
i
P
x3i
i
x2i
···
x3i
···
Pi
x4i
···
i
P
···
···
···
m+1 P m+2
xi
xi
···
i
{z
ajk
P
i
xim+1
xm+2
i
···
x2m
i
P
i
xm
i
 
 
 
 
 
 
·
 
 
 
 
 

c0

 P
yi

 Pi


c1 

xy

 i i i


P

= 
x2i yi
c2 



i



···

··· 
 P m

cm
} | {z }
ck
- 186 -
i
|
xi yi
{z
rj












}
(O.4)
O.3. Skalierung
Die Koeffizientenmatrix A und der Vektor r hder rechten Seite erhält
i man programmtechnisch am
2
m
einfachsten mit Hilfe der Zeilenvektoren Xi = 1 xi xi · · · xi
zu:
A=
n
X
Xi T Xi (dyadisches Produkt) und r =
i=1
O.3
n
X
yi Xi T
i=1
Skalierung
O.3.1
Normierung der xi
Gl. (O.4) könnte nun mit dem Gaußschen Algorithmus nach den cj aufgelöst werden. Sind jedoch
einige xi > 1.0, ist eine Pivotsuche erforderlich, weil die Koeffizienten von A dann nach unten und
rechts zunehmen! Besser ist es, die Ausgangswerte auf das Einheitsintervall [0.0 . . . 1.0] zu normieren
x̂i =
xi − min(x)
.
max(x) − min(x)
und das System wie oben beschriebenen aufzustellen, jedoch mit den x̂i anstelle der xi . Es ist klar,
daß dieselbe Skalierung auch später bei der Interpolation zusätzlicher Wertepaare angewendet werden
muß.
O.3.2
Vorskalierung der xi
Erstreckt sich der Bereich der Stützstellen xi über mehrere Zehnerpotenzen, ist die Normierung nach
O.3.1 nicht ausreichend, weil dann viele xji im Rahmen der relativen Genauigkeit Null sind gegenüber
1.0. Abhilfe bieten Vorskalierungen wie
x̃i =
√
xi oder
x̃i = log(xi ) mit anschließender Normierung
x̂i =
x̃i − min(x̃)
max(x̃) − min(x̃)
Eine entsprechende Skalierung für die Funktionswerte yi wird erst notwendig, wenn das Verhältnis
|min(y)/max(y)| in der Größenordnung der relativen Genauigkeit der rechnerabhängigen Zahlendarstellung liegt. Diese Werte gehen nur linear in die rechte Seite ein.
O.3.3
Normierung des Systems und Genauigkeit
Wenn (O.4) durch die Anzahl der Stützstellen n dividiert wird, ist der größte Koeffizient a11 = 1.0 .
Da A symmetrisch ist, kann zur Lösung das Verfahren von Cholesky benutzt werden. Dieses sollte
jedoch modifiziert werden: Bei hohen Polynomgraden m werden die ajk sehr klein! Bei Auffinden eines
Diagonalgliedes app < ε (z.B. ε = 10−10 bei doppelter Genauigkeit) während der Zerlegung muß die
Auflösung abgebrochen und das System mit verkleinertem Polynomgrad (m = p − 2) neu berechnet
werden.
- 187 -
KAPITEL O - Interpolation
O.4
Testbeispiel
Zum Testen wird ein Datensatz mit 14 Stützstellen verwendet:
x
y
1.47·102
0.762
1.17·103
0.758
4.32·103
0.754
1.67·104
0.747
6.78·104
0.737
2.82·105
0.722
9.30·105
0.705
x
y
2.30·106
0.687
4.80·106
0.669
8.93·106
0.652
1.53·107
0.634
2.46·107
0.617
3.79·107
0.599
5.04·107
0.586
In den folgenden Abbildungen wird gezeigt, wie gut die verschiedenen Approximationen bei unterschiedlichen Polynomgraden und Vorskalierungen sind. Die Stützstellen sind in den Zeichnungen durch
zentrierte Symbole hervorgehoben, die ausgezogenen Linien zeigen den Verlauf der Interpolation.
Abb. 1: Quadratische Ansätze
Abb. 2: Kubische Ansätze
Abb. 3: Ansätze 4. Ordnung
Abb. 4: Maximal erreichbare Ordnung
Quadratische Ansätze sind i.a. nicht ausrechend (1), dagegen liefern kubische schon sehr brauchbare Ergebnisse,
abhängig von der gewählten Vorskalierung (2). Bei Ansatz 4. Ordnung (3) sind Stützstellen und Approximation bei Vorskalierung kaum noch zu unterscheiden. Reine Polynomansätze ohne Vorskalierung ergeben einen
welligen Verlauf, was sich mit Erhöhung der Ordnung sogar noch verschlimmert; Funktionswerte zwischen den
Stützstellen und besonders Ableitungen sind i.d.R. unbrauchbar.
- 188 -
Kapitel P
MATLAB – Kurzanleitung
- 189 -
KAPITEL P - Programmieren mit Matlab
P.1
Was ist Matlab?
Matlab (Matrix-Labor) ist eine interpreterbasierte Programmiersprache, die zusätzlich für kleine
Anwendungen im interaktiven Modus betrieben werden kann. Der Hauptdatentyp ist eine zweidimensionale doppeltgenaue Matrix mit zeilenweiser Speicherung. Deklarationen entfallen weitestgehend,
neue Variablen werden durch ihren ersten Gebrauch definiert. Fast alle Funktionen können sowohl auf
Skalare wie auf Vektoren und Matrizen angewendet werden.
Das Programmpaket Matlab besteht aus dem Basisprogramm selbst und vielen Toolboxen, die
zusätzliche Funktionen für spezielle Anwendungen bieten und auch zusätzlich bezahlt werden müssen.
Dennoch bietet allein das Basisprogramm dem Ingenieur ein erstklassiges Handwerkszeug, mit dem
viele Aufgabenstellungen in kompakter Form einfach und doch komfortabel gelöst werden können.
Die folgenden Hinweise geben einen kurzgefaßten Überblick der Syntax von Matlab. Es werden nur
einige elementare Funktionen erläutert, die zur Lösung der Übungsaufgaben benötigt werden, ohne
dabei einen Anspruch auf Vollständigkeit zu erheben. Für eine ausführliche Beschreibung sei auf die
Hilfe unter Matlab wie Help-Window oder Help-Desk (HTML) verwiesen, wo alle Operatoren und
Funktionen umfassend erklärt werden. Für Interessierte bietet die Homepage der Firma Mathworks
http://www.mathworks.com
zusätzliche Informationen sowie alle Handbücher zum kostenlosen Download.
P.1.1
Studentenversion
Die Studentenversion ist mit ca. 90 Euro relativ teuer. Es gibt jedoch einige Clones mit fast identischer
Syntax, beispielsweise SciLab:
http://www-rocq.inria.fr/scilab/
- 190 -
P.2. Operatoren und Funktionen
P.1.2
Erste Schritte
Nach dem Öffnen des Programms befindet man sich im Command-Window, in dem sämtliche Befehle
schrittweise eingegeben werden können und die Ergebnisse direkt erscheinen. Für etwas komplexere
Aufgaben ist diese Art des Vorgehens sehr mühselig und es bietet sich an, ein Programm mit sämtlichen Befehlen zu schreiben und dieses aus dem Command-Window aufzurufen. Die Programmierung erfolgt am besten mit dem Matlab-Editor/Debugger, da hier Schlüsselworte farbig dargestellt
werden und somit ein besserer Überblick gewährleistet ist. Prinzipiell ist jedoch jeder beliebige Texteditor brauchbar, solange die Programme als ASCII-Datei mit der Endung .m gespeichert werden.
Der Matlab-Editor wird entweder aus dem Command-Window mit dem Befehl edit oder über die
Menuleiste über File → New bzw. Klicken des entsprechenden Icons in der Symbolleiste geöffnet.
Vor dem Arbeiten sollte aus Gründen der Übersicht noch ein Arbeitsverzeichnis eingerichtet werden,
das dann als Current Directory gesetzt wird. Dies geschieht entweder im Command-Window mit dem
DOS-Befehl cd Verzeichnis oder durch Öffnen des Path-Browsers über die Menuleiste mit File →
Set Path bzw. Klicken des entsprechenden Icons in der Symbolleiste. Im Path-Browser kann dann
über den Knopf Browse das Arbeitsverzeichnis einfach eingestellt werden. Sollen nun Daten für ein
Programm importiert oder exportiert werden, erfolgt dies dann automatisch mit dem aktuellen Arbeitsverzeichnis unter Verzicht auf umständliche Pfadangaben.
Es folgt eine kurze Beschreibung von einigen Operatoren und Funktionen, die in den ersten Übungen
verwendet werden. Im weiteren Verlauf der Veranstaltung sollte diese Liste nach Bedarf selbständig
erweitert werden.
P.2
P.2.1
Operatoren und Funktionen
Allgemeine Funktionen
edit
Aufruf des Editors, edit Programm öffnet ein vorhandenes Programm mit
dem Editor.
cd Verzeichnis
Ändern des aktuellen Arbeitsverzeichnisses. cd allein zeigt das aktuelle Verzeichnis an.
dir
Auflisten aller Dateien im aktuellen Verzeichnis
who
Auflisten aller aktuell definierten Variablen, ausführliche Liste mit whos
clear Variablen
Löschen der angegebenen Variablen, clear all löscht sämtliche Variablen
clc
Clear Command-Window, alte Ausgaben löschen
- 191 -
KAPITEL P - Programmieren mit Matlab
P.2.2
Dateien, Ein- und Ausgabe
load Datei
Laden der Binär-Datei Datei.mat, in der verschiedene Variablen gespeichert
sind.
load ’Datei’
wie oben, jedoch Werte in ASCII-Klarschrift. Durch Leerzeichen oder Tabulator getrennte Werte werden dann in der Variablen ’Datei’ gespeichert.
save Datei
Speichern aller aktueller Variablen in der Binär-Datei Datei.mat. Zum Speichern bestimmter Variablen: save Datei Variablenliste.
P.2.3
Operatoren
Alle Operatoren existieren in Funktionsform und als eigentlicher Operator. So sind z.B. 4-1 äquivalent
zu minus(4,1) und x>y identisch mit gt(x,y). Hier wird nur die Operatoren-Schreibweise verwendet,
da sie in fast allen Fällen zum Einsatz kommt.
=
Zuweisung, A = B speichert den oder die Werte von B in A
+
Addition von Skalaren, Vektoren oder Matrizen
−
Subtraktion von Skalaren, Vektoren oder Matrizen
∗
Multiplikation von Skalaren bzw. bei Vektoren das Skalarprodukt und bei Matrizen das
Matrixprodukt
/
(Rechts-)Division von Skalaren, Vektoren und Matrizen, A/B entspricht A ∗ B −1
\
(Links-)Division von Skalaren, Vektoren und Matrizen, A\B entspricht A−1 ∗ B
ˆ
Potenzierung von Skalaren oder quadratischen Matrizen, wobei der Exponent ein Skalar
sein muß, z.B. xˆy oder Xˆy.
.∗
Elementweise Multiplikation von gleich großen Matrizen, z.B. C(i, k) = A(i, k). ∗ B(i, k)
./
Elementweise Multiplikation gleich großer Matrizen, z.B. C(i, k) = A(i, k)./B(i, k)
.ˆ
ebenso, Potenzierung
==
Vergleichsoperator (gleich)
∼=
Vergleichsoperator (ungleich)
<
Vergleichsoperator (kleiner)
>
Vergleichsoperator (größer)
<=
Vergleichsoperator (kleiner oder gleich)
>=
Vergleichsoperator (größer oder gleich)
&
Logische Verknüpfung (und)
|
Logische Verknüpfung (oder)
- 192 -
P.2. Operatoren und Funktionen
P.2.4
Matrix-Funktionen
[a1 . . . an ]
Definiert einen Vektor oder eine Matrix. Die Elemente können durch Leerzeichen,
Komma (beide springen in die nächste Spalte) oder Semikolon (springt in die nächste
Zeile) getrennt werden. [1, 2, 3] oder [1 2 3] liefern einen Zeilenvektor und [1,2;3,4]
eine 2 × 2-Matrix.
X(i, k)
k-tes Element der i-ten Zeile von X
:
anstelle eines Index: alle möglichen Werte. X(i, :) bezeichnet die gesamte i-te Zeile,
X(:, k) die k-te Spalte der Matrix X. Dient auch zur Definition eines äquidistanten
Vektors, z.B. Y = 1 : 3 → Y = [1 2 3]
oder x = 3 : −0.5 : 1 → x = [3 2.5 2 1.5 1]
length(x)
Länge eines Vektors bzw. Zeilenanzahl einer Matrix
size(X)
Größe einer einer Matrix, Ergebnis ist ein Vektor!
sum(y)
Summe der Elemente eines Vektors
zeros(m, n)
Erzeugt mit Nullen vorbelegte m × n-Matrix
ones(m, n)
Erzeugt mit Einsen vorbelegte m × n-Matrix
P.2.5
Mathematische Funktionen
abs(x)
Liefert den Absolutwert der Variablen x, bei Matrizen eine gleich große Matrix mit
allen Beträgen!
log10(x)
Logarithmus von x zur Basis 10.
sin(x)
sin(x), x im Bogenmaß angeben!
fix(x)
Runden von x durch Abschneiden der Dezimalen: z.B. fix(3.99) ; 3 bzw.
fix(−3.99) ; −3
Fast alle Mathematischen Funktionen sind auch auf Matrizen anwendbar (siehe abs).
P.2.6
Textvariablen und -Konstanten
x=’T ext’
Hochkommata definieren einen Textstring. x wird eine Zeichenkette, die die ASCIICodierung von T ext enthält. Mit diesen Textstrings kann jedoch natürlich nicht
gerechnet werden.
num2str(y)
Konvertiert den Zahlenwert von y in eine Zeichenkette. Nach der Variablen kann
noch ein Format (wieder als String) angegeben werden, um die Zahlendarstellung
zu spezifizieren. Beispielsweise ergibt ’%8.3f’ insgesamt 8 Zeichen mit 3 Dezimalen
in Festkommadarstellung, also 4 Vorkommastellen, Dezimalpunkt und Mantisse.
- 193 -
KAPITEL P - Programmieren mit Matlab
P.2.7
Steuerungskonstrukte
for i= Vektor
Befehle
end
Wiederholungsschleife. Die Befehle innerhalb der Schleife werden so oft
ausgeführt, bis die Laufvariable i jeden Wert des Vektors V ektor einmal
angenommen hat. Dabei wird mit dem ersten Element begonnen und
mit dem letzten geendet.
Beispiele: for i=1:10 oder for n=5:2:35
if Bedingung
Befehle
end
Bedingter Anweisungsblock: Die Befehle innerhalb des Blocks werden
nur ausgeführt, wenn Bedingung erfüllt ist.
Beispiele: if i > 5 oder if (j== 0 & abs(x(k))<20.5)
while Bedingung
Befehle
end
Bedingte Schleife: Die Befehle innerhalb der Schleife nur ausgeführt,
wenn die Bedingung hinter while erfüllt ist und so lange wiederholt, bis
sie nicht mehr erfüllt ist.
Beispiele: while i > 5 oder while (j== 0 & abs(x(k))<20.5)
function
Dient der Erzeugung einer Funktion und muß am Anfang eines Programms stehen. Die Syntax lautet:
function [Ergebnisliste]∗ = Name(Eingabeparameter)
Anweisungen†
Name = Ergebnis
return
(Vorzeitige) Rückkehr aus einer Funktion in das aufrufende Programm.
∗
†
optional
Die Variablen innerhalb der Funktion sind alle lokal, also nach Ausführung nicht mehr vorhanden.
- 194 -
P.2. Operatoren und Funktionen
P.2.8
Graphik
figure
Öffnet eine leere Graphik, in der dann etwas dargesteItt werden kann.
plot(x, y)
SteIlt die Werte des Vektors y über den Werten des Vektors x in einem zweidimensionalen Graphen dar. Nach dem y-Vektor können noch Optionen (als
Textstring) zur DarsteIlung folgen, z.B. zeichnet ’r’ eine rote Kurve und
’g--’ eine grüne gestrichelte.
loglog(x, y)
wie zuvor, aber mit doppeltlogarithmischem Achsenkreuz.
axis(Limits)
Begrenzt x- und y-Achse gemäß den Werten des 4-Elemente Vektors Limits,
der definiert ist als [xmin , xmax , ymin , ymax ].
xlabel(Text)
Beschriftet die x-Achse mit dem Textstring Text.
ylabel(Text)
Ebenso für die y-Achse
hold on
Hält den Graphen, d.h. vorhandene Kurven werden nicht gelöscht. Weitere
Graphen werden in das jetzt geöffnete Graphikfenster gezeichnet.
hold off
Setzt hold on zurück, d.h bei Darstellen der nächsten Kurve werden alle anderen gelöcht.
grid on
Erzeugt Gitterlinien im Graphen, die mit grid off entsprechend wieder entfernt werden können.
text(x, y, String)
Fügt den Inhalt des Textstrings String an der Position (x, y) im Graphen ein.
- 195 -
frei für Notizen
Herunterladen