2017-12-24 23 views
0

私はmatlabの軌道の伝播者に私の仕事を納得させました。そして今、私は主なスクリプトの助けを借りて軌道をシミュレートしようとしています。MATLABでこのプロットエラーが発生しましたか?

tspan=[0 :860]; 

Position and velocity 
y0(1,1)= 743322.3616 ; 
y0(2,1)= -6346021.219 ; 
y0(3,1)= -3394131.349 ; 
y0(4,1)= 5142.38067; 
y0(5,1)= 4487.44895 ; 
y0(6,1)= -7264.00872; 

%%%% Mass(kg) /surface(m^2) 

m = 217 ; %320; 
A = 1.2; %8; 

%%%% RK4 

h=1; 
y = zeros(6, tspan(end)/h); 
y(:,1) = y0; 

for i=1:1:(tspan(end)/h) 

H=sqrt(y(1,i)^2+y(2,i)^2+y(3,i)^2); 
k_1 = proiectia(tspan(i), y(:,i), H, m, A, y(4:6, i)); 
k1=k_1; 
k_2 = proiectia(tspan(i)+0.5*h, y(:,i)+0.5*h*k_1, H, m, A, y(4:6, i)); 
k2=k_2; 
k_3 = proiectia((tspan(i)+0.5*h), (y(:,i)+0.5*h*k_2), H, m, A, y(4:6, i)); 
k3=k_3; 
k_4 = proiectia((tspan(i)+h),(y(:,i)+k_3*h), H, m, A, y(4:6, i)); 
k4=k_4; 

y(:,i+1) = (y(:,i) + (1/6)*(k1+2*k2+2*k3+k4)*h); 
plot3(y(1,:),y(2,:),y(3,:)); 
drawnow 

end 

enter image description here

軌道はよく説明が、0から点(x、y、z)がある場合に、余分な線を引く維持されます。すべての値が表示された後、0からの線は消え、曲線(軌道)のままになります。 Runge Kuttaループの上にある間に、誰もが理想を持っていないのはなぜですか?

+0

はあなたのコードをインデントしてください、それがこの方法を読むのは難しいです。 –

+0

私はあなたの[他の質問]への私の答えと思う(https://stackoverflow.com/questions/47916264/does-anybody-know-how-should-i-use-animatedline-in-order-to-draw-me- an-orbit-imm)もこれを解決するかもしれない – EBH

答えて

1

多くのゼロを含むベクトルをプロットしています。したがって、プロットされた線は(0,0,0)で終わります。

はゼロをプロットしてみません:

plot3(y(1,1:i+1),y(2,,1:i+1),y(3,,1:i+1));