学习到这里,我们有必要做个仿真分析案例,把之前我们学习的零散知识点串起来,看一下在真实的分析中怎么应用。
分析要求:建立8个地面站,分析每个地面站对某个轨道高度500km、倾角60°圆轨道的卫星,1天内的可见次数、可见弧长以及可见弧段间隔列表。
基本约束:地面站仰角8°~90°,作用距离<2000km,太阳矢量与地面站到卫星视线夹角不小于15°,可见弧段应大于30s。地面站站址可随机生成,但要求在南北纬50°范围内。

下面上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘exam1’);
sc = root.CurrentScenario;

%建立卫星对象,并设置参数
sat = sc.Children.New(18,‘mysat’);
kep = sat.Propagator.InitialState.Representation.ConvertTo(‘eOrbitStateClassical’);
kep.SizeShapeType = ‘eSizeShapeAltitude’;
kep.LocationType = ‘eLocationTrueAnomaly’;
kep.Orientation.AscNodeType = ‘eAscNodeLAN’;
kep.SizeShape.PerigeeAltitude = 500;
kep.SizeShape.ApogeeAltitude = 500;
kep.Orientation.Inclination = 60;
kep.Orientation.ArgOfPerigee = 0;
kep.Orientation.AscNode.Value = 0;
kep.Location.Value = 0;

sat.Propagator.InitialState.Representation.Assign(kep);
sat.Propagator.Propagate;
%定义cell,存储地面站名称、纬度经度高度(Geodetic形式)、可见次数、
%可见弧段信息
facandaccessinfo = cell(9,4)
facandaccessinfo{1,1} = ‘名称’;
facandaccessinfo{1,2} = ‘位置’;
facandaccessinfo{1,3} = ‘可见次数’;
facandaccessinfo{1,4} =‘可见弧段信息’;

%建立地面站
for i = 1:8
facname = [‘fac_’,num2str(i)];
fac = sc.Children.New(‘eFacility’,facname);
fac.Position.AssignGeodetic(sign(rand(1)-0.5)*rand(1)*50,(rand(1)-0.5)*rand(1)*180,0);
%设置地面站约束
facConstraints = fac.AccessConstraints;
%设置最大距离约束
rangeCstr = facConstraints.AddConstraint(‘eCstrRange’);
rangeCstr.EnableMax = 1;
rangeCstr.Max = 2000;
%设置仰角约束
elevationCstr = facConstraints.AddConstraint(‘eCstrElevationAngle’);
elevationCstr.EnableMin = 1;
elevationCstr.Min = 8;
%设置太阳视线角约束
lossunCstr = facConstraints.AddConstraint(‘eCstrLOSSunExclusion’);
lossunCstr.Angle = 15;
%设置最短弧段时长约束
durationCstr = facConstraints.AddConstraint(‘eCstrDuration’);
durationCstr.EnableMin = 1;
durationCstr.Min = 30;

%获取地面站名称及纬度经度高度,并写入到cell中
facandaccessinfo{i+1,1} = fac.InstanceName;
facandaccessinfo{i+1,2} = fac.Position.QueryPlanetodeticArray;
%计算可见性,获取读卫星可见次数、每个可见弧段的起止时间、弧段时长
%并写入到cell中,以便最后输出
fac2sataccess = fac.GetAccessToObject(sat);
fac2sataccess.ComputeAccess();
facandaccessinfo{i+1,3} = fac2sataccess.ComputedAccessIntervalTimes.Count;
%获取
accessinfo = cell(fac2sataccess.ComputedAccessIntervalTimes.Count,1);
for j = 1:fac2sataccess.ComputedAccessIntervalTimes.Count
[str,sto] = fac2sataccess.ComputedAccessIntervalTimes.GetInterval(j-1);
fac2sataccess. AccessTimePeriod = ‘eUserSpecAccessTime’;
fac2sataccess.SpecifyAccessTimePeriod(str,sto)
accessduration = fac2sataccess.AccessTimePeriodData.Duration;
accessinfo{j}= {str,sto,accessduration};
end
facandaccessinfo{i+1,4} = accessinfo;
fac2sataccess.RemoveAccess();
end
以上代码经过运行,没问题。大家可一起讨论学习。STK的接口很灵活,可以有很多种方式实现我们想要的结果,希望大家多尝试,多讨论。
最终效果图:




对于可见弧段有个最大的时长限制,这个没有设置,然后STK给设置了。。我这里就不改代码了,请各位包涵。另外程序可能运行的不是特别快,里面有很多代码写的也不是特别好,大家就当个参照,学习一些用法即可。

MATLAB与STK互联23:卫星对象操作(14)—仿真分析案例1,建立8个地面站,分析对卫星的可见性相关推荐

  1. MATLAB与STK互联46:在场景中加入某个国家作为Area Target对象(GIS命令使用)

    在很多分析场景中,我们会插入某个国家国土区域作为分析对象.比如设计陆地资源遥感卫星时,分析对我国任意一点的重访时间,这时就需要插入我国的国土区域.在STK中,提供了插入某个国家的功能.当然如果你手上有 ...

  2. MATLAB与STK互联47:卫星在轨寿命分析(lifetime)

    当我们设计卫星轨道时,轨道高度不能太低,以避免卫星快速的进入大气层烧毁.那怎么分析卫星在轨寿命呢,STK软件提供了寿命计算功能,本文就对这个功能进行介绍.先手动操作一遍,然后再利用MATLAB与STK ...

  3. MATLAB与STK互联1:建立STK场景并保存

    STK是功能非常强大的系统仿真软件,可以对航天器.航空器.导弹.火箭.船舶.车辆等进行仿真分析. MATLAB与STK互联,主要有两种方式,一种是connect.一种是com口. 这里主要介绍com口 ...

  4. 关于Matlab与STK互联问题

    关于Matlab与STK互联问题 由于近期需要用到Matlab和STK进行联合仿真,因此在两个软件的互联上绕了很多弯路,最终成功实现了STK10与Matlab2012a(32位)之间的互联. 两个软件 ...

  5. MATLAB与STK互联10:卫星对象操作(2)—卫星轨道参数设置(方法1,通过轨道生成器设置实现)

    在新建卫星对象后,直接执行:sat.Propagate语句,会生成STK默认参数的卫星.默认参数为:倾角28.5°,轨道高度300km的圆轨道,动力学模型为二体模型. 我们在分析问题时,绝大多数情况下 ...

  6. MATLAB与STK互联13:卫星对象操作(4)—三维显示

    上篇博文介绍了STK中卫星对象的二维显示属性及设置,本篇介绍卫星对象的三维显示属性及设置.先上代码: uiap = actxserver('STK11.application'); root = ui ...

  7. MATLAB与STK互联12:卫星对象操作(3)—二维显示

    当建立好卫星对象时,就需要设置其在STK界面中的显示状态了.STK的场景显示分为二维显示和三维显示,本文首先介绍与卫星对象二维显示相关的设置. %代码如下 uiap = actxserver('STK ...

  8. MATLAB与STK互联21:卫星对象操作(12)—加约束条件的可见性问题分析(仰角、距离、视线角约束)

    继续探索加约束条件的可见性分析问题.上代码: uiap = actxserver('STK11.application'); root = uiap.Personality2; root.NewSce ...

  9. MATLAB与STK互联40:仿真案例7—近地圆轨道卫星的抵近操作及相对轨迹显示设置(无互联,手动设置)

    最近在研究两个卫星的相对运动,正好有网友问到相关的设置,今天就跑个题,做个仿真案例.近地圆轨道上两颗卫星抵近的场景仿真设置,不过这个没有用到互联.这个案例,在STK的培训材料里,可以查到. 仿真场景要 ...

  10. MATLAB与STK互联搭建LEO卫星星座(connect方法)

    软件版本: STK 11.6/ MATALB R2018b 使用connect命令用MATLAB在STK中自动搭建LEO卫星星座系统,参考了https://zhuanlan.zhihu.com/p/6 ...

最新文章

  1. 原创 | 安全生产事故如何防患于未然?监测与预警平台为安全和效益保驾护航...
  2. ubuntu adb
  3. python 阿里云短信接口_阿里云短信PythonSDK的用法
  4. 利用IPFS构建自己的去中心化分布式Wiki系统
  5. 分布式机构 RPC远程过程调用
  6. Codeforces Global Round 11——E随机+线性基待补
  7. 【poj3070】Fibonacci
  8. 都已经十岁的ApacheDubbo,还能再乘风破浪吗?
  9. Mac超强扒站神器——SiteSucker Pro 4.3.3 mac中英文
  10. 【操作系统】输入输出系统(上)-思维导图
  11. 学习计算机如何有一个质的飞越?
  12. VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (6) Spectrum Encode 模块
  13. QGraphicsItem的使用
  14. 实验吧天网管理系统Writeup
  15. 厦门信息计算机专业录取分数,厦门大学计算机类专业2016年在福建理科高考录取最低分数线...
  16. 利用决策树对微信公众号文本进行分类
  17. 神舟笔记本(战神)摄像头或者相机不能使用的解决方法
  18. 如何完美解决解决win10系统--无法自动修复此计算机问题
  19. 备份/恢复数据库资料
  20. 一道数学题引发的惨案!4只小鸭子在一个圆形的大水池中,分别随机的出现圆圈中任意一点。4只鸭子在同一半圆内的概率是多少?

热门文章

  1. 洗地机之滚刷电机分析:关于电机转矩.功率.转速之间的关系及计算公式
  2. QTTabBar 简单配置
  3. 小程序 - 修改头像功能
  4. 一网打尽Mac上的软件套装 - Omi特别篇(附演示视频)
  5. 各国国家语言缩写与中文对应表 JAVA工具类
  6. 一周AI看点 | 扎克伯格认为马斯克AI威胁论极不负责任,微软SynNet两步打造可迁移学习的机器阅读理解系统...
  7. ssm大学生时间管理分析系统设计与实现毕业设计源码130930
  8. 计算机是如何执行代码的?
  9. Red Giant Universe 3.0.2 for After Effects 破解版 Mac 红巨星宇宙特效插件包预设
  10. SegNet论文理解