Jump to content
  • Advertisement
Sign in to follow this  
Fransoa

Shuttlecock trajectory

This topic is 4542 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, I would like to simulate a badminton shuttlecock trajectory. I have found a phD thesis about this and i got the following Equation of Motion : m PLUS Dcos(teta) PLUS Lsin(teta) = 0 mÿ PLUS Dsin(teta) MINUS Lcos(teta) PLUS mg = 0 WHERE L Lift force and L = 1/2(ro*v²*S*Cd) D Drag force and D = 1/2(ro*v²*S*Cl) teta Angle between velocity vector and horizontal m Shuttlecock mass y Vertical distance ro Air density S Square of maximum shuttlecock skirt diameter Cd Aerodynamic drag coefficient Cl Aerodynamic lift coefficient v Shuttlecock velocity How can I get coordinate values(x,y) of the shuttlecock over the time ? I know it's about differential equation, but because of my poor mathematics knowledges I can't find the solution. Maybe somebody can guide me o how to proceed ? Thank you Fransoa

Share this post


Link to post
Share on other sites
Advertisement
Well, fortunately for you your solution is computational.

You'll probably use discrete increments of t. You'll perform the following steps:
1. Calculate forces
2. Apply forces to velocity
3. Apply velocity to position

#3 is the easiest. You'll have three equations:

x += vx * t;
y += vy * t;
z += vz * t;

#2 isn't too hard either:

vx += fx/m * t;
vy += fy/m * t;
vz += fz/m * t;

#1 is the one that confuses most people:
fx = fy = fz = 0;
fx = Cd * vx * vx;
fz = Cd * vz * vz;
fy = m * g + (Cl + Cd) * vy * vy;

where
x,y,z are positions
vx,vy,vz are velocities
fx,fy,fz are forces
m is the mass
g is gravitational acceleration. If your units are in meters, this is -9.8
Cd is the drag constant. It is the air density * area of the shuttlecock * some tuning factor / 2. It should be less than 0.
Cl is the lift constant. It is the same thing as Cd, except positive, and with a different tuning factor. It should be very close to abs(Cd).

x,y,z will start at 0.
vy will start > 0
vx,vz will be whatever you like.

Typically, Cd and Cl should be small.

Share this post


Link to post
Share on other sites
First, thank you for your very fast answer.

I am trying to understand how you can get to that result, sorry to bother you...

Could you give me some more explanations about :

"#1 is the one that confuses most people:
fx = fy = fz = 0;
fx = Cd * vx * vx;
fz = Cd * vz * vz;
fy = m * g + (Cl + Cd) * vy * vy;"

Why does Cl appears only for fy ?
In my equation there is teta, because incidence of the shuttle has to be taken into account, is it included in your "some tuning factor" ?

More I also have an equation for teta....

Thanks
Fransoa


Share this post


Link to post
Share on other sites
Well, Cl is the coefficient of lift, and it only really affects your height (therefore y) in this case. It is really the same principle as drag, which is why the equations are so similiar.

Theta is the angle of inclination from the ground at which the shuttlecock is launched. This would be incorporated into the starting values for vx,vy, and vz. You could decide the original vx,vy,vz by setting
vx=v*cos(theta)*cos(phi),
vy=v*sin(theta)*cos(phi),
vz=v*sin(phi)

or in 2 dimensions
vx=v*cos(theta)
vy=v*sin(theta)

Where v is the total velocity

Share this post


Link to post
Share on other sites
Sorry but i am a little bit confused.....reading your advice and reading the thesis. You can find it here : http://www.thnwb.com/cookeassociates.com/thesis.zip

Could you have a look at the Chapter 3 ???

Are you ok to start from the beginning ?
How is it possible to get the first equation ?

m + Dcos(p) + Lsin(p) = 0

L Lift force and L = 1/2(ro*v²*S*Cd)
D Drag force and D = 1/2(ro*v²*S*Cl)
m mass
p angle of inclination

Could you explain me how to get the following one ?
mÿ +Dsin(p) +Lcos(p) +mg = 0

