Russian Qt Forum

Программирование => Алгоритмы => Тема начата: Igors от Октябрь 08, 2015, 16:35



Название: Пружина
Отправлено: Igors от Октябрь 08, 2015, 16:35
Добрый день

Есть объект закрепленный в нижней точке. Под действием какой-то силы F (точка ее приложения известна, вверху) движок поворачивает объект (отклоняет от исходного положения). Известно все что угодно:

- текущая линейная и угловая скорости
- текущая сила и текущий момент вращения
- текущие и начальные положения
- масса, точка крепления, точка приложения силы

Нужно: симитировать поведение пружины, (изменив силу и/или момент вращения) т.е. объект поворачивается до какого-то предела, пружина не дает дальше. А если сила перестала действовать, то объект должен вернуться в исходное состояние, возможно с какими-то "пере-колебаниями". Пользователь задает жесткость пружины и насколько быстро затухают пере-колебания. Задавать еще какие-то параметры можно.

Начал делать по аналогии с маятником - не выходит. Объект или вообще проворачивается (если жесткость мала) или сразу же возникают пере-колебания (хотя силу никто не убирал) которые никогда не затухают.

Спасибо

[OFF]Народная примета: когда нужен научный работник - его никогда нет. Сидит играется в дустовские макросы  :'(
[/OFF]


Название: Re: Пружина
Отправлено: m_ax от Октябрь 08, 2015, 17:12
Цитировать
Начал делать по аналогии с маятником - не выходит. Объект или вообще проворачивается (если жесткость мала) или сразу же возникают пере-колебания (хотя силу никто не убирал) которые никогда не затухают.
Возьмите 4 пружины с затуханием b (F = -k(r - r0) - b*v) (v - скорость) и привяжите их одним концом к какой либо точке на вершине тела, а другими к плоскости.    


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 08, 2015, 20:28
Добрый день

Есть объект закрепленный в нижней точке. Под действием какой-то силы F (точка ее приложения известна, вверху) движок поворачивает объект (отклоняет от исходного положения). Известно все что угодно:

- текущая линейная и угловая скорости
- текущая сила и текущий момент вращения
- текущие и начальные положения
- масса, точка крепления, точка приложения силы

Нужно: симитировать поведение пружины, (изменив силу и/или момент вращения) т.е. объект поворачивается до какого-то предела, пружина не дает дальше. А если сила перестала действовать, то объект должен вернуться в исходное состояние, возможно с какими-то "пере-колебаниями". Пользователь задает жесткость пружины и насколько быстро затухают пере-колебания. Задавать еще какие-то параметры можно.

Начал делать по аналогии с маятником - не выходит. Объект или вообще проворачивается (если жесткость мала) или сразу же возникают пере-колебания (хотя силу никто не убирал) которые никогда не затухают.

Спасибо

[OFF]Народная примета: когда нужен научный работник - его никогда нет. Сидит играется в дустовские макросы  :'(
[/OFF]

Извените Игорь, что меня много на сейчас.
Я вам расскажу про свой опыт, не претендуя нивкоем случае на какой-то разворот событий.
Повторюсь - считайте это моими мыслями, которые я говорю сам себе.

Только системный подход. Нету всего лишь. Нелья пользоваться формулами. Нельзя - нужно описывать объект динамически и силы, которые действуют на него точно также. Это дифуры. Именно они, дифференциальные уравнения. Это будет проще, вы всё равно к ним вернётесь, не к формулам.

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


Название: Re: Пружина
Отправлено: m_ax от Октябрь 08, 2015, 21:27
Цитировать
Нелья пользоваться формулами.
В смысле нельзя  ???

Цитировать
Нельзя - нужно описывать объект динамически и силы, которые действуют на него точно также. Это дифуры. Именно они, дифференциальные уравнения.
Если имеется в виду динамика (классическая механика) то она, конечно, использует язык диф. уравнений) Но насколько я в курсе, тот физический движок, под капотом, и считает дифуры) Так что всё нормуль) Пользователь лишь задаёт эти силы.

Цитировать
Почему. Вы запросто можете заменить формулы диф. уравнениями, числовые методы решений есть немерянно, они же не ручками решаются. Это раз.
   
Это наивное заблуждение..( Я, например, стараюсь максимально ручками, а уж если совсем никак, то уж численные методы и программирование( Куда деться(




Название: Re: Пружина
Отправлено: Igors от Октябрь 10, 2015, 06:01
Возьмите 4 пружины с затуханием b (F = -k(r - r0) - b*v) (v - скорость) и привяжите их одним концом к какой либо точке на вершине тела, а другими к плоскости.    
??? Может Вы имели ввиду деформацию куба, но так задача не стоит - нужен просто доворот, т.е. линейная операция.

Проблемы как раз с затуханием (b). Я думал так: это типа сила трения, она может полностью затормозить движение объекта, но не может направить его в противоположную сторону. Поэтому b должно быть от 0 до 1. Но это почему-то не работает  :'( Попробовал бОльшие значения b - уже на 2 все норм. Почему- хз, перепроверил неск раз, никакой ошибки не нашел

Да, и вот еще: объясните почему момент вращения здесь совершенно не роялит? (сила приложена в верхней точке)

Спасибо


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 10, 2015, 08:28
Это наивное заблуждение..( Я, например, стараюсь максимально ручками, а уж если совсем никак, то уж численные методы и программирование( Куда деться(

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


Название: Re: Пружина
Отправлено: m_ax от Октябрь 11, 2015, 13:59
Цитировать
Проблемы как раз с затуханием (b). Я думал так: это типа сила трения, она может полностью затормозить движение объекта, но не может направить его в противоположную сторону. Поэтому b должно быть от 0 до 1.
Чиво? По чему до единицы? Хотя мне эти цмфры вообще ни о чём не говорят.. Коэффициент b - размерная величина. Вы в чём его мерите? Для оценки величины затухания (пусть даже грубой) можно рассмотреть одномерную модель осциллятора с затуханием (школьная задачка) см. аттач. Вот и выбирайте какой вариант зависимости Вам нужен.


Цитировать
Может Вы имели ввиду деформацию куба, но так задача не стоит - нужен просто доворот, т.е. линейная операция.
Какой ещё доворот и какая деформация куба? Я вообще о другом.. Я вот о чём: см. другой аттач. (сининьким - это пружинки)



Название: Re: Пружина
Отправлено: m_ax от Октябрь 11, 2015, 14:41
Это наивное заблуждение..( Я, например, стараюсь максимально ручками, а уж если совсем никак, то уж численные методы и программирование( Куда деться(

Вы имеете в виду аналитическое решение? Ну так это не про нас, вы же не думаете, что здесь есть люди, которые могут сами описать систему диф. уравнениями. Я не могу, это другой уровень, я могу только готовые брать.
Я имею в виду, что перед тем как тупо в лоб засовывать теорию в численные методы, нужно максимально ручками её для этого "подготовить". Что-то, возможно решить аналитически ну или полуаналитически, что то, возможно, упростить (в разумных пределах), а уже потом, года уже станет ясно что всё, дальше только численно, только тогда применять ч.м. Это существенно может ускорить дальнейшие расчёты. Существенно.

Цитировать
я могу только готовые брать.
Вот есть один маленький примерчик по этому поводу: Система из двух дифуров (оч. простых) и одно алгебраическое уравнение, ну и + граничные условия к дифурам. Так вот, если это тупо в лоб решать (численно), то ответа вы не получите, или будете ждать его долго-долгоо.. Но если перед тем как это всё вгонять в комп сделать несколько выкладок, то время на последующие вычисления резко сокращается (~msec).

Вот я об этом и говорю.
 


Название: Re: Пружина
Отправлено: Igors от Октябрь 11, 2015, 16:31
Какой ещё доворот и какая деформация куба?
Доворот - линейная, обратимая операция, куб поворачивается в пр-ве, но не меняет свою форму/геометрию. Деформация - в общем случае нелинейное и необратимое преобразование, напр изгиб куба или хотя бы изменение одной из его вершин. Хотя после этого он уже и не куб.
Я вообще о другом.. Я вот о чём: см. другой аттач. (сининьким - это пружинки)
А что это? Откуда взялись 4 синенькие пружинки? Зачем их четыре ???

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

Чиво? По чему до единицы? Хотя мне эти цмфры вообще ни о чём не говорят.. Коэффициент b - размерная величина
Вернемся к человеческому ур-ю пружины
Цитировать
F = -k(r - r0) - b*v) (v - скорость)
Пусть первая компонента k(r - r0) близка к нулю. Масса константа, пусть = 1. Так что выходит, b > 1 направляет объект в противоположную сторону? Где ошибка в моих рассуждениях?


Название: Re: Пружина
Отправлено: m_ax от Октябрь 11, 2015, 16:56
Цитировать
А что это? Откуда взялись 4 синенькие пружинки? Зачем их четыре
Вы же сами писали:
Цитировать
Нужно: симитировать поведение пружины, (изменив силу и/или момент вращения) т.е. объект поворачивается до какого-то предела, пружина не дает дальше. А если сила перестала действовать, то объект должен вернуться в исходное состояние, возможно с какими-то "пере-колебаниями".
Вот 4 пружины будут возвращать тело после действия внешней силы. Затухание в пружинах введено для того, чтоб заглушить колебания этого тела. А 4 их для устойчивости)

Цитировать
Я не должен менять позицию/скорость/ускорение как хочу, потому что в сцене есть еще много чего что может их изменить.
А их и не нужно изменять. Это сила упругости зависит от текущих скорости, координаты и т.д.. См. уравнение (1).

Цитировать
Пусть первая компонента k(r - r0) близка к нулю. Масса константа, пусть = 1. Так что выходит, b > 1 направляет объект в противоположную сторону? Где ошибка в моих рассуждениях?
В отсутствии знания школьной физики) Случай b > 0 говорит о том, что сила сопротивления всегда направленна против скорости движения тела. Это значит, что оно (тело) если на него не будет действовать внешняя сила, остановится, за время порядка обратной gamma (см. решение ур. 2).

 



Название: Re: Пружина
Отправлено: Igors от Октябрь 12, 2015, 10:45
Вот 4 пружины будут возвращать тело после действия внешней силы. Затухание в пружинах введено для того, чтоб заглушить колебания этого тела. А 4 их для устойчивости)
А зачем мне делать через то самое место, если я могу иметь всего одну пружину и выразить силу через угол поворота - или вообще работать с угловой скоростью?

В отсутствии знания школьной физики) Случай b > 0 говорит о том, что сила сопротивления всегда направленна против скорости движения тела. Это значит, что оно (тело) если на него не будет действовать внешняя сила, остановится, за время порядка обратной gamma (см. решение ур. 2).
Ну вот, наколотили понтов - а ведь все гораздо проще, и знание дифуров необязательно. Положим массу = 1, чтобы она не путалась под ногами
Цитировать
v += a * t;  // может лучше dt
На каждом шаге ускорение добавляется к скорости. Пусть v = 1, a = -3, t = 1. Новая скорость v = 1 - 3 = -2. Следующий шаг v = -2 +3 (противоположно скорости). Новая скорость опять +1. Итого: колебания никогда не затухают - что бы ни говорили вумные дифуры  :)  Конечно если уменьшить t то может все станет норм, но такой свободы действий нет.   

Ладно, сейчас кое-как работает, но беда в том что оба параметра: stiffness (жесткость) и damping (затухание) пользователю очень трудно настроить. Он знает величину (порядок) сил, напр 100. Какое значение жесткости ему выставлять?  После десятка-двух проб удается нащупать - ага, вроде жесткость тоже 100 дает разумный рез-т. Теперь сила 10. Но с жесткостью 10 (по аналогии) поведение уже совсем другое. Опять эксперименты... Теперь он решил сделать кубик повыше - оба-на, все развалилось  :'( А с затуханием еще хуже - ведь начиная с какого-то значения оно начинает работать "наоборот". Что бы Вы посоветовали?

Спасибо 






Название: Re: Пружина
Отправлено: Racheengel от Октябрь 12, 2015, 11:06
А как насчет буллета или ньютона? Там !может быть! подобный функционал.


Название: Re: Пружина
Отправлено: Igors от Октябрь 12, 2015, 11:08
А как насчет буллета или ньютона? Там !может быть! подобный функционал.
Так это вся песня внутри Bullet


Название: Re: Пружина
Отправлено: kambala от Октябрь 12, 2015, 16:41
Цитировать
v += a * t;  // может лучше dt
На каждом шаге ускорение добавляется к скорости. Пусть v = 1, a = -3, t = 1. Новая скорость v = 1 - 3 = -2. Следующий шаг v = -2 +3 (противоположно скорости). Новая скорость опять +1. Итого: колебания никогда не затухают - что бы ни говорили вумные дифуры  :)
откуда во второй итерации +3 если должно быть -3? a * t = -3, фиксированная величина, скорость будет стремиться к -бесконечности.


Название: Re: Пружина
Отправлено: m_ax от Октябрь 12, 2015, 20:47
Цитировать
На каждом шаге ускорение добавляется к скорости. Пусть v = 1, a = -3, t = 1. Новая скорость v = 1 - 3 = -2. Следующий шаг v = -2 +3 (противоположно скорости). Новая скорость опять +1. Итого: колебания никогда не затухают
У меня просто слов нет..(

Ничего здесь посоветовать не могу..


Название: Re: Пружина
Отправлено: Igors от Октябрь 13, 2015, 08:36
откуда во второй итерации +3 если должно быть -3? a * t = -3, фиксированная величина, скорость будет стремиться к -бесконечности.
Да, уточним
Цитировать
v += -b * dt * v
Изначально v = 1, dt = 1, b = 3 (b - жесткость затухание)
Первый шаг v = 1 - 3 = -2. Второй шаг v = -2 - 3 * (-2) = 4. Получили вообще положительную обратную связь. Конечно попробовал ограничить b = min(b, 1 / dt) - да, так вразнос не идет, но пере-колебания затухают очень медленно (если вообще затухают)

У меня просто слов нет..(

Ничего здесь посоветовать не могу..
А я нисколько не удивлен - это обычный рез-т научного работника  :)


Название: Re: Пружина
Отправлено: m_ax от Октябрь 13, 2015, 11:21
Цитировать
А я нисколько не удивлен - это обычный рез-т научного работника
Конечно, о чём тут говорить, когда видишь такое:
Цитировать
Первый шаг v = 1 - 3 = -2. Второй шаг v = -2 - 3 * (-2) = 4. Получили вообще положительную обратную связь.


Название: Re: Пружина
Отправлено: Racheengel от Октябрь 13, 2015, 13:01
момент, а разве в уравнении v += -b * dt * v должна быть скорость в правой части? не УСКОРЕНИЕ?

т.е. v += -b * dt * a


Название: Re: Пружина
Отправлено: Igors от Октябрь 13, 2015, 16:27
момент, а разве в уравнении v += -b * dt * v должна быть скорость в правой части? не УСКОРЕНИЕ?

т.е. v += -b * dt * a
v += a * dt;  // к текущей скорости добавляем текущее ускорение
где
a = -b * v;   // вектор ускорения противоположен текущей скорости (трение, тормоз)

Конечно, о чём тут говорить, когда видишь такое:
Та я уже понял что кроме "фыркания" ничего не будет :) Теплилась слабая надежда, но увы, все как всегда  :'(


Название: Re: Пружина
Отправлено: Racheengel от Октябрь 13, 2015, 17:04
Но если b > v про dt = 1, то объект будет только ускоряться, болтаясь в разные стороны :)


Название: Re: Пружина
Отправлено: kambala от Октябрь 13, 2015, 17:23
если я правильно понял, отрицательная скорость — это скорость в противоположном направлении.

преобразуем v += -b * dt * v: v1 = v0(1 - b*dt).

для остановки (скорость стремится к 0) необходимо, чтоб |1 - b*dt| < 1, т.е. 0 < b*dt < 2.


Название: Re: Пружина
Отправлено: m_ax от Октябрь 13, 2015, 18:13
Цитировать
Та я уже понял что кроме "фыркания" ничего не будет  :) Теплилась слабая надежда, но увы, все как всегда   :'(

У меня эта надежда уже довно в багажнике холодная лежит)

Цитировать
для остановки (скорость стремится к 0) необходимо, чтоб |1 - b*dt| < 1, т.е. 0 < b*dt < 2.
Даже больше скажу, для метода Эйлера, для данного уравнения, чтоб претендовать на какую-то точность должно выполняться условие b*dt << 1.

RK4 более устойчивый алгоритм:
Код
C++ (Qt)
#include <iostream>
#include <fstream>
#include <specmath/ode.h>
 
struct dynamical_system
{
   dynamical_system(const double & b = 1.0) : _b(b) {}
 
   void operator()(const double & v, const double & /*t*/, double & res) const
   {
       res = -_b*v;
   }
 
private:
   double _b;
};
 
 
int main()
{
   std::ofstream out("data.txt");
 
   double v = 1.0; // init velocity
   const double t0 = 0.0;
   const double t = 1.0;
   const double dt = 0.1; // ode step
   const double b = 3;
 
   auto observer = [&](const double & v, const double & t) { out << t << " " << v << std::endl; };
 
   specmath::rk4_ode_solver<double>::integrate(dynamical_system(b), v, t0, t, dt, observer);
 
   std::cout << v << std::endl;
 
   return 0;
}
 



Название: Re: Пружина
Отправлено: Igors от Октябрь 13, 2015, 20:08
Вот мувик (http://www.4shared.com/video/vt1f1A4vce/APrоbs.html), затухание уже 100(!) (правда обратная связь пресекается). Ни фига, все болтается на пол-шестого  :'(


Название: Re: Пружина
Отправлено: m_ax от Октябрь 13, 2015, 20:33
Вот мувик (http://www.4shared.com/video/vt1f1A4vce/APrоbs.html), затухание уже 100(!) (правда обратная связь пресекается). Ни фига, все болтается на пол-шестого  :'(
Ну мне лично этот мувик ни о чём не говорит, поскольку не знаю что там под капотом..

И ещё раз повторю:
Даже больше скажу, для метода Эйлера, для данного уравнения, чтоб претендовать на какую-то точность должно выполняться условие b*dt << 1.


Название: Re: Пружина
Отправлено: popper от Октябрь 14, 2015, 00:00
Думаю, что задачу можно описать без применения дифф. уравнений на основании закона сохранения энергии.
Путь начальная потенциальная энергия натянутой пружины Ео, тогда в некоторый момент времени t после начала движения должно выполняться:
Е(t)+Евращ_движ(t) + путь(t)*Апотерь = Ео,
где Е(t) - потенциальная энергия в текущей точке;
     Евращ_движ(t)  - энергия вращательного движения, определяемая через текущую угловую скорость движения центра масс;
     Апотерь - работа сил трения, в первом приближении постоянная величина, хотя, наверное, можно задать ее функцией скорости вращения, при этом немного усложнив уравнение.

Далее условие остановки в противоположной точке: Евращ_движ(t = tост) = 0.
Новое значение потенциальной энергии Ео' = Ео - полный_путь*Апотерь.
Затем вычисления повторяются в противоположную сторону вращения.
Останов при условии, когда очередная величина Ео станет ниже некоторого порога.


Название: Re: Пружина
Отправлено: m_ax от Октябрь 14, 2015, 02:15
Думаю, что задачу можно описать без применения дифф. уравнений на основании закона сохранения энергии.
Путь начальная потенциальная энергия натянутой пружины Ео, тогда в некоторый момент времени t после начала движения должно выполняться:
Е(t)+Евращ_движ(t) + путь(t)*Апотерь = Ео,
где Е(t) - потенциальная энергия в текущей точке;
     Евращ_движ(t)  - энергия вращательного движения, определяемая через текущую угловую скорость движения центра масс;
     Апотерь - работа сил трения, в первом приближении постоянная величина, хотя, наверное, можно задать ее функцией скорости вращения, при этом немного усложнив уравнение.

Далее условие остановки в противоположной точке: Евращ_движ(t = tост) = 0.
Новое значение потенциальной энергии Ео' = Ео - полный_путь*Апотерь.
Затем вычисления повторяются в противоположную сторону вращения.
Останов при условии, когда очередная величина Ео станет ниже некоторого порога.
Не, здесь это не поможет..

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

Почти конец второй страницы, но покажите мне хоть одного, кто бы располагал всей необходимой информацией, чтоб посоветовать что-либо конструктивное.. И это не первый случай(
А потом слышишь в свой адрес:
Цитировать
Та я уже понял что кроме "фыркания" ничего не будет  :) Теплилась слабая надежда, но увы, все как всегда   :'(
Отправлено: Октябрь 13, 2015, 13:01
или
Цитировать
Ну вот, наколотили понтов - а ведь все гораздо проще, и знание дифуров необязательно. Положим массу = 1, чтобы она не путалась под ногами..
Ну вы поняли, да..  :)


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 14, 2015, 14:31
Игорь, я же в этом мире не самый умный, вы согласны?
Ну, и вы, наверное тоже.
Самые умные посты не создают, как сделать.

Если вы заметили мои посты, то там был посыл не как сделать, а как другие делают и как красивей. У вас же ситуация в корне отличается. Вы не знаете предметной области, в которой работаете, поэтому вам даже трудно составить тех. задание (ТЗ) для топика.

Есть вход, есть выход. Это классика. Это классическая задача. Мы получили на входе одно, на выходе другое.
Ладно. Постараюсь объяснить на пальцах. Есть система. Считаем её замкнутой и нет там внешних воздействий.
Пусть есть кубик, на который действует пружина. Он в стабильном состоянии (сначало так система описывается).
А потом вы подали на него какой-то сигнал - сдвинули кубик. И ваш кубик начинает качаться бесконечно по синусоиде.
Отлично. Математическая модель закончилась.
У вас пружина не идеальна, чем больше растяжение, тем больше сопротивление. Каким стабильным коеффициентом вы это можете задать? Отбросим также вариант, когда пружина прекратит своё существование как пружина при предельных нагрузках.
Сила сопротивления (потеря энегрии). Что для вас потеря энергии? Она (в пружине) нелинейная, значит вы её не можете высчитать каким-то коэффициентом.
Она не описывается уравнением. А инертность тела, а сопротивление воздуха, а может ваше тело по столу ездит и там тоже нужно это учитывать?
Пока вы не опишите систему, не поймёте её....

Что же от вас, для самого себя требуется: 2 варианта.
Вариант 1.
1. Понять что такое дифуры (просто понять).
2. Узучить ТАУ.
3. Составить систему и изучать её переходные процессы.
4. Забить на эту задачу и поняв что стал вумный заняться более денежными вещами
На всё это отвожу минимум год.

Вариант 2.
В тематическом форуме забашлять кому-то, чтобы это описали через матан. Только чур про новые условия! (я не про себя забашлять)






Название: Re: Пружина
Отправлено: Igors от Октябрь 14, 2015, 16:57
Хотя, здесь вообще ничего не поможет, пока товарищь igors не научится грамотно формулировать постановку задачи, и то, как это решение представляется (по его мнению) быть интегрированно в конечный результат в рамках того инструментария, что используется.

Почти конец второй страницы, но покажите мне хоть одного, кто бы располагал всей необходимой информацией, чтоб посоветовать что-либо конструктивное.. И это не первый случай(
Вернемся к стартовому посту. Что собственно не так? Чего там не хватает? Нужны какие-то подробности движка? Ну что знаю могу сообщить, но я понимаю только его небольшую часть. Да и зачем они нужны - ясно что это интегрировано в pipeline движка, мне нужно рассчитать силу/момент - это "выход". А вход - пожалуйста, все данные на руках. Как и сказано в первом посте.

Так что же мешает танцору? :)

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

Что же от вас, для самого себя требуется: 2 варианта.
Вариант 1.
1. Понять что такое дифуры (просто понять).
2. Узучить ТАУ.
...
Ну а почему Вы считаете что я не понимаю дифуров и с ТАУ не знаком? :) Только вот выходит не так уж все это нужно (см ниже)

Вариант 2.
В тематическом форуме забашлять кому-то, чтобы это описали через матан. Только чур про новые условия! (я не про себя забашлять)
Верю в Вашу бескорыстность. С удовольствием бы работал с математиком/физиком. Разумеется не безвозмездно для него. Но такая "связка" - дело очень тонкое. Начальный ход мысли у всех примерно одинаков "вот есть физики, они знают как и чего. Заплатим им денежку, они нам дадут формулы, мы их быстренько реализуем - вот и все".

Именно эту ошибку я сделал в начале 90-х, даже хуже - я обратился с этим к своему хорошему другу, и навсегда испортил с ним отношения :'( С тех пор такие попытки были еще не раз, и не два (нужда-то в физике возникает часто), но все они неизменно проходили по такому же сценарию. Обсуждение с m_ax в этой теме повторяет этот путь В ТОЧНОСТИ.

Беда - те самые гребаные "дифуры". Научный работник рисует дифур и решает его (мой друг делал "изгиб балки по Ландау"). Все, на этом он считает свою миссию выполненной. См выше - все то же самое. Вот и дифур, вот и набор решений, и даже плюс анализ с красивым графиком. А вот что же дальше...

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

Ну это еще цветочки. После того как удалось реализовать (если конечно удалось) и слегка потестить - выясняется что это все... не катит. Короче - с решенным дифуром АБСОЛЮТНО НЕХРЕН ДЕЛАТЬ. В данном случае мне нужно считать силу. как ее извлечь из решенного дифура? Хз, даже если бы удалось - вряд ли это бы работало хорошо "в дискретном мире движка". Напр x(t) я юзать не могу - позиция в движке определяется кучей факторов и может не иметь к колебаниям никакого отношения.

