I have noticed two problems with GetRollingResistance:

Firstly, calculation in cartyre.cpp does not include normal force Fz.

Rolling resistance is approximated by

where

Fz is normal force in Newtons and

f is

where

V is vehicle velocity in m/s.

GetRollingResistance function does not include

Fz which makes it off by a factor of 4000-5000. E.g. with "rolling-resistance = 1.3e-2, 6.5e-6" at standstill the resistance returns 0.013 N which is 1 milligram * force. Multiplying it by 4500N we get more realistic 60N or 6 kg*f per tyre.

Secondly, it is called from cardynamics.cpp with a wrong argument:

Code:

`btScalar rolling_resistance = - tire[i].GetRollingResistance(wheel[i].GetAngularVelocity(), ...);`

this should be longitudinal velocity, not angular.

Thanks

Leo

That is a very sensitive topic. I've burned my fingers already rewriting/fixing the simulation, had to revert to the current code.

Car parameters are fine tuned for the current implementation and the users are expecting certain(current) behavior.

Any changes will require a lot of testing and car parameter fixes. I suggest to create a fork on github if you wan't to experiment with it.

NaN Wrote:That is a very sensitive topic. I've burned my fingers already rewriting/fixing the simulation, had to revert to the current code.

Car parameters are fine tuned for the current implementation and the users are expecting certain(current) behavior.

Any changes will require a lot of testing and car parameter fixes. I suggest to create a fork on github if you wan't to experiment with it.

You are using rolling resistance parameters fo=0.013 and K=6.5E-6 that were lifted straight from G.Genta's book

http://books.google.com/books?id=yAo-6yQ...&q&f=false (pp.43-44) but somehow dropped a coefficient Fz which is about 4000 (in Newtons.)

I'd then suggest removing the whole rolling resistance code altogether rather then sticking with an outright bug since at the moment the code produces no sensible output.

At current state there is 1 gram of rolling resistance per tyre.

You can fix the bug and set "rolling-resistance = 0, 0" in touring tyre file if you don't want to upset the car models.

I don't understand the desire to keep an obvious bug. Isn't this supposed to be a realistic simulator? :?

Quote:set "rolling-resistance = 0, 0"

This will still affect the driving behavior due to surface settings(GetSurface().rollResistanceCoefficient) per track.

I've already had rolling resistance fixed but I didn't realize the consequences. It affected the driving behavior and messed up some of the 39 cars and broke the track surfaces on almost all of the 45 tracks. This is what I have to test and adjust if I wanted to fix it properly.

I've grepped a bit. The RollResistanceCoefficient(roll resistance factor) for track surfaces is between 0 and 40. I think we could scale it down by a constant.

What remains are the cars. Some will get balance problems during cornering due to roll resistance, would have to be tuned. :?

Issue:

https://github.com/VDrift/vdrift/issues/27
Please bear with me. We will go through this mess together!

It's more complicated than it looks. Genta never made it clear in his book for whatever reason. Let me know if you understand what I am saying.

1) In any tyre speed-dependent part of rolling resistance only starts acting above tyre's rated maximum speed. The discussion in Genta's book is purely theoretical - you are not supposed to ever achieve the speed at which V^2 term is relevant. This is where tyres start heating up and self-destruct. So for the sake of real life driving we assume rolling resistance independent of speed.

2) There are different definitions of slip ratio. If you define slip radius centre as lying on the track surface then Fx cannot generate any torque (arm = 0) and rolling resistance torque needs to be defined separately from Fx.

3)The way slip radius is defined in Pacejka works it ends up lying under the track surface. Thus Fx can be adjusted to account for rolling resistance torque. Pacejka magic formulas (at least 1996 and 2004) have speed-independent part of the rolling resistance (

fo term)

already embedded in Fx formula in the form of

Sh term. This

Sh term shifts the whole curve left by the value of "free rolling slip." In other words at zero slip

Fx(0) = Fr = rolling resistance.

So basically if you are using correct Pacejka formulas and feed them with correct data then you don't need rolling resistance per se.

However!!! Somebody did this:

Quote: // horizontal shift

btScalar Sh = 0; //beckmann// b[9] * Fz + b[10];

:o

4) Where did you get "touring" Pacejka data from? It produces free rolling

result Fx(0) / Fz = 0.12 which is 10 times higher than it should be! Maybe this is why it has been commented out? Genta has two reasonable sets of Pacjeka 96 data for family sedan and sports car tyres that look good.

My suggestion: remove rolling resistance torque from

cardynamics.cpp, reinstate

Sh and triple-check the origin of Pacejka data for "touring" compound, namely

b9 and

b10.

Thanks

Leo

Quote: you are not supposed to ever achieve the speed at which V^2

Gyenes, L. and Mitchell, C.G.B., "The Effect of Vehicle-Road Interaction on Fuel Consumption,"

Quote:already embedded in Fx formula in the form of Sh term

Nice catch. I think there have been issues related to camber(relative to surface). Need to check the coefficients(b[9], b[10]).

Thanks for looking into this!

NaN Wrote:Gyenes, L. and Mitchell, C.G.B., "The Effect of Vehicle-Road Interaction on Fuel Consumption,"

We don't know what tyres this has been collected from. Same Genta book has this graph. Radial tyre speed rating is "S" which is 180 km/h and this tyre coding has not been in use since 1991! Rolling resistance is almost flat until 160 km/h and only triples at 180km/h. Even then it is only about 16 kg force at 4kN load - nothing compared to e.g. aerodynamic drag forces.

My point was that for practical purposes rolling resistance can be considered independent of vehicle speed.

Quote:Where did you get "touring" Pacejka data from?

That is a good question. I think I had some pirelli tire data(from a FSAE paper) but never put it into vdrift. Can you post the Genta numbers?

NaN Wrote:Quote:Where did you get "touring" Pacejka data from?

That is a good question. I think I had some pirelli tire data(from a FSAE paper) but never put it into vdrift. Can you post the Genta numbers?

Sure,

Large front-wheel drive saloon car
Rolling radius Re = 287mm

# Lateral force

a0=1.6929

a1=-55.2084

a2=1271.28

a3=1601.8

a4=6.4946

a5=0.0047966

a6=-0.3875

a7=1

a8=-0.045399

a9=0.0042832

a10=0.086536

a111=-7.973

a112=-0.2231

a12=7.668

a13=45.8764

# Longitudinal force

b0=1.65

b1=-7.6118

b2=1122.6

b3=-0.00736

b4=144.82

b5=-0.076614

b6=-0.00386

b7=0.085055

b8=0.075719

b9=0.023655

b10=0.023655

# Aligning moment

c0=2.2264

c1=-3.0428

c2=-9.2284

c3=0.500088

c4=-5.56696

c5=-0.25964

c6=-0.00129724

c7=-0.358348

c8=3.74476

c9=-15.1566

c10=0.0021156

c11=0.000346

c12=0.00913952

c13=-0.244556

c14=0.100695

c15=-1.398

c16=0.44441

c17=-0.998344

:?: b9 and 10 are the same?

------------------------------------------------------------

Large rear-wheel drive sports car
Rolling radius Re1 = 310mm Re2 = 315mm

# Lateral force

a0=1.799

a1=0

a2=1688

a3=4140

a4=6.026

a5=0

a6=-0.3589

a7=1

a8=0

a9=-0.006111

a10=-0.03224

a111=0

a112=0

a12=0

a13=0

# Longitudinal force

b0=1.65

b1=0

b2=1688

b3=0

b4=229

b5=0

b6=0

b7=0

b8=-10

b9=0

b10=0

# Aligning moment

c0=2.068

c1=-6.49

c2=-21.85

c3=0.416

c4=-21.31

c5=0.02942

c6=0

c7=-1.197

c8=5.228

c9=-14.84

c10=0

c11=0

c12=-0.003736

c13=0.03891

c14=0

c15=0

c16=0.639

c17=1.693

:?: b9 and b10 are zero (no rolling resistance from Pacejka)

But he lists fo=0.013 and K=6.5E-6

Same numbers are listed for saloon as well?!

I am about to throw his book out of the window! It is full of inaccuracies!

By the way here are the Fy curves for all three. Could "touring" be a bias-ply or truck tyre? It's just too different...

Pacejka â94 Handling Force Model Tire Coefficients for Goodyear FSAE Tire

20in outside diameter, 6.5in width, 13in diameter rim, 12psi inflation pressure

# Lateral force

a0=1.50

a1=44.256

a2=1552.3

a3=-3500.2

a4=-15.22

a5=0.0066

a6=-0.0106

a7=0.29

a8=-0.0375

a9=-0.0852

a10=-0.0319

a11=-47.679

a12=-140.28

a13=0.8846

a14=-20.369

a15=-0.00382

a16=-0.0287

a17=0.2

# Longitudinal force

b0=1.6226

b1=0

b2=-1573.5

b3=-32.75

b4=-564.4

b5=0.0359

b6=0.0054

b7=0.1652

b8=1

b9=0.0895

b10=0.3

b11=-91.51

b12=-115

b13=0

# Aligning moment

c0=2.35

c1=9.71

c2=-1.60

c3=4.51

c4=-2.67

c5=0.127

c6=0.129

c7=-0.3

c8=-2.17

c9=-3.49

c10=0.309

c11=0.152

c12=0.328

c13=0.184

c14=0.064

c15=0.471

c16=1.59

c17=-1.66

c18=-0.073

c19=-0.181

c20=-0.424

unloaded radius=0.26 m

width=0.165 m

aspect ratio=0.3

vert stiffness=1.8E5 N/m

vert damping=250 Ns/m

lat stiffness=9.0E4 N/m

Sorry NaN, I don't have the '94 formula itself so I can't plug it in and check the curves. Parameter meaning has definitely changed even though the names are similar. At least in 2004 version the names are different (like qDz6 etc.)

Pacejka â94 logitudinal:

C = b0

D = (b1 * Fz + b2) * Fz

BCD = (b3 * Fz + b4) * Fz * exp(-b5 * Fz)

B = BCD / (C * D)

Sh = b9 * Fz + b10

Sv = b11 * Fz + b12

X = k + Sh

E = ((b6 * Fz + b7) * Fz + b8) * (1 - b13 * sign(X))

Fx = D * sin(C * atan(B * X - E * (B * X - atan(B * X)))) + Sv

Set b11, b12, b13 to 0 and you will get the formula used in vdrift. Can you compare to '96?

Wait, there is a factor missing in vdrift:

B = BCD / (C * D/Fz) //error?

NaN Wrote:Can you compare to '96?

I have found '94 formula and plotted Fy curve. It looks pretty much like "touring" Fy chart posted above.

Data is taken from this paper, right?

http://repository.tamu.edu/bitstream/han...ueller.pdf
LOL, they are racing slicks - hardly a touring car tyre. No wonder thy look so "grippy."