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

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

Страницы: 1 2 3 4 5
ZarПостоялецwww3 июля 201623:25#60
FDsagiziПостоялецwww4 июля 20169:56#61
Zar
Боишься что люди сглазят физику?)
Изображение

По физике сказать нечего. Маленькая скорость - там обычно все ок. Все приколы за 100 км/час

ZarПостоялецwww10 июля 201613:53#62
FDsagizi
ахаха - юморист, только что со стендапа? Повеселил, за это тебе благодарность. Если серьезно, я тупо взял исходный код физики демки к этой статье и переписал его на javascript на vrml. Этот плавающий логотип следствие того, что я юзаю триальную версию браузера.
ZarПостоялецwww10 июля 201619:40#63
DennMonn
Я тоже первое время все никак не мог понять механизм, который ограничивает максимальную скорость для каждой передачи. А механизм простой. Почему машина едет вперед\назад? Потому же, почему человек идет - наличие силы тяги/трения. Чем больше коэффициент трения между трущимися поверхностями, тем большую силу может приложить рычаг(колесо тоже в каком то смысле рычаг)к поверхности, чтобы оттолкнуться. И колесо автомобиля, а точнее, поверхность резиновой покрышки, точно так же как и поверхность подошвы ботинка отталкивается от дороги - разницы принципиальной нет. (здесь нужно вставить то видео с ютуба где один остряк для велика сделал оригинальные колеса в виде надетых на спицы сапог) И нога человека, и колесо автомобиля(и  гусеница танка или трактора), прикладывая силу к Земле(Луне, Марсу, Меркурию), пытаются ее "прокрутить" =). Однако "силы не равны" - масса планеты намного больше массы и человека и автомобиля, что в результате приводит к тому, что человек(автомобиль, танк) выталкивает себя сам относительно Земли в противоположном от вектора силы тяги направлении. В данном контексте под силой тягой подразумевается не фактическая сила тяги, придающая ускорение автомобилю, вектор которого направлен в ту же сторону что и движение автомобиля, а F=(момент силы колеса деленный на радиус колеса) - ведь в месте касания колеса и дороги колесо действительно  движется против движения самого автомобиля. Кому то может показаться, что я в своих рассуждениях ушел в сторону от ответа на прямой вопрос. Но на самом деле, это необходимая подготовка, чтобы не осталось никаких "почему", когда прозвучит наконец ответ. Чтобы ведущие колеса "тянули", между ними и дорогой(бездорожьем) должна возникнуть сила трения(в данном случае в направлении продольной оси колеса), а сила трения может возникнуть только в том случае, если поверхность покрышки колеса движется относительно дороги в точке(пятне) контакта. Иными словами - ведущие колеса только тогда создают тяговое усилие, когда они вращаются немного быстрее, чем двигается сам автомобиль. (Если они вращаются медленнее, то как вы уже догадались они не тянут, а наоборот тормозят). То есть должна присутствовать хотя бы маленькая пробуксовка.  А теперь давайте представим себе ситуацию - стоит автомобиль на дороге с включенным двигателем на первой передаче и выжатом сцеплении. Водитель начинает плавно отпускать педаль сцепления и прибавлять газу. Крутящийся момент двигателя начинает передаваться от маховика к сцеплению дальше в коробку передач. Там скорость вращения двигателя допустим 3000 об/мин уменьшаются примерно в 12 раз(первая передача=3.5*главную пару=3.5) и на выходе имеем 250 оборотов\мин или около 4.16666 об\сек ведущей оси а значит и ведущего колеса. Мы потеряли в скорости вращения, зато приобрели в силе тяги - закон сохранения энергии в действии. Допустим при 3000 rpm двигатель развивает момент равный 200 Н*м. Умножаем это число на 12 получаем 2400 Н*м - такой момент силы в итоге имеет ведущий вал на выходе из трансмиссии. И делим это число на радиус колеса, чтобы узнать наконец силу, которую колеса прикладывают к дороге. 2400 Н*м/0.3 м=8000 Н - довольно нехило. Так как скорость вращения колеса радиусом 0.3 метра (4.16666 об\сек*2PI*R=7.8 м\сек) в момент трогания намного больше продольной скорости авто (0 м\с)- больше в бесконечное число раз, то возникает сильное проскальзывание пробуксовка колеса относительно дорожного покрытия. Почему? А вот почему. Знакомые с автомобильной физикой ребята скажут, что сила трения между резиновой покрышкой колеса и дорожным покрытием напрямую зависит от величины скольжения. При полном отсутствии скольжения сила трения\сцепления равна нолю. Пик силы трения\сцепления приходится примерно на 0.15-0.2 продольного скольжения колеса и затем при дальнейшем увеличении скольжения сила снова падает. Именно поэтому, если нужно максимально быстро начать движение, или ускориться, не надо класть педаль газа в пол.  Из-за сильной пробуксовки во время трогания автомобиля сила трения колес о дорогу уменьшилась примерно вдвое, что привело к такому же уменьшению силы тяги 8000 Н*0.5=4000 Н. Но машина потихоньку-потихоньку стала разгоняться, ее скорость начала расти. И допустим водитель раскрутил обороты движка до максимально допустимых - пусть будет 8000 оборотов в минуту. В жизни конечно у обычных машин стараются не крутить двигатели в диапазонах больше 5000-6000 об\мин - это может привести к поломке трансмиссии сцепления и самого двигателя. Но давайте представим, что наша виртуальная машинка не ломается в этом диапазоне работы двигателя - это нужно нам для понимания сути происходящих событий.  Теперь посчитаем скорость авто при этих оборотах. Скорость вращения колеса равна 8000 об\мин /12=666.666 об колеса\мин. Делим на 60 получается 11.111 об\сек. Длина окружности колеса при радиусе 0.3 м равна 2*3.14*0.3=1.884 м  - почти 2 метра. То есть за один оборот колеса без пробуксовки машина проезжает расстояние равное 1.884 метра. То есть скорость авто при скорости вращения колес 11.111 об\сек будет равна 11.111 об\сек * 1.884 м=примерно 21 м\с или 75 км\ч. Еще раз повторяю  - не надо в жизни реальную машину заставлять разгоняться на первой передаче до 75 км\ч при 8000 оборотах движка. И вот теперь представьте себе : мы разогнали все вращающиеся детали машины, преодолели все силы инерции сопротивления, ускорили автомобиль до той же скорости, с которой вращаются колеса. И вот тут и ответ на вопрос.  А как по вашему будут тянуть ведущие колеса, если они вращаются с той же скоростью, что и движется автомобиль? Ответ - никак. Потому что в тот момент, когда продольная скорость автомобиля достигнет той же скорости, с которой вращаются ведущие колеса, между дорогой и этими колесами сила трения а значит и сила тяги сойдет на нет, или выражаясь языком математики, станет равной нолю. Кто внимательный и сообразительный тот заметил, что я уже дал ответ на вопрос чуть раньше, когда сказал, что сила трения а значит и сила тяги равна нолю при нулевом продольном скольжении. Иными словами при расчете финальной силы тяги необходимо обязательно учитывать величину продольного скольжения ведущих колес. Потому что от величины скольжения зависит множитель нормализованной силы трения сцепления. Как я уже говорил выше - оптимальное значение продольного скольжения 0.15-0.2 когда достигается максимальная сила трения\сцепления. В этом диапазоне колеса прикладывают максимальную тягу к дороге без сильной пробуксовки , если авто ускоряется, и также автомобиль будет наиболее эффективно тормозить без сильного скольжения, если он тормозит. Для того и придумали АБС, чтобы избежать режима сильного скольжения тормозящих колес. Если резко заблокировать колеса тормозом коэффициент скольжения резко увеличится, а сила трения наоборот уменьшится. Итог - тормозной путь увеличится.
В коде программы по расчету автомобильной физики надо исходить из
максимальная сила тяги, которую могут приложить ведущие колеса к опоре, равна силе реакции опоры умноженной на коэффициент трения. Сила реакции опоры равна весу, с которым давят ведущие колеса на опорную поверхность.  Например масса авто 1500 кг*10м\с^2 =15000 Н -  это сила реакции опоры. Для полноприводного авто 4х4 мы можем исходить из этого числа, для автомобиля с одной ведущей осью мы должны поделить это число грубо говоря на 2. Грубо говоря, потому что развесовка по осям может быть и отличной от 50\50. Ну и плюс надо учитывать тот факт, что развесовка на колесах меняется в зависимости от продольного и поперечного ускорения автомобиля. Посчитаем для заднеприводного с развесовкой 50\50. Сила трения будет равна 15000 кг * 0.5 * 10 м\с^2 * коэффициент трения между резиновыми покрышками и материалом дороги. Для сухого асфальта этот коэффициент примерно 0.7-0.9 для грунта 0.4-0.6 для льда 0.1. Если поверхность влажная  - "сухой" коэффициент можно смело поделить на 2. А если есть аква планирование, то и вовсе сила трения отсутствует. Значит если дорога сухой асфальт, то к ней наш заднеприводный полуторатонный автомобиль может приложить максимальную силу тяги равную 7500 Н * 0.9 = 6750 Н. Если в конкретный момент времени колеса прикладывают силу больше данного значения, то фактическая сила тяги все равно останется равной этому максимальному значению, а избыток уйдет на раскрутку вращающихся масс. Полноприводные авто имеют преимущества по тяге перед не полноприводными потому, что на все четыре ведущих колеса приложен полный вес автомобиля, то есть они способны приложить тягу в 2 раза большую ( в конкретном примере при массе авто 1.5 тонны и к трения 0.9 = 13500 Н) чем не полноприводный с развесовкой по осям 50\50. По этой же причине для заднеприводных автомобилей стараются сместить центр тяжести к задней оси, а для переднеприводных - к передней. Однако в реальности с этим смещением инженеры обычно аккуратны, потому как выигрыш в силе тяги от чрезмерной ассиметричной развесовки по осям может привести к ухудшению устойчивости при маневрировании. Медаль о двух сторонах - как обычно. Ну и под занавес считаем коэффициент продольного скольжения (long slip), по нему находим нормализованную силу трения\сцепления(в сети полно графиков функции зависимости силы трения от продольного скольжения) и останется только умножить наши ньютоны силы тяги колес на этот коэффициент.
ZarПостоялецwww10 июля 201620:00#64
FDsagizi
Данное видео я записывал в первую очередь не для демонстрации автомобильной физики, а для демонстрации отложенного рендера, каскадных теней, интерактивной кубической текстуры отражений. Поэтому то и не разгонялся сильно. Физика там почти точь-в-точь, что и в демке к этой статье. Добавил только коробку передач, изменяющийся момент двигателя плюс расчет динамической развесовки , чтобы кузов кренился в поворотах и наклонялся при ускорении/торможении. Расчеты основных сил происходят точно также в 2д локальном пространстве автомобиля. Но если очень надо, или кому то будет полезным, могу записать видео при больших скоростях, или выложить свою демку.
Страницы: 1 2 3 4 5

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

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

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