Til hovedinnhold
Norsk English

Deriverbar simulering og sensitivitetsanalyse

Hvordan påvirkes simuleringsresultatene når modellparametere, inngangsdata eller styringsvariabler endres? Vi utvikler deriverbare simulatorer og effektive metoder for sensitivitetsanalyse. Ved å kombinere automatisk derivasjon, adjungerte metoder og numerisk modellering gjør vi simulatorer egnet for modellkalibrering, optimering og samspill med maskinlæring.

Kontaktpersoner

Hva kan vi hjelpe deg med?

En simulator beregner hvordan et system oppfører seg under gitte forutsetninger. I mange anvendelser trenger vi også å vite hvordan resultatene endrer seg når forutsetningene justeres. Hvilke parametere påvirker resultatet mest? Hvordan bør modellen tilpasses målinger? Hvilke endringer i drift eller utforming kan gi bedre ytelse?

Vi utvikler metoder og programvare som beregner slike sammenhenger effektivt, også for store, ikke-lineære og tidsavhengige modeller. Vi kan hjelpe med å:

  • Beregne sensitiviteter med hensyn til modellparametere, initial- og randbetingelser og styringsvariabler.
  • Utvikle og integrere automatisk derivasjon og adjungerte metoder i simuleringsverktøy.
  • Gjøre simulatorer tilgjengelige for gradientbasert modellkalibrering og optimering.
  • Koble fysikkbaserte simulatorer til datadrevne modeller og maskinlæring.
  • Kontrollere gradientberegninger og undersøke hvordan numeriske valg påvirker resultatene.

Ta kontakt med vår forskningsgruppe for Anvendt beregningsvitenskap dersom du trenger sensitiviteter fra en eksisterende simulator eller vil utvikle nye verktøy for analyse, kalibrering og optimering.

Fra simuleringsresultater til sensitiviteter

En sensitivitet beskriver hvordan en valgt resultatstørrelse påvirkes av en liten endring i en parameter. Resultatstørrelsen kan for eksempel være lagret energi, produsert volum, batterikapasitet eller avvik mellom simulerte og målte data.

En enkel tilnærming er å endre én parameter om gangen og kjøre simuleringen på nytt. Dette kan være nyttig for kontroll og mindre problemer, men blir kostbart når modellen har mange parametere. Numerisk støy og valg av perturbasjonsstørrelse kan dessuten gjøre differansebaserte sensitiviteter vanskelige å beregne nøyaktig.

Vi utvikler metoder som utnytter modelligningene og avhengighetene i beregningen direkte. Det gjør det mulig å beregne gradienter for problemer med svært mange parametere, uten en separat simulering for hver parameter.

Automatisk derivasjon av modelligningene

Automatisk derivasjon beregner deriverte ved å anvende kjerneregelen på operasjonene i et dataprogram. Metoden skiller seg fra både symbolsk derivasjon og tilnærming med endelige differanser. Når modelligningene er implementert med operasjoner som støttes av rammeverket, kan de tilhørende derivertene beregnes sammen med funksjonsverdiene.

Vi har lang erfaring med å utvikle og bruke automatisk derivasjon for diskretiserte fysiske modeller. Dette omfatter beregning av Jacobimatriser for ikke-lineære løsere og deriverte med hensyn til parametere og andre modellstørrelser.

Effektiviteten avhenger av hvordan beregningene organiseres. Vi utnytter blant annet sparsitet, lokale koblinger og kjente beregningsmønstre for å redusere minnebruk og beregningskostnad. Flere av disse teknikkene er beskrevet i vårt bokkapittel om optimalisert automatisk derivasjon og effektive løsere. Målet er å kombinere fleksible modellbeskrivelser med ytelsen som kreves i store simuleringer.

Adjungerte metoder for hele simuleringsforløpet

Å derivere modelligningene er ikke det samme som å beregne hvordan sluttresultatet av en simulering avhenger av inngangsdataene. For tidsavhengige problemer må sensitivitetene ta hensyn til hvordan endringer forplanter seg gjennom hele simuleringsforløpet.

Vi utvikler diskrete adjungerte metoder som beregner gradienter av målfunksjoner ved å løse et tilhørende problem bakover gjennom tidsstegene. Dette er særlig effektivt når man har mange parametere og et begrenset antall målfunksjoner. Beregningskostnaden øker da ikke proporsjonalt med antallet parametere, slik den normalt gjør ved separate perturbasjonssimuleringer.

For implisitte simulatorer kan sensitivitetene beregnes fra de konvergerte diskrete ligningene. Dermed trenger vi ikke å derivere gjennom alle iterasjonene som ble brukt for å finne løsningen. Vi arbeider med samspillet mellom automatisk derivasjon, adjungerte ligninger, lineære løsere og lagring eller rekonstruksjon av tilstander fra simuleringen.

Grunnlag for kalibrering, optimering og maskinlæring

Ved modellkalibrering brukes gradienter til å undersøke hvordan parametere bør endres for å redusere avvik mellom simuleringer og observasjoner. Ved optimering beskriver de hvordan en målfunksjon påvirkes av endringer i utforming eller drift. Sensitivitetene kan også belyse hvilke parametere observasjonene gir informasjon om, og hvor ulike parametere har lignende virkninger.

Deriverbare simulatorer gjør det dessuten mulig å trene modeller der fysiske ligninger inngår direkte i beregningen. Vi arbeider både med kalibrerbare, fysikkbaserte modeller og med kombinasjoner av simulatorer og nevrale nettverk. Gradientene knytter sammen de fysiske og datadrevne delene av modellen.

Lokale sensitiviteter beskriver oppførselen rundt et bestemt parameterpunkt. De kan støtte usikkerhetsanalyse, men gir ikke alene et fullstendig bilde av usikkerhet eller av modellens oppførsel ved store parameterendringer.

Pålitelighet og numeriske valg

En beregnet gradient må svare til modellen og målfunksjonen man faktisk ønsker å undersøke. Toleranser i løserne, tidssteging, skifte mellom driftsbetingelser og ikke-glatte modellfunksjoner kan påvirke både gradientens nøyaktighet og hvordan den bør tolkes.

Vi undersøker disse forholdene og kontrollerer sensitiviteter gjennom blant annet retningsderiverte og sammenligning med perturbasjonsberegninger. Ved adaptive algoritmer og diskrete skifter må det avklares hvilke valg som holdes faste under derivasjonen, og hvilke avhengigheter som skal inngå.

Dette krever forståelse av både fysikken, de numeriske metodene og implementasjonen. Vår ekspertise omfatter hele denne kjeden, fra formulering av diskrete modeller til effektive gradientberegninger og bruk i videre analyser.

Erfaring på tvers av simuleringsverktøy

Vi har utviklet automatisk derivasjon og adjungerte metoder gjennom mange års arbeid med vitenskapelig programvare. Erfaringen omfatter blant annet MRST for strømning i porøse medier, Jutul og JutulDarcy for deriverbar flerfysikk- og strømningssimulering, og BattMo for elektrokjemiske modeller.

Arbeidet spenner fra fleksible forskningsrammeverk til beregningsmetoder for krevende industrimodeller. Det gir oss et grunnlag for å vurdere hvordan deriverbarhet kan innføres i eksisterende programvare, og hvilke deler av en simulator som må tilpasses for å støtte effektive og pålitelige sensitivitetsberegninger.

Utvalgte publikasjoner

Les mer

Software

BattMo

BattMo

BattMo is an open source simulation code for continuum modelling of electrochemical devices written in Matlab and Julia

Jutul

Jutul

Experimental Julia framework for fully differentiable multiphysics simulators based on implicit finite-volume methods with automatic differentiation.

MRST - MATLAB Reservoir Simulation Toolbox

MRST - MATLAB Reservoir Simulation Toolbox

A free open-source community code for rapid prototyping of new methods for modelling and simulation of flow in porous media. Has a large user community from all over the world.

Open Porous Media (OPM)

Open Porous Media (OPM)

The Open Porous Media (OPM) initiative provides open-source software for simulation, upscaling and visualization of porous media processes, in particular subsurface reservoirs.