Distance travelled with constant increasing force

Click For Summary

Discussion Overview

The discussion revolves around the calculation of distance traveled under a condition of a force that increases linearly over time. Participants explore the implications of this scenario in the context of physics and programming, particularly focusing on the relationship between force, acceleration, velocity, and distance. The application is related to controlling the rotational movement of a camera, aiming for a smooth transition in the rate of turn.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • Neil introduces a model where force increases linearly with time, expressed as f = t * i, and seeks to find the corresponding distance traveled.
  • Some participants suggest that Neil's expression for acceleration may not be correct and emphasize the need to apply Newton's second law, F = ma, to derive acceleration.
  • There is a discussion about integrating acceleration to find velocity and then integrating velocity to find distance, with some participants providing mathematical formulations for these integrations.
  • Neil clarifies that the application involves controlling the rotational velocity of a camera, aiming for a smooth increase and decrease in the rate of turn.
  • Participants discuss the concept of an S-curve in angular acceleration, suggesting that it would require a time-dependent angular acceleration to achieve the desired effect.
  • One participant proposes a specific function for degrees of rotation over time, indicating how the rate of turn could be controlled to achieve a smooth transition.
  • There are corrections and challenges to earlier claims regarding the relationships between distance, velocity, and acceleration, with some participants asserting that the problem is more complex than initially presented.

Areas of Agreement / Disagreement

Participants express differing views on the correct formulation of acceleration and the appropriate methods for calculating distance. While some suggest integrating acceleration to find distance, others challenge the initial assumptions and formulations presented by Neil. The discussion remains unresolved with multiple competing views on how to approach the problem.

Contextual Notes

There are limitations in the assumptions made regarding the nature of the force and its impact on acceleration. The discussion highlights the complexity of the problem, particularly in relation to non-uniform acceleration and the need for precise mathematical modeling.

Who May Find This Useful

This discussion may be useful for software engineers, physicists, and anyone interested in the dynamics of motion, particularly in applications involving rotational movement and control systems.

nrowe
Messages
7
Reaction score
0
Hi,

First I should explain I am a software engineer and my knowledge of maths and physics has gapping holes.

I also appologise if I have posted in the wrong place.

Here is my problem, I have a known constant increase in my force
f = t * i

f = force
t = time
i = constant increase

so my acceleration becomes a = 0.5 * f * t^2. Producing a nice curved acceleration.

How do I now find distance travelled?

Thanks in advance for reading and please let me know if I should provide any more info.

Regards,

Neil
 
Physics news on Phys.org
What you have put down looks to be used for a constant force. You would also have to divide the whole right side by m.

You need an equation that describes in what manner the force is Changing with time, most likely.

Is there some equation F = Ma where a = 2(t^2)? or some other mathematical description?
 
Acceleration is proportional to force, unless the mass is changing. Newton's second law: F=ma. So, in your case, a=(i/m)t. I'm not quite sure where you got your quadratic acceleration from - if you can explain the derivation I might be able to comment.

To get to velocity from acceleration, you integrate with respect to time (you said your maths knowledge has holes - the integral of ax^n with respect to x is ax^{n+1}/(n+1) if a is a constant) and add on the velocity the object had at the start. To get to distance from velocity you integrate one more time.

Does that give you the tools you need?
 
Just to clarify: "i" is a number with a fixed value? E.g. i = 4 throughout the run of the program? If so, I will call it C because this notation is more typical for a constant. So you have a force that increases linearly with time: F = Ct

How did you get your expression for the acceleration? Unfortunately, I don't think it is correct. It's always the case that F = ma, so it would simply be a = (C/m)t.

Velocity is the derivative of position and acceleration is the derivative of velocity. Therefore, conversely, you would apply the opposite operation of a derivative (an integral) to go the other way. Velocity is the integral of acceleration:

$$v(t) = \int a(t)dt$$

Position is the integral of velocity:

$$x(t) = \int v(t)dt$$

So, to get position as a function of time, you would integrate the acceleration function a(t) = (C/m)t twice.

There are a couple of options. You could compute these integrals analytically (ie with pencil and paper) and get an expression for x(t) that you then put into your code. Or you could compute the integrals numerically (I.e. with the computer itself) by approximating each integral as a sum. Over a small time interval ##\Delta t##, the change in velocity is just the rate of change of velocity (acceleration) multiplied by the time interval. Add up all of these small changes to get the total change in velocity over the time range of interest:

$$\Delta v = \sum_i a(t_i) \Delta t $$

Where ##t_i## is the ith time step value. Actually, an integral is just the limit of this sum as delta t approaches 0 anyway. So, in your main loop of your code, if your time step size is called dt, you might compute the new velocity value at the current timestep from the old one like so:

v += a*dt

You could then compute the position values by "integrating" the velocity values in a similar way. This is not a good numerical integration method, but it might be good enough.

If I have misunderstood you, let me know and I will try again.
 
Thank you for your replies.

I am using it to set the rotation increment on a camera. I need to have a nice s curve on the increase of rate of turn and control the max rate of turn, I then need to be able to calculate the distance (number of degrees) to bring the rotation to a fininh so I can land on a target heading.

my first function decides if the cameras rotational Velocity needs to increase or decrease so for the first half of the max rate of turn
f = f + i
then for the second half (till max rate of turn is reached)
f = f - i

Rate of turn is at the same time increased by the force.

rateOfTurn = rateOfTurn + f

Then the plan was to calculate the time to reduce the rate of turn to 0, and to start the process when I was that distance from my target heading.

I welcome any other approaches, but I always hit a brick wall when I wanted a max rate of turn, an ease into it and to know the displacment.

Thanks again,

Neil
 
Distance traveled and the number of degrees traveled are different things.

related by D = theta*r

But you appear to just be interested in theta which would be the number of radians which is easily converted to degrees.

When you say and S-curve, you mean an angular acceleration that would create an S- shaped curve for angular velocity v. time? That would require an angular acceleration that also changes with time.

There are also a couple of different "S-curves" you could have for angular velocity in relation to time. I am assuming you want one that starts out slowly (small slopes) and increases to some maximum slope and then levels off again to some maximum angular velocity?
 
Thanks pgardn

Yes that's correct, so if the max rate of turn was 6 degrees a second then it would start to slow its increase after 3 degrees a second until it got to 6.
 
Thank you also cepheid

I need this to be faily fast as it will have to run for many objects and update every frame, not that i think it would be a problem but do you think since I explained the problem further that the method you suggested would be a good approach?

Neil
 
nrowe said:
Thanks pgardn

Yes that's correct, so if the max rate of turn was 6 degrees a second then it would start to slow its increase after 3 degrees a second until it got to 6.

So you would need a function like this degrees (t) = 6degrees(1/(1+(e^-t)))

If you use the above and started a t =-6 seconds and went to t= +6 seconds you would start off slowly, at time 0 (or after 6 seconds you would reach 3 degrees/ second) and then the last 6 seconds you would approach 6 degrees a second. This is just a simple example for you to play with. There are a number of different approaches depending on what rate you want this to change at. You could reach 6 degrees per second very slowly or get very close to starting at 0 degrees per second and reaching 6 degrees/second in 12 seconds.

Bottom line is I have given you one example of an equation you could use in which the angular acceleration changes over a 12 second time period ( I had you go from -6 seconds to 6 seconds just so you could plug in the numbers for yourself for t and see how it looks).

I may be shooting way below your math level but its just an example.
 
  • #10
thanks, I will give it a try first thing tomorrow and let you know how it goes.

Neil
 
  • #11
distance is a measure of change in position(x) = x1-x2
velocity is a measure of change in distance = v*t-v*t = x1-x2
acceleration is a measure of change in velocity = a*t*t - a*t*t = v*t-v*t = x1-x2

per Newton/per professor antonio rodriguze, dbcc (daytona 1994)
such that
x1-x2 = v(t1-t2) + a(t1-t2)(t1-t2)
oh and force = mass * acceleration... so acceleration = force/mass (Newton) != 0.5 * f * t^2
 
Last edited:
  • #12
michaelc187 said:
distance is a measure of change in position(x) = x1-x2
velocity is a measure of change in distance = v*t-v*t = x1-x2
acceleration is a measure of change in velocity = a*t*t - a*t*t = v*t-v*t = x1-x2

per Newton/per professor antonio rodriguze, dbcc (daytona 1994)
such that
x1-x2 = v(t1-t2) + a(t1-t2)(t1-t2)
oh and force = mass * acceleration... so acceleration = force/mass (Newton) != 0.5 * f * t^2

That is correct for uniform acceleration. This problem is more complicated than that.
 
  • #13
sophiecentaur said:
That is correct for uniform acceleration. This problem is more complicated than that.

Hold editing
excuse me:

x1 - x2= (Sum) [a0*t^(0) + a1*t^(1) + a2*t^(2) + ... + a_z*t^(z)]
z->infinity
 
  • #14
Thanks pgardn your a lifesaver.

I now have super smooth rotation controlled by a super efficient formula. Brilliant!

One question though. I can calculate stopping distance perfectly with maxrateofturn/2*t when at maxrateofturn. But if my rateofturn is lower what's my stopping distance?

(got a feeling my answer is in my question! so I will keep trying).

Thanks again,

Neil
 
  • #15
When you say stopping distance are you talking about a wheel, a flywheel, or what is rotating?

It should be fairly obvious if it is a wheel on the ground, then it depends on the radius of the wheel. A wheel with a radius of 0.1 m is not going to "travel" nearly as far as a wheel with a radius of 1 m given that both are using the same angular acceleration equation. Also in my example, I had you just go for 12 seconds just so you could plug and see numbers. But in reality this equation could be used over a long period of time in which you could end up doing close to "6 degrees a second" (which is not a distance in needs to be converted to distance after we know the radius) for a very large portion of your "trip". So t is important and how "you spread it out" is important.

In my example you would reach very close to 6 degrees/second after only 12 seconds. If you went another 12 seconds (ie from -6 sec to +18 sec) you would be traveling at an angular speed that is coming closer and closer to 6 degrees/second with very tiny changes in angular speed. The longer you go, the the smaller the rate of change of angular velocity (ie you are getting closer and closer to 6 degrees/sec). Now if you use -18 sec to +18 seconds you get a symmetric S (ie one end of the S is not super long)

There are ways to figure it out though. We need the time and we need r. And then we can do this.
BTW I am not a math guy by training I am a biochem guy. So we may need some help from other members once we get t and r...
 
Last edited:
  • #16
Sorry I was using bad terminology what I am after is the change in angle from the start of the deceleration.

So if I start this simulation

var headingDirection = 1;
var maxRateOfTurn = 36;

function onUpdate()
{
input = (headingDirection *12)-6;
headingVelocity=maxRateOfTurn*(1/(1+(Math.pow(Math.E, -input))));

headingDirection -= system.timerDelta;

object.rot = RotationMath.combine(new Rotation(0, headingVelocity*system.timerDelta, 0), object.rot);
}

My object starts with a heading of 0 degrees and turning clockwise at 36 degrees a second and will come to a stop with a heading of 18 degrees. (maxRateOfTurn/2)

So if I want to start my simulation with a heading velocity 3/4 of the max by setting headingDirection to start at 0.75, what will be my heading when I come to a stop?

Cheers,

Neil
 
  • #17
michaelc187 said:
Hold editing
excuse me:

x1 - x2= (Sum) [a0*t^(0) + a1*t^(1) + a2*t^(2) + ... + a_z*t^(z)]
z->infinity

Integral notation would be a better way of stating it, surely and that's been done near the start of this thread.
 
  • #18
nrowe said:
Sorry I was using bad terminology what I am after is the change in angle from the start of the deceleration.

So if I start this simulation

var headingDirection = 1;
var maxRateOfTurn = 36;

function onUpdate()
{
input = (headingDirection *12)-6;
headingVelocity=maxRateOfTurn*(1/(1+(Math.pow(Math.E, -input))));

headingDirection -= system.timerDelta;

object.rot = RotationMath.combine(new Rotation(0, headingVelocity*system.timerDelta, 0), object.rot);
}

My object starts with a heading of 0 degrees and turning clockwise at 36 degrees a second and will come to a stop with a heading of 18 degrees. (maxRateOfTurn/2)

So if I want to start my simulation with a heading velocity 3/4 of the max by setting headingDirection to start at 0.75, what will be my heading when I come to a stop?

Cheers,

Neil

Jeez... You said you come to a stop at a heading of 18 degrees?

In the equation I gave you... you don't come to a stop (ie 0 degrees/sec).

And also, if you want just the heading you are at end of a certain amount of time in degrees, you are going to have to integrate the equation.

Its like saying I got some complicated equation that describes my velocity thru time. I know what velocity I start at (analogous to your 36 degrees/sec), I know what velocity I will end at after this certain period of time (I don't see this given?). I also know where I started on the number line (this is analogous to you starting at 0 degrees).

Then the question is where do I end up on the number line? You integrate a velocity with respect to time equation to get a change in position with respect to time equation. Then you plug in all your givens and solve. In your case you do not care about the total number of degrees you have traveled, you just want where you end up...

So help me out here so I can help you.
 

Similar threads

  • · Replies 41 ·
2
Replies
41
Views
4K
  • · Replies 16 ·
Replies
16
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 24 ·
Replies
24
Views
4K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K