Download - Lab 6: Projectiles

Transcript
Page 1: Lab 6: Projectiles

Lab 6: ProjectilesCS 282

Page 2: Lab 6: Projectiles

Review of projectile physics Examine gravity projectile model Examine drag forces

◦ Simulate drag on a projectile Examine wind forces

◦ Simulate wind affecting a projectile

Overview

Page 3: Lab 6: Projectiles

Acceleration◦ F = ma

Translational velocity and state◦ dv/dt = a , ds/dt = v

Rotational acceleration◦ torque = inertia * rotational_acceleration

Equations of motion are separated into directional components

General Concepts

Page 4: Lab 6: Projectiles

Let’s use Cartesian Coordinates for simplicity

Reference Frame

Page 5: Lab 6: Projectiles
Page 6: Lab 6: Projectiles

Fx = 0 Fy = -mg Fz = 0

Gravity-Only Projectile Model

vx = vx0 vy = vy0 –gt vz = vz0

ax = 0 ay = –g az = 0

Page 7: Lab 6: Projectiles

Please sit next to your partner (if possible)

Download the framework code for today◦ Available on the class website

Examine the projectile class◦ Look at the gravity_model function◦ !!!! Fill in the missing update y-position !!!!

Compile and run◦ If necessary, WASD2X translates the camera (use at your

own risk though )◦ ENTER toggles the simulation ON/OFF

Exercise 1: Setting Up

Page 8: Lab 6: Projectiles

Hopefully, you have come up with something like (without cheating) this…◦ position.y + vy *dt+ 0.5*g*dt2

For this lab, let’s just assume there’s a golf club (or something) is hitting that projectile

So, Gravity-Only models are…◦ Really easy to implement◦ Feasible to analytically solve◦ Really unrealistic looking

Exercise 1: Setting Up

Page 9: Lab 6: Projectiles

The only force on the projectile is gravity◦ Only acts on the vertical (or the y) direction

The motion in the three directions is independent. ◦ What happens in the y-direction , for example,

does not effect the x- or z-directions The velocity in the x- and z-directions is

constant throughout the trajectory The shape of the trajectory will always be a

parabola

Summary: Gravity-only model

Page 10: Lab 6: Projectiles

Let’s Spice Things Up!

Page 11: Lab 6: Projectiles

What is drag?◦ The resistance that air or any other type of gas

exerts on a body traveling through it. Drag directly resists velocity

◦ X, Y, and Z velocities

Aerodynamic Drag

Page 12: Lab 6: Projectiles

Drag has two components◦ Pressure drag: Caused by the differences in

pressure between the front and back of the object◦ Skin drag: As the projectile is moving through

space, friction is created between it and the gas

Drag: Overview

Page 13: Lab 6: Projectiles

The drag coefficient, Cd, is a scalar used to evaluate drag force.

The shape of an object greatly affects how much drag affects it.

Drag Coefficient

Page 14: Lab 6: Projectiles

Examine the projectile class◦ You will notice a function called “drag_model”

This is where you will drag will be implemented◦ You will also notice several data members in the

class that are related to drag.

Part of the drag_model function should look suspiciously familiar.◦ Indeed, it is our favorite Runge-Kutta method!

Or at least, a fragment of it…

Exercise 2: Implementing Drag

Page 15: Lab 6: Projectiles

The goal for this exercise is to finish the rest of the Runge-Kutta approximation of drag.◦ The first step of runge-kutta is provided for you

Here are some relevant equations:◦ Fx = -Fd (vx/v) Fy = -mg -Fd (vy/v)◦ Fz =- Fd (vz/v)

The force due to drag is◦ Fd = ½ p *v2 *A *Cd◦ 0.5 * density * velocity2 * cross-area * drag coeff.

Exercise 2: Implementing Drag

Page 16: Lab 6: Projectiles

First , finish steps 2 through 4 of the Runge-Kutta procces◦ Use step 1 and the equations as a reference

Be careful! Because we have more than one velocity (as opposed to just x-velocity last time), you will have k’s for each component

Don’t forget to average your k’s before you add it to the velocity, and update your position.

Exercise 2: Implementing Drag

Page 17: Lab 6: Projectiles

Drag force acts in the opposite direction to the velocity. The magnitude of the drag force is proportional to the square of the velocity

Drag causes the three components of motion to become coupled (i.e x depends on y and z)

The drag force is a function of the projectile geometry and is proportional to both the frontal area and drag coefficient of the projectile

Summary: Aerodynamic Drag

Page 18: Lab 6: Projectiles

The acceleration due to drag is inversely proportional to the mass of the projectile. Other things being equal, a heavier projectile will show fewer drag effects than a lighter projectile.

The drag on an object is proportional to the density of the fluid in which it is traveling.

Summary: Drag (end)

Page 19: Lab 6: Projectiles

And like Reno’s Weather…

Page 20: Lab 6: Projectiles

Now that we have drag, it will be relatively easier to add wind into our simulation.

The presence of wind changes the apparent velocity seen by a projectile

Getting Windy?

Tail-wind adds to the velocity of the object.

Head-wind subtracts from the velocity

Page 21: Lab 6: Projectiles

Luckily for us, since we’ve implemented drag already, it will be easy to add wind.◦ You may have already noticed a function, as well

as parameters, hiding in the projectile class relating to wind.

First of all, let’s keep all the work we did for drag. Go ahead and copy paste the contents of the function into the blank function “drag_wind_model”

Exercise 3: Wind

Page 22: Lab 6: Projectiles

Now, all we have to do is subtract the wind’s velocity components from each section of the Runge-Kutta steps

Tail-winds will have negative velocity, thus increasing our end velocity

The reverse for head-winds

Exercise 3: Wind

Page 23: Lab 6: Projectiles

Save your finished product somewhere.◦ Perchance commit it to a repository?

You will be needing this for next week when we add on…◦ Spin◦ Different shaped objects◦ Mystery?

That’s all Folks!

Page 24: Lab 6: Projectiles

Plot the differences between the following combinations on a graph (position vs. time)◦ Gravity only◦ Gravity and drag◦ Gravity and tail-wind◦ Gravity, head-wind, and drag

Not due next week, but you will be adding more things to your simulation, so having this done will lesson your workload next week.

(kind of) For next week…