Skip to content

Add alternative grid reinforcement methods (grid separation, switch balancing)#340

Open
batuhansanliii wants to merge 49 commits into
devfrom
feature/reinforce_grid_alternatives
Open

Add alternative grid reinforcement methods (grid separation, switch balancing)#340
batuhansanliii wants to merge 49 commits into
devfrom
feature/reinforce_grid_alternatives

Conversation

@batuhansanliii

@batuhansanliii batuhansanliii commented Nov 20, 2022

Copy link
Copy Markdown

Description

Adds an alternative grid reinforcement framework that goes beyond the default "add a parallel
line" measure, implementing the additional methods requested in #377 (grid separation, switch
balancing, etc.) and a selection logic that picks a measure per situation.

Problem (see #377)

Default reinforcement can only add parallel lines, which produces unrealistic results (large
numbers of parallel lines) and offers no logic for choosing an appropriate measure per situation.

Solution

  • New module edisgo/flex_opt/reinforce_grid_alternative.py:
    • reinforce_line_overloading_alternative(...) — orchestrator that selects a measure via
      add_method (relocate_circuit_breaker, add_station_at_half_length,
      split_feeder_at_half_length, add_same_type_of_parallel_line).
    • reinforce_lines_voltage_issues_alternative(...).
  • New measures in edisgo/flex_opt/reinforce_measures.py:
    • add_station_at_half_length / add_station_at_2_3_lengthgrid separation (Netzauftrennung)
    • relocate_circuit_breakerswitch balancing (Lastflusssteuerung über Schaltzustände);
      relocates the open ring circuit breaker to the point of least load/generation difference
      between the two half-rings (consolidates the prototype from [Superseded by #340] Optimal relocation of circuit breakers #296).
    • split_feeder_at_half_length, split_feeder_at_2_3_length,
      add_same_type_of_parallel_line, add_same_type_parallel_line_voltage_issue.
  • Cost extensions in edisgo/flex_opt/costs.py: cost_breakdown, per-cable-type costs,
    circuit-breaker and transformer costs; updated equipment-parameter CSVs and
    config_grid_expansion_default.cfg.
  • Minor changes in tools/plots.py and network/topology.py.

Part of #377. Supersedes #296 (its commit b9036237 is fully contained here).

Type of change

  • New feature (non-breaking change which adds functionality)
  • Breaking change — see open points below (changed cost-function signatures, renamed
    _reinforce_station_overloading)

Current state / open points before merge

  • Branch is CONFLICTING with dev and needs a rebase (dev moved substantially since Nov 2022).
  • No tests yet for the seven new measures.
  • No whatsnew entry; several docstrings are unfinished (e.g. "todo: docstring is to be updated").
  • Potentially breaking: costs.line_expansion_costs / transformer_expansion_costs lost their
    default None argument, and _reinforce_station_overloading was renamed to _station_overloading
    — existing callers need to be checked.
  • A selection logic that automatically picks the cheapest valid measure (rather than requiring an
    explicit add_method) is not yet implemented — see acceptance criteria in [FEATURE] Add grid reinforcement methods #377.

Checklist:

  • New and adjusted code is formatted using the pre-commit hooks
  • New and adjusted code includes type hinting now
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • The Read the Docs documentation is compiling correctly
  • If new packages are needed, I added them to setup.py etc.
  • I have added new features to the corresponding whatsnew file

@joda9 joda9 changed the title Feature/reinforce grid alternatives Add alternative grid reinforcement methods (grid separation, switch balancing) Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants