10. Kapitel
2D-Systeme gekoppelter Differentialgleichungen
Große Verbünde von Differentialgleichungen
Punktuell befestigte Netze oder Gewebe
Das Netz als eine 2D-Anordnung von Feder-Masse-Systemen ist der typische Anwendungsfall für 2D-Systeme gekoppelter Differentialgleichungen. Als Grundlage für textile Objekte ist das Netz in der Spielewelt unverzichtbar. Gibt es ein solches Netz, kann mittels geeigneter images ein textiler Stoff nachgebildet werden.Vom Seil zum Netz ist es nur ein kleiner Schritt. Ein Netz kann aus parallelen Seilen, deren Knoten zusätzlich horizontal durch Federn verbunden sind, zusammengesetzt werden ().
Abb. a) Struktur
Abb. b) und Detail eines Netzes
Aus den Kraftgleichungen bis des Seils werden nun die Gleichungen a) und b) des Netzes:
(a)
(b)
Da es nun im Netz K · N Knoten gibt, müssen auch K · N Differenzialgleichungen gelöst werden. Dies erfolgt, indem zwei Schleifen zu durchlaufen sind. In der äußeren Schleife mit dem Index n werden die "Seile" angesprochen und in der inneren mit dem Index k die einzelnen Knoten ().
Abb. Listing Berechnung der Gradientenfunktion
Mehr noch als beim Seil ist den Knoten, die sich am Rande des Netzes befinden, Aufmerksamkeit zu schenken. Weil es die unterschiedlichsten Befestigungspunkte des Netzes geben kann (z.B. Tuch an Wäscheleine, Fahne an Fahnenstange, fliegendes Netz usw.) wäre es sinnlos, alle Randknoten fest zu Programmieren. Ich habe eine Methode gewählt, die die Eigenschaften jedes Knoten in einer zum Netz deckungsgleichen Matrix definiert ():
Abb. Festlegung von Knotenpositionen
darin bedeuten:
Bezeichner | Knotentyp | Bedeutung |
'f': | fix (fixierter Knoten) | Befestigung, Geschwindigkeitskomponenten sind gleich Null |
'm': | middle (mittlerer Knoten) | Kräfte greifen allseitig an |
't': | top (oberer Knoten) | keine Krafteinwirkung von oben |
'b': | bottom (unterer Knoten) | keine Krafteinwirkung von unten |
'l': | left (linker Knoten) | keine Krafteinwirkung von links |
'r': | right (rechter Knoten) | keine Krafteinwirkung von rechts |
'1': | linke, obere Ecke | keine Krafteinwirkung von oben und links |
'2': | rechte, obere Ecke | keine Krafteinwirkung von oben und rechts |
'3': | rechte, untere Ecke | keine Krafteinwirkung von unten und rechts |
'4': | linke, untere Ecke | keine Krafteinwirkung von unten und links |
In der Implementierung werden die jeweiligen Beschleunigungen entsprechend der in der Matrix place[K+2][N+2] festgelegten Eigenschaft über eine switch/case-Anweisung selektiv aus den Teilbeschleunigungen zusammengesetzt (). Der Sonderfall 'f' wird in einer separaten Abfrage abgehandelt, dort soll überhaupt keine Beschleunigung wirken und die Geschwindigkeitskomponenten müssen gleich Null sein.
Das Beispielprogramm zeigt ein Netz bestehend aus 10 x 10 Knoten. Jedes Segment ist im Ruhezustand 7,5 cm lang und breit.
In bekannter Weise kann die Steifigkeit der Feder-Masse-Systeme, also des Netzes, mit Hilfe der Schieberegler Eigenfrequenz f0 und Dämpfung d verändert werden. Ebenso kann die Gravitation wie gehabt zu- bzw. abgeschaltet werden. Jeder Knoten des Netzes kann mit der Maus bewegt werden. Der Button mode ermöglicht die Auswahl von drei vorprogrammierten place-Matrizen und damit unterschiedliche Gestaltungsmöglichkeiten des Netzes. Auch hier kann ein Windeinfluss geltend gemacht werden. Der Wind bläst nicht konstant, sondern nach einem vorgegebenen Rhythmus. Seine Stärke kann aber per Schieberegler verändert werden.
Ergebnisdiskussion: Ebenso wie das Seil, ist auch das Netz nur eine erste Näherung der Realität. Grund hierfür ist, dass die Federn des Systems nicht steif genug gemacht werden können. Bei zu großer Steifigkeit verliert das System an Stabilität, was bis zum völligen Zusammenbruch der Rechnung führen kann. Mit der Dämpfung kann diesem Mangel nur bedingt abgeholfen werden.
Noch ein anderes nachteiliges Phänomen kann beobachtet werden: Nach einer Deformation des Netzes kann es vorkommen, dass einige Maschen sich nicht mehr in den Ausgangszustand zurück falten. Ursache hierfür ist die Geometrie der Maschen. Eine rechteckige Masche hat zwei stabile Zustände (a) u. b)), die nur durch eine äußere Kraft, etwa die Gravitation oder eine kräftige Bewegung mit der Maus, in den natürlichen der beiden stabilen Zustände gebracht werden kann. Darum ist die Behandlung von Oberflächen mit Hilfe dreieckiger Segmente (c)), die nur einen stabilen Zustand kennen, anstelle viereckiger Segmente, sinnvoll.
Abb. Einfluss der Segmentform auf Rückbildbarkeit von Maschen
Elastische Körper
Bei einer 2D-Darstellung von Körper zu sprechen ist eigentlich ein Widerspruch. Dennoch lohnt eine approximative Behandlung
eines Körpers durch ein gekoppeltes Feder-Masse-System. Wir betrachten optisch den Körper hier als
flächige Projektion auf die x-y-Ebene, wohingegen die Elemente (Federn und
Massen) Volumen-Elemente repräsentieren, also die Eigenschaften eines
Volumen-Elements in sich vereinigen.
Im Gegensatz zu Netzen haben Körper eine Steifigkeit (der Begriff "Steifigkeit" wird auch im Zusammenhang mit ODE-Solvern verwendet, um deutlich zu machen, dass hier Lösungen von Differentialgleichungen steifer Anordnungen, z.B. Feder-Masse-Systeme gesucht werden). Diese Eigenschaft macht sich besonders dann bemerkbar, wenn die Gravitation oder andere Flächenlasten wirken.
Um solche Körper modellieren zu können genügt die Anordnung der Feder-Masse-Elemente, wie wir Sie für die Nachbildung eines Netzes verwendet haben, nicht aus. Denn die Koppelpunkte können keine Drehmomente übertragen, weil sie als Gelenke ausgeführt sind. Damit auch steife, elastische Körper nachgebildet werden können, müssen neue, stützende Verbindungen zwischen den einzelnen Knoten eingeführt werden (). Zu den schon bekannten Verbindungen zwischen den Knoten kommen neue, diagonale Verbindungen hinzu: lprevious left, lprevious right, lnext left sowie lnext-right, die ebenfalls durch Federn vermittelt werden, allerdings sind deren Ruhefederlängen um den Faktor länger als die horizontal bzw. vertikal angeordneten Federn!
Außerdem erweitern wir die Konstruktionsfähigkeit der Modelle um
Diese zusätzlichen Eigenschaften ermöglichen eine bewegliche Einspannung der Modelle am oberen Rand ('h') bzw. am rechten Rand ('v'). So können statische Effekte wie Knickung oder Stauchung untersucht werden.
Grundsätzlich ist aber zu bemerken, dass die Nachbildung eines Körpers durch diskrete Feder-Masse-Systeme immer nur eine begrenzt richtige Approximation liefern kann. Einerseits werden die verwendeten Federn als ideal angesehen, d.h. das Hooksche Gesetz gilt uneingeschränkt. Das hat Auswirkungen auf das statische Verhalten des Körpers. Andererseits werden die dynamischen Eigenschaften durch die sehr komplexen Differentialgleichungen und deren Lösung mittes ODE-Solver bestimmt. Insbesondere hier ist ein Kompromiss zwischen Genauigkeit und Rechenaufwand zu finden.
Im Gegensatz zu Netzen haben Körper eine Steifigkeit (der Begriff "Steifigkeit" wird auch im Zusammenhang mit ODE-Solvern verwendet, um deutlich zu machen, dass hier Lösungen von Differentialgleichungen steifer Anordnungen, z.B. Feder-Masse-Systeme gesucht werden). Diese Eigenschaft macht sich besonders dann bemerkbar, wenn die Gravitation oder andere Flächenlasten wirken.
Um solche Körper modellieren zu können genügt die Anordnung der Feder-Masse-Elemente, wie wir Sie für die Nachbildung eines Netzes verwendet haben, nicht aus. Denn die Koppelpunkte können keine Drehmomente übertragen, weil sie als Gelenke ausgeführt sind. Damit auch steife, elastische Körper nachgebildet werden können, müssen neue, stützende Verbindungen zwischen den einzelnen Knoten eingeführt werden (). Zu den schon bekannten Verbindungen zwischen den Knoten kommen neue, diagonale Verbindungen hinzu: lprevious left, lprevious right, lnext left sowie lnext-right, die ebenfalls durch Federn vermittelt werden, allerdings sind deren Ruhefederlängen um den Faktor länger als die horizontal bzw. vertikal angeordneten Federn!
Außerdem erweitern wir die Konstruktionsfähigkeit der Modelle um
Bezeichner | Knotentyp | Bedeutung |
'h': | horizontal oben verbunden | alle Knoten werden gemeinsam in y-Richtung bewegt |
'v': | vertikal rechts verbunden | alle Knoten werden gemeinsam in x-Richtung bewegt |
Diese zusätzlichen Eigenschaften ermöglichen eine bewegliche Einspannung der Modelle am oberen Rand ('h') bzw. am rechten Rand ('v'). So können statische Effekte wie Knickung oder Stauchung untersucht werden.
Grundsätzlich ist aber zu bemerken, dass die Nachbildung eines Körpers durch diskrete Feder-Masse-Systeme immer nur eine begrenzt richtige Approximation liefern kann. Einerseits werden die verwendeten Federn als ideal angesehen, d.h. das Hooksche Gesetz gilt uneingeschränkt. Das hat Auswirkungen auf das statische Verhalten des Körpers. Andererseits werden die dynamischen Eigenschaften durch die sehr komplexen Differentialgleichungen und deren Lösung mittes ODE-Solver bestimmt. Insbesondere hier ist ein Kompromiss zwischen Genauigkeit und Rechenaufwand zu finden.
Abb. Maschen eines steifen, elastischen Körpers
Im Beispielprogramm können durch mehrfaches Anklicken des Buttons mode unterschiedliche Modelle bzw.
Einspannungen ausgewählt werden:
- dünner Balken: Feste Einspannung links, bewegliche Einspannung rechts.
- Wird der Balken einer punktuell wirkenden Kraft ausgesetzt, verformt sich der Balken punktuell, aber auch in Gänze.
- Wird der Balken von rechts (verschieben der rechten Einspannung per Maus) unter Druck gesetzt, knickt der Balken ein.
- Unter Gravitationseinfluss (Flächenlast) biegt sich der Balken wie theoretisch vorhergesagt durch.
- dünner Balken: Feste Einspannung links.
- Wird der Balken einer punktuell wirkenden Kraft ausgesetzt, verformt sich der Balken punktuell, aber auch in Gänze. Ein Verbiegen des Balkens in beliebige Richtung ist möglich. Wird der Biegeradius zu klein, sind Wulst ähnliche Kompressionen sichtbar.
- Unter Gravitationseinfluss (Flächenlast) hängt der Balken wie theoretisch vorhergesagt herab.
- Würfel: Feste Einspannung am Boden.
- Wird der Würfel einer punktuell wirkenden Kraft ausgesetzt, verformt sich der Balken punktuell, aber auch in Gänze. Ein Verbiegen des Würfels in beliebige Richtung ist begrenzt möglich
- Unter Gravitationseinfluss (Flächenlast) wird der Würfel komprimiert.
- Würfel: Feste Einspannung am Boden, bewegliche Einspannung oben.
- Der Würfel wird von oben unter Druck (Flächenlast) gesetzt, das verstärkt die Wirkung der Gravitation. Die Kompressionswirkung ist deutlich erkennbar.
- Wird der Würfel einer punktuell wirkenden Kraft ausgesetzt, verformt sich der Balken punktuell, aber auch in Gänze. Ein Scheren des Würfels nach links oder rechts ist möglich
- dicker Balken: Feste Einspannung links.
- Wird der Balken einer punktuell wirkenden Kraft ausgesetzt, verformt sich der Balken punktuell, aber auch in Gänze. Ein Verbiegen des Balkens in beliebige Richtung ist möglich
- Unter Gravitationseinfluss (Flächenlast) hängt der Balken wie theoretisch vorhergesagt herab. Wird die Gravitation wieder abgeschaltet, richtet sich der Balken wieder auf.
Ergebnisdiskussion: Alle Effekte, die aus der Statik-Lehre, wie Stauchung, Knickung oder Biegung von Balken können bei moderaten Belastungen beobachtet werden. Problematisch sind große Auslenkungen oder Belastungen, da die gemachten Voraussetzungen z.B. Geltung des HOOKschen Gesetzes nicht mehr erfüllt sind. Unter diesen Bedingungen kann es vorkommen, dass einzelne Federn sich nach "innen" einstülpen, was bei soliden Körpern nicht passieren kann.
Auch im dynamischen Verhalten kommt es bei großen Federkonstanten, d.h. hohen Eigenschwingungen, zu Instabilitäten. So kann die Simulation mit Hilfe von Feder-Masse-Systemen nur Körper aus relativ weichen Materialien (z.B. Gummi) abbilden.