How to plot an orbit around the Earth in MATLAB

  • #1
saeede-
9
0
Hi. can you help me to plot orbit around Earth with sphere in MATLAB?
I wrote the code that plot 3D orbit but without earth.

the code:
Matlab:
clear all
close all
clc

R=6371e+3;
r0=3e+5;
p0=[R+r0;0;0;0;10000;0];

[t,p]=ode45(@sattelite,[0,12000],p0);
xout=p(:,1);
yout=p(:,2);
zout=p(:,3);
vx=p(:,4);
vy=p(:,5);
vz=p(:,6)

plot3(xout,yout,zout)

function dp=sattelite(t,p)
%%p=[x position;y position;z position;x velocity(vx);y velocity(vy);z velocity(vz)];
G=6.67e-11;
Me=5.972e+24;
m=50;
mu=(Me+m)*G;
R=6371e+3;
r0=3e+5;

r=sqrt(p(1)^2+p(2)^2+p(3)^2);
dp=zeros(6,1);
dp(1)=p(4);
dp(2)=p(5);
dp(3)=p(6);
dp(4)=-(mu/r^3)*p(1);
dp(5)=-(mu/r^3)*p(2);
dp(6)=-(mu/r^3)*p(3);
end
 
Physics news on Phys.org
  • #2
I woud do it like this:
Matlab:
clear all
close all
clc

R=6371e+3;
r0=3e+5;
p0=[R+r0;0;0;0;10000;0];

[t,p]=ode45(@sattelite,[0,12000],p0);
xout=p(:,1);
yout=p(:,2);
zout=p(:,3);
vx=p(:,4);
vy=p(:,5);
vz=p(:,6);

[X,Y,Z] = sphere;
X = X*R;
Y = Y*R;
Z = Z*R;
surf(X,Y,Z);
hold on

plot3(xout,yout,zout)
axis equal vis3d

function dp=sattelite(t,p)
%%p=[x position;y position;z position;x velocity(vx);y velocity(vy);z velocity(vz)];
G=6.67e-11;
Me=5.972e+24;
m=50;
mu=(Me+m)*G;
R=6371e+3;
r0=3e+5;

r=sqrt(p(1)^2+p(2)^2+p(3)^2);
dp=zeros(6,1);
dp(1)=p(4);
dp(2)=p(5);
dp(3)=p(6);
dp(4)=-(mu/r^3)*p(1);
dp(5)=-(mu/r^3)*p(2);
dp(6)=-(mu/r^3)*p(3);
end
 
  • Like
Likes saeede-
  • #3
Arjan82 said:
I woud do it like this:
Matlab:
clear all
close all
clc

R=6371e+3;
r0=3e+5;
p0=[R+r0;0;0;0;10000;0];

[t,p]=ode45(@sattelite,[0,12000],p0);
xout=p(:,1);
yout=p(:,2);
zout=p(:,3);
vx=p(:,4);
vy=p(:,5);
vz=p(:,6);

[X,Y,Z] = sphere;
X = X*R;
Y = Y*R;
Z = Z*R;
surf(X,Y,Z);
hold on

plot3(xout,yout,zout)
axis equal vis3d

function dp=sattelite(t,p)
%%p=[x position;y position;z position;x velocity(vx);y velocity(vy);z velocity(vz)];
G=6.67e-11;
Me=5.972e+24;
m=50;
mu=(Me+m)*G;
R=6371e+3;
r0=3e+5;

r=sqrt(p(1)^2+p(2)^2+p(3)^2);
dp=zeros(6,1);
dp(1)=p(4);
dp(2)=p(5);
dp(3)=p(6);
dp(4)=-(mu/r^3)*p(1);
dp(5)=-(mu/r^3)*p(2);
dp(6)=-(mu/r^3)*p(3);
end
oh.. thanks. it works.
 

Similar threads

Replies
9
Views
4K
Replies
7
Views
3K
Replies
1
Views
8K
Replies
12
Views
4K
Replies
1
Views
1K
Replies
4
Views
3K
Back
Top