Python MDO测试套件丙烷燃烧

Python MDO测试套件丙烷燃烧,python,openmdao,Python,Openmdao,我遇到了一些我无法解决的错误。有人能帮我吗? 这是我的密码 提前谢谢 from openmdao.main.api import Assembly, set_as_top from openmdao.lib.drivers.api import SLSQPdriver from openmdao.lib.optproblems import PropaneDisciplines class PropIDF(Assembly): def configure(self):

我遇到了一些我无法解决的错误。有人能帮我吗? 这是我的密码

提前谢谢

from openmdao.main.api import Assembly, set_as_top
from openmdao.lib.drivers.api import SLSQPdriver
from openmdao.lib.optproblems import PropaneDisciplines

class PropIDF(Assembly):

    def configure(self):

        # create Optimizer instance
        self.add('driver', SLSQPdriver())

        # Disciplines
        self.add('dis1', PropaneDisciplines.PropDiscipline1())
        self.add('dis2', PropaneDisciplines.PropDiscipline2())
        self.add('dis3', PropaneDisciplines.PropDiscipline3())

        # Driver process definition
        self.driver.workflow.add(['dis1', 'dis2', 'dis3'])


        # Optimization parameters
        self.driver.add_objective('(dis1.z1)*2+ dis1.y13+ dis1.y123+ dis1.z4+ dis2.y2+ dis3.y3+ (dis2.y23)*2- 10 +\
                              (abs(dis1.y13 * dis1.y123)**0.5) - (abs((40 * dis1.z1/ dis3.y32)**0.5))*dis1.z3 +\
                              (abs(dis1.y13 * dis1.z1)**0.5) - (abs((40 * dis1.y123/ dis3.y32)**0.5))*dis1.z4 +\
                              (dis1.z1 * (abs(dis1.z3)**0.5)) - (dis1.y123 * dis2.y2 * (abs(40 / dis3.y32)**0.5))')


        #Global Design Variables
        self.driver.add_parameter(('dis1.z1','dis2.z1', 'dis3.z1'), low =-1e99, high=1e99)
        self.driver.add_parameter(('dis1.z2', 'dis2.z2', 'dis3.z2'), low=-1e99, high=1e99)
        self.driver.add_parameter(('dis1.z3', 'dis2.z3', 'dis3.z3'), low=-1e99, high=1e99)
        self.driver.add_parameter(('dis1.z4', 'dis2.z4', 'dis3.z4'), low=-1e99, high=1e99)

        self.driver.add_constraint('(dis1.z1)*2+ dis1.y13+ dis1.y123+ dis1.z4+ dis2.y2+ dis3.y3+ (dis2.y23)*2- 10 < 0')
        self.driver.add_constraint('(abs(dis1.y13*dis1.y123)**0.5) -(abs((40 * dis1.z1/ dis3.y32)**0.5))*dis1.z3 <= 0')
        self.driver.add_constraint('(abs(dis1.y13*dis1.z1)**0.5) -(abs((40 * dis1.y123/ dis3.y32)**0.5))*dis1.z4 <=0')
        self.driver.add_constraint('(dis1.z1*(abs(dis1.z3)**0.5))-(dis1.y123*dis2.y2*(abs(40 / dis3.y32)**0.5))>= 0')

        self.driver.iprint = 0


if __name__ == "__main__":

    import time

    prob = PropIDF()

    prob.dis1.z1 = prob.dis2.z1 = prob.dis3.z1 = 2.0
    prob.dis1.z2 = prob.dis2.z2 = prob.dis3.z2 = 2.0
    prob.dis1.z3 = prob.dis2.z3 = prob.dis3.z3 = 2.0
    prob.dis1.z4 = prob.dis2.z4 = prob.dis3.z4 = 2.0
    prob.dis1.y13 = 1.0
    prob.dis1.y123 = 1.0
    prob.dis3.y31 = 1.0
    prob.dis2.y2 = 1.0
    prob.dis3.y3 = 1.0
    prob.dis2.y23 = 1.0
    prob.dis3.y32 = 1.0


    tt = time.time()
    prob.run()

    print "\n"
    print "Minimum found at (%f, %f, %f, %f)" % (prob.dis1.z1, \
                                         prob.dis1.z2, \
                                         prob.dis1.z3, \
                                         prob.dis1.z4)
    print "Couping vars from discipline 1: %f, %f" % (prob.dis1.y13, prob.dis1.y123)
    print "Coupling vars from discipline 2: %f, %f" % (prob.dis2.y2, prob.dis2.y23)
    print "Coupling vars from discipline 2: %f, %f, %f" %(prob.dis3.y31, prob.dis3.y3, prob.dis3.y32)
    print "Minimum objective: ", prob.driver.eval_objective()
    print "Elapsed time: ", time.time()-tt, "seconds"
从openmdao.main.api导入程序集中,将_设置为_top
从openmdao.lib.drivers.api导入SLSQPdriver
从openmdao.lib.optproblems导入PropedDisciplines
等级DF(装配):
def配置(自):
#创建优化器实例
self.add('driver',SLSQPdriver())
#纪律
self.add('dis1',propadeDisciplines.PropDiscipline1())
self.add('dis2',propadeDisciplines.PropDiscipline2())
self.add('dis3',propadeDisciplines.PropDiscipline3())
#驱动程序进程定义
self.driver.workflow.add(['dis1','dis2','dis3']))
#优化参数
自我驱动程序添加_目标('(dis1.z1)*2+dis1.y13+dis1.y123+dis1.z4+dis2.y2+dis3.y3+(dis2.y23)*2-10+\
(abs(dis1.y13*dis1.y123)**0.5)-(abs(40*dis1.z1/dis3.y32)**0.5))*dis1.z3+\
(abs(dis1.y13*dis1.z1)**0.5)-(abs(40*dis1.y123/dis3.y32)**0.5))*dis1.z4+\
(dis1.z1*(abs(dis1.z3)**0.5))-(dis1.y123*dis2.y2*(abs(40/dis3.y32)**0.5)))
#全局设计变量
self.driver.add_参数(('dis1.z1','dis2.z1','dis3.z1'),低=1e99,高=1e99)
self.driver.add_参数(('dis1.z2','dis2.z2','dis3.z2'),低=1e99,高=1e99)
self.driver.add_参数(('dis1.z3','dis2.z3','dis3.z3'),低=1e99,高=1e99)
self.driver.add_参数(('dis1.z4','dis2.z4','dis3.z4'),低=1e99,高=1e99)
self.driver.add_约束('(dis1.z1)*2+dis1.y13+dis1.y123+dis1.z4+dis2.y2+dis3.y3+(dis2.y23)*2-10<0')

self.driver.add_constraint('(abs(dis1.y13*dis1.y123)**0.5)-(abs((40*dis1.z1/dis3.y32)**0.5))*dis1.z3因为您是从
openmdao.main.api
导入的,看起来您正在尝试开发一个非常旧版本的openmdao(<0.13.X)


您需要将代码更新到OpenMDAO 1.x,因为旧版本不再受支持。

因为您是从
OpenMDAO.main.api
导入的,看起来您正在尝试使用非常旧的OpenMDAO版本(<0.13.x)


您需要将代码更新到OpenMDAO 1.x,因为旧版本不再受支持。

我尝试安装OpenMDAO-0.13.0,但无法解析https:\conda.binstar.org


当我尝试安装较低版本时,它很容易安装。对较高版本有什么特殊要求吗?

我尝试安装openmdao-0.13.0,但它无法解析https:\conda.binstar.org


当我尝试安装较低版本时,它很容易安装。对较高版本有什么具体要求吗?

我也有Anaconda的问题。我在Fedora 25机器上运行。相反,我必须先手动安装每个依赖项,然后是openmdao。现在一切都很好,但这是一件苦差事。

我也有prAnaconda的问题。我在Fedora25机器上运行。取而代之的是,我必须先手动安装每个依赖项,然后再安装openmdao。现在所有这些都可以很好地工作,但这是一件琐事

  File "D:/OpenMDAO/Mitul/Problems/Propane_Combustion/IDF.py", line 55, in <module>

    prob = PropIDF()

  File "d:\anaconda2\lib\site-packages\openmdao\main\assembly.py", line 182, in __init__

    set_as_top(self, first_only=True)

  File "d:\anaconda2\lib\site-packages\openmdao\main\assembly.py", line 78, in set_as_top

    cont.cpath_updated()

  File "d:\anaconda2\lib\site-packages\openmdao\main\component.py", line 420, in cpath_updated

    self.configure()

  File "D:/OpenMDAO/Mitul/Problems/Propane_Combustion/IDF.py", line 20, in configure

    self.add('f2', (dis1.z1)*2+ dis1.y13+ dis1.y123+ dis1.z4+ dis2.y2+ dis3.y3+ (dis2.y23)*2- 10)