Advanced Games Physics
10. Kapitel

Das Seil: ein System gekoppelter Differentialgleichungen

Große Verbünde von Differentialgleichungen

Das Seil ist eine Kombination von Feder-Masse-Systemen, die mit einem System gekoppelter Differentialgleichungen beschrieben werden kann. Die Aufstellung der Differentialgleichungen für ein umfangreiches System gekoppelter Elemente kann schnell in einem unübersichtlichen Gleichungswust enden, verliert doch die große Anzahl von Elementen, Kräften und Koordinaten schnell an Übersichtlichkeit. Eine systematische Lösung muss gefunden werden!

Das Lösungsprinzip besteht in der Vereinzelung der vielfach auftretenden und miteinander verbundenen Elemente. Das ermöglicht ein einfaches und vor allem übersichtliches Aufstellen der Differentialgleichung für jedes der vereinzelten Elemente. Da nun aber die Elemente miteinander verbunden sind, muss es noch weitere Bestimmungsgrößen geben, die die Wechselwirkung zwischen den Elementen beschreiben. Dies sind die sog. Schnittkräfte oder, bei rotatorischen Systemen, Schnittmomente. zeigt, wie eine Anordnung, die uns bereits aus bekannt ist, durch gezielte Schnitte in einzelne Elemente zerlegt werden kann. Im rechten Teilbild ist zu sehen, dass die obere Masse von den Federn getrennt wurde. Um aber die Gesamtsituation nicht zu verändern, treten Anstelle der Federn die vektoriellen Schnittkräfte Fprevious und Fnext. Damit kann nun das Kräftegleichgewicht für eine solche Masse aufgestellt werden:
()
Formel
Worin G die Gewichtskraft, FT die Trägheitskraft und FR die Reibungskraft bedeuten. Die vektoriellen Schnittkräfte Fprevious und Fnext errechnen sich aus den jeweiligen Federspannungen, als dem wirksamen Federweg Δl multipliziert mit der Federkonstanten n.
Bei einer Anordnung bestehend aus vielen gleichartigen Elementen werden die Schnittkräfte für jede Masse (Knoten) bestimmt und zur Aufstellung einer Differentialgleichung für diese Masse verwendet. In der Gesamtheit handelt es sich wieder um ein System gekoppelter Differentialgleichungen, wobei die Verkopplung über die Schnittkräfte erfolgt.
Ein weiterer Vorteil dieser Methode besteht darin, dass zusätzliche Kräfte, wie etwa der Einfluss von Wind oder der Gravitation, sehr einfach den Schnittkräften hinzugefügt werden können.

Das hier vorgestellte Verfahren der Zerlegung komplexer mechanischer Konstrukte führt direkt auf die finite Elemente Methode. Finit heißt die Methode, weil ein mechanisches Kontinuum in eine endliche Anzahl einfacher Elemente zerlegt wird. Das bedeutet auch, dass die Abmessungen dieser Elemente endlich, also nicht infinitesimal klein sind. Neben der Modellierung des Konstruktes durch diese Elemente sind die Koppelstellen zwischen den Elemente von großer Wichtigkeit. Diese werden durch Randbedingungen beschrieben, deren mathematische Behandlung in Abhängigkeit von der Anzahl der approximierenden Elemente sehr aufwändig werden kann. Dazu sind auch Kenntnisse der Festigkeitslehre erforderlich, die den Rahmen meiner Präsentation sprengen würden. Deshalb ersetzen wir das Kontinuum durch konzentrierte Elemente, die aus Federn, Reibungselementen und Massen bestehen, wobei deren Größen mehr oder weniger geschätzt werden. Um ein Konstrukt modellieren zu können, werden die Massen als Knoten betrachtet. An diese Knoten werden die Federn mittels Gelenken angeschlossen. Gelenk bedeutet, dass zwischen Federn und Massen keine Drehmomente wirken können.
Auftrennung eines gekoppelten Feder-Masse-Systems

Abb. Auftrennung eines gekoppelten Feder-Masse-Systems


Im Beispielprogramm wird das Prinzip der gekoppelten Federn mit einer größeren Anzahl von Gliedern wiederholt, nur dass die oben erwähnten Schnittkräfte eingeführt werden.
download p5.js
run program

Das hängende Seil

Ein Seil kann nun durch wiederholte Verwendung der Feder-Masse-Anordnung nach generiert werden. An jedem Knoten, mit Ausnahme des letzten Knotens, greift eine Schnittkraft F p r e v i o u s = F k 1 und eine weitere Schnittkraft F n e x t = F k sowie die Gravitationskraft G an. Am letzten Knoten wirken nur die Schnittkraft F p r e v i o u s = F k 1 und die Gravitationskraft G .

Hängendes Seil

Abb. Hängendes Seil

Massenträgheit und Reibung wirken in bekannter Weise:
()
Formel
Wie schon oben erwähnt, sind die Schnittkräfte proportional der jeweiligen Federdehnung, so dass daraus ein Paar gekoppelter Differentialgleichungen abgeleitet werden kann:
(a)
Formel
(b)
Formel
Worin die X k 1 ; X k ; X k + 1 die Ortsvektoren der jeweiligen Knoten bzw. Massen repräsentieren.
Nun müssen wir die Schnittkräfte in ihre x- bzw. y-Komponenten zerlegen, um je ein partiell wirksames Paar von Differentialgleichungen zu erhalten:
(a)
Formel
(b)
Formel
Geistesblitz
on/off

worin l k = | X k X k 1 | die aktuelle Federlänge der k-ten Feder bezeichnen.


Damit steht endlich je Knoten ein Paar gekoppelter Differentialgleichungen für die x- bzw. y-Komponenten zur Verfügung:
(a)
Formel
(b)
Formel
Etwa wirkende Windkräfte, die z.B. in x-Richtung wehen, können einfach zu der für diese Richtung zuständige Differentialgleichung additiv hinzu gefügt werden.

Und hier die Implementierung der Differentialgleichungen zur Berechnung der x- und y-Komponenten der Geschwindigkeit des Knotens (f1) bzw. der Komponenten des Knotenortes (f2). Mit der Variablen kActive wird der Knoten erkannt, der z.Z. von der Maus (oder touch) festgehalten wird. Dort sind selbstverständlich die Geschwindigkeitskomponenten gleich Null und der Ort ist identisch mit dem Mausort. Im Programm werden nicht die Kräfte Fxk bzw. Fyk verwendet, sondern die damit verbundenen Beschleunigungen axk bzw. ayk, weil die Normalform der Differentialgleichung stets die Beschleunigungen zu Grunde legt. Vom rechentechnischen her ist es einfacher, die Beschleunigungswerte stets für den jeweils betrachteten Knoten vollständig zu berechnen, auch wenn dadurch der Vorteil actio = reactio-Methode nicht genutzt werden kann. So bleiben die berechneten Beschleunigungen nur innerhalb einer Knotenrechnung gültig und müssen nicht zwischengespeichert werden. Statt der Beschleunigungen axk bzw. ayk genügt dann die Berechnung von ax bzw. ay, die aus den Abständen der Knoten xprevious bzw. yprevious, x bzw. y und xnext bzw. ynext erfolgt.

Besondere Beachtung verdienen die Enden des Seils. Das obere Ende - die Aufhängung - nimmt an der Bewegung nicht teil, die x, y-Koordinate ist fixiert! Im beigefügten Programmbeispiel kann diese Koordinate allerdings mit der Maus verschoben werden, was aber an der Fixierung nichts ändert. Am unteren Ende des Seils fehlt die Rückwirkung vom nächsten Segment, weil es ja nicht vorhanden ist, also gibt es auch keine Kräft aus dieser Richtung. Wegen der Allgemeingültigkeit der Gradientenfunktion werden aber die Koordinaten dieses, nicht vorhanden, Segments aufgerufen. Damit aber der Aufruf der Gradientenfunktion vom Compiler nicht bemängelt wird, wird das Feld der x, y-Koordinaten um jeweils einen Speicherplatz verlängert. Innerhalb der Gradientenfunktion wird dann getestet, ob es sich um das untere Ende des Seils handelt. Ist dies der Fall, wird die Rückwirkung vom nächsten Segment nicht mehr berücksichtigt.

Wegen der Benutzung des leapfrog-Algorithmus zur Lösung der DGl. werden noch die Zwischenergebnisse vx' und vy' benötigt. Diese werden ebenfalls in Vektoren abgelegt.
Wenn auch in den Gln. a) und b) von Kräften die Rede ist, werden in der Implementierung die den Kräften zugeordneten Beschleunigungen verwendet, weil die Normalform der Differentialgleichung stets die Beschleunigungen zu Grunde legt. So wirkt hier also nicht die Windkraft FW sondern die Beschleunigung aW ().
Als Reibungsprinzip wird die STOKESsche Reibung verwendet, weil die Relativgeschwindigkeiten der Knoten klein sind.



Abb. Implementierung der Differentialgleichungen eines Knotens

Das Beispielprogramm zeigt ein ruhend hängendes, unbelastetes Seil. Es wird durch ein Set von 40 Knoten dargestellt. Das Seil kann an jeder beliebigen Stelle mit der Maus angefasst und bewegt werden. Schon jetzt kann durch eine Mausaktion das Seil in Bewegung versetzt werden. Mit dem Button Gravitation kann die Schwerkraft eingeschaltet werden, in deren Folge sich das Seil streckt. Mit den Schiebereglern f0 (Eigenfrequenz) und δ (Dämpfung) kann das zeitliche Verhalten des Seils verändert werden. Und der Schieberegler Windstärke lässten den Wind gleichmäßig mit der eingestellten Geschwindigkeit aus der x-Richtung wehen. Die Stärke des Windes ist an der Windrose zu ersehen.
download processing
download p5.js
run program


Ergebnisdiskussion: Na, ein richtiges Seil verhält sich schon etwas anders. Das, was wir hier sehen können, ähnelt mehr einem Gummiseil. Unter dem Einfluss der Schwerkraft dehnt es sich wohl etwas zu stark für ein Hanfseil. Durch eine Erhöhung der Eigenfrequenz f0 kann das Seil fester gemacht werden, aber mehr als ein Kletterseil kommt nicht dabei raus! Wie Du am Beispiel sehen kannst, wird die Anordnung mit steigende Eigenfrequenz f0 immer steifer, also instabiler. Im Extremfall, z.B. einer Kette, sind die verbindenden Federn überhaupt nicht mehr dehnbar. Dann würden die "Feder"-Kräfte unendlich groß werden, was zu einem nicht mehr lösbaren Gleichungssystem führt. Der Grund für Instabilitäten der Lösung liegt prinzipiell in der numerischen Lösung der Differentialgleichungen. Im vorliegenden Programmbeispiel wurde das LeapFrog-Verfahren angewendet. Es stellt einen vernünftigen Kompromiss zwischen Rechenaufwand und Stabilität dar. Verfahren höherer Genauigkeit, wie z.B. das RUNGE-KUTTA-Verfahren treiben den Rechenaufwand enorm in die Höhe, ohne eine überzeugende Steigerung der Stabiltät der Lösung zu zeitigen.
Ein weiterer Grund für die nicht ganz überzeugende Simulation ist darin zu sehen, dass die einzelnen Segmente wohl in Richtung der Schnittkräfte wechselwirken, aber nicht im Winkel zwischen den Segmenten. Dort fehlt noch eine Biegesteifigkeit, die das Verbiegen oder Verformen des Seiles erschwert. Aber trotzdem: eine ganze Reihe von Eigenschaften eines realen Seils kann durch die Simulation nachgebildet werden. So z.B. kann die laufende Welle auf dem Seil demonstriert werden, wenn das Seilende ruckartig bewegt wird. Auch die Reflexion der Welle am freien oder fixierten Ende des Seils kann beobachtet werden. Wie Du beobachten kannst, hängt die Fortpflanzungsgeschwindigkeit der Welle von der eingestellten Eigenfrequenz f0 ab. Je höherer f0 desto schneller läuft die Welle. Und je geringer die Dämpfung δ, desto länger läuft die Welle hin und her!
Ebenfalls gut zu beobachten ist die Wirkung des Seitenwinds, der das Seil aus seiner Ruhelage drückt.