Произвольное моделирование точности масштабируемой веревки


12

Я пытаюсь смоделировать веревочный объект. Я понимаю, что формулировка представляет собой массив частиц, связанных пружинами. Эти пружины имеют очень большие значения k, так что линия деформируется, но растягивается очень мало. Я пришел к выводу, что решить это как функцию времени невозможно в замкнутой форме, потому что веревка является обобщением маятника (который не является замкнутой формой).

Урегулирование для приближенных решений, затем. Мне нужен алгоритм, который хорошо масштабируется. Примеры, которые я видел, используют либо явную, либо неявную интеграцию Эйлера для перемещения частиц. Это не масштабируется.

Чтобы увидеть это, рассмотрим веревку с n узлами. Приложите большую силу к одному концу. Поскольку веревка не должна сильно растягиваться, ускорение на другом конце должно быть немедленным.

Тем не менее, с помощью интеграции Эйлера, чтобы получить какую-либо силу для другого конца требуется n шагов. Я замечаю экспоненциальный спад: если первый узел ускоряется на определенную величину, то соседние узлы ускоряются меньше (если они ускоряются с той же скоростью, то алгоритм не стабилен). Следовательно, узлы, смежные с этим узлом, ускоряются еще медленнее!

Таким образом, для n узлов далеко ускорение практически ничтожно. Это приводит к тому, что веревка значительно растягивается. Если вы хотите только удвоить разрешение симуляции, вам внезапно нужно сделать временные шаги, которые в десятки или сотни раз меньше, чтобы получить аналогичное поведение.

Я ищу простой метод, который решает эту проблему - т.е. моделирование с более высоким разрешением сходится к решению с дополнительными вычислениями только за полиномиальное время. Доступна полная библиотека методов матричной и линейной алгебры. Мои знания классической механики очень хороши, и я знаю некоторый численный анализ.


Похоже, что RK-подобные алгоритмы подшаговых шагов ускорят обмен данными (измеренный в узлах / шаг) с коэффициентом, примерно равным количеству подшагов, но это не может быть большой победой с точки зрения фактического вычислительного времени , Чтобы быть действительно общим, вам, вероятно, нужно вычислить, как далеко вы ожидаете, что эффект будет распространяться за временной шаг (т.е. ), и начать с эвристического применения деформации по этой длине, а затем расслабиться. vsdt
dmckee --- котенок экс-модератора

@dmckee, да, пожалуйста! В ответ на ваш второй комментарий, в идеале сила должна распространяться бесконечно далеко в любой момент времени.
Ималлетт

Что ж, скорость звука, вероятно, довольно высока ... но если ваши временные шаги не превышают 10 мс, эта длина распространения будет всего несколько метров.
dmckee --- котенок экс-модератора

Мне любопытно узнать, были ли ваши предложения полезными. Я предполагаю, что отсутствие признания означает либо то, что вы все еще продолжаете, либо что ни один из ответов не является именно тем, на что вы рассчитывали, но показали ли они вам путь вперед?
dmckee --- котенок экс-модератора

Они были полезны, но многие вещи возникли одновременно. Я уточнил свои намерения по некоторым ответам, и когда я получу передышку, я смогу последовать за ними. Спасибо,
imallett

Ответы:


4

Прежде всего, как упоминал Джед Браун , вам следует использовать неявную схему с временным шагом, поскольку ваша задача кажется достаточно жесткой или, по крайней мере, более стабильной, но в то же время такой же простой схемой, как интеграция Leapfrog или интеграция Verlet .

Что касается физической проблемы, насколько вы заинтересованы в растяжке? Вместо того, чтобы соединять частицы с жесткими пружинами, вы можете использовать голономные ограничения , например, убедиться, что расстояние между парами частиц остается постоянным. Ограничения должны быть решены для каждого временного шага, и существуют эффективные алгоритмы именно для вашей установки, то есть длинная связанная цепочка ограничений. Смотри, например, эту статью .

Просто из любопытства, вы также используете угловые потенциалы вдоль длины веревки, чтобы смоделировать ее гибкость?


