⛄一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【目标探测】基于matlab卫星轨道目标探测【含Matlab源码 2732期】
点击上面蓝色字体,直接付费下载,即可。
获取代码方式2:
付费专栏Matlab物理应用(初级版)
备注:
点击上面蓝色字体付费专栏Matlab物理应用(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab物理应用(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码
⛄二、部分源代码
close all
clc
clear
%
globaldata
global dataEarth
%% 绘制地球仪
load topo;
[x y z] = sphere(20); % 构造球面坐标,根据经纬网格密度
Xe=xdataEarth.Re;Ye=ydataEarth.Re;Ze=z*dataEarth.Re;
%% 卫星轨道设计
% 基本轨道形状
e=0.0; %离心率e
%h_a=dataEarth.Re3;r_a=h_a+dataEarth.Re;T=2pisqrt(a^3/dataEarth.mu)%周期
T=246060;r_a=power((T/(2pi))^2dataEarth.mu,1/3);h_a=r_a-dataEarth.Re;
a=r_a/(1-e); %长半轴
i=0; % 轨道倾角
w=0; %近心点辐角
omi=0; %升交点经度Ω
theta=0; %真近点角
%p=abs(a(1-e^2)); %半通径
%u=w+fai; %纬度辐角
% 基本轨道,orbit_1=[a,e,i,w,omi,theta]
Orbit0.Earth=dataEarth;
Orbit0.e=e;
Orbit0.ha=h_a;
Orbit0.ra=r_a;
Orbit0.a=a;
Orbit0.T=T;
Orbit0.i=0; %
Orbit0.w=0;
Orbit0.omi=0;
Orbit0.theta=0;
% 惯性计算起始状态
t0=0; %起始时间,病作为仿真起始时刻
L0=0; %t0时刻地球春分点相对惯性转过经度
% 卫星轨道,根据基本轨道演变
% 卫星1,轨道基本参数
Sat1.Earth=dataEarth; % S1
Sat1.e=Orbit0.e;
Sat1.a=Orbit0.a;
Sat1.T=Orbit0.T;
Sat1.n=sqrt(Sat1.Earth.mu/Sat1.a^3);%平均角速度
t10=t0;%第1#卫星入轨时刻为起始时间
L10=L0;% t0时刻e相对i方位
Sat1.t0=t10;
Sat1.i0=0;% t0时刻轨道惯性空间位置
Sat1.w0=0;
Sat1.omi0=0;
Sat1.theta0=0; % 近地点入轨
Sat1.L0=L0; % t0时刻e相对i方位
% 卫星2,与S1在相同轨道上,只是位置不同
Sat2.Earth=dataEarth; % S1
Sat2.e=Orbit0.e;
Sat2.a=Orbit0.a;
Sat2.T=Orbit0.T;
Sat2.n=sqrt(Sat2.Earth.mu/Sat2.a^3);%平均角速度
t20=t0+T/10;%第2#卫星入轨时刻,比1#稍晚
Sat2.t0=t20;
Sat2.i0=pi/3;% t0时刻轨道惯性空间位置
Sat2.w0=0;
Sat2.omi0=0;
Sat2.theta0=0; % 近地点入轨
L20=L0+Orbit0.Earth.We*(t20-t0);% t0时刻e相对i方位
Sat2.L0=L20; % 地球自转,t20时刻,e相对i方位
% 仿真时间步长
dt=1060;
simTimeEnd=243600; % s
simTimeEnd=Orbit0.T; % s
simTime=[0:dt:simTimeEnd];
simN=500; simTime=linspace(0,Orbit0.T,simN);
for i=1:length(simTime)
t=simTime(i);
% 卫星1位置
att_b=[0,0,0]; %星体姿态,假设保持对地
att_s=[0,0,0]; %探测器相对星体方位,ax=0; ay=0; az=0
Sat1=sat2orbit(Sat1,t,att_b,att_s); % 卫星状态
xyz_s1=Sat1.xyz_i;
XYZ_s1(i,:)=xyz_s1';
Sat2=sat2orbit(Sat2,t,att_b,att_s); % 卫星状态
xyz_s2=Sat2.xyz_i;
XYZ_s2(i,:)=xyz_s2';
end
Xe=xdataEarth.Re;Ye=ydataEarth.Re;Ze=zdataEarth.Re;
figure(1),hold on
surface(Xe,Ye,Ze,‘FaceColor’,‘texturemap’,‘CData’,topo); %地球
axis off vis3d;
plot3(XYZ_s1(:,1),XYZ_s1(:,2),XYZ_s1(:,3),‘-’) %卫星1
plot3(XYZ_s1(1,1),XYZ_s1(1,2),XYZ_s1(1,3),'‘)
plot3(XYZ_s2(:,1),XYZ_s2(:,2),XYZ_s2(:,3),’-‘)
plot3(XYZ_s2(1,1),XYZ_s2(1,2),XYZ_s2(1,3),’*')
%% 目标探测设计
% 探测器性能
Senser.beta=deg2rad(20);% 传感器探测市场半角
Senser.L_max=dataEarth.Re*100;%探测距离最大
Sat1.Senser=Senser;
Sat2.Senser=Senser;
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]刘萍.如何理解空气质量分指数(IAQI)计算公式并速算[J].黑龙江环境通报. 2014,38(02)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除