我正在嘗試編寫一個matlab代碼來模擬炮彈的炮彈運動,包括空氣阻力和空氣密度相對於溫度變化的影響,但是迄今爲止我只能計算出炮彈的直線這是不正確的軌跡。任何人都可以指出我出錯的地方,並指出我在正確的方向,包括空氣密度和溫度的影響?謝謝。炮彈與空氣阻力和空氣密度不正確情節的運動?
clear;
%input parameters
v0=input('Enter the muzzle velocity (m/s) ');
theta=input('Enter the quadrant elevation (degrees) ');
%T0=input('Enter the value for the ground temperature in degreees ');
%T0=T0+275.16;
b2bym0=4e-5;
g=9.8;
dt=1e-2;
%define initial conditions
x0=0;
y0=0;
vx0=v0*cosd(theta);
vy0=v0*sind(theta);
fdragx=-b2bym0*v0*vx0;
fdragy=-b2bym0*v0*vy0;
n=1000; %iterations
%Tratio=(T0/300)^(2.5);
%define data array
%t=zeros(1000);
x=zeros(1000); %x-position
y=zeros(1000); %y-position
vx=zeros(1000); %x-velocity
vy=zeros(1000); %y-velocity
for i=1:n
t(i)=i*dt;
vx(i)=vx0+fdragx*dt;
vy(i)=vy0+fdragy*dt;
x(i)=x0+vx(i)*dt;
y(i)=y0+vy(i)*dt;
x0=x(i);
y0=y(i);
vx0=vx(i);
vy0=vy(i);
end
plot(x,y,'g+')
除了像@prgao所說的那樣忘記引力之外,拖曳力應該在循環內更新。現在拖曳力在時間上是不變的。 – kalhartt
我已將for循環更新到http://imgur.com/ikLboeU,但它仍然沒有完全模擬重力,想法? –