Page 3 sur 3

Re: BeamNG.Drive, simulation du HDJ80 avec boite de transfert configurable.

Publié : 08 sept. 2024, 13:52
par olivier80

Dernier message de la page précédente :

Syche a écrit : 24 août 2024, 16:26 Le terme TBR ne convient pas a des diffs autres que le torsen.
Lorsqu'on regarde le code du simulateur BeamNG, il n'y a pas de différentiation entre un différentiel à glissement limité à engrenages, comme un Torsen, et un différentiel à glissement limité à disques. C'est le même code.

On peut donc simuler un Torsen, un Torsen avec précharge, ou un LSD à disques et cames (avec ou sans précharge, en 1 way, 1.5 way, 2 way) , avec le même code.

Ici la fonction qui calcule le couple en sortie de différentiel. Il suffit juste de changer les paramètres de précharge et les paramètres de couples de croisement en mode Drive et Coast (lsdPreload, lsdLockCoef, lsdRevLockCoef) pour simuler des diffs LSD à engrenages ou à disques ou autres LSD basés sur le même principe de report de couple.

lsdLockCoef et lsdRevLockCoef sont les valeurs d'addition de couple sur une roue (noté "a" dans les formules ci-dessous), mais on pourrait les substituer avec des valeurs TBR avec la formule simple :

TBR = (1+a)/(1-a)
a = (TBR - 1) / (TBR + 1)

Ou Si a est exprimé en pourcentage :

TBR = (1+(a/100))/(1-(a/100))
a = 100 * (TBR - 1) / (TBR + 1)

Code : Tout sélectionner

local function LSDUpdateTorque(device)
  local inputAV = device.inputAV
  local outputAV1diff = device.outputAV1 - inputAV * device.invGearRatio
  local outputAV2diff = device.outputAV2 - inputAV * device.invGearRatio

  local absMaxOutputAVdiff = max(abs(outputAV1diff), abs(outputAV2diff))
  local friction = (device.friction * clamp(inputAV, -1, 1) + device.dynamicFriction * inputAV + device.torqueLossCoef * device.parent[device.parentOutputTorqueName]) * device.wearFrictionCoef * device.damageFrictionCoef
  local inputTorque = (device.parent[device.parentOutputTorqueName] - friction) * (1 - min(device.speedLimitCoef * absMaxOutputAVdiff * absMaxOutputAVdiff * absMaxOutputAVdiff, 1)) * device.gearRatio

  --lsd works with an initial preload torque + input torque sensing locking ability
  local torqueSign = sign(inputTorque)
  local lsdLockCoef = max(torqueSign, 0) * device.lsdLockCoef - min(torqueSign, 0) * device.lsdRevLockCoef
  local lsdTorque = device.lsdPreload + lsdLockCoef * abs(inputTorque)
  device.inputTorque = inputTorque
  device.outputTorque1 = inputTorque * device.diffTorqueSplitA - device.lsdTorque1Smoother:get(lsdTorque * clamp(outputAV1diff * device.diffTorqueSplitA, -1, 1))
  device.outputTorque2 = inputTorque * device.diffTorqueSplitB - device.lsdTorque2Smoother:get(lsdTorque * clamp(outputAV2diff * device.diffTorqueSplitB, -1, 1))
end
A noter que les trois paramètres principaux sont la précharge, le ratio TBR en Drive et en Coast, mais il y a une paire d'autres paramètres, modifiables, qui entrent en ligne de compte dans la simulation, notamment la friction et la friction dynamique, qu'on laisse en général à des valeurs par défaut et qui représentent une moyenne de ce qu'on trouve dans la réalité. Ces derniers paramètres n'ont pas une influence déterminante sur le comportement du différentiel.

Re: BeamNG.Drive, simulation du HDJ80 avec boite de transfert configurable.

Publié : 15 mars 2025, 09:08
par Fred07
Beaucoup pensent que le simulateur reste simplement un jeu, pour ma part je trouve réellement que l'on apprend énormément, que ce soit pour les freinages, les transferts de masses, les dérives etc.. Enfin j'ai beaucoup appris avec ça pour ma part. (Ainsi que les réglages de géo et leur influence sur la voiture)
Pour ma part, je joue sur Assetto corsa avec un volant fanatec ps5 :D

