实现效果
-
星间距离小于
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;