![]() |
Wrong calculation of rolling resistance - Printable Version +- Forums (https://www.vdrift.net/Forum) +-- Forum: Community (https://www.vdrift.net/Forum/forumdisplay.php?fid=3) +--- Forum: Bugs (https://www.vdrift.net/Forum/forumdisplay.php?fid=7) +--- Thread: Wrong calculation of rolling resistance (/showthread.php?tid=1537) |
Wrong calculation of rolling resistance - LBodnar - 07-28-2011 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 Code: f = fo + KV^2 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 - NaN - 07-28-2011 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. - LBodnar - 07-28-2011 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. 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-6yQbg9IC&printsec=frontcover#v=onepage&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? :? - NaN - 07-29-2011 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. - NaN - 07-29-2011 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 - LBodnar - 07-29-2011 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: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 - NaN - 07-29-2011 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 termNice 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! - LBodnar - 07-29-2011 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. ![]() - NaN - 07-29-2011 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? - LBodnar - 07-29-2011 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... ![]() - NaN - 07-29-2011 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 - LBodnar - 07-29-2011 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.) - NaN - 07-29-2011 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? - NaN - 07-29-2011 Wait, there is a factor missing in vdrift: B = BCD / (C * D/Fz) //error? - LBodnar - 07-29-2011 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/handle/1969.1/2600/etd-tamu-2005B-MEEN-Mueller.pdf LOL, they are racing slicks - hardly a touring car tyre. No wonder thy look so "grippy." |