Thanks
Fransoa

Share this post


Link to post
Share on other sites
These two equations, if you notice at the bottom, are for steady state. That means that no additional forces are acting on the shuttlecock, and the the forces that are acting on the shuttlecock sum to 0. Therefore, the shuttlecock continues at its unaltered velocity. This isn't necessarily what you want, but it gives you a good starting point.

The equations start with a tallying of forces:
my:, where y: is the second derivated of y wrt t. It is equivalent to accleration a.

D sin(theta) is the drag force, which they take to only act in the forward direction. Theta is the angle of inclination, and because this is a sine factor, then this force is maximize when motion is all forward, and 0 when the motion is straight up.

L cos(theta) is the lift force, which acts in the up direction. It is really the same thing as drag, only it forces the shuttlecock up due to its shape. Because it is a cosine, then lift is maximize when motion is upward, and zero when motion is forward.

mg is the force of gravity.

The equation is set to 0 to find a stable condition.

The first equation can be found by integrating this equation several times to find appropriate starting conditions.

The equation of motion you want is this:
my - Dsin@ + Lcos@ = 0
y = (D/m)sin@ - (L/m)cos@

[Edited by - erissian on January 11, 2006 5:09:02 PM]

Share this post


Link to post
Share on other sites
Ok I better understand. But with this equation I can only get y. How can i make x and t appear in an equation from y = (D/m)sin@ - (L/m)cos@ ???

I know it's basic question, but I need to understand....

Also, if you look at the chapter 4.2 The Trajectory Prediction, it says they created a computer program to plot the trajectory, using Runge-Kutta algorithm based on those equations i told you. Why are they doing this if those equations are wrong ? So what are they doing exactly ?

And also there is an angular equation of motion, do you think it could be useful or should i use the velocity vector to set the orientation of the shuttlecock ?

Thanks for the course
Fransoa

Share this post


Link to post
Share on other sites
Well, I would treat this with vectors.
I would sum the forces:
fy = -m*g - D*vy*vy + L*vy*vy;
fx = -D*vx*vx; // No gravity or lift

Then I would adjust the velocities:
vy += fy * t / m;
vx += fx * t / m;

Then I would adjust the positions:
y += vy * t;
x += vx * t;

A good number for these would be around
D = 0.5 * air_density * area * coefficient_of_drag
= 0.5 * 1.2 * 0.0025 * 0.48;
= 7e-4;
L should be about 70% of that, so
L = 5e-4;

So you could rewrite fy as:
fy /*= (L - D)*vy*vy - mg */ = -2e-4*vy*vy - mg;
fx = -7e-4*vx*vx;

Share this post


Link to post
Share on other sites
Ok I have used this method and the shape of the trajectory I plot looks good, however for a high clear starting at 47 m.s-1, the birdie comes to y=0 for x=66 meters, isn't that strange ???

Does that come from the drag force that should be higher ??

Here are the values I have used :

Cd 0,48
Cl 0,35
D 0,001331712
L 0,00097104
t 0,005 s
@ 0,628318531 rads
v 47 (m.s-1)
m 0,049 (kg)
g 9,8
x0 0
y0 3

Thanks
Fransoa

Share this post


Link to post
Share on other sites
Well, you can always solve it without drag and lift to get a sanity check.

Using x = x0 + v0t + at2

Solving for t using y:
0 = 3 + 47 * sin(0,628318531) * t - 9.8 * t2
0 = -9.8t2 + 27.63t + 3

Using the quadratic equation:
t = [-27.63 - sqrt(27.632 + 9.8 * 4 * 3)]/[-9.8*2]
t = 2.92 s

This is the time when the shuttlecock lands. To find out how far it goes:
x = x0 + v0t + at2
x = 0 + 47 * cos(0,628318531) * (2.92) + 0 * 2.922
x = 111 m

So with those starting conditions, neglecting air effects, the shuttlecock would travel 111 meters. So 66 meters with air resistance seems reasonable after all.

[Edited by - erissian on January 12, 2006 3:15:29 PM]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!