Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
a8d01ca
Realizing the PF and tan(phi) controller for the most current version…
MMatthiessen Oct 28, 2025
d4bd26b
Realizing the PF and tan(phi) controller for the most current version…
MMatthiessen Oct 28, 2025
4d18100
WOP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Oct 30, 2025
397f548
WOP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Nov 4, 2025
afd3ccc
WOP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Nov 4, 2025
dabdcf3
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Nov 6, 2025
9061ddb
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Nov 10, 2025
0e309ae
WOP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Nov 10, 2025
96e7e20
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Nov 18, 2025
9dd70ed
WIP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Nov 18, 2025
81fb11d
WIP Realizing the PF and tan(phi) controller for the most current ver…
MMatthiessen Nov 21, 2025
afded7a
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Nov 24, 2025
b4cc266
Adding a check to BSC for convergence of linked droop controller (if …
MMatthiessen Nov 24, 2025
c7e587a
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Dec 1, 2025
f7e5124
Adding a check to BSC for convergence of linked droop controller (if …
MMatthiessen Dec 4, 2025
8b4cdfc
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Dec 4, 2025
63b5dea
Merge remote-tracking branch 'origin/pushable_changes_of_station_cont…
MMatthiessen Dec 4, 2025
f8f4484
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Dec 9, 2025
33dc703
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Jan 9, 2026
c8f87ae
Merging latest development branch.
MMatthiessen Jan 9, 2026
c843862
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
041aa88
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
edc33b2
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
91a12f4
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
332886e
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
8508d56
Changing control_modus logic to convert string to enum element intern…
MMatthiessen Jan 10, 2026
1d5191e
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Jan 20, 2026
487c3ca
- Adding PF factor of 0 handling to BSC
MMatthiessen Jan 20, 2026
964f6db
- Correcting import function for new strings and control_modus attribute
MMatthiessen Jan 21, 2026
574454e
- WIP Correcting import function
MMatthiessen Feb 1, 2026
502e5bd
- Correcting import function for correct importation of new control_modi
MMatthiessen Feb 1, 2026
0cc2937
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Feb 1, 2026
0f9bd6b
- Correcting import function for correct importation of new control_modi
MMatthiessen Feb 1, 2026
1caf575
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Feb 1, 2026
7cd69c1
- Updating changelog and requirements to display implemented changes
MMatthiessen Feb 1, 2026
b43d7df
- minor fixes
MMatthiessen Feb 1, 2026
2aa5d9b
Added Enum for v_ctrl_q_droop_local
hilbrich Feb 2, 2026
6556514
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Feb 5, 2026
2be8aaa
Added Enum for adjusted local controllers
hilbrich Feb 16, 2026
6b4a8d3
Merge remote-tracking branch 'mesian/pushable_changes_of_station_cont…
hilbrich Feb 16, 2026
d1465e5
Merge branch 'develop' into pushable_changes_of_station_controller
MMatthiessen Feb 17, 2026
0ddff1b
- minor fixes
MMatthiessen Feb 17, 2026
49b19b4
adjusted indent in test
hilbrich Feb 25, 2026
5cbee75
Merge branch 'e2nIEE:develop' into pushable_changes_of_station_contro…
MMatthiessen Feb 26, 2026
ce9527b
Merge branch 'develop' into pushable_changes_of_station_controller
vogt31337 Feb 26, 2026
2c03060
Merge remote-tracking branch 'origin/pushable_changes_of_station_cont…
MMatthiessen Feb 26, 2026
1a69c31
- minor fixes
MMatthiessen Feb 26, 2026
3a3b35a
- fixing enum decode when importing with from_json
MMatthiessen Feb 28, 2026
4c2aec1
- Adding enum support when importing from json for control_modus
MMatthiessen Feb 28, 2026
609538c
- Implementing code improvements for quality gate
MMatthiessen Feb 28, 2026
266808f
- Fixing minor error in from_json when converting to enum
MMatthiessen Feb 28, 2026
355473e
changed enum import for from_json
hilbrich Mar 2, 2026
ce31773
improved ENUM handling and stactrl testing
hilbrich Mar 2, 2026
0b6775a
Merge remote-tracking branch 'origin/pushable_changes_of_station_cont…
MMatthiessen Mar 2, 2026
725ac29
- Accepting remote changes to enum
MMatthiessen Mar 2, 2026
5e89224
- implementing distribution methods for station controller
MMatthiessen Mar 3, 2026
8ef2f8a
- Fixing mismatch after transport
MMatthiessen Mar 4, 2026
5c7749f
- Fixing mismatch after transport
MMatthiessen Mar 4, 2026
5364ef7
- Fixing errors resulting from mismatch after transport of distributi…
MMatthiessen Mar 5, 2026
c06935c
- Fixing errors resulting from mismatch after transport of distributi…
MMatthiessen Mar 6, 2026
c4d3160
Merge branch 'develop' into distribution_in_station_controller
MMatthiessen Mar 23, 2026
8b91d77
- Manually merging test_stactrl.py
MMatthiessen Mar 23, 2026
d852fed
Merge branch 'e2nIEE:develop' into distribution_in_station_controller
MMatthiessen Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
821 changes: 615 additions & 206 deletions pandapower/control/controller/station_control.py

Large diffs are not rendered by default.

18 changes: 17 additions & 1 deletion pandapower/convert_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
_add_missing_columns(net, elements_to_deserialize)
_create_seperate_cost_tables(net, elements_to_deserialize)
if Version(str(net.format_version)) < Version("3.1.0"):
_update_station_controller(net)
_convert_q_capability_characteristic(net)
if Version("3.0.0") <= Version(str(net.format_version)) < Version("3.1.3"):
_replace_invalid_data(net, elements_to_deserialize, drop_invalid_geodata)
Expand Down Expand Up @@ -633,7 +634,7 @@
if "output_adjustable" not in obj.__dict__:
obj.__dict__["output_adjustable"] = np.array([
False if not distribution else service for distribution, service in zip(
obj.output_values_distribution, obj.output_element_in_service
obj.output_values_distribution or [], obj.output_element_in_service
)
], dtype=bool)
if "output_max_q_mvar" not in obj.__dict__:
Expand Down Expand Up @@ -691,6 +692,21 @@
c.kwargs = {"kind": c.__dict__.pop("kind"), "bounds_error": False, "fill_value": c.__dict__.pop("fill_value")}


def _update_station_controller(net):

Check failure on line 695 in pandapower/convert_format.py

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=e2nIEE_pandapower&issues=AZ1nZbJownvl7FZ20spO&open=AZ1nZbJownvl7FZ20spO&pullRequest=2898
# update net to be able to run in finalized station controller
for controller_attr in net.controller.object.values:
if not hasattr(controller_attr, "counter_warning") and controller_attr.__class__.__name__ == 'BinarySearchControl':
controller_attr.counter_warning = False
if not hasattr(controller_attr, "overwrite_convergence") and controller_attr.__class__.__name__ == 'BinarySearchControl':
controller_attr.overwrite_convergence = False
if not hasattr(controller_attr, "distribution_method") and controller_attr.__class__.__name__ == 'BinarySearchControl':
controller_attr.distribution_method = None
if not hasattr(controller_attr, "min_q_mvar") and controller_attr.__class__.__name__ == 'BinarySearchControl':
controller_attr.min_q_mvar = []
if not hasattr(controller_attr, "max_q_mvar") and controller_attr.__class__.__name__ == 'BinarySearchControl':
controller_attr.max_q_mvar = []


def convert_trafo_pst_logic(net):
"""
Converts trafo and trafo3w phase shifter logic to version 3.0 or later
Expand Down
182 changes: 137 additions & 45 deletions pandapower/converter/powerfactory/pp_import_functions.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pandapower/test/api/test_convert_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def test_convert_format(version):
try:
net = from_json(filename, convert=False)
if ('version' in net) and (vs.parse(str(net.version)) > vs.parse('2.0.1')):
_ = from_json(filename, elements_to_deserialize=['bus', 'load'])
_ = from_json(filename, elements_to_deserialize=['bus', 'load', 'controller'])
except:
raise UserWarning("Can not load network saved in pandapower version %s" % version)
vm_pu_old = net.res_bus.vm_pu.copy()
Expand Down
279 changes: 227 additions & 52 deletions pandapower/test/control/test_stactrl.py

Large diffs are not rendered by default.

3,456 changes: 3,456 additions & 0 deletions pandapower/test/control/testfiles/station_ctrl_test_distributions.json

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
pandapower~=3.0.0.dev1
setuptools~=75.6.0
numpy~=2.0.2
scipy~=1.13.1
numba~=0.60.0
packaging~=24.2
lightsim2grid~=0.9.0
pandas~=2.2.3
pytest~=8.3.4
geojson~=3.2.0
psycopg2~=2.9.10
cryptography~=44.0.0
openpyxl~=3.1.5
xlsxwriter~=3.2.0
geopandas~=1.0.1
shapely~=2.0.6
plotly~=5.24.1
igraph~=0.11.8
networkx~=3.4.2
matpowercaseframes~=1.1.0
matplotlib~=3.10.0
deepdiff~=8.1.1
pyproj~=3.7.0
lxml~=5.3.0
ortools~=9.11.4210
tqdm~=4.67.1
Loading