Ratomir Vukadin
Machine Learning

Predikcija solarne proizvodnje sa CatBoost i Azure platformom

Platforma za predikciju solarne proizvodnje koja kombinuje vremenske podatke, inverter API-je, berzanske cijene, Azure servise i CatBoost modele.

3 min
CatBoostAzureforecastingenergija

Platforma pravi day-ahead i intra-day predikcije solarne proizvodnje. Integriše inverter API-je, vremensku prognozu i podatke energetskih berzi za potrebe trgovaca i proizvodaca.

Produktni kontekst

Predikcija solarne proizvodnje ima vrijednost samo kada je povezana sa operativnim odlukama. Trgovcima su potrebna day-ahead i intra-day očekivanja, ali se ta očekivanja mijenjaju kada se promijeni vremenska prognoza, kada stignu inverter podaci i kada se pomjere tržišne cijene. Platforma je dizajnirana da spoji te signale u workflow koji objašnjava očekivanu proizvodnju i podržava komercijalne odluke.

Sistem prikuplja konfiguraciju elektrana, podatke o lokacijama, trgovce i organizacije, vremenske modele, inverter mjerenja i berzanske cijene. Svaki izvor ima drugačiju svježinu, pouzdanost i strukturu, pa arhitektura razdvaja statičke domenske podatke od generisanih predikcija i velikih vremenskih payload-a.

Arhitektura

Backend kombinuje Azure Functions i Azure Container Apps. MongoDB čuva duboke vremenske modele i generisane planove, Redis kesira generisane podatke, a PostgreSQL čuva statičke domenske podatke kao što su elektrane, trgovci, lokacije, organizacije i korisnici.

Azure Functions pokrivaju zakazane i event-driven poslove, uključujući pozive prema weather provider-ima, inverter API-jima i berzanskim izvorima. Azure Container Apps hostuje duže ili servisne workload-e gdje su predvidivo izvršavanje i deployment kontrola korisniji od čisto serverless modela.

Frontend je React i Next.js portal za trgovce sa Plotly.js grafikonima za poređenje predikcija, generisanih planova i istorijske proizvodnje. Interfejs je fokusiran na operativni pregled: korisnici treba brzo da vide output po elektrani, razumiju promjene i donesu odluku na osnovu najnovijih dostupnih podataka.

Prediction engine

Prvi algoritamski engine zamenjen je CatBoost modelima zato što se svaka elektrana kroz vreme ponaša drugačije. Python notebooks su korišćeni za poređenje verzija modela kroz apsolutnu grešku i finansijski uticaj.

Modelovanje je pocelo standardnijim pristupom kalkulacije, a zatim se pomjerilo prema ucenju po elektrani jer se fizicko ponašanje razlikovalo po instalaciji. Orijentacija, karakteristike invertera, lokalni vremenski obrasci i istorijska proizvodnja uticu na odnos između ulaznih prognoza i stvarnog output-a. Jedna genericka formula nije bila dovoljna da pokrije te razlike.

CatBoost je bio praktičan izbor jer dobro radi sa tabelarnim feature-ima i podržava brzo poređenje modela. Notebook workflow je omogućio testiranje verzija nad istorijskim podacima prije ulaska modela u produkcijski pipeline.

Podaci i validacija

Kvalitet predikcije je posmatran kroz tehničke i poslovne mjere. Apsolutna greška pokazuje koliko je predikcija udaljena od stvarne proizvodnje. Finansijski uticaj pokazuje da li je ta greška bitna u tržišnom kontekstu. Gledanje oba ugla sprečava da model izgleda statistički dobro, a da i dalje vodi do loših trgovačkih odluka.

Generisani planovi se čuvaju odvojeno od statičke konfiguracije kako bi platforma zadrzala istorijske verzije predikcija. To pomaže pri debug-ovanju, poređenju modela i objašnjenju zašto je trgovac u odredjenom trenutku vidio odredjeni plan.

Rezultat

Arhitektura povezuje ingestiju podataka, predikciju po elektrani i pregled za trgovce u jedan tok. Istovremeno ostavlja prostor za dodatne inverter providere, nove vremenske modele, izmijenjene tržišne ulaze i buduće retraining workflow-e bez zamjene cijele platforme.