Ich versuche ein Seilobjekt zu simulieren. Die Formulierung, die ich verstehe, ist eine Anordnung von Partikeln, die durch Federn verbunden sind. Diese Federn haben sehr große k-Werte, so dass sich die Leine verformt, sich aber nur sehr wenig dehnt. Ich bin zu dem Schluss gekommen, dass eine Lösung in Abhängigkeit von der Zeit nicht in geschlossener Form möglich ist, da ein Seil eine Verallgemeinerung eines Pendels ist (das nicht in geschlossener Form vorliegt).
Dann sollten wir uns auf ungefähre Lösungen einigen. Ich brauche einen Algorithmus, der gut skaliert. Beispiele, die ich gesehen habe, verwenden entweder explizite oder implizite Euler-Integration, um die Partikel zu bewegen. Dies skaliert nicht.
Betrachten Sie dazu ein Seil mit n Knoten. Üben Sie eine große Kraft auf ein Ende aus. Da sich das Seil nicht sehr stark dehnen sollte, muss die Beschleunigung am anderen Ende sofort erfolgen.
Bei der Euler'schen Integration sind jedoch n Schritte erforderlich , um eine Kraft an das andere Ende zu bringen. Ich stelle einen exponentiellen Abfall fest: Wenn der erste Knoten einen bestimmten Betrag beschleunigt, beschleunigen die benachbarten Knoten weniger (wenn sie mit derselben Geschwindigkeit beschleunigen, ist der Algorithmus nicht stabil). Folglich sind die benachbarten Knoten dieses beschleunigen Knoten noch langsamer!
Für n entfernte Knoten ist die Beschleunigung daher nahezu vernachlässigbar. Dies führt zu einem Seil, das sich erheblich dehnt. Wenn Sie die Auflösung der Simulation nur verdoppeln möchten, müssen Sie plötzlich zehn- oder hundertfach kleinere Zeitschritte ausführen, um ein ähnliches Verhalten zu erzielen.
Ich suche nach einer einfachen Methode, die dieses Problem löst - dh Simulationen mit höherer Auflösung konvergieren zur Lösung nur mit zusätzlicher Polynomzeitberechnung. Eine vollständige Bibliothek von Matrix- und linearen Algebratechniken ist verfügbar. Meine Kenntnisse der klassischen Mechanik sind sehr gut und ich kenne einige numerische Analysen.
quelle
Antworten:
Zunächst sollten Sie , wie von Jed Brown erwähnt, ein implizites Zeitschrittschema verwenden, da Ihr Problem ziemlich starr oder zumindest stabiler und doch genauso einfach zu sein scheint, wie beispielsweise die Leapfrog-Integration oder die Verlet-Integration .
Wie interessiert sind Sie an der Dehnung des Körpers? Anstatt die Partikel mit steifen Federn zu verbinden, können Sie holonome Bedingungen verwenden , z. B. um sicherzustellen, dass der Abstand zwischen den Partikelpaaren konstant bleibt. Die Einschränkungen müssen für jeden Zeitschritt gelöst werden, und es gibt effiziente Algorithmen für genau Ihr Setup, dh eine lange Kette von Einschränkungen. Siehe zum Beispiel dieses Papier .
Verwenden Sie aus Neugier auch Winkelpotentiale entlang der Länge des Seils, um dessen Flexibilität zu modellieren?
quelle
Sie haben ein steifes System mit der aktuellen Formulierung. Die dynamische Dehnung und Vibration in der Saite sind (vermutlich) uninteressant, steuern aber den expliziten Zeitschritt. Dies zeigt die Verwendung einer impliziten Zeitintegrationsmethode an. Sie können die Dämpfung verwenden, um die Schwingungen zu verhindern, die die adaptive Fehlerkontrolle für die implizite Methode durcheinander bringen.
Wenn es wichtig ist, die feinskaligen Schwingungen zu modellieren, obwohl Sie diese überschreiten möchten (z. B. für die Ermüdungsmodellierung), sollten Sie neue Multiskalenmethoden wie die heterogene Multiskalenmethode (Engquist, Tsai usw.) oder die Halbskalenmethode ausprobieren. spektrale zeitliche Methoden. Die Verwendung solcher Methoden ist ein Thema auf Forschungsebene, und Sie müssen Ihr Problem und die Fähigkeiten der Methode gut verstehen, um entscheiden zu können, ob sie geeignet sind. Wenn Sie Energie sparen möchten, zum Beispiel, dass bestimmte Schwingungsmoden nicht abgebaut werden sollen, sollten Sie sich symplektische Integratoren wie Verlet ansehen.
Sie können die Null-Dehnungsgrenze auch lösen, wenn Sie möchten. Mit Trägheitsbegriffen kann das Modell in Bezug auf Winkel umformuliert werden, was zu einem nicht steifen ODE-System führt. Wie Faleichik betonte, ist dies das
ROPE
Testproblem, das in Hairer, Nørsett und Wanners Buch behandelt wird. Wenn Sie die Trägheit des Seils selbst verwerfen, aber Spiel zulassen (leichtes, dehnungsarmes Seil mit diskreter Belastung; kein gängiges Modell), wird das Problem zu einer Differentialvariationsungleichung (DVI), und Sie können im Allgemeinen keine höhere Genauigkeit als die erste Ordnung erzielen Zeit.quelle
Wenn Sie an einer schnellen, ungefähren Lösung interessiert sind, sind möglicherweise die Methoden für digitale Effekte wie die diskrete Differentialgeometrie für Sie von Interesse. Mir ist eine quasistatische Formulierung in Discrete Elastic Rods bekannt , einer Veröffentlichung von 2008 von Grinspun's Gruppe an der Columbia University, aber es gibt wahrscheinlich neuere Literatur in diesem Bereich.
quelle
Die Bewegung des hängenden Seils ist ein beliebtes Testproblem von Hairer und Wanner, das im zweiten (steifen) Band von "Solving Ordinary Differential Equations" und in der zweiten Ausgabe des ersten Bandes (1993) auftrat. Ich empfehle die letzte Option, Seite 247. Die Gleichungen sind schwierig abzuleiten und der Algorithmus der numerischen Lösung ist nicht sehr einfach. Obwohl am Ende konventionelle explizite Zeitschrittmacher wie DOPRI, RK45 oder ODEX angewendet werden und sich ziemlich gut verhalten, ist das Problem nicht wirklich schwergängig.
quelle
ROPE
Problem aus dem Buch modelliert ein Seil, das sich nicht dehnt, wobei die Dynamik von Trägheitseffekten dominiert wird. Die Frage scheint nach Seilen zu sein, die sich ausdehnen.