I am trying to graphically simulate a series of springs in 2D. Now one of the forces I am stuck with calculating is the damping force. The given formula is $F = -k_d v$. I know that $v$ is the velocity of the vectors, but I can't seem to find how to calculate $k_d$.

  • 2
    $\begingroup$ $k_d$ is a property of the spring you need to know! $\endgroup$ – ACuriousMind Feb 20 '15 at 16:00
  • $\begingroup$ The only properties I get from the spring are the length of the spring in rest, the spring constant and the mass attached to the spring. $\endgroup$ – Yoshi Peters Feb 20 '15 at 16:06
  • $\begingroup$ What's your objective here? Are you trying to simulate something to replicate an experiment? Or model a spring you purchased/might purchase? Or something else? It's very simple to calculate the damping coefficient of a spring from it's vibration data, but I'm not sure if that answers your question or not because I'm not clear on what your question is exactly. $\endgroup$ – tpg2114 Feb 20 '15 at 17:02
  • $\begingroup$ @tpg2114 The objective is to simulate a series of springs in 2D. Something like this gyazo.com/a7db9339ccaa5f810c2c0300a6afe6af $\endgroup$ – Yoshi Peters Feb 23 '15 at 12:38
  • $\begingroup$ @YoshiPeters But I guess what I mean is -- why do you need to know $k_d$? Are you trying to match something physical and need to extract it from real data? Or are you just trying to make it look right? Or do you need it for numerical stability? $\endgroup$ – tpg2114 Feb 23 '15 at 12:40

For a viscous damper, the decay in the free oscillation amplitude is exponential (it is geometric for hysteric damping and linear for Coulomb damping). So if you have the time history of the amplitude of your decay and you know it is a viscous damper (which is the equation you gave) then you can measure the amplitude $A$ at two consecutive peaks and calculate:

$$\gamma = \ln \left(\frac{A_{t_n}}{A_{t_{n+1}}}\right) $$

you can then find the damping coefficient to give this decay as:

$$\zeta = \frac{\gamma}{\sqrt{4 \pi^2 + \gamma^2}}$$

where then of course $\zeta = k_d/(2\sqrt{k m})$.

So given a spring with unknown damping coefficient but known stiffness, you can attach a known mass to it and measure it's response to a disturbance and determine from that the damping coefficient.

Since you are just going for aesthetics, you pick your damping constants arbitrarily. I would actually recommend that you play with it and see how it influences the solution, it's actually pretty cool to visualize. All you do is pick values for $\zeta \in [0.0, 2.0]$ where the upper bound is really limitless but not much will change when it is greater than $2.0$. Then you can compute your $k_d$ based on $k$ and $m$. Depending on your time integration, you may find that $\zeta = 0$ will be unstable. You might need something nominal to stabilize the scheme. When $\zeta = 1$, it is called critically damped and you should not see much oscillation at all (it will be driven to steady state without oscillation). I say you won't see much because as a system of springs and with numerical integration, it won't be exactly critically damped.


"Damping" in a system or model is the physical means by which energy can be dissipated. The model you cite, $F=-k_dv$, models by an approximation 'viscous' damping which is often used to model energy losses of surfaces sliding against one another - friction. In viscous damping the force opposes the direction of and is linearly proportional to the velocity.

But if you research further, more deeply, you'll soon learn there are all kinds of models that scientists and engineers have proposed to closer approximate energy loss in a system.

One example is the LuGre friction model. Another model that I personally know aided in better predicting the behavior and life cycle of reaction wheels in spacecraft is the Dahl friction model.

But getting back to your original question - how to determine $k_d$. I don't believe there is any analytical way to derive it. The elastic stress and strain in a spring create heat which is energy loss, but that is just too complex to begin trying to model. You either have to (1) guess and adjust it so that your damped oscillations in simulation match the data or (2) Use the data and the model together to fit the model parameters using for example least squares or (3) get it from the spring supplier as ACuriousMind suggested But you'll find that most spring manufacturers do not supply such a parameter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.