Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. function [d, y, t] = fire_projectile(v, Y, theta)
  2. %Basil Crack
  3. %inputs:
  4. % Velocity: v (m/s)
  5. % Launch Height: Y (m)
  6. % Launch Angle: theta (deg)
  7. %outputs:
  8. % Distance Travelled: d (m)
  9. % Maximum Height: ymax (m)
  10. % Time Travelled: Tend (s)
  11.  
  12. fprintf('Initial Velocity: %g m/s \nLaunch Height: %g m \nLaunch Angle: %g degrees\n',v,Y,theta);
  13.  
  14. g=9.81;
  15. n=length(theta);
  16. c=1;
  17. while c<=n
  18. C=cosd(theta(c));
  19. S=sind(theta(c));
  20.  
  21. Tend = ((v*S(c))/g)-(sqrt(((v*S(c)).^2)+(2*g*Y)))/(-g);
  22. vend = sqrt(((v*C)^2)+((v*S-g*Tend)^2));
  23. ymax = Y+(3*((v*S)^2)/(2*g));
  24. d=(vend*C/g)*((v*S)+sqrt(((v*S)^2)+(2*g*Y)));
  25. time = 0:0.1:Tend;
  26. L=length(time);
  27.  
  28. Y=zeros(1,L);
  29. x=zeros(1,L);
  30. d=1;
  31.  
  32. while d<=L
  33. x(d)=((v*C)*time(d));
  34. Y(d)=Y+(v*S*time(d))-((g/2)*(time(d))^2);
  35. d=d+1;
  36. end
  37.  
  38. plot(x,Y);
  39. title('Graph for Projectile Motion');
  40. xlabel('Horizontal Displacment, x (m)');
  41. ylabel('Vertical Displacment, y (m)');
  42.  
  43. c=c+1;
  44. end
  45. plot(x,Y);
  46. title('Graph for Projectile Motion')
  47. xlabel('Horizontal Displacment, x (m)')
  48. ylabel('Vertical Displacment, y (m)')
  49. fprintf('Distance travelled = %g meters \nMaximum Height = %g meters \nTime Travelled = %g seconds\n',d,ymax,Tend);
  50. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement