Наверняка кто-то нашел решения для столкновений с твердыми сферами (в размеры) двух тел массы и , соответственно, - это результирующие скорости (или импульсы) двух тел после столкновения твердых сфер при заданных и . У меня есть решение (как для упругих, так и для неупругих столкновений), но мне интересно, правильно ли оно.
К вашему сведению, вот мои решения для упругих столкновений с твердыми сферами:
где находится в направлении «твердой сферы» (т.е. единичного вектора, соединяющего два центра двух сфер). Вы можете видеть, что моя формулировка тривиально сохраняет импульс — вопрос в том, сохраняет ли она также и энергию.
Если это поможет, вот мое полное объяснение . Для этих целей вам следует перейти к разделу, посвященному n-мерным случаям (стр. 6). Я написал это как ссылку на себя для моделирования физики, так как я не мог найти никаких ссылок на столкновения с твердыми сферами (кроме ссылок на постановку проблемы, которые не дают решений).
Вот сокращенная работа по нахождению конечных импульсов из упругого случая:
Так же, как в В случае D мы добавляем и вычитаем один и тот же импульс у каждой частицы, за исключением того, что теперь мы добавляем и вычитаем вектор: , Который означает, что (такой, что и ). Это дает конечную энергию как:
Запишем теперь конечную энергию через величину и скалярное произведение между и и аналогично для . Обратите внимание, что если вы выбираете направление для действовать априори (как в случае твердой сферы), скалярные произведения и будет известно:
Как обычно эластичный чехол значительно упрощает:
Это приводит к тривиальному решению (коллизии не происходит) и:
Отсюда мои решения:
Преобразования координат только усложняют проблему. Суть дела в том, что в n измерениях у вас есть n степеней свободы для скоростей ЦМ каждой сферы, и у вас есть только n уравнений сохранения импульса плюс одно уравнение сохранения энергии. Это означает, что вам нужно дополнительно n-1 уравнений для решения задачи.
Дополнительные уравнения исходят из того факта, что если вы предполагаете удар без трения*, то импульс/сила, сообщаемые каждому объекту, должны быть перпендикулярны поверхности. Это дает ограничение на направление импульса. Вместе с величиной это направление дало бы нам n степеней свободы. Так что без него это дает нам n-1: именно то число, которое нам нужно.
Поскольку у нас есть сферы, направление нормали к поверхности удара будет вектором, указывающим от одного ЦМ к другому. Назовем этот нормальный вектор .
Теперь скорости шаров A и B можно представить как и до столкновения и и после столкновения.
Назовем импульс, сообщаемый шарику А. . Тогда у нас есть:
Тогда мы можем записать закон сохранения энергии (умноженный на 2) как:
Включение наших скоростей после столкновения дает:
деление на величину дает:
Назовем вектор, указывающий из центра шара B в центр шара A . Мы знаем, что до удара где разница в начальных положениях шаров и есть разница начальных скоростей шаров .
В момент удара:
Мы можем преобразовать это второе уравнение, чтобы найти t:
Если это время отрицательное или мнимое, то столкновения не произойдет. В противном случае в момент удара можно узнать, подставив t:
Таким образом, учитывая начальные положения и , начальные скорости и , и радиусы шаров и конечные скорости и можно найти, следуя следующей процедуре:
Вычислите относительные положения и скорости:
Рассчитать время воздействия:
Вычислить направление импульса:
* Столкновение должно быть без трения, если мы не рассматриваем моменты инерции, поскольку любое трение будет прикладывать к мячу крутящий момент, который передаст мячу энергию и инерцию вращения. В этом случае проблема становится немного сложнее, так как нужно предположить, как трение заставит шарики взаимодействовать, что нетривиально, поскольку многие простые предположения противоречат закону сохранения энергии.
Вот общая фигура столкновения твердых сфер, нарисованная в центре масс массы. до столкновения. Черная точка прикреплена к этой рамке.
Для решения проблемы необходимо соблюдать
Я нарисовал 2D-задачу, поэтому у вас есть четыре неизвестных (два для и два для ). И есть четыре уравнения (одно для энергии и крутящего момента, два для импульса). Итак, проблема решена.
В трех измерениях у вас есть неизвестны, сохранение энергии дает одно уравнение, сохранение импульса дает уравнения и сохранения крутящего момента обеспечивают два.
Эта ветка немного устарела, но я подумал, что скинусь на случай, если кто-нибудь придет искать этот ответ. Короче говоря, Том-Том абсолютно прав в своем анализе проблемы. Тем не менее, я собираюсь разбить это по шагам для полного трехмерного случая и попытаться объяснить некоторые моменты, по поводу которых возник спор (например, угловой момент).
Прежде всего, вот предположения, с которыми мы работаем:
Я не собираюсь на самом деле решать каждое из условий (это становится довольно запутанным), но я собираюсь обрисовать в общих чертах, как идет процесс. Для полноты картины я не собираюсь предполагать, что мы знаем, что тела столкнутся. В ходе анализа мы увидим, что это определение довольно легко выпадает.
Вот процедура:
1) Сначала перейдите к системе покоя одной из частиц. Теперь мы сравниваем точку и 3D-линию, что значительно упрощает геометрию, а не две 3D-линии.
2) Вспомните фундаментальное доказательство трехмерной геометрии, что линия и точка в трехмерном пространстве всегда могут лежать в одной плоскости. Мы можем, в принципе, сделать преобразование координат (поворот в и в сферических координатах вокруг частицы в начале координат).
3) Хорошо, теперь у нас есть линия и точка в одной плоскости. Должно быть очевидно, что еще одно вращение (в полярном угле) может гарантировать, что движущаяся частица движется только по оси x. Это воспроизводит картинку, подобную первой фигуре, которую опубликовал Том-Том. Теперь мы свели нашу 3D-задачу к 2D-задаче, для которой Том-Том дал метод!
4) Обнаружение столкновения: как мы узнаем, что они столкнулись? Нам нужно проверить 2 вещи: 1) есть , где радиусы и – прицельный параметр; 2) нам нужно проверить, что движущаяся частица попадает в оси x. Это всего лишь теорема Пифагора для треугольника, который образуют сферы при соприкосновении. Если оба критерия соблюдены, мы имеем коллизию.
5) Теперь мы все настроили и работаем с решением Tom-Tom. Я не буду разбираться в остальном, но сделаю пару заметок, чтобы прояснить путаницу.
Угловой момент: вопреки комментарию Джареда выше, мы вообще не можем выбрать систему координат, в которой угловой момент равен нулю. Угловой момент будет равен нулю только в двух частных случаях: 1) частицы покоятся друг относительно друга; 2) движущаяся частица движется прямо на неподвижную частицу. Почему? . Если частицы покоятся, (очевидно, что и в этом случае у нас нет коллизии). Если прицельный параметр равен нулю, это означает и выстраиваются друг в друга. Отзывать, , где угол между двумя векторами. в случай, . Во всех остальных случаях момент импульса будет отличен от нуля, какую бы систему координат вы ни выбрали!
Радиусы важны! Они войдут в уравнение углового момента. Чтобы решить уравнение углового момента, сначала обратите внимание, что , поэтому угол между импульсом и радиальным вектором будет равен нулю, что дает угловой момент второго тела равным нулю (как показывает уравнение Тома-Тома). Они не параллельны для первой сферы. Глядя на геометрию в течение нескольких минут, вы, скорее, должны убедиться, что , где вектор, направленный из центра тела 1 в центр тела 2. Этот вектор имеет величину . Затем мы можем использовать теорему Пифагора, чтобы разбить на компоненты (примечание: компонент y — это просто b). Компонент x будет . Мы используем сложение векторов выше, чтобы исключить для . Примечание: t является произвольным и может быть установлено равным 1. Наконец, выполните перекрестное произведение углового момента. Вы увидите, что термин выживает и, следовательно, войдет в ваши окончательные уравнения!
С этого момента это просто беспорядочная алгебра. У нас есть 4 неизвестных и 4 уравнения. Решите эти уравнения, и вы получите скорости. Небольшой объем дополнительной работы может сказать вам, например, когда именно произошло столкновение, что важно для симуляций, и скажет вам, как далеко нужно переместить сферы с новой скоростью после столкновения (чтобы соответствовать временному шагу симуляции).
Самый последний шаг после того, как вы все это сделали, — не забыть вернуться к системным координатам. Для этого просто разверните все назад, перевернув знаки углов и переводов.
Надеюсь, это прояснит ситуацию для тех, кто смотрит на эту проблему. Это классическая одна из тех задач, которая кажется тривиально простой, но оказывается довольно сложной для решения в общем случае.
ОБНОВЛЯТЬ
Итак, все это заставило меня задуматься, и я вернулся, чтобы немного пересмотреть проблему. Короче говоря, проблема оказывается гораздо более тонкой, чем я думал изначально. Вот пара новых комментариев:
Причина, по которой вам нужен угловой момент, заключается в том, что угловой момент должен сохраняться, чтобы симуляция была физической. Если вы нарушаете угловой момент, вы нарушаете вращательную инвариантность вашей системы. Если вы делаете простой игровой движок, это может быть нормально, но если вы пытаетесь сделать физику, это определенно недопустимо. Сохранение углового момента - вот что делает радиусы важными.
Мне нужно отказаться от того, что я сказал о вращении. Спин необходим (как я покажу ниже). Однако ньютоновская гравитация не может быть источником вращения. Чтобы ввести вращение, требуется чистый крутящий момент. Напомним, что для любого (консервативного) потенциала вида , сила, действующая на сферу, эквивалентна силе, действующей на точку в ее центре. Короче говоря, любой крутящий момент, который мог бы быть создан на одной стороне сферы, нейтрализуется другой стороной, и сохраняется только сила вдоль радиальной линии. Ньютоновская гравитация явно является потенциалом этой формы (как, например, кулоновский, юкакавский и почти любой «реальный» потенциал, с которым мы имеем дело).
Итак, я разработал решение, учитывающее линейный импульс, угловой момент и кинетическую энергию. Я помещу здесь только x-компоненту вектора скорости (остальные просто связаны, подставив это обратно в уравнения:
Если вам интересно, следующий код даст такой результат в системе Mathematica:
(* Setup vectors: No Q *)
vi = {v1x, 0, 0};
v1 = {v1xf, v1yf, 0};
v2 = {v2xf, v2yf, 0};
\[Alpha] = {-Sqrt[(R1 + R2)^2 - b^2], b, 0}; (* The vector that connects the two centers at impact *)
r1 = \[Alpha] +
v1 \[CapitalDelta]t; (* NOTE: \[CapitalDelta]t should drop out! *)
r2 = v2 \[CapitalDelta]t;
(* Physics *)
Eqns0 = Simplify[{
m1 (vi.vi) == m1 (v1.v1) + m2 (v2.v2)(*+Q m1(vi.vi)*),
m1 v1x == m1 v1xf + m2 v2xf,
0 == m1 v1yf + m2 v2yf,
m1 v1x b == (m1 (r1 \[Cross] v1) + m2 (r2 \[Cross] v2))[[3]]
} /. {m1 -> m, m2 -> \[Mu] m, b -> \[Beta] (R1 + R2)},
\[Beta] < 1 && \[Beta] >= 0 && m > 0 && \[Mu] > 0 && R1 > 0 &&
R2]; Eqns0 // MatrixForm
Eqns1 = Eqns0 /. Solve[Eqns0[[2]], v2xf] //
Flatten; Eqns1 // MatrixForm
Eqns2 = Eqns1 /. Solve[Eqns1[[3]], v2yf] //
Flatten; Eqns2 // MatrixForm
(Eqns2[[1]] /. Solve[Eqns2[[4]], v1yf] // Flatten)[[1]]
FullSimplify[
Solve[%, v1xf], \[Beta] < 1 && \[Beta] >= 0 && m > 0 && \[Mu] > 0 &&
R1 > 0 && R2] // Flatten
Я поместил все в безразмерные единицы, чтобы сделать результат более прозрачным. Конкретно, отношение , отношение , где является прицельным параметром. Обратите внимание, что безразмерные параметры позволяют быстро проверить, что все члены в правой части действительно имеют размерность скорости.
Но ждать! Здесь все становится интереснее. Обратите внимание, что член в радикале может стать отрицательным для реальных ситуаций, что приводит к комплексным скоростям. Этого нельзя допустить. Мы можем построить
против
чтобы показать «разрешенную» область:
Это явно проблема. Конечно, физически возможно принимать любое значение от 0 до 1, но мы получаем мнимые скорости, если слишком велик по сравнению с .
Короче говоря, решение состоит в том, что (классическое) рассеяние на твердых сферах вообще не может быть упругим (хотя может быть в особых случаях). Я объясню, почему это так, но сначала я дам решение, которое «работает». Здесь я ввожу еще один безразмерный параметр , который представляет собой отношение потерь энергии к начальной кинетической энергии. Модифицированное решение:
Теперь мы можем построить
против.
для различных значений
:
Важно отметить, что это обеспечивает только ограничение на . Он не говорит нам, какое значение мы должны использовать. Другими словами, проблема больше не является полностью ограниченной. Итак, что здесь происходит и как мы можем это решить?
Суть в том, что рассеяние твердых сфер не является физическим! Чтобы иметь действительно твердую сферу (т.е. непроницаемую), мы потребовали бы, чтобы сила на поверхности сфер была бесконечной, т.е. закон силы был бы дельта-функцией Дирака. Импульс, испытанный тогда, будет: . Это не определено. Поэтому неудивительно, что мы можем получить какую-то странную физику из рассеяния твердых сфер. Более того, неудивительно, что задача не имеет ограничений.
Хотя мы можем сказать немного больше. До сих пор я предполагал, что мы могли бы использовать старый резерв: . Но это правило справедливо только для консервативных сил. Напомним, что консервативная сила — это сила, не зависящая от траектории. Другими словами, если вы начнете с точки и выбери любой путь, который тебе нравится, возвращаясь к точке потенциал остается прежним. Очевидно, что это не относится к рассеянию на твердых сферах. Любой путь, не связанный со столкновением, будет кардинально отличаться от любого пути, в котором он есть. На самом деле, это общее правило для любой действительно локализованной силы (примечание: потенциал Юкавы — это «локализованная» сила, но на самом деле она просто имеет экспоненциальный спад, так что в этом смысле это не локализованная сила).
В случае неконсервативной силы мы больше не можем использовать . Скорее, мы должны использовать разложение Гельмгольца, которое утверждает, что любое векторное поле силы можно разложить следующим образом: . То есть мы должны ввести векторный потенциал.
Это возвращает нас к понятию вращения. Быстрый расчет подтвердит, что векторный потенциал обычно вносит результирующий крутящий момент в процесс рассеяния, который создает вращение (конечно, для очень особых случаев). этого не будет).
Настоящая проблема сейчас в том, что полностью не ограничен проблемой. Это связано с , а значит, и внутренние степени свободы сферы. Но мы с самого начала предполагали, что сфера — это «черный ящик», для которого мы не определяем физику. Это нефизическое предположение, и оказывается, что оно имеет значение. Очевидными внутренними степенями свободы, которые необходимо учитывать, являются вектор вращения и температура (довольно естественно предположить, что столкновения между реальными телами будут влиять на теплосодержание тел). Приведенный выше аргумент предполагает, что по крайней мере часть этой энергии должна переходить в спиновую энергию, но, вероятно, не вся. Сколько именно должно входить в каждую из этих степеней свободы, зависит от специфики внутренней физики.
Я думаю, что это все, что мы можем сделать с проблемой. Если мы хотим полностью конкретизировать проблему, нам нужно создать что-то вроде «уравнения состояния» (по аналогии) для сфер, которое определяет, как энергия распределяется в телах. Разумным приближением может быть просто указание отношения температуры к вращению, хотя физическая интуиция подсказывает, что более высокие ударные параметры должны передавать большее вращение и меньшую температуру, так что, возможно, это должно быть функцией . Мне сразу пришло в голову предположить, что вращение представляет собой степенной ряд в , где константы ряда могли быть экспериментально определены или оценены по более детальным теоретическим моделям внутренней физики тел.
Если вам нужна физическая модель рассеяния, вам нужно указать физику тел. Одним из чистых решений, которое имеет смысл во многих случаях (например, для реальных макроскопических твердых тел, таких как шары для бильярда), было бы использование рассеяния Юкавы. Потенциал Юкавы консервативен и был специально разработан для аппроксимации эффектов электродинамического экранирования, возникающего в макроскопических (в основном) электрически нейтральных телах.
m1 ([\Alpha] \[Cross] vi)
эквивалентен -m1 v1x b
. Все последующие результаты необходимо обновить.
Руслан
Том-Том
Джаред
Джаред
Qмеханик
Джаред
Qмеханик
Джаред
Qмеханик
Джон Алексиу
Джон Алексиу
Джон Алексиу
Джаред