1.算法运转效果图预览

依据星历文件完成卫星的动态运转模仿matlab仿真

依据星历文件完成卫星的动态运转模仿matlab仿真

2.算法运转软件版本

MATLAB2022a

3.算法理论概述

卫星的动态盯梢捕获是航天工程和卫星通讯领域中的要害技术之一。它涉及到对卫星轨迹的精确猜测、接收设备的指向操控以及信号处理等多个方面。

跟着航天技术的不断发展,卫星通讯已经成为现代社会不可或缺的一部分。为了确保通讯的稳定性和可靠性,需要对卫星进行精确的盯梢和捕获。基于星历文件的卫星动态盯梢捕获办法是一种常用的技术手段,它通过对卫星轨迹的精确猜测,完成对卫星的精确盯梢和信号捕获。

星历文件是描述卫星轨迹参数和时钟信息的文件,通常由地上操控站生成并提供应用户。星历文件中包含了卫星的方位、速度、加速度等轨迹信息,以及卫星时钟的偏差和漂移等时钟信息。这些信息是卫星动态盯梢捕获的基础数据。

4.部分中心程序 `% 将所有PRN对应的ECEF方位信息合并成一个表格

Info2_tab = cat(1,Info2{:});

% 将ECEF方位转化为地理坐标系下的方位

Geo_tab = func_calpos(Info2_tab);

% 依照时刻对地理坐标方位进行排序

Geo_tab = sortrows(Geo_tab);

% 获取排序后的仅有时刻点

Times_tab = unique(Geo_tab.time);

% 读取卫星图画文件’sat.png’,获取图画数据和透明度信息

[cdata,~,alpha] = imread(‘datsat.png’);

cdata=cdata/1.5;

%创立一个世界地图,并设置一些属性,如原点方位和地图大小等

figure;

ax = worldmap(‘World’);

setm(ax, ‘Origin’, [0 0 0]);

ax.Position =[0 0 1 1];

land = shaperead(‘landareas’, ‘UseGeoCoords’, true);

geoshow(ax, land, ‘FaceColor’, [0.5 0.7 0.5]);

lakes = shaperead(‘worldlakes’, ‘UseGeoCoords’, true);

geoshow(lakes, ‘FaceColor’, ‘blue’);

rivers = shaperead(‘worldrivers’, ‘UseGeoCoords’, true);

geoshow(rivers, ‘Color’, ‘blue’);

%创立63个卫星图标,初始状态下或许不可见或不在地图上显现(详细取决于func_addsat函数的完成)

for ii = 1:63

sat_pos(ii) = func_addsat(ax,0,0,cdata,alpha);

end

% 定义一个匿名函数funPixelPos,用于将地理坐标转化为像素坐标(详细转化方式取决于func_Pixel2Pos函数的完成)

funPixelPos = @(lat,lon) func_Pixel2Pos(ax.UserData,lat,lon,cdata);

% 关于每个仅有的时刻点,更新卫星图标的方位和可见性,并更新文本标签的时刻显现,然后保存地图图画到变量AA中(不保存到文件)

for ii = 1:numel(Times_tab)

t = Times_tab(ii);

data = rowfun(funPixelPos,Geo_tab(t,1:2),’NumOutputs’,2,’OutputFormat’,’cell’);

for jj = 11:63

if jj<=size(data,1)

sat_pos(jj).Visible = ‘on’;

sat_pos(jj).XData = data{jj,1};

sat_pos(jj).YData = data{jj,2};

else

sat_pos(jj).Visible = ‘off’;

end

end

pause(0.01);

title([num2str(ii)]);

end`