Report on the Heavy Spring With Double Pendulum On T junction Demonstration

Nasser M. Abbasi, updated Sept 10, 2012

This report is a description of the model used and mathematical derivation of equations of motion of the following dynamic system. It is a spring pendulum which carries as its “bob” another spring pendulum

The top spring represents the pendulum. It is a heavy spring with mass m  and attached to the end of it is massless spring which holds a bob at the end of it with mass M  . Both springs are assumed infinitely rigid against rotation and can only move along their length. If it helps visualize this, we can imagine the lower spring to be wrapped around an infinitely rigid thin massless rod with the bob being a bead that slides along the rod attached to this spring.
The bob has three degrees of freedom: the angle of rotation of the pendulum, the distance of the bob along the lower rod and the current length of the top pendulum. The top spring is assumed to have mass, while the lower spring is massless.
To derive the equations of motion (3 equations of motions are needed since there are 3 degrees of freedom) Lagrangian method is used. First the kinetic energy and then the potential energy are derived.

Before deriving the Lagrangian, we need to discuss the top spring more. This spring will have relaxed length of L0  which is the length when the spring is laying on a horizontal surface, hence its weight has no effect. When this spring is held upright, it will now extend a little more due to its own weight. We use Rayleigh factor of 1
3  to find this additional extension. When we attach the bob, there will be an additional extension, called the static extension. It is at this state that the simulation starts. Any additional pulling of the spring at this time is what will cause the vibration.

Displacement of the top spring is measured from the static deflection position as shown in this diagram

To model the top spring, since it has mass m  and a length, its kinetic energy comes from rotational motion and motion due to translation of its center of mass in the top-down direction as it vibrates. For rotation it is modeled as rigid rod of moment of inertia mL2-
 3  where L  is the total current length of the top spring measured from the origin where the pendulum is attached. For kinetic energy due to translational vibration motion up and down, it is modeled as point mass located at the bottom of the spring of mass m ∕3

For the lower spring, it is assumed to have zero relaxed length and the extension of the lower spring is measured as x  starting from where the lower spring is attached to the top spring. In the above diagram, all terms are assumed to be in the positive sense of motion.
Given the above diagram, we can now find the kinetic and potential energy of the system and derive the equations of motion.

Derivations of the equations of motion


bobHasMass = False;If[bobHasMass,L0 = len0+ mmm000ggg + MMM000ggg,L0 = len0+ mmm000ggg];
bboobbHHaassMMaassss == FFaallses;e;IIf[f[bboobbHHaassMMaassss,,LL00 = = lleenn00++ 3k3k3k111 ++  k1k1k1 ,,LL00 = = lleenn00++ 333kkk111]];;

This is the position vector of the bob mass as measured in the inertial frame of reference. The origin of this frame of reference is where the top pendulum is attached. The position x  direction is towards the right, and positive y  direction is downwards.

