0

我正在使用 OpenMDAO 进行 CNC 车削过程的模拟,并希望为我的 s 实现我自己的“执行程序” Component——就像旧版本 OpenMDAO 中的汽车示例一样,其中SimAcceleration 驱动程序用于实现组件的执行方式。

但是,我不知道如何在 OpenMDAO 1.x 中实现这样的示例,我们可能希望在其中实现自定义逻辑来驱动输入到组件和/或Groups 并从中获取输出。任何指针都会非常有帮助。

PS - 我正在考虑将我的组件包装在 aProblem中,并在另一个 Component 中创建它的实例,并将所有执行逻辑放入其中solve_nonlinear(如建议的here)。但我不确定这是否是处理这个问题的正确方法。

4

1 回答 1

1

我们最近倾向于以不同的方式对时间集成进行建模。我们现在不使用驱动程序,而是使用一个组件来进行集成并将整个时间历史记录输出为一个大数组。您可以查看我们使用卫星设计问题执行此操作的代码。但是,如果您有一个大型模型,其中包含许多要集成的组件,那么嵌套问题或自定义驱动程序都可以解决问题。

如果您要围绕它进行一些优化,我会尝试使用嵌套问题方法。你可以制作你的模型,把它作为一个问题包装起来。然后将该问题交给某种时间积分器,您将其编写为它自己的组件。或者,您可以将问题包装在一个简单的函数中,并将该函数交给一个scipy 集成商

如果您只想及时循环模型,驱动程序将起作用。我会尝试从优化驱动程序之一开始,并使用您自己的 for 循环等对其进行修改。这会很好,并且可能会成为一个有趣的驱动程序。

于 2016-04-06T23:18:11.687 回答