Skip to content

Simbench network AC OPF not converging in pandapower #61

@GabrielBTAdams

Description

@GabrielBTAdams

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions