OpenMDAO - Dymos将相位结果插入到等距网格上

问题描述

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

解决方法

这将通过使用第二个时间序列输出来完成: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 指定的离散化的插值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...