fix maxu u baterky pri prodeji
Some checks failed
CI and deploy / migration-check (push) Failing after 12s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-22 08:00:34 +02:00
parent 7b25640557
commit 2ebc48f813
3 changed files with 56 additions and 1 deletions

View File

@@ -1838,6 +1838,59 @@ class SitePowerCapTests(unittest.TestCase):
)
self.assertGreater(r.battery_setpoint_w, 0)
def test_battery_export_respects_site_export_cap(self) -> None:
"""SELL slot: vývoz ze site ≤ max_export; vybíjení baterie ≤ max_discharge."""
base = datetime(2026, 5, 22, 18, 0, tzinfo=timezone.utc)
slots = [
PlanningSlot(
interval_start=base,
buy_price=0.5,
sell_price=6.0,
pv_a_forecast_w=0,
pv_b_forecast_w=0,
load_baseline_w=2500,
ev1_connected=False,
ev2_connected=False,
is_predicted_price=False,
allow_charge=False,
allow_discharge_export=True,
)
]
battery = _battery(uc_wh=64_000.0, min_pct=12.0, arb_pct=20.0)
battery.max_charge_power_w = 18_000
battery.max_discharge_power_w = 18_000
hp = SimpleNamespace(rated_heating_power_w=0, tuv_min_temp_c=45.0, tuv_target_temp_c=55.0)
grid = SimpleNamespace(max_import_power_w=17_000, max_export_power_w=13_500)
vehicles = [
SimpleNamespace(max_charge_power_w=0, battery_capacity_kwh=1.0, default_target_soc_pct=80.0),
SimpleNamespace(max_charge_power_w=0, battery_capacity_kwh=1.0, default_target_soc_pct=80.0),
]
soc0 = 0.85 * battery.usable_capacity_wh
results, _, _ = solve_dispatch(
slots,
battery,
hp,
grid,
[None, None],
vehicles,
soc0,
50.0,
operating_mode="AUTO",
)
r = results[0]
self.assertLessEqual(
-r.grid_setpoint_w,
13_500,
msg="export ze site ≤ max_export_power_w",
)
self.assertLess(r.grid_setpoint_w, -500, msg="očekáván významný export")
self.assertLess(r.battery_setpoint_w, -500, msg="očekáváno vybíjení baterie")
self.assertLessEqual(
r.export_limit_w,
13_500,
msg="export_limit_w odpovídá site limitu",
)
if __name__ == "__main__":
unittest.main()