• Blurring the line between real and virtual motorsports
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

How Racer handles weight distribution

Discussion in 'Racer Physics and Technical' started by Cosmo°, Apr 17, 2012.

  1. If you have been working on vehicle setups in Racer, you probably noticed a pair of telemetry outputs listed under Ctrl+9 ingame, called theoretical and actual weight % at front. These indicate the percentage of the vehicle's weight which rests over the front axle.

    Now I had been wondering for a long time why the values shown there never quite matched the distribution intended via the numbers set in car.ini. However, with the difference usually being fairly small, an error of around 1% did not put me off and I ignored it for the most part.

    There are vehicles though, where the difference becomes more significant, an error of 3% is no longer acceptable for example, since it influences the static ride height and other things as well. So after a couple of simple experiments it became obvious that there are two ways to define weight distribution and that Ruud had been using one method all along, while the community at large went with another interpretation. Since the official documentation fails to make a clear statement on this, I checked back with Ruud and then decided to post about it here, so that attention can be brought to the matter.

    Before the "how-to" part, here is a quick definition of the two interpretations:

    The common way to measure weight distribution in real life is to put the vehicle on a set of scales, one under each axle or wheel. This is what I would call the total mass based approach, because it takes the entire vehicle at once. Values found in specification and testing sheets are nearly always total mass based, which is why it is natural - but wrong - to assume Racer would treat it like this as well.

    Racer distinguishes between the body.mass and the sum of all wheel.mass entries. body.mass is the so called sprung mass, wheel.mass entries for each wheel add up to the unsprung mass. If your car.ini defines engine.mass separately, that value has to be added to body.mass to obtain the total sprung mass.
    This split of masses is required for the handling model to work and it also forms the basis of Racer's weight distribution definition. As such, you might call this the sprung mass based approach.

    Here is an example case that shows how we are meant to set weight distribution:

    I have taken the sample data from a modern hot hatchback where kerb weight is given as 1387kg. For this example I assume this already includes fuel and a driver. The claimed static weight distribution for the total mass of the vehicle is 65% front, 35% rear. Front axle unsprung mass is 125kg, rear axle unsprung mass is 92kg. Finally, the wheelbase is 2.636m.

    Racer requires us to use sprung mass based weight distribution so a few simple calculations are needed.

    We know total mass split is 65% over the front axle:
    1387kg * 65% = 901.55kg 
    Minus the unsprung mass for both front wheels:
    901.55kg - 125kg = 776.55kg
    The entire sprung mass of the vehicle is:
    1387kg - 125kg - 92kg = 1170kg
    Hence, front sprung mass distribution is:
    776.55kg / 1170kg = 66.37%
    The distance of the centre of gravity from the front axle is thus:
    2.636m * (100% - 66.37%) = 0.886m
    ...and that is it. If you position your body mesh file so that cg.z is zero, the distance we just calculated is identical to the susp_front.z value of the vehicle. susp_rear.z is then wheelbase minus susp_front.z.

    The vehicle is now set for a sprung mass based weight distribution of 66.37% front. At the same time, total mass based weight distribution is at 65% front, which is shown correctly under Ctrl+9 . No extra data is needed to do these calculations, since all the values are required to fill out car.ini in any case. If you store the calculation in a spreadsheet or a maths application, it takes only seconds longer to get the result.
    • Like Like x 4
  2. Very good info Cosmo. It seems that this should be calculated by Racer since the data is all there.

    Alex Forbin
  3. The definition of weight distribution based on sprung mass will stay like this, so we will have to do the calculations accordingly during the setup process. However, from our correspondence I gather that Ruud considers adding an info output, under Ctrl+9 for example, that shows total sprung mass based distribution for convenience.

    I just wish we had known this for the last decade :)

    edit: of course I mixed up the sprung and total in the last sentence of the first paragraph - Racer does show total mass distribution already, which is where the confusion originally came from after all (this number not matching my calculations, based on the total mass based approach).
  4. I always subtracted out the engine mass, and suspension mass. never thought of the whole part of using it and the measurement for the distance of the CoG to figure out how to place it though.
  5. engine.mass isn't really useful at all, so most of the time I don't specify it explicitely. Even though you can set x/y/z-coordinates for its mass position, they don't affect the overall weight distribution unfortunately. Racer simply adds engine.mass and body.mass together for the total sprung mass component, irrespective of where you put the engine. Of course, if that wasn't the case, engine mass would be very handy for setting up different model grades for one base vehicle for example.
    • Like Like x 1
  6. Ruud

    RACER Developer

    @Cosmo°: thanks for this document. I have taken your text (slightly modified) over in the carphys.htm page on racer.nl, for future reference. I'm now going to test this here and add that Ctrl-9 readout that would give that 66.7%.
  7. I'm not such a fan of engine mass any way, changing it means a change in inertia too, but that isn't automated.
    If engine goes up 60kg then you have a big job to adjust inertia any way so the advantage of having engine mass separate is kinda pointless for me.
    Fuel load and passengers would be more interesting for me as they are variables we can't easily control or be consistent with between authors...

    But that's a different topic for another thread hehe.

    Nice work Cosmo! I've always just let the variance pass due to data variance in the first place but if you have super accurate data it is important to understand this :)