I HiHelios-prosjektet skal et hybrid energilagringssystem, HESS, demonstreres ved en UNO-X-ladestasjon. Et slikt system består av to typer batterier med ulike egenskaper. Batteriene som brukes er høy-effekt (HP) og høy-energi (HE) batterier, som hver for seg er egnet til forskjellig bruk. For at systemet skal fungere godt i praksis, kreves det omfattende testing og simulering før det fysiske systemet skal tas i bruk.
Mitt sommerprosjekt hos SINTEF Energi handlet om å lage et bedre testmiljø for simuleringen. Målet var å ta en omfattende offline Simulink/Simscape-modell og gjøre den om til en sanntidssimulering som kunne kjøres i RT-LAB på OPAL-RT-maskinvare, og deretter gjøre modellen enklere å styre, overvåke og analysere.
Hvorfor er ikke en offline modell nok?
En offline modell kan være god til å undersøke systemet i vanlig simulering. Utfordringen er at en slik modell ikke nødvendigvis kan kjøres direkte i sanntid. Når en modell skal kjøres på OPAL-RT gjennom RT-LAB, må den kunne beregnes raskt nok per tidsenhet. For at en modell skal kunne kjøres i sanntid, bør den være rask og robust nok til å beregne hvert tidssteg innen en svært begrenset tidsfrist.
Første del av arbeidet mitt handlet derfor om å forenkle og tilpasse modellen. Jeg startet med å teste at enkle Simscape-komponenter kunne bygges og kjøres i RT-LAB. Deretter ble modellen gradvis bygget opp med PV-produksjon (solcelleproduksjon), EV-ladelast og en forenklet grid-tilkobling. EV-lasteprofilen kom fra en offline 24-timers simulering av ladestasjonens totale effektbehov. PV-profilen ble basert på profildata for solproduksjon. Disse profilene ble brukt i sanntidsmodellen slik at systemet kunne testes gjennom ulike deler av døgnet.
Da modellen begynte å fungere, dukket et nytt problem opp. Selv om modellen kunne kjøres i RT-LAB i sanntid, var den fortsatt ikke spesielt praktisk å bruke. Under testing må man ofte endre parametere, starte og stoppe simuleringen, følge med på signaler og lagre resultater. Hvis alt dette må gjøres manuelt gjennom både Simulink, RT-LAB og loggfiler, blir arbeidsflyten lite effektiv og tungvint.
Derfor utviklet jeg et Python-basert GUI som fungerer som et dashboard for sanntidssimuleringen. GUI-et gjør det mulig å koble til RT-LAB, starte og pause modellen, endre utvalgte parametere, velge starttidspunkt i døgnet, utføre en intern soft reset og overvåke modellen live. Dette gjør simuleringen mer egnet som testplattform. I stedet for å bygge og laste modellen på nytt for hver test, kan brukeren endre relevante verdier og se responsen direkte. Fordelen med et interaktivt grensesnitt er at all styring, overvåking og analyse samles på ett sted, slik at man også sparer vesentlig med tid totalt.
Live data direkte til GUI
For å kunne følge simuleringen mens den kjørt, ble det implementert en løsning som sender måledata direkte fra sanntidsplattformen til dashboardet. Simulink-modellen pakker utvalgte signaler i en UDP-bitstrøm og sender dem til GUI-et. Python-koden mottar signalene, dekoder dem, skalerer dem til riktige enheter og viser dem i live plott. GUI-et viser blant annet PV-effekt, EV-effekt, grid-effekt, EMS (Energy Management System)-referanse, peak shaving-referanse og to batterirelaterte referansesignaler: P_HP og P_HE. Alle signalene logges også automatisk til CSV-filer, slik at resultatene kan analyseres i etterkant.

Dette var viktig fordi live visualisering og logging gjør det mye enklere å forstå hva som skjer i modellen. Man kan se hvordan EV-lasten påvirker grid-effekten, hvordan peak shaving-referansen ligger i forhold til grid-effekten, og hvordan EMS-referansen fordeles mellom batterisignalene. Med disse signalene for EMS og batteriene, er også grunnlaget for videre utvikling av HESS og PMS lagt.
Små feil kan stoppe et stort system
En stor del av sommerprosjektet handlet om feilsøking og identifisering av systemets «barnesykdommer». Sanntidssimulering krever at mange systemer er enige med hverandre samtidig. Simulink-modellen, RT-LAB-konfigurasjonen og Python-koden må for eksempel ha samme forståelse av hvilke signaler som sendes gjennom UDP, og i hvilken rekkefølge de kommer. Hvis RT-LAB sender åtte signaler, men Python forventer ni, kan GUI-et fortsatt motta data. Problemet er at dataene kan bli tolket feil.
Jeg møtte også utfordringer med gamle UDP-pakker etter soft reset, plottefeil på grunn av ulike lengder på tid- og signalvektorer, og parameteroppdateringer i RT-LAB som kunne gi timeout selv om verdien faktisk ble oppdatert.
Hva ble resultatet?
Plattformen gir et godt grunnlag for videre arbeid med styring og optimalisering av hybride energilagringssystemet. Samtidig har prosjektet gitt verdifull erfaring med hvordan avanserte modeller kan gjøres om til praktiske verktøy for testing og utvikling.
For meg har denne sommeren hos SINTEF Energi, avd. Energisystemer, vært både lærerik og inspirerende. Jeg har gått jobbet tett på aktuelle utfordringer innen energisystemer, og fått erfaring med både modellutvikling, sanntidssimulering og programvareutvikling. I tillegg så er det veldig mange flinke forskere på SINTEF, som er villig til å hjelpe og dele lærdom, som jeg har lært mye av. Til andre studenter som vurderer å søke sommerjobb i SINTEF, så gjør det!

Kommentarer
Ingen kommentarer enda. Vær den første til å kommentere!