This simulation shows two objects connected by springs and suspended from an anchor point. The objects are able to move in 2 dimensions and gravity operates. The anchor point is moveable.

You can drag either mass with your mouse. You can also drag the top anchor point. Click the "reset" button to put the masses in a resting equilibrium. Enable "show controls" to change parameters such as gravity, mass, spring stiffness, and friction (damping).

(If you don't see the simulation try instructions for enabling Java.)

double spring variables

Define the following variables:

Here are the equations of motion. The derivation is similar to that given for the single 2D spring.
*θ*= angle (0=vertical)- S = spring stretch (displacement from rest length)
- L = length of spring
- u = position of bob
- v = u'= velocity of bob
- a = u''= acceleration of bob
- F = net force on a bob

- R = rest length of spring
- T = position of anchor point
- m = mass of bob
- k = spring constant
- b = damping constant
- g = gravitational constant

*F*_{1x} = *m*_{1} *a*_{1x} = −*k*_{1} *S*_{1} sin *θ*_{1} − *b*_{1} *v*_{1x} + *k*_{2} *S*_{2} sin *θ*_{2}

*F*_{1y} = *m*_{1} *a*_{1y} = −*k*_{1} *S*_{1} cos *θ*_{1} − *b*_{1} *v*_{1y} + *k*_{2} *S*_{2} cos *θ*_{2} + *m*_{1} g

*F*_{2x} = *m*_{2} *a*_{2x} = −*k*_{2} *S*_{2} sin *θ*_{2} − *b*_{2} *v*_{2x}

*F*_{2y} = *m*_{2} *a*_{2y} = −*k*_{2} *S*_{2} cos *θ*_{2} − *b*_{2} *v*_{2y} + *m*_{2} g

*L*_{1} = √((*u*_{1x} − *T _{x}*)

cos

sin

cos

sin

*u*_{1x}' = *v*_{1x}

*u*_{1y}' = *v*_{1y}

*u*_{2x}' = *v*_{2x}

*u*_{2y}' = *v*_{2y}

*v*_{1x}' = −(*k*_{1}/*m*_{1}) *S*_{1} sin *θ*_{1} − (*b*_{1}/*m*_{1}) *v*_{1x} + (*k*_{2}/*m*_{1}) *S*_{2} sin *θ*_{2}

*v*_{1y}' = −(*k*_{1}/*m*_{1}) *S*_{1} cos *θ*_{1} − (*b*_{1}/*m*_{1}) *v*_{1y} + (*k*_{2}/*m*_{1}) *S*_{2} cos *θ*_{2} + g

*v*_{2x}' = −(*k*_{2}/*m*_{2}) *S*_{2} sin *θ*_{2} − (*b*_{2}/*m*_{2}) *v*_{2x}

*v*_{2y}' = −(*k*_{2}/*m*_{2}) *S*_{2} cos *θ*_{2} − (*b*_{2}/*m*_{2}) *v*_{2y} + g

This web page was first published April 2001.