Dynamic Friction Forces
I''m playing around with a physics engine which simulates objects sliding around on a plane according to the orientation of the plane. I''ve got the first prototype working fairly well and I''m looking to add some realism...
I''ve already added static friction using Fmax = (rho_s) N and I know that dynamic friction is given by F = (rho_k) N. However, in practice, how does this work?
Given that I''ve got a (very) basic integrator which assumes instantaneous acceleration changes and constant velocity over time-slices - how do I calculate the magnitude of F such that when the velocity gets close to 0 I don''t get an oscillation around 0 speed as the friction force actually reverses the direction of the particle in question? The quick and dirty solution is to simply check the velocity at the end of every update - if it''s close enough to 0 then set it to zero, but I''m sure there must be a better way?
I''m kind of new to this, so it''s highly possible that I''ve missed something obvious - can anyone give me a clue?
cheers,
Adam..
> The quick and dirty solution is to simply check the velocity
> at the end of every update - if it''s close enough to 0 then
> set it to zero, but I''m sure there must be a better way?
Not really. It''s east to write down and apply a friction formula for an object that''s moving, butfor one that''s at rest, or going between motion and rest, it''s far more complex.
One problem is that the model for static friction commonly used is non determinate for all but the most trivial examples: it is not possible to work out static friction for most situations, as there are multiple solutions to such problems. This means any solution is necessarily a fudge or a guess, but as long as it gives correct beheviour then it will do.
You could instead work out the force required to zero it''s velocity, and if this is less than the maximum friction then use this, but in practice it will produce the same results and will probably involve more calculations, so what you are doing is probably better - it''s what I do for objects to deal with the same problem.
John
> at the end of every update - if it''s close enough to 0 then
> set it to zero, but I''m sure there must be a better way?
Not really. It''s east to write down and apply a friction formula for an object that''s moving, butfor one that''s at rest, or going between motion and rest, it''s far more complex.
One problem is that the model for static friction commonly used is non determinate for all but the most trivial examples: it is not possible to work out static friction for most situations, as there are multiple solutions to such problems. This means any solution is necessarily a fudge or a guess, but as long as it gives correct beheviour then it will do.
You could instead work out the force required to zero it''s velocity, and if this is less than the maximum friction then use this, but in practice it will produce the same results and will probably involve more calculations, so what you are doing is probably better - it''s what I do for objects to deal with the same problem.
John
John BlackburneProgrammer, The Pitbull Syndicate
Thanks for your comments John.
Out of interest what is the most common model used for static friction forces? I''m using a relatively simple linear relationship where the Force is equal to and opposite to a resolved force causing movement up to a bound set by the coefficient of static friction (rho_s). Is this an oversimplification?
cheers,
Adam...
Out of interest what is the most common model used for static friction forces? I''m using a relatively simple linear relationship where the Force is equal to and opposite to a resolved force causing movement up to a bound set by the coefficient of static friction (rho_s). Is this an oversimplification?
cheers,
Adam...
> Out of interest what is the most common model used for static
> friction forces?
It''s called Coulomb friction, and is probably the one you''re familiar with. Objects in motion have a force applied to them in the opposite direction to their motion and proportional to the normal force. The ratio of the frictional to the normal force is the coefficient of dynamic friction and it depends on a variety of factors, such as the materials the objects are made of.
Objects at rest relative to each other can have a frictional force opposing their tendancy to move. The force is enough to stop them moving up to a limit worked out the same way as the dynamic friction, i.e. the coefficient time the normal force. This coefficient is usually greater than the one for moving objects, and is called the coefficient of static friction.
This is superficially simple but when you come to solve problems with more than one contact point, such as happens when two surfaces are in contact, there are often multiple solutions. E.g. a tripod standing on an slightly inclined slope is supported by static friction at it''s three feet but there''s more than one way to distribute this frictional forces between the feet and satisfy the inequalities of static friction.
> friction forces?
It''s called Coulomb friction, and is probably the one you''re familiar with. Objects in motion have a force applied to them in the opposite direction to their motion and proportional to the normal force. The ratio of the frictional to the normal force is the coefficient of dynamic friction and it depends on a variety of factors, such as the materials the objects are made of.
Objects at rest relative to each other can have a frictional force opposing their tendancy to move. The force is enough to stop them moving up to a limit worked out the same way as the dynamic friction, i.e. the coefficient time the normal force. This coefficient is usually greater than the one for moving objects, and is called the coefficient of static friction.
This is superficially simple but when you come to solve problems with more than one contact point, such as happens when two surfaces are in contact, there are often multiple solutions. E.g. a tripod standing on an slightly inclined slope is supported by static friction at it''s three feet but there''s more than one way to distribute this frictional forces between the feet and satisfy the inequalities of static friction.
John BlackburneProgrammer, The Pitbull Syndicate
> This is superficially simple but when you come to solve
> problems with more than one contact point, such as happens
> when two surfaces are in contact, there are often multiple
> solutions. E.g. a tripod standing on an slightly inclined
> slope is supported by static friction at it''s three feet but
> there''s more than one way to distribute this frictional forces
> between the feet and satisfy the inequalities of static
> friction.
I hadn''t considered the case with more than one contact point... Yuck! You''ve piqued my interest though - I can see how you''d get a possible differential between the weight of the "downhill" foot/feet and those "uphill" - I assume this is where the multiple possible mappings come from. How would you attack this type of problem? My first guess would be to calculate a "loading" factor, based on distance to the foot from the weight vector of the entire system. Am I anywhere close?
cheers,
Adam...
> problems with more than one contact point, such as happens
> when two surfaces are in contact, there are often multiple
> solutions. E.g. a tripod standing on an slightly inclined
> slope is supported by static friction at it''s three feet but
> there''s more than one way to distribute this frictional forces
> between the feet and satisfy the inequalities of static
> friction.
I hadn''t considered the case with more than one contact point... Yuck! You''ve piqued my interest though - I can see how you''d get a possible differential between the weight of the "downhill" foot/feet and those "uphill" - I assume this is where the multiple possible mappings come from. How would you attack this type of problem? My first guess would be to calculate a "loading" factor, based on distance to the foot from the weight vector of the entire system. Am I anywhere close?
cheers,
Adam...
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement