Я пытаюсь смоделировать веревочный объект. Я понимаю, что формулировка представляет собой массив частиц, связанных пружинами. Эти пружины имеют очень большие значения k, так что линия деформируется, но растягивается очень мало. Я пришел к выводу, что решить это как функцию времени невозможно в замкнутой форме, потому что веревка является обобщением маятника (который не является замкнутой формой).
Урегулирование для приближенных решений, затем. Мне нужен алгоритм, который хорошо масштабируется. Примеры, которые я видел, используют либо явную, либо неявную интеграцию Эйлера для перемещения частиц. Это не масштабируется.
Чтобы увидеть это, рассмотрим веревку с n узлами. Приложите большую силу к одному концу. Поскольку веревка не должна сильно растягиваться, ускорение на другом конце должно быть немедленным.
Тем не менее, с помощью интеграции Эйлера, чтобы получить какую-либо силу для другого конца требуется n шагов. Я замечаю экспоненциальный спад: если первый узел ускоряется на определенную величину, то соседние узлы ускоряются меньше (если они ускоряются с той же скоростью, то алгоритм не стабилен). Следовательно, узлы, смежные с этим узлом, ускоряются еще медленнее!
Таким образом, для n узлов далеко ускорение практически ничтожно. Это приводит к тому, что веревка значительно растягивается. Если вы хотите только удвоить разрешение симуляции, вам внезапно нужно сделать временные шаги, которые в десятки или сотни раз меньше, чтобы получить аналогичное поведение.
Я ищу простой метод, который решает эту проблему - т.е. моделирование с более высоким разрешением сходится к решению с дополнительными вычислениями только за полиномиальное время. Доступна полная библиотека методов матричной и линейной алгебры. Мои знания классической механики очень хороши, и я знаю некоторый численный анализ.
источник
Ответы:
Прежде всего, как упоминал Джед Браун , вам следует использовать неявную схему с временным шагом, поскольку ваша задача кажется достаточно жесткой или, по крайней мере, более стабильной, но в то же время такой же простой схемой, как интеграция Leapfrog или интеграция Verlet .
Что касается физической проблемы, насколько вы заинтересованы в растяжке? Вместо того, чтобы соединять частицы с жесткими пружинами, вы можете использовать голономные ограничения , например, убедиться, что расстояние между парами частиц остается постоянным. Ограничения должны быть решены для каждого временного шага, и существуют эффективные алгоритмы именно для вашей установки, то есть длинная связанная цепочка ограничений. Смотри, например, эту статью .
Просто из любопытства, вы также используете угловые потенциалы вдоль длины веревки, чтобы смоделировать ее гибкость?
источник
У вас жесткая система с текущей формулировкой. Динамическое растяжение и вибрация в струне (предположительно) неинтересны, но они контролируют явный временной шаг. Это указывает на использование неявного метода временной интеграции. Вы можете использовать демпфирование, чтобы предотвратить колебания, которые могут испортить адаптивный контроль ошибок для неявного метода.
Если мелкомасштабные колебания важны для моделирования, несмотря на желание перешагнуть через них (например, для моделирования усталости), то вы можете проверить новые многомасштабные методы, такие как метод гетерогенного мультимасштаба (Engquist, Tsai и т. Д.) Или полу- спектральные во времени методы. Использование таких методов является темой исследовательского уровня, и вы должны хорошо понимать свою проблему и возможности метода, чтобы решить, будет ли он уместным. Если вы хотите сохранить энергию, например, чтобы определенные колебательные моды не рассеивались, то вам следует обратиться к симплектическим интеграторам, таким как Verlet.
Вы также можете решить предел нулевого растяжения, если хотите. С инерциальными терминами модель может быть переформулирована с точки зрения углов, что приведет к созданию не жесткой системы ОДУ. Как указал Фалейчик, это
ROPE
тестовая проблема, рассмотренная в книге Хайрера, Норсетта и Ваннера. Если вы отбрасываете инерцию самой веревки, но допускаете провисание (легкая, мало растягиваемая веревка с дискретной нагрузкой; не обычная модель), проблема становится дифференциальным вариационным неравенством (DVI), и вы не можете в общем случае получить лучше, чем точность первого порядка время.источник
Если вы заинтересованы в быстром приближенном решении, вам могут быть интересны методы, используемые в цифровых эффектах, такие как дискретная дифференциальная геометрия. Мне известна квазистатическая формулировка в Discrete Elastic Rods , статье 2008 года группы Гринспена из Колумбийского университета, но, вероятно, в этой области имеется более поздняя литература.
источник
Движение подвесной веревки - любимая тестовая задача Хайрера и Ваннера, которая появилась во втором (жестком) томе «Решения обыкновенных дифференциальных уравнений» и во втором издании первого тома (1993). Я рекомендую последний вариант, стр. 247. Уравнения сложно вывести, а алгоритм численного решения не очень прост. Хотя в конце применяются обычные степперы с явным временем, такие как DOPRI, RK45 или ODEX, и они ведут себя довольно хорошо, поэтому проблема не очень сложная.
источник
ROPE
Проблема из книги моделей веревка , которая не растягивается, с динамикой преобладают инерционные эффекты. Кажется, вопрос задается о растягивающихся веревках.