Как я могу найти, какие уравнения недопустимы в Pypsa Lopf? - PullRequest
0 голосов
/ 04 апреля 2019

Моя проблема связана с использованием программного обеспечения 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 показать мне невыполнимые ограничения. Спасибо, что нашли время, чтобы прочитать мой вопрос!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...