fix
This commit is contained in:
@@ -613,10 +613,12 @@ def solve_dispatch(
|
|||||||
+ heat_pump.rated_heating_power_w
|
+ heat_pump.rated_heating_power_w
|
||||||
)
|
)
|
||||||
|
|
||||||
# Záporný prodej (sell < 0): nevybíjet baterii do sítě pro arbitráž.
|
# Záporný prodej (sell < 0): baterii v tomhle okně nevybíjíme (dump má proběhnout předtím).
|
||||||
# Export v tomto okně může vzniknout jen z přebytku FVE (pv_a/pv_b), ne z bd.
|
# Export v okně sell<0 může vzniknout jen z přebytku FVE (pv_a/pv_b). Výjimka: EV-via-battery
|
||||||
|
# (pokud by bylo připojené a požadovalo výkon) – to kryjeme přes bd >= ev_via_bat.
|
||||||
if s.sell_price < 0:
|
if s.sell_price < 0:
|
||||||
prob += w_arb[t] == 0
|
prob += w_arb[t] == 0
|
||||||
|
prob += bd[t] <= pulp.lpSum(ev_via_bat[e][t] for e in range(EV))
|
||||||
|
|
||||||
soc_prev_expr = current_soc_wh if t == 0 else soc[t - 1]
|
soc_prev_expr = current_soc_wh if t == 0 else soc[t - 1]
|
||||||
arb_t = arb_floor_series[t]
|
arb_t = arb_floor_series[t]
|
||||||
|
|||||||
@@ -516,6 +516,8 @@ class PlanningDispatchMilpTests(unittest.TestCase):
|
|||||||
self.assertEqual(len(results), 3)
|
self.assertEqual(len(results), 3)
|
||||||
# V sell<0 slotu bez FVE a bez zátěže nesmí být export (to by muselo být z baterie).
|
# V sell<0 slotu bez FVE a bez zátěže nesmí být export (to by muselo být z baterie).
|
||||||
self.assertGreaterEqual(results[1].grid_setpoint_w, 0)
|
self.assertGreaterEqual(results[1].grid_setpoint_w, 0)
|
||||||
|
# A zároveň nesmí být baterie ve výboji (dump musí proběhnout předtím).
|
||||||
|
self.assertGreaterEqual(results[1].battery_setpoint_w, 0)
|
||||||
|
|
||||||
def test_grid_import_soft_cap_penalizes_breaker_overdraw(self) -> None:
|
def test_grid_import_soft_cap_penalizes_breaker_overdraw(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user