Даже при неявном пошаговом времени (что помогает) растяжение происходит. На самом деле, я заинтересован в растяжке только постольку, поскольку пытаюсь от него избавиться. Математика в газете в основном над моей головой, но я изучаю код Фортрана. Пока не используются угловые ограничения.
Ималлетт

@IanMallett: Хорошо, тогда ограничения - это путь, т. Е. С ограничениями вообще нет растяжения.
Педро

5

У вас жесткая система с текущей формулировкой. Динамическое растяжение и вибрация в струне (предположительно) неинтересны, но они контролируют явный временной шаг. Это указывает на использование неявного метода временной интеграции. Вы можете использовать демпфирование, чтобы предотвратить колебания, которые могут испортить адаптивный контроль ошибок для неявного метода.

Если мелкомасштабные колебания важны для моделирования, несмотря на желание перешагнуть через них (например, для моделирования усталости), то вы можете проверить новые многомасштабные методы, такие как метод гетерогенного мультимасштаба (Engquist, Tsai и т. Д.) Или полу- спектральные во времени методы. Использование таких методов является темой исследовательского уровня, и вы должны хорошо понимать свою проблему и возможности метода, чтобы решить, будет ли он уместным. Если вы хотите сохранить энергию, например, чтобы определенные колебательные моды не рассеивались, то вам следует обратиться к симплектическим интеграторам, таким как Verlet.

Вы также можете решить предел нулевого растяжения, если хотите. С инерциальными терминами модель может быть переформулирована с точки зрения углов, что приведет к созданию не жесткой системы ОДУ. Как указал Фалейчик, это ROPEтестовая проблема, рассмотренная в книге Хайрера, Норсетта и Ваннера. Если вы отбрасываете инерцию самой веревки, но допускаете провисание (легкая, мало растягиваемая веревка с дискретной нагрузкой; не обычная модель), проблема становится дифференциальным вариационным неравенством (DVI), и вы не можете в общем случае получить лучше, чем точность первого порядка время.


2
По сути, HMM - это метод сокращения проекционных моделей. Я не решаюсь рекомендовать такие методы, если только приложение не требует их; нужно быть готовым пожертвовать точностью ради скорости. Определение «хорошего» выбора операторов сжатия и восстановления (с использованием номенклатуры HMM) остается нетривиальным для некоторых приложений (одним из таких примеров является сжигание).
Джефф Оксберри

@GeoffOxberry Согласен, я добавил предупреждение. Классическая проблема заключается в том, как механические колебания часов вызывают дрейф. Примерная проблема, которая, на мой взгляд, была бы уместной, - это моделирование ползучести / проскальзывания веревки вокруг лебедки, ускоренной колебательными режимами со стороны нагружения. Не все сгорание. ;-)
Джед Браун

Предел нулевого растяжения - это, по сути, единственное, к чему я действительно стремлюсь в данный момент. Мелкомасштабные колебания были бы хороши, но слишком эластичная ткань, которая слишком гладкая, предпочтительнее прямо сейчас. Я попытался неявно шагать по времени (с помощью формулировки OpenCloth), и, к сожалению, проблема все еще возникает. Можете ли вы разработать / дать ссылки о том, как выполнить ваш последний абзац? Спасибо,
imallett

2

Если вы заинтересованы в быстром приближенном решении, вам могут быть интересны методы, используемые в цифровых эффектах, такие как дискретная дифференциальная геометрия. Мне известна квазистатическая формулировка в Discrete Elastic Rods , статье 2008 года группы Гринспена из Колумбийского университета, но, вероятно, в этой области имеется более поздняя литература.


2

Движение подвесной веревки - любимая тестовая задача Хайрера и Ваннера, которая появилась во втором (жестком) томе «Решения обыкновенных дифференциальных уравнений» и во втором издании первого тома (1993). Я рекомендую последний вариант, стр. 247. Уравнения сложно вывести, а алгоритм численного решения не очень прост. Хотя в конце применяются обычные степперы с явным временем, такие как DOPRI, RK45 или ODEX, и они ведут себя довольно хорошо, поэтому проблема не очень сложная.


1
ROPEПроблема из книги моделей веревка , которая не растягивается, с динамикой преобладают инерционные эффекты. Кажется, вопрос задается о растягивающихся веревках.
Джед Браун
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.