OpenMDAO-Dymos。将一个阶段的结果插值到等距网格上

OpenMDAO - Dymos. Interpolate the results of a phase onto an equispaced grid

我在转录的输出网格中有一个阶段的结果。要执行一些进一步的分析,我需要将结果放在等距网格中。如何使用生成的并置多项式在新等距网格的坐标处获取我的时间序列输出值?

这将通过使用第二个时间序列输出来完成:https://openmdao.github.io/dymos/features/phases/timeseries.html#interpolated-timeseries-outputs

为此,您需要次级时间序列使用三阶 Gauss-Lobatto 转录。

  • 第 3 个 Gauss-Lobatto 段由 3 个节点组成
  • 每个状态的值在两个端点输入
  • 每个控件的值在两个端点和中点输入
  • 如果未指定,阶段中的段等距间隔
  • 如果我们使用“压缩”转录,连续片段公共点的状态值只提供一次

因此,根据测试用例 here,您可以执行以下操作:

tx_2 = dm.GaussLobatto(num_segments=10, order=3, compressed=True)
phase.add_timeseries('timeseries2', transcription=tx_2, subset='state_input')

Dymos 将执行从相位的主要转录到为 timeseries2 指定的离散化的插值。