Submerged chain

Two chains each consisting of three masses are placed side-by-side in a fluid.

The masses in Chain A are connected by two ideal springs; the masses in Chain B are connected by two perfectly rigid rods. An impulse is applied to Chain A on the mass marked with an arrow, imparting the mass with an initial speed v 0 . v_0. The masses in the chain oscillate and eventually come to rest as the fluid exerts a drag force F drag = b x ˙ F_\text{drag}=-b\dot{x} on them.

The same impulse is then applied to the marked mass in the rigid chain. Which chain is farthest from its initial position after they come to rest?

Details & Assumptions

  • The lengths of the connecting rods and the equilibrium lengths of the springs are all identical and equal to . \ell.
  • The spring constant for both springs are all identical and equal to k . k.
  • The masses are all identical and equal to m . m.
  • Masses connected by perfectly rigid rods are separated by a distance which cannot change.
  • We have included this code window so you can test your guess:

import numpy
import matplotlib.pyplot as plt
k=1 #spring constant
N=10000 #number of time steps
b=.5 #drag coefficient
DT=.005 #time step

def stepup(x,v):
    
    Dv=[None]*3 
    Dx=[None]*3
    
    #Apply Euler's method to compute the velocity changes over DT
    Dv[0] = DT*(k*(x[1]-x[0]-1)-b*v[0])
    Dv[1] = DT*(k*(x[2]-x[1]-1) -k*(x[1]-x[0]-1)-b*v[1])
    Dv[2] = DT*(-k*(x[2]-x[1]-1)-b*v[2])
    
    #Apply Euler's method to compute the position changes over DT
    Dx[0] = DT*v[0]
    Dx[1] = DT*v[1]
    Dx[2] = DT*v[2]

    return [x+Dx,v+Dv]

def simulate():
    #Arrays to track the motion of masses
    springMass1=[None]*N
    springMass2=[None]*N
    springMass3=[None]*N

    #Initial values: first index is mass 1, second is mass 2, third is mass 3
    xSpring = numpy.array([0.0,1.0,2.0])
    vSpring = numpy.array([1.0,0.0,0.0])

    for i in range(N):
        springMass1[i]=xSpring[0]
        springMass2[i]=xSpring[1]
        springMass3[i]=xSpring[2]
        [xSpring,vSpring]=stepup(xSpring,vSpring)

    T=numpy.arange(0,N*DT,DT)
    plt.plot(T,springMass1)
    plt.plot(T,springMass2)
    plt.plot(T,springMass3)
    plt.savefig("springChain.png")

simulate()
Python 3
You need to be connected to run code

The rigid chain The spring chain They advance by the same distance.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

3 solutions

Mark Hennings
Oct 25, 2017

In either case, if T 1 T_1 is the tension in the first rod/spring and T 2 T_2 the tension in the second rod/spring, and if x , y , z x,y,z are the positions of the three masses, then m x ¨ = b x ˙ + T 1 m y ¨ = b y ˙ T 1 + T 2 m z ¨ = b z ˙ T 2 \begin{aligned} m\ddot{x} & = \; -b\dot{x} + T_1 \\ m\ddot{y} & = \; -b\dot{y} - T_1 + T_2 \\ m\ddot{z} & = \; -b\dot{z} - T_2 \end{aligned} so that m ( x ¨ + y ¨ + z ¨ ) + b ( x ˙ + y ˙ + z ˙ ) = 0 m(\ddot{x}+\ddot{y}+\ddot{z}) + b(\dot{x} + \dot{y} + \dot{z}) \; = \; 0 Suppose that the applied impulse is I I . In either system, we have x = x=-\ell , y = 0 y = 0 , and z = z = \ell initially.

In the case of the sprung system, we have x ˙ = I m , y ˙ = z ˙ = 0 \dot{x}=\tfrac{I}{m},\dot{y}=\dot{z}=0 initially. Thus we have e b t m ( x ˙ + y ˙ + z ˙ ) = I m e^{\frac{bt}{m}}(\dot{x}+\dot{y}+\dot{z}) = \tfrac{I}{m} and hence x + y + z = I b ( 1 e b t m ) x+y+z = \tfrac{I}{b}(1 - e^{-\frac{bt}{m}}) . Letting t t \to \infty (when the system is at rest we have x = y x=y-\ell , z = y + z = y + \ell ) we see that the final value of y y is I 3 b \tfrac{I}{3b} . The sprung system moves a distance of I 3 b \tfrac{I}{3b} .

