Skip to content

Commit

Permalink
add inflexible devices with different units
Browse files Browse the repository at this point in the history
Signed-off-by: Victor Garcia Reolid <victor@seita.nl>
  • Loading branch information
victorgarcia98 committed Mar 14, 2024
1 parent 0de721a commit 9c09957
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
6 changes: 3 additions & 3 deletions flexmeasures/data/models/planning/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def inflexible_devices(db, building) -> dict[str, Sensor]:
name="residual demand power sensor",
generic_asset=building,
event_resolution=timedelta(hours=1),
unit="MW",
unit="kW",
attributes={"capacity_in_mw": 2},
)
db.session.add(residual_demand_sensor)
Expand Down Expand Up @@ -186,9 +186,9 @@ def add_inflexible_device_forecasts(
) * (len(time_slots) // (24 * 4))
add_as_beliefs(db, pv_sensor, pv_values, time_slots, setup_sources["Seita"])

# Residual demand (1 MW continuously)
# Residual demand (1 MW = 1000 kW continuously)
residual_demand_sensor = inflexible_devices["residual demand power sensor"]
residual_demand_values = [-1] * len(time_slots)
residual_demand_values = [-1000] * len(time_slots)
add_as_beliefs(
db,
residual_demand_sensor,
Expand Down
15 changes: 13 additions & 2 deletions flexmeasures/data/models/planning/tests/test_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
integrate_time_series,
)
from flexmeasures.tests.utils import get_test_sensor

from flexmeasures.utils.unit_utils import convert_units

TOLERANCE = 0.00001

Expand Down Expand Up @@ -586,9 +586,20 @@ def test_building_solver_day_2(
with pd.option_context("display.max_rows", None, "display.max_columns", 3):
print(soc_schedule)

unit_factors = np.expand_dims(
[
convert_units(1, s.unit, "MW")
for s in add_inflexible_device_forecasts.keys()
],
axis=1,
)
inflexible_devices_power = np.array(list(add_inflexible_device_forecasts.values()))

# Check if constraints were met
capacity = pd.DataFrame(
data=np.sum(np.array(list(add_inflexible_device_forecasts.values())), axis=0),
data=inflexible_devices_power.T.dot(
unit_factors
), # convert to MW and sum column-wise
columns=["inflexible"],
).tail(
-4 * 24
Expand Down

0 comments on commit 9c09957

Please sign in to comment.