[ STK ](八)使用 Matlab,在 STK 中建立卫星间连线

实现效果

  • 星间距离小于 3e+07 时建立卫星间连线

  • 星间距离是动态变化的,所以连线也是

  • 每分钟建立一次完整连接,但是建立一次完整连接就需要218秒,就有点,,

  • 开始建立连接,连接数目逐渐增多
    在这里插入图片描述

  • 一次完整连接,如下图

  • 如果星间距离的阈值再设置小一点,连接数目会更少

在这里插入图片描述

实现代码

  • 前文有详解,这里就直接贴代码了
% 24 颗卫星
% 建立一次连线需 218 秒 (3.38 min)


% 初始化连接
stkInit;
remMachine = stkDefaultHost;
conid = stkOpen(remMachine);

% 获取卫星路径
objNames = stkObjNames;
objNames(1) = '';
objNames(1) = '';
objNames(1) = '';


for flag = 1:1441
    % 每分钟建立一次连线,周期 86400s
    for i = 1:24
        for j = 1:24
            if i ~= j
                % 获取距离
                [rangeData, rangeNames] =stkAccReport(char(objNames(int32(i))),char(objNames(int32(j))), 'AER');
                [tmp1,tmp2] = size(rangeData{1});
                % 判断卫星间是否可见
                if tmp2 == 4
                    % 打印进度
                    disp(strcat(num2str(i),' ---------- ',num2str(j)))
                    [t,ad,e,r] = rangeData{1}.data;
                    % 星间距离小于 3e+07,建立连线
                    if(r(flag) < 3e+07)
                        stkConnect(conid,'Access',[char(objNames(int32(i))) ,' ', char(objNames(int32(j)))])
                    %else
                    %   stkConnect(conid,'RemoveAccess',[char(objNames(int32(i))) ,' ', char(objNames(int32(j)))])
                    end
                end
            end
        end
    end
    % 清除上一分钟建立的连接
    stkConnect(conid,'RemoveAllAccess','/')
end

stkClose(conid);
stkClose;

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页