In the case of the rigid system, the initial velocities are x ˙ = y ˙ = z ˙ = I 3 m \dot{x} = \dot{y} = \dot{z} = \tfrac{I}{3m} . Thus e b t m ( x ˙ + y ˙ + z ˙ ) = I m e^{\frac{bt}{m}}(\dot{x}+\dot{y}+\dot{z}) = \tfrac{I}{m} and hence x + y + z = I b ( 1 e b t m ) x+y+z = \tfrac{I}{b}(1 - e^{-\frac{bt}{m}}) . Throughout the motion we have x = y x = y - \ell , z = y + z = y + \ell , and so y = I 3 b ( 1 e b t m ) y = \tfrac{I}{3b}(1 - e^{-\frac{bt}{m}}) . Thus the final value of y y is I 3 b \tfrac{I}{3b} .

The rigid system moves the same distance as the sprung system.

Karel Kouril
Oct 29, 2017

One can solve this by looking at what happens to the momenta of the chains: (1) both chains start with the same total momentum. (2) for both chains the (total) momentum is governed by the same differential equation. It follows from (1) and (2) that at any given time the centres of mass of both chains move at the same speed and therefore have traveled the same distance.

Lets look at the details:

Both chains have the same initial momentum. This is traight from Newton's second law:

F Δ t = Δ p F\Delta t = \Delta p

Impulse F Δ t F\Delta t is equal to change of momentum Δ p \Delta p . Our chains start from rest so the impulse is equal to the starting momentum of either one of them.

Now consider what happens to the total momentum of the chain with springs:

p s p r i n g = m x ˙ 1 + m x ˙ 2 + m x ˙ 3 = m ( x ˙ 1 + x ˙ 2 + x ˙ 3 ) p_\mathrm{spring} = m\dot{x}_1 + m\dot{x}_2 + m\dot{x}_3 =m(\dot{x}_1 + \dot{x}_2 + \dot{x}_3)

The total momentum of the chain changes only due to the drag forces acting on the three masses. We do not need to consider the forces from the springs - these cannot change the total momentum of the chain, they only redistribute the momentum between the masses. (Feel free to check for yourself, effects of these forces on the total momentum cancel out.) The total drag force for the spring chain is:

F s p r i n g = b ( x ˙ 1 + x ˙ 2 + x ˙ 3 ) F_\mathrm{spring} = -b (\dot{x}_1 + \dot{x}_2 + \dot{x}_3)

But the right side is proportional to the total momentum of the chain, so we can rewrite it as:

F s p r i n g = b m p s p r i n g F_\mathrm{spring} = -\frac{b}{m}p_\mathrm{spring}

Using the second law we get:

p ˙ s p r i n g = b m p s p r i n g \dot{p}_\mathrm{spring} = -\frac{b}{m}p_\mathrm{spring}

The same line of reasoning can be repeated for the rigid chain again arriving at the same equation:

p ˙ r i g i d = b m p r i g i d \dot{p}_\mathrm{rigid} = -\frac{b}{m}p_\mathrm{rigid}

So momenta of both chains have the same starting value and follow the same differential equation. Since both chains have the same total mass then velocities of their centres-of-mass must be the same at any given time from the initial impulse. And if they had the same velocities at all times they must travel the same distance.

There are two observations to be made:

  1. The above argument only works for identical masses and F d r a g x ˙ F_\mathrm{drag}\sim \dot{x} . If the drag force is proportional to any other power of velocity than 1 it fails and one actually has to solve the differential equations.

  2. The chains start with the same total momenta but their starting energies are different. The spring chain starts with 3 times the energy of the rigid chain but looses it more quickly because of the "uncoordinated" motions of the individual masses.

Steven Chase
Oct 20, 2017

Here's my code. Only one structure is required. The rigid system is the limit of the flexible system as the spring constant tends toward infinity. As it turns out, you get about a third of a meter of travel regardless of the spring constant.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import math

v0 = 1.0

L = 1.0
m = 1.0
b = 1.0

k = 2.0

x1 = 0.0
x2 = L
x3 = 2.0 * L

v1 = v0
v2 = 0.0
v3 = 0.0

a1 =0.0
a2 = 0.0
a3 = 0.0

E0 = 0.5 * m * v0**2.0

E = 0.5 * m * (v1**2.0 + v2**2.0 + v3**2.0)

dt = 10.0**(-5.0)

while E > E0 * (10.0**-9.0):

    x1 = x1 + v1 * dt
    x2 = x2 + v2 * dt
    x3 = x3 + v3 * dt

    v1 = v1 + a1 * dt
    v2 = v2 + a2 * dt
    v3 = v3 + a3 * dt

    F1 = k * (x2 - x1 - L) - b*v1
    F2 = -k * (x2 - x1 - L) + k * (x3 - x2 - L) - b*v2
    F3 = -k * (x3 - x2 - L) - b*v3

    a1 = F1 / m
    a2 = F2 / m
    a3 = F3 / m

    E = 0.5 * m * (v1**2.0 + v2**2.0 + v3**2.0)

print x1 

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...