如何解决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
指定的离散化的插值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。