Форум программистов, компьютерный форум, киберфорум
Наши страницы
Механика
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
1

Столкновение вращающихся тел

19.01.2018, 16:05. Просмотров 1205. Ответов 73
Метки нет (Все метки)

Здравствуйте господа, позвольте снова к вам обратиться c:
Гугл не помогает, сам ошибку найти не могу.
Имеется два твёрдых тела, одно из них статично (масса считается бесконечностью), есть точка их контакта, коэф. упругости данного столкновения, коэф. трения, скорость и масса динамического объекта известна, вопрос: как вычислить импульс, который должен быть приложен к динамическому объекту и по какому алгоритму его прикладывать к объекту?
на данный момент у меня прикладывание импульса в точку реализовано так: вектор импульса проецируется на вектор MR, создаваемый точкой приложения импульса и центром масс объекта, это уходит в линейный импульс (т.е. тот, что влияет напрямую на скорость объекта), после чего тот же вектор импульса проецируется на перпендикуляр к вектору MR, лежащий в плоскости, создаваемой вектором MR и вектором импульса, после чего это изменяет скорость вращения объекта в оси, получаемой векторным произведением MR и вектором импульса на угловую скорость, зависящую от ранее спроецированного углового импульса и длины MR, вот картинка для наглядности:
https://yadi.sk/i/qfpA3ZI03RYRiC (тут же можно ссылки на ЯД кидать, надеюсь? )
далее идёт так:
velocity += linearImpulse / mass
где velocity - скорость объекта, linearImpulse - линейный импульс, а mass - масса объекта
и теперь самое весёлое, изменение угловой скорости (angularVelocity) идёт через кватернионы, а именно - создаётся кватернион из оси и угла, где ось - векторное произведение вектора импульса и OA, а угол - angularImpulse.magnitude() / (mass * OA.magnitude()), где angularImpulse.magnitude() - длина вектора-углового импульса, mass - опять же масса объекта, а OA.magnitude() - длина OA (см. рисунок)
после чего этот кватернион умножается на уже имеющийся кватернион угловой скорости, что, по логике, должно давать новую угловую скорость всего объекта, но в результате происходит некая ахинея, которую описывать не очень хочется (точка столкновения определяется верно, проверял, тут косяк именно либо в вычислении импульса, либо в его разложении на линейный и угловой и последующее присваивание)
Правила форума, пункт 4.11. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. По этой же причине коды программ также должны находиться на форуме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2018, 16:05
Ответы с готовыми решениями:

Работа вращающихся тел
Такой вопрос, чему равны суммы работ внешних сил 2 и 4 колеса, если груз 1...

Вычислить кинетическую энергию системы вращающихся шариков
Кто может решить эту задачу, помогите! Два шарика, соединённые прямыми...

Столкновение фигур
Добрый день, возник очередной вопрос(не судите строго, не очень дружу с...

Столкновение объектов
У меня имеются проблемы с пониманием того, как рассчитывать вектора скорости...

Упругое столкновение и пружина
Система состоит из двух шаров с массами m и M, соединенных между собой...

73
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 16:24 2
Второй закон ньютона для угловой скорости. изменение угловой скорости зависит не от массы тела а от момента энерции относительно оси. Вычисление момента относительно произвольно направленной оси решается путем интегрирования по всему телу. Поэтому его считают один раз относительно главных осей. Потом оный вектор MR раскладывается по главным осям, и дальше рассчитывается угловое ускорение по углам эйлера. Ну а их уже можно в матрицу или кватернион преобразовать.
Есть альтернативный подход - существует такая штука как эллипсоид энерции. т.е. Эллипсоид выровнянный по глобальным осям с полуосями равными моментам относительно глобальных осей. Момент инерции относительно произвольной оси проходящей через центр будет равен радиус-вектору отсекаемому от оси эллипсоидом.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 16:30  [ТС] 3
если честно - почти ничего не понял c:
можете визуально написать (нарисовать)? или каким то другим способом? или хотя бы скиньте ссылки на материал, который можно почитать
так же не нашёл информации про вычисление импульса в столкновении вращающихся тел
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 18:01 4
для начала
https://ru.wikipedia.org/wiki/%D0%9C...8C%D1%81%D0%B0
Ну а вообще там надо сначала реализовывать воздействие материальной точки на тело. Кстати именно по этому движок буллет и называется буллет. Сначала считали только движние тел под воздйствием попадающих в него пуль. Потом пошли дальше. Причина - передача вращения фактически интеграл передач единичных точек по площади контакта. т.е. равнодействующая одного и того же пятна контакта различна в зависимости от характера движения толкающего тела. Мгновенные импульсы единичных точек контакта будут различны при поступательном и вращательном движении одного и того же тела приведшего к контакту.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 19:06  [ТС] 5
у меня есть функция, возвращающая набор точек, обозначающих поверхность (либо отрезок, либо точку) контакта, я беру их среднее арифметическое и всё, это и считаю точкой контакта, можно ли всё рассчитывать относительно неё? зачем интегрировать? когда я ещё даже не дошёл до этого по программе (11 класс (2 курс колледжа) в процессе), я этого точно не реализую, потому упрощаю до одной точки - середины поверхности столкновения
и, как я понял, раскладываю таки импульс я правильно (и прикладываю соответственно), что то не так только с умножением кватерниона создавшегося углового ускорения на уже имеющееся угловое ускорения объекта и что то не так ещё с просчётом самого импульса, видимо.
у меня он считается просто: я нахожу какая скорость у объекта должна быть если бы вращения не было, учитывая коэф. трения и упругости, после чего просто нахожу разницу между этой и уже имеющейся скоростью, после чего умножаю на массу (из формулы зависимости скорости от импульса), чем и нахожу импульс
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 19:12 6
Цитата Сообщение от Nordicus666 Посмотреть сообщение
у меня есть функция, возвращающая набор точек, обозначающих поверхность (либо отрезок, либо точку) контакта, я беру их среднее арифметическое и всё, это и считаю точкой контакта, можно ли всё рассчитывать относительно неё?
При поступательном движении толкающего тела на вскидку вроде бы можно. Хотя досканально это еще не капал. Интеграл плеч единичных точек приложения сойдется по всей видимости именно к геометрическому центру пятна. А мгновенные моменты у всех точек равны. При вращательном врядли, поскольку мгновенные моменты точек различны.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 19:15  [ТС] 7
ну, давайте допустим, что эта точка - точка касания, рассчитывать всё относительно неё, вращение объекта в кватернионах выражено, как рассчитать то импульс? и приложить к объекту?
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 19:20 8
точно так же как поступательное движение только с раскладкой по осям - момент силы делится на момент инерции
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 20:12  [ТС] 9
т.е. фактически прикладывание импульса в шапке темы и на рисунке правильно расписано? тогда вопрос в вычислении импульса
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 20:18 10
Цитата Сообщение от Nordicus666 Посмотреть сообщение
т.е. фактически прикладывание импульса в шапке темы и на рисунке правильно расписано?
В принципе да. Только вместо массы момент инерции относительно оси.
Цитата Сообщение от Nordicus666 Посмотреть сообщение
тогда вопрос в вычислении импульса
Вот в этом и вся сложность. Поскольку он интеграл по пятну контакта.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 20:19  [ТС] 11
формулы можете предоставить? т.е. известно потенциально всё, что может быть известно
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 20:36 12
Nordicus666, Вот по той ссылке в разделе импульс момента силы. А растет все из Сохранение момента импульса. Весь вопрос в том насколько импульс момента силы по пятну может быть проинтегрирован аналитически.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 22:29  [ТС] 13
я из той формулы половину не понимаю c:
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 22:38 14
Nordicus666, Суть - момент вращения (аналог импульса тела во вращательном движении) есть интеграл суммы моментов элементарных частиц (которые можно представить материальными точками) из которых состоит тело. Отличие от поступательного движения в том что плече на центр масс у частиц разное, соответсвенно и момент у каждой частицы разный в отличии от поступательного движения где все импульсы частиц одинаковы.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 22:57  [ТС] 15
но.. что это даёт то? если есть одна точка - точка касания и мы всё считаем в ней
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
19.01.2018, 23:06 16
Nordicus666, Ну в случае одной точки нужно вычислить переданные мгновенные импульсы силы для каждого тела в точке касания. Вот именно этого я кстати еще и не делал. Потом все просто - эти импульсы силы раскладываем по осям каждого тела. Делал вращение с реактивной тягой - т.е. приложение известного импульса силы к каким либо точкам тела. С раскладкой по осям работает на ура.
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
19.01.2018, 23:10  [ТС] 17
не совсем понял, где тут взаимодействие, если импульсы каждого из тел раскладывается на его же оси и про другое тело в этом моменте ни слова, а так же где тут трение и упругость
либо сейчас уже три ночи и я просто нифига не понимаю бтв
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
20.01.2018, 00:26 18
Цитата Сообщение от Nordicus666 Посмотреть сообщение
если есть одна точка - точка касания и мы всё считаем в ней
Когда есть вектор импульса силы в точке касания он раскладывается на три главные оси тела, получаем моменты импульса относительно осей. Суммируем с накопленными по осям моментами. Делим на моменты инерции. Имеем угловую скорость относительно главных осей тела (Эйлеровы углы). Если нужно преобразовываем в кватернион. С кватернионами гораздо сложнее будет. Потому что изменение ориентации оси не равноценно по осям в следствие неравных моментов инерции по осям. Привести к сфере эллипсоид инерции при этом можно только для одного тела а не для обоих сразу.

Добавлено через 4 минуты
Цитата Сообщение от Nordicus666 Посмотреть сообщение
если импульсы каждого из тел раскладывается на его же оси и про другое тело в этом моменте ни слова, а
Раскладывается импульс силы переданный от другого тела
0
Nordicus666
2 / 2 / 0
Регистрация: 05.04.2016
Сообщений: 220
20.01.2018, 14:57  [ТС] 19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Когда есть вектор импульса силы в точке касания он раскладывается на три главные оси тела, получаем моменты импульса относительно осей. Суммируем с накопленными по осям моментами. Делим на моменты инерции. Имеем угловую скорость относительно главных осей тела (Эйлеровы углы). Если нужно преобразовываем в кватернион. С кватернионами гораздо сложнее будет. Потому что изменение ориентации оси не равноценно по осям в следствие неравных моментов инерции по осям. Привести к сфере эллипсоид инерции при этом можно только для одного тела а не для обоих сразу.
а зачем раскладывать на эйлеровы углы? если из точки приложения и импульса мы уже имеем ось и угловую скорость, умножая один кватернион на другой, мы поворачиваем первый вторым, следовательно по логике это должно давать изменение угловой скорости при прикладывании импульса
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Раскладывается импульс силы переданный от другого тела
а как его тогда посчитать?
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
20.01.2018, 18:23 20
Цитата Сообщение от Nordicus666 Посмотреть сообщение
если из точки приложения и импульса мы уже имеем ось и угловую скорость,
Не имеем. Для того чтобы из момента получить угловую скорость его нужно не на массу делить а на момент инерции который не равен по осям.
Цитата Сообщение от Nordicus666 Посмотреть сообщение
мы поворачиваем первый вторым,
Только поворачивать его нужно в эллиптически искривленном пространстве. Можно конечно попробовать искривить пространство так чтобы эллипсоид инерции стал шаром, повернуть, потом искривить обратно.
0
20.01.2018, 18:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2018, 18:23

Столкновение пластилиновых шариков
Два маленьких шарика А и В из пластилина массой М и 3М соответственно подвешены...

Соударение тел
Есть вопрос, произошло практике! Интересно разобрать математически и физически!...

Нецентральное упругое столкновение шаров
Помогите пожалуйста с задачкой. Важен сам процесс решения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru