Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

GORTO Prosessbeskrivelse Konseptvalg Modell oppbygging – oppdatering - størrelse Objektfunksjon, optimalitet, bruk av mellomprodukt tank MV / CV / DV Gruppeinndeling,

Liknende presentasjoner


Presentasjon om: "GORTO Prosessbeskrivelse Konseptvalg Modell oppbygging – oppdatering - størrelse Objektfunksjon, optimalitet, bruk av mellomprodukt tank MV / CV / DV Gruppeinndeling,"— Utskrift av presentasjonen:

1 GORTO Prosessbeskrivelse Konseptvalg Modell oppbygging – oppdatering - størrelse Objektfunksjon, optimalitet, bruk av mellomprodukt tank MV / CV / DV Gruppeinndeling, prioritetshierarki, sensitivitetsmatrise Løsningsmetodikk SEPTIC Brukerforum 2007 Stig Strand, F&T PRA PROK

2 2 GORTO Kalundborg Optimalisering av gassolje (diesel) produksjon ved raffineriet i Kalundborg Kalundborg

3 3 Ideen bak GORTO prosjektet Hydrotreating 3 stk. pluss mellomprodukttank Fraksjonering 4 stk. pluss mellomprodukttanker Ferdigprodukter Inline Mixing, Sample Point Analyzers/Lab. 2 stk. pluss kombinert M Analyzers/ Sample M Min. 5 timer Prosessbeskrivelse for Kalundborgs gassolje produksjon:

4 4 GORTO systemerne

5 5 Konseptvalg Dynamisk eller stasjonær modell? – relativt hyppige endringer i fødesammensetning og produktspesifikasjoner – labmålinger av produktkvalitet hver 12. time – tilgjengelige pådrag har svært ulik dynamisk respons mot ferdig produkt, med spenn i tidskonstanter fra 4-5 timer til få minutt – viktig å kunne koordinere pådragene dynamisk optimalt slik at produktet hele tiden er nær spesifikasjon på de optimalt begrensende egenskapene – dersom en av fraksjonatorene ikke greier å ”henge med” lenger vil dette kreve ny optimalisering, og det skjer ofte og er ganske upredikerbart – konklusjon: dynamisk modell for optimalisering – MPC – RTO – DRTO? Lineær eller ulineær modell? – blandelikninger: noen egenskaper blander volumetrisk lineært (eks tetthet og svovel), noen blander ulineært (eks cloud, flash, viskositet), mens for destillasjon (eks temperatur der 85 vol% av blanding er destillert) må blandestrømmenes destillasjonskurver benyttes i iterativ blanding – konklusjon: ulineær modell – modellen må i tillegg være tilstandsbasert for å kunne representere et vell av oppliningsmuligheter, og for å muliggjøre intern oppdatering med propagering videre til produktene

6 6 Modell oppbygging (1)

7 7 GasOilStreamResponse LGO_LGO95MV GasOilStreamResponse LVGO_LVGO95MV GasOilStreamResponse VBGO_VBGO95MV GasOilStreamResponse LVGO_LGO95MV GasOilStream LGO GasOilStream LVGO GasOilStream VBGO GasOilStream GH010BL1 GasOilStream VP016BL1 GasOilStream VB638BL1 GasOilSplit LgoSplit LgoSplit.InStream = &LGO; LgoSplit.addOutStream(&GO001BL1); LgoSplit.addOutStream(&GH010BL1); LgoSplit.addOutStream(&GH010BL2); LgoSplit.addOutStream(&PS014BL1); LgoSplit.addOutStream(&PS014BL2); LgoSplit.addOutStream(&GH060BL1); LgoSplit.addOutStream(&PS227BL1); GH010BL1.Desc = "C-201 LGO to Sek800"; GH010BL1.LineUp = &(pm->GH010BL1_LUP); GH010BL1.Flow = &(pm->GH010BL1_FLOW); GH010BL1.FlowControlled = 1; Neste slide Deltabasert (som ExprModl) dvs endring inn  endring ut

8 8 Modell oppbygging – Sek800 avsvovling GasOilMix MixFeed800 Statisk VB638BL1 VP016BL1 GH010BL1 PS202BL3 GB810BL1 GB810BL2 GasOilStream FeedMixSek800 GasOilStreamDynamics DynFeedSek800 GasOilStream FeedSek800 GasOilStream FeedSek800B FeedSek800B.Copy(&FeedSek800); *FeedSek800B.Rec95 += Sek800_DeltaRec95; *FeedSek800B.Rec90 += Sek800_DeltaRec90; *FeedSek800B.Rec85 += Sek800_DeltaRec85; *FeedSek800B.Rec80 += Sek800_DeltaRec80; *FeedSek800B.Rec50 += Sek800_DeltaRec50; *FeedSek800B.CloudPnt += Sek800_DeltaCloud; FeedSek800B.Calc(cmd); GasOilStreamDynamics Sek800 GasOilStream ProdSek800 void GasOilMix::Calc(int cmd) (et utsnitt) { *(OutStream->Rec95) = TempAtEvap(0.95); for (i=0;i<ninstreams;i++) { double voli = InStreams[i]->getFlow()/suminflows; cloud += pow(1.078,*(InStreams[i]->CloudPnt))*voli; density += *(InStreams[i]->Dens)*voli; } *(OutStream->CloudPnt) = min(gortobad,max(-100,log(cloud)/log(1.078))); *(OutStream->Dens) = min(gortobad,max(0,density)); } Deltabasert (som ExprModl) dvs endring inn  endring ut

9 9 Modell oppbygging – Sek800 avsvovling (2) GasOilMix MixFeed800 Statisk VB638BL1 VP016BL1 GH010BL1 PS202BL3 GB810BL1 GB810BL2 GasOilStream FeedMixSek800 GasOilStreamDynamics DynFeedSek800 GasOilStream FeedSek800 GasOilStream FeedSek800B FeedSek800B.Copy(&FeedSek800); *FeedSek800B.Rec95 += Sek800_DeltaRec95; *FeedSek800B.Rec90 += Sek800_DeltaRec90; *FeedSek800B.Rec85 += Sek800_DeltaRec85; *FeedSek800B.Rec80 += Sek800_DeltaRec80; *FeedSek800B.Rec50 += Sek800_DeltaRec50; *FeedSek800B.CloudPnt += Sek800_DeltaCloud; FeedSek800B.Calc(cmd); GasOilStreamDynamics Sek800 GasOilStream ProdSek800 GasOilStreamResponse Prod800_SUL800 GasOilStreamResponse Prod800_GHR804 Strippedamp (MV) -> Flash SUL800 = exp(7.839-0.0693612*GHC021TA+0.0457378*REC95+0.0230973*Feed800); SiSoModel GHC021TA_GHTC013 SiSoModel GHC021TA_GHFC017 MV: GHTC013 MV: GHFC017 GHC021TAGHC021TA Meas Model::Calc(UPDT) SiSoModel GHQ023_GHTC013 SiSoModel GHQ023_GHFC017 CV: GHQ023 Sek800 modell: KlasseAntall GasOilMix1 GasOilStream4 SiSoModel8 GasOilStreamDynamics2 PropFilter3 GasOilStreamResponse3

10 10 Modell størrelse Variable – Svr: 169 – Evr: 101 – Tvr: 151 – Mvr: 23 – Cvr: 60 – 21 subgrupper – 38 prioritetsnivå Modellobjekt – GasOilStream: 73 – SiSoModel: 27 – GasOilStreamResponse: 22 – GasOilStreamDynamics: 13 – GasOilMix: 8 – PropFilter: 7 – GasOilSplit: 5

11 11 Objektfunksjon Planlegning: Gassoljetrekkene skal stilles inn slik at de har like marginale kvaliteter på den begrensende RunDown-kvalitet – dvs hvis Cloud er begrensende på RunDown så skal gassoljetrekkene ha lik marginal Cloud – dvs Cloud på den neste dråpen som trekkes ut som resultat av at det trekkes litt tyngre skal være lik for fraksjonatortrekkene Dette karakteriserer optimal løsning (under gitte betingelser) – praktisk objektfunksjon (direkte avledet av almen oppfatning): Maksimaliser totalt gassoljetrekk – CV: GBGOSUM = LAGO_FLOW + LGO_FLOW + LVGO_FLOW + VBGO_FLOW – Uten andre begrensninger enn blandet cloud < cloudmax, og uten kobling mellom fraksjonatortrekkene gir optimal løsning ens marginal cloud på trekkene Modifisert objektfunksjon – LVGO som dumpes krakkes på ny (hvis plass) og kommer dermed delvis tilbake som fraksjonatorføde, mens dumping i de andre fraksjonatorene går til fuel-produksjon – CV: GBGOSUM = LAGO_FLOW + LGO_FLOW + 0.6*LVGO_FLOW + VBGO_FLOW – Dermed vil ikke optimal løsning kunne karakteriseres med ens marginale egenskaper lenger – Objektfunksjonen gjør jobben, men det kan av og til være hardt å akseptere løsningen...., og å få den til å spille riktig i forhold til alle andre regulerings- og optimaliseringsønsker

12 12 T = 50 min, d = 5 min T = 40 min, d = 10 min T = 16 min, d = 10 min Prop: T1 = 10 min, T2 = 40 min, d = 110 min T = 10 min -langsom dynamikk mot RD -begrenset endringshastighet så fracs kan henge med -skal helst ikke ha for mye oversving i i forhold til SS opt Steady state opt: - ønsket mengde fra TK1337 (GBFC818.Iv) - bestemmer optimale frak-trekk for maks GBGOSUM - kvalitet SetPnt reberegnes til grense eller innenfor Calc: - SetPnt som beregnes til grense gis Fulf > 0  TK1337 reduserer give-away dynamisk Objektfunksjon – optimalitet – bruk av TK1337 - raskt håndtak mot RD - lett, godt stoff i forhold til de fleste egenskaper - skal i snitt ligge på PPL plan, styrt av fremtidig produksjon - brukes dynamisk aktivt for å redusere off-spec eller give-away

13 13 Sensitivitetsmatrise Standardapplikasjon med eksperimentelle modeller – fjerner noen modeller som er ”små” – fjerner noen modeller som er signifikant men som en ikke ønsker å utnytte – dupliserer noen MV’er som DV’er og overfører modeller dit GORTO beregner sensitivitetsmatrise (MV  CV) ved MV endring  modellsimulering – alle modellerte sammenhenger fremtrer i matrisa, alle muligheter ses dermed – alle små numeriske avvik (eks delta dynamiske modeller) vil opptre  E-7 element i matrisa – prioritetsmekanismer og move penalties avhjelper problemet, men noen uønskete aksjoner (planer) ble observert Manipulasjon av matrise – Calc: subrmpcgain(CVRTAG,MVRTAG)  gir steady state gain fra matrise – Calc: subrzerosens(CVRTAG,MVRTAG,ZEROFLAG)  nuller sammenheng i matrise hvis ZEROFLAG = 1

14 14 Løsningsmetodikk for GORTO Prediksjonshorisonten simuleres med konstante MV’er (CONSTMVR)  ”open loop” respons MV’er steppes etter tur  simulering for hvert step over hele horisont  antar samme respons for blokker lenger ut  endring fra open-loop blir sensitivitet fra aktuell MV mot alle CV’er Nulling av små eller spesielle element i sensitivitetsmatrise Steady state optimalisering (inntil 40 ganger) for å løse prioritetshierarki Justering av spesifikasjoner internt i tråd med steady state løsning Dynamisk optimalisering en gang, ingen iterasjon Sett ut pådrag, vent 5 min før neste sample som starter med modelloppdatering eksekverer på 5 – 10 sek og virker


Laste ned ppt "GORTO Prosessbeskrivelse Konseptvalg Modell oppbygging – oppdatering - størrelse Objektfunksjon, optimalitet, bruk av mellomprodukt tank MV / CV / DV Gruppeinndeling,"

Liknende presentasjoner


Annonser fra Google