GMAT R2017a 版本注释

R2017a 简要说明

经过一年多的开发,R2017a 终于 2017 年 7 月 18 日在 SF 上发布,虽然官方网站并未未对此次发布作任何说明,但通过版本注释可以获得 R2017a 的新特性。此外,还可通过访问 开发面板 了解 R2017a 开发记录及 Bug 列表。下面对 Release Notes 作简单翻译。

R2017a 新特性

1. 定轨能力强化


定轨方面,R2017a 增加了如下新功能:

  • 新增了对三种数据类型的处理支持:1) GPS 导航状态矢量 (GPS_PosVec);2) 距离测量数据 (Range);3) 距离变化率数据 (RangeRate)。注意,这三种数据类型都经过反复测试,但只有 DSN 距离变化率数据通过了应用级测试,即 DSN 距离变化率数据对于 GMAT 来说是可靠的数据。
  • 扩展卡尔曼滤波器算法经小范围测试和归档后形成的 alpha 版本现在可用于实验性质的使用。 此插件可用,但默认情况下处于关闭状态。要使用它,请在启动文件中启用 “libEKF” 插件。
  • 增加了二级数据编辑功能,此功能允许您选择未在估计状态更新中使用的观测值。

2. STK .e 格式星历预报器


GMAT 现在支持使用 AGI 的 .e 星历文件格式的预报器。 有关更多信息,请参阅 Propagator 参考。

3. 文件管理工具


GMAT 现在可以使用 Python 文件管理器管理经验数据更新。该实用程序允许用户轻松更新闰秒、EOP、空间天气和其他文件,并可选择归档旧版本。有关详细信息,请参阅配置 GMAT 数据文件部分。运行该实用程序时,用户将看到如下所示的输出(以下数据仅是输出的部分摘要)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--------UPDATING GMAT LEAP SECOND FILE ------------------------------
Process Began At 2017-06-01-11:23:55
--------Downloading tai-utc.dat
tai-utc.dat downloaded successfully
tai-utc.dat archived successfully to 2017-06-01-11h23m55s_tai-utc.dat
tai-utc.dat updated successfully
Process Finished At 2017-06-01-11:23:55

--------UPDATING GMAT EOP FILE --------------------------------
Process Began At 2017-06-01-11:23:55
--------Downloading eopc04_08.62-now
eopc04_08.62-now downloaded successfully
eopc04_08.62-now archived successfully to
2017-06-01-11h23m57s_eopc04_08.62-now
eopc04_08.62-now updated successfully

---------UPDATING SPICE LEAP SECOND FILE -----------------------
Process Began At 2017-06-01-11:23:57
--------Downloading naif0011.tls
SPICELeapSecondKernel.tls downloaded successfully
--------Downloading naif0012.tls
SPICELeapSecondKernel.tls downloaded successfully
SPICELeapSecondKernel.tls archived successfully to
2017-06-01-11h24m00s_SPICELeapSecondKernel.tls
SPICELeapSecondKernel.tls updated successfully
Process Finished At 2017-06-01-11:24:00

4. CSALT 独立库与工具箱配置工具


GMAT 现在有一个独立的 C++ 库,用于通过搭配 CSALT解决最优控制问题。 该库经过了充分测试,可用于应用程序,目前正在与 GMAT 集成。 CSALT 库不通过 GMAT 接口公开,但熟悉 C++ 编程的用户现在可以使用 CSALT 解决最优控制问题。源代码将通过 SourceForge 提供。 CSALT 正在整合进入 GMAT,并计划在下一个 GMAT 版本发布时完成。有关 CSALT 库的更多信息,请参阅随 GMAT 分发的 docs 文件夹中名为 CSALT_CollocationBenchmarkingResults.pdf 的论文。

5. API 接口雏形


一个还处于雏形阶段的 API 正在紧密锣鼓的开发中, 不可在生产环境中视同,只在 SourceForge 中单独分发,并标注为 “Alpha”。API 使用 SWIG 将 GMAT 的功能提供给多种语言。目前,已经在 MATLAB 中调用的 JAVA 接口上进行了初步测试。下面的代码片段展示了如何通过 MATLAB 调用 JAVA 接口来计算作用在航天器上的轨道加速度。还执行了一些 Python 接口测试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
% Load GMAT
scriptFileName = fullfile(pwd, 'gmat.script');
[myMod, gmatBinPath, result] = load_gmat(scriptFileName);

% Get the SolarSystem object from GMAT
ss = myMod.GetDefaultSolarSystem();

% Prepare the force model to be used for dynamics
fm = myMod.GetODEModel('DefaultProp_ForceModel');
state = gmat.GmatState(6+6^2);
fm.SetSolarSystem(ss); % Set solar system pointer in force model
fm.SetState(state); % Provide force model with the state placeholder

% Create new Spacecraft
sat = gmat.Spacecraft('Sat');

% Create PropagationStateManager to manage calculation of derivatives
propManager = gmat.PropagationStateManager();
propManager.SetObject(sat); % Add sat PropagationStateManager
propManager.SetProperty('AMatrix', sat); % Want to calculate Jacobian
propManager.BuildState();

% Tell force model to use propmanager
fm.SetPropStateManager(propManager);
fm.UpdateInitialData(); % Update model with changes
fm.BuildModelFromMap(); % Sets up the models in the force model
state = gmat.gmat.convertJavaDoubleArray(x(:,tIndex));

% Compute the orbital accelerations including variational terms
fm.GetDerivatives(state, t(tIndex), 1); % Calculate derivatives
deriv = fm.GetDerivativeArray(); % Get calculated derivatives
derivArray = gmat.gmat.convertDoubleArray(deriv, 42);

R2017a 性能改进

  • 用户现在可以通过命令行界面定义 GMAT 启动和日志的文件名称和位置。 这在同时运行多个 GMAT 会话或具有复杂的自定义文件配置时非常有用。
  • 用户现在可以用米为单位编写 STK ephem 文件(之前只支持 km)。
  • 用户现在可以编写没有离散事件边界的 STK ephem 文件。

R2017a 兼容性变化

  • GMAT 现在需要 Python 3.6.x。
  • Schatten 文件不再需要文件顶部的 “PREDICTED SOLAR DATA” 关键字。
  • GMAT 用的多个数据文件的名称和位置不再是硬编码,它们的名称和位置在 bin 目录中的文件 gmat_startup_file.txt 中设置。如果用户使用自定义启动文件,则必须在启动 GMAT 之前将以下行添加到启动文件中。请注意,与 GMAT 一起分发的启动文件已经添加了这些设置。这种向后兼容的模式仅影响自定义其启动文件的用户。
1
2
3
4
5
EARTH_LATEST_PCK_FILE    = PLANETARY_COEFF_PATH/earth_latest_high_prec.bpc
EARTH_PCK_PREDICTED_FILE = PLANETARY_COEFF_PATH/SPICEEarthPredictedKernel.bpc
EARTH_PCK_CURRENT_FILE = PLANETARY_COEFF_PATH/SPICEEarthCurrentKernel.bpc
LUNA_PCK_CURRENT_FILE = PLANETARY_COEFF_PATH/SPICELunaCurrentKernel.bpc
LUNA_FRAME_KERNEL_FILE = PLANETARY_COEFF_PATH/SPICELunaFrameKernel.tf
  • 为了整个系统的一致性,导航功能的语法已经发生了重大变化。有关详细信息,请参阅 Tracking Data Types for OD 中的 Deprecated Measurement Type Names 部分内容。

© Copyright by Spacefan 2017~2019.

留言