You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(optimization): support a 15-minute optimization interval
The genetic optimizer was hard-wired to an hourly grid and forced
optimization.interval to 3600 s. Generalize it to a configurable slot grid
of length prediction.hours * (3600 / interval), accepting 900 (15 min) in
addition to the default 3600 (1 hour) so the optimizer can schedule on a
quarter-hour grid for 15-minute dynamic electricity tariffs.
- genetic.py: slot_duration_h / slots_per_hour / total_slots helpers; all GA
vectors sized by total_slots; simulate()/evaluate() indexed by start slot.
- geneticparams.py: allow {900, 3600}; scale the load power series to per-slot
energy, mirroring the PV series.
- battery.py / inverter.py: scale power caps to per-slot energy caps via
slot_duration_h; homeappliance.py carries the hook.
- geneticsolution.py: serialize solution and plan on the slot grid (interval
freq, start-slot offset, second-based instruction instants).
The default 3600 s interval keeps the previous hourly behaviour; the genetic
regression suite is unchanged. Adds tests for the 15-minute slot grid.
| horizon ||`int`|`ro`|`N/A`| Number of optimization steps. |
13
13
| horizon_hours |`EOS_OPTIMIZATION__HORIZON_HOURS`|`int`|`rw`|`24`| The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours. |
14
-
| interval |`EOS_OPTIMIZATION__INTERVAL`|`int`|`rw`|`3600`| The optimization interval [sec]. Defaults to 3600 seconds (1 hour) |
14
+
| interval |`EOS_OPTIMIZATION__INTERVAL`|`int`|`rw`|`3600`| The optimization interval (slot length) [sec]. The genetic optimizer supports 3600 (1 hour) and 900 (15 min); other values fall back to 3600. Defaults to 3600 seconds (1 hour).|
15
15
| keys ||`list[str]`|`ro`|`N/A`| The keys of the solution. |
0 commit comments