Matlab freemat弹丸运动问题
我正在为freemat编写一个代码,用于计算和绘制球形物体的抛射运动,其中包括四个不同的阻力系数值。直到最后一部分,一切都很好,我需要有多个情节。距离与高度的曲线图运行良好,但当我尝试绘制其他曲线图时,出现了问题。我想我很难定义正确的变量和数组来绘制图。我需要绘制的其他变量是每个阻力系数的最大y和最大z,以及每个阻力系数的最大时间。我想为每个图形单独设置一个绘图,而不是使用子绘图 以下是我所拥有的:Matlab freemat弹丸运动问题,matlab,plot,Matlab,Plot,我正在为freemat编写一个代码,用于计算和绘制球形物体的抛射运动,其中包括四个不同的阻力系数值。直到最后一部分,一切都很好,我需要有多个情节。距离与高度的曲线图运行良好,但当我尝试绘制其他曲线图时,出现了问题。我想我很难定义正确的变量和数组来绘制图。我需要绘制的其他变量是每个阻力系数的最大y和最大z,以及每个阻力系数的最大时间。我想为每个图形单独设置一个绘图,而不是使用子绘图 以下是我所拥有的: % Clear screen and variables clear clc % Init
% Clear screen and variables
clear
clc
% Initial variables
x0=0; %Initial x position
y0=0; %Initial y position
v0=50; %Initial velocity
theta=30; %Degrees
A=0.0042; %Silhouette area of a sphere
dt=0.001; %Change in time
g=9.81; %Gravity
rho=1.2; %Density of air, used in calculating drag
m=.145; %Mass of object
C=[0,.2,.5,1.2]; %Drag coefficients
N=length(C); %
%Arrays to hold values used in the program
x=[];
y=[];
t=[];
vx=[];
vy=[];
ax=[];
ay=[];
MaxH=[];
MaxX=[];
%Assigning variables and equations to be used in the calculations
for j=1:N;
Dm=rho*C(j)*A/2/m;
t(j,1)=0;
x(j,1)=0;
y(j,1)=0;
vx(j,1)=v0*cosd(theta);
vy(j,1)=v0*sind(theta);
ax(j,1)=Acceleration( vx(j,1), v0, Dm, 0);
ay(j,1)=Acceleration( vy(j,1), v0, Dm, -g);
h=1;
i=1;
%Loop to calculate velocity, position, and acceleration
while (h>0.0001 && i<6000);
v=sqrt(vx(j,1)^2 + vy(j,1)^2); %Calculation for velocity
vx(j,i+1)= vx(j,i) + ax(j,i)*dt; %
vy(j,i+1)= vy(j,i) + ay(j,i)*dt;
x(j,i+1)= x(j,i) + vx(j,i)*dt + 0.5*ax(j,i)*dt^2;
y(j,i+1)= y(j,i) + vy(j,i)*dt + 0.5*ay(j,i)*dt^2;
ax(j,i+1)= Acceleration(vx(j,i) , v , Dm , 0);
ay(j,i+1)= Acceleration(vy(j,i) , v , Dm , -g);
h= y(j,i+1);
t(j,i+1)= t(j,i) + dt;
i=i+1;
end
%Display for the number of iterations at each Drag value
nodes(j)=i;
printf('Drag: %1.1f Iteration: %d\n',C(j),i);
end
%Graphs
hold on
for k=1:N
plot(x(k,1:nodes(k)),y(k,1:nodes(k)))
title('Distance vs. Height')
xlabel('Distance in meters')
ylabel('Height in meters')
sizefig(1000,800);
end
hold off
print 'xy.jpeg'
看起来你在创造一个情节?你的问题是不能打开一个新的图形窗口吗?我正在尝试创建三个“绘图”。一个包含x对y轨迹,一个包含x、y、vx和vy对时间的4个子批次,第三个包含3个子批次max(x)、max(y)和time对drag。我不知道如何打开单独的地物窗口,也无法计算出绘制max(x)、max(y)和阻力值所需的变量。请使用
figure
打开新的地物窗口。
function result=Acceleration(Vc,v,Dm,a0);
result= a0-Dm*Vc*v;