ПрограммированиеФорумФизика

Процедурная анимация (4 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#45
1:37, 24 янв 2010

О. Федор
о, ништяк. ща разберёмся и доведём до юзабельного состояния. вопросы и замечания:

  • в таком виде(много звеньев) решение тоже нужно, хотел до него допетрить сам, но спасибо.
  • линейые силы можно опустить, они суложняют математику, а использовать я их 100% не планирую
  • - в лагранжиане ошибка: ты расписал для случая, когда масса сосредоточена в узлах, а по условии задачи она в костях.

    ? ты уверен, что момент силы в лагранжиан входит именно в таком виде(-sum(M*ф))? не забывай, что под фi ты выбрал наклон i-го звена, а не угол между i-м и i+1-м.

    - кажется, баг, где ты считаешь частную производную лагранжиана по ф'. не забывай, что d/dф'(ф'2) = 2ф'. там же не понял, откуда вылезла сумма [k, n], разве не должно быть просто mk?

    - в случае, где берёшь частную производную по фk, аналогично, должно получиться -Mk а не -Mkфk

    ? не совсем понял, как предполагается брать полную производную по времени в последнем уравнении

    #46
    1:52, 24 янв 2010

    Так, по поводу моментов понял. ты считаешь, что момент напрямую прикладывается к звену. чтобы напряжение возникало в сочленении, нужно просто к соседним звеньям приложить противоположные моменты. думаю над остальным.

    #47
    9:52, 24 янв 2010

    Извиняюсь  оффтоп:  сделайте демку с нормальной моделью ,  например собаки, а не  того , что есть.

    Молодцы, идея интересна.

    #48
    13:00, 24 янв 2010

    Suslik
    > * линейые силы можно опустить, они суложняют математику, а использовать я их
    > 100% не планирую

    Зато я планирую. Я выложил просто свою предварительную модель, ту что пока наработал.

    > - в лагранжиане ошибка: ты расписал для случая, когда масса сосредоточена в
    > узлах, а по условии задачи она в костях.

    Массы нужно ВСЕГДА распологать в узлах, это упрощает расчет. Если у тебя масса по условиям определена для костей, то раскидай ее на узлы.

    > ? ты уверен, что момент силы в лагранжиан входит именно в таком
    > виде(-sum(M*ф))? не забывай, что под фi ты выбрал наклон i-го звена, а не угол
    > между i-м и i+1-м.

    Имеется в виду внешний момент. Внутренний момент (между двумя костями) ты можешь представить как разность двух внешних моментов.

    > - кажется, баг, где ты считаешь частную производную лагранжиана по ф'. не
    > забывай, что d/dф'(ф'2) = 2ф'. там же не понял, откуда вылезла сумма [k, n],
    > разве не должно быть просто mk?

    Это да, упустил.

    > - в случае, где берёшь частную производную по фk, аналогично, должно получиться
    > -Mk а не -Mkфk

    Конечно.

    > ? не совсем понял, как предполагается брать полную производную по времени в
    > последнем уравнении

    от fi и fi', естественно, там появятся функции от fi,fi' и fi'', поэтому уравнение будет второго порядка.

    Suslik
    > Так, по поводу моментов понял. ты считаешь, что момент напрямую прикладывается
    > к звену. чтобы напряжение возникало в сочленении, нужно просто к соседним
    > звеньям приложить противоположные моменты. думаю над остальным.

    Правильно, я об этом выше упомянул.

    #49
    14:13, 24 янв 2010

    Исправил замеченные ошибки и продифференцировал последнию систему.

    #50
    14:52, 24 янв 2010

    ksacvet777
    > Извиняюсь оффтоп: сделайте демку с нормальной моделью , например собаки, а
    > не того , что есть
    вот ещё, зачем? это демка физики, а не графики.

    О. Федор
    > Массы нужно ВСЕГДА распологать в узлах, это упрощает расчет. Если у тебя масса по условиям определена для костей, то раскидай ее на узлы.
    это rigid body физика, я задаю положение костей и скрепляю их суставами. в такой формулировке положить массу в суставы нельзя ну никак. а расчёт это да, упрощает. то есть я ищу аналитическое решение только для того, чтобы посчитать, какие моменты прикладывать к моделируемой численно системе твёрдых тел.
    fxd: вообще, в принципе, можно указать, что центр масс кости находится в суставе. центр масс следующей кости - в следующем суставе, и так далее, центр масс последней кости находится в висячем конце. насколько это будет физично? могу просто смоделировать без внутренних напряжений, расскажу о результатах.

    >от fi и fi', естественно, там появятся функции от fi,fi' и fi'', поэтому уравнение будет второго порядка
    мне решительно не нравится перспектива решать систему диффуров. думаю, в моём частном случае она должна иметь какое-то халтурное решение, например, возможно, её можно свести к системе из трёх линейных уравнений.

    ps респект за умение не бояться суровых вычислений и не бояться ошибаться.

    #51
    15:26, 24 янв 2010

    Suslik
    > это rigid body физика, я задаю положение костей и скрепляю их суставами. в
    > такой формулировке положить массу в суставы нельзя ну никак. а расчёт это да,
    > упрощает. то есть я ищу аналитическое решение только для того, чтобы посчитать,
    > какие моменты прикладывать к моделируемой численно системе твёрдых тел.

    Что тебе, трудно массы предварительно подсчитать? Берешь массу кости, делишь на два и эти результаты аддируешь в массы соответствющих шарниров. Вообще это не вопрос.


    > fxd: вообще, в принципе, можно указать, что центр масс кости находится в
    > суставе. центр масс следующей кости - в следующем суставе, и так далее, центр
    > масс последней кости находится в висячем конце. насколько это будет физично?

    Конечно, так делать нельзя, делай как я написал.

    > мне решительно не нравится перспектива решать систему диффуров. думаю, в моём
    > частном случае она должна иметь какое-то халтурное решение, например, возможно,
    > её можно свести к системе из трёх линейных уравнений.

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

    > ps респект за умение не бояться суровых вычислений и не бояться ошибаться.

    Спасибо конечно, но вот тебе решение для внутренних моментов
    suslik - Lagrange4 | Процедурная анимация
    В этом случае i момент - это момент между i-1 и i костями.
    Посмотри обязательно на ошибки, я пока сильно не проверял.

    #52
    15:57, 24 янв 2010

    О. Федор
    > Что тебе, трудно массы предварительно подсчитать? Берешь массу кости, делишь на
    > два и эти результаты аддируешь в массы соответствющих шарниров. Вообще это не
    > вопрос.
    у шарниров вообще массы нет. есть кости - твёрдые тела, заданные своим центром масс, ориентацией, линейной и угловой скоростями. на их степени свободы наложены ограничения: в определённых точках проекция относительной скорости на некоторые оси приравнивается к нулю, называются джойнтами. это не я это придумал, стандартный подход к моделированию динамики твёрдых тел. у меня экзамен завтра, пока математику проверять не могу, но позже обязательно посмотрю, спасибо.

    >В этом случае i момент - это момент между i-1 и i костями.
    может быть, проще ввести и углы не для наклона i-й кости, а угол между i-1 и i?

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

    #53
    19:54, 24 янв 2010

    Suslik
    сорри за оффтоп, но у тебя в демках у "животного" задние ноги неправильной формы - одного сустава не хватает. Или для тебя это пока неважно?

    #54
    20:10, 24 янв 2010

    Suslik
    > у шарниров вообще массы нет. есть кости - твёрдые тела, заданные своим центром
    > масс, ориентацией, линейной и угловой скоростями. на их степени свободы
    > наложены ограничения: в определённых точках проекция относительной скорости на
    > некоторые оси приравнивается к нулю, называются джойнтами. это не я это
    > придумал, стандартный подход к моделированию динамики твёрдых тел. у меня
    > экзамен завтра, пока математику проверять не могу, но позже обязательно
    > посмотрю, спасибо.

    Ну ты упоротый. Я же тебе объяснил как делать. Дело совсем не массе шарниров, делов в распределенной на шарниры массе. Это обычный прием из динамики машин.

    > может быть, проще ввести и углы не для наклона i-й кости, а угол между i-1 и i?

    Не проще, тогда появятся куча лишних зависимостей.

    > вопрос с массой, сосредоточенной в сочленениях, а не в костях открыт. во всей
    > игровой физике принято в рэгдоллах массу сосредотачивать в костях, я не уверен,
    > что сосредоточить её в суставах будет физически корректно

    Корректно, не переживай. А игровую физику давно уже надо ставить на прочную базу теории машин.

    #55
    20:13, 24 янв 2010

    Помеха
    > сорри за оффтоп, но у тебя в демках у "животного" задние ноги неправильной
    > формы - одного сустава не хватает. Или для тебя это пока неважно?

    Suslik еще помилосердствовал, я вообще рассматривал варианты с еще более усеченными конечностями животин. Для модели сойдет, а там можно будет дополнить до любой желаемой подробности.

    #56
    20:13, 24 янв 2010

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

    О. Федор
    > Ну ты упоротый. Я же тебе объяснил как делать. Дело совсем не массе шарниров,
    > делов в распределенной на шарниры массе. Это обычный прием из динамики машин.
    да блин, ты пойми, нет ни в одном API такой функции "распределить массу сюда и вот сюда". есть твёрдые тела и их можно связывать джойнтами. как ты предлагаешь расположить твёрдые тела и джойнты для них, чтобы масса оказалась чудесным образом сосредоточенной в сочленениях?

    #57
    20:36, 24 янв 2010

    Suslik
    > да блин, ты пойми, нет ни в одном API такой функции "распределить массу сюда и
    > вот сюда". есть твёрдые тела и их можно связывать джойнтами. как ты предлагаешь
    > расположить твёрдые тела и джойнты для них, чтобы масса оказалась чудесным
    > образом сосредоточенной в сочленениях?

    Не колышет.

    #58
    20:57, 24 янв 2010

    >Не колышет.
    причина, почему я не могу расположить массу в узлах, проста: физически невозможно сосредоточить массу в узлах, а момент инерции - в костях. именно так ты считаешь в выкладках. дискасс.

    #59
    14:02, 25 янв 2010

    Suslik
    > причина, почему я не могу расположить массу в узлах, проста: физически
    > невозможно сосредоточить массу в узлах, а момент инерции - в костях. именно так
    > ты считаешь в выкладках

    Сможешь, не сомневайся.
    Итак смотрим на эту задачу. Дано:
    Кость, с массой расположенной в центре тяжести и момент инерции кости.
    Если исходную массу распределить на шарниры (концы кости), при этом пропорционально исходной их загрузке, то при условии коррекции и момента инерции (разведение масс приводит к увеличению момента инерции) путем вычитания из исходного момента инерции масс распределенных по шарнирам, то физически НИЧЕГО не изменится.
    Этот метод имеет то преимущество, что новое распределение масс и новые моменты инерции костей нужно пересчитывать только ОДИН раз в начале расчетов.
    Если же использовать массы расположенные в центрах костей, то ВСЯКИЙ раз причем в цикле придется пересчитывать координаты этой массы.

    Страницы: 1 2 3 4 5 6 7 Следующая »
    ПрограммированиеФорумФизика

    Тема в архиве.