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

Физика автомобиля (3 стр)

Страницы: 1 2 3 4 5 Следующая »
#30
20:46, 27 мар 2011

tikka
> например, силу инерции машины, когда она ускоряется
Нет такой силы - сила инерции.

#31
21:02, 27 мар 2011

Mikle
> Нет такой силы - сила инерции.
Ну почему, из википедии: "Сила инерции — фиктивная сила, которую можно ввести в неинерциальной системе отсчёта так, чтобы законы механики в ней совпадали с законами инерциальных систем". Если мы закрепляем СО на точке касания колеса ускоряющейся машины с землей (потому как мы опрерируем относительными скоростями w), то эта система будет неинерциальной, и можно вводить "виртуальную" силу инерции, что бы делать расчеты.

#32
3:21, 28 мар 2011

Вообщем решил проблемму с тормозом - методом tikka. Спасибо!

Т.е. - силу торможения - вообще выбросил в ведро. А сделал просто:
Brake=0;
if (Key(SPACE)) Brake=100;

а формулу ускорения изменил на:

a = F/m - Brake * v;

v- это скорость

На деле - естественно от скорости зависит значение Brake - чтобы не тупило при маленькой скорости. Вроде тормозит всегда, и четко ))

#33
9:53, 28 мар 2011

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

#34
11:48, 28 мар 2011

tikka
> Я очень расстроился, что мой вопрос был проигнорирован. Возможно, я не понимаю
> фундаментального принципа и вы мне объясните.
> > > (|w|) - коэффициент трения, это функция скорости проскальзывания. При
> > > нулевой w его значение максимально, при росте |w| монотонно уменьшается,
> > > закон зависит от типа трущихся поверхностей.
> При нулевой w, сила трения сама по себе не возникает, а только в ответ на
> другую силу (например, силу инерции машины, когда она ускоряется). Но состоянии
> покоя нет никаких внешних сил которые могли бы вызвать реакцию трения, и сила
> трения равна 0. Допустим тело пришло в состояние покоя зафиксировав колеса, и
> скользя по асфальту, но тогда тогда существует разрыв функции трения в точке,
> где машина останавливается. Проблемы у автора возникают из за этого разрыва, а
> не из за нестабильности метода Эйлера, и РК здесь не поможет.

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

#35
12:47, 28 мар 2011

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

О. Федор
> В принципе это так, но реальное движение автомобиля практически всегда
> сопровождается проскальзыванием; это может быть вызвано поворотом, может быть
> вызвано работой подвески, схождением колес наконец. Движение без
> проскальзывания - это скорее исключение. Конечно, нужно в модели учесть и это
> исключение, например, чтоб описать переход к движению.
> Думаю для этих условий, оптимально рассматривать изчезающе малую скорость
> проскальзывания (просто для того, чтоб можно было определить направление силы).
> Т.е. движение без проскальзывания свести к движению с проскальзыванием.
Это исключение так или иначе возникает, когда машина останавливается. Как тогда вообще остановить тело, если в каждый момент существует малое проскальзывание и следовательно сила трения?

fzr125
> Brake=0;
> if (Key(SPACE)) Brake=100;
>
> а формулу ускорения изменил на:
>
> a = F/m - Brake * v;
>
> v- это скорость
Пожалуйста, но это не совсем то что я предлагал:) Это, конечно, будет работать но это не совсем физический честный сухой тормоз, а больше похоже на сопротивление воздуха.

#36
12:54, 28 мар 2011

fzr125
Нужно так:

float brakeForce = 0.f;
if (Key(SPACE))
{
    brakeForce = -v * m / dt - F;
    brakeForce = max(-BRAKE_BOUND, min(BRAKE_BOUND, brakeForce));
}

a = (F + brakeForce) / m;

//BRAKE_BOUND - регулирует величину силы трения

Правка: добавлю замечание для полной ясности.
Заметим что при больших скоростях фактически работет формула F_b = -BRAKE_BOUND * sign(v), а при малых автоматически подбирается такая величина F_b, что бы тело остановилось (и его не колбасило).

#37
13:51, 28 мар 2011

Колёса машины - резиновые, они имеют некоторую упругость, покоющуюся машину можно рассматривать, как тело на пружине (на четырёх пружинах), когда сила превышает силу трения покоя - начинается движение. Так же и катящуюся машину можно рассматривать, причём тут возникает дополнительный эффект - машина может под действием внешних сил смещаться, не срываясь в занос, чем выше скорость качения - тем легче машина поддаётся внешним воздействиям. Вы никогда не обращали внимание на то, как резкий боковой ветер смещает движущуюся машину НЕ ВЛИЯЯ НА ПОЛОЖЕНИЕ РУЛЯ?

#38
14:38, 28 мар 2011

Когда перейдёте к физике машины? :)

#39
14:46, 28 мар 2011

tikka
> Это исключение так или иначе возникает, когда машина останавливается. Как тогда
> вообще остановить тело, если в каждый момент существует малое проскальзывание и
> следовательно сила трения?

При малом проскальзывании силу трения можно принять равной трению покоя. Т.е. практически это F = g*k*m, при этом при w -> 0  k -> max, но вектор F действует в направлении w.

#40
14:52, 28 мар 2011

Mikle
> Колёса машины - резиновые, они имеют некоторую упругость, покоющуюся машину
> можно рассматривать, как тело на пружине (на четырёх пружинах), когда сила
> превышает силу трения покоя - начинается движение. Так же и катящуюся машину
> можно рассматривать, причём тут возникает дополнительный эффект - машина может
> под действием внешних сил смещаться, не срываясь в занос, чем выше скорость
> качения - тем легче машина поддаётся внешним воздействиям. Вы никогда не
> обращали внимание на то, как резкий боковой ветер смещает движущуюся машину НЕ
> ВЛИЯЯ НА ПОЛОЖЕНИЕ РУЛЯ?

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

#41
14:58, 28 мар 2011

О. Федор
> При малом проскальзывании силу трения можно принять равной трению покоя. Т.е.
> практически это F = g*k*m, при этом при w -> 0  k -> max, но вектор F действует
> в направлении w.
Не, это все понятно, но вот формулу F = ma что подставлять? g*k*m * dir(w) = m*a?
Т.е.  a = dir(w)*g*k при достаточно малом проскальзывании?

#42
16:51, 28 мар 2011

tikka
> Не, это все понятно, но вот формулу F = ma что подставлять? g*k*m * dir(w) =
> m*a?
> Т.е. a = dir(w)*g*k при достаточно малом проскальзывании?

Просто так

F = |g|*m*k(|w|)*norm(w)    сила тяги на колесе

здесь
|g|*m модуль силы прижима колеса к дороге
norm(w)=w/sqrt(w*w)      - нормируем w (принимаем естественно при этом, что w!=0)

считаем, коэффициент трения зависит только от модуля w, т.е. k=k(|w|).

#43
17:58, 28 мар 2011

О. Федор
> Просто так
>
> F = |g|*m*k(|w|)*norm(w)    сила тяги на колесе
>
> здесь
> |g|*m модуль силы прижима колеса к дороге
> norm(w)=w/sqrt(w*w)      - нормируем w (принимаем естественно при этом, что
> w!=0)
>
> считаем, коэффициент трения зависит только от модуля w, т.е. k=k(|w|).
И получите тот же разрыв. Тело будет колбасить в окрестности w = 0, потому что F будет мгновенно меняться в этой окрестности на противоположную.

#44
20:00, 28 мар 2011

tikka
> И получите тот же разрыв. Тело будет колбасить в окрестности w = 0, потому что
> F будет мгновенно меняться в этой окрестности на противоположную.

Если правильно подобрать функцию k(|w|) и конечно не использовать метод Эйлера, то все будет в порядке. Кроме того, при небольших w можно ввести демпфирование, вполне кстати физично, будет эмулировать вязкость резины.

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

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