优化 OpenMDAO 中的一个问题,使 objective 取特定值

Optimizing a problem in OpenMDAO so that objective takes specific value

我想知道是否有可能以 objective 接近指定值而不是最小化或最大化 objective 的方式优化 OpenMDAO 中的问题?

例如:

prob.model.add_objective("objective1", equals=10)

无法指定约束。

您不能像这样为 objective 指定相等性。您可以指定一个给定的 objective,然后再为该相同的值添加一个等式约束。这在技术上是有效的,但它是提出优化问题的一种非常奇怪的方式。

如果您希望改变特定的设计变量以满足等式约束,那么您可能根本不想进行优化。相反,您可能想要使用求解器。您可以使用求解器来改变一个变量,也可以改变多个变量(只要每个变量有一个等式约束)。可以在此处找到使用求解器的通用示例,setting up a basic nonlinear circit analysis

但是,在您的情况下,您更有可能希望使用 BalanceComp。您可以使用这样的初始参数将特定的固定值设置到余额的右侧:

bal = BalanceComp()
bal.add_balance('x', val=1.0, rhs_val=3.0)

然后您可以将您想要固定为该值的变量连接到天平的左侧。