CS 282 Review of projectile physics Examine gravity projectile model Examine drag forces ◦ Simulate drag on a projectile Examine wind forces ◦ Simulate wind affecting a projectile 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 Let’s use Cartesian Coordinates for simplicity Fx = 0 Fy = -mg Fz = 0 vx = vx0 vy = vy0 –gt vz = vz0 ax = 0 ay = –g az = 0 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 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 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 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 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 The drag coefficient, Cd, is a scalar used to evaluate drag force. The shape of an object greatly affects how much drag affects it. 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… 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) ◦ Fz =- Fd (vz/v) Fy = -mg -Fd (vy/v) The force due to drag is ◦ Fd = ½ p *v2 *A *Cd ◦ 0.5 * density * velocity2 * cross-area * drag coeff. First , finish steps 2 through 4 of the RungeKutta 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. 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 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. 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 Tail-wind adds to the velocity of the object. Head-wind subtracts from the velocity 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” 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 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? 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.