使用 OpenMDAO 进行结构优化
Structural optimization with OpenMDAO
我最近开始使用 OpenMDAO,我仍在学习使用它。我正在使用 OpenMDAO 来优化系统的结构设计。我使用我的分析模型(当然有假设)来计算我系统的最大应力和自然频率,这是优化中的约束。由于我使用的是分析模型,因此我给出了偏导数(分析方法)以方便全导数计算。这缩小了我广泛的设计范围。但是,如果我想获得更实际的应力和频率值,我将不得不使用外部 FEM 求解器而不是我的分析模型。但是这样我就无法计算优化所需的导数。是否可以在 OpenMDAO 框架的上下文中集成外部 FEM 求解器?如果是,如何?
我确实遇到了 OpenAeroStruct。我假设它有一种内置的方法来计算导数。但它似乎更倾向于飞机设计。据我所知,我找不到用它来计算上述值(压力和频率)的方法。
我的最终目标是整合剩余的子系统(电力、热力等也会影响结构设计)并获得最佳设计。因此,独立的结构优化器不会带来好处。谢谢。
可以在 OpenMDAO 中使用外部代码,有或没有衍生品。如果需要,您可以随时对残差评估进行 FD。看看 ExternalCodeImplicitComp docs
还有,你看过TACS吗?它是一个 python 包含非常有用的导数的 FEM 求解器。它应该很容易包装到 OpenMDAO 中:
我最近开始使用 OpenMDAO,我仍在学习使用它。我正在使用 OpenMDAO 来优化系统的结构设计。我使用我的分析模型(当然有假设)来计算我系统的最大应力和自然频率,这是优化中的约束。由于我使用的是分析模型,因此我给出了偏导数(分析方法)以方便全导数计算。这缩小了我广泛的设计范围。但是,如果我想获得更实际的应力和频率值,我将不得不使用外部 FEM 求解器而不是我的分析模型。但是这样我就无法计算优化所需的导数。是否可以在 OpenMDAO 框架的上下文中集成外部 FEM 求解器?如果是,如何?
我确实遇到了 OpenAeroStruct。我假设它有一种内置的方法来计算导数。但它似乎更倾向于飞机设计。据我所知,我找不到用它来计算上述值(压力和频率)的方法。
我的最终目标是整合剩余的子系统(电力、热力等也会影响结构设计)并获得最佳设计。因此,独立的结构优化器不会带来好处。谢谢。
可以在 OpenMDAO 中使用外部代码,有或没有衍生品。如果需要,您可以随时对残差评估进行 FD。看看 ExternalCodeImplicitComp docs
还有,你看过TACS吗?它是一个 python 包含非常有用的导数的 FEM 求解器。它应该很容易包装到 OpenMDAO 中: