Model a ski jump curve The ski jump starts off horizontally
Solution
m = 70; % ski jumper mass (kg)
psi = 0; % Ski angle to horizontal (deg)
rho = 1.03; % air density kg/m^3
vx0 = 28.7; % initial horizontal velocity m/s
vy0 = -1.2; % initial vertical velocity m/s
g = 9.81; % gravitational accel m/s^2
initial_w = [0;0;vx0;vy0]; % initial solution vector
options = odeset(\'Events\',@event);
[times,sols] = ode45(@eom,[0,8],initial_w,options);
figure1 = figure; % Plot the trajectory
plot(sols(:,1),sols(:,2),\'LineWidth\',2,\'Color\',[1 0 0]);
figure2 = figure; % Plot the velocity
vel = sqrt(sols(:,3).^2+sols(:,4).^2);
plot(times,vel)
function dwdt = eom(t,w)
% The equations for the rates of change of x,y,vx,vy
x = w(1); y = w(2); vx = w(3); vy = w(4);
phi = atan(-vy/vx)*180/pi;
alpha = psi + phi; % Angle of attack (degrees)
Fl = 0.5*rho*(-0.8468 + 0.08963*alpha - 0.001292*alpha^2);
Fd = 0.5*rho*(-0.5072 + 0.04398*alpha - 2.861e-4*alpha^2);
dxdt = vx; dydt = vy;
V = sqrt(vx^2+vy^2); % Magnitude of velocity
dvxdt = -Fd*vx*V/m - Fl*vy*V/m;
dvydt = -Fd*vy*V/m + Fl*vx*V/m - g;
dwdt = [dxdt;dydt;dvxdt;dvydt];
end
function [ev,s,dir] = event(t,w)
% Function to detect when skier lands
x = w(1); y = w(2);
q = atan(-y/x)*180/pi; % Angle of skier below start
ev = q-32; % Hits slope when angle-32 degrees = 0
s = 1; % Stop when the event occurs
dir = 0; % Either sign of zero crossing is OK.
end
end