Поэтому я (мягко) говорю - не надо "дифуров", там всегда было "дубль-пусто", и, видимо, так будет всегда. Но кто ж меня послушает - они ведь так умны, а я и школьного курса не освоил  :)


Название: Re: Пружина
Отправлено: kambala от Октябрь 14, 2015, 21:58
так надо обращаться не к чистым теоретикам, а к прикладникам, работающим с численными методами, которые и разностную схему для дифуров напишут, и дискретные условия устойчивости/схождения найдут, и т.д.


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 14, 2015, 23:33
Верю в Вашу бескорыстность.
Не в бескорыстности дело, я просто этого не умею


Название: Re: Пружина
Отправлено: Igors от Октябрь 15, 2015, 13:00
так надо обращаться не к чистым теоретикам, а к прикладникам, работающим с численными методами, которые и разностную схему для дифуров напишут, и дискретные условия устойчивости/схождения найдут, и т.д.
Хорошо бы, да где ж таких взять? Вот и закидываю удочку (типа этой темы) время от времени.

Насчет "разностной схемы" и.т.п. - далеко не всегда все дело в "знаниях". Вот хотя бы данная тема. Правильный (на мой взгляд) ответ прозвучал первым и дал его тот же m_ax. Да, простецкое уравнение пружины, вряд ли кто-то его не знал. Но, вероятно, это показалось слишком просто - и понеслась по кочкам с дифурами. Типа "солиднее". 


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 15, 2015, 17:48
Насчет "разностной схемы" и.т.п. - далеко не всегда все дело в "знаниях". Вот хотя бы данная тема. Правильный (на мой взгляд) ответ прозвучал первым и дал его тот же m_ax. Да, простецкое уравнение пружины, вряд ли кто-то его не знал. Но, вероятно, это показалось слишком просто - и понеслась по кочкам с дифурами. Типа "солиднее".  

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

