- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白这个错误:
NameError:源“x”无法连接到目标“AB.x”:目标必须是参数,但“AB.x”未知。
我已阅读此内容 response ,但我仍然缺少一些东西。
我写了一个简单的问题来更容易地捕获问题:
from openmdao.api import Group, Component, IndepVarComp, Problem
class A(Component):
def __init__(self):
super(A, self).__init__()
self.add_param('x', val=0.0)
self.add_param('y', val=0.0)
self.add_output('z', val=0.0)
def solve_nonlinear(self, params, unknowns, resids):
unknowns['z'] = params['x'] + params['y']
class B(Component):
def __init__(self):
super(B, self).__init__()
self.add_param('x', val=0.0)
self.add_param('y', val=0.0)
self.add_output('z', val=0.0)
def solve_nonlinear(self, params, unknowns, resids):
unknowns['z'] = 2*params['x'] - params['y']
class AB(Group):
def __init__(self):
super(AB, self).__init__()
self.add('A', A())
self.add('B', B())
self.add('x', IndepVarComp('x', val=0.0), promotes=['*'])
self.add('y', IndepVarComp('y', val=0.0), promotes=['*'])
self.connect('x', ['A.x', 'B.x'])
self.connect('y', ['A.y', 'B.y'])
class C(Component):
def __init__(self):
super(C, self).__init__()
self.add_param('x', val=0.0)
self.add_param('y', val=0.0)
self.add_output('z', val=0.0)
def solve_nonlinear(self, params, unknowns, resids):
unknowns['z'] = 3*params['x'] - 2*params['y']
class ABC(Group):
def __init__(self):
super(ABC, self).__init__()
self.add('AB', AB())
self.add('C', C())
self.add('x', IndepVarComp('x', val=0.0), promotes=['*'])
self.add('y', IndepVarComp('y', val=0.0), promotes=['*'])
self.connect('x', ['AB.x', 'C.x'])
self.connect('y', ['AB.y', 'C.y'])
prob = Problem()
prob.root = ABC()
prob.setup()
prob.run()
我更喜欢使用 IndepVarComp
方法将组件变量与显式 connect
语句链接在一起,而不是通过 promotes
使用隐式连接,因为我可以更轻松地看到大问题中的联系,并列出所有输入变量。当我构建越来越大的问题时,将多个组中的两个 IndepVarComp 变量链接在一起会很有帮助。
非常感谢您的想法和时间。
最佳答案
在组“AB”中,提升的变量“x”已连接到源:
self.add('x', IndepVarComp('x', val=0.0), promotes=['*'])
self.connect('x', ['A.x', 'B.x'])
在顶部组“ABC”中,相同的“x”变量是“AB.x”,但您尝试再次将其连接到另一个 indepvarcomp:
self.add('x', IndepVarComp('x', val=0.0), promotes=['*'])
self.connect('x', ['AB.x', 'C.x'])
我建议删除“AB”内部的 IndepVarComp 和连接来解决此问题。
更清楚地说,您不能同时连接最多 2 个不同源的组件输入。如果这两个来源有 2 个不同的值,那么哪一个是正确的?这是不明确的,所以我们不允许。
关于python - 在 OpenMDAO 1.x 中链接来自两个组的 IndepVarComp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525825/
我正在尝试熟悉 OpenMDAO。我发现很难理解的一件事是集成/状态变量如何在 OpenMDAO 的单独组件中工作。我认为这很重要,我想了解基础知识。 假设我有一枚推力恒定且质量不断变化的火箭,我想用
我有一个混合整数非线性问题。我不想使用任何惩罚方法,所以我在 Openmdao 中寻找 MINLP 求解器。是否可以在 openmdao 中使用 APOPT 求解器?它在 pyoptsparse 驱动
我的 Dymos 轨迹有 3 个阶段。在第一阶段和最后阶段,我使用攻角作为控制。在第二阶段,我不想控制而是让攻角保持在第一阶段的最后一个值。我在中间阶段使用 opt = False 关闭了攻角优化。我
我最近“被迫”使用无梯度优化器(包括 pyoptsparse 中的优化器) 之前,迭代次数相当低,因此记录数据从来不是一个大问题,我选择了内部记录器。 但是对于超过 30,000 次迭代的优化问题,从
我尝试使用 OpenMDAO 求解简单的隐式方程。方程如下所示, x*z + z - 4 = 0 y = x + 2*z 当 x = 0.5 时,解为 z = 2.666667,y = 5.83333
我对这个 openmdao 错误感到困惑。为什么会提出这个问题?我可以以某种方式告诉 openmdao 我没有梯度并使用有限差分吗?为什么针对 childWeight 提高此值,而不针对 eta 提高
我一直在使用 SLSQP 算法仅使用 ExplicitComponents 来运行一些 MDO 问题。每个组件的运行时间约为 10 秒,有 60-100 个输入变量。大多数输入变量是静态输入变量,在整
下面关于 OpenMDAO 中 SimpleGADriver 文档的链接描述了“默认是一个空字典,其中每个未指定的变量都被假定为一个整数,并且位数是自动计算的” 在文档的例子中,“xI”的值在优化过程
我想运行一个类似于演示的控制系统模拟 here .由于 OpenMDAO 似乎具有基于组件的建模的良好特性,是否可以使用 OpenMDAO 运行这样的模拟? 更具体地说,我现在正在努力完成的是动态系统
我正在通过 OpenMDAO 使用 SLSQP 来解决优化问题。优化工作充分;最后的 SLSQP 输出如下: Optimization terminated successfully. (Exi
我正在尝试按照在 Python 上找到的方向安装 petsc4py website但我收到一个错误。我该如何解决这个找不到正确版本的错误?我的总体目标是能够使用 openMDAO,但我需要从让 pet
我正在使用 OpenMDAO 和普通的 omdao 记录器来解决 Unix 和 Linux 中的问题,即在我的基于 OpenMDAO 的 python 脚本中我这样做: from openmd
我正在尝试在 OpenMDAO 上实现协作优化和其他多层次架构。我读到 here,这可以通过在问题的子类中定义一个单独的 solve_nonlinear 方法来完成。 问题是在运行问题实例时,未调用定
我不明白这个错误: NameError:源“x”无法连接到目标“AB.x”:目标必须是参数,但“AB.x”未知。 我已阅读此内容 response ,但我仍然缺少一些东西。 我写了一个简单的问题来更容
openmdao GUI 在 1.7.0 版本上可用吗?如果是,如何运行它?我发现如何在 0.10.7 版本上运行 GUI,但它在 1.7 上不起作用。 最佳答案 我们不再有 GUI,并且我们为提高性
我一直在使用 NonLinearBlockGS作为nonlinear_solver我的 MDO 系统由 ExplicitComponents 组成这按预期工作。首先,我将其与简单的数学函数一起使用(因
NameError: name 'sys_platform' is not defined 是什么意思?这个错误的原因可能是什么? 编辑 这似乎是 openMDAO 的问题。当我在 openMDAO
我正在尝试使用 openMDAO 的 pyopt-sparse 驱动程序和 NSGA2 算法来解决多目标优化问题。以下是代码: from __future__ import print_functio
我想用Dymos解决最优控制问题: enter image description here 服从动力系统: enter image description here 我有两个问题: (1)如何设置V
我想用Dymos解决最优控制问题: enter image description here 服从动力系统: enter image description here 我有两个问题: (1)如何设置V
我是一名优秀的程序员,十分优秀!