PaceDynamics Documentation Open the app
Contents

Tyres

Load sensitivity

Why a tyre grips less per newton the harder it is pressed, and why that makes load transfer cost a pair of tyres grip.

Model as of 0.338Figures from the Formula Student single-car templateOctave check Exact

Press a tyre twice as hard into the road and it does not make twice the side force. Its friction coefficient falls as its load rises, and that one fact explains why load transfer costs grip, why a light car is not simply a scaled heavy one, and why the balance of a car can be set with springs and bars. Slip and the Magic Formula gives the formula; this page follows it to the axle.

Peak force against load

The template tyre’s peak side force against load, with the two front wheels in a left turn on the curve and the mean of the pair below it070014002100280035000500100015002000Load Fz (N)Peak side force D (N)inside frontoutside frontstandingthe pair’s mean, 39 N below11501350692 N39 Nclose up
peak side force, μy·Fzthe chord between the two wheelsthe standing wheel’s μ held at every load
Fig. 1
The peak bends over with load, so the two front wheels in a 1.2 g turn make less together than standing: 78 N less for the pair.
Measured

The friction coefficient falls in a straight line with the load's change from the file's nominal load Fz0, so the peak force, the coefficient times the load, is a parabola that bends over:

Show the equations with
D(Fz)=μyFz=(pDy1+pDy2Fz−Fz0Fz0)Fz(1)
D=(1.8+(−0.2)Fz−950950)Fz(1)
pDy1
the friction coefficient at the nominal load
pDy2
its change per unit of relative load: negative for every real tyre

The template's tyre loses nearly a tenth of its friction coefficient between 260 N and 1123 N: 1.945 against 1.764. The app reads μy off the curve rather than out of equation (1): the largest side force over the slip angle, found to a tenth of a degree, divided by the load. For this tyre, whose curve has no vertical shift, the two agree to a few parts in a million.

Two wheels, one axle

In a turn the axle's load does not change, but it moves outward: the outside wheel gains ΔF and the inside wheel loses it (Load transfer). On a parabola the pair's sum is less than twice the middle:

Show the equations with
D(Fz+ΔF)+D(Fz−ΔF)=2D(Fz)+2pDy2Fz0ΔF2(2)
front: ΔF=431 N:2⋅(−0.2)950⋅4312=−78.4 N(2)
Fz
each wheel's share of the axle's load, standing
ΔF
the load moved from the inside wheel to the outside one

The loss grows with the square of the transfer. Nothing about the tyre's slip enters: it is the curvature of D(Fz) alone. Fig. 1 draws it, the two front wheels in a 1.2 g left turn on the curve and their mean below it.

In a 1.2 g turn Front axle Rear axle
Standing, both wheels at their static load 2565 N 2863 N
Turning, the outside wheel's peak plus the inside one's 2487 N 2785 N
Grip lost to the transfer 78.4 N, 3.1 % 78.3 N, 2.7 %
Equation (2) 78.4 N 78.3 N

The template moves almost the same load across each axle, so each loses almost the same grip in newtons. The front has less to lose it from, so it loses the larger share. Move more of the transfer to one axle, with a stiffer bar or a higher roll centre at that end, and that axle loses more of its grip. That is how springs and bars set a car's balance at the limit.

The cornering stiffness bends over too

The template tyre’s cornering stiffness against load, peaking at a load past what any wheel carries, with the front pair in a left turn0700014 00021 00028 00035 0000500100015002000Load Fz (N)Cornering stiffness Cα (N/rad)largest at 1900 Ninside frontoutside frontstandingthe pair’s mean, 2286 N/rad below
cornering stiffness, read across ±0.1°the chord between the two wheels
Fig. 2
The cornering stiffness bends over too, and more sharply at the loads a car runs, so load transfer costs it a larger share than it costs grip.
Measured

The slope through the origin, the cornering stiffness, follows a sine of an arctangent in the load (Slip and the Magic Formula, equation 5). It rises, flattens and peaks where the sine's argument reaches a right angle:

Show the equations with
Kyα=pKy1Fz0sin⁡(pKy4arctan⁡FzpKy2Fz0),largest at Fz=pKy2Fz0tan⁡π2pKy4(3)
Fz=2⋅950⋅tan⁡π2⋅2=1900 N(3)
pKy1,pKy2,pKy4
the file's cornering-stiffness coefficients

Below its peak the curve is concave, so load transfer costs cornering stiffness as it costs grip, and by a larger share: the template's front pair falls from 41 777 to 37 204 N/rad, 10.9 %, and the rear by 10.2 %. In the linear range that is what moves the understeer gradient with lateral acceleration, since each axle's slip angle is its side force over its pair's cornering stiffness.

What the model assumes

  • Pure slip, at zero camber and the nominal pressure. Camber moves the friction coefficient with pDy3, and a loaded outside wheel usually runs more camber than the inside one.
  • The loads are the steady-state ones of Load transfer. The grip envelope reads every wheel at its own load the same way, then adds what the tyres' slip and the car's balance allow.
  • Grip falls in a straight line with load. Some tyres bend more at the light end; the Magic Formula's μy has no higher term, so a fit cannot follow that, and the Tyres tool marks loads beyond where a fit stops behaving like a tyre.

In the app

Tyres draws "Peak lateral μ vs load" and "Cornering stiffness vs load" for each tyre in the library, the curves in Fig. 1 and Fig. 2, out to the most any wheel carries on the car's own g-envelope. The Compare tab reads every tyre at three loads: the lightest wheel, a wheel going straight and the heaviest.

Check it yourself

The script reads μy and the cornering stiffness off the formula the way the app does, at the six loads in the table, and prints each axle's loss beside equation (2).

load_sensitivity.mwith example_tyre.m, pd_mf.m, pd_peak.m, pd_compare.mExact: agrees to machine precision
>> load_sensitivity

In a 1.2 g left turn:

  Axle   standing [N]  turning [N]     lost [N] parabola (2) [N]
  front        2565.0       2486.6         78.4             78.4
  rear         2863.5       2785.1         78.3             78.3

  The parabola is the formula's own peak; the app reads the peak off the curve,
  in steps of 0.1 deg, so the two can differ by a fraction of a newton.

  Axle     C_alpha standing    C_alpha turning
  front          41777 N/rad         37204 N/rad
  rear           45660 N/rad         40994 N/rad

  Quantity                                This script   PaceDynamics       Diff
  -----------------------------------------------------------------------------
  mu_y, front, standing [-]                    1.8544         1.8544         0% 
  mu_y, rear, standing [-]                    1.83581        1.83581         0% 
  mu_y, FL, inside [-]                         1.9452         1.9452         0% 
  mu_y, FR, outside [-]                       1.76357        1.76357         0% 
  mu_y, RL, inside [-]                        1.92661        1.92661         0% 
  mu_y, RR, outside [-]                         1.745          1.745         0% 
  C_alpha, front, standing [N/rad]            20888.4        20888.4         0% 
  C_alpha, rear, standing [N/rad]             22829.8        22829.8         0% 
  C_alpha, FL, inside [N/rad]                 8734.97        8734.97         0% 
  C_alpha, FR, outside [N/rad]                28469.1        28469.1         0% 
  C_alpha, RL, inside [N/rad]                 11533.9        11533.9         0% 
  C_alpha, RR, outside [N/rad]                  29460          29460         0% 

  All 12 quantities agree with PaceDynamics (largest difference 0 %).
The script
%% Load sensitivity: why a pair of tyres loses grip to load transfer
%
% Companion to the documentation page "Load sensitivity". Runs unchanged in GNU Octave
% (7 or later) and MATLAB. Edit the tyre in example_tyre.m and run:
%
%   >> load_sensitivity
%
% A tyre's friction coefficient falls as its load grows,
%
%   mu_y(F_z) = p_Dy1 + p_Dy2 dfz,     dfz = (F_z - F_z0) / F_z0,     p_Dy2 < 0
%
% so its peak force D = mu_y F_z bends over: a parabola in the load. Two wheels sharing
% 2 F_z, one with F_z + dF and one with F_z - dF, then make
%
%   D(F_z + dF) + D(F_z - dF) = 2 D(F_z) + 2 p_Dy2 dF^2 / F_z0
%
% which is less than the pair standing, by an amount that grows with the SQUARE of the
% load transferred. The cornering stiffness bends over the same way.
%
% The app reads each wheel's mu_y from its curve, as the largest |F_y| over the slip
% angle divided by the load, and its cornering stiffness from a difference across
% +-0.1 deg. This script does both the same way, at the loads the Load transfer page
% puts on the template's four wheels in a left turn.
%
% Reference: W. F. Milliken and D. L. Milliken, Race Car Vehicle Dynamics (SAE, 1995),
% ch. 2.4 and 18.
%
% Part of the PaceDynamics documentation, https://pacedyn.dev/docs
% SPDX-License-Identifier: MIT

[t, app] = example_tyre();
L = app.load;
deg = pi / 180;
wheels = {'staticFront', 'staticRear', 'FL', 'FR', 'RL', 'RR'};
names  = {'front, standing', 'rear, standing', 'FL, inside', 'FR, outside', 'RL, inside', 'RR, outside'};

mu = zeros(1, numel(wheels));
Ca = zeros(1, numel(wheels));
for i = 1:numel(wheels)
  Fz = L.loads.(wheels{i});
  Fy = @(a) getfield(pd_mf(t, Fz, a, 0), 'Fy0');
  mu(i) = pd_peak(@(a) Fy(a * deg), 45, 1) / max(1, Fz);
  e = 0.1 * deg;
  Ca(i) = abs((Fy(e) - Fy(-e)) / (2 * e));
end

%% What the pair loses, axle by axle
D = @(i) mu(i) * L.loads.(wheels{i});
fprintf('\nIn a %g g left turn:\n\n', L.ayG);
fprintf('  %-6s %12s %12s %12s %16s\n', 'Axle', 'standing [N]', 'turning [N]', 'lost [N]', 'parabola (2) [N]');
pairs = {[1 3 4], [2 5 6]};
axles = {'front', 'rear'};
for k = 1:2
  p = pairs{k};
  standing = 2 * D(p(1));
  turning  = D(p(2)) + D(p(3));
  dF = (L.loads.(wheels{p(3)}) - L.loads.(wheels{p(2)})) / 2;      % the load transferred
  parabola = -2 * t.PDY2 * t.LMUY * dF^2 / (t.LFZO * t.FNOMIN);
  fprintf('  %-6s %12.1f %12.1f %12.1f %16.1f\n', axles{k}, standing, turning, standing - turning, parabola);
end
fprintf('\n  The parabola is the formula''s own peak; the app reads the peak off the curve,\n');
fprintf('  in steps of 0.1 deg, so the two can differ by a fraction of a newton.\n');
fprintf('\n  %-6s %18s %18s\n', 'Axle', 'C_alpha standing', 'C_alpha turning');
for k = 1:2
  p = pairs{k};
  fprintf('  %-6s %13.0f N/rad %13.0f N/rad\n', axles{k}, 2 * Ca(p(1)), Ca(p(2)) + Ca(p(3)));
end

%% Against the app
for i = 1:numel(wheels)
  pd_compare(sprintf('mu_y, %s [-]', names{i}), mu(i), L.muY.(wheels{i}));
end
for i = 1:numel(wheels)
  pd_compare(sprintf('C_alpha, %s [N/rad]', names{i}), Ca(i), L.corneringStiffness.(wheels{i}));
end
pd_compare();

Download: load_sensitivity.m · example_tyre.m · pd_mf.m · pd_peak.m · pd_compare.m. The scripts are MIT licensed.

Further reading

  • W. F. Milliken and D. L. Milliken, Race Car Vehicle Dynamics (SAE, 1995), ch. 2.4, on load sensitivity, and ch. 18, on load transfer and balance.
  • H. B. Pacejka, Tyre and Vehicle Dynamics, 3rd ed. (Butterworth-Heinemann, 2012), ch. 4.3.2, on the Magic Formula's load dependence.
ChapterLoad sensitivity
PartTyres
Model as of0.338
Example carthe Formula Student single-car template