使用pyomo和glpk求解器,我定义了以下射影规则:

def cost_rule(m):
    return (sum(m.rd[i]*m.pRdImp*m.dt - m.vr[i]*m.pRdExp*m.dt for i in m.t) + m.cb + m.cPV + (150+10*m.kWp) )
m.cost = Objective(rule=cost_rule)


如果我知道在找到最小值后比较输出,则会得到不同的结果:

sum(m.rd[i]()*m.pRdImp()*m.dt() - m.vr[i]()*m.pRdExp()*m.dt() for i in t_t) + m.cPV() + m.cb() + (150+5*m.kWp())
Out[46]: 1136.468

m.cost()
Out[43]: 1173.178


(m.t和t_t是代表一年中各个小时的范围集)
这是大约3%的误差,任何想法可能从何而来?如果我需要选择一个值,那么哪个值才是正确的。

提前致谢!

最佳答案

表达式是不同的。第一个的最后一项是(150+10*m.kWp),第二个的最后一项是(150+5*m.kWp())

关于python - pyomo精度;目标规则不返回期望值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56543900/

10-13 09:37