-
Notifications
You must be signed in to change notification settings - Fork 33
Description
This is a copy of the issue posted in pandapower repo to reach a higher amount of feedbackers: e2nIEE/pandapower#2609
Dear all,
As I am trying to connect the utilities of simbench networks for benchmarking and the capabilities of pandapower AC OPF I am running into convergence issues during the optimization with both the integrated pp.runopp() function as well as the pandamodels enhanced pp.runpm_ac_opf() function.
I was wondering if within the community there is experience with the integration of simbench networks for AC OPF and if you were running into similar problems or finding a solution/workaround?
Here is some of my findings and background for the approach I took:
I am working with MV networks e.g. "1-MV-rural--0-no_sw" and "1-MV-urban--0-no_sw"
Using simbench networks for OPF required the adjustment of the network components.
I did it for the required flexibilites:
- net.sgen.min_p_mw / net.sgen.max_p_mw
- net.sgen.min_q_mvar / net.sgen.max_q_mvar
- net.ext_grid.min_p_mw / net.ext_grid.max_p_mw
- net.ext_grid.min_q_mvar / net.ext_grid.max_q_mvar
- net.load.min_p_mw / net.load.max_p_mw
- net.load.min_q_mvar / net.load.max_q_mvar
added network contraints:
- net.line.max_loading_percent
- net.trafo.max_loading_percent
and added cost parameters for the relevant components:
- External Grid (“ext_grid”)
- Static Generator (“sgen”)
I considered the following settings for my testing:
sgen_controllable = True
ext_grid_controllable = False
load_controllable = False
trafo_max_loading_percent = 100.0 # 70.0
line_max_loading_percent = 100.0 # 70.0
With this approach, I have achieved convergence only for the case "1-MV-rural--0-no_sw" considering nan values for the limits min/max_q_mvar for the respective elements to obtain a less restricted solution space as well as a higher nominal power limit for the sgens net_opt.sgen.loc[i, 'max_p_mw'] = net_opt.sgen.loc[i, 'p_mw'] * 80 (no convergence for factors <79) using pp.runopp() - pp.runpm_ac_opf() would not converge on the same problem formulation.
I have been trying to pinpoint the problem around the feasibility of the problem formulation and using quite an open solution space regarding active and reactive power limits. Restricting the min/max_q_mvar would result in not converging from the beginning. That's why I went for undefined limits. The relaxation of the sgen generation limits mentioned above seems to be one hint towards the limited use of the simbench cases for OPF due to infeasible problem formulation for OPF in the first place?
The simplified DC OPF on the other hand was working for all considered cases pp.runpm_dc_opf().
Thank you for your ideas in advance!