⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plot_orbit.m

📁 mathworks公司开发的GPS工具箱,有一定参考价值,但需要进一步完善
💻 M
字号:
%This Function show the satellite and its orbit+Earth geometry 
%CopyRight By Moein Mehrtash
%**************************************************************************
% Written by Moein Mehrtash, Concordia University, 3/28/2008              *
% Email: moeinmehrtash@yahoo.com                                          *
%**************************************************************************
%**************************************************************************
%Plot Orbit+Erath
%Function's Inputs:
    %A:(m)          =>semi-major orbit axis
    %ec:            =>eccentricity
    %Inc:(Rad)      =>Inclination angle
    %Omega:(Rad)    =>Longitude of Ascending Node
    %v:(Rad)        =>True Anomaly
    %Color:(string) =>The color of orbit
    %Name:(string)  =>Name of satellite
%Function's Output:
    %Plot Orbit $ Satellite
    %Plot Earth
%**************************************************************************
function plot_Orbit(Orbit_parameter,color)

[m,n]=size(Orbit_parameter);

     E=Orbit_parameter(2,:);
     A=Orbit_parameter(9,:);
     ec=Orbit_parameter(10,:);
     Inc=Orbit_parameter(7,:);
     Omega=Orbit_parameter(8,:);
     v=Orbit_parameter(3,:);

for i=1:n
     ii=num2str(i);
     Name_SV=strcat('SV-',ii);
     
Nu=0:2*pi/100:2*pi;
r=A(i)*(1-ec(i)^2)./(1+ec(i).*cos(Nu));
x = r.*cos(Nu);
y = r.*sin(Nu);

xs=x.*cos(Omega(i))-y.*cos(Inc(i)).*sin(Omega(i));
ys=x.*sin(Omega(i))+y.*cos(Inc(i)).*cos(Omega(i));
zs=y.*sin(Inc(i));
plot3(xs,ys,zs,color(i),'Linestyle','-')

hold on
xlabel('Xaxis')
ylabel('Yaxis')
zlabel('Zaxis')



r0=A(i)*(1-ec(i)^2)/(1+ec(i)*cos(v(i)));
x0 = r0*cos(v(i));
y0 = r0*sin(v(i));

xp=x0*cos(Omega(i))-y0*cos(Inc(i))*sin(Omega(i));
yp=x0*sin(Omega(i))+y0*cos(Inc(i))*cos(Omega(i));
zp=y0*sin(Inc(i));

plot3(xp,yp,zp,'blacko','Linewidth',2); % plot true anomaly
text(xp+.1*xp,yp+.1*yp,zp+.1*zp,Name_SV);


axis_data = get(gca);
xmin = axis_data.XLim(1);
xmax = axis_data.XLim(2);
ymin = axis_data.YLim(1);
ymax = axis_data.YLim(2);
zmin = axis_data.ZLim(1);
zmax = axis_data.ZLim(2);

% I, J ,K vectors
 R=6399592;
plot3([0,2*R],[0 0],[0 0],'black','Linewidth',2); plot3(2*R,0,0,'black>','Linewidth',2.5);
plot3([0 0],[0,2*R],[0 0],'black','Linewidth',2); plot3(0,2*R,0,'black>','Linewidth',2.5);
plot3([0 0],[0 0],[0,2*R],'black','Linewidth',2); plot3(0,0,2*R,'black^','Linewidth',2.5);

% right ascending node line plot
xomega_max = xmax*cos(Omega(i)*pi/180);
xomega_min = xmin*cos(Omega(i)*pi/180);
yomega_max = ymax*sin(Omega(i)*pi/180);
yomega_min = ymin*sin(Omega(i)*pi/180);

xlabel('I');
ylabel('J');
zlabel('K');

 R=6399592;
    [x,y,z] = ellipsoid(0,0,0,R,R,R,20);
     surfl(x, y, z)
     shading faceted %interp
     colormap(gray);
    hold on
  az = 120;
   el = 30;
   view(az, el);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -