Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи / Физика автомобиля для игр. (5 стр)

Физика автомобиля для игр. (5 стр)

Степень скольжения и сила тяги

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

В типичной ситуации, в которой автомобиль выполняет движение с постоянной скоростью, задние колеса будет вращаться немного быстрее, чем передние. Передние колеса катятся и поэтому имеют нулевое скольжение. Вы можете вычислить их угловую скорость, только деля скорость автомобиля на 2p. Задние колеса, вращаются быстрее, и это означает, что поверхность шины скользит по отношению к дорожной поверхности. Это скольжение вызывает силу трения в противоположном направлении. Поэтому сила трения направлена по ходу автомобиля. Фактически, сила трения, это реакция на скольжение колеса, которая толкает автомобиль вперед. Эта сила трения известна как сила тяги или продольная сила. Тяга зависит от количества скольжения. Количество скольжения, также известное как степень скольжения, обычно выражается таким образом:

Изображение

где
ww (произносится: омега) - угловая скорость колеса (рад/с)
Rw - радиус колеса (м)
Vlong - скорость автомобиля, также известная как продольная скорость (м/с) 

Обратите внимание: есть множество различных определений для степени скольжения. Это определение также работает для автомобилей, двигающихся назад.

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

Отношения между продольной силой (вперед), и степенью скольжения может быть описано кривой:

Изображение

Обратите внимание: сила равна нулю, если степень скольжения = 0, и сила принимает максимальное значение для степени скольжения приблизительно 6 %, где продольная сила немного превышает вес на колеса. Точная форма кривой может измениться от параметров шин и дорожной поверхности, температуры, и т.д.

Это означает, что колесо держит дорогу лучше при небольшом  скольжении. При значении скольжения больше оптимального - контакт с дорогой ухудшается. Именно поэтому быстрое вращение колеса, как ни странно, фактически не дает Вам большего ускорения. Потому что будет очень сильное скольжение, и продольная сила принимает значения ниже пикового. Уменьшение скольжений дало бы Вам больше тяги и больше ускорения.

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

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

Flong = Fn, long * Fz
где :
Fn, long - нормализованная продольная сила для данной степени скольжения.
Fz - масса груза приходящегося на колеса.

Для простого моделирования боковая сила может быть приближена к линейной функции:

Flong = Ct * slip ratio
где:
Ct - постоянная тяги, которая является отклонением кривой степени скольжения от оригинала.

Сила достигает максимума, когда степень скольжения проходит пик. Если Вы нарисуете этот график, Вы получите следующее:

Изображение

Момент вращения на ведущих колёсах.

Сила тяги - это сила трения, которую совершает поверхность дороги над поверхностью колеса. Очевидно, что эта сила вызовет момент вращения на оси каждого колеса:

момент вращения = сила тяги * радиус колеса

Этот момент вращения будет направлен против момента вращения, переданного двигателем к этому колесу (которое мы назвали моментом вращения двигателя). При торможении также появится момент вращения. Я предположу, что при торможении возникает постоянный момент вращения в направлении вращения колёс. Будьте внимательны с направлением, или вы не сможете затормозить, когда вы изменяете направление движения.

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

Изображение

Результирующий момент вращения на задней оси - сумма следующих моментов вращения:

результирующий момент вращения = момент вращения на ведущих колесах 

+ моменты вращения трения на обоих колёсах + момент вращения торможения

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

Этот момент вращения вызовет угловое ускорение ведущих колёс, точно так же, как сила, приложенная к телу, заставляет его ускоряться.

угловое ускорение = результирующий момент вращения / инерция заднего колеса.

Где-то я узнал, что инерция цилиндрического тела вокруг своей оси может быть рассчитана следующим образом:

инерция цилиндра = Масса * радиус2 / 2

Так, для 75 килограммового колеса радиусом 33 сантиметра инерция будет равна 75 * 0.33* 0.33 / 2 = 4.1 kg*m2. Вы должны удвоить это значение, чтобы получить инерцию обоих колёс на задней оси, и возможно, добавить что-то непосредственно к инерции оси, инерцию передач и инерцию двигателя.

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

угловая скорость заднего колеса += угловое ускорение заднего колеса * шаг времени
где шаг времени - количество времени пройденного между двумя вызовами функции просчета физики. Этим путем мы можем определить, как быстро вращаются ведущие колёса, и поэтому мы можем вычислить количество оборот в минуту двигателя.

Что было в начале: яйцо или курица?

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

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

Чтобы решить дифференциальные уравнения в компьютерных программах, мы используем методику численного интегрирования: если мы знаем все значения во время t, мы можем вычислить значения во время t + дельта. Другими словами, вместо того, чтобы пробовать решать взаимозависимые уравнения, тем самым входя в бесконечный цикл, мы берем некоторый промежуток времени и запоминаем значения из предыдущего промежутка, чтобы выразить значения нового промежутка. Мы просто используем старые значения из предыдущего промежутка, чтобы вычислить новые значения для текущей итерации. Если шаг времени является достаточно малым, вы получите необходимые результаты.

Есть много теорий о дифференциальных уравнениях и численном интегрировании. Одна из проблем состоит в том, что числовой интегратор может "выйти из строя", если шаг времени недостаточно мал. Вместо правильных значений они внезапно взлетают до бесконечности, потому что небольшие погрешности возрастают до огромных чисел. Уменьшение шага времени может помочь, но будет стоить лишние такты процессора. В альтернативе мы должны использовать более мощный интегратор, например RK4. Более подробно узнать эту тему вы можете, прочитав мою статью относительно числовой стабильности: Достижение стабильного симулятора.

Страницы: 14 5 6 7 8 Следующая »

23 мая 2003

#autosim, #автомобиль


Обновление: 4 июня 2010

2001—2018 © GameDev.ru — Разработка игр