Patrick Meyer

The Motion of Objects Down Straight and Curved Ramps

Brief Description:

This miniproject determines the acceleration, the velocity, and the total time it takes for an object to move without friction down a straight ramp of a given length and a given inclination angle. It then uses straight ramp segments to approximate a parabolic ramp, and determines the approximate length of the curved ramp and the approximate time it takes the object to reach the bottom of the ramp.

Object Moving Down a Ramp

When an object is allowed to roll down a frictionless ramp, it undergoes uniform acceleration. This means that the speed of the object increases at a constant rate as it moves down the ramp. The rate of acceleration depends on the angle of inclination of the ramp, θ, and the acceleration of gravity, g, and is given by the relationship:

a = g sin(θ)

pointlist={};
ramp = Plot[-.5 x + 1, {x, 0, 2},
            PlotStyle->RGBColor[0,0,1],
            PlotRange->{{0,2},{0,1.06}},
            DisplayFunction->Identity];
Do[
   AppendTo[pointlist, {3.92 t^2 + .05, -1.96 t^2 + 1.02}];
   Show[ramp,
        ListPlot[pointlist,
	             PlotStyle->{PointSize[0.04],RGBColor[1,0,0]},
	             DisplayFunction->Identity, 
                 PlotRange->{{0,2},{0, 1.06}}],
        Graphics[Text[FontForm["θ",{"Symbol", 12}], {1.75, .07}]],
	     DisplayFunction->$DisplayFunction],
   {t,0, .7, .05}]

Let's start with a ramp that is inclined at an angle of 30Ø. The acceleration of the object down the ramp (in m/s¤) will be:

Clear[g, theta, a, vi, vf, s, time]
g = 9.81;
theta = 30 Degree;
a = N[g Sin[theta], 3]

How fast will the object be traveling when it reaches the bottom of the ramp? The speed at the bottom of the ramp, vƒ  , depends on its starting speed, vî  , the acceleration down the ramp, a, and the length of the ramp, s. This relationship is given by:

vƒ¤ = vî¤ + 2 a s      or      vƒ  = Sqrt [ vî¤ + 2 a s ]

For a ramp that is 5.0 meters long, inclined at 30Ø, an object that is released from rest (vî  = 0) will have a speed of ...

vi = 0;
s = 5.0;
vf = N[Sqrt[vi^2 + 2 a s], 3]

... m/s when it reaches the bottom of the ramp.

Because the object's speed increases at a uniform rate, the average speed of the object is given by:

vå √ ©  = ( vƒ  + vî  ) / 2

This relationship and the familiar relationship, s = vå √ ©  t , can be used to determine the amount of time it takes the object to reach the bottom of the ramp:

t = 2 s / ( vƒ  + vî  )

time = N[2s / (vi + vf), 3]

Try it out!

Find the acceleration, the final velocity, and the total time of an object that slides from rest without friction down a 3.5 meter long ramp that is inclined at an angle of 45Ø.

Answer: (Double click the box to the right.)

The acceleration is:

Clear[g, theta, a, vi, vf, s, time]
g = 9.81;
theta = 45 Degree;
a = N[g Sin[theta], 3]

The final velocity is:

vi = 0;
s = 3.5;
vf = N[Sqrt[vi^2 + 2 a s], 3]

The total time will be:

time = N[2s / (vi + vf), 3]

Curved Ramps

Straight ramps are fairly easy to deal with, but what if your ramp is curved? For example, what if your ramp is shaped like the parabola obtained by graphing the function f(x) = x¤ for -2 ≤ x ≤ 0 ?

Clear[f, x, start, stop]
f[x_] := x^2;
start = -2;
stop = 0;
Plot[f[x], {x, start, stop},
            PlotStyle->RGBColor[0,0,1]];

To solve the problem of determining the speed and time of an object that slides down a curved ramp, we can divide the ramp into straight line segments:

Clear[ n, delx, fplot, interval, segment]
Do[delx = (stop - start) / n;

fplot = Plot[f[x],{x,start,stop},
             PlotStyle->RGBColor[0,0,1],
             DisplayFunction->Identity];
interval = Table[
           {Graphics[{PointSize[0.02],Point[{x,0}]}],
            Graphics[{PointSize[0.02],RGBColor[1,0,0],
                      Point[{x,f[x]}]}],
            Graphics[{Line[{{x,0},{x,f[x]}}]}]},
           {x,start,stop,delx}];
segment = Table[Graphics[{RGBColor[1,0,0],Line[{{x,f[x]},
                                {x + delx,f[x + delx]}}]}],
	      {x,start,stop - delx,delx}];
txt=Graphics[{Text["Number of Intervals = ", {-.5, 3}, {1,0}],
              Text[n, {-.5, 3}, {-1,0}]}];
Show[fplot,interval,segment,txt,
     
     PlotRange->All,DisplayFunction->$DisplayFunction],
{n,1,8}]

Notice that as the number of intervals increases, the straight line ramp segments (red) approaches the curved ramp (blue).

How long is each ramp segment? We can use the Pythagorean Theorem to determine the lengths:

s¤ = (Δx)¤ + (Δy)¤

In this equation, Δx is the distance across each interval, and Δy is the change in the height of the ramp across a given interval. Let's determine the length of each ramp segment for 4 intervals (n = 4).

Clear[n, delx, dely]
n = 4;
delx = (stop - start) / n;
dely = Table[f[x + delx] - f[x],
             {x, start, stop - delx, delx}];
seglength = N[Sqrt[delx^2 + dely^2],3]

The total length of these segments is:

Sum[seglength[[i]],{i,1,n}]

The inclination angle of each ramp segment is given by:

θ = Arctan ( Δy / Δx )

Let's compute the inclination angle of our four ramp segments:

Clear[theta, angle]
theta = Abs[ArcTan[dely/delx]];
angle = N[theta / Degree,3]

Now, let's tie it all together. The acceleration of an object down each ramp segment is given by the equation:

a = g sin(θ)

For our ramp segments, the accelerations are:

Clear[g, accel]
g = 9.81;
accel = N[g Sin[theta],3]

Notice that the ramp segment with the steepest angle (the first segment) has the highest acceleration.

If our object starts with a velocity of 0 at the top of the ramp, the velocity at the bottom of each ramp segment will be:

Clear[v, velocity]
v[0] = 0;
v[i_] := Sqrt[v[i-1]^2 + 2 accel[[i]] seglength[[i]]];
velocity = Table[v[j],{j,1,n}];
N[velocity, 3]

The final velocity in the above list is the approximate velocity of the object when it reaches the bottom of the curved ramp.

The time for the object to slide down each ramp segment is given below:

Clear[time]
time = Table[2 seglength[[i]] / (v[i] + v[i-1]),{i,1,n}];
N[time, 3]

And the total time to travel down the ramp segments, which is the approximate time to travel down the curved ramp, will be the sum of the above values.

N[Sum[time[[i]], {i, 1, n}],3]

And, for your enjoyment...

Clear[g, delt, f, fprime, x, start, stop,
      pointlist, position, accel, velocity]
g = 9.81;
delt = 0.105;
f[x_] := x^2;
start = -2;
stop = 0;
pointlist = {};
position = start;
velocity = 0;
Do[
   AppendTo[pointlist, { position, f[position] }];
   Show[Plot[f[x], {x, -2, 0}, PlotStyle->RGBColor[0,0,1],
                            DisplayFunction->Identity],
        ListPlot[pointlist, PlotStyle->{PointSize[0.04],RGBColor[1,0,0]},
                            DisplayFunction->Identity],
        DisplayFunction->$DisplayFunction];
   fprime = f'[position];
   accel = Abs[g fprime / (1 + fprime^2)];
   velocity = velocity + accel delt;
   position = position + velocity delt,
{t, 0, 1.155, delt}]