Conversation
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
…ontext Signed-off-by: F.N. Claessen <felix@seita.nl>
…formulation Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: F.N. Claessen <felix@seita.nl>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
…and map them to the respective group id Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
…chemas Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…oving old flex-context fields into the electricity commodity context Signed-off-by: F.N. Claessen <claessen@seita.nl>
…d field) Signed-off-by: F.N. Claessen <claessen@seita.nl>
…-context Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
… gas Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
…DEL, which are named commodity in scheduling.rst Signed-off-by: F.N. Claessen <claessen@seita.nl>
…nstraint analysis #2072, CI/agents #2275) Conflict resolution policy: - Schema layer: main's design wins wholesale (commodities list nesting, commodity default 'electricity', uniqueness + shared-currency validators). - Engine: main's #1946 multi-commodity device_scheduler plus this branch's coupling_groups primitive (coupling_alpha variables and per-device flow-coupling constraints), keeping the branch's group_to_devices mapping which supports overlapping stock-group membership. - storage.py: main's _prepare/_build_soc_schedule structure wins, with the branch's coupling-group construction re-added; main's strict price-presence validation is restored (the branch had it commented out). - Tests: kept both sides' distinct tests (branch: CHP coupling + factory dispatch; main: gas-only flex-model, per-commodity inflexible sensors, directional-capacity fallback). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MLCUiSdXDqDBmg8GbYp1B
The sign of a coupling coefficient is inferred from directional capacities, and a device with both directions open (or blocked) was silently treated as an input. Reject such flex-models with a validation error instead. Also promote the coupling field descriptions to MetaData constants and document both fields in the storage flex-model table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MLCUiSdXDqDBmg8GbYp1B
Documentation build overview
49 files changed ·
|
|
This branch is revived: merged Also added since: coupled devices now require an unambiguous flow direction (exactly one directional capacity fixed to zero), enforced with a schema validation error, and the The end-to-end StorageScheduler wiring (internal commodity nodes via first-class balance groups, replacing the min=max=0 reference-device workaround from 🤖 Generated with Claude Code |
Adapt the CHP converter-port concept to the device inventory: FlexDevice entries carry their coupling name and signed coupling coefficient, and DeviceInventory.coupling_groups replaces Scheduler._build_coupling_groups as the single source of truth for the solver's coupling groups, keyed by canonical device indices. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015qxM7UZ5wHTz3ftz1Mf9yy Signed-off-by: F.N. Claessen <felix@seita.nl>
…-chp # Conflicts: # flexmeasures/data/models/planning/linear_optimization.py # flexmeasures/data/models/planning/tests/test_storage.py
…ters Merging main's group-indexed stock recursion (#2282/#2325) rebuilt group_to_devices from a single-valued device_to_group (last assignment wins), which cannot represent a converter device that belongs to more than one stock group (e.g. a steamer bridging a heat node and a steam node). That silently dropped such devices from all but their last group, orphaning coupled outputs (the CHP dispatched to zero in the cheap-gas merit-order scenario). Keep main's namespaced group keys (the stock-id/device-index collision fix) but build group_to_devices directly from the declared stock groups, preserving full overlapping membership; device_to_group still records a single primary group for per-device stock bounds. Restores test_factory_chp_dispatch (all three merit-order scenarios) on top of the new recursive stock formulation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MLCUiSdXDqDBmg8GbYp1B
Description
device_schedulerto model devices such as CHPdocumentation/changelog.rstLook & Feel
...
How to test
New tests:
Further Improvements
...
Related Items
...