Naar de inhoud

Kostoptimalisatie

Het prijsgestuurde regelalgoritme: opslaan wanneer energie goedkoop is en gebruiken of injecteren wanneer ze duur is, binnen de grenzen van batterij en aansluiting.

Kostoptimalisatie is het prijsgestuurde regelalgoritme van Voltmasters. Het houdt de energiekost van de installatie zo laag mogelijk door elke regelcyclus te beslissen hoe de batterij laadt en ontlaadt, op basis van voorspelde energieprijzen en voorspellingen van PV-productie en verbruik.

Hoe het werkt

Elke regelcyclus doet het algoritme dit:

  • Vooruitkijken over de voorspellingshorizon (het tijdvenster dat het algoritme vooruit bekijkt) naar de dynamische day-aheadprijzen, de verwachte PV-productie en het verwachte verbruik.
  • De batterij plannen zodat energie opgeslagen wordt wanneer ze goedkoop is (of uit PV-overschot) en gebruikt of geïnjecteerd wordt wanneer ze duur is. Dat vooruitkijkende plan is de batterijplanning.
  • Alleen handelen wanneer het loont: laden en ontladen worden alleen gepland wanneer het prijsverschil groot genoeg is om de verliezen heen en terug van de batterij te overtreffen (een instelbaar minimaal prijsverschil).
  • De grenzen respecteren: de minimale en maximale laadtoestand (SoC) van de batterij en de grenzen van de netaansluiting (maximale injectie en afname).

Het gedetailleerde plan, de soorten acties en een uitgewerkt voorbeeld staan op de pagina Batterijplanning. De rest van deze pagina legt uit hoe het algoritme tot die beslissingen komt.

Twee lussen: plannen en handelen

Kostoptimalisatie draait als twee samenwerkende lussen die één ding delen: de batterijplanning.

  • De planningslus kijkt naar de hele voorspellingshorizon en berekent het goedkoopste laad- en ontlaadplan. Dit deel maakt het plan. Het plan wordt regelmatig herberekend, bij elk nieuw kwartier en telkens wanneer er een nieuwe voorspelling binnenkomt, zodat het altijd de laatste prijzen, productie en de echte toestand van de batterij weerspiegelt.
  • De regellus draait elke regelcyclus (ongeveer één keer per seconde). Ze leest de ene regel uit de planning die nu geldt, zet die om in concrete setpoints (stuurwaarden) voor batterij, PV en EV, en past die aan aan de live metingen en de grenzen. Dit deel voert het plan uit.
flowchart LR
    subgraph inputs["Voorspellingen en live toestand"]
        P["Day-aheadprijzen"]
        PV["Voorspelling PV-productie"]
        C["Voorspelling verbruik"]
        B["Laadtoestand batterij"]
    end

    GEN["Batterijplanning genereren<br/>planningslus"]
    SCHED[("Batterijplanning")]
    READ["Regel voor nu lezen<br/>regellus, ongeveer 1s"]
    SET["Omzetten naar setpoints batterij / PV / EV"]
    HW["Batterij, PV, netaansluiting"]

    P --> GEN
    PV --> GEN
    C --> GEN
    B --> GEN
    GEN --> SCHED
    SCHED --> READ
    READ --> SET
    SET --> HW
    HW -. "gemeten waarden" .-> GEN
De planningslus bouwt de planning uit voorspellingen en de live toestand van de batterij; de regellus leest ze elke cyclus en stuurt de hardware aan. De gemeten resultaten vloeien terug in het volgende plan.

Door het werk zo te splitsen hoeft de dure vooruitkijkende optimalisatie niet elke seconde te draaien, terwijl de snelle regellus tussen twee plannen door toch op de werkelijkheid kan reageren.

Wat het algoritme nodig heeft

Het plan wordt opgebouwd uit een mix van voorspellingen, live metingen en projectconfiguratie:

Invoer Waar ze vandaan komt Rol in het algoritme
Day-ahead verbruiks- en injectieprijzen (per kwartier) Voorspellingsleverancier (dynamische day-aheadmarkt) Vertelt het plan wanneer energie goedkoop is om te kopen en wanneer ze lucratief is om te verkopen
Voorspelling PV-productie Voorspellingsleverancier (op basis van het weer) Vertelt het plan wanneer er gratis of goedkope zonne-energie beschikbaar is om op te slaan
Voorspelling verbruik Voorspellingsleverancier Vertelt het plan wanneer de site energie nodig heeft: de tekorten die het waard zijn om te dekken
Laadtoestand van de batterij Live meting per batterij Het startpunt van het verwachte SoC-verloop
Grenzen en rendement van de batterij Projectconfiguratie Minimale en maximale SoC, laad- en ontlaadsnelheid, nominaal vermogen, rendement heen en terug
Grenzen van de netaansluiting Projectconfiguratie Maximale afname (ruimte om te laden) en maximale injectie (injectieplafond)
Minimaal prijsverschil Projectconfiguratie Het verschil dat een laad- en ontlaadpaar moet halen om het verlies en de slijtage waard te zijn
Verkoop via batterij-injectie Projectconfiguratie Of opgeslagen energie überhaupt aan het net verkocht mag worden
Netlading voor injectie Projectconfiguratie Of het algoritme ook goedkope netenergie mag kopen puur om ze bij injectiepieken weer te verkopen

Het kernidee: prijsarbitrage binnen de grenzen

In de kern doet het algoritme aan energiearbitrage: energie opslaan zolang ze goedkoop is (uit PV-overschot of goedkope neturen) en weer vrijgeven zolang ze duur is, ofwel door het eigen verbruik van de site te dekken, ofwel door ze op het net te injecteren voor inkomsten.

Twee dingen houden dat eerlijk:

  • Verliezen heen en terug. Energie die verloren gaat op weg de batterij in en uit, betekent dat een opgeslagen kilowattuur er minder dan één aflevert. Het plan berekent elke laad- en ontlaadbeweging met het rendement heen en terug van de batterij.
  • Het minimale prijsverschil. Een laad- en ontlaadpaar wordt alleen gepland wanneer het prijsverschil tussen het goedkope en het dure kwartier een instelbare drempel haalt. Dat dekt het verlies heen en terug en de slijtage van de batterij, en het voorkomt dat de batterij cyclet voor een marginale winst.

Alles wat het algoritme plant moet bovendien passen binnen de grenzen van de laadtoestand en de grenzen van de netaansluiting; die beperkingen gelden voor het hele plan.

Uitgewerkt voorbeeld: hoge avondprijzen

De grafiek hieronder toont het scenario hoge avondprijzen. Elektriciteit is overdag goedkoop en zonnig, en wordt in de avondpiek veel duurder.

Kostoptimalisatie, scenario met hoge avondprijzen
De optimalisator laadt tijdens de goedkope, zonnige dag en ontlaadt in de dure avondpiek: laag kopen, hoog gebruiken. De grafiek is in het Engels.

Overdag laadt de batterij op uit het goedkope PV-overschot, en in de avondpiek ontlaadt ze om het dure verbruik te dekken. De volledige opsplitsing van dit scenario staat op de pagina Batterijplanning.

Verhouding tot een extern signaal

Kostoptimalisatie is een lokale strategie. Stuurt een partner via een extern signaal de installatie actief aan, dan heeft die partner voorrang en stuurt kostoptimalisatie de batterij niet aan. Is er geen extern signaal actief, dan volgt de batterij de planning van de kostoptimalisatie. Staat de partner op stand-by, dus verbonden maar zonder de batterij aan te sturen, dan blijft de batterij stil en houdt ze haar laadtoestand aan. Een instelling per site laat de batterij tijdens stand-by toch de planning van de kostoptimalisatie volgen.