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: