Advanced spring mechanics

The following diagram shows a block of mass m = 1 k g m = 1 kg attached to two identical springs of natural length L = 1 L = 1 meters and spring constants k = 1 k = 1 N/m. The block is pulled along the + x +x -axis by a length of x = 3 x = 3 meters; when it is released, the block moves with an acceleration x ¨ \ddot{x} in the x -x direction. Find the initial acceleration of the block and the time it takes to reach the origin x = 0 x = 0 .

Enter your answer as t + a t+a , where t t is the time it takes for the block to reach the origin and a a is the magnitude of the initial acceleration of the block.


The answer is 5.51641540387.

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

Krishna Karthik
Apr 10, 2020

I will going to use the Newtonian model for finding out the forces acting on the block, so let's first draw a free body diagram for one of the springs:

Let's call the force the spring applies on the block directly F s \bold{F_s} . The vertical and horizontal components respectively are:

F y = F s sin ( θ ) \bold{F_y} = \bold{F_s} \sin(\theta) and F x = F s cos ( θ ) \bold{F_x} = \bold{F_s} \cos(\theta)

The vertical component of the forces exerted by both springs are opposite in direction and cancel each other out.

Where cos ( θ ) = L L 2 + x 2 \displaystyle \cos(\theta) = \frac{L}{ \sqrt{L^2+x^2}}

A single spring's stretch is equal to L 2 + x 2 L \sqrt{L^2+x^2} - L , so the force a single spring exerts on the block is k ( L 2 + x 2 L ) k(\sqrt{L^2+x^2} - L)

So the force both springs exert on the object is m x ¨ = 2 k x ( 1 1 L 2 + x 2 ) m \ddot{x} = -2kx \left( 1 - \Large{\frac{1}{\sqrt{L^2+x^2}}} \right)

Since the block is of unit mass, the initial acceleration is also 2 k x ( 1 1 L 2 + x 2 ) = 4.10266 -2kx \left( 1 - \Large{\frac{1}{\sqrt{L^2+x^2}}} \right) = 4.10266 m/ s 2 s^2

@Karan Chatrath analytically found out the integral which gives the time it takes for the block to reach the origin by integrating 1 x ˙ \Large \frac{1}{\dot{x}} over distance. He did it by using energy conservation.

Here is my numerical simulation which uses Explicit Euler numerical integration:

 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
import math

#double spring system

time = 0
deltaT = 10**-7 #timestep 1e-07

x = 3 #initialisation of position
xDot = 0 #initialisation of velocity

while x >= 0: #simulating till block hits the origin

    #Explicit Euler numerical integration

    xDotDot = -2*x*(1-(1/math.hypot(1,x))) #differential equation
    xDot += xDotDot*deltaT #numerical extrapolation of velocity
    x += xDot*deltaT #numerical extrapolation of position

    time +=deltaT #updating value of time


print("numerical simulation timestep: " +str(deltaT))
print("time taken for block to reach the origin: " + str(time))

#time taken for block to reach the origin: 1.413782

Karan Chatrath
Apr 10, 2020

I agree with @Steven Chase . A nice problem indeed. Also posting my solution, which is a semi-analytical approach.

Consider the block at a general time instant t t . Its kinetic energy is:

T = 1 2 m x ˙ 2 T = \frac{1}{2}m\dot{x}^2

The system is symmetrical about the X-axis and the springs are identical. The potential energy of each spring is the same and the total potential energy of the system is therefore:

V = 2 ( 1 2 K ( x 2 + 1 1 ) 2 ) V = 2\left(\frac{1}{2}K\left(\sqrt{x^2+1}-1\right)^2\right) V = K ( x 2 + 1 1 ) 2 V = K\left(\sqrt{x^2+1}-1\right)^2

The total energy of the system is a constant which is equal to the initial potential energy of the system. Note that initially the particle is at x = 3 x=3 and is released from rest. This gives:

T + V = K ( 10 1 ) 2 T + V = K\left(\sqrt{10}-1\right)^2 1 2 m x ˙ 2 + K ( x 2 + 1 1 ) 2 = K ( 10 1 ) 2 \implies \frac{1}{2}m\dot{x}^2 + K\left(\sqrt{x^2+1}-1\right)^2=K\left(\sqrt{10}-1\right)^2 1 2 x ˙ 2 + ( x 2 + 1 1 ) 2 = ( 10 1 ) 2 \implies \frac{1}{2}\dot{x}^2 + \left(\sqrt{x^2+1}-1\right)^2=\left(\sqrt{10}-1\right)^2 Re-arranging gives:

x ˙ = 2 ( ( 10 1 ) 2 ( x 2 + 1 1 ) 2 ) \implies \dot{x} = -\sqrt{2\left(\left(\sqrt{10}-1\right)^2-\left(\sqrt{x^2+1}-1\right)^2\right)}

The additional negative sign is included to imply that as time progresses, x x decreases.

Separating the variables and integrating gives the required time period:

0 3 d x 2 ( ( 10 1 ) 2 ( x 2 + 1 1 ) 2 ) = T 1.4138 \int_{0}^{3} \frac{dx}{\sqrt{2\left(\left(\sqrt{10}-1\right)^2-\left(\sqrt{x^2+1}-1\right)^2\right)}} = T \approx 1.4138

To find the initial acceleration, consider the energy conservation equation:

1 2 x ˙ 2 + ( x 2 + 1 1 ) 2 = ( 10 1 ) 2 \implies \frac{1}{2}\dot{x}^2 + \left(\sqrt{x^2+1}-1\right)^2=\left(\sqrt{10}-1\right)^2

Differentiating the above with respect to time gives:

( x ¨ + 2 x ( 1 1 x 2 + 1 ) ) x ˙ = 0 \left(\ddot{x} + 2x\left(1 - \frac{1}{\sqrt{x^2+1}}\right)\right)\dot{x} = 0

Since x ˙ \dot{x} cannot be zero, the term:

x ¨ + 2 x ( 1 1 x 2 + 1 ) = 0 \ddot{x} + 2x\left(1 - \frac{1}{\sqrt{x^2+1}}\right)=0

At the initial instant when the block is just released, the magnitude of the acceleration of the block is obtained by substituting x = 3 x=3 above, which gives:

x ¨ ( 0 ) 4.102633 \lvert \ddot{x}(0) \rvert \approx 4.102633

The required answer is, therefore:

x ¨ ( 0 ) + T 5.5164 \boxed{\lvert \ddot{x}(0) \rvert + T \approx 5.5164}

Very nice solution.

Krishna Karthik - 1 year, 2 months ago

brilliant way to find the final time.

Krishna Karthik - 1 year, 2 months ago

Log in to reply

Thank you. This approach applies to systems where energy is conserved.

Karan Chatrath - 1 year, 2 months ago
Steven Chase
Apr 9, 2020

Nice problem. Simulation code attached below (with comments)

 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import math

# Constants

m = 1.0  # mass
L0 = 1.0 # natural length
k = 1.0  # spring constant

dt = 10.0**(-6.0)  # time step

###############################

# Initialize time, position, velocity

t = 0.0

x = 3.0
xd = 0.0

###############################

# Initialize horizontal acceleration

L = math.hypot(L0,x)  # spring length
S = L - L0 # spring stretch
Fs = k*S   # individual spring force

Fx = -2.0*Fs*(x/L)  # total horizontal force

xdd = Fx/m  # horizontal acceleration

a = abs(xdd)  # magnitude of initial horizontal acceleration

###############################

while x >= 0.0:

    x = x + xd*dt        # numerical integration
    xd = xd + xdd*dt

    L = math.hypot(L0,x)  # spring length
    S = L - L0  # spring stretch
    Fs = k*S  # individual spring force

    Fx = -2.0*Fs*(x/L)  # total horizontal force

    xdd = Fx/m  # horizontal acceleration

    t = t + dt

###############################

print "time step"
print dt
print ""
print "initial acceleration"
print a
print ""
print "final time"
print t
print ""
print "initial acceleration + final time"
print (t+a)
print ""

###############################

# Results

#time step
#1e-05

#initial acceleration
#4.1026334039

#final time
#1.41378

#initial acceleration + final time
#5.5164134039

#>>> ================================ RESTART ================================
#>>> 
#time step
#1e-06

#initial acceleration
#4.1026334039

#final time
#1.41378199997

#initial acceleration + final time
#5.51641540387

>>> 

Thanks for solving!

Krishna Karthik - 1 year, 2 months ago

Log in to reply

Thanks for posting

Steven Chase - 1 year, 2 months ago

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...