also habe ich diese Planetensimulation, in der ich die Position der Planeten (so eine ungebrochene Linie, die den Planeten folgt, wie sie sich bewegen), und habe versucht, so viele verschiedene Varianten zu verwenden von Linespec. Ich glaube, das Problem könnte sein, weil ich zuerst eine "set (h ..)" -Funktion verwende und dann innerhalb einer Schleife plotte, aber ich bin mir nicht sicher.Matlab-Graph verschwindet, wenn ich linespec hinzufüge
clc, close all, clear all
%% Constants
m_sun=1.9891*10^(30); % Sun mass KG
m_earth=5.972*10^(24);
G=1.4879*10^(-34); %Gravitational constant %AU^3/(kg*day^2) %Because JPL Data..
n=36500; %1 year is 36.5 because 1 step is 10 days so this is 10 years.
dt=1; %Stepsize is by the DATA from JPL aut. set to 10 days (dt=1 aka 10 days)
%% Start pos. and velocity for Sun, Mercury, Venus, Earth and Moon
psol=[0 0 0];
%% Mercury
x_mercury=-1.433719457930228E-01; %AU
y_mercury=2.837093715285307E-01; %AU
z_mercury=3.633570612044031E-02; %AU
vx_mercury=-3.076848842366683E-02; %AU/Day
vy_mercury=-1.162353364156454E-02; %AU/Day
vz_mercury=1.872970822663991E-03;
v0_mercury=[vx_mercury vy_mercury vz_mercury];
p0_mercury=[x_mercury y_mercury z_mercury];
v_mercury=v0_mercury;
p_mercury=p0_mercury;
%% Venus
x_venus=4.673243997906552E-01; %AU
y_venus=5.508231287051383E-01; %AU
z_venus=-1.941467305848078E-02; %AU
vx_venus=-1.548526759260772E-02; %AU/Day
vy_venus=1.299852601837024E-02; %AU/Day
vz_venus=1.071832461568199E-03; %AU/Day
v0_venus=[vx_venus vy_venus vz_venus];
p0_venus=[x_venus y_venus z_venus];
v_venus=v0_venus;
p_venus=p0_venus;
%% Earth
x_jord=-1.796136519182077E-01; %AU
y_jord=9.667949205028737E-01; %AU
z_jord=-3.668730384613077E-05; %AU
vx_jord=-1.720038360546182E-02; %AU/Day
vy_jord=-3.211186215649903E-03; %AU/Day
vz_jord=7.927770738232715E-07; %AU/Day
v0_jord=[vx_jord vy_jord vz_jord];
p0_jord=[x_jord y_jord z_jord];
v_jord=v0_jord;
p_jord=p0_jord;
%% Moon
x_moon=1.735515971173234E-03; %AU
y_moon=-1.954900859093033E-03; %AU
z_moon=9.023023109649464E-05; %AU
vx_moon=4.195999130374965E-04; %AU/Day
vy_moon=4.002519066694706E-04; %AU/Day
vz_moon=-4.849066257645466E-05; %AU/Day
v0_moon=[vx_moon vy_moon vz_moon];
p0_moon=[x_moon y_moon z_moon];
v_moon=v0_moon;
p_moon=p0_moon;
%% Calculations
hold on
h_sun = plot3(0,0,0,'y.','markersize',80);
h_mercury = plot3(1,1,1,'k.','markersize',35);
h_venus = plot3(2,2,2,'m.','markersize',45);
h_earth = plot3(3,3,3,'b.','markersize',55);
h_moon = plot3(4,4,4,'r.','markersize',25);
for step=1:n
%% Mercury
r_vekt_mercury=-p_mercury;
r_mercury=sqrt(x_mercury^2 + y_mercury^2 + z_mercury^2); %Radius in AU
a_mercury=((G*m_sun)/((r_mercury)^3))*r_vekt_mercury;
v_mercury=a_mercury*dt+v_mercury;
p_mercury=v_mercury*dt+p_mercury;
%% Venus
r_vekt_venus=-p_venus;
r_venus=sqrt(x_venus^2 + y_venus^2 + z_venus^2); %Radius in AU
a_venus=((G*m_sun)/((r_venus)^3))*r_vekt_venus;
v_venus=a_venus*dt+v_venus;
p_venus=v_venus*dt+p_venus;
%% Jord
r_vekt_jord=-p_jord;
r_jord=sqrt(x_jord^2 + y_jord^2 + z_jord); %Radius in AU
a_jord=((G*m_sun)/((r_jord)^3))*r_vekt_jord;
v_jord=a_jord*dt+v_jord;
p_jord=v_jord*dt+p_jord;
% %% Moon
%r_vekt_moon=psol-p_moon;
r_vekt_moon_earth=p_jord-p_moon;
r_moon=sqrt(x_moon^2 + y_moon^2 + z_moon^2); %Radius in AU
a_moon=((G*m_earth)/((r_moon)^3))*r_vekt_moon_earth;
v_moon=a_moon*dt+v_moon;
p_moon=v_moon*dt+p_moon;
set(h_sun,'XData',psol(1),'YData',psol(2),'ZData',psol(3));
set(h_mercury,'XData',p_mercury(1),'YData',p_mercury(2),'ZData',p_mercury(3));
set(h_venus,'XData',p_venus(1),'YData',p_venus(2),'ZData',p_venus(3));
set(h_earth,'XData',p_jord(1),'YData',p_jord(2),'ZData',p_jord(3));
set(h_moon,'XData',p_moon(1),'YData',p_moon(2),'ZData',p_moon(3));
xlabel('AU');
ylabel('AU');
zlabel('AU');
axis([-2 2 -2 2 -2 2]);
drawnow;
hold off
end
Also, wenn Sie die Schleife suchen, bevor Sie werden sehen, „Set (...)“ Funktion i erwähnt und am Ende der Schleife ist das Plotten. Wenn ich z. B. @ h_mercury von "k" ändern. zu 'k' verschwindet der Planet vollständig. Wenn ich es zu "-" ändere. es verschwindet auch. Ich habe unzählige Variationen ausprobiert und entweder verschwindet der Planet oder es gibt mir einen Fehler. Ich habe die Hilfe-Seite @ Matlabs Website in 2D-Plot, 3D-Plot, Linespec usw. angeschaut und habe immer noch keine Lösung gefunden!
Ich hoffe, jemand kann mir helfen, das herauszufinden so schnell wie möglich!
Dank
Also habe ich versucht, den Code, den Sie geschrieben, aber es nur hinzugefügt eine Linie von der Sonne zum Planeten (ich habe nur mit Merkur versucht, um zu sehen, wie es aussehen würde), die den Planeten um etwas wie eine Brücke vom Planeten zur Sonne begleitet. Was ist der Grund dafür? Und für die andere Lösung, die Sie geschrieben haben, würde ich dann den Plot3 (...) nach dem Satz (...) aka kurz vor dem Ende der Schleife hinzufügen? – Rida
Ich hatte einen kleinen Fehler gemacht. Entschuldigen Sie. Ich habe meine Lösung bearbeitet und hier getestet, es sollte jetzt funktionieren. – Florian
Genau! Ich werde versuchen, das, was du erstellt hast, zu kopieren und es allen meinen Planeten hinzuzufügen! Wenn Sie etwas weiter erklären möchten, würde ich gerne versuchen zu verstehen, was Ihr Code macht und nicht nur kopieren! – Rida