# Variable acceleration problem

1. Jul 16, 2010

### Grumple

Hi Guys,

I'm a programmer working on a hobby project (physics simulation), and came across this forum while looking for ideas related to a 1 dimensional motion problem I have. Hopefully someone can help me out (or at least point me in the right direction!). =)

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

An object starts at a known velocity, acceleration, and time (0). It ends at a known velocity, acceleration, and displacement (from start position). I want to find a constant delta acceleration and elapsed time that would satisfy the start and end conditions. For simplicity sake I'm assuming no external acceleration forces, etc, at this point.

Known:
initial velocity (vi)
initial acceleration (ai)
initial time (0)

final velocity (vf)
final acceleration (af)
final displacement from start position (sf)

Unknown:
constant delta acceleration (c)
elapsed time (t)

2. Relevant equations
af = ai + ct
vf = vi + ait + 1/2ct2
sf = vit + 1/2ait2 + 1/6ct3

3. The attempt at a solution
So after having done some reading I think I need to use calculus and start with the formulas above. It seems like I should be able to use basic algebra to solve for c and t at this point. However, I'm not sure if:
(a) That would actually generate correct 'real world' results, and
(b) What additional constraints I would have to consider to ensure the math doesn't break on some arbitrary set of inputs. For example, under what conditions would it be impossible to generate a constant delta acceleration/elapsed time combination that satisfies my start and end conditions?

Thanks for any help/pointers in advance!

2. Jul 17, 2010

### AJ Bentley

The formulae are correct for the classical motion of an object - I see no reason why you shouldn't use them.
Aside from the usual problems with math manipulations (divide by zero, overflow etc) there shouldn't be a problem. The real world is rather better at handling this than computers - it doesn't 'break'.

3. Jul 17, 2010

### rcgldr

Since acceleration is increasing linearly with time, you should be able to base this on the average acceleration versus time. The area under the curve acceleration versus time will be the same for the actual sloped line as well as the horizontal line where the average aceleration versus time occurs, in this case, it's (ai + af) /2. What you have here is a constant "jerk" (rate of change of acceleration versus time). Start with the jerk equation, then work your way back to acceleraion, velocity, and distance equations. It's looks like your equations are correct.

As far as using data inputs, only data that exactly follows a constant jerk situation will work. I'm not sure how the failure modes with non-matching data will occur. An obvious case would be postive acceleration and velocity, but negative displacement, which wouldn't be possible with the given assumptions.

4. Jul 17, 2010

### DaTario

Since your acceleration is changing linearly with time you may say that

(vf - vi)/t = (af + ai)/2

From the first equation

c = (vf - vi)/t

substituting the two above in your second equation:

(af + ai)/2 = ai + (1/2)(af + ai)/2 t

then you can extract the t value and all the rest.

Best wishes

DaTario

5. Jul 19, 2010

### Grumple

Thanks for the input, rcgldr. What you are saying makes sense, although I think I am actually trying to do the reverse of what you are saying should work fine. Instead of calculating the constant jerk and elapsed time from a set of real world start and end metrics that I know works out, I am working with real world start point metrics, and arbitrarily chosen end point metrics. I am trying to come up with a solution to generate a constant rate of acceleration change over time that would have my object's velocity and acceleration both meet desired values at a real world displacement from start position.

As an example:
An object is moving in 1d towards a target point. The object will then be moving to an arbitrary second target point. An ideal velocity and acceleration has been calculated towards a 3rd point from the target the object is moving towards now. I need to calculate a constant jerk and elapsed time that would have it change its current vel and accel to the vel and accel that I want the object to be at the instant it arrives at target 1 such that it can seamlessly transition towards target 2.

I've done some playing with the math since posting, and as far as I can tell it is impossible to do this with just a constant rate of change for acceleration. For example, given all the known data above, I seem to be able to calculate any 2 desired metrics at the end point, but cant do that and have the 3rd as well.

So, for example, I think I can generate a rate of acceleration change and elapsed time that will let me arrive at my destination point with a desired end velocity, but not also at a specified end acceleration. I could also arrive at my destination point with a desired end acceleration, but not at the desired end velocity too.

If I want to lock my start velocity, start accel, end velocity, and end accel values I can seemingly generate a working jerk and elapsed time, but my distance has to become variable.

Does this make sense to you? Any suggestions on how to get all the desired metrics to converge at the current target displacement from a known set of start metrics? I am currently investigating ways to break the problem into two stages to create a 'flexible midpoint' so that I can satisfy all desired end metrics, but I'm definitely finding it to be a mind-bender. =)

Hi DaTario,

Could you clarify how you got c = (vf - vi)/t?

Thanks again!

6. Jul 30, 2010

### DaTario

If c is the uniform rate of change of velocity, I think it is correct to state this. Constant acceleration allows one to state c = (variation of velocity) / (interval of time)

Best wishes

DaTario