问题描述
我在转录的输出网格中有一个阶段的结果。为了进行一些进一步的分析,我需要将结果放在等距网格中。如何使用生成的并置多项式在新等距网格的坐标处获得时间序列输出的值?
解决方法
这将通过使用第二个时间序列输出来完成:https://openmdao.github.io/dymos/features/phases/timeseries.html#interpolated-timeseries-outputs
为此,您需要二级时间序列使用三阶 Gauss-Lobatto 转录。
- 第三个 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
指定的离散化的插值。