Advertisement

Car turn

Started by July 24, 2003 06:34 PM
7 comments, last by Niklas2k2 21 years, 6 months ago
Hello everybody. Im am working on a car game and I wonder what happens with the forces in the car when a car turns. If the car has a force on the wheels of 10 N and the car is traveling forward but suddenly makes a turn. The driver is still giving the same amount of gas to the engine. Is the force still 10 N in the direction of the wheels or is force lost and if so how much? The conditions are perfect. /Niklas
"conditions are perfect" is somewhat ambiguous. How have you modelled the car''s motion? Are the wheels independently rotating rigid bodies coupled to the frame of the car by critically damped springs (shocks), and how much had their axis of rotation changed since before the steering wheel was turned? What are the friction characteristics of the road and tires? Is 10 N force on the wheels (which is tiny for a car) balanced by some velocity-dependent air resistance force prior to the turn? Is the road perfectly flat? What are the moments of inertia of the car around its principal axes (to determine if the car will flip over and how fast it will turn)? What is the total mass of the car? Is the car two wheel or four wheel steering and two or all wheel drive?

A reasonable simplification would be to model the motion like so:

The engine provides a variable force in the direction the wheels are pointing. The car never skids or rolls and never loses traction. There is an air friction force proportional to the velocity squared, in the direction opposite to the car''s current motion. Each time step, determine the current net force on the car by adding up the aformentioned forces. Use this net force to determine the accelration of the car. Use that acceleration to determine how the velocity and position have changed. This is most easily doen using Backwards Euler integration (newVel = oldVel + acc*timestep, nowPos = oldPos + newVel*timestep, both for each dimention (x and y, and maybe z).
Advertisement
it''s all to do with frictions. The maximum amount of force a tyre can transmit is

Fxz = grip * Fy

Fy is the downforce on the tire (the force transmitted by the suspension system down onto the tire), Fxy is the maximum amount of force transmitted by the tire on the surface of the road. Grip is the grip coefficient of the tyre. Usually between 0.6->1.8. You can modulate that by how wet the road is, ect...

all the excess in force is converted into heat and sound (tyres screeching).

to simplify, this is what I''d try to do.

The tire tries to pull away from the car, in the direction it''s pointing. the engine transmits a force along that axis to the tyre. Also, there is a sideway force acting on the tire at the contact patch, which would be the acceleration of the car times the mass given by the weight transfer (or the static weight transfer, which you can consider to be 1/4 of the mass of the car on each tires).

tires are probably the most difficult to model and predict. Hell, tire manufacturers are EXTREMLY secretive about the physical properties of their tires, and they would rather get both of their arms chopped off than sharing their knowledge.

anyway, you may want to check out those links.

http://members.xoom.virgilio.it/adiaforo/epcjk.htm

http://www.miata.net/sport/Physics/07-Circle.html (and other chapters).

Everything is better with Metal.

cheers guys

although this is not my post, I''ve posted my problems with cornering before and this stuff is really usefull for me

so thankyou
In case you''re interested - a good book on these topics is called "Physics For Game Developers". It''s very good at explaining these things and gives examples of modelling cars, planes, hovercraft etc.



"Absorb what is useful, reject what is useless, and add what is specifically your own." - Lee Jun Fan
"Absorb what is useful, reject what is useless, and add what is specifically your own." - Lee Jun Fan
Thanks for all the replies =)

This formula seems useful:
Fxz = grip * Fy

Does the grip change when the car makes a turn ? or is Fxz always the same ?

And by the way, if 10 N seems tiny, the car also is tiny .
Advertisement
quote:
Original post by Niklas2k2
This formula seems useful:
Fxz = grip * Fy

Does the grip change when the car makes a turn ? or is Fxz always the same ?


Again, this depends on how thoroughly you want to model the physics. You could assume "grip" is always the same (no skidding / powersliding), however the above only gives you the magnitude, not the direction of the force. The direction would change when you turn, as the angle of the wheels relative to the car''s orientation would change while turning.
quote:

And by the way, if 10 N seems tiny, the car also is tiny .


10 N is about the weight of 1 kg on earth. I wouldn''t call that "tiny" really... it''s much bigger than a matchbox car. Maybe a small RC car? That''s more like "small" than "tiny". And yes, I realize how incredibly stupid this paragraph is.
the grip never changes really. what you''re looking for is the slip angle. Or grip angle.

It is the angle between the direction of the tire, and the velocity at the contact patch on the tire.

the bigger the angle (as you turn teh wheel more and more), the bigger the sideway force on the tire.

How much force? It all depends on the velocity at which the car is travelling.



              front wheel         |     .         |   .                                   | rear wheel         | .              L                      |    .....+................................-------+------- alpha . |   .                                   |    .    |     .                                 |  .      |       .                               |                    .                            |                       .                         |                          .                      |                             .                   | R                                .                |                                   .             |                                      .          |                                         .       |                                            .    |                                               . |                                                 +



R is the radius of turn, L is the wheelbase, alpha is the slip angle (simplified).

so tan(alpha) = L / R

also, the centrifugal acceleration acting on the tire would be

Ac = V^2 / R

so Ac = V^2 / (L / tan(alpha))

multiply Ac by the weight on the wheel (1/4 of the total weight of the car), and you have the force acting along the wheel bearing.


so, you have the force acting along the direction of the tire (the force produced by the engine), the force acting perpendicular to the tire (the centrifugal force), and you have the maximum force a tyre can produce (depending on the grip of the tire)

-> the force transmited to the car is

Fcar = [weight * V^2 / (L / tan(alpha))] * WheelAxleDir + Fengine * WheelDir

if (|Fcar| > grip * |weight * gravity|)
{
Fcar = [grip * |weight * gravity|] * Fcar.UnitVector();
}



now, I''m not a big specialist in car physics, but I figured I could get a discussion going on. I''d be very interested in what people think on how to tackle that problem

Everything is better with Metal.

quote:
Original post by oliii
the grip never changes really.


My understanding is that "grip" is essentially the coefficient of friction between the tire and the ground. Thus, the max force the tire can produce on the ground is given by the weight of the car multiplied by this coefficient. That''s a fine approximation, unless you do something that makes the tire spin faster than it should given how fast the car is going, if the tire wasn''t slipping. For instance, if you suddenly floored the gas when the car wasn''t moving, or you suddenly turned the wheels 90 degrees when going fast, the wheels would be attempting to force the car to go in a direction that inertia won''t let it. In this case, the wheels would lose traction with the ground because the torque on the wheels from the drive train is high enough that the wheel starts spinning faster than it can pull the car along. In this case, the tire-pavement contact switchs form being static to dynamic, ie. the wheel is not slipping on the ground, as opposed to before where the contact point of the tire is at rest w.r.t. the ground. In this case, you can no longer determine the maximum fricition force (and thus maximum acceleration the wheels can impart to the body of the car) using the same coefficient of friction.

There are (at least) two different coefficients of friction for a given pair of surfaces. There is the static coefficient, for when the points of contact is not moving, and the dynamic coefficient, for when the contact points are sliding past eachother. The dynamic coefficient is usually lower (so if a block on an inclined plane starts to slip, it usually keeps slipping instead of slowing down and stopping, since the friction force before it started to slip is higher than the max friction force that can be generated while it''s slipping).

so, you have the force acting along the direction of the tire (the force produced by the engine), the force acting perpendicular to the tire (the centrifugal force), and you have the maximum force a tyre can produce (depending on the grip of the tire)

quote:
Original post by oliii
multiply Ac by the weight on the wheel



Those units don''t quite make sense to me...

How about this:

The drive train produces a given torque on the wheels, based on how much gas the engine is getting. The wheel thus wants to increase its angular velocity about the axle. The wheel is in contact with the pavement, however, and has a static friction force that opposes the increase in angular velocity of the wheel.

Torque = Force X Distance
Where X = cross product. however for magnitudes,

T = F*D
where T, F and D are the magnitudes of the above.

If the wheel is spinning clockwise as viewed from the side, then the friction force, at the bottom of the wheel, pushes that point in the wheel to the right. This slows the angular acceleration of the wheel, however it also imparts a linear acceleration to the wheel, which thus wants to accelerate linearly forward (to the right). This acceleration is resisted by the inertia of the car, however, which is coupled to the wheel by the drive train.

If you have the mass of the car, the moment of inertia of the wheel, the torque from the drive train on the wheels, and the appropriate coefficient of friction of the wheel-pavement contact, you can solve all this simultaneously and get the total acceleratin of the car and the acceleration of the wheels.

You can then worry about whether the wheel is trying to accelerate too quickly and the friction force from the pavement is higher than the max allowed by the formula

MaxFriction = Normal*grip

where MaxFriction is the max friction force, Normal is the normal force of the ground on the tire (which is the weight of the car / 4 on flat pavement) and grip is the static friction coefficient.

If the friction that the torque on the wheel and inertia of the car requires to keeps things consistent is higher than MaxFriction, then the grip value no longer applies and you have to switch equations (due to skidding). Now the wheel slides over the pavement and the friction is given by the dynamic friction coefficient (just like the MaxFriction equation, but without any real maximum to a reasonable approximation). This new friction force is then used to determine the acceleration of the whole car.

quote:
Original post by oliii
now, I''m not a big specialist in car physics, but I figured I could get a discussion going on. I''d be very interested in what people think on how to tackle that problem




I originally avoided complicated physics because it sounded like OP doesn''t have enough physics background to understand / apply it.

This topic is closed to new replies.

Advertisement