chjo2
This commit is contained in:
@@ -152,6 +152,41 @@ where pr.site_id = (select id from ems.site where code='BA81') and pr.status='ac
|
||||
|
||||
---
|
||||
|
||||
## 2026-05-24 (g) — BA81: plateau ~51 % SoC + curtail (run 15848/15849)
|
||||
|
||||
**Problém:** Po replanu stále 06:15 ~6 kW, 06:30–07:30 ~1–2 kW, **07:45–08:45 0 kW + curtail ~9 kW**, SoC plán ~51 %, pak znovu ~3 kW. `solver_params` bez `planner_build_tag` → nasazený backend pravděpodobně **bez** oprav (e)/(f).
|
||||
|
||||
**Příčiny (MCP + kód):**
|
||||
|
||||
1. **`charge_slots` v Pythonu** doplňoval `sell<0` jen při `block_export_on_negative_sell` (KV1). U BA81 (`false`) platily jen masky z DB → bez shortfall penalizace, i když R__063 nastaví `allow_charge` později.
|
||||
2. **`safety_soc_target_wh`** z SQL roste jen k ~reserve + noční baseload (~50 % SoC v poledne). Jakmile `soc ≥ safety`, solver nemá motivaci dobít k `soc_max` v okně záporného výkupu (raději curtail / večerní export).
|
||||
3. **`skip_pv_store_block`** u `pv_b` + fixní tarif: LP smí exportovat FVE při `sell<0` místo nabíjení (home-01 logika nepatří na BA81).
|
||||
|
||||
**Oprava (`planning_engine.py`):**
|
||||
|
||||
- `charge_slots` |= všechny sloty `sell<0` + PV přebytek > 500 W (jako R__063 ř. 787–791).
|
||||
- V okně `sell<0` + `charge_slots`: safety deficit cílí na `max(safety_sql, 92 % soc_max)`.
|
||||
- Fixní tarif: `ge_pv ≤ pv_b_forecast_w` při `sell<0`; `skip_pv_store` jen pro spot, ne fixed.
|
||||
- Objective: odměna `bc_pv` při `sell<0` (`NEG_SELL_PV_CHARGE_REWARD`).
|
||||
- `solver_params.planner_build_tag` = `2026-05-24-neg-sell-v2` (ověření deploye).
|
||||
|
||||
**Deploy:** `docker compose build ems-api && docker compose up -d ems-api` + rolling replan BA81.
|
||||
|
||||
**Ověření MCP:**
|
||||
|
||||
```sql
|
||||
select pr.id, pr.solver_params->>'planner_build_tag' as tag,
|
||||
max(pi.battery_setpoint_w) filter (where pi.effective_sell_price < 0) as max_neg_chg
|
||||
from ems.planning_run pr
|
||||
join ems.planning_interval pi on pi.run_id = pr.id
|
||||
where pr.site_id = (select id from ems.site where code = 'BA81')
|
||||
order by pr.id desc limit 1;
|
||||
```
|
||||
|
||||
Očekáváno: `tag = 2026-05-24-neg-sell-v2`, v ranním okně `sell<0` více slotů s `battery_setpoint_w` ≥ 5000, SoC plán přes ~70 % směrem k 95 %.
|
||||
|
||||
---
|
||||
|
||||
## Šablona pro další záznamy
|
||||
|
||||
```markdown
|
||||
|
||||
Reference in New Issue
Block a user