至于怎么使用tle文件添加卫星,可以参照别的博主的内容
博主什么也不会,下面的代码是东拼西凑的,感谢来自chatgpt的大力支持,虽然它没整出来.
Matlab和STK联合使用
关于root.ExecuteCommand,我的理解是一个比较万能的命令传输器.里面的命令的格式最好参照STK官方文档中的programming interface help,找到这个文档中的 library reference,展开这个列表,再展开这个列表中的Connect Command library,这个词条下就是关于STK的指令,在matlab中可以通过ExecuteCommand传递这些指令,具体怎么用就看到底要做什么了,反正挺折磨的,博主到现在也没弄明白.
%% 这里用connector获取STK场景中卫星的名称
%混着COM使用是因为单独使用COM命令获取名称时会报错,说超出长度?不懂
%记得先打开STK
%记得分块运行
stkInit;
remMachine = stkDefaultHost;
objNames = stkObjNames; %获取obj的名称
% conid = stkOpen(stkDefaultHost); %获取连接句柄,没什么用,不用管
%%
uiapp = actxGetRunningServer('STK11.application');
root = uiapp.Personality2;
%%
%看看objNames里面,卫星从第几个开始,这样可以修改for循环的起始位
for i = 8 :length(stkObjNames)
name = strsplit(objNames{i,1},'/');
command = sprintf('New / */Satellite/%s/Sensor sen', char(name(5)));
root.ExecuteCommand(command);
% stkNewObj(['*/Satellite/' char(name(5))],'Sensor','sen');
% strSetSensor = ('SimpleCone 40.00'); %简单圆锥,40°
% stkConnect(conid,'Define',['*/Satellite/' char(name(5)) '/Sensor/' 'sen'],strSetSensor);
command2 = sprintf('Define */Satellite/%s/Sensor/sen SimpleCone 40', char(name(5)));
root.ExecuteCommand(command2)
end