最近在研究Matlab调控EOIR模块,心血来潮想出一个STK与matlab联动的教学,后续将持续更新,和大家一起共同学习。
1.STK启动
本文以STK12为例,其他版本可自行修改标黄处。
uiapp = actxserver('STK12.application');
root = uiapp.Personality2;
uiapp.visible = 1;
2.场景Scenario设置
%场景名称设置
root.NewScenario('Scenario1');
%场景时间单位设置(UTCG,按格里高利时间显示的UTC时)
root.UnitPreferences.Item('DateFormat').SetCurrentUnit('UTCG');
%场景起始时间和终止时间设置
root.CurrentScenario.SetTimePeriod('20 Feb 2024 04:00:00.000', '21 Feb 2024 04:00:00.000');
%与场景起始时间一致
root.CurrentScenario.AnalysisEpoch.SetExplicitTime('20 Feb 2024 04:00:00.000');
3.场景Scenario下一级目标设置:
1)Matlab代码格式:
root.ExecuteCommand(' New / */(目标类型) (目标名称-自己设置) ');
2)具体案例:
- 区域目标(AreaTarget)设置
root.ExecuteCommand('New / */AreaTarget MyAreaTarget');
- 地面站(Facility)设置
root.ExecuteCommand('New / */Facility MyFacility');
- 导弹(Missile)设置
root.ExecuteCommand('New / */Missile MyMissile');
- 空中飞行器(Aircraft)设置
root.ExecuteCommand('New / */Aircraft MyAircraft');
- 卫星(Satellite)设置
root.ExecuteCommand('New / */Satellite MySatellite');
- 星座(Constellation)设置
root.ExecuteCommand('New / */Constellation MyConstellation');
root.ExecuteCommand('Chains */Constellation/MyConstellation Add Satellite/MySatellite');
root.ExecuteCommand('Chains */Constellation/MyConstellation Add Facility/MyFacility');
4.场景Scenario下二级目标设置:
1)Matlab代码格式:
root.ExecuteCommand(' New / */(一级目标类型)/(一级目标名称-自己设置)/(二级目标类型)/ (二级目标名称-自己设置)');
2)具体案例:
- 天线(Antenna)设置
root.ExecuteCommand('New / */Satellite/MySatellite/Antenna MyAntenna');
- 接收机(Receiver)设置
root.ExecuteCommand('New / */Satellite/MySatellite/Receiver MyReceiver');
- 雷达(Radar)设置
root.ExecuteCommand('New / */Satellite/MySatellite/Radar MyRadar');
- 传感器(Sensor)设置
root.ExecuteCommand('New / */Satellite/MySatellite/Sensor MySensor');