巨型星座try6(stk,matlab com串口互联)

建立场景,判断是否有已存在场景,建立连接并储存

tic
try
    progID = 'STK11.application';%stk版本号
    con = actxGetRunningServer(progID);%返回服务器的默认接口的句柄,创建进程内服务器
    checkempty = root.Children.Count;%连接端口号是否建立
    root = con.Personality2;%抓取STK应用程序根目录上的句柄,后续所有操作源头
    if checkempty == 0 %当前不存在场景
        con.Visible = 1;%不显示stk场景状态
        root.NewScenario('bigstar');%建立场景  root.Children.New('eScenario','DIY_Matlab')
        %场景第一次保存,第二次为root.Save(),加载场景为root.LoadScenario(‘D:\STK_Job\Try3\bigstar.sc’)
        root.SaveScenarioAs('D:\STK_Job\Try3');%制定存储文件位置
        bs = root.CurrentScenario;%当前场景设置为句柄
    else%存在场景
       rtn = questdlg({'是否关闭现有场景?',' ','(WARNING: 选择“Yes”需首先自行保存场景)'});
        if ~strcmp(rtn,'Yes')
            return
        else
            root.CurrentScenario.Unload%卸载存在的场景
            uiapp.visible = 1;
            root.NewScenario('bigstar');
            bs = root.CurrentScenario;
        end
    end 
end
toc

设置场景参数

bs.SetTimePeriod('1 Mar 2021 04:00:00.000','1 Apr 2021 04:00:00.000');%时间
root.ExecuteCommand('Animate * Reset');%重置场景命令,help演示文档得出  bs.Unload;删除当前场景
%设置场景中的单位
root.UnitPreferences.SetCurrentUnit('Distance','km');
root.UnitPreferences.SetCurrentUnit('Latitude','deg');
root.UnitPreferences.SetCurrentUnit('Longitude','deg');
root.ExecuteCommand('Window3D * Maximize');%最大化3D图窗

设置测控站

facility = bs.Children.New('eFacility','ck2021');
facility.Position.AssignGeodetic(30,120,0);%经纬度高程

建立设置卫星

satellite1 = bs.Children.New('eSatellite','wei1');
satellite1.SetPropagatorType('ePropagatorJ2Perturbation');
keplerian = satellite1.Propagator.InitialState.Representation.ConvertTo('eOrbitStateClassical');%经典轨道六参数
keplerian.SizeShapeType = 'eSizeShapeAltitude';  % 调节轨道参数类型为远,近地点型

%wei2 = wei1.CopyObject(‘my_newsat’);复制卫星1并命名
    %设置卫星参数   
keplerian.SizeShape.PerigeeAltitude = 35788.1;      % km 近地点
keplerian.SizeShape.ApogeeAltitude = 35788.1;       % km 远地点
keplerian.Orientation.Inclination = 60;         % deg 轨道倾角
keplerian.Orientation.ArgOfPerigee = 0;        % deg 近地点角
keplerian.Orientation.AscNode.Value = 245;       % deg RAAN升交点赤经
keplerian.Location.Value = 180;                 % deg
    %wei.get查看卫星参数

学习渠道

  1. “拜火先知”博客
  2. stk官方程序学习,链接:个人整理
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值