For Mz I suggest using this:

Code:

`btScalar CARTIRE::PacejkaMz(btScalar sigma, btScalar alpha, btScalar Fz, btScalar gamma, btScalar friction_coeff, btScalar & max_Mz) const`

{

btScalar Input_alpha = alpha; // save slip angle on entry

if (alpha > 90.0) alpha = 180.0 - alpha; // symmetry around +90 degrees if caller missed it

if (alpha < -90.0) alpha = -180.0 - alpha; // symmetry around -90 degrees if caller missed it

... calculations

// anti-symmetry around +-90 degrees

Mz *= cos(Input_alpha * M_PI / 180.0);

return Mz;

}

Here is what we get as a result compared to existing formula. Of course anything beyond 10-20 degrees slip angle is already a heavy slide but at least we get common sense outputs in this calculations.

Caller still has to limit the input slip angle to +-180 degrees!

Update: Haha! I have just had a look in Pacejka's 2006 book and he includes

cos(alpha) factor in Mz stating

Quote:factor cos(a) appearing in the equations for the aligning torque to properly handle the case of large slip angles and possibly backwards running...

:lol: