racer home

Combined slip for tires

 

Home Every physical aspect of the car should be in the car.ini file.


Dolphinity Organiser - free planning, project management and organizing software for all your action lists

 

Introduction

Combined slip is the science of combining the lateral and longitudinal tire forces into one final force. Due to limitations of the tire, just taking the 'pure' directional forces and adding them together is not realistic.

However, multiple ways to combine the tires can and have been thought of, and Racer implements a bunch of them, including home-made methods.

Tire forces are measured in real life with pure slipratio or pure slip angles mostly, so focusing on longitudinal forces or lateral forces. Combined slip is a term used when the tire exerts both lateral and logitudinal forces at the same time. Measuring this in real life is so tricky that often the results are just too inaccurate to use. Racer (v0.9.0RC5) as multiple Pacejka models which deal with combined slip differently. When using MF5.2 (Magic Formula version 5.2), the combination is in the measured coefficients. Due to the fact that these coefficients might be very inaccurate, you might consider ignoring these and doing an algorithmic combined slip model instead. The older Pacejka model (around 1996?) only supports pure Fx (longitudinal) and Fy (lateral) forces, but no combined slip/grip. In that case, there are different models to approch the problem.

For years, Racer has been using an analytical approach as proposed by Gregor Veble and Brian Beckman (each on their own but basically doing the same thing). The option (although you should normally not touch it) is in racer.ini under dbg_car.friction_circle_method. It's called the friction circle since the forces that a tire can generate are limited by a magnitude (more or less). So when in a corner (generating longitudinal/lateral forces), you can't just add the Fx and Fy forces; rather, the magnitude of the combined Fx & Fy (the length of the vector) is limited to what a tire can produce. The circle is in real life really more of an ellipse, if the tire behavior isn't too symmetrical. Some friction circle methods support tuning of LYKA and LXAL to tweak the lateral vs longitudinal relationship.

Racer v0.9.0RC5 introduces a new friction circle method, called the Similarity method, which was taken from Pacejka's book called 'Tyre and Vehicle Dynamics', chapter 4.2.2, page 164. It modifies the inputs to the Pacejka (pure) curves, then rescales the outputs to generate the distribution for lateral and longitudinal forces. In practice, this feels a lot nicer than the analytical method which Racer has been using for many years (upto October 2012 then). A refinement that seems very valid and is used in a number of vehicle these days (2-10-2013) is method 10.

The default friction circle method is set in dbg_car.friction_circle_method (for each car!), but each wheel can be controlled independently in the car.ini file with wheel<n>.friction_circle_method (which then defaults to racer.ini friction_circle_method).

Pacejka curves are only really nice when the tire stays within reasonable limits. Beyond that, the theories are really quite varied and not really measured/measurable. So beyond a certain point, the Pacejka curves don't really make sense anymore and tend to overly reduce forces where a real tire would still feel relatively sticky. max_slip_len allows you to control how far the slip parameters can go over the peak point. If set to 1, the forces will stick to the optimal ones (optimal_slipratio/optimal_slipangle) so the car will act much too stable. Make it 1.5 or 2.0 and it will be able to oversteer more nicely. Make it 6.0 or higher and the car probably breaks out quite harshly, to the point of becoming unrealistic. Tweaking this parameter is more by experiment than scientifically converging to a 'best value'. Using a value closer ~2.0 will keep tire forces intact, thus giving a less touchy tire.

You can set the default all-car value in racer.ini under dbg_car.max_slip_len, and per wheel in the car.ini file under wheel<n>.max_slip_len if needed.

You can also limit the other inputs to the Pacejka formulae; see the Pacejka page for more information on those parameters (tweakable per car).

Racer.ini contains a development setting (dbg_car.friction_circle_method), which determines the combined slip method. Normally, it is 3 (Gregor Veble's method), which looks a lot like Brian Beckman's method. The Beckman method is described online in the Physics of Racing Series; refer to chapter 25 (click to view). It modifies the inputs and outputs to the Pacejka curves to limit the Fx and Fy force curves.

Selecting a default method can be done in racer.ini with the setting dbg_car.friction_circle_method. With Racer v0.9.0RC6 however, you can overrule this per-car (even per-wheel!) using car.ini's wheel<n>.friction_circle_method. The default is -1, meaning to use the globally defined friction circle method (=combined slip method). There are multiple useful combined-slip models though. The most important ones are described here.

 

Combined tire forces - method 3 (Beckman)

This method uses dbg_car.friction_circle_method=3 (in racer.ini, or per car, using wheel<n>.friction_circle_method).

This method has been used for years in Racer, and was designed by Gregor Veble, and it looks a lot like Brian Beckman's method. The Beckman method is described online in the Physics of Racing Series; refer to chapter 25 (click to view). It modifies the inputs and outputs to the Pacejka curves to limit the Fx and Fy force curves. Lately, I've not been too impressed with it anymore, due to sharp snap oversteer behavior.

For combined forces to work nicely for this method, you need to specify the optimal slip angle and ratio in the Pacejka curves. These parameters are in wheel<n>.pacejka.optimal_slipratio and wheel<n>.pacejka.optimal_slipangle. The slip ratio is a ratio (no units), something like 0.12 can be a good start value. The slip angle is specified in radians; a value for 6 degrees (typical for a race car; a regular road car would be more in the 10-20 degree range) would amount to around 0.10 radians. Note the Magic Formula 5.2 Pacejka curves don't need these values (they are ignored in that case), since the combined lon/lat forces are defined through Pacejka's Magic Formula coefficients.

Failing to provide nice optimal_* values will result in bad forces when skidding in both lateral and longitudinal directions. v0.8.33 of Racer introduced an additional parameter that can be set per car: wheel<n>.pacejka.max_slip_len. Defaulting to the value in racer.ini (dbg_car.max_slip_len), it allows you to limit how far the slip lookups in the Pacejka curves go. Here is the process each physics step:

Pacejka curves are only really nice when the tire stays within reasonable limits. Beyond that, the theories are really quite varied and not really measured/measurable. So beyond a certain point, the Pacejka curves don't really make sense anymore and tend to overly reduce forces where a real tire would still feel relatively sticky. max_slip_len allows you to control how far the slip parameters can go over the peak point. If set to 1, the forces will stick to the optimal ones (optimal_slipratio/optimal_slipangle) so the car will act much too stable. Make it 1.5 or 2.0 and it will be able to oversteer more nicely. Make it 6.0 or higher and the car probably breaks out quite harshly, to the point of becoming unrealistic. Tweaking this parameter is more by experiment than scientifically converging to a 'best value'. Using a value closer ~2.0 will keep tire forces intact, thus giving a less touchy tire.

You can also limit the other inputs to the Pacejka formulae; see the Pacejka page for more information on those parameters (tweakable per car).

Combined forces are a complex subject; it is too complex to completely explain here, but the general idea is to combine lateral & longitudinal forces such that a mix wouldn't overflow a maximum amount of tire force. This uses something that looks like a friction circle; when you use maximum lateral force, that means there is no longitudinal force that you can obtain from the tire anymore.

Racer.ini contains a development setting (dbg_car.friction_circle_method), which determines the combined slip method. Normally, it is 3 (Gregor Veble's method), which looks a lot like Brian Beckman's method. The Beckman method is described online in the Physics of Racing Series; refer to chapter 25 (click to view). It modifies the inputs and outputs to the Pacejka curves to limit the Fx and Fy force curves.

 

Combined tire forces - method 7 (Similarity Model)

This method uses dbg_car.friction_circle_method=7 (in racer.ini). The basics from this one come from Pacejka's book on tire dynamics ('Tyre and Vehicle Dynamics') in chapter 4.3.

To combine forces the pure Pacejka curves are used, but the inputs are modified. The details are described in the book, but a recombination of Fx and Fy forces is done after calculating the regular Pacejka curve output. This method gives a less 'snap oversteer' feeling than method 3 (described below). In essence, the lon/lat inputs are normalized (to get to a friction circle concept) and then denormalized.

A nice touch for method 7 is that is doesn't require the optimal_slipratio and optimal_slipangle settings that are needed for method 3. Since those optimal values really change as load/camber changes, this method doesn't suffer from that inaccuracy (although the optimal slip angle and ratio can be guessed quite nicely).

To tune the combined slip behavior, there are 3 variables you can play with:

If you're wondering about the funny names, note that LXAL is a combination of L for Lambda, X for longitudinal and AL for Alpha, which is SlipAngle in the Magic Formula model. Similarly, LYKA means Lamba (scaling) factor for Y (lateral) based on KA (kappa, which is slipRatio).

 

Combined tire forces - method 10 (Similarity Model/Marno Hopmans)

This method uses dbg_car.friction_circle_method=10 (in racer.ini, or per car). The basics from this one come from Pacejka's book on tire dynamics ('Tyre and Vehicle Dynamics') in chapter 4.3, but there other parameters are used. In this method, the slip ratio and angle are not divided by (1+kappa), which give trouble when kappa goes to -1 (wheel locking during hard braking).

To combine forces the pure Pacejka curves are used, but the inputs are modified. The details are mostly as with method 7, but a recombination of Fx and Fy forces is done after calculating the regular Pacejka curve output. This method gives a less 'snap oversteer' feeling than method 3 (described below). In essence, the lon/lat inputs are normalized (to get to a friction circle concept) and then denormalized.

A nice touch for method 10 is that is doesn't require the optimal_slipratio and optimal_slipangle settings that are needed for method 3. Since those optimal values really change as load/camber changes, this method doesn't suffer from that inaccuracy (although the optimal slip angle and ratio can be guessed quite nicely).

To tune the combined slip behavior, there are 2 variables you can play with:

If you're wondering about the funny names, note that LXAL is a combination of L for Lambda, X for longitudinal and AL for Alpha, which is SlipAngle in the Magic Formula model. Similarly, LYKA means Lamba (scaling) factor for Y (lateral) based on KA (kappa, which is slipRatio).

 

Combined tire forces - method 11 (Brush Model 2013)

This method first saw the light in v0.9.0RC6 and is based on a mix of models, namely the Brush Model (a relatively simple model of a tire), Magnus Gäfvert and Jacob Svendenius' paper(s) on combined slip ("Construction of Novel SemiEmpirical Tire Models for Combined Braking and Cornering") and Pacejka's Magic Formula.

The Gäfvert paper splits the original Pacejka tire forces into adhesive and sliding portions, based on results from the brush model. The paper is quite complex though. The idea for this method is to calculate how much of the tire is sliding, and how of it is adhesive. Then, the tire forces are split into a regular Pacejka part (in the surface/tire axis system) and a sliding force, which is directly related to the slip velocity. Given much sliding (lots of slip), this method gives far more forgiving combined slip behavior.

First, the amount of slip is calculated, relative to the friction circle. In other words, a value of 1 here will mean the tire is precisely at the edge of the friction circle (which is an ellipse really).

There are 3 tuning parameters (in v0.9.0RC6) to tweak tires with this method. As with method #7, the parameters LXAL and LYKA are used (perhaps a bit misnamed) to tune longitudinal and lateral behavior respectively.

Although you can tune all tires independently, at least the front and rear tires must often be handled as a group. So using different values of lxal and lyka is probably only useful for the front and rear, not for left & right tires.

 


Dolphinity Organiser - free planning, project management and organizing software for all your action lists

(last updated October 2, 2013 )