Sie sind auf Seite 1von 57

Berechnung von Eigenfrequenzen mit FELyX

Tacoma Narrows Bridge, USA, 7. November 1940 [10]

Diplomarbeit WS 2002 / 2003 Autor: Boris Meier <meierbo@student.ethz.ch> Betreuer: Marc Wintermantel <wintermantel@imes.mavt.ethz.ch> Version 3 7. Februar 2003 Zentrum fr Strukturtechnologien u 03-050

Zusammenfassung Das C++-Programm FELyX soll dahingehend erweitert werden, dass Eigenfrequenzen und Eigenschwingungsformen von Strukturen berechnet werden knnen. Dafr ist das o u 2 Mu zu lsen, wobei die Eigenfrequenzen allgemeine Eigenwertproblem Kui = i o i i und ui die dazugehrigen Eigenvektoren, die die Eigenschwingungsformen beschreiben, o bedeuten. Die Generierung der Steigkeitsmatrix K ist in FELyX bereits implementiert, da sie auch fr statische Analysen bentigt wird. Die Bildung der Massenmatrix M ist zu u o programmieren. Sie geschieht hnlich wie die Bildung von K. a K und M sind grosse Matrizen, deren Ordnung gleich der Anzahl Freiheitsgrade der in nite Elemente unterteilten Struktur ist. Sie weisen eine Bandstruktur auf, so dass die meisten Eintrge Null sind. Dies erlaubt ein ezientes Speichern der Matrizen und a ermglicht schnelle Rechenalgorithmen. o In einem ersten Versuch wird das allgemeine Eigenwertproblem auf das spezielle 2 Eigenwertproblem Cui = i ui reduziert. Ein spezielles Eigenwertproblem ist einfacher zu lsen. Es gibt OpenSource Algorithmen dazu. Bei der Reduktion geht jedoch die o Bandstruktur der Matrizen K und M verloren, so dass der Speicheraufwand fr C sehr u gross wird. In einem weiteren Versuch wird die Methode der simultanen Vektoriteration implementiert. Sie eignet sich, um die p kleinsten Eigenwerte und die dazugehrigen Eigenvektoren o des allgemeinen Eigenwertproblems zu berechnen. Es werden dabei gleichzeitig p verschiedene Vektoren iteriert, bis sie gegen die gesuchten Eigenvektoren konvergieren. Diese Methode erweist sich in der Implementierung als inezient. Zum Ziel fhrt schliesslich das Verfahren von Lanczos mit dem inversen Eigenwertprou blem. Damit knnen die p kleinsten Eigenwerte und ihre Eigenvektoren ezient bestimmt o werden. Es werden typischerweise 8 bis 20 Lanczos Schritte ausgefhrt, wobei in jedem u Schritt ein Gleichungssystem Ku = h nach u gelst werden muss. Da die Matrix K o konstant bleibt kann dies so geschehen, dass K anfangs einmal zerlegt und in jedem Schritt dann nur noch einmal rckwrts eingesetzt wird. Der gesamte Rechenaufwand u a hlt sich so in Grenzen. a Der gefundene Rechenablauf ist ezient und kann mit kommerziellen Eigensolvern mithalten. Die Generierung der Massenmatrix knnte hingegen noch beschleunigt werden, o wenn K und M gleichzeitig und nicht nacheinander aufgebaut wrden. u

Inhaltsverzeichnis
1 Einleitung 1.1 Eigenschwingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Praktische Relevanz der Eigenfrequenzen . . . . . . . . . . . . . . . . . . . . 1.3 Eigenfrequenzoptimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Grundstzliche Uberlegungen a 2.1 Die Steigkeitsmatrix . . . . 2.2 Die Massensmatrix . . . . . . 2.3 Eigenfrequenzen . . . . . . . 2.4 Eigenschwingungsformen . . . 3 Massenmatrix 3.1 Link1 . . . . . . . . . . 3.2 Link8 . . . . . . . . . . 3.3 Beam3 . . . . . . . . . . 3.4 Beam4 . . . . . . . . . . 3.5 Plane2 . . . . . . . . . . 3.6 Plane182 . . . . . . . . . 3.7 Plane183 . . . . . . . . . 3.8 Solid185 . . . . . . . . . 3.9 Solid186 . . . . . . . . . 3.10 Solid187 . . . . . . . . . 3.11 Numerische Integration 3.12 Globale Massenmatrix . 1 1 2 2 5 5 6 7 8 9 9 9 9 10 11 11 12 12 13 15 15 16 17 17 17 18 20 20 20 22 22

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

4 Spezielles Eigenwertproblem 4.1 Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Durchfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 4.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Vektoriteration 5.1 Idee . . . . . . . . . . . 5.2 Umsetzung . . . . . . . 5.3 Orthogonalisierung . . . 5.4 Weitere Detaillierungen

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

6 Verfahren von Lanczos 24 6.1 Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.2 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 i

6.3 6.4 6.5

Bisektionsmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Konvergenz und Eigenpaare . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Probleme, Block-Lanczos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 30 30 31 32 32 33 34 34 35 35 36 37 38

7 Testresultate 7.1 Link8 . . . . 7.2 Beam3 . . . . 7.3 Beam4 . . . . 7.4 Plane2 . . . . 7.5 Plane182 . . . 7.6 Plane183 . . . 7.7 Solid185 . . . 7.8 Solid186 . . . 7.9 Solid187 . . . 7.10 2D-Mix . . . 7.11 3D-Mix . . . 7.12 Eigenvektoren

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

8 Benchmarking 39 8.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.2 Anzahl Freiheitsgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.3 Anzahl Eigenfrequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9 Schlussbemerkungen 9.1 Dmpfungsmatrix C . a 9.2 Lumped Mass Matrix 9.3 Simultane Generierung 9.4 Ziel . . . . . . . . . . . 9.5 Matlab . . . . . . . . . 9.6 To do . . . . . . . . . 41 41 41 41 42 42 42 45 47 51

. . . . . . . . von K . . . . . . . . . . . .

. . . . . . . . . . und M . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

A Matlab: Simultane Vektoriteration B Matlab: Verfahren von Lanczos C Eigenvektorberechnung

Kapitel 1

Einleitung
1.1 Eigenschwingungen

Die wohl einfachste Form einer Eigenschwingung ist ein Feder-Masse-System mit einer Masse und einer Feder (Abb. 1.1). Versetzt man die Masse in Bewegung, verschiebt sich ihre kinetische Energie in Federenergie, bis die Masse in extremaler Position stillsteht. Danach wird die Federenergie wieder in kinetische Energie umgewandelt. Diese Energieumwandlung ist die Basis jeder Schwingung. Falls das System nicht von aussen angeregt wird, verkleinert sich die Amplitude der Schwingung mit der Zeit aufgrund von Dmpfung. Diese tritt in der Realitt immer auf und ist eine Folge der Reibung zwischen a a den Atomen. Bei der beschriebenen Energieumwandlung wird also ein Teil der Engergie immer auch in Wrme umgewandelt. a

Abbildung 1.1: Einfaches Feder-Masse-System

Jeder Krper, jede Struktur ist eigentlich nichts anderes als ein komplexes System o aus Federn und Massen (und Dmpfern). Auf unterster Ebene knnen Atmokerne durch a o Massepunkte und Elementarkrfte durch Federkrfte modelliert werden. Soweit geht man a a in der Ingenieurspraxis allerdings nicht. Sondern man unterteilt eine Struktur in kleine Einheiten, in nitie Elemente. Diese Elemente haben eine Masse und auf sie wirken Krfte, was wiederum eine Art Feder-Masse-System bedeutet. a Uberlsst man das angeregte System aus Abb. 1.1 sich selber, schwingt es mit einer a klar denierten Frequenz weiter, der Eigenfrequenz f des Systems. Sie berechnet sich aus dem Impulssatz und ergibt f = m/k. Hngt man an die Masse eine zweite Feder a mit einer weiteren Masse, hat das neue System zwei Eigenfrequenzen, sofern man nur Schwingungen in z-Richtung betrachtet. 1

KAPITEL 1. EINLEITUNG

Betrachtet man alle Schwingungen, die das System aus Abb. 1.1 ausfhren kann, u kommt man auf sechs Eigenschwingungsformen. Die Masse kann nmlich auch in xa oder y-Richtung schwingen (pendeln) und um alle drei Achsenrichtungen rotieren. Beim System mit zwei Massen ergeben sich so total zwlf Eigenschwingungsformen mit je o einer Eigenfrequenz. Jede beliebige Schwingung dieses Systems ist eine Superposition der Eigenschwingungsformen. Die Anzahl Schwingungsformen und Eigenfrequenzen eines beliebigen Systems ist also die Summe der Massen multipliziert mit der Anzahl ihrer jeweiligen Freiheitsgrade. Fr u einen in nite Elemtente unterteilten Krper ergeben sich so exorbitant viele Eigenfreo quenzen. Relevant sind in der Praxis jedoch nur die tiefsten.

1.2

Praktische Relevanz der Eigenfrequenzen

Regt man das Feder-Masse-System aus Abb. 1.1 mit einer der Eigenfrequenz hnlichen a Frequenz an, gert das System in Resonanz. Die Amplitude des Schwingung kann sehr a gross werden. In der Praxis kann dies gefhrlich oder zumindest unangenehm sein. a Die Eigenfrequenzen eines Eisenbahnwagens zum Beispiel sollen nicht durch Unwuchten, die in jedem Rad auftreten, angeregt werden knnen. Bei der Fahrt mit einer bestimmo ten Geschwindigkeit wrde so der Wagen zu schwingen beginnen, was fr die Passagiere u u unangenehm wre. Damit eine Eigenfrequenz nicht wesentlich angeregt wird, muss sie a mindestens etwa vier mal hher sein als die Frequenz der Anregung [2]. o

Abbildung 1.2: Tacoma Narrows Bridge [10]

Welch dramatische Folgen eine Vernachlssigung der Betrachtung der Eigenfrequena zen haben kann, zeigt der berhmte Fall der Tacoma Narrows Bridge (Abb. 1.2), welche u am 7. November 1940 in Folge starker Schwingungen einstrzte. Bei der Planung war u die Ablsung von Wirbeln bei Wind nicht gengend bercksichtigt worden. Die Windgeo u u schwindigkeit an jenem Tag versetzte die Brcke in Resonanzschwingung, welche schliesu slich zum katastrophalen Versagen fhrte. u

1.3

Eigenfrequenzoptimierung

Das Ziel der Eigenfrequenzoptimierung einer Struktur ist es meist, die tiefsten Eigenfrequenzen so hoch wie mglich zu machen. Dies kann zum Beispiel gelingen, indem man o 2

KAPITEL 1. EINLEITUNG

die Struktur steifer macht oder ein Material mit hherem Elastizittsmodul whlt. o a a Um eine Optimierung zu illustrieren, dient folgendes Beispiel. Es wird eine fachwerkartige Brckenstruktur betrachtet (Abb. 1.3 - 1.5). Die drei Konstruktionsvorschlge u a haben je das gleiche Gewicht, das heisst die Stbe haben bei den Vorschlgen verschieden a a grosse Querschnitte. Der obere und untere Biegebalken sei aber gleich.

Abbildung 1.3: Struktur 1

Abbildung 1.4: Struktur 2

Abbildung 1.5: Struktur 3

Die Spannweite der Brke sei 8 m, der Abstand zwischen den Biegebalken 3 m. Das c Material hat eine Dichte von 2700 kg/m3 und einen E-Modul von 70 GPa. Die Balken haben eine Querschnittshe von 16 cm2 und ein Flchentrgheitsmoment I von 2106 m4 . c a a Die unterschiedlichen Parameter der drei Strukturen sind in Tabelle 1.1 zusammengefasst, wobei l die horizontale Distanz zwischen zwei Fachwerkknoten und GL die Gesamtlnge a der Stbe bedeutet. a Struktur 1 2 3 l [m] 2 4 1 GL [m] 16.00 10.58 57.69 A [cm2 ] 16.00 24.19 4.44 I [106 m4 ] 2.00 3.02 0.55 f1 [Hz] 54.33 29.67 31.68

Tabelle 1.1: Parameter der Strukturen

Die berechneten tiefsten Eigenfrequenzen f1 der Strukturen sind ebenfalls in Tabelle 1.1 ersichtlich. Die Struktur 1 hat die hchste primre Eigenfrequenz. Das ist insofern o a erstaunlich, als dass die Struktur ein Kompromiss zwischen den Strukturen 2 und 3 ist. Intuitiv erkennt man, dass es einen optimalen Kompromiss zwischen 2 und 3 geben muss. Abbildung 1.6 zeigt den qualitativen Verlauf der tiefsten Eigenfrequenz in Abhngigkeit von l. a

KAPITEL 1. EINLEITUNG

Abbildung 1.6: Tiefste Eigenfrequenz in Abngigkeit von l a

Dieses Beispiel ist eine typische einfache Optimierungsaufgabe mit einzigem Parameter l. Komplizierte Optimierungsaufgaben haben mehrer Paramter. Es gibt verschiedene Optimierungsstrategien, wie zum Beispiel Genetische Algorithmen oder Simulated Annealing. Optimierung ist aber nicht Aufgabe dieser Arbeit, sondern die eziente Berechnung von Eigenfrequenzen.

Kapitel 2

Grundstzliche Uberlegungen a
Die Bestimmung der Eigenfrequenzen eines Bauteils unter Verwendung niter Elemente soll am einfachen Beispiel eines einseitig eingespannten Balkens (Abb. 2.1) mit Elemtentlnge l und Querschnittsche b2 untersucht werden. Fr diese zweidimensionale Aufa a u gabe werden Beam3-Elemente verwendet. Das Vorgehen fr komplexere Strukturen ist u analog. Die Parameter des Beispielproblems sind in Tabelle 2.1 zusammengefasst. L b E 4 4 2700 8 1010 m cm kg/m3 Pa

Tabelle 2.1: Parameter des Problems

Abbildung 2.1: Einseitig eingespannter Balken mit 4 Elementen

2.1

Die Steigkeitsmatrix

Die Steigkeitselementmatrix k fr ein Beam3-Element ist [9] u E k= 3 l Al2 0 0 Al2 0 0 0 12I 6Il 0 12I 6Il 0 6Il 4Il2 0 6Il 2Il2 Al2 0 0 Al2 0 0 0 12I 6Il 0 12I 6Il 0 6Il 2Il2 0 6Il 4Il2

(2.1)

Setzt man die Parameter des Problems ein, erhlt man a 5

KAPITEL 2. GRUNDSATZLICHE UBERLEGUNGEN

6 k = 10

128 0 0 128 0 0 0 0.205 0.102 0 0.205 0.102 0 0.102 0.0683 0 0.102 0.0341 128 0 0 128 0 0 0 0.205 0.102 0 0.205 0.102 0 0.102 0.0341 0 0.102 0.0683

(2.2)

Die globale Steigkeitsmatrix setzt sich aus den Elementsteigkeitsmatrizen zusam men, welche sich gegenseitig uberlappen (Abb. 2.2). Die Uberlappung beruht darauf, dass ein Knoten jeweils zu zwei Elemten gehrt. Weil der Balken sich im Knoten 1 weder o verschieben noch verdrehen kann, werden die ersten drei Zeilen und Spalten der globalen Steigkeitsmatrix, welche den drei Freiheitsgraden des ersten Knoten entsprchen, gestrichen. Damit wird die Matrix K positiv denit.

Abbildung 2.2: Bildung der globalen Steigkeitsmatrix

Gleichung 2.3 zeigt die globale Steigkeitsmatrix. Sie ist symmetrisch mit deutlicher Bandstruktur. Dank diesen Eigenschaften kann die Matrix ezient gespeichert werden, was bei Matrizen hherer Ordnung wichtig wird. Ebenfalls erlaubt die Speicherung im o Enveloppe-Format eziente Rechenalgorithmen.
260 0 0 130 0 0 0 0 0 0 0 0 0 0.41 0 0 0.2 0.1 0 0 0 0 0 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 0 0 260 0 0 130 0 0 0 0 0 130 0 0 0.2 0.1 0 0.41 0 0 0.2 0.1 0 0 0 0 0.1 0.034 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 130 0 0 260 0 0 130 0 0 0 0 0 0 0.2 0.1 0 0.41 0 0 0.2 0.1 0 0 0 0 0.1 0.034 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 130 0 0 130 0 0 0 0 0 0 0 0 0 0.2 0.1 0 0.2 0.1 0 0 0 0 0 0 0 0.1 0.034 0 0.1 0.068

K = 106

(2.3)

2.2

Die Massensmatrix

Die Massenelementmatrix m fr ein Beam3-Element ist in Abschnitt 3.3 deniert. Setzt u man die Parameter aus Tabelle 2.1 ein, erhlt man a 1.44 0 0 0.72 0 0 0 1.6 0.226 0 0.555 0.134 0 0.226 0.0411 0 0.134 0.0309 m= (2.4) 0 0 1.44 0 0 0.72 0 0.555 0.134 0 1.6 0.226 0 0.134 0.0309 0 0.226 0.0411 6

KAPITEL 2. GRUNDSATZLICHE UBERLEGUNGEN

Die Bildung der globalen Massenmatrix M geschieht genau analog zur Bildung der globalen Steigkeitsmarix. Sie ist ebenfalls symmetrisch und positiv denit und kann in der gleichen Hllenform wie K gespeichert werden. u
2.9 0 0 0.72 0 0 0 0 0 0 0 0 0 3.2 0 0 0.56 0.13 0 0 0 0 0 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0 0.72 0 0 2.9 0 0 0.72 0 0 0 0 0 0 0.56 0.13 0 3.2 0 0 0.56 0.13 0 0 0 0 0.13 0.031 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0.72 0 0 2.9 0 0 0.72 0 0 0 0 0 0 0.56 0.13 0 3.2 0 0 0.56 0.13 0 0 0 0 0.13 0.031 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0.72 0 0 1.4 0 0 0 0 0 0 0 0 0 0.56 0.13 0 1.6 0.23 0 0 0 0 0 0 0 0.13 0.031 0 0.23 0.041

M=

(2.5)

2.3

Eigenfrequenzen

Die globale Steigkeits- und Massenmatrix erlauben nun die Eigenfrequenzen und Eigenschwingungsformen des Balkens zu berechnen. Gleichung 2.6 beschreibt den Zusammenhang zwischen den erwhnten Matrizen und den Eigenfrequenzen bzw. Eigenschwingungsa formen. Zu lsen ist ein allgemeines Eigenwertproblem. o
2 Kui = i Mui

(2.6)

Multipliziert man die Gleichung beidseitig mit M1 erhlt man das spezielle Eigena wertproblem in Gleichung 2.7.
2 (M1 K)ui = i ui

(2.7)

Die Eigenfrequenzen i des Systems erhlt man also, indem man aus den Eigenwerten a 1 K die Wurzeln zieht. Da die Matrizen K und M positiv denit sind, sind der Matrix M alle Eigenwerte positiv.
2 i = eig(M1 K)

(2.8)

Als tiefste zwei Eigenfrequenzen erhlt man a 1 = 13.8127 2 = 86.6605 (2.9)

Die Einheit ist rad/s. Will man die Eigenfrequenzen in Hertz ausdrcken, wie sie z.B. u Ansys als Resultat ausgibt, sind die Eigenkreisfrequenzen i in Gleichung 2.9 noch durch 2 zu dividieren. fi = i 2 (2.10)

Vergleicht man die berechneten Eigenfrequenzen mit den exakten Werten [2] in Gleichungen 2.11, stellt man vor allem fr die tiefste Eigenfrequenz eine hohe Genauigkeit u fest. In je mehr nite Elemente der Balken unterteilt wird, desto weiter nhert sich das a Ergebnis den exakten Werten an. 1 = 3.516 EI = 13.8122 mL3 2 = 22.03 EI = 86.5420 mL3 (2.11)

KAPITEL 2. GRUNDSATZLICHE UBERLEGUNGEN

2.4

Eigenschwingungsformen

2 Der zum Eigenwert i gehrende Eigenvektor ui beschreibt die Form der Eigenschwino gung. Beim Balkenproblem stehen in den Eigenvektoren die Verschiebungen der Knoten in horizontale und vertikale Richtung (u bzw. v) sowie die Verdrehung gegenber der u Horizontalen ().

ui =

u2 v2 2 u3 v3 3 u4 v4 4 u5 v5 5

(2.12)

Die zu den tiefsten zwei Eigenfrequenzen gehrenden Eigenvektoren sind o u1 = u2 = 0 0.07 0.13 0 0.25 0.21 0 0.48 0.24 0 0.72 0.25
T

(2.13)
T

0 0.2 0.27 0 0.34 0.054 0 0.064 0.46 0 0.48 0.57

In Abbildungen 2.3 und 2.4 sind die dazugehrigen Eigenschwingungsformen gezeicho net. In den Eigenvektoren (Gl. 2.14) erkennt man, dass die Verschiebungen der Knoten in horizontale Richtung sehr klein sind.

Abbildung 2.3: 1. Eigenschwingungsform des Balkens

Abbildung 2.4: 2. Eigenschwingungsform des Balkens

Die Eigenvektoren knnen beliebig skaliert werden. Sie enthalten keine absoluten Wero te, sondern beschreiben lediglich das Verhltnis der maximalen Auslekungen zueinander. a Sie knnen bezglich irgendeiner Norm normiert werden. o u

Kapitel 3

Massenmatrix
Dieses Kapitel behandelt das Aufstellen der Massenmatrix fr die verschiedenen Elementu typen. Bei den einfacheren Elementtypen kann die Elementmassenmatrix in geschlossener Form angegeben werden. Bei komplexeren Elementtypen muss die Elementmassenmatrix numerisch an verschiedenen Integrationspunkten auntegriert werden (Abschn. 3.11).

3.1

Link1

Das Link1-Element modelliert einen zweidimensionalen Zug- oder Druckstab. Es kann keine Biegelast aufnehmen. Die Massenmatrix des Link1-Elements lsst sich geschlossen darstellen: a 2 0 1 m = Al 1 6 0 0 2 0 1 1 0 2 0 0 1 0 2

(3.1)

3.2

Link8

Das Link8-Element modelliert einen dreidimensionalen Zug- oder Druckstab. Es kann keine Biegelast aufnehmen. Die Massenmatrix des Link8-Elements lsst sich geschlossen darstellen: a 1 m = Al 6 2 0 0 1 0 0 0 2 0 0 1 0 0 0 2 0 0 1 1 0 0 2 0 0 0 1 0 0 2 0 0 0 1 0 0 2

(3.2)

3.3

Beam3

Das Beam3-Element modelliert einen zweidimensionalen Biegebalken. Es kann nebst Zug und Druck auch eine Biegelast aufnehmen. 9

KAPITEL 3. MASSENMATRIX

Die Massenmatrix des Beam3-Elements lsst sich geschlossen darstellen [9]: a


1 3

0 0 m = Al 1 6 0 0

0 A C 0 B D

0 C E 0 D F

1 6

0 0
1 3

0 0

0 0 B D D F 0 0 A C C E

(3.3)

Die Bedeutung der Eintrge steht in den Gleichungen 3.5. a

3.4

Beam4

Das Beam4-Element modelliert einen dreidimensionalen Biegebalken. Es kann nebst Zug und Druck auch eine Biegelast in zwei Achsenrichtungen sowie Torsion aufnehmen. Die Massenmatrix des Beam4-Elements lsst sich geschlossen darstellen [7]: a 1 0 0 0 0 0 1 0 0 0 0 0 3 6 0 Az 0 0 0 Cz 0 Bz 0 0 0 Dz 0 0 Ay 0 Cy 0 0 0 By 0 Dy 0 Iy +Iz Iy +Iz 0 0 0 0 0 0 0 0 0 0 3A 6A 0 0 Cy 0 Ey 0 0 0 Dy 0 Fy 0 0 Cz 0 0 0 Ez 0 Dz 0 0 0 Fz m = Al 1 0 0 0 0 0 1 0 0 0 0 0 6 3 0 Bz 0 0 0 Dz 0 Az 0 0 0 Cz 0 0 By 0 Dy 0 0 0 Ay 0 Cy 0 Iy +Iz Iy +Iz 0 0 0 0 0 0 0 0 0 0 6A 3A 0 0 Dy 0 Fy 0 0 0 Cy 0 Ey 0 0 Dy 0 0 0 Fz 0 Cz 0 0 0 Ez (3.4) Wobei gilt Ai = Bi = Ci = Di = Ei = Fi = und i = y, z. 13 6 Ii + 2 5 Al 35 6 Ii 9 + 5 Al2 70 1 Ii 11l + 10 Al 210 1 Ii 13l 10 Al 420 2 Ii l2 + 15 A 105 1 Ii l2 30 A 140 (3.5)

10

KAPITEL 3. MASSENMATRIX

3.5

Plane2

Das Plane2-Element ist ein zweidimensionales Dreieckelement mit sechs Knoten (Abb. 3.1).

Abbildung 3.1: Plane2 Element

Die Formfunktionen sind [8]: N1 = (2L1 1)L1 N2 = (2L2 1)L2 N3 = (2L3 1)L3 N4 = 4L1 L2 N5 = 4L2 L3 N6 = 4L1 L3 wobei L1 , L2 , und L3 die Dreieckskoordinaten sind [8]. (3.6)

3.6

Plane182

Das Plane182-Element ist ein zweidimensionales Viereckelement mit vier in den Ecken angeordneten Knoten (Abb. 3.2).

Abbildung 3.2: Plane182 Element

Die Formfunktionen sind [8]: N1 = N2 = N3 = N4 = 1 (1 )(1 ) 4 1 (1 + )(1 ) 4 1 (1 + )(1 + ) 4 1 (1 )(1 + ) 4 (3.7)

11

KAPITEL 3. MASSENMATRIX

3.7

Plane183

Das Plane183-Element ist ein zweidimensionales Viereckelement mit acht Knoten. Diese sind in den Ecken und an den Seitenmitten angeordnet (Abb. 3.3).

Abbildung 3.3: Plane183 Element

Die Formfunktionen sind [8]:

N1 = N2 = N3 = N4 = N5 = N6 = N7 = N8 =

1 (1 )(1 )( 1) 4 1 (1 + )(1 )( 1) 4 1 (1 + )(1 + )( + 1) 4 1 (1 )(1 + )( + 1) 4 1 (1 2 )(1 ) 2 1 (1 + )(1 2 ) 2 1 (1 2 )(1 + ) 2 1 (1 )(1 2 ) 2

(3.8)

3.8

Solid185

Das Solid185-Element ist ein dreidimensionales Quaderelement mit acht Knoten. Diese sind in den Ecken angeordnet (Abb. 3.4). 12

KAPITEL 3. MASSENMATRIX

Abbildung 3.4: Solid185 Element

Die Formfunktionen sind [8]:

N1 = N2 = N3 = N4 = N5 = N6 = N7 = N8 =

1 (1 )(1 )(1 ) 8 1 (1 + )(1 )(1 ) 8 1 (1 + )(1 + )(1 ) 8 1 (1 )(1 + )(1 ) 8 1 (1 )(1 )(1 + ) 8 1 (1 + )(1 )(1 + ) 8 1 (1 + )(1 + )(1 + ) 8 1 (1 )(1 + )(1 + ) 8

(3.9)

3.9

Solid186

Das Solid186-Element ist ein dreidimensionales Quaderelement mit 20 Knoten. Diese sind in den Ecken und in den Kantenmitten angeordnet (Abb. 3.5). 13

KAPITEL 3. MASSENMATRIX

Abbildung 3.5: Solid186 Element

Die Formfunktionen sind [8]: 1 N1 = (1 )(1 )(1 )( 2) 8 1 N2 = (1 + )(1 )(1 )( 2) 8 1 N3 = (1 + )(1 + )(1 )( + 2) 8 1 N4 = (1 )(1 + )(1 )( + 2) 8 1 N5 = (1 )(1 )(1 + )( + 2) 8 1 N6 = (1 + )(1 )(1 + )( + 2) 8 1 N7 = (1 + )(1 + )(1 + )( + + 2) 8 1 N8 = (1 )(1 + )(1 + )( + + 2) 8 1 N9 = (1 2 )(1 )(1 ) 4 1 N10 = (1 2 )(1 + )(1 ) 4 1 N11 = (1 2 )(1 + )(1 ) 4 1 N12 = (1 2 )(1 )(1 ) 4 1 N13 = (1 2 )(1 )(1 + ) 4 1 N14 = (1 2 )(1 + )(1 + ) 4 1 N15 = (1 2 )(1 + )(1 + ) 4 1 N16 = (1 2 )(1 )(1 + ) 4 1 N17 = (1 2 )(1 )(1 ) 4 1 N18 = (1 2 )(1 + )(1 ) 4 1 N19 = (1 2 )(1 + )(1 + ) 14 4 1 N20 = (1 2 )(1 )(1 + ) 4

(3.10)

KAPITEL 3. MASSENMATRIX

3.10

Solid187

Das Solid187-Element ist ein dreidimensionales Tetraederelement mit zehn Knoten. Diese sind in den Ecken und in den Kantenmitten angeordnet (Abb. 3.6).

Abbildung 3.6: Solid187 Element

Die Formfunktionen sind [8]: N1 = (2L1 1)L1 N2 = (2L2 1)L2 N3 = (2L3 1)L3 N4 = (2L4 1)L4 N5 = 4L1 L2 N6 = 4L2 L3 N7 = 4L1 L3 N8 = 4L1 L4 N9 = 4L2 L4 N10 = 4L3 L4 wobei L1 , L2 , L3 und L4 Tetraeder-Koordinaten sind [8]. (3.11)

3.11

Numerische Integration

Fr die Elementtypen in den Abschnitten 3.5 - 3.10 muss die Elementmassenmatrix durch u numerisches Auntegrieren an bestimmten Integrationspunkten ermittelt werden. Fr u zweidimensionale Elementtypen gilt an jedem Integrationspunkt i: Ni = N1,i 0 N2,i 0 N3,i 0 Nn,i 0 0 N1,i 0 N2,i 0 N3,i 0 Nn,i (3.12)

wobei n die Anzahl Knoten des Elements ist. Fr dreidimensionale Elemente gilt: u N1,i 0 0 N2,i 0 0 Nn,i 0 0 N1,i 0 0 N2,i 0 0 Nn,i 0 Ni = 0 0 0 N1,i 0 0 N2,i 0 0 Nn,i

(3.13)

Die Massenmatrix m eines Elements wird durch Aufsummierung der skalierten Matrizen NT N erhalten. 15

KAPITEL 3. MASSENMATRIX

m=
i=1

wi det(Ji )NT N

(3.14)

wobei wi die Gewichtung des Integrationspunkts, die Dichte des Materials und k die Anzahl Integrationspunkte des Elements sind. Ji ist die Jacobi-Matrix am Integrationspunkt i. Sie wird auch fr das Aufstellen der Steigkeitsmatrix gebraucht und von dort u ubernommen.

3.12

Globale Massenmatrix

Das Aufstellen der globalen Massenmatrix GMM geschieht analog zum Aufstellen der globalen Steigkeitsmatrix GSM. Der Code, der die GSM generiert, ist ubernommen und entsprechend modiziert worden. Anpassungen waren ntig in PreProcessing.inl, o Element.inl, der Basisklassen der Elementtypen und der Klassen der Elementtypen selber.

16

Kapitel 4

Spezielles Eigenwertproblem
4.1 Idee

Um die Eigenfrequenzen einer Struktur zu berechnen, ist ein allgemeines Eigenwertproblem (Gleichung 4.1) zu lsen. o Kui = i Mui (4.1) wobei i die Eigenwerte und ui die Eigenvektoren des Problems sind. Einfacher zu lsen und in der Literatur huger beschrieben ist allerdings ein spezielles o a Eigenwertproblem (Gleichung 4.2). Cui = i ui (4.2)

Wre die Matrix C bekannt, knnte das Eigenwertproblem auf einfachere Weise a o gelst werden. Als Solver knnte zum Beispiel die Iterative Eigenproblem Template o o library [11] verwendet werden. Die Matrix C kann man durch Invertieren der Matrix M und Multiplizieren mit der Matrix K (Gleichung 4.3) erhalten. C = M1 K (4.3)

Dieser Weg hat zwei Schwachpunkte. Die Inversion der Matrix M ist mit sehr viel Rechenaufwand verbunden. Daneben ist die Matrix C im Allgemeinen nicht mehr symmetrisch.

4.2

Durchfuhrung

Es gibt noch einen anderen Weg, das allgemeine Eigenwertproblem auf ein spezielles zurckzufhren [4]. Hier ist keine Inversion ntig und die erhaltene Matrix C ist symu u o metrisch, was die Eigenwertsuche vereinfacht. Zuerst fhrt man eine Cholesky-Zerlegung der Massenmatrix durch. u M = LLT (4.4)

Da L keine grssere Enveloppe als M hat, kann die Zerlegung an der Stelle von M paso sieren, um Speicherplatz zu sparen. Dann wird eine Hilfsmatrix H gebildet. H = KLT (4.5) 17

KAPITEL 4. SPEZIELLES EIGENWERTPROBLEM

Die Matrix H ist voll besetzt und nicht mehr symmetrisch. Es gengt jedoch, ihre untere u Hlfte zu bestimmen. Dies geschieht kollonnenweise mittels Gleichung 4.6. a HLT = K (4.6)

Jetzt kann aus Gleichung 4.7 die symmetrische Matrix C durch Vorwrtseinsetzen berecha net werden. LC = H (4.7)

Die Matrix C ist zwar symmetrisch, aber vollbesetzt. Da die Speicherung einer vollbesetzten Matrix bei vielen Freiheitsgraden enorm viel Speicherplatz beansprucht, wurde dieser Lsungsweg als unrealistisch bewertet und nicht weiter verfolgt. o

4.3

Beispiel

Das folgende Beispiel soll die Reduktion eines allgemeinen auf ein spezielles Eigenwertproblem illustrieren. Die Steigkeits- und Massenmatrix stammen aus dem Balkenproblem in Kapitel 2.

K = 106

260 0 0 130 0 0 0 0 0 0 0 0 0 0.41 0 0 0.2 0.1 0 0 0 0 0 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 0 0 260 0 0 130 0 0 0 0 0 130 0 0 0.2 0.1 0 0.41 0 0 0.2 0.1 0 0 0 0 0.1 0.034 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 130 0 0 260 0 0 130 0 0 0 0 0 0 0.2 0.1 0 0.41 0 0 0.2 0.1 0 0 0 0 0.1 0.034 0 0 0.14 0 0.1 0.034 0 0 0 0 0 0 130 0 0 130 0 0 0 0 0 0 0 0 0 0.2 0.1 0 0.2 0.1 0 0 0 0 0 0 0 0.1 0.034 0 0.1 0.068

(4.8)

M =

2.9 0 0 0.72 0 0 0 0 0 0 0 0 0 3.2 0 0 0.56 0.13 0 0 0 0 0 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0 0.72 0 0 2.9 0 0 0.72 0 0 0 0 0 0 0.56 0.13 0 3.2 0 0 0.56 0.13 0 0 0 0 0.13 0.031 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0.72 0 0 2.9 0 0 0.72 0 0 0 0 0 0 0.56 0.13 0 3.2 0 0 0.56 0.13 0 0 0 0 0.13 0.031 0 0 0.082 0 0.13 0.031 0 0 0 0 0 0 0.72 0 0 1.4 0 0 0 0 0 0 0 0 0 0.56 0.13 0 1.6 0.23 0 0 0 0 0 0 0 0.13 0.031 0 0.23 0.041

(4.9)

L =

1.7 0 0 0 0 0 0 0 0 0 0 0 0 1.8 0 0 0 0 0 0 0 0 0 0 0 0 0.29 0 0 0 0 0 0 0 0 0 0.42 0 0 0 0 0 0 0 0 0 0 0 0.31 0.47 1.6 1.7 0 0 0 0 0 0 0 0 0.075 0.11 0 0.043 0.25 0 0 0 0 0 0 0 0 0 0.44 0 0 1.6 0 0 0 0 0 0 0 0 0 0.33 0.48 0 1.7 0 0 0 0 0 0 0 0 0.079 0.11 0 0.046 0.25 0 0 0 0 0 0 0 0 0 0 0.44 0 0 1.1 0 0 0 0 0 0 0 0 0 0.33 0.48 0 1.1 0 0 0 0 0 0 0 0 0.079 0.11 0 0.13 0.075

(4.10)

H = 106

0 0 120 0 0 0.23 0 0 0.16 0 0.48 0 0.19 0 0 180 0 75 0 0 0.11 0.36 0 0.36 0 0.057 0.12 0 0.043 0 0 0 78 0 0 0 0 0 0.12 0 0 0 0 0.06 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

150

0 31 0 0 12 0.5 0 0.11 0.19 0 0.37 0 0.068 0.12 0 0 120 0 0 49 0.25 0 0.12 0.44 0 0.62 0 0.23 0.44 0 0 180 0 0 180 0.39 0 0.37 0.28 0 0.13 0 0.047 0.63 0 0 78 0 0 150 0 0 0.12 0.39 0 0 0 0.06 0.13 0

0 0.048 0.029 0 0.15 0.12 0 0.17 0.34 0 0.38 0.16

0 0.076 0.046 0 0.25 0.19 0 (4.11) 1 0.72 0 1.4 0.87

18

KAPITEL 4. SPEZIELLES EIGENWERTPROBLEM

C = 106

89 0 0 69 0 0 18 0 0 7.2 0 0

0 0.13 0 0 0.09 0.28 0 0.061 0.11 0 0.027 0.042

0 0 1.7 0 0.66 1.3 0 0.24 0.4 0 0.1 0.16

69 0 0 120 0 0 81 0 0 32 0 0

0 0.09 0.66 0 0.41 0.55 0 0.005 0.13 0 0.055 0.094

0 18 0 0 7.2 0 0 0.28 0 0.061 0.11 0 0.027 0.042 1.3 0 0.24 0.4 0 0.1 0.16 0 81 0 0 32 0 0 0.55 0 0.005 0.13 0 0.055 0.094 3.2 0 1 1.9 0 0.51 0.82 0 130 0 0 120 0 0 1 0 0.5 0.72 0 0.052 0.37 1.9 0 0.72 3.5 0 1.6 3.2 0 120 0 0 180 0 0 0.51 0 0.052 1.6 0 1 2.7 0.82 0 0.37 3.2 0 2.7 12

(4.12)

Hier und in Rechnungen mit Matrizen hherer Ordnung fllt auf, dass die Matrix C o a zwar vollbesetzt ist, dass aber Eintrge stark kleiner werden, je weiter weg sie von der a Diagonalen sind. Es ist wohl gut mglich, in gengendem Abstand von der Diagonalen o u ein Band zu legen und die Werte ausserhalb des Bandes Null zu setzen, ohne dass die Eigenwerte von C signikant verflscht werden. a Da dieser Weg in der Literatur aber kaum beschrieben ist, wird dies nicht die optimale Lsung fr das gegebene Problem sein. o u

19

Kapitel 5

Vektoriteration
5.1 Idee
eignet sich, um die kleinsten Eigenwerte und die dazugehrigen o allgemeinen Eigenwertaufgabe zu berechnen. Bei dieser Methode zur Reduktion auf ein spezielles Eigenwertproblem, die Hllenform u Massenmatrix optimal ausgentzt. u

Die Vektoriteration Eigenvektoren einer wird, im Gegensatz der Steigkeits- und

Die Vektoriteration startet mit einem beliebigen Startvektor, dessen Dimension gleich der Anzahl Freiheitsgrade des Problems ist. Im Verlauf der Iteration nhert er sich a immer mehr einem Eigenvektor an. Bei gengender Genauigkeit wird der Algorithmus u abgebrochen und mit Hilfe des Eigenvektors der dazugehrige Eigenwert berechnet. o Fr die mathematische Herleitung des Algorithmus sei auf Schwarz [4] verwiesen. u

5.2

Umsetzung

Fr die Umsetzung in C++ wird die simultane Vektoriteration verwendet. Dabei werden u statt nur einem Vektor y mehrere Vektoren gleichzeitig iteriert. Die Anzahl der Vektoren entspricht der Anzahl der gesuchten Eigenwerte. Die Vektoren werden in die Matrix Y geschrieben. Abbildung 5.1 zeigt das Flussdiagramm der simultanen Vektoriteration. Die Matrizen Y, H1 , H2 , H3 , und Z haben die Dimensionen mn, wobei m die Ordnung der Steigkeitsbzw. Massenmatrix und n die Anzahl der gesuchten Eigenwerte ist. Die Matrizen R, C, und G haben die Dimensionen n n. In einem ersten Schritt wird die Cholesky-Zerlegung (Gl. 5.1) auf die Steigkeitsund Massenmatrix angewendet. Daraus ergeben sich die Matrizen LK und LM , welche in der gleichen Hlle wie K und M gespeichert werden knnen. Die Startmatrix Y0 kann u o beliebig gewhlt werden. a K = LK LT K M = LM LT M (5.1)

Im Iterationsprozess wird zuerst die Matrix H1 berechnet durch Multiplikation der Matrizen LM und Y. Damit wird nun die Matrix H2 mittels Vorwrtseinsetzen im Gleia 20

KAPITEL 5. VEKTORITERATION

Abbildung 5.1: Simultane Vektoriteration

chungssystem 5.2 ermittelt. LK H2 = H1 (5.2) Im Gleichungssystem 5.3 wird dann die Matrix H3 mittels Rckwrtseinsetzen berechnet. u a LT H3 = H2 K (5.3)

Nach einer weiteren Multiplikation von LT mit H3 gelangt man zur Matrix Z. Diese wird M einer QR-Zerlegung unterzogen, wobei nur die Matrix R berechnet und fr den weiteren u Verlauf bentigt wird. Aus der Multiplikation der Matrix R mit ihrer Transponierten o ergibt sich die Matrix H. In einem weiteren Schritt wird die Matrix H diagonalisiert, daraus ergibt sich die orthogonale Matrix G. Die neue Matrix Y erhlt man schliesslich durch Multiplikation a von Q mit G. Falls Y schon gengend gegen die Eigenvektoren konvergiert ist, wird die Iteration u abgebrochen und die Eigenwerte berechnet. Ansonsten wird der ganze Rechenablauf nochmals mit dem neuen Vektor Y wiederholt. Ein Matlab-Programm fr die simultane Vektoriteration ndet sich in Anhang A. u

21

KAPITEL 5. VEKTORITERATION

5.3

Orthogonalisierung

Abbildung 5.2: Orthogonalisierung

Die Orthogonalisierung der Matrix H geschieht mit dem Jacobi-Verfahren [12]. Dafr u ist eine eigene Iteration ntig. G und V haben die Dimensionen von H. Die Matrix G o wird gleich der Einheitsmatrix gesetzt. Im Iterationsschritt wird zuerst der absolut grsste o Eintrag hp,q der Matrix H gesucht. Dann wird der Wert gemss Gleichung 5.4 berechnet a = 1 arctan 2 2hp,q hp,p hq,q (5.4)

wobei hp,q der Eintrag in der pten Zeile und qten Spalte von H ist. Dann wird V gleich der Einheitsmatrix gesetzt. Die folgenden Eintrge werden in V vorgenommen. a vp,p = vq,q = cos() vp,q = sin() vq,p = sin() Aus VT HV wird ein neues H berechnet, welches sich immer mehr einer Diagonalmatrix annhert. Schliesslich wird mit GV ein neues G berechnet. Wenn dieses sich nicht mehr a stark ndert oder eine bestimmte Anzahl Iterationsschritte erreicht ist, approximiert G a die orthogonalisierte Matrix H. Ein Matlab-Programm zur Orthogonalisierung ndet sich ebenfalls in Anhang A. (5.5)

5.4

Weitere Detaillierungen
QR-Zerlegung sei auf Schwarz [4]

Fr die genaue Beschreibung der Cholesky- bzw. u verwiesen.

22

KAPITEL 5. VEKTORITERATION

Die in der simultanen Vektoriteration nach erfolgter Konvergenz erhaltenen Vektoren yi mssen noch durch Rckwrtseinsetzen mit LM auf die eigentlich gesuchten Eigenveku u a toren ui zurcktransformiert werden. Da Rckwrtseinsetzen schon im dritten Schritt u u a der Iteration vorkommt, kann dieselbe Funktion verwendet werden.
2 Die Eigenwerte i ergeben sich als Rayleighsche Quotienten der Eigenvektoren. 2 i =

(LT ui )T (LT ui ) uT Kui i = K T K uT Mui yi yi i

(5.6)

Fr den praktischen Einsatz eignet sich die Vektoriteration in der C++u Implementierung nicht. Sie bentigt schon fr kleine Matrizen uber 100 Mal mehr o u Zeit um die Lsung zu berechnen, als das Verfahren von Lanczos. Die Implementierung o ist nicht optimal, ihre Ezienz knnte sicher noch betrchtlich gesteigert werden. o a

23

Kapitel 6

Verfahren von Lanczos


6.1 Idee

Das eigentliche Verfahren von Lanczos eignet sich um die grssten Eigenwerte eines speo ziellen Eigenwertproblems zu berechnen. Um ein bestimmtes Spektrum von Eigenwerten zu erhalten, bentzt man ein invertiertes, spektralverschobenes Eigenwertproblem. Auf u das allgemeine Eigenwertproblem wird zuerst eine Spektralverschiebung um angewandt.
2 (K M)ui = (i )Mui

(6.1)

Die Reduktion auf ein spezielles Eigenwertproblem geschieht nicht explizit wie in Kapitel 4, sondern implizit im Verfahren von Lanczos. Formal sieht das spezielle spektralverschobene Eigenwertproblem dann folgendermassen aus
2 Cyi = L1 (K M)LT yi = (i )yi M M

(6.2)

wobei LM die Cholesky-Zerlegung von M und yi = LT ui sei. M Ursprnglich sind ja diejenigen Eigenwerte gesucht, die am nchsten zum Wert liegen. u a Diese sind die betragsmssig kleinsten Eigenwerte von C. Da aber die kleinsten Eigenwerte a im vergleich zum gesamten Spektrum von Eigenwerten schlecht voneinander getrennt sind, wrde der Lanczos-Algorithmus nur langsam gegen die gesuchten Werte konvergieren. u Deshalb wird mit der Inversen von C gearbeitet, deren Eigenwerte i = 21 sind. Die i betragskleinen Eigenwerte werden so in betragsgrosse uberfhrt, welche in der Regel gut u getrennt sind (Abb. 6.1). Dies hat eine schnelle Konvergenz des Algorithmus zur Folge.

Abbildung 6.1: Eigenwerte beim inversen Eigenwertproblem ( = 0)

Die Aufgabe dieser Arbeit ist es, die kleinsten Eigenfrequenzen einer Struktur zu bestimmen. Aus diesem Grund betrgt bei der Implementierung der Wert immer Null. a 24

KAPITEL 6. VERFAHREN VON LANCZOS

Es wird also mit einem invertierten, aber nicht spektralverschobenen System gerechnet. Dies hat insbesondere beim Lsen des Gleichungssystems Fu = h im Lanczos-Algorithmus o den Vorteil, dass die Matrix F immer positiv denit, und so das Lsen nach u deutlich o einfacher ist. Um die Allgemeinheit jedoch nicht einzuschrnken, wird im Bericht aber a die Methode mit einer Spektralverschiebung weiterverfolgt. Fr die mathematische Herleitung des Algorithmus, insbesondere der impliziten Reu duktion auf ein spezielles Eigenwertproblem, sei auf Schwarz [4] verwiesen.

6.2

Umsetzung

Abbildung 6.2 zeigt das Flussdiagramm des Verfahren von Lanczos. Die Vektoren h, q, r und u haben dieselbe Ordnung wie die Steigkeits- bzw. Massenmatrix. F kann in dieselbe Hlle wie K oder M geschrieben werden. und sind Skalare. u

K, M, : r0 whlen h0 = Mr0 $0 = (h0Tr0)1/2 F = K-:M qk = rk/$k hk = hk/$k Fuk = hk rk = uk-$kqk-1 "k = hkTrk rk+1 = rk-"kqk ev, evec
evec berechnen vollstndige M-orthogonalisierung von rk+1

++k

hk+1 = Mrk+1 $k+1 = (hk+1Trk+1)1/2

ev
evec berechnen?

