如何找到在Pypsa lopf中不可行的方程式?

时间:2019-04-04 08:58:54

标签: python logging

我的问题与PyPSA软件的使用有关。我想使用PyPSA优化一个简单的单位承诺问题。优化是不可行的,我正在尝试找出导致不可行的方程式或变量边界。

为此,我尝试调用pyomo.util.infeasible模块中的函数。但是我不确定应该在哪里/如何称呼它们。

尤其是在我的主要代码中,我写了:

# basic imports and declarations
import pypsa

...

import logging

logging.basicConfig(level=logging.ERROR)
pypsa.opf.logger.setLevel(logging.INFO)

from pyomo.util.infeasible import log_infeasible_constraints 

# define network
...

# run optimization
network.lopf(network.snapshots)
log_infeasible_constraints(network)

,但这不会返回有关不可行的任何日志信息。

接下来,我认为也许应该在构建和解决优化问题的opf.py文件中调用不可行功能,因此我在顶部添加了:

# my addition on the opf.py file
from pyomo.util.infeasible import log_infeasible_constraints

..

,并在network_lopf(..)函数内部,最后:

log_infeasible_constraints(network)

但同样,什么也没有。

我认为无法解决此问题的原因在于,我对主要代码pypsa和pyomo的通信方式了解甚少。如果有人可以指出我的方法出了什么问题,以及我应该在哪里/如何“询问” pyPSA来向我展示不可行的约束,这将非常有帮助。感谢您抽出宝贵的时间阅读我的问题!

0 个答案:

没有答案