如何在Pyomo中的函数中使用变量

时间:2018-12-30 17:27:37

标签: python-3.x pyomo

我在pyomo中定义了一个函数,如下所示:

def func(model,i):

    alpha = (model.a[i]+model.b[i])/2

    X = model.W1[i] if i in model.Vc3 else model.W2[i]

    return fuzz.trimf(np.array([X]), [model.a[i], alpha, model.b[i]])

model.func = Expression(model.VcT, rule = func)

def Cons003(model,i):
    return model.Mu[i] - model.func(model,i) <=  M * (1- model.P[i])

model.Cons003 = Constraint(model.VcT , rule = Cons003)

def Cons004(model,i):
    return model.Mu[i] - model.func(model,i) >= M * (1- model.P[i])

model.Cons004 = Constraint(model.VcT , rule = Cons004)

当我执行代码时,我得到如下错误提示:

  

未初始化的NumericValue对象没有值

model.W1[i]model.W2[i]是问题变量。

我该如何解决这个问题?

您可以在here中找到模型和数据文件。

0 个答案:

没有答案