Re: BeamNG.Drive, simulation du HDJ80 avec boite de transfert configurable.

Publié : 15 mars 2025, 11:56
par olivier80
Je trouve également que c'est très instructif. En 4x4 on peut apprendre beaucoup sur l'efficacité des différentiels et leurs blocages, sur leur utilisation. Surtout qu'il est possible de modifier à souhait en temps réel les types de différentiels et leurs réglages, ce qui est beaucoup plus difficile sur un vrai véhicule. Tout le monde n'a pas les moyens financiers ou techniques pour démonter les ponts et changer les différentiels, juste pour se former.

Je me suis rendu compte que peu de possesseurs de 4x4 savent de quoi il en retourne à ce niveau. Certains n'ont même jamais utilisé les blocages, au point qu'ils sont même souvent en panne sur les véhicules anciens entretenus à la va comme je te roule.

Il est vrai que la chasse aux 4x4 en France, et l'interdiction de rouler dans énormément de chemins n'arrange pas la situation. Il faudra peut être attendre que la neige disparaisse totalement des stations de ski et qu'elles décident de trouver une autre tirelire, attendre qu'on fasse à nouveau autre chose que du vin, du blé et du fromage, pour voir la situation changer un peu... :lol: :lol:

Le travail que j'ai fait sur Beam.NG à ce niveau ne semble pas susciter beaucoup d'intérêt, peut être parce qu'il n'y a pas le marketing et la poudre qui va avec, peut être parce que ce qui compte avant tout aujourd'hui c'est uniquement la détente après le travail et la poudre aux yeux. Ce n'est pas un signe de bonne santé sociale, et, surtout, une frange de la population encourage et profite de ce système où le bonheur, et l'efficacité de la liberté de penser, d'apprendre et de comprendre, ont été remplacés par le confort d'une consommation souvent inutile voir néfaste, pour les hommes comme pour la nature, dans la plus grande hypocrisie de la majeur partie des états, de leurs dirigeants et de tous les acteurs de ce désastre qui nous mène dans une impasse.

Ci-dessous le système de commande en temps réel des différentiels que j'ai implémenté dans une extension Beam-NG :

Affichage temps réel des informations de réglage de chaque différentiel :
diff infos.png
Panneau de contrôle relié en USB (Legato Stream Deck XL)
Panneau de commande.png
Pour ceux qui n'ont pas de panneau de contrôle USB externe, mémorisation des réglages, ou contrôle temps réel par des raccourcis claviers :
auto and manual lsd.png
Comme on peut le voir sur ces photos, il est possible, en temps réel, de changer les paramètres, les blocages et le type de différentiels, pour chacun des trois différentiels.

- différentiels de type LSD, VLSD ou ouverts, choix indépendant pour chaque différentiel.
- blocages manuels ou automatiques à détection de différence de vitesse
- réglage de la précharge, des ratios coast et drive pour les LSD, réglage du ratio de couple avant arrière pour le central, du coefficient de couple croisé et du couple croisé maxi pour les VLSD.
- rapports de démultiplication des ponts, de la boite de transfert et de la boite de vitesses, pour tous les rapports.

Il est possible d'implémenter des différentiels actifs dans Beam.NG, mais là on entre dans un domaine complexe, où il est possible d'avoir des résultats moins bons qu'avec des différentiels classiques si les paramètres et les algorithmes ne sont pas parfaitement adaptés au véhicule. Leur temps de réaction peut être également moins bons que ceux de diffs classiques. Donc après quelques essais je me suis limité aux différentiels classiques qui de plus correspondent à ce qu'on a sur tous les anciens 4x4.

Re: BeamNG.Drive, simulation du HDJ80 avec boite de transfert configurable.

Publié : 15 mars 2025, 23:01
par clost
Les acquisitions d'expérience sur le terrain, c'est pas non plus :mrgreen: :ange: