Alexander K
почему не по настоящему?
там имхо смысл не в том, что бы эмитировать реальный наклон машины, в том или ином повороте,
а защет гравитации сэмитировать давление на человека в ту или иную сторону, поэтому монитор, жеско закреплен на платформе,
и допустим когда ты газуешь тебя в настоящей машине должно вдавливать в кресло,
а в этой фигне для создания подобного эффекта кресло наклоняется назад. (состороны кажется, что машина встала на дыбы, но это не так)
конечно реальных сил в таком симуляторе не добиться, но хотя бы что-то.
А ты как видешь подобную хрень?
cNoNim
Ну максимум 1.0 g, а это мало, плюс эффект от вестибулярного аппарата - проще уж на реальную машину сесть. Повторюсь, что лфс - это поиски оптимальных настроек и вождения авто, а не реальная эффектность происходящего, которую такими устройствами не заменить.
Ну смотря, что обсуждаем LFS, или данный девайс
Alexander K
> Сделаю ролик!
Лучше бы приложение, чтобы видеть как при изменении параметров изменяется физика. Но и на том спасибо...
Ну как там с моделированием увода шин? Ну ооооочень интересно, а нету ( Уже новая статья вышла, но тема то не та что интерисует. )
ЗЫ. Возьми и напиши - не ко мне. - Я могу про атмосферу и облака написать и т.д. не я прикармливал аудиторию - реально интересно. Так что это не прихоть, а скорее призыв - уж очень интересно, и томить ожиданием это аддски нехорошо )))
fzr125
Напишу, обещал же. Руки не доходят просто.
[добавка] За качество не ругать, видео старое (сейчас нет возможности скомпилировать проект). На 1:33 хорошо видно "мягкость" колеса.
[ещё добавка] Обновил статью, про симуляцию мягких шин. Ну и видео туда запихал.
Выглядит очень даже, конечно, хочется самому попробовать поуправлять) но чисто визуально ведёт себя достаточно натурально
Немного истории: этот проект был начат в 2007 году, заброшен был в начале 2008 из-за отсутствия моделей, текстур, арта и прочего. Потому что был только я - программист, найти кого-то ещё я не смог. Тем не менее, эту версию тестировало человек 5-6, все настоящие гонщики из нашего города и все они были на тот момент знакомы с LiveForSpeed - в принципе их оценки были высоки.
В настоящий момент есть скомпилированная версия, но там для тестов машина заднеприводная и немного повёрнуты различные коэффициенты, да и глюк небольшой есть с отображением. Единственно что я смог - отснял с неё скриншотов для статьи, даже видео оттуда толковое не выйдет.
Так что довольствуйтесь чем есть :D
Alexander K
У девятки ход подвески очень большой, что делает её практически незаносимой машиной (в условиях асфальта), зато вместо этого перевернется она запросто.
Не очень понял про ту часть, которая учитывает сцепление.
Полный код той части, которая обрабатывает мотор, я так понял, такой:
dRPM = Torque[RPM] * Throttle / Inertia - pow(1.0f - torq, 2) * BackTorque // момент с учётом положения педили газа RPM += dRPM * ( 1.0f - Clutch);
Если Clutch = 1, то RPM в этой части код не меняется, если ноль, то меняется без вопросов.
Мне такой подход не нравится.
Когда я поделировал сцепление (или гидротрансформатор коробки-автомата), я заводил две переменные - обороты вала, входящего в блок сцепления (обороты мотора, короче) и обороты вала, выходящего из блока - то есть обороты, которые идут в коробку. То есть есть RMP и cRPM. Сила трения, которая есть в спецлении и коэффициент которой зависит от положения педали сцепления, стремится "приблизить" друг к другу RMP и cRPM. То есть:
SMD = sqr(Transmission[TI]) * Inertia; // у меня передаточные числа имеют обратный смысл, // то есть чем больше - тем выше передача, для нейтралки // естественным образом будет ноль. cRPM += ( RMP - cRMP) * Clutch / ( SMD + Clutch); // чтобы реакция оборотов выходного вала зависела от передачи. // На нейтралке реакция абсолютна, коэффициент будет равен // единице, на других передачах зависимость будет // пропорциональна Clutch и обратно пропорциональна SMD, // почему так переменную назвал - не помню. // Возможно, что коэффициент тут Clutch / sqrt(sqr(SMD)+sqr(Clutch)); // Вообще, Clutch в знаменатель добавлен именно для корректной // обработки нейтральной передачи RMP += Clutch * ( cRMP - RPM); // заставляем мотор "приблизиться" по оборотам к оборотам выходного вала
Тут видно, что для Clutch = 1 мы будем иметь ускорение, обратно пропорциональное текущей передаче (с поправкой на то, что но сверхнизкой передаче мы не может ускориться быстрее, чем ускоряются обороты мотора - вот и ещё один смысл корректировки знаменателя), для Clutch = 0 мотору и колёсам пофиг друг на друга.
Для коробки-автомата Clutch выбирается в зависимости от оборотов мотора. Причём он у меня ещё так подгоняется, чтобы срабатывал эффект увеличения крутящего момента в 2.5-3 раза в гидротрансформаторе, но чтобы итоговый КПД не превысил 85%:
Clutch *= 2.5 * Abs(RPM) / ( 2 * Abs( cRPM) + Abs( RPM)); // или тут квадратный корень должен быть, у меня здесь так.
(если умножать на RPM/cRPM, то получим идеальный трансформатор, кстати).
TarasB
Что-то у меня начинают закрадываться сомнения что люди не в курсе как трение работает.
Оказываемое давление, в данном случае на сцепление, которое собственно и задается нажатием педали (именно оно, а не коэффициэнт), приводит в соприкосновение диски.
Существует два коэффициэета трения - трение покоя, и трение скольжения.
Логика проста, мы умножаем нормальную силу (в данном случае силу давления сцепления) на коэффициент трения покоя, и сравниваем полученное с продольной силой (т.е. силой пытающейся сдвинуть два тела относительно друг друга) которая в данном случае будет высчитываться из сопротивления колес и силы движка. Если она оказалась меньше - то сцепление 100%, т.е. вращение вала сцепления и мотора будут равны. Если она превысила, то мы обращаемся к силе трения скольжения, так же умножая её на силу давления сцепления, и получаем ту силу которая будет пытаться синхронизировать вращение дисков.
В случае с резиной колес эффект скольжения возникает за счет отрыва частичек резины которые превращаются в маленькие шарики, грубо говоря в смазку, по которой машина скользит, а потом зависимость трения скольжения от скорости нелинейная. В случае же со сцеплением мы имеем дело с металлом, который этого недостатка лишен, а соответственно трение будет постоянно вне зависимости от разницы в скорости вращения дисков.
У меня есть такое подозрение что аффтар темы при моделировании автомобиля этого не знал, а потому у него катафалк находился постоянно в скольжении, от того его на демке там здорово и разворачивает.
Centuri0n
Возможно, для сцепления формулы придётся подправить. Я больше хотел АКПП смоделировать для автобуса с гидромеханикой.
Но общая суть такова - сцепление - это не поправочный член к dRMP, а некая сила, которая стремится сблизить RPM и cRPM, причём коэффициенты сближения относятся, как sqr(Transmission[TI]) и Inertia.
TarasB
Коробка автомат вещь сложная и так навскидку сказать не могу как там считать.
Но все же гидромеханика<>АКПП.
Силы которые увеличивают вращение диска сцепления и тормозят вращение диска двигателя должны быть одинаковы.
Centuri0n
> Но все же гидромеханика<>АКПП.
Почти всегда =. Понятно, что с какого-то момента гидротранформатор запирается, тогда расчёт идёт так, как если бы Clutch = 1.
Centuri0n
> Силы которые увеличивают вращение диска сцепления и тормозят вращение диска
> двигателя должны быть одинаковы.
А у меня они одинаковы как раз.