Advertisement
Guest User

Untitled

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