Smarta prognoser i Aurora by Sigholm
Prognoser. Ett ämne som inte har svårt att dra i gång diskussioner oavsett om man är driftare, ingenjör eller verksamhetsutvecklare. I Aurora by Sigholm är det en viktig pelare som vår körplansoptimering bygger på. Utan träffsäkra prognoser kan man inte få en träffsäker körplan.
I plattformen gör vi huvudsakligen tre typer av prognoser: elpris-, väder- samt lastprognoser. Lastprognoserna är främst fjärrvärmelast, men består utöver det även av fjärrkyla, -ånga samt olika spillvärmeleverantörer. Samtliga prognoser blir input till körplansoptimeringen.
Prognoser i produktion
När man gör 20 000 prognoser i veckan är det viktigt att tänka på hur processen designas och automatiseras. Det går inte att beräkna en-i-taget, då det läggs till nya prognoser i kön snabbare än vad som går att beta av.
Aurora by Sigholm är en Cloud Native app som utnyttjar molnets skalbarhet för att hantera alla prognosberäkningar, där prognosjobb schemaläggs varje timma. Eftersom varje anläggning har sina egna unika prognoser sker flödet nedan parallellt för alla anläggningar samtidigt.
Flödet ser likadant ut för anläggningarna, men prognoserna och dess modeller är unika. Först skapas en väderprognos. Denna är ofta en extern tjänst som SMHI, men vissa anläggningar vill justera väderprognosen, vilket sker i detta steg. Eftersom många lastprognoser bygger på väderdata inväntar vi steget Väderprognos innan lastprognoserna byggs. Lastprognoserna däremot beräknas parallellt för anläggningar som har mer än bara fjärrvärmelasten. Eftersom vi kan spinna upp nya processer vid behov och beräkna prognoser parallellt tar hela prognosflödet endast fyra sekunder. När alla lastprognoser är klara skapas en ny optimering som i sin tur uppdaterar körplanen för användarna i Aurora by Sigholm.
Anpassning av prognosmotor
Olika prognoser har olika förutsättningar. Därför är det viktigt att ha en anpassningsbar prognosmotor som kan trimmas in för varje enskild anläggning och last. Exempelvis ser man ofta att fjärrvärmelasten är linjär mot utomhustemperatur, varav en linjär regressionsmodell lämpar sig bra. Fjärrkyla å andra sidan har ett polynomiskt samband mellan fjärrkylalast och utomhustemperatur där linjär regression inte ger så bra resultat.
I Aurora by Sigholm har vi möjlighet att skapa nya modeller för olika scenarion som fokuserar på olika egenskaper (t.ex. temperatur) samt tillämpar eventuell postprocessering för att ge så bra prognos som möjligt. Vi kan även testa olika modeller och metoder för att jämföra sinsemellan och använda den med bäst träffsäkerhet.
Som ett sista steg efter varje prognos sparar vi prognosvärdena i databasen så de kan användas i optimeringen eller visas till användarna. Dessa värden är ”bästa-bästa”, dvs. de skrivs över för varje ny prognos. För att kunna göra evaluering och recensera gamla prognoser sparas även varje prognos i ett arkiv i sin originalform. Detta ger oss möjlighet att svara på frågor som ”vad är träffsäkerheten för prognoser 24 h innan utfall?”.
Automatisk intrimning
Prognosmodellerna har en uppsättning parametrar som trimmas in för att ge så bra prognos som möjligt. Detta steg kallas för ”träning”. Träningen baseras på historiska data för varje individuell anläggning, ju mer och bättre historisk data; desto bättre prognoser. Eftersom vi hela tiden får in nya data från anläggningarna har vi möjlighet att kontinuerligt trimma in prognosmodellen. Varje vecka sker detta automatiskt i en cykel som ser ut så här:
Vi växlar endast om till den nya prognosmodellen om den ger bättre resultat än den redan aktiva prognosmodellen. Men, hur utvärderar man en prognos för att veta vad som är ”bättre”?
Uppföljning & utvärdering
Det finns vanliga evalueringsmetoder som MAE (Mean Absolute Error), MSE (Mean Square Error), MAPE (Mean Absolute Percentage Error), etc. Vi använder oftast MAE vid den automatiska utvärderingen. En variant av MAPE, som vi kallar Träffsäkerhet, är ett bra alternativ när man vill jämföra olika modeller och kunna ge en procentsats på träffsäkerheten. Ibland är det lättare att diskutera och resonera sig kring en procentsats än ”medel-diff i MW”.
Träffsäkerheten beräknas enkelt genom att ta skillnaden mellan prognos (P) och utfall (U) och dividerar med (nästa) hela spannet som värdena kan ta. Detta spann beräknas genom skillnaden mellan 95:e och 5:e percentilen av utfallet.
Det är såklart svårt att sätta en procentsats på träffsäkerhet för prognoser och det finns många metoder för det, men denna metod fungerar bra när man vill ha en standardiserad siffra som kan användas för olika typer av prognoser (väder, elpris, fjärrvärmelast). Tittar vi närmare på träffsäkerheten så ser vi att den minskar ju längre fram i tiden vi förutspår. Nedan är en jämförelse mellan SMHIs temperaturprognos och Aurora by Sigholms fjärrvärmelastprognos för Q1 2022.
Med ett robust maskineri som automatiskt tränar modeller och kan skala upp vid behov kan vi tryggt överlåta driften av prognosskapande till Aurora by Sigholm så vi ingenjörer kan fokusera på roligare saker; som att laborera med nya tekniker och modeller för att öka träffsäkerheten ännu mer.
Artikeln publicerades 20/06 - 2022