Acceleration through curved paths

In summary, the challenge presented is how to calculate and perform uniform acceleration for an object following a non-linear path with known starting and ending velocities, four points, and a center of a circle. The suggested approaches include using Bezier curves, defining R1-3 values, and creating a more natural curvature for the arcs. It is also recommended to resolve the challenge geometrically and to seek a mathematical approach. Additionally, it is stated that uniform acceleration may not be applicable, but the speed can vary uniformly as a function of time. The velocity vector will be tangent to the path, but its magnitude will grow at a constant rate.
  • #1
Cato11
46
11
I would really appreciate some help with a challenge I have. It is illustrated in the figure below:

Complex Motion.png

Scenario: The moving object moves with linear velocity until it reaches P1. When it reaches P1, I need to create the motion of the blue dashed path. Whilst the object follows the blue dashed path, it needs to uniformly accelerate from Velocity(start) to Velocity(end).

The following pieces of information are known:
  • Velocity (start), e.g. 5 m/s
  • Velocity (end), e.g. 10 m/s
  • The locations of the four points P1 - P4
  • The location of the centre of the circle
Can anyone please advise how I should go about calculating this path and how to perform the uniform acceleration? Clearly the linear acceleration equations do not apply here since it is not a straight line, but I am not sure how to make use of the angular accelerations since the object is not following a circular orbit.

What I have already tried:
  • Separating the path into three separate arcs using bezier curves. This has been partially successful - I can approximate the path but with constant speed. I do not understand how to achieve acceleration through the curves. Also, the bezier method uses additional control points to approximate the arcs; it would be better if I could define the R1-3 values and somehow achieve precisely that motion, but I do not know how to do this.
For some extra context, I am tackling this in software to create actual motion. It is not a homework assignment on paper etc. Any help or advice would be greatly appreciated!

Note: The figure is merely a sketch and thus the curving of the arcs is a rough approximation. In reality, the arcs should connect with a more natural curvature, without the abrubt changes in direction.
 
Last edited:
Physics news on Phys.org
  • #2
You will need to know the value of the radius of the circle, plus R1, R2 and R3.
You will have centripetal and tangential accelerations along that blue path.
 
  • #3
Lnewqban said:
You will need to know the value of the radius of the circle, plus R1, R2 and R3.
You will have centripetal and tangential accelerations along that blue path.
I do know the radius since I know the centre of the circle and the four points.

Knowing R1,R2,R3 is a bit more difficult. Since I am using Bezier curves, I am placing an additional control point for each arc some distance away to approximate the shape of the arcs and therefore R1,R2,R3. So these values are not actually known until the motion takes place. Perhaps using Bezier curves is a bad way of doing it? Ideally I would be able define the R1-3 values and then create the motion for those values specifically, but I know of no way to achieve this.

Do you know if there is a better way for creating the motion? And even if this was not an issue, which equations would adequately describe the accelerations you mention.
 
  • #4
The problem is not specific about the points of inflection, but at least P2 and P3 should not have the abrupt changes of direction shown in the picture.
If so, those points should be contained in a straight line that connects the centers of two contiguos semicircles.
 
  • #5
Lnewqban said:
The problem is not specific about the points of inflection, but at least P2 and P3 should not have the abrupt changes of direction shown in the picture.
If so, those points should be contained in a straight line that connects the centers of two contiguos semicircles.
You are absolutely right regarding the abrubtness of the changes in direction. The diagram is simply an approximate sketch and poor drawing on my part. In reality, the arcs should smoothly connect for a more natural curvature. I will update the OP.

That being said, do you have any comments on how to tackle the challenge?
 
  • #6
I would resolve it geometrically.
Perhaps other members could offer a mathematical approach pretty soon.
Is this for a computer simulation?
 
  • #7
Cato11 said:
That being said, do you have any comments on how to tackle the challenge?
1. Find the equation of the path you want.
2. Differentiate it twice.

Uniform acceleration will not give you what you want. It's outward at R1 and inward at R2.
 
  • Like
Likes PeroK
  • #8
Cato11 said:
Scenario: The moving object moves with linear velocity until it reaches P1. When it reaches P1, I need to create the motion of the blue dashed path. Whilst the object follows the blue dashed path, it needs to uniformly accelerate from Velocity(start) to Velocity(end).

As @Vanadium 50 suggests, a "uniform acceleration" vector does not apply since the directions are changing.
However, one can have the speed vary uniformly, as a function of time. So, the velocity vector is tangent to the path, but its magnitude grows at a constant rate as a function of time.

So, as @Vanadium 50 says, first find the equation that describes the path.
 
  • #9
robphy said:
As @Vanadium 50 suggests, a "uniform acceleration" vector does not apply since the directions are changing.
However, one can have the speed vary uniformly, as a function of time. So, the velocity vector is tangent to the path, but its magnitude grows at a constant rate as a function of time.

So, as @Vanadium 50 says, first find the equation that describes the path.

Yes you are both right, what I meant by uniform acceleration was ramping the velocity at a uniform rate, as a function of time. So the moving body starts P1 at Vstart and hits P4 at Vend.

I'm sorry if this is an elementary question but how should I go about finding the equation of the path? I assume it involves finding the angles of the various arcs?

@Lnewqban Yes it is for simulating motion in a 3D environment. A 2D co-ordinate system is fine though as the motion is viewed from top down and the vertical axis is frozen.
 
  • Like
Likes Lnewqban
  • #10
Technically, you want to ramp the tangential-component-of-the-velocity[-vector].

You mentioned that you wanted a smooth transition at [itex] P_1 [/itex], [itex] P_2 [/itex], etc...

It seems that a sequence of your Bezier curves could do that.

Is this a planar path that cuts through points on a circle?
 
  • #11
Is gravity involved at any point here? The circle isn't any kind of celestial body, is it?
 
  • #12
Gravity alone won't do this. (Of course if you are free to add another arbitrary force, you are free to add gravity too. It's just an unnecessary complication. Adding other bodies makes this even more complicated and constrained)

But...

If you want epicylcles, write down equations for epicycles and differentiate twice. If you don't like the acceleration that comes out, isn't that the fault of the problem?
 
  • #13
Cato11 said:
the equation of the path
Any smooth path from starting point to ending point will do.

With the path in hand you can consider its length and the egress energy to determine the required (constantly increasing) tangential acceleration to do that much work over that much tangential displacement.

With the path and the tangential acceleration in hand, you can determine position versus time and recover the required tangential acceleration as well.
 
  • Like
Likes Cato11
  • #14
Thank you everyone for the replies, I appreciate it.

@robphy As mentioned the bezier curves do allow a pretty good approximation. Here is a demo of my code running a bezier curve. It joins two discrete arcs to create a fairly smooth curving motion (it is not the same path as the OP but it illustrates the point of being able to create a curved motion):

Motion.gif


Essentially I compute a position using the formula:

pos =
oneMinusT * oneMinusT * p0 +
2f * oneMinusT * t * p1 +
t * t * p2;

where t is the elapsed time. However as mentioned, the speed is constant and I do not know how to get the yellow dot to accelerate between a "start" and "end" velocity as it performs the motion. Perhaps I need to find the second derivative of the above formula? I am simply not sure how I can create the ramp in a controlled manner. The other problem with the Bezier method is I cannot define the R1-3 values, since Bezier curves rely on additional control points to approximate the path. Ideally if I could create a precise path with my own R1-3 values that would be ideal.

@DaveC426913 No, gravity is not involved. We can consider this as a weightless object in free space, so that should hopefully simplify matters.

@Vanadium 50 I was not aware of epicycles so thanks for suggesting that. If it is a circular motion then I'm not sure it will help but after searching it, it looks like it deals with swirling paths so I shall try to investigate this a bit further. To be honest my calculus is a bit rusty!

@jbriggs444 I'm sorry but what you said went right over my head! Are there any equations that you can post to substantiate this? I think I get the gist of what you mean but I am not sure how to execute it in practice.
 
  • Love
Likes PhDeezNutz
  • #15
Cato11 said:
I'm sorry but what you said went right over my head! Are there any equations that you can post to substantiate this? I think I get the gist of what you mean but I am not sure how to execute it in practice.
I apologize. The relevant ideas are straightforward, but rely on concepts from vector calculus.

Consider an object on a defined path. A locomotive on a railroad track. A bead on a wire. A car on a highway. A bullet in a rifle barrel. Even a parcel of water in a garden hose.

We can ignore the curves that the path makes and consider only motion along the path. Position along the path. Velocity along the path. Acceleration along the path. Everything reduces to a one-dimensional problem.

If you know the energy with which the object enters the path (##E_1=\frac{1}{2}mv_0^2##) and the energy with which it leaves the path (##E_4=\frac{1}{2}mv_4^2##) then you know that the work done along the path is equal to the change in energy. That is the work-energy theorem. Or conservation of energy. Whichever way you like to think about it.

The work done along the path is the "path integral" of instantaneous force applied multiplied by incremental distance moved: ##W=\int_S \vec{F} \cdot \vec{ds}##.

Looking back at the original post, you want a constant tangential acceleration from one end of the path to the other. That means that F is a constant. So that means that the above integral simplifies to ##W=F \times L## where L is the length of your chosen path.

That means that position (along the path) will come from your first year SUVAT equations: ##s=v_0t +\frac{1}{2}at^2##
 
Last edited:
  • Like
Likes Cato11 and Lnewqban
  • #18
@jbriggs444 Thank you so much for taking the time to explain that. I did not know that we could reduce this to a one-dimensional problem using the SUVAT equations. That is quite a revelation! So effectively I need to find the path length 's', and solve your last equation for 'a' where V0 is the initial velocity and 't' is the time taken travel the entire path. This will give me the rate of constant acceleration. Have I got that right?

@robphy and @A.T. Thank you for sharing the link, approximating the length of the curve was going to be my next issue so that link helps a lot!

I will attempt to make some progress on this when I get home and report back the results. Thanks again for the help!
 
  • #19
Cato11 said:
@Lnewqban Yes it is for simulating motion in a 3D environment. A 2D co-ordinate system is fine though as the motion is viewed from top down and the vertical axis is frozen.
I have no idea about how the magic of animation is achieved.
Could you make your input equations work by using simple circles and polar coordinates in this problem?
Must the moving object hit point P1 perpendicularly respect to the circle?
Could R1, R2 and R3 be the radii of the circular paths rather than the distance to the big circle?
 
  • #20
Cato11 said:
@jbriggs444 Thank you so much for taking the time to explain that. I did not know that we could reduce this to a one-dimensional problem using the SUVAT equations. That is quite a revelation! So effectively I need to find the path length 's', and solve your last equation for 'a' where V0 is the initial velocity and 't' is the time taken travel the entire path. This will give me the rate of constant acceleration. Have I got that right?
You would solve for acceleration ##a## based on ##v_4^2-v_0^2=2as##. That particular SUVAT equation is one that I never bother memorizing because I always think about it in terms of work and energy ##\frac{1}{2}mv_4^2-\frac{1}{2}mv_0^2=Fs## (divide out ##\frac{1}{2}m## and *voila*).

With the acceleration in hand then you can then solve for ##t## using the other equation.

Alternately, you could realize that because acceleration is constant, average velocity is the mean of initial velocity and final velocity. So ##v_\text{avg} = \frac{v_0+v_4}{2}## and ##t=\frac{s}{v_\text{avg}}##. Then with ##t## in hand you can solve for ##a##.

As long as what you are concerned with is tangential acceleration then the one dimensional approach is fine.

If, instead, you want to keep the magnitude of total acceleration (radial and tangential combined) constant then the problem becomes much more difficult.
 
Last edited:
  • Like
Likes Cato11
  • #21
robphy said:
Possibly enlightening...
https://pomax.github.io/bezierinfo/
Also possibly enlightening
https://math.stackexchange.com/ques...ath-and-minimum-curvature-path-implementation
which links to https://www.sciencedirect.com/science/article/pii/S0045794908000163?via=ihub
and has a screenshot of a section at

https://en.wikipedia.org/wiki/Dubins_path

Once you construct the path you wish, then you can implement the ideas mentioned before by others:
you have a 1-D constant acceleration problem along the arc-length of the path.

It may be useful to parametrize your path by a parameter T which is 0 at P1 and 1 at P4.

(I was trying to implement your path in #14 in Desmos... but didn't have time to debug the error in my attempt.)
 
  • Like
Likes Cato11
  • #22
As I understand your problem, you are looking to solve for motion with a constraint like ##|\dot{\vec{r}}|=bt+c##.

You could take a polar parametrization like ##r(t)=R_0(1+d\sin{\theta(t)})##, substitute it into the polar form of the constraint, ##|\dot{\vec{r}}|=\sqrt{\dot{r}(t)^2+r^2\dot{\theta}(t)^2}=bt+c##, and then, probably numerically, integrate for ##\theta(t)##.
 
  • #23
Why do you want this?
 
  • #24
Cato11 said:
I would really appreciate some help with a challenge I have. It is illustrated in the figure below:

View attachment 290622
Scenario: The moving object moves with linear velocity until it reaches P1. When it reaches P1, I need to create the motion of the blue dashed path. Whilst the object follows the blue dashed path, it needs to uniformly accelerate from Velocity(start) to Velocity(end).

The following pieces of information are known:
  • Velocity (start), e.g. 5 m/s
  • Velocity (end), e.g. 10 m/s
  • The locations of the four points P1 - P4
  • The location of the centre of the circle
Can anyone please advise how I should go about calculating this path and how to perform the uniform acceleration? Clearly the linear acceleration equations do not apply here since it is not a straight line, but I am not sure how to make use of the angular accelerations since the object is not following a circular orbit.

What I have already tried:
  • Separating the path into three separate arcs using bezier curves. This has been partially successful - I can approximate the path but with constant speed. I do not understand how to achieve acceleration through the curves. Also, the bezier method uses additional control points to approximate the arcs; it would be better if I could define the R1-3 values and somehow achieve precisely that motion, but I do not know how to do this.
For some extra context, I am tackling this in software to create actual motion. It is not a homework assignment on paper etc. Any help or advice would be greatly appreciated!

Note: The figure is merely a sketch and thus the curving of the arcs is a rough approximation. In reality, the arcs should connect with a more natural curvature, without the abrubt changes in direction.
Sorry to come in so late BUT.,
It looks like the incoming path is meeting the circle (at P1) along a normal (perpendicular to the tangent).
Is that true, and is that also true for P2 , P3 and P4?
If that is true, the centre of each blue arc is at the intersection of tangents drawn at P1 & P2, P2 & P3 and P3 & P4.Is P4 intended to be opposite P1 (on opposite ends of a diametre)?
If so, are P1, P2, P3 and P4 intended to be 1/3 of a circle away from each other?

If all that is true, I think the length of the dotted blue line is 8.(sqrt3).pi,R/9 where R is the Radius of the black circle. (4 times the first dotted blue arc).

Is the dotted blue line in my graphic the sort of path you were after?
Circulsr paths.jpg


Peter
 
Last edited:
  • Like
Likes Cato11 and Lnewqban
  • #25
@jbriggs444 (#20) Thank you for the extra clarification!

@robphy (#21) I think what you mention is the real key here. I need to reparametrize the path with a new T between 0 and 1. I have found quite a lot of discussion on arc length parametrization. I spent about 6 hours on it yesterday without much progress (argh!). I will keep working on it and hopefully post the results back here soon.

@PeterO Yes you are correct about the P1 and P4 being 180 degrees apart. It looks like your path is the Dubins Path method someone else mentioned here earlier. The curvature of this path is not exactly what I was after, as the bulge of the centre circle is beyond what I was looking for. I think the bezier curve method works best, if I can only figure out how to properly reparametrize the spline (three separate arc curves joined together). Thank you for the suggestion though.

Thanks again to everyone who is offering their advice. My progress is slow but I will keep chipping away. I hope to post a full solution here soon.
 
  • #26
Cato11 said:
@jbriggs444 (#20) Thank you for the extra clarification!

@robphy (#21) I think what you mention is the real key here. I need to reparametrize the path with a new T between 0 and 1. I have found quite a lot of discussion on arc length parametrization. I spent about 6 hours on it yesterday without much progress (argh!). I will keep working on it and hopefully post the results back here soon.

@PeterO Yes you are correct about the P1 and P4 being 180 degrees apart. It looks like your path is the Dubins Path method someone else mentioned here earlier. The curvature of this path is not exactly what I was after, as the bulge of the centre circle is beyond what I was looking for. I think the bezier curve method works best, if I can only figure out how to properly reparametrize the spline (three separate arc curves joined together). Thank you for the suggestion though.

Thanks again to everyone who is offering their advice. My progress is slow but I will keep chipping away. I hope to post a full solution here soon.
Be careful, that bulge the centre circle might not be what you expected, or were looking for, but if you want P1, P2, P3 and P4 evenly spaced along a semi-circle, and you also want the transition from the initial incidence to the first curve, the first curve to the second curve, the second curve to the third curve, and the third curve to the exit trajectory to be completely smooth - that is the shape you are dealing with.
 
  • Like
Likes Lnewqban and Cato11
  • #27
Cato11 said:
Thanks again to everyone who is offering their advice. My progress is slow but I will keep chipping away. I hope to post a full solution here soon.
Knowing what you're actually trying to accomplish would go a long ways towards us helping you to find a solution.
 
  • Like
Likes bob012345, jbriggs444 and Vanadium 50
  • #28
hmmm27 said:
Knowing what you're actually trying to accomplish would go a long ways towards us helping you to find a solution.
My apologies, I thought I made that clear. What I am trying to accomplish is to get a moving object to uniformly accelerate from a define start speed to a defined end speed, as it travels through a curved path. The curved path is a spline comprised of multiple arcs. There can be two arcs as shown in my post #14, or three as shown in the OP. The shape of the curve shouldn't really matter as it should be changeable.

Based on people's feedback in this thread, my understanding is that I need to do a few things:

1. Find the total path length of the curve
2. Parametrize the path with a 'T' value between 0 and 1
3. Adjust my scaling of 'T' to accelerate from one speed to another

It seems that this is more of a math problem vs a physics one so I am struggling myself to fully understand where to go with this. My apologies if this reply doesn't help, I am in something of a quandary!
 
  • #29
Cato11 said:
Based on people's feedback in this thread, my understanding is that I need to do a few things:

1. Find the total path length of the curve
2. Parametrize the path with a 'T' value between 0 and 1
3. Adjust my scaling of 'T' to accelerate from one speed to another

My suggestion to parametrize from 0 to 1 is just so we know the beginning and the end, independent of how you design your curve. Presumably the parametrization is just the arc-length divided by the total arc-length.

I think the biggest problem is to first design your curve, as you say, as a spline of multiple arcs.
If I recall correctly, you want the arcs to join with common tangents at the boundary circle.

I presume you want some movable intersection points on the boundary.
Maybe you want to specify the tangent lines of the trajectory at those boundary points.
Then determine the curve from those constraints.
 
  • Like
Likes Lnewqban
  • #30
Cato11 said:
My apologies, I thought I made that clear. What I am trying to accomplish is to get a moving object to uniformly accelerate from a define start speed to a defined end speed, as it travels through a curved path. The curved path is a spline comprised of multiple arcs. There can be two arcs as shown in my post #14, or three as shown in the OP. The shape of the curve shouldn't really matter as it should be changeable.

Based on people's feedback in this thread, my understanding is that I need to do a few things:

1. Find the total path length of the curve
2. Parametrize the path with a 'T' value between 0 and 1
3. Adjust my scaling of 'T' to accelerate from one speed to another

It seems that this is more of a math problem vs a physics one so I am struggling myself to fully understand where to go with this. My apologies if this reply doesn't help, I am in something of a quandary!
What is still not clear (at least to me) is if the object is physically constrained to move along this curved path or are you independently controlling the objects motion to force the acceleration to be uniform and how? Also, if we had a clue as to why you are doing this it may help as well. Is this just an academic exercise or is there a point to it?
 
  • #31
Take a piece of string, lay it out along the path, measure it, then apply :

$$a = \frac{v_{end}^2- v_ {start}^2}{2d}$$
 
  • #32
@robphy I think you are right, I have underestimated the the complexity of this problem it seems. I didn't think that the shape of the path was particularly important but clearly it is. I think I need to go back to the drawing board and rethink this problem. That being said, I appreciate everyone's help as it has given me a lot of food for thought. I do apologise for not articulating the problem more clearly, I will try to do better in future.

@bob012345 The object is not constrained in any way, I am the one trying to force it to move along this path and I am the one controlling the acceleration. It is for a personal animation project that I am working on, so there is a point. I think that I need to go back to the beginning and properly formulate the path, before thinking about the acceleration.

In the meantime I would like to thank everyone for their help.
 
  • Like
Likes bob012345 and Lnewqban
  • #33
Cato11 said:
...@PeterO Yes you are correct about the P1 and P4 being 180 degrees apart. It looks like your path is the Dubins Path method someone else mentioned here earlier. The curvature of this path is not exactly what I was after, as the bulge of the centre circle is beyond what I was looking for. I think the bezier curve method works best, if I can only figure out how to properly reparametrize the spline (three separate arc curves joined together).
The excellent graph done by @PeterO and shown in post #24 is the geometrical thruth about this problem.
The length of the middle trajectory or bulge of the center circle must always be greater than the other two.

Less severe difference could be achieved with reduced angle of incidence of the intial straight trajectory (less than perpendicular, or by reducing the length of the middle arc of the big circle respect to the other two.

It just occurred to me that in order to reduce the visual difference some and to avoid the many radii of spline lines, you could replace those three circles with three ellipses.
 
  • #34
Lnewqban said:
The excellent graph done by @PeterO and shown in post #24 is the geometrical thruth about this problem.
The #24 graph assumes a path of equal radii circle arcs, but it's (almost) as easy to use differently-sized circles for the satellites.

What's interesting (to me, anyways) is that all the angles incident to the main circumference will be the same, no matter what differing radii the satellite arcs are.
Lnewqban said:
The length of the middle trajectory or bulge of the center circle must always be greater than the other two.
In that graph, they're identical. [edit : and it appears I've lost track of the path a bit]
 
Last edited:
  • #35
It seems to me that since this is a computer animation the curve does not have to be mathematically continuous. For example, when it reaches point ##P_1## you define a new center of motion and let it be a circular arc through ##P_1## and ##P_2##. Do the same for the other arcs. Then you know the path and you can make it have an uniform angular acceleration along each arc. All you need to do is define the center point for each arc and for that you can use a geometry program such as this;

https://www.geogebra.org/geometry?lang=en
 
  • Like
Likes Lnewqban
Back
Top