Primary Question: How can you determine the spring constant $k$ of an elastic material?

I was recently tasked with finding the spring constant for a series of elastomeric materials, the first of which was a silicone rubber.

My Approach

In an attempt to determine the spring constant with limited resources I used a known mass which I attached to my spring using some clamps that I $3D$ printed. I made a simple backdrop with some paper and a ruler and recorded myself dropping the weight using a camera.

Using a simple motion capture program (Tracker) I was able to very precisely plot the motion of the mass as it oscillated.

I then plotted that data and applied a non-linear curve fitting method to the discrete dataset so that I could then characterize the motion and calculate the spring constant.

Knowing the data was that of an underdamped harmonic oscillator I applied the following equation from the source listed below.

[credit] http://web.mit.edu/8.01t/www/materials/modules/chapter23.pdf

$$ x(t) = x_{m}e^{−αt} cos(γ t +φ) \quad\quad\quad (1) $$ Where, $x_{m}$ is a constant related to the amplitude of the underdamped oscillation, $α$ is a parameter related to the rate of decay, $φ$ is the phase constant, $b$ is the constant of proportionality, $m$ is the mass, and $γ$ is the angular frequency of oscillation of the underdamped oscillator.

Note: $$ x_{m} = \sqrt{C^2+D^2} \quad\quad\quad (1a) $$ $$ φ = arctan(-\frac{D}{C}) \quad\quad\quad (1b) $$ $$ \frac{d^2x}{dt^2}+\frac{b}{m}\frac{dx}{dt}+\frac{k}{m}x = 0 \quad\quad\quad (1c) $$ C and D are arbitrary constants that result from the solution to the differential equation (1c)

$$ γ = \sqrt{(\frac{k}{m} − (\frac{b}{2m})^{2})} \quad\quad\quad (2) $$ $$ α = \frac{b}{2m} \quad\quad\quad (3) $$

If we substitute (3) into (2) and square both sides we get the following, $$ γ^{2} = \pm((\frac{k}{m} − \alpha^{2}) \quad\quad\quad (4) $$ After a little algebraic manipulation we arrive at $$ k = m(\alpha^{2}+\gamma^{2}) \quad\quad\quad (5a) $$ $$ k = m(\alpha^{2}-\gamma^{2}) \quad\quad\quad (5b) $$

knowing that all of the terms that make up the equation for $\gamma$; k, m, and b are all positive constants we can use (5a) and disregard (5b).

$$ k = m(\alpha^{2} +\gamma^{2}) \quad\quad\quad (6) $$

After applying the non-linear best fit approximation I had all of the constants that I needed to solve for k.

Because $k$ is calculated in terms of mass $m$ I assumed that regardless of the mass used in the test the value of $k$ would remain the same and therefore testing the same material using different masses would serve as a confirmation of the spring constant calculated. This, however, was not the case.

The larger the mass used the lower the value $k$ was calculated to be.

Secondary Question: Are any of the assumptions used here incorrect?

  1. If a dataset clearly indicates it has an underdamped harmonic motion is there any reason not to use the equations stated above to characterize such data?
  2. Is it acceptable to make the assumption that $\gamma$ will never be negative?
  3. Is it wrong to assume that the value of $k$ would be constant for an elastomer?

Initial Spring Force Characterization Plot

  • $\begingroup$ It is quite possible that your material is nonlinear, starting with a heavier mass you would find yourself on a different part of the elasticity curve. You could look at the equilibrium position of the mass (extension of the spring) as a function of applied weight, and see if that gives you a straight line. That may be less accurate but it would quickly reveal nonlinearity. Otherwise it might be helpful to see more of the data. How many oscillations did you observe (how lightly damped was the system), how large was the extension; did you randomize the order of weights to eliminate creep, etc.. $\endgroup$
    – Floris
    Commented Oct 30, 2017 at 22:12
  • $\begingroup$ Floris, to quickly answer your later questions; generally I allowed the mass to oscillate 7-10 times before I stopped the video. In most of the cases the mass could have continued for some time, however I considered the 7-10 periods sufficient to understand the nature of the motion. Thus qualitatively I would characterize this a light damping but that would be a subjective statement. The extension was designed to cover a minimum of 200% stretch and sometimes as much as 300%. I did not randomize the order of weights to eliminate the effects of creep and I will definitely try that out. $\endgroup$
    – MathUsiast
    Commented Oct 30, 2017 at 22:27
  • $\begingroup$ The other thing that you must realise is that rubber exhibits hysteresis which means that its loading characteristic is not the sane as its unloading characteristic and it is one of the reasons that car tyres get hot. This means that the loading and unloading curves are not only not linear but have different curvatures. en.wikipedia.org/wiki/Hysteresis $\endgroup$
    – Farcher
    Commented Oct 30, 2017 at 22:29
  • $\begingroup$ 100-200% extension and greater will definitely take you to a nonlinear regime. Usually you want very small (at most a few %) displacements for an accurate determination. I think that static loading will provide some useful insights. $\endgroup$
    – Floris
    Commented Oct 30, 2017 at 22:33
  • 1
    $\begingroup$ @Floris I have added one of the plots for one of the tests that I performed. I don't know if this is exactly what you are looking for but maybe it helps. If you think that raw data would be better I can also provide that information. $\endgroup$
    – MathUsiast
    Commented Oct 31, 2017 at 2:58

1 Answer 1


in general, elastomers do not have linear stress-strain curves; in your case this means that if you change the mass, you preload the elastomer into a region where its "spring constant" has also changed. If possible, try to get a stress-strain curve for your elastomer sample and put that in your model as a displacement-dependent k value.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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