Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Wrong calculation of rolling resistance
07-28-2011, 06:14 PM
Post: #1
Wrong calculation of rolling resistance
I have noticed two problems with GetRollingResistance:

Firstly, calculation in cartyre.cpp does not include normal force Fz.
Rolling resistance is approximated by
Code:
Fr = - f * Fz
where Fz is normal force in Newtons and f is
Code:
f = fo + KV^2
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
Find all posts by this user
Quote this message in a reply
07-28-2011, 06:30 PM
Post: #2
 
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.
Find all posts by this user
Quote this message in a reply
07-28-2011, 06:45 PM
Post: #3
 
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 In order to view links, you must have to reply to this thread. (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? :?
Find all posts by this user
Quote this message in a reply
07-29-2011, 04:45 AM
Post: #4
 
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.
Find all posts by this user
Quote this message in a reply
07-29-2011, 11:59 AM
Post: #5
 
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: In order to view links, you must have to reply to this thread.
Find all posts by this user
Quote this message in a reply
07-29-2011, 12:25 PM
Post: #6
 
Please bear with me. We will go through this mess together! Big Grin
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
Find all posts by this user
Quote this message in a reply
07-29-2011, 12:56 PM
Post: #7
 
Quote: you are not supposed to ever achieve the speed at which V^2
[Image: pri_tire_020.jpg]
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!
Find all posts by this user
Quote this message in a reply
07-29-2011, 01:14 PM
Post: #8
 
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.

[Image: tyre.png]
Find all posts by this user
Quote this message in a reply
07-29-2011, 01:20 PM
Post: #9
 
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?
Find all posts by this user
Quote this message in a reply
07-29-2011, 02:21 PM
Post: #10
 
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...

[Image: Fy.png]
Find all posts by this user
Quote this message in a reply
07-29-2011, 03:13 PM
Post: #11
 
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
Find all posts by this user
Quote this message in a reply
07-29-2011, 03:26 PM
Post: #12
 
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.)
Find all posts by this user
Quote this message in a reply
07-29-2011, 03:51 PM
Post: #13
 
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?
Find all posts by this user
Quote this message in a reply
07-29-2011, 03:58 PM
Post: #14
 
Wait, there is a factor missing in vdrift:
B = BCD / (C * D/Fz) //error?
Find all posts by this user
Quote this message in a reply
07-29-2011, 04:00 PM
Post: #15
 
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? In order to view links, you must have to reply to this thread.

LOL, they are racing slicks - hardly a touring car tyre. No wonder thy look so "grippy."

[Image: FSAE2009-1.JPG]
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)