【问题标题】:Dymos tricky phase connectionDymos 棘手的相位连接
【发布时间】:2021-01-05 22:40:37
【问题描述】:

我的 Dymos 轨迹分为 3 个阶段。在第一阶段和最后阶段,我使用攻角作为控制。在第二阶段,我不想控制,只是让攻角保持在第一阶段的最后一个值。我用 opt = False 在中间阶段关闭了迎角优化。我使用 add_link_constraint() 将第一阶段和第二阶段之间的 alpha 连接起来,但这并没有像我想象的那样工作 --- 在第二阶段,alpha 默认为零,并在第一阶段结束时强制 alpha 为零。不知道如何让它覆盖。

【问题讨论】:

    标签: openmdao


    【解决方案1】:

    在这种情况下,由于 alpha 在第二阶段不是动态的,而您只是希望它保持其值,因此您应该将其设为 参数 而不是 控件 .

    让它的值由优化器确定(通过设置 opt=True),并使用相位链接约束来强制 dymos 驱动 alpha 值与第一阶段结束和第二阶段开始之间的差异相位为零。

    有一个测试用例证明了这个here。在测试用例中,控制角u1在第一阶段和第三阶段(在推进时)是动态控制,在第二阶段(滑行)保持恒定值。

    此测试用例在 Trajectory 上使用link_phases 方法来施加连续性(链接)约束。或者,add_linkage_constraint 方法更通用,但使用起来更复杂。

    请注意,此功能是 Dymos 的新功能,因此我建议使用最新版本。

    在这种情况下,将其保留为优化控件不起作用,因为链接只会尝试链接第二阶段端点处的值。内部值对优化没有任何影响。

    【讨论】:

    • 谢谢你,Rob,成功了!我曾尝试在第二阶段将 alpha 定义为参数并链接它,但没有设置 opt=True
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2021-02-07
    • 2011-07-28
    相关资源
    最近更新 更多