avoiding vibration of car

Started by
18 comments, last by szinkopa 19 years, 9 months ago
So far I haven't able to find a solution to avoid vibration of my car. The tyre's lateral force is opposite to the lateral velocity of the tyre. So the lateral velocity is oscillating. Increasing the timestep the situation gets even worse. I know that I should damp it somehow, but I cannot distinguish the oscillation from the normal movement. Have somebody an idea, how to avoid this effect?
Advertisement
I assume the force you mension is a friction force. If so then I think you may be making a mistake when calculating the magnitude of the friction force. This is because the friction force should be proportional to the velocity and should never be able to reduce it by more than 100%. As a result the velocity should never oscillate due to friction alone. Please could you list all the forces you are applying to the tyre and I might be able to be of more help.
[size="1"] [size="4"]:: SHMUP-DEV ::
Idd, you must check when applying friction that the friction force does not cause the wheel to actually start moving in the opposite direction.
Well, ignoring one dimension, the vertical axis, and assuming I don't accelerate or brake, but I can steer, the forces, torques that acts:

On the body (and thus the wheels):
- total lateral force of the tyres
- total longitudinal force of the tyres
- air resistance (no effect on this phenomenon)
On each wheel:
- longitudinal force as reaction torque
- rolling resistance torque (no effect too)

And these forces on the body create torque of course, which beside the forces moves, rotates the car. so it oscillates linearly and rotationally too, I think.

There is also a longitudinal vibration when the car is resting, but I have idea for that.
I only worry about lateral, and thus rotational vibration.

Theoritically friction cannot reduce the velocity more than 100 %, but with stiffer tyres, larger timesteps it may occur (the velocity simply changes too much within a timestep, and change sign).
I am able to detect that the sign if the lateral velocity of a tyre changes. This can be caused by oscillating, but also by normal motion. I cannot find out which is just the case.
Ohhh, I should filter out the high frequencies, with an FIR, or IIR filter. With fixed timestep it works easily. The body cannot do so much angular rotation change. Exception is the collision.

But I am waiting forward to your opinion, suggestion.
First ignore what I said about friction being proportional to velocity, I was thinking air friction. Secondly, them forces seem sensible so I'm geussing the problem is maybe a misunderstanding in the application of friction. Are you distinguishing between static and kinetic friction? Also do you always apply the friction to directly oppose the motion of the tyre or are you applying it in the lateral and longitudinal directions?
[size="1"] [size="4"]:: SHMUP-DEV ::
The tyre model calculates the lateral and the longitudinal forces. Lateral is perpendicular to the wheel, the other is parallel. The lateral force is always opposite the lateral motion.
The input of it are the velocity vector of the wheel, the angular velocity of it, the normal force of it, and the heading (forward) vector of it. From these I can find out the slip angle too.
You are right that with tyres there is static and kinetic friction. Kintic friction is for the sliding part of the contact patch, static for the non-sliding one. I calculate them in the tyre model. But in case of static friction, the force should be also applied, because in this case the deformation of the tyre is what transmits the force. Believe me.
I think, the force I get from the model should be applied, because it works OK, when I go with 60 km/h or any. At extremely low speed have I problems. Should I use a different, simpler tyre model with such small speeds?
I think this oscillation also is present when going faster, but it gets negligable in this case. As the speed decreases, it has more and more effect on the slip angle. When the car is resting, the slip angle is very-very oscillating. With a small timestep (1 ms) it's not visible, but with 0.01 s ...

As for other frictional forces, I have solved it well.
Don't you already know what the timestep is when you calculate the friction force? If so, you can find out if the magnitude of your friction force will cause the wheel to slide in the opposite direction (before you actually come to apply it).

You should also be able to calculate the force necessary to stop the wheel movement completely within 1 time step, so you can just set the friction force equal to this magnitude.

In any case you will want to deal with it while you are calculating the magnitude of the friction force, rather than after you have resolved all your forces. Because as you said yourself, you won't be able to tell the difference anymore between friction force and input from player for example.
Quote:Original post by SpaceDude
Don't you already know what the timestep is when you calculate the friction force? If so, you can find out if the magnitude of your friction force will cause the wheel to slide in the opposite direction (before you actually come to apply it).

You should also be able to calculate the force necessary to stop the wheel movement completely within 1 time step, so you can just set the friction force equal to this magnitude.


I am afraid, it is very complex. The car can be on slope, or on any surface with any friction coefficient.

Quote:
In any case you will want to deal with it while you are calculating the magnitude of the friction force, rather than after you have resolved all your forces. Because as you said yourself, you won't be able to tell the difference anymore between friction force and input from player for example.


No, I cannot tell if a force is due to player input or this nasty oscillating. This because player input creates torque on wheels (gas, brake, handbrake), or creates lateral force implicitely (steering). So I (and I think everybody) am unable to tell the reason of a lateral force. "Normal" lateral force can generated without user input too: imagine a slope where the car is rolling on it, perpendicular to the slope direction. In this case the car will slowly slip down the slope (even if there is adhension/tracktion), slowly because of the lateral force.

Thanks for the suggestion anyway.



I personally would apply the calculated forces, and after that from the velocity's sign change I would detect this oscillation somehow (?). Like with air resistance, or Columb friction.
The main difference is that I have 4 tyres not 1, and their motion are not independent.
This is not a simple simulator. It is based on real forces and torques. Please try it, then you will see the situation better. The URL is in my profile.
It's tire, not tyre. o.O
Ok first off friction always acts to directly oppose the motion, hence although you calculate the friction in the seperate directions to account for different friction coefficients, the resulting forces should be applied opposite to the tyres velocity direction. Secondly if the motion force is small enough that it lies below the maximum static friction then the static friction force should be scaled to cancel out the motion force. Hence static friction should never result in a reversal of direction. Last but not least, when kinetic friction comes into play it means that there is already a large motion force. For the kinetic friction force to reverse the velocity it will have to be extremely large which suggests you are miscalculating the grounds normal force or that you have an unrealistic friction coefficient (I suggest about 0.8). You might want to check your units just to make sure you're not inputting values which are magnitudes of order out. Let me know if any of this helps.
On second thoughts concerning the direction of application of the friction force, you might be right in applying it in the two seperate directions. Try both and see which one looks best.

[Edited by - Motorherp on July 1, 2004 3:10:39 AM]
[size="1"] [size="4"]:: SHMUP-DEV ::

This topic is closed to new replies.

Advertisement