Calculating the Acceleration of a Golf Ball Flight

  • Context: Undergrad 
  • Thread starter Thread starter Paul7
  • Start date Start date
  • Tags Tags
    Ball Flight Golf
Click For Summary

Discussion Overview

The discussion revolves around calculating the acceleration of a golf ball during its flight, focusing on the forces acting on the ball, including drag and Magnus forces. Participants explore methods for resolving these forces into components and integrating them into a computer simulation.

Discussion Character

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

Main Points Raised

  • One participant seeks assistance in resolving forces into component form to calculate the acceleration of a golf ball, mentioning the forces involved.
  • Another participant asks for equations related to drag and Magnus forces based on velocity.
  • Clarification is provided on the Magnus force, which is described as acting perpendicular to the velocity and dependent on the ball's spin.
  • Participants discuss the need for angles to resolve forces and suggest using trigonometry based on the initial launch angle.
  • One participant presents equations for calculating Magnus and drag forces, expressing uncertainty about resolving these forces without knowing angles.
  • Another participant suggests using a numerical method to update the ball's position and velocity iteratively, emphasizing the importance of the initial launch angle.
  • There is a discussion about the implications of changing angular velocity and its effect on the ball's trajectory, with some participants questioning whether angular velocity should decay over time.
  • One participant expresses confusion about vector notation and the meaning of certain terms, prompting further clarification from others.
  • Another participant introduces the concept of wind drift and its relation to various factors, including air density and wind velocity.
  • One participant reports difficulties in implementing the equations correctly, describing unexpected oscillatory behavior in the ball's flight path.

Areas of Agreement / Disagreement

Participants generally agree on the importance of resolving forces into components and the role of the Magnus force, but there is no consensus on the best approach to handle angular velocity or the specifics of the simulation implementation. Multiple competing views on these aspects remain unresolved.

Contextual Notes

Some discussions involve assumptions about the constancy of forces and the need for specific initial conditions, which may not be universally applicable. The conversation also touches on the complexity of integrating various forces over time, which may depend on the chosen numerical methods.

Paul7
Messages
14
Reaction score
0
I am currently trying to create a computer simulation of the flight of a golf ball and am having difficulties in calculating the acceleration of the ball.

The following forces are applied to the ball:

http://www.3dreal.co.uk/project/phys.jpg

I know how to calculate the forces but am unsure as how to resolve the forces into component form and then calculate the acceleration of the ball?

Thanks Paul
 
Last edited by a moderator:
Science news on Phys.org
Do you have equations that yield the drag and magnus given a certain velocity? The drawing only illustrates the orientation of the forces relative to the velocity.
 
"Magnus"? What is "magnus"?



You will need to know the strength (magnitude) of each force as well as its angle with respect to a specific direction. If you can get the angle with respect to the horizontal then it should be simple trigonometry to get horizontal and vertical components.
 
Am calculating the magnus force or uplift force using:

Fm = (2PI^2 * p * v * r^4 * w) / 2r

were p = density of air, r = radius, w = angular velocity, v = velocity

The drag is calculated using:

Fd = 0.5 * cd * p * area * v^2

where cd = drag coefficient, area = cross sectional area

The diagram just shows for a particular position during flight. The magnus force is always perpendiclur to the velocity and the drag always opposes the velocity.

My problem is resolving the forces into an X and Y component and calcuating the net force. I think I could do this if I knew the angles but I don't think I do. Is there any way to do this without knowing the angles?
 
In your simulation, surely you know the inital angle at which the golf ball is fired into the air, right?

Let that angle be alpha... in the very first moment of the flight, the drag force is alpha degrees below the X axis, the magnus force is alpha degrees to the left of the Y axis, and the gravitational force is on the Y axis.

\Sigma F_x = F_m\sin {\alpha} + F_d\cos {\alpha}
\Sigma F_y = F_m\cos {\alpha} - F_d\sin {\alpha} - F_g

Now you use Pythagoras to find the net force, and the angle of the force is given by:
\tan {\theta} = \frac{\Sigma F_y}{\Sigma F_x}

So you know the momentary acceleration of the ball. Use that to calculate the new velocity of the ball, and you would have the new alpha, and this whole thing would happen all over again.
 
Originally posted by Paul7
My problem is resolving the forces into an X and Y component and calcuating the net force. I think I could do this if I knew the angles but I don't think I do. Is there any way to do this without knowing the angles?
No, you have to know the angles. But you should know the first set of angles and be able to calculate the rest [like Chen was saying].

I assume you are doing some sort of step method here, calculating everything every 1/100 of a second or so. Since you know the launch angle, you have the entire first set of decelerations. Find the resultant and calculate the position after 1/100 of a second assuming all those decelerations are constant (over such a short time period, they are very nearly constant). Now calculate the angle between the first and second positions.

Are you familiar with http://www.teachers.ash.org.au/mikemath/calcnumNewton/ for numerical solving of equations?
 
Last edited by a moderator:
Let \vec{v} be the 3-dimensional velocity vector.
Let \Delta{t} be the time since the last update(frame) of the simulation.
Let m be the mass of the ball.
Let \vec{v}\prime be the new updated velocity vector.

Now \vec{v}\prime=\vec{v} -

(\frac{\vec{v}}{\|\vec{v}\|}\frac{\frac{1}{2}c_{d}\|\vec{v}\|^2\Delta{t}A\rho}{m}) -

(g\vec{k}\Delta{t}) +

(\frac{\vec{v}\times(\vec{k}\times\vec{v})}{\|\vec{v}\times(\vec{k}\times\vec{v})\|} \ \frac{2\pi^2\rho\|\vec{v}\|r^4\omega\Delta{t}}{2rm})
 
Last edited:
Sorry if my post was messy, I was in a rush. I forgot to mention that at some point (namely, immediately after the Y component of the velocity equals zero) your angle alpha will become negative. When this happens \sin \alpha will also be negative, which means both F_m and F_d will too change their signs.
 
Last edited:
Thanks a lot for the help

Dont no if am being a bit dumb but what's the K vector in Palpatine's equation? and also would I solve this three times once for X, Y, Z coordinates?
 
Last edited:
  • #10
k is the unit vector in the z (up direction) <0,0,1>
 
  • #11
If you have a vector library you only have to do it once and adapt your drawing code or whatever to use the coordinates in the vector object.

Remember the new position vector is the old one + old velocity vector * (delta t).
 
  • #12
Originally posted by Palpatine
k is the unit vector in the z (up direction) <0,0,1>
I'm sorry but I don't understand is how:

\frac{\vec{v}}{\|\vec{v}\|}

Gives you the direction of the velocity vector. I'm genuinely interested because I only recently picked up vectors in mathematics. :smile:

Ah wait, is it because:

\frac{\vec{v}}{\|\vec{v}\|} = \frac{\|\vec{v}\|\cos \theta}{\|\vec{v}\|} = \cos \theta
 
Last edited:
  • #13
A vector of length 1 multiplied by a constant is the same as scaling the vector with that amount. Consequently its also the same as making the length of the vector the same as the amount you multiplied it with.

Thus if you divide a vector by its magnitude ( ||v|| ), it yields a vector of length 1 (unit vector) in the direction in which v is pointing.
 
  • #14
Also note where it multiplies vectors it means cross product and also that you must do it in the order specified because v x u is not equal to u x v
 
  • #15
You can also get wind drift as a function of time by using the following equation:

Drift = wind velocity * sin theta [t - (range/initial velocity)]

theta is the angle of the crosswind
range is the horizontal distance the ball has traveled at time t

Please note that at lower velocities the drag is NOT proportional to the square of velocity. This is done with numerical integration. Wind drift is proportional to wind velocity. Also note that corrections for elevation (msl) of the golf course and temperature are simply a function of the air density. Wind drift is also proportional to air density. I have much more information; if you need it, say so.

Hope this helps you. -Mike
 
Last edited by a moderator:
  • #16
Originally posted by HallsofIvy
"Magnus"? What is "magnus"?


If you're still interested and nobody's mentioned it yet, the Magnus force, named for the guy who first demonstrated it, shows up whenever you have a spinning object in a fluid. It's similar to normal aerodynamic drag in that it is caused by a pressure difference defined by the shape of the boundary layer of the moving object. The spin deflects the wake so that instead of having a front-to-back pressure difference, the pressure difference will be across the ball. As mentioned, the Magnus force acts at a right angle to the forward motion of the object. It's the explanation for the curve of a curve ball.

Here's a site with a blurb on it.

Paul7: In your calculation of the Magnus force, are you assuming a constant &omega; or do you have some model where the spin rate decays? Hope your simulation is up and running...
 
  • #17
Tried implenting this using Palpatines equation but still can't get it to work right. The ball starts off correct initially then reaches a maximum height and then carries on going up and down in a sin wave like motion and never comes back to the groud.

I don't know as to whether the angular velocity should be reduced or not. If I just reduce it by a certain amount each time step the flight looks a lot better although the ball does not travel as far as it maybe should.

Is there any other forces applied to the ball that reduce the angular velocity? maybe I should just reduce it by a constant value or maybe base it on another factor? In both situations the ball also flies a lot higher than it should.

Once the ball is hit the initial values for the forces are 3N for the magnus and 1.4 for the drag, do these seem ok?


"Please note that at lower velocities the drag is NOT proportional to the square of velocity"

Could this be causing a problem. Should I change the equation when the velocity goes below a certain threshold?

Thanks a lot for your help
Paul
 
  • #18
Try this website:
www.aeroballisticsonline.com

There are a couple of typos in the charts, but they're pretty obvious so they probably won't give you any problem. This site deals with velocities that are higher than what you need, but it should help you quite a bit. The math for these problems is cumbersome, but this is the method currently in use (numerical integration). The coefficient of aerodynamic drag varies greatly with velocity in high powered rifle bullets especially near mach 1. It won't change anywhere near as much for your golf ball. I said that the drag was not proportional to the square of velocity; it is also not directly proportional to velocity. It lies in between the two.
www.remington.com[/url] has a 30 day free trial on ballistics software. Also, try [PLAIN]www.eskimo.com/~jbm or www.snipercountry.com I've done a lot of shooting, and I have a good working knowledge of the practical application of these concepts. If I can be of any further help to you, let me know.

-Mike
 
Last edited by a moderator:
  • #19
Ideally I don't particulary want to deal with all sorts of numerical integration. The simulation needs to run in real time so the fewer calculations needed the better. Is there any type of approximations that would produce the required results. It doesn't have to be 100% physically accurate just look as near the the real thing as possible.
 
  • #20
I'm not an expert on computers or golf. If I knew of an easier way to solve your problem, I would certainly tell you about it. The math isn't difficult, just a little time consuming. -Mike
 
  • #21
You might ask Russ Watters for a short cut or a swag, I'm sure he is pretty sharp on air flow at low velocities. But, be forewarned, he is also "afflicted with mathematics" and probably won't be too sympathetic about you not wanting to do numerical integration
-Mike
 
Last edited by a moderator:
  • #22
Paul7,

Would you mind posting some of your pseudocode and/or the actual code you're using (also what language you're using)? If so, I'd be willing to take a look at it for you (without speaking for others, I'm sure they would too).
 
  • #23
Thanks a lot Jamesrc that'd be great. My code can be found at:

http://www.3dreal.co.uk/project/code.txt

Its written in C. Should be pretty easy to follow even if your not familiar with it. The idle function is part of OpenGl that is used to update the display as often as possible but don't really need to worry about that.

If it is run just using the gravitational and drag contribution it works fine. Its when I add the magnus force that the flight goes crazy!

Thanks Paul
 
Last edited by a moderator:
  • #24
Code:
w = Simulation.rps;
The RPS is the frequency of the rotations of the ball, it's not the angular velocity.

\omega = 2\pi f = \frac{2\pi}{T}

So the code should read
Code:
w = 2 * PI * Simulation.rps;

(If the balls rotates twice per second, the period of its rotations (T) is 0.5 second, i.e it takes him half a second to rotate fully. If the ball rotates fully in half a second, a given point on it traverses 360 degrees (2\pi radians) in half a second. From there we find the angular velocity.)
 
Last edited:
  • #25
The simulation.rps is already in radians per second, its defined in another section of code earlier. Its not very clear sorry!

Simulation.rps = (2 * PI * 3000) / 60;

where 3000 is the initial rpm.
 
  • #26
Sorry, I thought RPS was Rotations Per Second and not Radians Per Second. Anyway, this value doesn't stay constant, does it? Where's the part that you modify its value?
 
  • #27
Yeah I know that's the thing, I`m not entirely sure on this. I've tried just reducing it by a constant value which gives okish results but the ball doesn't travel any where near far enough and is far too high. For example it should really go about 200m where mine only goes about 100m and it should be about 20m high, mines about 50m.

How would you best suggest I affect it?
 
  • #28
If it goes too high and too short, the constant deceleration of the angular velocity is probably too small. Try increasing it and see how the results change. I have not studied rigid body physics (yet), so someone else will need to answer that question, although I'm going to do some searches and maybe find something... :smile:
 
  • #30
The magnus force is always perpendicular to the velocity, right? This means that the work it does is 0, since the the angle between the force and the road is 90 and cos(90) is 0. So if it does no work, it also can't be held responsible for any changes in the ball's energies, kinetic or otherwise. The rotational energy should be:

\frac{1}{2}I\omega ^2

So in fact, the magnus force does not increase or decrease the ball's angular velocity, since that would change its rotational energy as well.

As I said I did not study rigid body physics so I'm not sure how right this is, so if anyone wishes to correct me please do.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 25 ·
Replies
25
Views
4K
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 9 ·
Replies
9
Views
6K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K