motorTorque и масса

Общие вопросы о Unity3D

motorTorque и масса

Сообщение Malganus 15 сен 2011, 20:21

Всем привет, я разбираюсь с wheel collider'ами и у меня возник вопрос.
Есть машинка, к ней добавлена физика rigidbody. У нее есть масса. Есть ее наследники, wheel collider'ы на них передается motorTorque. Машинка двигается вперед, назад, поворачивает, все ок. Но масса rigidbody ни как не влияет на ускорение... что при массе 100 и определенной силе тяги на колайдер что при массе 20000 и той же тяге машина разгоняется одинаково.....

Мне это нужно для создания реальной физики разгона автомобиля, тяга вычисляется из графика момента авто, с учетом всех предаточных чисел, текущей передачи и так далее. Силы сопротивления тоже все рассчитываются по формулам механики. Получается что масса влияет только на силу сопротивления качению, если мы на ровной дороге без уклона... И если взять две машинки: одна 1000 кг, вторая 3000 кг, с одинаковыми параметрами мотора и кпп, то первая будет, в итоге вычисления всех сил сопротивления, иметь конечную разницу сил тяги и сопротивления всего на пару десятков ньютон больше. И она разгонится до 100 км в час на доли секунды быстрее... При том, что по-хорошему, ускорение должно рассчитываться как a = F/m, где F передаваемая сила тяги (Разница номинальной силы тяги и всех сил сопротивления), а m - масса автомобиля, но в Юнити такое не проходит и ускорение не меняется с изменением массы..... Умные люди, подскажите что к чему, куда копать?
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50

Re: motorTorque и масса

Сообщение IDoNotExist 16 сен 2011, 07:14

Дело в том что MotorTorque - это крутящий момент передающийся на колесо без учета сил трения, сопротивления и т.д. поэтому естественно что масса rigidbody никак не будет влиять на скорость авто. Но никто вам не запрещает создать эти силы самому используя физические формулы, я думаю что вы знаете что у WheelCollider'а есть переменная rpm которая возвращает количество оборотов колеса в минуту, используя её и массу rigidbody, можно создать силу трения и передавать её например в виде BrakeTorque данного колеса. Кстати, у WheelCollider еще есть свойство mass - тобишь масса колеса, так вот, оно то как раз и влияет на MotorTorque которое необходимо передать на колесо, тоесть чем выше масса колеса, тем больше крутящего момента на него необходимо передать.

P.S. На сопротивление качению влияет не масса, а жесткость пружины подвески WheelCollider'а, свойство Suspension Spring -> Spring, чем выше масса, тем выше должна быть жесткость.

P.P.S. Прежде чем браться за разработку реалистичной физики авто почитайте всетаки справку по WheelCollider, и это тоже , там есть все то что я написал выше.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: motorTorque и масса

Сообщение Malganus 16 сен 2011, 13:24

Спасибо за ответ....
Справку по вил коллайдерам я читал..... Масса колеса влияет очень странным образом. Масса колеса 1 - машина едет нормально, масса 5 - еле разгоняется.... Про рпм знаю, использую в расчете рмп движка и т.д.

Масса как раз и влияет на силу сопротивления качению, которая, в свою очередь, включает в себя и силу трения.....

Fкач. = ƒ*m*g*cosα

Где:

* Fкач. – сила сопротивления качению, Н
* ƒ – коэффициент трения качения
* m – масса автомобиля, кг
* g – ускорение свободного падения, м/с2
* α – угол уклона дороги, °

Так вот коэффициент трения качения для ровного асфальта = 0.015 (изменяется в зависимости от скорости, но не значительно) и из этой формулы получается, что эта сила очень слабо влияет на разгон на ровной дороге. Возмем массу авто = 2000 кг получается, что сила равна
2000 * 0.015 * 9.8 (ускорение свободного падения) * 1 (cos 0 градусов). Все это выносит 294 Ньютона. При том что сила передаваемая на колеса на первой передаче при 120 н.м. (развиваемых движком) Составляет больше 6000 тыс Ньютон. Суть такая что если мотор развивает силу тяги 200 н.м. в данный момент времени, и сила переведенная из н.м. в н по формуле

Fтяги = (ηтр. * Mе * uкп * uгп)/r

Где:

* Fтяги – сила тяги на ведущих колесах, Н
* ηтр. – коэффициент потери мощности в трансмиссии электромобиля (в автомобильной трансмиссии для легкового авто ηтр.=0,9-0,92)
* Mе – эффективный крутящий момент двигателя, Н*м
* uкп – передаточное число коробки передач
* uгп – передаточное число главной передачи
* r – радиус ведущего колеса, м

Равна пускай 1500 Ньютон, сила сопротивления качению (и трения само собой ) равна 294 Ньютон, Сила сопротивления воздуха Равна пускай 800 Ньютон (формулу я знаю, просто не хочу засорять пост), Сила сопротивления подъему равна 0 т.к. мы на ровной дороге 0 градусов уклона. Получается что разница сил действующая на авто 1500 - 800 - 294 = 406н. Так вот, как бы основные силы мы учли, но в последствии переведя эту силу в н.м. и разделив на кол-во ведущих колес, передав каждому ведущему колесу свой кусок тяги, не зависимо от массы, авто разгоняется одинаково и перестает разгонятся когда разница сил уже равна 0. Есть еще сила сопротивления разгону, но она равна силе передаваемой на колеса... Короче говоря правильное ускорение в данный момент времени получить мы можем, и если бы вил коллайдеру можно было бы передавать параметр ускорение, и он адекватно реагировал на него, тогда все было бы супер, а так получается, что оставшаяся плюсовая тяга учитывает какие то реалии виртуального мира, а не физического... Может я не прав в своих суждениях, буду благодарен, если кто-то аргументированно поправит...

Если прав эта часть расчетов верна, то что еще я не учел? как добиться более реальной динамики....

PS c учетом этого всего, что я по насчитал, я забил в модель все характеристики своей (реальной) машинки, (предаточные числа, кривую момента, массу, коэффициент аэродинамического сопротивления, площадь поперечного сечения и т.д. и т.п.) По паспортным и тестовым данным такая тачила должна разгоняться до 100 за 10,5 сек и 402 метра проезжать за 18 - 19 сек, в юнити получается до сотни 8..... 402 метра около 14-15. Все из-за того, что в начале она очень резво набирает (сопротивление воздуха мало.....) А максималка в юнити, практически равна паспортной, что говорит о том, что расчеты верны, но не учитывают силу связанную с сопротивлением ускорению....

Fин. = m*a*σвр

Где:

* Fин. – сила сопротивления разгону, Н
* m – масса электромобиля, кг
* a – ускорение электромобиля, м/с2
* σвр – коэффициент учета вращающихся масс
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50

Re: motorTorque и масса

Сообщение Malganus 16 сен 2011, 15:41

Разобрался я со своей задачей, теперь можно по симулятору сверять паспортные данные авто :)
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 7