rr[[t]t] = = {{((LL00 ++ yy[t[t])])SSiinn[𝜃[𝜃[[t]t]]+ x[t]Cos[𝜃[t]],(L0 +y[t])Cos[𝜃[t]]− x[t]Sin[𝜃[t]]};

{                                               (                    )                                                    (                    )    }
  Cos[𝜃[t]]x′[t]+ Sin[𝜃[t]]y′[t]− Sin[𝜃[t]]x [t]𝜃′[t]+ Cos[𝜃[t]] len0+ gm0 + gM0-+ y[t] 𝜃′[t],− Sin [𝜃[t]]x&#x
                                                       3k1   k1                                                                   3k1    k1

This is speed of the bob after squaring it. It comes from the above expression.

bboobbVVeellooccitityySSqquuaarreedd = = ((((xx′[′[tt]]++((LL00 ++ yy[t[t])])𝜃𝜃′′[t[t])])∧∧22 ++ (x(x[[t]𝜃′[t]− y′[t])∧2);

IIIf[f[fbb[booobbbHHHaaasssMMMaaassssss,,,kkkeee = = = 111(M(M(M000 ))ʻoobbVVeelolocciittyySSqquuaareredd ++ 11mm00 (L(L00++yy[t[t])])∧∧22𝜃𝜃′[′[tt]∧]∧22 ++ 11mm00yy′′[t[t]∧]2∧2
                  222                       222      333            222 333           222                       222 333

1    ′ 2   1   (     gm0     )2 ′  2
6m0y  [t] + 6m0 len0+  3k1 + y[t]  𝜃[t]


Assume PE is zero at the bottom of the pendulum when it hangs in the vertical position.

IIIf[f[fbb[booobbbHHHaaasssMMMaaassssss,,,pe = m0g L0+y[t](1 − Cos[𝜃[t]]) +M0g ((L0+ y[t])(1 − Cos[𝜃[t]]) + x[t]Sin[𝜃[t]])+ 1kx[t]∧2+ 1k1(y[t&
                       222                                                        222         222                   222                222

1     2   1               (      gm0     )
2k1y[t]+  2gm0(1− Cos[𝜃[t]]) len0 + 3k1 + y[t]


lllaaagggrararannngggiiiaaannn = = = kkkeee −−− pppeee

  1     2  1               (      gm0     )   1   ′  2  1   (      gm0     )2 ′ 2
− 2k1y[t] − 2gm0 (1 − Cos[𝜃[t]]) len0+  3k1 + y[t] + 6m0y [t] + 6m0  len0 + 3k1 + y[t] 𝜃[t]

Equations of motion

x equation of motion

IIIf[f[fbb[booobbbHHHaaasssMMMaaassssss,,,eeeqqq111 = = = DDD [D[D[D[[[lalalagggrrraaannngggiaiaiannn,,,xxx′′′[t[t[t]]]],],],ttt]]]−−− D DD[[[lalalagggrrraaannngggiaiainn,,xx[[t]t]]] = === 00

y equation of motion

eeeqqq222 === DDD[[[DDD[[[lalalagggrrraaannngggiaiinana,,n𝜃𝜃,𝜃′′′[t[t[t]]]],],],ttt]]]−−− DDD[[[lalalagggrrraaannngggiaiaiannn,,,𝜃𝜃𝜃[[[t]t]t]]]] = = ==== 000

1gm0Sin [𝜃[t]](len0+  gm0-+ y[t])+ 2m0 (len0 + gm0+ y[t])y′[t]𝜃′[t]+ 1m0 (len0 + gm0+ y[t])2𝜃′′[t] == 0
2                  3k1         3          3k1               3          3k1

𝜃  equation of motion

eeeqqq333 === DDD[[[DDD[[[lalalagggrrraaannngggiaiinana,,nyy,y [t[t[]]t]],],],ttt]]]−−− DDD[[[lalalagggrrraaannngggiaiaiannn,,,yyy[[[t]tt]]]]] = = ==== 000

                              (              )
12gm0 (1− Cos[𝜃[t]])+ k1y[t]− 13m0  len0 + g3mk01 + y[t] 𝜃′[t]2 + 13m0y′′[t] == 0

Use NDSolve to solve the equations of motion using typical values for parameters

                                                                                                                                                  ′′′                    ′′′                 ′′′                      ′′′                    ′′′
IIIf[f[fbb[booobbbHHHaaasssMMMaaassssss,,,pppaaarrraaammmsss === {k{{kk→ → →  505050000,,,kkk111 →→→ 111000000000,,,MMM000 →→→ 110010,,,ggg--->>>999...888,,,lelelennn000 →→→,,,mmm000 →→→ 555}}},,,params = {k1 → 1

{k → 500,k1 → 1000,M0  → 10,g → 9.8,len0 → 0.5,m0 → 5}

IIIf[f[fbb[booobbbHHHaaasssMMMaaassssss,,,ssooll = = FFirisrstt@@NNDDSSoollvvee[[FFllaatttteenn[[{{eqeq11,,eeqq22,,eeqq33,,icic}}]/]///..ppaarraammss,,{{xx,,yy,𝜃,x′,y′,𝜃′},{t,0,9},Method → {“BDF ”}]

                                                                                                             ′                                   ′                                   ′
{x → InterpolatingFunction[{{0.,9.}},< >],y → InterpolatingFunction[{{0.,9.}},<> ],𝜃 → InterpolatingFunction[{{0.,9.}},< >],x → InterpolatingFunction[{&#

Plot the solution

dddaaatttaaa = = = TTTaaabbbllleee[[[(p(p(peee +++ kkke)e)e)//////...pppaaarararammmsss///...sssoool,l,l,{{{ttt,,,000,9,9,,,9,...000111}}}];];];LLLisisistttPPPlllooot[t[t�ttaa,J,oJioinneedd → → TTrruuee,,PPlolottRRaannggee →→ AAllll]]


PPPlllooottt[1[1[1888000∕∕∕PPPiii𝜃𝜃𝜃[t[t[t]]]/.//s.s.soool,l,l,{{{ttt,,,000,9,9,9}}},,,PPPllloootttRRRaaannngggeee → → → AAAllll,l,l,AAAxxxeeesssOOOrrriiigggininin→→ → {{00{0,,,000}}}]]]


PPPlllooottt[y[y[y[[[t]t]t//]/.s.s.oosolll,,,{t{{,t,t,000,,,999}}},,,PPPlololotttRRRaaannngggeee →→→ AAAllllll,,,AAAxxxeeesssOOOrrrigigigiiinnn → →→ {{{000,,,000}}}]]]


PPPlllooottt[x[x[x[[[ttt]/]/]/...sososolll,,,{{{t,t,t,000,,,999}}},,,PPPlolltotoRRtRaaannngggeee →→→ AAAllllll,,,AAAxxxeeesssOOOrrrigiiigiginnn →→→ {{{000,,,000}}}]]]