用于弹丸运动的Matlab theta max脚本

时间:2019-03-14 18:53:15

标签: matlab

我给了我一个作业,该作业指出:编写一个函数,以给定初始速度和角度(水平线以上)在地平线上方确定弹丸的水平和垂直位置。您的函数应将线性阻力与阻力系数k合并。另外,确定介于0和pi之间的theta max值,以提供初始速度“ sum('name')m / s的最大水平距离。

我能够创建函数并绘制图形,但是我无法为theta max编写脚本,并且想知道是否有人可以帮助我。

我的功能是:

function [X_pos,Y_pos] = missile(V0,Theta)

m= 3; %kg
k=0.32; %drag coefficient
g=-9.81; %gravity (m/s/s) %negative gravity for projectiles
dt=0.01; %seconds
 %initial velocity
 d=0;
 dy=0.000000000000001;
 dx=0.000000000000001;

Vx=V0*cosd(Theta);
Vy=V0*sind(Theta);

i=2;
while dy(i-1)>0
  %acceleration
    Ay(i)= g-(Vy(i-1)*k);
    Ax(i)= -(Vx(i-1)*k);
  %velocity  
    Vy(i)= Vy(i-1) + Ay(i) * dt;
    Vx(i)= Vx(i-1) + Ax(i) * dt;

    DDx= ((Vx(i)+(Vx(i-1)/2)*dt));
    dx(i)=DDx+dx(i-1); %distance from zero

    DDy= ((Vy(i)+(Vy(i-1)/2)*dt));
    dy(i)=DDy+dy(i-1); %distance from zero
    i=i+1;
end

%moving plot

% comet(dx,dy)
% axis([0 110000 0 45000])
% xlabel('Distance (m)'); %x-axis label
% ylabel('Height (m)'); %y-axis label
% title('Projectile Motion'); %graph title

%stable plot

plot(dx,dy)
axis([0 110000 0 45000])
xlabel('Distance (m)'); %x-axis label
ylabel('Height (m)'); %y-axis label
title('Projectile Motion'); %graph title

X_pos=max(dx) ;
Y_pos= min(dy);

end

我的脚本是:

a=sum('Todd');
i=1;
g=9.81;
for b=1:1:90
   T(i)=missile(a,b);
   i=1+i;
end
dist=max(T);
theta= acos(sqrt(2*(-g)*dist)/a)

我也不完全确定自己的脚本中是否包含正确的公式。任何帮助表示赞赏!

谢谢!

0 个答案:

没有答案