Race Sim Central
Rec.Autos.Simulators Archive

Car physics: anti-pitch problem

8 posts by 4 people · 27 Sep 2002 09:12 UTC - 30 Sep 2002 04:55 UTC

Ruud van Gaal 27 Sep 2002 09:12 UTC#96406
Hi there, I'm having trouble still with getting suspension anti-pitch fully correct. After lots of small drawings etc. I do believe I understand what's going on, but the end result (weight transfer not being different when anti-pitch is used) just doesn't match. I'll post a calculation that was taken in the following test: - a car weighing 7160N - 50/50 weight balance - 50% brake bias (just for debugging) - the car is driving forward at about 20 km/h - brakes are full on (locked wheels on all sides) - wheelbase: 2.4m - anti_pitch=100% for all suspensions (all 4 sides) Time was stopped; telemetry indicating: - acceleration = -0.896 g (braking) - CG height = 0.388 (average of all 4 wheels) - Theoretical wgt transfer: 1036N front, -1036N rear - Actual wgt transfer: 437N front, -586N rear Indicating problems also are: - Actual weight of the car: 7000N (summed load) - Actual weight transfer: 57% front; theoretical = 64% front. Theoretic weight transfer is calculated using W=a_x/g*h/L, where g=9.81, h=CG height, L=wheelbase. Note the actual weight of the car (the summed loads on all tires) changes throughout t he entire manouevre. Doesn't sound right, does it? Perhaps someone can spot the fault in the following program flow then: - Fx on the front tires (braking longitudinal) = -1834N - Fx on the rear tires = -1365N - Since anti_pitch=100%, no pitching torques arise from the springs (this is confirmed in the code; the springs all balance out to near-0 torque) - All weight transfer is therefore led directly through the suspension links - With anti_pitch being 100%, the relationship between Fz and Fx is Fz/Fx=h/L. (Gillespie, pg. 251) This results in: Fz=Fx*h/L = Fx*0.1617 = 1834*0.1617 = 296N for each front tire, and Fz=220N for each rear tire. - That gives the total wgt transfer as shown above: 2x296= -592N rear, 2x220= 440N front. - That isn't the theoretical 1036N. What's missing? Something which my eye spotted (thanks, eye): in Gillespie, pg. 252, he continues with eq. 7-16 being: e/d=2*h/L. I can't quite follow that; how would I then relate the jacking forces for just 1 suspension? Use e and d instead of h and L? (the instant center's longitudinal and vertical distances from the contact patch center) The extra 2 in the above might have something to do with it; after all, take the current weight transfer; 592+440 = 1032N, which is very close to that 1036N theoretical number. Also, a thing I don't get is that since the braking forces on the front (1834N) is dif ferent from the rear (1365N); this is ok in itself, but it leads to different jacking forces (296 vs. 220N) as well; how could this be, if the weight ADDED on the front should equal the weight SUBTRACTED/LIFTED at the rear? (given that all weight transfer goes through the links directly) Thanks very much for any comments on my lacking knowledge, Ruud van Gaal Free car sim: http://www.racer.nl/ Pencil art : http://www.marketgraph.nl/gallery/
"Ruud van Gaal" <[email hidden]> wrote in message news:[email hidden]... > - Actual wgt transfer: 437N front, -586N rear You shouldn't have two different numbers here Ruud - if the braking is steady state and you're on a flat track then the weight removed from the rears must equal the weight added to the fronts.
Ruud van Gaal <[email hidden]> wrote in message news:[email hidden]...
Quoted text (9 lines)> Something which my eye spotted (thanks, eye): in Gillespie, pg. 252, > he continues with eq. 7-16 being: e/d=2*h/L. I can't quite follow > that; how would I then relate the jacking forces for just 1 > suspension? Use e and d instead of h and L? (the instant center's > longitudinal and vertical distances from the contact patch center) > > The extra 2 in the above might have something to do with it; after > all, take the current weight transfer; 592+440 = 1032N, which is very > close to that 1036N theoretical number.
Without having access to a copy of Gillespie, but taking an intuitive/pictorial approach: the line of action of the suspension should pass through the CG, shouldn't it? Which, for a 50/50 weight split, is located at 'h' up and '0.5L' back, giving h/(0.5L) or 2h/L... Jonny
"Ruud van Gaal" <[email hidden]> wrote in message news:[email hidden]...
Quoted text (7 lines)> - With anti_pitch being 100%, the relationship between Fz and Fx is > Fz/Fx=h/L. (Gillespie, pg. 251) > This results in: Fz=Fx*h/L = Fx*0.1617 = 1834*0.1617 = 296N for > each front tire, and Fz=220N for each rear tire. > - That gives the total wgt transfer as shown above: 2x296= -592N rear, > 2x220= 440N front. > - That isn't the theoretical 1036N. What's missing?
The balance of torques about the CG should read: SumForAllTyres(Fx.h) = SumForAllTyres(Fz.L) You can't do what you've done, which is: TyreFrontRight(Fx.h) = TyreFrontRight(Fz.L) TyreFrontLeft(Fx.h) = TyreFrontRight(Fz.L) TyreRearRight(Fx.h) = TyreFrontRight(Fz.L) TyreRearLeft(Fx.h) = TyreFrontRight(Fz.L) This is what's causing you to have different weight transfer values at front and rear. It's incorrect to assume that L is the wheelbase when you're calculating per tyre, what we need is distance from contact patch to CG, which in this case (50/50 weight distribution) happens to be L/2. This is why you're getting roughly half the weight transfer that you should be getting. You've also got a minor error creeping in because a car with mass (7160 N/g) braking at 0.896g has a total Fx of 6415.3 N, whereas your Fx values (1834 front, 1365 rear) sum up to only 6398 N. This is why you're getting "roughly" half, instead of exactly half. :0)
On Fri, 27 Sep 2002 13:47:52 +0100, "Jim Seamus" <[email hidden]> wrote: > >"Ruud van Gaal" <[email hidden]> wrote in message >news:[email hidden]... > >> - With anti_pitch being 100%, the relationship between Fz and Fx is >> Fz/Fx=h/L. (Gillespie, pg. 251) Ok thanks Jim & Jonny. I'm using 2*h/L now, and this gives more weight transfer. I still get different weight transfer at front and rear. Read on.
Quoted text (8 lines)>The balance of torques about the CG should read: > SumForAllTyres(Fx.h) = SumForAllTyres(Fz.L) > >You can't do what you've done, which is: > TyreFrontRight(Fx.h) = TyreFrontRight(Fz.L) > TyreFrontLeft(Fx.h) = TyreFrontRight(Fz.L) > TyreRearRight(Fx.h) = TyreFrontRight(Fz.L) > TyreRearLeft(Fx.h) = TyreFrontRight(Fz.L)
You mean: TyreRearRight(Fx.h) = TyreRearRight(Fz.L) TyreRearLeft(Fx.h) = TyreRearRight(Fz.L) do you? >This is what's causing you to have different weight transfer values at front >and rear. Sorry, but I don't yet understand what you mean with the above 4 formulae. I calculate jacking forces per wheel; that should be possible, right? Let me take an extreme example: a car like in the original example (50% weight balance etc), anti_pitch=100% on all suspensions. Now, suppose only the front brakes full (front wheels lock); the rear doesn't apply any braking (100% front brake bias). Fz,front=-1800N, jacking forces are say 1034N. How does the weight get transferred to the rear? Is it just because the vertical jacking force (1034N) pushes the car up by 1034N and the rear then sees a car that's 1034N lighter? Currently, the Fz forces are close, weight transfer is close, but I still have the odd Fz,front=958N (or something) and Fz,rear=-1100N. Something fundamental is still wrong, but I feel I'm closing in. ;-) >You've also got a minor error creeping in because a car with mass (7160 N/g) >braking at 0.896g has a total Fx of 6415.3 N, whereas your Fx values (1834 >front, 1365 rear) sum up to only 6398 N. This is why you're getting >"roughly" half, instead of exactly half. Maybe yes. :) There's still a lot going on, so small errors in roll can also do a bit of harm. I had about 3Nm of pitch torque nevertheless in that example. But some rummaging variables cannot be ruled out anymore; it's gotten too complex. :) Ruud van Gaal Free car sim: http://www.racer.nl/ Pencil art : http://www.marketgraph.nl/gallery/
Ruud van Gaal wrote:
Quoted text (7 lines)> Hi there, > > I'm having trouble still with getting suspension anti-pitch fully > correct. > After lots of small drawings etc. I do believe I understand what's > going on, but the end result (weight transfer not being different when > anti-pitch is used) just doesn't match.
Anti-dive shouldn't affect the steady state weight transfer in braking. A free body diagram of the whole car shows this. (It is analogous to why anti-roll bars don't effect steady state lateral weight transfer amounts.) What it does is reduce the pitch angle at the same g level, again analogous to the workings of anti-roll bars for roll in lateral acceleration. Anti-dive can affect the the weight transfer transient because what it does is transfer more or less of the weight through the non-spring parts of the suspension system. More anti-dive will transfer weight faster because you are transfering more of the weight through various metal structural elements. This is pretty much instantaneous while weight taken up by the springs takes longer to happen because the sprung mass has to have time to physically move relative to the wheels in order to compress the springs. The timing issue here can be important in some cases because more "anti" (-dive or squat) makes the car essentially stiffer, so the effective frequency increases. - Matt
On Sun, 29 Sep 2002 03:20:16 GMT, "Matthew V. Jessick" <[email hidden]> wrote:
Quoted text (14 lines)>Ruud van Gaal wrote: >> Hi there, >> >> I'm having trouble still with getting suspension anti-pitch fully >> correct. >> After lots of small drawings etc. I do believe I understand what's >> going on, but the end result (weight transfer not being different when >> anti-pitch is used) just doesn't match. > > >Anti-dive shouldn't affect the steady state weight transfer >in braking. A free body diagram of the whole car shows this. >(It is analogous to why anti-roll bars don't effect steady state >lateral weight transfer amounts.)
Ok, thanks guys. I've think I've got it solved. What was wrong in my head is that if the forces point to the CG, that no pitch torque would be generated. I built a small 'carthing' without suspension with Lego (I have a 4WD big car which I'm building, very nice) to actually feel what's happening. Turns out that there is still pitching torque when I brake the front wheels (I thought the links redirected the force and no pitching was left; goes to show I need a good book on basic forces & moments! ;-) ). I reduced that torque with anti-pitch (incorrectly), so I was left with 0Nm pitch torque at anti-pitch=100%. Now, I leave pitch torque as it is, and add jacking torque instead, which counteracts the pitch torque. It all seems ok now (since I'm running at 500Hz, there's the 'suspension spring must stabilize a bit' so the weight transfer stability doesn't set in immediately (and my springs were underdamped). Seems to work now! :) The thing that helped me was to picture/build a box (car-like) without any suspension. Ofcourse you still get weight transfer there; pitch and jacking-pitch torques both get into play, while I just reduced pitch torque (instead of ADDING jacking-pitch torque). Phew. :) Ruud van Gaal Free car sim: http://www.racer.nl/ Pencil art : http://www.marketgraph.nl/gallery/
Quoted text (10 lines)> >You can't do what you've done, which is: > > TyreFrontRight(Fx.h) = TyreFrontRight(Fz.L) > > TyreFrontLeft(Fx.h) = TyreFrontRight(Fz.L) > > TyreRearRight(Fx.h) = TyreFrontRight(Fz.L) > > TyreRearLeft(Fx.h) = TyreFrontRight(Fz.L) > > You mean: > TyreRearRight(Fx.h) = TyreRearRight(Fz.L) > TyreRearLeft(Fx.h) = TyreRearRight(Fz.L) > do you?
Oops I forgot to correct the copy/paste, what I meant was....... "You *can't* do what you've done, which is: TyreFrontRight(Fx.h) = TyreFrontRight(Fz.L) TyreFrontLeft(Fx.h) = TyreFrontLeft(Fz.L) TyreRearRight(Fx.h) = TyreRearRight(Fz.L) TyreRearLeft(Fx.h) = TyreRearLeft(Fz.L)" i.e. don't take the wheels individually, instead, it's the sum of the torques that needs to balance out. Then even a 100% front brake bias will be able to alter the vertical road reaction force at both front and rear of the car. The 2*h/L thing is good only as long as the car uses 50% front weight.... what you need is "TyreFrontRight(Fz.[susp.z-cg.z])" - i.e. the distance from the CG to the contact patch as measured in the car's Z (longitudinal) direction. Cheers Jim

Sponsors

Affiliate Links

Sim Gaming Expo MOZA Racing Sim-Lab Fanatec TrakRacer Asetek Internet Privacy From NordVPN Dreamhost Capital One Credit Card Application Fanatical CDKeys Amazon Amazon UK Project Motor Racing iRacing Get your racing gloves, boots and more from Demon Tweeks. Enlist at Roberts Space Industries, developers of Star Citizen and Squadron 42


Back from the ashes since July, 2019. First created in 2001 with the merger of Legends Central (founded 1999) and simracing.dk.

A site by a sort of sim racer, for sim racers, about racing sims. News and information on both modern and historic sim racing software titles.

All products and licenses property of their respective owners.


Facebook Threads Bluesky Twitter Mastodon Instagram YouTube Tiktok Twitch Reddit Google News Apple News Subscribe via WordPress Flipboard eBay

Race Sim Central © 1999-2026 | Some links pay RSC a commission. Advertising does not equal endorsement.Cookie Policy