Custom Wheel Collider Suspension

I am trying to make a Custom WheelCollider but i have a few problems.

float SuspensionForce = SuspensionSpring * (m_suspensionCompression + m_suspensionCompressionPrev) / 2 + SuspensionDamper * (m_suspensionCompression - m_suspensionCompressionPrev) / Time.fixedDeltaTime;

  1. Damper cause vibration, High damping = High Vibration
  2. System never getting stable
  3. Is there a way to limit max compression?
  4. Is there a way to sleep rigidbody when its stable? As i know, applying force will wake it up.

Help! What should i do for a realistic Wheel?

m_suspensionCompression unit: meters

SpringForce = SpringCoefficient * compressiondistance;

DampingForce = DampingCoefficient * compressionspeed;

Currently compression calculating form raycast hitpoint.

The DampingForce is supposed to act against the Suspension force. Have you checked that they don’t have the same sign and add up? Is your SuspensionDamper negative?

Also if that Damping doesn’t work out, you could simulate one step further, meaning calculating a speed from the force and then simply implement the damping by doing something like this:

damp=0.99;
speed = damp*speed;

Also, have you checked the new new Sample Assets? It includes a car and maybe they implemented some kind of suspension as well: