'Norwegian University of Science and Technology (NTNU) Library'
Abstract
Høsten 2021 fordypningsprosjektet implementerte med hell, funksjonalitet i Equi-
nor’s MPC SEPTIC ved å ta i bruk TDD. Masteroppgaven tar dette funnet videre, og
ser på hvordan kompleks funksjonalitet som involverer testing av system dynamikk
kan videre bli utviklet med TDD metodologien. Testoppsettet fra fordypningsoppga-
ven ble valgt å gjenbruke, og en sekvens som involverer testing av system dynamikk
ble valgt som basis, for å se på muligheten å utvikle system dynamikk ved hjelp av
TDD.
Sekvensen ble vellykket implementert ved hjelp av TDD. Det ble vist at imple-
mentering av sekvens i SEPTIC congig fil, kan være kronglete, og det ble gjort et
funn eller forslag til Equinor om å legge til SR latch som en funksjon i config fi-
len deres. Slik funksjon ville gjort koden svært mye enklere og mindre kronglete å
implementere sekvenser. I tillegg ble system dynamikk vellykket utviklet ved hjelp
av TDD. En sentral del av dette var step_until() funksjonen og muligheten for å
hente ut simuleringsverdier fra ring buffer. De to bidro til fullstendig kontroll over
simulering ved å stoppe simulering når en viss ønsket verdi er oppnådd, og deretter
hente ut simuleringsverdier for videre testing av system dynamikk i pytest.
En ML algoritme med LSTM celler ble laget. Den ble trent opp a av en trening
datasett hvor ventilåpningen var mellom 15% − 100%. ML modellen viste god ytelse
på ny usett data på test datasettet, og nøyaktig predikerte steady-state olje rate.
En modell som er trent på hele arbeidsområde til ventilen ville vært foretrukket,
men dette ville gått på bekostning av modellen sin predikasjons evne. En gain sche-
duler ble videre implementert i SEPTIC. Gain scheduleren bruker kalkulerte gains
fra predikasjon fra ML modellen, og videre interpolerer datasettene av gains til en
gain funksjon. Implementasjon av en gain schdeuler viste litt bedre ytelse når den
ble brukt i simulering sammenheng, den nådde steady-state olje rate litt tidligere.
Videre vil en av fordelene av en ML algoritme som kjører på siden av SEPTIC til
å predikere gains, være at ML modellen vil fange endringer i system dynamikk over
tid, og alltid vær oppdatert med å sette korrekt gain til alle tider