1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Find Time: Constant Acceleration

  1. Feb 26, 2010 #1
    1. The problem statement, all variables and given/known data

    Find the time it takes to traverse the distance.
    Given:
    *constant velocity
    *initial acceleration = 0
    *ending acceleration= 11176 m/s
    *distance traversed = 28.96 km (18 miles)

    2. Relevant equations

    velocity:
    v^2 = v0^2 + 2a(delta x)
    v = sqrt(v0^2 + 2a(delta x))

    3. The attempt at a solution

    This isn't really a homework problem but this seemed the best place to ask the question.
    I'm not a physics student, I tried looking up equations that might pertain but don't have the
    background to hunt them down - I need this for a program I'm writing that gives the velocity
    and distance at any point/time from lift-off under constant acceleration.

    Most equations require <time>, which is what I don't know how to find.

    Any help is most appreciated.

    Tony
    1. The problem statement, all variables and given/known data



    2. Relevant equations



    3. The attempt at a solution
    1. The problem statement, all variables and given/known data



    2. Relevant equations



    3. The attempt at a solution
    1. The problem statement, all variables and given/known data



    2. Relevant equations



    3. The attempt at a solution
    1. The problem statement, all variables and given/known data



    2. Relevant equations



    3. The attempt at a solution
     
  2. jcsd
  3. Feb 27, 2010 #2
    You have switched velocity and acceleration terms. It should be constant acceleration and initial and final velocities. And since you require time, use
    delta[x]= u*t + 1/2a*t*t.
     
  4. Feb 27, 2010 #3
    Thanks, your quite right, I did.

    Yes, I've since run into that on a thread-search and found a possible solution
    suggested by Mike W, but tell me if I have it right:

    Keeping in mind that beginning and ending velocities are known, distance is known,
    and, as you pointed out, we have constant acceleration, it wouldn't seem much of a
    stretch to determine average velocity, vF/2, in this case.

    Determine average velocity (v~):

    v~=(vF-vI)/2

    Use the average velocity to solve for (t):

    t=(delta[x]/v~)

    And with (t) known, acceleration:

    a=(vF-vI)/t

    You think that will fly?

    Thanks, aim, to both you and Mike W.!

    Tony
     
    Last edited: Feb 27, 2010
  5. Feb 28, 2010 #4
    Yeah I think that will fly.:smile:
    Just keep in mind that this method works as long as acceleration is constant, and not for changing acceleration.
     
  6. Mar 2, 2010 #5

    Thanks again aim, are you game for a follow-up?

    In trying to calculate elapsed-time (say, for a mile), I noticed that it looked too high for the velocity I was logging.
    (500 mph in 100 feet)

    Using 'average' velocity each time through the loop, (t) is essentially static.

    This didn't seem right as velocity increases considerably.

    Then I tried 'average' velocity for just the first pass and vF thereafter, this gave me time-figures that looked more like what I expected.

    However, not having any background in any of this, it's all just 'guesswork'.
    ( which is why I'm here...).

    Commenting the if-else statement reverts to using 'average' velocity.

    Help me understand which is the correct way to approach this.

    No gravity, no atmosphere:



    d: distance-feet (just for loop counting)
    a: acceleration-m/s
    t: time-sec
    et: elapsed time-sec
    vI: initial velocity-m/s
    vF: final velocity-m/s
    mps: miles per second
    mph: miles per hour

    Results:

    Using: va=(vF-vI)/2.0; for each pass, t doesn't decrease.
    Examp:
    d=100 a=870.27 t=0.264663743325 et=0.2647 vI= 230.33 vF= 1100.60 0.66mps 2377.30mph
    d=200 a=870.27 t=0.070046897031 et=0.3347 vI= 1100.60 vF= 1970.88 1.18mps 4257.10mph
    d=300 a=870.27 t=0.070046897031 et=0.4048 vI= 1970.88 vF= 2841.15 1.70mps 6136.89mph
    d=400 a=870.27 t=0.070046897031 et=0.4748 vI= 2841.15 vF= 3711.43 2.23mps 8016.68mph
    d=500 a=870.27 t=0.070046897031 et=0.5449 vI= 3711.43 vF= 4581.70 2.75mps 9896.47mph
    .
    .
    d=5300 a=870.27 t=0.070046897031 et=3.9071 vI=45484.58 vF=46354.86 27.81mps 100126.49mph
    *et=3.9071*

    Using: va=vF on all iterations other than the first 'looked' better.
    Examp:
    d=100 a=870.27 t=0.264663743325 et=0.2647 vI= 230.33 vF= 1100.60 0.66mps 2377.30mph
    d=200 a=870.27 t=0.027693882030 et=0.2924 vI= 1100.60 vF= 1970.88 1.18mps 4257.10mph
    d=300 a=870.27 t=0.015465187103 et=0.3078 vI= 1970.88 vF= 2841.15 1.70mps 6136.89mph
    d=400 a=870.27 t=0.010728041621 et=0.3186 vI= 2841.15 vF= 3711.43 2.23mps 8016.68mph
    d=500 a=870.27 t=0.008212475971 et=0.3268 vI= 3711.43 vF= 4581.70 2.75mps 9896.47mph
    .
    .
    d=5300 a=870.27 t=0.000670117169 et=0.4109 vI=45484.58 vF=46354.86 27.81mps 100126.49mph
    *et=0.4109*

    Here's the loop:


    double getET()
    {
    double sec,min,hrs,t,a,et,vF,vI,va,dx;
    int i,d;

    //loop - iterate through a given distance to find elapsed time

    for (
    i =0,
    d =100,
    dx =30.48, //100 ft.
    et =0.0,
    a =0.0,
    vI =0.0,
    vF =230.33; //500 mph

    d<5400; //test: feet to run (approx 1-mile)

    d+=100, //increment distance 100 feet
    i++
    )
    {

    //get avg velocity, 1st pass only
    if(i==0)
    va=(vF-vI)/2.0;
    else
    va=vF;

    //increment elapsed-time
    t=(dx/va);
    et+=t;

    //get acceleration, 1st pass only
    if(i==0)
    a=(vF-vI)/t;

    //save current velocity then increment velocity
    vI=vF;
    vF+=a;

    //output results
    printf("d=%4d a=%6.2f t=%.12f et=%.4f vI=%8.2f vF=%8.2f - %5.2fmps %9.2fmph\n",
    d, a, t,et, vI, vF,getmps(vF),getmph(vF));
    }
    return et;
    }


     
    Last edited: Mar 2, 2010
  7. Mar 4, 2010 #6
    You wrote vf+=a. As far as I see vf=v*at. Unless your time period is 1s this looks wrong to me. And please be more specific-my programming is not good anyways.
    Try this and tell me what you get; but please no more program codes.:smile:
     
  8. Mar 4, 2010 #7
    My apologies, aim, I'll keep it descriptive (I hope).

    The term vF+=a is a short form of vF=vF+a, (a) was previously calculated (just once).

    Here's what the program does:

    Initial velocity is defined as: 230.33 (500 mph), there is no need to calculate it since it's known.

    Distance (and therefore dx) is defined as 30.48 m (100 ft), it doesn't change either.

    I initially find the acceleration required to attain a velocity of 230.33 m/s in 30.48 m.
    t=(dx/va)
    a=(vF-vI)/t

    That figure remains a constant since this is a constant-acceleration problem.

    Having set all the initial values, whether by definition or calculation, I apply them on each iteration through the loop. The loop iterates in 30.48 (100 ft) increments.

    I -thought- I could simply add the acceleration value to the previous velocity to obtain the current velocity (since we've traveled another 100 ft), but if I need to multiply that acceleration by time, then that is an issue I didn't see and, quite frankly, doesn't seem intuitive to me at the moment.

    Here's why: time, in this case, is a function of velocity and not the other way around.
    In this case, time seems to be a result rather than a parametric dependency of velocity.

    In other words, velocity will always increment at a constant rate with only one dependency, acceleration. The time-measure will be the result of that acceleration added to velocity.

    It also gets back to my original question: do I revert to using the average velocity calculation? You can see what happens when I do in result table #2, time doesn't change.

    Maybe the problem is that I tend to see the issue in an iterative rather than an instantaneous sense, but that code certainly does seem to run-out correctly.

    In any event, I certainly thank you for your patience, aim, I wish I was smarter and knew all about physics like you do, but as it is, I'd need several lifetimes to learn all I really want to know.

    Tony
     
  9. Mar 4, 2010 #8
    aim, I found my error (I think):

    With time unknown:

    vF^2 = vI^2 + 2a(sF-sI)
    (source: http://en.wikipedia.org/wiki/Equations_of_motion)

    I naively oversimplified the relationship...considerably! (although it still seems intuitively correct).

    So now, I have to do this:

    vF=sqrt(vI^2 + 2a(sF-sI))

    in place of:

    VF+=a

    Pity. it seemed so 'right' at the time...

    Does that look a little more palatable?

    Thanks for putting up with me, aim, I'll probably be back with more queries, considering how much I don't know.

    Tony
     
  10. Mar 4, 2010 #9
    Hello attriola! First thing, there is no need to belittle yourself. Physics is one subject where nobody can claim to know everything.
    Now the problem itself. There are three eqns. of motion:
    vf = vi + at
    delta x = vi*t + 0.5*a*(t^2)
    vf^2 = vi^2 + 2a*delta(s)
    You wrote the third but I would recommend the first. Your intution was right- velocity does increase by fixed amounts in a given time period- but that amount itself is dependent on the length of time period you choose. Here the length of your time period changes but you do have the variable t in the program code so the first eqn. seems to fit quite well, although the third eqn. is equally correct.
    Hope this helps.
     
  11. Mar 5, 2010 #10
    Thanks again, I came to that realization about 4:30 AM (pst), so got up to re-post but you beat me to it.

    Of course, it makes sense on several levels. For one thing, I can't use (a) directly anyway, it's meaningless until multiplied by time.

    In the code I posted, the only thing time was used for was to get the initial value for acceleration. Otherwise, it was just used to increment elapsed time.

    However, since I didn't plug time in to get velocity, everything was erroneous anyway.

    I'll re-code this so it makes better sense and let you know how it went.

    As i said, you're very gracious, aim, and I appreciate your indulgence.

    Tony
     
    Last edited: Mar 5, 2010
  12. Mar 5, 2010 #11
    aim, got it.

    After several trials with either of the two forms of the equation, I came to the realization that the initial iteration requires this form of the equation:

    vF=(a*t);
    va=(vF-vI)/2.0;
    t=(dx/va);

    And the subsequent iterations require this form:

    vF=sqrt((vI*vI)+((2*a)*(dx)));
    t=(vF-vI)/a;

    The reason is that on the first iteration, we know dx, vI and vF but not a or t.
    On all other iterations, we know a, dx and vI, but not vF or t.

    Mixing one with the other (including the time equation) just doesn't work.

    Using the above forms also solved the problem with time not decrementing properly and invalid results.
    I checked a sampling of results from a test-series I ran against a one-shot web-calculator here:

    http://www.ajdesigner.com/constantacceleration/cavelocity.php

    And they agree across the board, so I guess it's 'problem solved' and I learned a lot in the process.

    Besides calculating elapsed time for a hypothetical constant-acceleration to cover a given distance, it lets me pick any number of terms and save the columns generated to a text file that I can import into a spreadsheet to generate a plot or simply write to a file that displays all the terms as they change, which is what I wanted.

    In deference to your request, I won't post the code, but if you're ever interested, just drop me a line or PM.

    Thanks again!

    'Till next time,

    Tony
     
  13. Mar 6, 2010 #12
    Well done mate!
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook