← EnergyViewB5 — voorstel, nog niet bouwen
De huidige solver versnelt een discreet rooster al met monotone minima. Een exact continue oplossing is een ander optimalisatieprobleem en kan bedragen, fysieke stromen en rangordes veranderen. Daarom blijft de actieve solver en golden-referentie ongewijzigd totdat dit voorstel is goedgekeurd.
Voorgestelde naad: behoud dynamicBattery als interface. Gebruik alleen een continue route wanneer alle werkelijke knikpunten van de stukgewijs lineaire kwartierkosten convex zijn, alle prijzen eindig zijn en de bestaande begin/eindlading, verliezen, netladen, export en vermogensgrenzen kunnen worden overgenomen. Alleen discretely bemonsterde roosterslopes zijn geen bewijs voor continue convexiteit. Niet-lineaire externalCostDelta blijft een fallbackgeval. Bij negatieve prijzen mag een LP met gelijktijdig laden en ontladen niet zonder bewijs als fysiek exact worden gepresenteerd.
Voor deze beperkte opslagvariant kan een gespecialiseerde slope-trick/flow-implementatie met O(n log n) worden onderzocht. Een generieke min-cost-flow-implementatie heeft die complexiteit niet automatisch. Vaste maandpiekgrenzen kunnen als kwartiergrenzen worden meegenomen; een vrij te optimaliseren maandpiekheffing valt niet zonder aanvullend bewijs onder dezelfde complexiteitsclaim.
Vóór activeren: onafhankelijke LP-referentie, energiebehoud en vermogensgrenzen, deterministische tie-break, vergelijking oud/nieuw op alle acht scenario’s, vijf seriële runs voor tijd/RSS/GC. Daarna eerst het verschilrapport beoordelen. Een nieuwe golden volgt alleen na apart akkoord. De bestaande scripts/perf/dispatch-lp-reference.py en tests/battery-dispatch-adaptive.mjs zijn het vertrekpunt; er is nog geen nieuwe continue runtime-solver gebouwd.
B6 — bewijsschets, geen kandidaatfilter gebouwd
Laat F de toegelaten discrete dispatches zijn, en R een aantoonbare ontspanning met F als deelverzameling. Een minimum L van dezelfde volledige kostenfunctie over R is een ondergrens op de werkelijke kosten. Bij dezelfde nulreferentie C0 en bekende aankoop/vervangingskosten K is U = C0 − (K + L) een bovengrens op het voordeel. Alleen een strikt slechtere bovengrens dan de volledig berekende winnaar laat veilig afvoeren toe. Houd rekening met solverfoutmarges en de bestaande tie-break; afgeronde euro’s of 1% volstaan niet.
Een energie-LP zonder capaciteitstarief is daarvoor onvoldoende. Synthetisch tegenvoorbeeld: iedere maand één kwartier met 5 kW afname. Een batterij verschuift 0,625 kWh naar een rustig kwartier en houdt beide op 2,5 kW. Bij 100% rendement en gelijke energieprijs is het energievoordeel €0. Met een fictieve jaarcoëfficiënt van €50/kW is het piekvoordeel €125. Afvoeren op alleen energievoordeel zou fout zijn. Dit is geen gebruikt nettarief of rendementsaanname van de app.
Voor een positieve lineaire piekheffing vereist de LP maandvariabelen m met m ≥ 2,5 en m ≥ ieder relevant kwartiervermogen, plus precies de gebruikte maandgewichten, volledige perioden en factuurankers. Neem de piekkosten mee in de doelwaarde, of bewijs een afzonderlijke conservatieve kostenondergrens. Staffels, negatieve coëfficiënten, kortingen, onvolledige maanden en correcties vergen extra bewijs.
De eerste factuur en terugkerende jaren kunnen verschillen. Maak per prijsregime/jaar een geldige bound, inclusief bekende vervangingen. De drie risicokolommen hebben eigen nulreferenties en mogen niet worden gemengd. Ook de bestaande €20 extra voordeel per kWh per jaar is een aparte geschiktheidsvoorwaarde.
Een bewijs dat een kandidaat niet kan winnen bewaart alleen de winnaar. Het bewaart niet de volledige lijst met alle exacte bedragen en identifiers. Gebruik zo’n filter alleen voor interne zoekvarianten zonder eigen gepubliceerde rij, of bereken de andere rijen later alsnog. Er is geen filter geïmplementeerd en geen rangschikking gewijzigd.