Как стать автором
Обновить

Комментарии 21

> полная модель физического тела будет описываться шестью такими уравнениями (или четырьмя для 2D случая)

Может быть, не четырьмя, а тремя? В двумерном случае у тела три степени свободы: две координаты и один угол.
это если тело жесткое, мб?
а для тела, способного менять свою форму, придется считать все 4 координаты
Очень интересно узнать откудо появилась дополнительная координата для не жесткого тела?

Мягкие тела обычно сщитаются как система частиц, где частицы связанны между собой «пружинками» (spring)
ну, это было предположение, касательно данного случая. а модель с пружинками подходит для сложного тела, на которое влияют сразу несколько сил?
Все силы влияющие на тело переносятся на частицы системы
Угу, если не изменяет память, число степеней свободы твёрдого тела считается как d(d+1)/2. (для одно и двухатомных газов в термодинамике меньшие величины берутся, но для «сложных» объектов такая формула)
d=2 → 3
d=3 → 6
s — оператор Лапласса (d/dt)

Оператор Лапласа (в трехмерном пространстве) это:


Раз уж в статье поставлен вопрос о быстродействии, сразу возникает ряд вопросов. Как вы собираетесь решать ДУ: численно или аналитически? Если численно — то каким методом? Можно ли считать, что движение по каждой из степеней свободы происходит независимо от движение по всем остальным степеням свободы? Почему?
Как решать описано во втором источнике. ДУ -> Форма Коши -> Модель пространства состояний -> Разностные уравнения.
В описанной задаче как раз не ставится вопрос возможности линеаризации. Наоборот составляются упрощенные линейные модели независимо для каждой координаты. Как следствие каждая модель описывает одномерный случай, перекрестных связей нет и поэтому оператор Лапласса записан в виде d/dt.

Вопрос точности описания реального объекта (какого-то конкретно) с его перекрестными связями в геймдеве вообще не главный. Главное — примерное правдоподобие движения, удобство описания и не слишком высокая нагрузка на процессор.
Я бы добавил еще одно главное свойство — стабильность
Об этом в статье написано в конце.
Вопрос точности описания реального объекта (какого-то конкретно) с его перекрестными связями в геймдеве вообще не главный. Главное — примерное правдоподобие движения, удобство описания и не слишком высокая нагрузка на процессор.

Тогда в чем преимущество вашей модели перед той, которая использована в изучаемом движке?
>…
Модель не моя…
Во-первых, «исключительное преимущество» не утверждается. Во-вторых, эти подходы просто разные. В-третьих, в качестве плюса можно указать бóльшую правдоподобность, бóльшую гибкость и функциональность.
Движок Farseer взят в качестве примера и не конкуренции ради. Но если сравнивать, то его модели реализуют лишь часть функционала, описанного в статье. С помощью описанного подхода можно реализовать поведение объекта такое же как в Farseer и более сложное без добавления дополнительных объектов.
Вот слайды с рабочиим моделями были бы весьма уместны…
Делал на WPF (или на SL — надо порыться в загашниках) демку:
1) квадрат на черном поле играет роль динамического объекта с двумя степенями свободы
2) по нажатию кнопки подается случайное входное воздействие — требуемая позиция (x;y)
3) в зависимости от заданной передаточной функции можно наблюдать разную динамику

Надо код подготовить и выложить на github или еще куда.
Нагляднее былоб заскриншотить видео поведения объекта.
Ну, тоесть, вместе с графиками кривулин чтобы посмотреть на анимацию.
Спасибо за подсказку. Так и мне, наверное, удобно будет — не возиться с сырым кодом.
Какой модуль используете для вычислений control или scipy.signal?
Не могу сказать точно. Использовал пэкедж. Signal processing из репозитория федоры.
А есть open source аэродиномические движется для симуляции парашюта?
Можно ли на. Farseerengine сделать что-то типа. Cut the rope?

Что общего между названием статьи и ее содержимым? Как связана передаточная функция с уравнением движенияи и как получить координаты? При чем тут устойчивость и что это вообще такое? Насколько важна «устойчивость» кирпича, который мы бросили во вражескую морду?

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

Вы пошли с обратного конца и описали аппарат, который применяется в принципе для другого — для анализа систем на устойчивость и получения характеристик переходного процесса.
И, кстати, в приведенной системе отрицательные коэф. не имеют физического смысла, поскольку являются постоянными времени или коэф. демпфирования.

> Что общего между названием статьи и ее содержимым?
> Как связана передаточная функция с уравнением движенияи и как получить координаты? При чем тут устойчивость и что это вообще такое?
Устойчивость в статье не главная линия повествования. Из уравнений движения в операторной форме передаточная функция строится элементарными преобразованиями (правило пропорций). В статье дана ссылка на предыдущий пост в серии. По ссылке можно легко узнать как по уравнению движения построить дискретную модель в пространстве состояний. Фазовый вектор в этой модели и позволяет получить координаты и производные от координат.

> Вы пошли с обратного конца и описали аппарат, который применяется в принципе для другого — для анализа систем на устойчивость и получения характеристик переходного процесса.
Аппарат анализа систем на устойчивость — прежде всего это АЧХ/ФЧХ, потом диаграммы Найквиста, Боде и пр. Получение характеристик переходного процесса — вычисление перерегулирования, колебательности и длительности переходного процесса. Ни того, ни другого в статье не описано. Приведены лишь графики, демонстрирующие влияние коэффициентов уравнения движения на поведение динамического объекта.

> И, кстати, в приведенной системе отрицательные коэф. не имеют физического смысла, поскольку являются постоянными времени или коэф. демпфирования.
При имитации конкретного физического объекта возможно и не имеет. И то не факт.
Если строить характеристическое уравнение на основе элементарных звеньев, среди которых помимо звеньев с одним действительным корнем имеются и колебательные звенья с комплексными корнями, после раскрытия скобок и приведения подобных можно как раз поиметь отрицательные коэффициенты.

Да и на самом деле в геймдеве задачи могут сильно отличаться от педантичной, точной имитации некоего конкретного объекта из жизни.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории