一、背景介绍
在本节中,将利用STK软件构建太空目标监视雷达的仿真模型,并且通过给定的空间目标,能够分析优选探测雷达搜索屏设置方案,能够模拟生成雷达跟踪测量数据,之后根据初轨确定和轨道改进的原理,针对给定的探测数据,编写MATLAB程序,实现目标轨道的确定。
二、案例仿真
1、创建一个场景,初始化场景,添加地面设施,以及相关的传感器,代码如下
clear;clc
%% 太空态势感知仿真任务
uiApplication = actxGetRunningServer('STK11.application');
% Get our IAgStkObjectRoot interface
root = uiApplication.Personality2;
checkempty = root.Children.Count;
if checkempty ~= 0
root.CurrentScenario.Unload
root.CloseScenario;
end
%% 根据你的需要设定场景的名称
root.NewScenario('RadarDetectSim');
StartTime = '20 Mar 2024 17:00:00.000'; % 场景开始时间
StopTime = '21 Mar 2024 17:00:00.000'; % 场景结束时间
root.ExecuteCommand(['SetAnalysisTimePeriod * "',StartTime,'" "',StopTime,'"']);
root.ExecuteCommand(' Animate * Reset');
root.ExecuteCommand(['New / */Facility Radar_01']);
root.ExecuteCommand(['SetPosition */Facility/Radar_01 Geodetic 30 115 0.0 MSL']);
root.ExecuteCommand(['New / */Facility/Radar_01/Sensor 3DegSearch']);
root.ExecuteCommand(['Define */Facility/Radar_01/Sensor/3DegSearch Conical 85 86.2 100 220']);
root.ExecuteCommand(['SetConstraint */Facility/Radar_01/Sensor/3DegSearch Range Min 200000 Max 4500000'])
root.ExecuteCommand(['New / */Facility/Radar_01/Sensor 25DegSearch']);
root.ExecuteCommand(['Define */Facility/Radar_01/Sensor/25DegSearch Conical 64 65.2 100 220']);
root.ExecuteCommand(['SetConstraint */Facility/Radar_01/Sensor/25DegSearch Range Min 200000 Max 4500000']);
root.ExecuteCommand(['Graphics */Facility/Radar_01/Sensor/25DegSearch Projection RangeConstraint']);
root.ExecuteCommand(['Graphics */Facility/Radar_01/Sensor/3DegSearch Projection RangeConstraint']);
添加的搜索屏效果图
2、利用TLE双行轨道根数插入卫星
root.ExecuteCommand(['New / */Satellite TERRA_25994'])
root.ExecuteCommand(['SetState */Satellite/TERRA_25994 SGP4 UseScenarioInterval 60.0 25994 TLESource Automatic Source File "D:\TLE-Terra.txt" UseTLE All SwitchMethod Epoch']);
3、进行可视性分析,结果如图所示
bb=root.ExecuteCommand(['Access */Satellite/TERRA_25994 */Facility/Radar_01/Sensor/3DegSearch TimePeriod UseScenarioInterval'])
root.ExecuteCommand(['ReportCreate */Satellite/TERRA_25994 Type Display Style "Access" AccessObject */Facility/Radar_01/Sensor/3DegSearch'])
root.ExecuteCommand(['GraphCreate */Satellite/TERRA_25994 Type Display Style "Access" AccessObject */Facility/Radar_01/Sensor/3DegSearch'])
root.ExecuteCommand(['ReportCreate */Satellite/TERRA_25994 Type Display Style "Access" AccessObject */Facility/Radar_01/Sensor/25DegSearch'])
root.ExecuteCommand(['GraphCreate */Satellite/TERRA_25994 Type Display Style "Access" AccessObject */Facility/Radar_01/Sensor/25DegSearch'])
4、生成卫星穿过两个雷达的AER报告,即得到下一步的定轨数据
root.ExecuteCommand(['ReportCreate */Satellite/TERRA_25994 Type Display Style "AER" AccessObject */Facility/Radar_01/Sensor/3DegSearch']);
root.ExecuteCommand(['ReportCreate */Satellite/TERRA_25994 Type Display Style "AER" AccessObject */Facility/Radar_01/Sensor/25DegSearch']);
root.ExecuteCommand(['GraphCreate */Satellite/TERRA_25994 Type Display Style "AER" AccessObject */Facility/Radar_01/Sensor/3DegSearch']);
root.ExecuteCommand(['GraphCreate */Satellite/TERRA_25994 Type Display Style "AER" AccessObject */Facility/Radar_01/Sensor/25DegSearch']);
5、设计一个跟踪波束雷达,代码如下
root.ExecuteCommand(['New / */Facility/Radar_01/Sensor Target_01']);
root.ExecuteCommand(['Define */Facility/Radar_01/Sensor/Target_01 SimpleCone 1.5']);
root.ExecuteCommand(['Point */Facility/Radar_01/Sensor/Target_01 Targeted Tracking Satellite/TERRA_25994']);
root.ExecuteCommand(['SetConstraint */Facility/Radar_01/Sensor/Target_01 Range Min 200000 Max 4500000'])
root.ExecuteCommand(['SetConstraint */Facility/Radar_01/Sensor/Target_01 AzimuthAngle Min 100 Max 220 '])
root.ExecuteCommand(['SetConstraint */Facility/Radar_01/Sensor/Target_01 ElevationAngle Min 3 Max 85'])
root.ExecuteCommand(['Graphics */Facility/Radar_01/Sensor/Target_01 SetColor red']);
%% Access生成报告
root.ExecuteCommand(['ReportCreate */Satellite/TERRA_25994 Type Display Style "AER" AccessObject */Facility/Radar_01/Sensor/Target_01 TimeStep 1' ])
观测效果图