Забудем об этом. Вы чётко сформулировали ТЗ?. Нет. Очень чётко, без лишней воды.
Я перейду на грубость, чтобы вы поняли. Тело на пружине. Что тело на пружине? А вдруг тело на пружине в жопе? В жопе не в переносмом смысле. Я постараюсь вам помочь, но только чётко опишите начальные условия.

К примеру.
Цитировать
Есть объект закрепленный в нижней точке. Под действием какой-то силы F (точка ее приложения известна, вверху) движок поворачивает объект (отклоняет от исходного положения)....

Он закреплён чем. Клеем супермомент или той же пружиной? Как он может двигаться, если закреплен. Нам же нужно учитывать сопротивление его "закрепления".

Цитировать
Насчет "разностной схемы" и.т.п. - далеко не всегда все дело в "знаниях". Вот хотя бы данная тема. Правильный (на мой взгляд) ответ прозвучал первым и дал его тот же m_ax.

Максу бонус. Либо ему хватит похвалы вашей, либо минимум 2 бутылки пива по почте, причём не электронной.

P.S. Извеняюсь, я выхожу из этого бессмысленого потока, не видя этого четкого ТЗ, которое будет меняться всегда по мере продвижения.
P.P.S. Не отказываюсь в помощи, но у меня не должно быть сомнения в ТЗ и понимании его автором.


Название: Re: Пружина
Отправлено: Igors от Октябрь 16, 2015, 10:38
Вот желаемый стоячок (http://www.4shared.com/video/BknV_PEice/Decay.html)  :)


Название: Re: Пружина
Отправлено: Old от Октябрь 16, 2015, 10:48
Вот желаемый стоячок (http://www.4shared.com/video/BknV_PEice/Decay.html)  :)
Классно же. Без теории всего за неделю удалось подобрать правильные значения. :)


Название: Re: Пружина
Отправлено: AzazelloAV от Октябрь 16, 2015, 15:18
Вот желаемый стоячок (http://www.4shared.com/video/BknV_PEice/Decay.html)  :)

Ничё себе. Да там не пружина, там целые ветра. Причём здесь ваша пружина?