# [ODE] SPRING

LR logreg at free.fr
Mon Mar 20 02:49:43 MST 2006

```thank you Simon.
In fact, when the spring constant is so low, the joint 'crashes'. it was my problem : i used K = 5 or 10 for a body of 5Kg Mass. Using a higher K and the documentation formula it work fine.

Laurent.

_____

De : ode-bounces at q12.org [mailto:ode-bounces at q12.org] De la part de Simon Šander
Envoyé : lundi 20 mars 2006 07:34
À : ode at q12.org
Objet : Re: [ODE] SPRING

I use this function to calculate ERP and CFM.

public static void Calc(float springConstant, float dampingCofficient, float sprungMass, out float erp, out float cfm)
{
float r = 2.0f * dampingCofficient * (float)Math.Sqrt(sprungMass * springConstant);
float hk = Scene.OdeTimeStep * springConstant;

erp = hk / (hk + r);
cfm = 1.0f / (hk + r);
}

Simon

_____

From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of hamstah
Sent: Friday, March 17, 2006 2:17 PM
To: LR
Cc: ode at q12.org
Subject: Re: [ODE] SPRING

LR wrote:

Hi,

I'm trying to use suspension in a hinge2 from spring constants that configure ERP and CFM. I'm using the documentation formula:

ERP = h kp / (h kp + kd)
CFM = 1 / (h kp + kd)

and my bodys jump .....

if i modify with :

ERP = h kp / (h  (  kp + kd  )  )

it feel really better. Is it a documentation error ? or does i have another problem ?

if i do the same modification with CFM =  1 / (h ( kp + kd ) ) my bodys jumps again ...

Laurent

Hi, If i look at your formula:

ERP = h kp / (h  (  kp + kd  )  )
I can say that its equal to ERP = kp / (  kp + kd  )

and this equation doesnt take 'h' as parameter...
So I think your equation isnt correct.
Now I dont have the time to look on it, but perhaps somebody can help you with it...
see you

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://q12.org/pipermail/ode/attachments/20060320/5e54d34d/attachment-0001.htm
```

More information about the ODE mailing list