ev = eig(T(",$))
ev konvergiert?

Abbildung 6.2: Das Verfahren von Lanczos

25

KAPITEL 6. VERFAHREN VON LANCZOS

Zuerst wird der Startvektor r0 beliebig gewhlt. Mittels Multiplikation mit der a 2 Massenmatrix wird damit h0 berechnet. Das Skalarprodukt von r0 und h0 ergibt 0 . Die Matrix F kann an der Stelle von K aufgebaut werden, da die Steigkeitsmatrix im und nach dem Lanczos-Algorithmus nicht mehr bentigt wird. Ohne Spektraltransformation o sind F und K ohnehin identisch. Um das Gleichungssystem Fu = h im dritten Schritt der Iteration mglichst ezio ent Lsen zu knnen, ist eine Zerlegung der Matrix F notwendig. Diese geschieht am o o besten gleich vor der ersten Iteration. Wie in Abschnitt 6.1 bereits erwhnt, ist F ohne a Spektralverschiebung immer positiv denit. Die Matrix F kann direkt zerlegt und in dieselbe Hlle geschrieben werden, weil sie nur zum Lsen des Gleichungssystems bentigt wird. u o o Mit skyline solve() existiert bereits eine eziente Funktion in FELyX, um die Zerlegung und die anschliessende Rcksubstition zur Lsung eines Gleichungssystems u o vorzunehmen. Da die rechenaufwndige Zerlegung nur einmal, die Rcksubstition aber in a u jedem Iterationsschritt gebraucht wird, wird der Algorithmus zur Rcksubstition in die u neue Funktion backsubstitution() geschrieben. Bei einer Spektralverschiebung ist F in der Regel nicht positiv denit. Bei der Zerlegung msste anders vorgegangen werden. F msste in einer erweiterten Hlle von K u u u aufgebaut werden, die pro Zeile zwei Eintrge mehr aufnehmen knnte [4]. a o
1 Beim eigentlichen Lanczos-Schritt werden zuerst die Vektoren r bzw. h mit skaliert und in den Vektor q bzw. wieder in h geschrieben. Dann wird das Gleichungssystem Fu = h, wie bereits erwhnt, mit der Funktion backsubstitution() gelst. Im ersten a o Lanczos-Schritt wird r gleich u gesetzt und in jedem folgenden dann gleich u minus dem mit skalierten Vektor q aus dem vorhergehenden Lanczos-Schritt. Aus dem Skalarprodukt der Vektoren h und r ergibt sich und damit ein neuer Vektor r, indem der mit skalierte Vektor q von r subtrahiert wird.

qk sind die Basisvektoren des Krylov-Unterraums. Mit zunehmender Schrittzahl k geht ihre Orthogonalitt verloren, so dass sie schliesslich linear abhngig werden und a a man nicht mehr von einer Basis sprechen kann. Dies fhrt dazu, dass mehrfache Kopien u von Eigenpaaren berechnet werden. Der Lanczos-Algorithmus galt deshalb lange Zeit als instabil und nicht brauchbar. Die Orthogonalitt der Basisvektoren qk kann aber a durch eine vollstndige Orthogonalisierung bezglich aller vorangehenden Vektoren q a u numerisch erzwungen werden. Die Vektoren qk mssen also in jedem Lanczos-Schritt u gespeichert werden. Sie werden in die kte Spalte der (m n)-Matrix Q geschrieben, wobei m der Ordnung von q entspricht und n die zu Beginn festzulegende maximale Anzahl der Lanczos-Schritte ist. Die vollstndige Orthogonalisierung bezglich M ist in Gleichung a u 6.3 dargestellt.

r = r Q(QT (Mr))

(6.3)

Nach erfolgter Orthogonalisierung wird M mit r multipliziert und so ein neuer Vektor h erzeugt. 2 ergibt sich dann als Skalarprodukt von h und r. 26

KAPITEL 6. VERFAHREN VON LANCZOS

6.3

Bisektionsmethode

Die skalaren Werte k und k werden in eine mit jedem Lanczos-Schritt wachsende Matrix T geschrieben. 1 1 1 2 2 2 3 3 T= (6.4) 3 4 4 .. .. .. . . . Die gesuchten grssten Eigenwerte der Matrix C (Gl. 6.2) entsprechen den Eigenwero ten der Matrix T. Diese ist mit der Ordnung k relativ klein und ausserdem tridiagonal. Dies erlaubt ein ezientes Berechnen ihrer Eigenwerte mit der Bisektionsmethode. Zuerst wird eine untere und obere Schranke a und b fr das Spektrum der Eigenwerte u festgelegt (Abb. 6.3). Fr die obere Schranke eignet sich eine beliebige Matrixnorm, in u der Implementierung die Zeilenmaximumnorm. Die untere Schranke ist im allgemeinen Fall a = b. Ohne Spektralverschiebung kann Null als untere Schranke angenommen werden, da dann sicher keine Eigenwerte von C negativ sind.

Abbildung 6.3: Bisektionsmethode

In jedem Bisektionsschritt wird die Folge [q1 , q2 , q3 , ..., qk ] rekursiv deniert nach der Rekursionsvorschrift 6.5. q1 = 1 qj = ( j )
2 j1

(6.5) qj1

mit j = 2, 3, ..., k. Falls ein q Null werden sollte, wird es gleich minus der kleinsten Maschinenzahl (Maschinen-Epsilon) gesetzt, damit keine Division durch Null auftritt [4]. Die Anzahl Elemente der Folge mit negativem Vorzeichen ist gleich der Anzahl Eigenwerte, die grsser als der Wert sind. o Damit lsst sich nun jeder Eigenwert beliebig genau lokalisieren. Zur Illustration des a Vorgehens dient das Beispiel in Abbildung 6.3. Es sei der grsste Eigenwert gesucht. Zu o a+b Beginn wird 1 = 2 gesetzt. Die Folge 6.5 wird berechnet, woraus sich ergibt, dass drei Eigenwerte grsser als 1 sind. 1 wird zur neuen unteren Schranke a und 2 = a+b o 2 wird berechnet. Die Folge sagt aus, dass noch ein Eigenwert grsser als 2 ist. 2 wird o neue untere Schranke a. Oberhalb von 3 liegt kein Eigenwert mehr, so dass die obere Schranke b auf 3 gesetzt wird. Und so weiter. Ungleichung 6.6 beschreibt die Anzahl ntiger Bisektionsschritte t, um eine absolute o Genauigkeit zu erreichen. ba t log2 1 (6.6) 27

KAPITEL 6. VERFAHREN VON LANCZOS

Ein Matlab-Programm zur Bisektionsmethode ndet sich in Anhang B.

6.4

Konvergenz und Eigenpaare

Mit jedem Lanczos-Schritt, das heisst mit grsser werdender Matrix T approximieren die o ermittelten Eigenwerte von T die grssten Eigenwerte von C besser (Abb. 6.4). In der Imo plementation gilt als Konvergenzkriterium die relative Anderung eines Eigenvektors von einem zum nchsten Lanczos-Schritt. Fllt diese relative Anderung bei allen gesuchten a a Eigenvektoren unter einen bestimmten Wert tol, wird das Verfahren von Lanczos abgebrochen. Es macht natrlich erst Sinn die Eigenwerte von T zu berechnen, wenn die Ordnung u der Matrix grsser oder gleich der Anzahl gesuchter Eigenwerte ist. o

Abbildung 6.4: Konvergenz der Eigenwerte

Da ja ein inverses und eventuell spektralverschobenes Eigenwertproblem behandelt worden ist (Abschn. 6.1), mssen die konvergierten Eigenwerte i von C auf die uru 2 sprnglich gesuchten Eigenwerte i mittels Gleichung 6.7 zurcktransformiert werden. u u
2 i =

1
i

(6.7)

Die erhaltenen Eigenwerte i sind schliesslich noch durch 2 zu dividieren, um die gesuchten Eigenfrequenzen der Struktur in Hertz zu erhalten. i fi = (6.8) 2 Fr die Berechnung der Eigenvektoren, die erst am Schluss erfolgt und kaum Zeit u beansprucht, werden nur die Matrizen Q und T bentigt. Der Algorithmus dazu stammt o aus einem Fortran-Programm [5] und ist in C++ ubersetzt worden.

6.5

Probleme, Block-Lanczos

Das Problem von mehrfachen Kopien einzelner Eigenpaar ist durch die vollstndige a Orthogonalisierung eliminiert worden. Dabei wird die Matrix Q mit smtlichen je berecha 28

KAPITEL 6. VERFAHREN VON LANCZOS

neten Vektoren q bentzt. Um die Ezienz noch etwas zu steigern, knnte die selektive u o Orthogonalisierung angewendet werden, welche aber schwieriger zu implementieren ist. Es kann im Verfahren von Lanczos gelegentlich vorkommen, dass Eigenwerte ausgelassen werden. Dies ist bei Testberechnungen nur einmal geschehen. Bei felyx-solid186-200.ansys wird der 18. Eigenwert ausgelassen (Tab. 6.1). Die Werte LANB sind mit der Block-Lanczos-Methode von Ansys6.0 berechnet worden. Die Vollstndigkeit des Eigenwertspektrums msste nachtrglich mittels erneuter Rechnung a u a und geeignet gewlter Spektralverschiebung um uberprft werden [4]. a u Ein aulligeres Problem ist, dass der Lanczos-Algorithmus grundstzlich nicht fhig a a a ist, mehrfache Eigenwerte zu bestimmen, weil die tridiagonale Matrix T nur paarweise verschiedene Eigenwerte haben kann. Bei den Testberechnungen ist dies jedoch nicht oft aufgetreten. Bei der oben erwhnten Struktur werden zwei doppelte Eigenwerte nur a einfach berechnet. Nr. 1 2 3 4 5 6 7 8 9 10 LANB 20.835 20.835 129.61 129.61 358.77 358.77 460.77 691.75 691.75 806.22 FELyX 20.835 20.835 129.61 129.61 358.77 358.77 460.77 691.75 691.75 806.22 Nr. 11 12 13 14 15 16 17 18 19 LANB 1120.8 1120.8 1382.3 1635.6 1635.6 2225.9 2225.9 2303.8 2303.8 FELyX 1120.8 1120.8 1382.3 1635.6 2225.9

Tabelle 6.1: Tiefste 19 Eigenwerte von felyx-solid186-200.ansys mit = 2.7e-6

Der Grund, warum die meisten mehrfachen Eigenwerte auch als mehrfache berechnet werden, sind wohl numerische Ungenauheiten. Bei der Berechnung eines doppelten Eigenwerts werden wohl kaum zwei genau gleiche Eigenwerte resultieren, sondern sie werden sich ein wenig unterscheiden. Sei es aus Grnden von kleinen Fehlern, die schon beim u Meshen entstehen, oder aus Rundungsfehlern irgendwo im ganzen Rechengang. Hier hat das Rechnen mit approximierten Werten fr einmal einen Vorteil. u Um mehrfache Eigenwerte sicher berechnen zu knnen, ist das Block-Lanczoso Verfahren entwickelt worden [3]. Die Matrix T ist dabei nur blockweise tridiagonal. Die Eigenwerte knnen nicht mehr mit der Bisektionsmethode bestimmt werden, es muss zum o Beispiel die Methode der Vektoriteration (Kap. 5) angewendet werden.

29

Kapitel 7

Testresultate
Das Aufstellen der Massenmatrizen der verschiedenen Elementtypen sowie das programmierte Verfahren von Lanczos bedrfen einer Verikation. Dafr werden die tiefsten zehn u u Eigenfrequenzen der Strukturen in den Testles von FELyX berechnet. Es muss jeweils noch die Dichte des Materials bestimmt werden, die fr die statische Berechnung nicht u ntig ist. o In den folgenden Abschnitten ist jeweils angegeben, wie lange die Berechnung mit den Eigensolvern Subspace (SUBSP) und Block-Lanczos (LANB) von Ansys6.0 sowie mit FELyX auf einem SunBlade100, 450 MHz dauert. Die Zeit bezieht sich nur auf das Lsen o des Eigenwertproblems nach Eigenwerten und Eigenvektoren. Die Zeiten t fr SUBSP und LANB werden folgendermassen berechnet. u t = (c2 c1 ) w c (7.1)

wobei c1 bzw. c2 die CPU-Zeiten vor bzw. nach dem Lsen des Eigenwertproblems beo deuten. c ist die CPU-Zeit und w die tatschlich verstrichene Zeit fr die gesamte a u Berechnung.

7.1

Link8

Spezikationen fr felyx-link8-21.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 18 2.7e-6 0.03

30

KAPITEL 7. TESTRESULTATE

Abbildung 7.1: felyx-link8-21.ansys

Nr. 1 2 3 4 5

LANB 41.914 56.474 78.768 134.39 166.86

FELyX 41.9143 56.4743 78.7680 134.387 166.862

Nr. 6 7 8 9 10

LANB 194.14 270.32 431.48 437.00 492.41

FELyX 194.144 270.317 431.475 436.995 492.408

Tabelle 7.1: Tiefste zehn Eigenfrequenzen fr felyx-link8-21.ansys u

7.2

Beam3

Spezikationen fr felyx-beam3-800.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 2387 2.7e-6 3.1 2.2 1.3

Abbildung 7.2: felyx-beam3-800.ansys

Nr. 1 2 3 4 5

LANB 46.5030 50.4121 120.891 124.722 149.600

FELyX 46.5030 50.4121 120.891 124.722 149.600

Nr. 6 7 8 9 10

LANB 151.928 174.278 188.651 245.948 272.512

FELyX 151.928 174.278 188.651 245.948 272.512

Tabelle 7.2: Tiefste zehn Eigenfrequenzen fr felyx-beam3-800.ansys u

31

KAPITEL 7. TESTRESULTATE

7.3

Beam4

Spezikationen fr felyx-beam4-50.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 3558 0.0027 10.1 5.1 2.4

Abbildung 7.3: felyx-beam4-50.ansys

Nr. 1 2 3 4 5

LANB 0.207801 0.225336 0.243170 0.247151 0.350692

FELyX 0.207801 0.225336 0.243170 0.247151 0.350692

Nr. 6 7 8 9 10

LANB 0.370772 0.383465 0.448966 0.460388 0.475614

FELyX 0.370772 0.383465 0.448966 0.460388 0.475614

Tabelle 7.3: Tiefste zehn Eigenfrequenzen fr felyx-beam4-50.ansys u

7.4

Plane2

Spezikationen fr felyx-plane2-6654.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 27196 0.0027 82.9 79.6 56.2

32

KAPITEL 7. TESTRESULTATE

Abbildung 7.4: felyx-plane2-6654.ansys

Nr. 1 2 3 4 5

LANB 1.6225 7.3227 9.5692 18.453 25.681

FELyX 1.6225 7.3227 9.5692 18.453 25.681

Nr. 6 7 8 9 10

LANB 26.422 43.945 52.061 52.078 53.736

FELyX 26.422 43.945 52.061 52.078 53.736

Tabelle 7.4: Tiefste zehn Eigenfrequenzen fr felyx-plane2-6654.ansys u

7.5

Plane182

Spezikationen fr felyx-plane182-bwopt-4731.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 9996 0.0027 13.1 19.1 7.6

Abbildung 7.5: felyx-plane182-bwopt-4731.ansys

Nr. 1 2 3 4 5

LANB 0.228951 1.43920 3.94614 4.45516 7.43561

FELyX 0.228951 1.43920 3.94614 4.45516 7.43561

Nr. 6 7 8 9 10

LANB 11.6738 13.5148 16.4226 21.4727 22.8690

FELyX 11.6738 13.5148 16.4226 21.4727 22.8690

Tabelle 7.5: Tiefste zehn Eigenfrequenzen fr felyx-plane182-bwopt-4731.ansys u

33

KAPITEL 7. TESTRESULTATE

7.6

Plane183

Spezikationen fr felyx-plane183-2500.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 15398 0.0027 80.4 45.3 45.7

Abbildung 7.6: felyx-plane183-2500.ansys

Nr. 1 2 3 4 5

LANB 1.63086 7.41467 9.38726 18.3010 27.8620

FELyX 1.63086 7.41468 9.38726 18.3011 27.8621

Nr. 6 7 8 9 10

LANB 29.0269 43.2297 50.8702 53.3324 63.0181

FELyX 29.0273 43.2301 50.8703 53.3327 63.0187

Tabelle 7.6: Tiefste zehn Eigenfrequenzen fr felyx-plane183-2500.ansys u

7.7

Solid185

Spezikationen fr felyx-solid185-200.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 1350 0.0027 2.20 1.52 1.14

Abbildung 7.7: felyx-solid185-200.ansys

34

KAPITEL 7. TESTRESULTATE

Nr. 1 2 3 4 5

LANB 0.663850 0.663850 4.13633 4.13633 11.4807

FELyX 0.663850 0.663850 4.13633 4.13633 11.4807

Nr. 6 7 8 9 10

LANB 11.4807 15.7895 22.2247 22.2247 25.4991

FELyX 11.4807 15.7895 22.2247 22.2247 25.4991

Tabelle 7.7: Tiefste zehn Eigenfrequenzen fr felyx-solid185-200.ansys u

7.8

Solid186

Spezikationen fr felyx-solid186-200.ansys: u Freiheitsgrade SUBSP [s] LANB [s] FELyX [s] 4500 2.7e-6 10.2 13.9 6.8

Abbildung 7.8: felyx-solid186-200.ansys

Nr. 1 2 3 4 5

LANB 20.8345 20.8345 129.615 129.615 358.773

FELyX 20.8345 20.8345 129.615 129.615 358.773

Nr. 6 7 8 9 10

LANB 358.773 460.774 691.746 691.746 806.219

FELyX 358.773 460.774 691.747 691.747 806.219

Tabelle 7.8: Tiefste zehn Eigenfrequenzen fr felyx-solid186-200.ansys u

7.9

Solid187

Spezikationen fr felyx-solid187-1453.ansys: u

Freiheitsgrade SUBSP [s] LANB [s] FELyX [s]

8037 0.0027 36.4 33.8 33.0

35

KAPITEL 7. TESTRESULTATE

Abbildung 7.9: felyx-solid187-1453.ansys

Nr. 1 2 3 4 5

LANB 0.779944 1.71854 4.03810 4.87118 7.35133

FELyX 0.779944 1.71854 4.03810 4.87118 7.35133

Nr. 6 7 8 9 10

LANB 11.6794 12.8275 14.9571 20.4464 22.9424

FELyX 11.6794 12.8275 14.9571 20.4464 22.9424

Tabelle 7.9: Tiefste zehn Eigenfrequenzen fr felyx-solid186-200.ansys u

7.10

2D-Mix

Spezikationen fr felyx-2d-mixed-316.ansys: u Freiheitsgrade 1 2 SUBSP [s] LANB [s] FELyX [s] 1391 2.7e-6 8e-6 1.7 2.0 1.0

Abbildung 7.10: felyx-2d-mixed-316.ansys

Nr. 1 2 3 4 5

LANB 29.2206 34.4458 124.241 161.142 187.543

FELyX 29.2206 34.4458 124.241 161.143 187.544

Nr. 6 7 8 9 10

LANB 217.154 223.287 268.475 361.223 381.241

FELyX 217.155 223.287 268.476 361.237 381.241

Tabelle 7.10: Tiefste zehn Eigenfrequenzen fr felyx-2d-mixed-316.ansys u

36

KAPITEL 7. TESTRESULTATE

7.11

3D-Mix

Spezikationen fr felyx-3d-mixed-718.ansys: u Freiheitsgrade 1 2 SUBSP [s] LANB [s] FELyX [s] 6796 2.7e-6 8e-6 27.7 25.5 16.5

Abbildung 7.11: felyx-3d-mixed-718.ansys

Nr. 1 2 3 4 5

LANB 2.18296 6.01187 6.22682 10.9747 14.4605

FELyX 2.18295 6.01289 6.22696 10.9785 14.4558

Nr. 6 7 8 9 10

LANB 16.9298 17.5030 31.4392 33.7892 39.6353

FELyX 16.9299 17.5012 31.4397 33.7893 39.6356

Tabelle 7.11: Tiefste zehn Eigenfrequenzen fr felyx-3d-mixed-718.ansys u

37

KAPITEL 7. TESTRESULTATE

7.12

Eigenvektoren

Die berechneten Eigenvektoren zu verizieren gestaltet sich etwas umstndlich. Das a Beispiel aus Kapitel 2 wird mit 16 Elementen berechnet. Dies fhrt auf 48 Freiheitsgrade, u also auch auf Eigenvektoren der Dimension 48. In Anhang C sind die berechneten Eigenvektoren dargestellt. Die extremalen Verschiebungen in horizontale Richtung sind sehr klein, jene in vertikale Richtung sind in Abbildung 7.12 dargestellt. Vergleicht man die entsprechenden Eintrge in den Vektoren a mit den berechneten Eigenvektoren in Gleichung 2.14 erkennt man nach entsprechender Skalierung Ubereinstimmung.

Abbildung 7.12: Erste vier Eigenformen des einseitig eingespannten Balken aus Kapitel 2

38

Kapitel 8

Benchmarking
8.1 Allgemeines

Zum Bestimmen der Ezienz des erstellten Eigensolvers wird ein Modell sowohl mit FELyX wie auch mit Ansys6.0 gerechnet. Als Testmodell dient die in der y-z-Ebene eingespannte Struktur in Abbildung 8.1 mit Solid187 Elementen. Alle mit FELyX errechneten Eigenfrequenzen stimmen exakt mit den Werten von Ansys6.0 uberein. In der Rechenzeit auf einem SunBlade100, 450 MHz gibt es aber Unterschiede.

Abbildung 8.1: Testmodell

8.2

Anzahl Freiheitsgrade

In Tabelle 8.1 sind die Rechenzeiten zusammengefasst, um die Steigkeits- und Massenamtrizen zu generieren und die tiefsten sechs Eigenfrequenzen und ihre Eigenvektoren der Struktur in Abbildung 8.1 zu berechnen. Elemente 311 833 1900 5408 9373 12577 Freiheitsgrade 2487 6165 12804 31584 50043 65547 SUBSP 4 11 25 80 192 291 LANB 5 15 34 111 313 509 FELyX 3.0 8.2 23.4 92.9 206.9 295.6

Tabelle 8.1: Vergleich der gesamten Rechenzeiten

39

KAPITEL 8. BENCHMARKING

Abbildung 8.2: Vergleich der gesamten Rechenzeiten nach Anzahl Freiheitsgraden

8.3

Anzahl Eigenfrequenzen

Als Testmodell dient wieder die Struktur in Abbildung 8.1 mit 5408 Solid187 Elementen, das heisst 31584 Freiheitsgraden. In Tabelle 8.2 sind die Rechenzeiten zusammengefasst, um die Steigkeits- und Massenamtrizen zu generieren und die tiefsten n Eigenfrequenzen und ihre Eigenvektoren zu berechnen. n 1 3 5 7 9 11 15 19 SUBSP 86 84 83 92 96 126 160 142 LANB 95 126 107 117 134 137 152 153 FELyX 72 82 88 97 104 119 144 142

Tabelle 8.2: Vergleich der gesamten Rechenzeiten

Abbildung 8.3: Vergleich der gesamten Rechenzeiten nach Anzahl Eigenwerten

40

Kapitel 9

Schlussbemerkungen
9.1 Dmpfungsmatrix C a

Bei der Berechnung von Eigenfrequenzen und Eigenschwingungsformen wird von idealen Strukturen ohne Dmpfung ausgegangen. In der Realitt tritt jedoch immer Dmpfung a a a auf, so dass eine Schwingung ohne ussere Anregung mit der Zeit abklingt (Abschn. 1.1). a Dmpfung bewirkt, dass die Eigenfrequenzen in Wirklichkeit tiefer liegen als die im a idealisierten Modell berechneten. Der Einuss der Dmpfung auf die Eigenfrequenzen a ist jedoch gering, dass diese in der Rechnung vernachlssigt werden darf [2]. Von der a Dmpfung verursachte Krfte sind in der Regel nur etwa 10 % so stark wie die anderen a a dynamischen Krfte. Zur Bestimmung von Antworten eines Systems auf dynamische a a u a u ussere Einsse muss die Dmpfung jedoch bercksichtigt werden. Die Dmpfungsmatrix wird gleich wie die Massenmatrix aus den Elementmatrizen a generiert. Die Elementdmpfungsmatrix wird analog zur Elementmassenmatrix (Gl. 3.14) a auntegriert.
k

c=
i=1

wi c det(Ji ) NT N

(9.1)

wobei c der Dmpfungskoezient des Elements ist. a

9.2

Lumped Mass Matrix

Um die Eigenwertberechnung etwas zu vereinfachen, knnte anstatt der Elementmasseno matrizen in Kapitel 3 die Lumped Mass Matrices angewendet werden. Das Ziel besteht darin, in den Elementmassematrizen nur Eintrge auf der Diagonalen zu haben. Dies a geschieht so, dass nur die Eintrge auf der Diagonalen gemss Kapitel 3 berechnet und a a dann so skaliert werden, dass die Elementmasse erhalten wird. Fr mehr Details sei auf u [2] verwiesen. Als weitere Variante existiert Optimal Lumping. Bei der Verwendung dieser Methoden wird die Rechenzeit etwas krzer auf Kosten der Genauigkeit der Resultate. u

9.3

Simultane Generierung von K und M

Bei Vergleichen der Rechengeschwindigkeit von FELyX mit Ansys6.0 fllt auf, dass die a Generierung der globalen Steigkeits- und Massenmatrix bei FELyX mehr als doppelt 41

KAPITEL 9. SCHLUSSBEMERKUNGEN

so lange dauert als bei Ansys6.0. Bei FELyX werden die beiden Matrizen nacheinander aufgebaut, was zu Doppelspurigkeiten fhrt. Die Jacobi-Matrix J muss fr jedes Element u u zweimal berechnet werden. Hier liesse sich Zeit sparen, wenn K und M simultan generiert wrden. u Um statische Probleme zu lsen ist die Massenmatrix nicht ntig. Ihre Generierung o o muss sicher vermieden werden. Das ist bei der aufeinanderfolgenden Generierung einfach. Bei der simultanen Generierung muss jedoch tiefer im Code etwas verndert werden. a

9.4

Ziel

Das Ziel der Arbeit ist, einen ezienten Algorithmus zur Eigenfrequenz- und Eigenschwingungsformberechnung in FELyX zu implementieren. Vom Standpunkt der Ezienz ist das Ziel erreicht. Der implementierte Lanczos-Algorithmus kann mit kommerziellen Anwendungen mithalten. Es knnen nur die tiefsten Eigenpaare ermittelt werden. Eio ne Berechnung der Eigenpaare irgendwo im Spektrum ist aber ausdrcklich nicht verlangt. u Vom Standpunkt der Zuverlssigkeit gibt es noch kleine Makel. Es kann gelegentlich a vorkommen, dass Eigenpaare ausgelassen werden (Abschn. 6.5). Bei Tests geschieht das aber selten, und wenn, dann nicht bei den tiefsten zehn Eigenwerten. Gefordert ist, dass die tiefsten etwa zehn Eigenpaare berechnet werden knnen. Der Algorithmus ist also o sicher gut fr den alltglichen Einsatz brauchbar. u a

9.5

Matlab

Die Implementierung eines Rechenalgorithmus direkt in C++ ist schwierig, weil dabei ein kleiner Fehler zu falschen Ergebnissen oder zum Abbruch der Berechnung fhrt. Als u hilfreiche Anwendung hat sich dabei Matlab erwiesen, als Zwischenschritt zwischen dem Flowchart auf Papier und der Implementierung in C++. Weil Matlab eine hohe Programmiersprache ist, knnen Algorithmen unkompliziert auf wenigen Zeilen programmiert o werden (Anh. A, B). Sobald der Rechenablauf einwandfrei funktioniert, kann mit der Implementation in C++ begonnen werden. Falls dabei schliesslich falsche Ergebnisse resultieren, knnen mit Matlab Schritt fr Schritt die Zwischenergebnisse kontrolliert und so o u der Fehler lokalisiert werden. Dieses Vorgehen hat sich bewhrt und als ezient erwiesen. a

9.6

To do

Um die Arbeit zu kompletisieren und optimieren, knnten folgende Aufgaben erledigt o werden:
Massenmatrix der Shell-Elemente. Whrend dem Verlauf der Arbeit sind die a Shell-Klassen noch in Bearbeitung. Die Generierung der Massenmatrix wird nicht implementiert. Block-Lanczos-Verfahren. Um auch mehrfache Eigenwerte sicher darzustellen, kann die Block-Lanczos-Methode [3] implementiert werden (Abschn. 6.5). Spektralverschiebung. Um auch Eigenpaare an einer bestimmten Stelle im ganzen Spektrum ermitteln zu knnen, kann die Spektralverschiebung des Eigenwerto

42

KAPITEL 9. SCHLUSSBEMERKUNGEN

problems um implementiert werden. Dabei ist ein anderer Zerlegungsalgorithmus fr die Matrix F zu whlen, da diese nicht mehr positiv denit ist (Abschn. 6.1). u a

43

Literaturverzeichnis
[1] Z. Bai, J. Demmel, J. Dongarra, A. Ruhe, H. van der Vorst: Templates for the Solution of Algebraic Eigenvalue Problems, Siam, 2000 [2] R. Cook, D. Marlkus, M. Plesha, R. Witt: Concepts and Applications of Finite Element Analysis, Wiley, 2002 [3] R. Grimes, J. Lewis, H. Simon: A Shifted Block Lanczos Algorithm for Solving Sparse Symmetric Generalized Eigenproblems, Journal on Matrix Analysis and Applications, Vol. 15, 1994 [4] H.R. Schwarz: Methode der niten Elemente, Teubner, 1991 [5] H.R. Schwarz: FORTRAN-Programme zur Methode der niten Elemente, Teubner, 1991 [6] G.W. Stewart: Matrix Algorithms, Volume II, Siam, 2001 [7] T. Yokoyama: Vibrations of a Hanging Timoshenko Beam Under Gravity, Journal of Sound and Vibration, Vol. 141, 1990 [8] O.C. Zienkiewicz, R.L. Taylor: The Finite Element Method, Butterworth, Heinemann, 2000 [9] Ansys Theory Reference, www1.ansys.com/customer/content/documentation/60/theory toc.html [10] T. Irvine: The Tacoma Narrows Bridge Failure, www.vibrationdata.com/Tacoma.htm [11] P. Dayal, M. Troyer: The Iterative Eigenproblem Template library, www.comp-phys.org/software/ietl/ietl.html, 2002 [12] M. Ramek: Mathematik Tutorial: Das Jacobi-Verfahren, fptchal1.tu-graz.ac.at:8000/quanten/mjacobi.html, 2002

44

Anhang A

Matlab: Simultane Vektoriteration


Programmcode fr die simultane Vektoriteration (Kap. 5). u function % A, B: % p: % loops: [ev] = iteration(A,B,p,loops) Matrizen der allgemeinen Eigenwertaufgabe Anzahl Eigenwerte Anzahl Iterationen

[m,n]=size(A); LAT = chol(A); LA = LAT; LBT = chol(B); LB = LBT; Y=zeros(n,p); H1=zeros(n,p); H2=zeros(n,p); H3=zeros(n,p); for i=1:p Y(i,i)=1; end for k=1:loops H1=LB*Y; H2=LA^(-1)*H1; H3=LAT^(-1)*H2; Z=LBT*H3; [Q,R]=qr(Z); C1=R*R; G=orth(C1); D=G*C1*G; Y=Q*G; 45

ANHANG A. MATLAB: SIMULTANE VEKTORITERATION

end for j=1:p x=LBT^(-1)*Y(:,j); ev(j)=sqrt((x*A*x)/(x*B*x)); end

Programmcode fr die Orthogonalisierung (Abschn. 5.3). u function [U] = or2(C,loops) % C: zu orthogonalisierende Matrix % loops: Anzahl Iterationen [m,n]=size(C); U=eye(m); for k=1:loops temp=0; for j=1:m for i=1:j-1 if (abs(C(j,i))>temp) temp=abs(C(j,i)); jj=j; ii=i; end end end temp=2*C(jj,ii) / (C(jj,jj) - C(ii,ii)) alpha=.5*atan (temp) V=eye(m); V(ii,ii)=cos(alpha); V(jj,jj)=cos(alpha); V(jj,ii)=-sin(alpha); V(ii,jj)=sin(alpha); C=(V*C)*V; U=U*V; end

46

Anhang B

Matlab: Verfahren von Lanczos


Programmcode fr das Verfahren von Lanczos (Kap. 6). u function [d,x] = lanczos(A,B,nev,mu,jmax) % A, B: Matrizen des allgemeinen Eigenwertproblems % nev: Anzahl der zu bestimmenden Eigenpaare % mu: Spektralverschiebung % jmax: maximale Anzahl Lanczos-Schritte % d, x: Eigenwerte bzw. -vektoren [m,n]=size(A); r=rand(m,1); h=B*r; beta(1)=sqrt(h*r); q=zeros(m,1); tolconv=0.000000000000000000001; for j=1:jmax q(:,j)=r/beta(j); h=h/beta(j); u=(A-mu*B)^(-1)*h; % Loesen des Gleichungssystems if j>1, r=u-beta(j)*q(:,j-1); else r=u; end; alpha(j)=r*h; r=r-alpha(j)*q(:,j); r=r-q*(q*(B*r)); % Orthogonalisierung h=B*r; beta(j+1)=sqrt(r*h); T= diag(alpha)+diag(beta(2:j),1)+diag(beta(2:j),-1); bndv=abs(beta(j+1)*s(j,:)); % Konvergenztest anorm=max(abs(diag(d))); convd=bndv<tolconv*anorm; nconv=sum(convd); if nconv>=nev , break; end; end d=ewerte(T,nev); % d: Eigenwerte 47

ANHANG B. MATLAB: VERFAHREN VON LANCZOS

[ll,n]=size(d); % Berechnung der Eigenvektoren for j=1:n a(j,1)=mu+1/d(j); for i=1:jmax-1 al(i)=alpha(i)-d(j); be(i)=beta(i+1); ga(i)=beta(i+1); end; al(jmax)=alpha(jmax)-d(j); be(jmax)=0; for i=1:jmax-1 s1=abs(al(i))+abs(be(i)); s2=abs(ga(i))+abs(al(i+1))+abs(be(i+1)); if(abs(al(i))/s1 >= abs(ga(i))/s2) de(i)=0; uu=ga(i); u1=al(i+1); u2=be(i+1); vert(i)=0; else uu=al(i); u1=be(i); u2=0; al(i)=ga(i); be(i)=al(i+1); de(i)=be(i+1); vert(i)=1; end; ga(i)=uu/al(i); al(i+1)=u1-ga(i)*be(i); be(i+1)=u2-ga(i)*de(i); end; for i=1:jmax v1(i)=1; v(i)=0; end; iter=0; dif=1; while (dif >= 1e-8) v1(jmax)=-v1(jmax)/al(jmax); s=v1(jmax); v1(jmax-1)=-(v1(jmax-1)+be(jmax-1)*v1(jmax))/al(jmax-1); if (abs(v1(jmax-1))>abs(s)) s=v1(jmax-1); end; for i=jmax-2:-1:1 v1(i)=-(v1(i)+be(i)*v1(i+1)+de(i)*v1(i+2))/al(i); if(abs(v1(i))>abs(s)) s=v1(i); end; end; zz(:,iter+1)=v1; dif=0; vn=0; for i=1:jmax aux=v(i); v(i)=v1(i)/s; v1(i)=v(i); vn=vn+v(i)^2; 48

ANHANG B. MATLAB: VERFAHREN VON LANCZOS

dif=max(dif,abs(aux-v(i))); end; if (dif >= 1e-8) if (iter>4) fprintf(keine konvergenz! end; for i=1:jmax-1 if (vert(i)==0) uu=v1(i+1); else uu=v1(i); v1(i)=v1(i+1); end; v1(i+1)=uu-ga(i)*v1(i); end; iter=iter+1; end; end; vn=sqrt(vn); v=v/vn; for i=1:m s=0; for l=1:jmax s=s+v(l)*q(i,l); end; x(i,j)=s; end; rhoj=beta(jmax+1)*abs(v(jmax)); end;

);

break;

Programmcode fr die Bisektionsmethode (Abschn. 6.3). u function [ev] = ewerte(T,nev) % T: T-Matrix (tridiagonal) % nev: Anzahl der gewuenschten Eigenwerte [m,n]=size(T); for i=1:n zeile(i)=sum(T(i,:)); end; b=max(zeile); a=-b; for nrev=1:nev an=a; bn=b; for k=1:50 mu=(an+bn)/2; q(1)=mu-T(1,1); if q(1)==0, q(k)=-eps; end; for k=2:n q(k)=(mu-T(k,k))-T(k-1,k)^2/q(k-1); 49

ANHANG B. MATLAB: VERFAHREN VON LANCZOS

if q(k)==0, q(k)=-eps; end; end; vf=0; for k=1:n if q(k)<0, vf=vf+1; end; end; if vf>=nrev, an=mu; else bn=mu; end; end; ev(nrev)=(an+bn)/2; b=bn; end;

50

Anhang C

Eigenvektorberechnung
Mit FELyX berechnete Eigenvektoren zu den tiefsten vier Eigenwerten der Aufgabe in Kapitel 2 mit 16 Beam3-Elementen. 2.0024e17 5.9001e16 4.0367e13 1.1547e08
0.0032092 0.018641 0.048488 0.087607 0.35014 0.59783 0.025294 0.14088 1.2918e18 5.6318e16 7.4874e14 2.1468e09 0.012458 0.066338 0.15653 0.24977 0.048316 0.23256 0.47848 0.61015 6.7996e18 5.9877e16 1.2164e13 3.4767e09 0.027178 0.13092 0.27115 0.35606 0.069071 0.27629 0.40879 0.18742 3.9399e18 6.016e16 2.2223e13 6.3666e09 0.046805 0.20072 0.3485 0.32964 0.087574 0.27498 0.19076 0.4 1.0081e17 5.0841e16 2.5562e13 7.3456e09 0.07078 0.26506 0.36013 0.16809 0.10385 0.23357 0.10364 0.84602 1.143e17 6.322e16 2.4557e13 7.0522e09 0.09855 0.31473 0.29719 0.062555 0.11795 0.15893 0.39209 0.92846 9.0832e18 5.1654e16 2.0708e13 5.9716e09 0.12958 0.34247 0.17101 0.26135 0.12994 0.059674 0.59822 0.60022 1.9854e17 5.5937e16 1.5458e13 4.4648e09 0.34333 0.0095698 0.34013 0.16335 0.13989 0.054473 0.66764 0.0059066 1.6207e17 6.3173e16 9.6541e14 2.7922e09 0.19936 0.31484 0.14956 0.26451 0.14793 0.17335 0.57937 0.58596 1.988e18 5.3898e16 3.8435e14 1.1358e09 0.25708 0.26824 0.070202 0.23716 0.15418 0.2872 0.34968 0.90545 1.615e18 6.0846e16 1.4069e14 3.8254e10 0.27632 0.17238 0.31661 0.15252 0.15882 0.38755 0.027107 0.80314 1.0581e17 5.9385e16 5.939e14 1.6855e09 0.31645 0.064965 0.27971 0.2988 0.46804 0.32039 0.3158 0.16203 6.4072e18 5.6436e16 9.5534e14 2.727e09 0.35723 0.059687 0.16016 0.29494 0.16404 0.52516 0.62353 0.35507 1.1652e17 6.1806e16 1.2148e13 3.482e09 0.39839 0.19565 0.024 0.12828 0.1651 0.55881 0.8312 0.94437 3.9604e18 6.9965e16 1.3702e13 3.9384e09 0.33744 0.24603 0.15412 0.43973 0.57279 0.92755 1.2631 0.16551 9.3319e18 4.8995e16 1.4322e13 4.0909e09 0.48112 0.48105 0.48096 0.48088 0.16557 0.575 0.94394 1.3225

(C.1)

51