Forums
Pacejka data integrity at high Fz - Printable Version

+- Forums (https://www.vdrift.net/Forum)
+-- Forum: Community (/forumdisplay.php?fid=3)
+--- Forum: Bugs (/forumdisplay.php?fid=7)
+--- Thread: Pacejka data integrity at high Fz (/showthread.php?tid=1543)



Pacejka data integrity at high Fz - LBodnar - 08-07-2011 12:25 PM

Code:
btVector3 CARTIRE::GetForce(...)
{
...
    if (Fz > 30) Fz = 30;

This might be very optimistic. Magic formula limits are smaller and data will start to break up at lower loads, typically 10kN or so. First usually goes Mz by first becoming a straight line and then just flipping over.

These sort of loads might be triggered by road bumps, etc. I suggest limiting the range fed into Fx, Fy, Mz formulas and scale the outputs to keep them sane but still proportional to tyre load e.g.

Code:
    btScalar ForcesScale = 1.0;
    if (Fz > 10.0)
    {
        ForcesScale = Fz / 10.0;
        Fz = 10.0;        // set Fz top limit.  Pacejka formulas break up at high Fz
    }

...
    return btVector3(ForcesScale * Fx, ForcesScale * Fy, ForcesScale * Mz);
}



- NaN - 08-08-2011 04:26 AM

Quote:data will start to break up at lower loads, typically 10kN
Interesting. There are passenger tires having a rating above 1000kg don't want to think of truck tires.

Or is it a parameter issue. We maybe should add a load-limit parameter to the tire files. Is there a way to calculate it(thinking of Mz)?

What is the function of force scale if the values are going to be moot anyway. To simulate some kind of tire breakdown?


- NaN - 08-08-2011 04:31 AM

Wait. Got it. ForcesScale scales them linearly with load of the limit is exceeded.


- NaN - 08-08-2011 04:37 AM

Though I'd prefer to limit them to avoid breaking the simulation(thinking of >> 10kN).


- LBodnar - 08-08-2011 05:02 AM

NaN Wrote:
Quote:data will start to break up at lower loads, typically 10kN
Interesting. There are passenger tires having a rating above 1000kg don't want to think of truck tires.

Or is it a parameter issue. We maybe should add a load-limit parameter to the tire files. Is there a way to calculate it(thinking of Mz)?

It is purely my observation based on some data floating around and some 2006 MF data I got from racing teams.

Magic formula is nothing more than a very good fitting tool for collected data interpolation. It is neither based on any physical model nor it allows for data extrapolation. It has been fitted to what has been tested on a rig (e.g. +-15 degrees slip angles, +- 0.3 slip ratio and 10..200% rated load.) Because testing needs trustworthy data you have to destroy a lot of new tyres and pay for a lot more time on a rig if you want to test things like 90 degrees slip angle at 4x normal load. I am sure the tyre will blow up way before the test rig settles with stable data.

Anyway, if you just mindlessly plug in some data into MF you will get trouble. Like 90 degrees slip angle will produce heavy runaway Mz and some low Fy. Common sense suggests that Fy(90) should be very close to Fx(-1.0) and Mz(90)=0. It's a pity Pacejka et al. do not dedicate some chapter time to this.

I am not aware how you can deduce formula limits from its parameters. I suspect you cannot apart from charting it up and altering the input data (angle, slip, Fz, camber.) You'll see it when it goes nuts.

Again, since MF has no physical underlay to it different outputs have different behaviour outside reasonable range. Mz goes wild with higher Fz first because it is more "curvy" - it has to quickly reach the peak and change the sign all within 7-15 degrees slip angle.

MF 2006 uses Fz / Fzo as input parameter in all formulas where Fzo is nominal load - typically 4kN. Thus you can see what is "standard" load for the tyre. MF 96 does not have it so you need to guess. I'd say 10kN is a safe limit for most if not all available passenger/racing Pacejka data. How to model thing beyond this is up for grabs. MF is not intended for transient tyre response models - and this is where unusual normal loads usually come from.


- LBodnar - 08-08-2011 05:22 AM

NaN Wrote:Though I'd prefer to limit them to avoid breaking the simulation(thinking of >> 10kN).

Yes, that's what I have done as well. First thing is something like
Code:
if (Fz > 20.0) Fz = 20.0;
High loads happen during short transient events and because tyre is spongy, sticky and inertial it might be just as well modelled as tyre simply not transferring these excursions to the body at all.


- NaN - 08-08-2011 05:24 AM

Yeah, curve fitting... I've wondered if we could get away with a more simple model. Though it is not my not my area of expertise.

Would be great if you could upload patches with your changes/fixes so far. Preferably one per issue.