• No results found

Simuleringsmodell för älvsystem med vattenkraftverk

N/A
N/A
Protected

Academic year: 2021

Share "Simuleringsmodell för älvsystem med vattenkraftverk"

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(1)

Upps al a univ ersit ets l ogot yp

UPTEC ES 21020

Examensarbete 30 hp Juni 2021

Simuleringsmodell för

älvsystem med vattenkraftverk

Anton Öberg

Civilingenj örspr ogrammet i energisyst em

(2)

Teknisk-naturvetenskapliga fakulteten Uppsala universitet, Utgivningsort Uppsala/Visby

Upps al a univ ersit ets l ogot yp

Simulation model for river systems with multiple hydropower plants

Anton Öberg

Abstract

To be able to optimally plan hydropower production Vattenfall has constructed an optimization tool. This tool is simplified to keep calculation times low. The solutions are therefore not trusted to be realizable. To test if a solution can be applied in reality, Vattenfall wants to make

simulations with the optimization solution as input. The aim of this project has therefore been to construct a simulation model based on table data, the best possible description of reality available.

The simulation model is regarded as reliable for visualization of a proposed plan. By using optimization solutions as input to the simulation model the feasibility of the optimization solution is tested. Simulations show that optimization solutions generally are not realizable. Therefore, the simulation model was designed to calibrate the approximated relation between flow and power used in the optimization model, using the simulation result. The optimization solutions after calibration came closer to feasibility. A margin of error under 1% can be expected, when looking at the complete time period. Instantaneous error can reach over 10% and are not decreased by calibration. By modifying the optimization solutions the simulation model can produce realizable solutions, but then optimality is lost. The modified solutions also often violate legal boundaries, regarding for example water levels.

The simulation times were aimed to be kept low, but results show that a simulation can take several times longer than an optimization with the same time steps. It also requires higher time resolution to produce reliable results leading to even longer simulation times.

Tek nisk-nat urvetensk apliga f ak ulteten, Upps ala universit et . Utgiv nings ort U pps al a/Vis by . H andledare: Jonas F unkquist , Äm nesgransk are: Johan Forsl und, Ex aminat or: Petra Jönss on

(3)

Populärvetenskaplig sammanfattning

Vattenkraft är en viktig del i Sveriges energisystem. Inte bara för att en stor andel av Sveriges el produceras av vattenkraft. Vattenkraft fyller även en viktig roll för att upprätt- hålla balansen på elnätet. Stora mängder vatten kan lagras i magasin och sedan användas när utbudet av el minskar eller efterfrågan ökar. Utbud och efterfrågan styr även elpriset.

När det är brist på el ökar priset och när det finns ett överskott sjunker priset. Vatten- kraft kan därför välja att producera mer när det råder brist på el, och därmed få mer betalt för det vatten som finns tillgängligt. På så vis görs både elsystemet och intäkterna en tjänst.

Utmaningen för ägaren av vattenkraftverken är att veta när de kommer att råda brist på el och hur vattnet ska vara positionerat för att snabbt kunna öka produktionen om det uppstår elbrist. Dessutom finns lagar och regler som utav miljömässiga skäl begränsar hur fritt vattenflödet i en älv får styras.

För att skapa en plan över hur maximal intäkt ska uppnås har Vattenfall skapat en optimeringsmodell. Optimeringsmodellen använder prognoser om elpris och tillrinning, egenskaperna för de vattenkraftverk och magasin som finns i älven, samt aktuella lagar för att skapa en optimal produktionsplan. Planen inkluderar hur vattnet i älven ska styras samt hur mycket energi och effekt detta genererar.

För att optimeringsmodellens beräkningstider ska begränsas har vissa förenklingar gjorts.

Dessa påverkar dock trovärdigheten i planen och det finns ingen garanti för att den plan som tagits fram går att efterlikna i verkligheten. Därför har det primära syftet med projektet varit att ta fram en simuleringsmodell som använder tabelldata och så få förenklingar som möjligt, för att kunna testa om optimeringsmodellens lösningar går att efterlikna i realiteten. Detta utan att beräkningstiden blir för lång.

Den optimeringsmodell som redan fanns på plats vid projektets start samt simuleringsmo- dellen som byggts under projektet har båda gjorts i Matlab med hjälp av objektorienterad programmering.

Det visar sig att optimeringslösningarna ofta inte är realiserbara (inte möjliga att ef- terlikna i verkligheten). Detta då den planerade elproduktionen inte går att efterlikna.

Optimeringsmodellen innehåller för mycket förenklingar, till exempel att vattennivåer antas vara konstanta. Genom att kalibrera det antagna sambandet mellan vattenflöde och elproduktion i optimeringsmodellen, kan dock en mer realiserbar och optimal lösning erhållas. Det går även att korrigera optimeringslösningen så att en realiserbar plan er- hålls, men då på bekostnad av optimalitet och ofta att lagar gällande vattennivåer och vattenflöden bryts.

För bästa funktion bör vattenflöde vara den förutbestämda variabeln som finns i planen.

(4)

Det går även att använda elproduktion som bestämd variabel men då blir systemet ofta instabilt, och det är vanligt med översvämningar och vattenbrist.

Simuleringsmodellen kan användas i en rad olika syften beroende på parametrar som väljs av användaren. Ett urval av dessa presenteras i rapporten i form av olika fall.

Simuleringsmodellen bedöms pålitlig för syftet att visualisera vad som händer ifall en plan efterföljs. Den kan även kalibrera optimeringsmodellen för att komma närmre att hitta en optimal och realiserbar lösning, men inte helt.

Beräkningstiden blir längre än önskat och ökar snabbare när antalet tidssteg i simule- ringen ökar. Anledningen till detta har inte kunnat fastställas. Det finns inget i simule- ringsmodellen som ska innebära att fler tidssteg ska ta längre tid per tidssteg än vad få tidssteg gör, men så blir utfallet. Jämfört med optimeringsmodellen tar simuleringsmodel- len flera gånger längre tid. Fortsatt arbete för att minska beräkningstiden rekommenderas därför.

(5)

Exekutiv sammanfattning

Den optimeringsmodell som sedan tidigare finns för att bestämma optimala produktions- planer för älvar med vattenkraftverk innehåller förenklingar. Därför kan dess lösningar inte antas vara realiserbara. I detta projekt har därför en simuleringsmodell byggts. Den använder Opt+data, i nuläget den bästa tillgängliga beskrivningen av verkligheten, för att testa ifall optimeringslösningar är realiserbara eller ej.

Det visar sig att optimeringslösningarna inte är realiserbara. Simuleringsmodellen kan kalibrera optimeringsmodellen och på så sätt komma närmre en optimal och realiserbar lösning. Sett över en hel tidsperiod kan lösningar från en kalibrerad optimeringsmodell förväntas vara realiserbara inom 1% felmarginal, men momentana avvikelser över 10%

kan uppstå. Den kan även skapa realiserbara lösningar genom att korrigera indata (opti- meringslösningarna), men då kan inte lösningen längre antas vara optimal och ofta bryts även vattendomar.

Beräkningstiden är relativt lång. Jämfört med en likvärdig optimering tar en simulering flera gånger längre tid och kräver dessutom högre tidsupplösning för att ge verklighets- trogna resultat.

För framtida användning rekommenderas att modellen effektiviseras eller används på kortare tidsperioder. Den förutbestämda indatavariabeln bör vara flöde (inte effekt). För visualisering av en föreslagen plan bedöms modellen fungera väl. Simuleringsmodellen kan kalibrera optimeringsmodellen och på så vis komma närmre realiserbara och optimala lösningar, men inte helt.

(6)

Förord

Detta examensarbete har utförts i samarbete med Vattenfall, och avslutar utbildning- en Civilingenjörsprogrammet i Energisystem vid Uppsala Universitet och Sveriges Lant- bruksuniversitet.

Ett stort tack till Vattenfall, min handledare Jonas Funkquist och min ämnesgranskare Johan Forslund som gjort projektet genomförbart. Ett stort tack till Uppsala Universitet och Sveriges Lantbruksuniversitet för en högklassig utbildning. Och framför allt, ett stort tack till alla personer som förgyllt studietiden.

Uppsala, maj 2021 Anton Öberg

(7)

Ordlista

Aggregat En turbin som producerar el.

Effekt Med effekt avses elektrisk effekt.

Fallhöjd Skillnad i vattennivå uppströms och nedströms.

Flöde Med flöde avses vattenflöde som går genom en station och används för att producera el. Samma betydelse som turbinvat- tenflöde.

Kraftenhet En enhet för kraftproduktion. Samlingsnamn för station och aggregat.

NaN Not a Number.

Optimeringsmodell Modell som används för att ta fram en optimal lösning på ett givet problem.

qp-data Punkter i ett diagram med flöde som x-axel och effekt som y-axel.

Simuleringsmodell Modell som används för att undersöka hur ett system förändras över tid.

Spill Med spill avses vattenflöde som ej används för att producera el.

Station Ett vattenkraftverk. Består utav ett antal aggregat.

Struct En samling variabler i Matlab.

Subklass En klass som ärver egenskaper och metoder från en superklass.

Superklass En samling av egenskaper och metoder gemensamma för samt- liga subklasser.

Tabelldata Beräknad data som grundas i mätdata.

Vattendom Regler som begränsar den mänskliga påverkan på älven. Ex- empelvis tillåtna flöden och vattennivåer.

ZOH Zero order hold. Används vid beskrivning av en kontinuerlig funktion med hjälp av diskreta mätpunkter. Funktionen ap- proximeras som konstant mellan mätpunkterna.

(8)

Innehåll

1 Inledning 1

1.1 Introduktion . . . 1

1.2 Syfte . . . 1

1.3 Frågeställningar . . . 1

1.4 Avgränsningar . . . 2

2 Teori 3 2.1 Teoretisk effektberäkning . . . 3

2.2 Effektberäkning i optimeringsmodellen . . . 3

2.3 Kalibrering av nya produktionsfunktioner . . . 4

2.4 Skattning av realiserbarhet . . . 4

3 Bakgrund 6 3.1 Optimeringsmodeller . . . 6

3.2 Simuleringsmodeller . . . 6

3.3 Beräkningstid . . . 7

3.4 Objektorienterad programmering . . . 8

3.5 Opt+data . . . 8

4 Optimeringsmodellen 9 4.1 Approximationer . . . 9

5 Uppbyggnad av simuleringsmodellen 11 5.1 Klasser och funktioner . . . 12

5.2 Lista över valbara parametrar . . . 17

6 Resultat 18 6.1 Flöde som indatavariabel . . . 18

6.1.1 Fall 1 . . . 19

6.1.2 Fall 2 . . . 22

6.1.3 Fall 3 . . . 24

6.1.4 Fall 4 . . . 27

6.2 Effekt som indatavariabel . . . 30

6.2.1 Fall 5 . . . 30

6.2.2 Fall 6 . . . 31

6.3 Skattning av realiserbarhet . . . 33

6.4 Beräkningstid . . . 35

7 Sammanfattande diskussion 37

8 Slutsats 39

9 Rekommendation till fortsatt arbete 40

Referenser 41

(9)

1 Inledning

1.1 Introduktion

Vattenkraft fyller en viktig funktion som både baskraft och reglerkraft i Sveriges energi- system. Det går att lagra stora mängder energi i form av vatten i magasin som sedan kan användas för att producera el när utbudet minskar eller efterfrågan ökar. När utbudet eller efterfrågan ändras gör elpriset detsamma. Detta medför att aktörer som bedriver flexibel elproduktion, som till exempel vattenkraft, kan öka intäkterna genom att planera produktionen efter elpriset, det vill säga planera så att mycket el produceras då elpriset är högt och mindre el produceras då elpriset är lågt. Utöver högre intäkter bistår vatten- kraften även med hjälp att behålla stabilitet på elnätet. På grund av miljömässiga själ finns dock vattendomar som begränsar hur fritt det är tillåtet att planera vattenkraft- produktion. Det kan till exempel handla om begränsning av vattennivåer eller ett minsta flöde som alltid ska finnas i älvarna.

För att planera styrningen av älvar med flera vattenkraftverk har Vattenfall utvecklat en optimeringsmodell för att hitta en optimal lösning, ofta med målet att maximera intäkten.

Denna modell innehåller antaganden och förenklingar för att minimera beräkningstid. Hur stor påverkan förenklingarna och antagandena har på lösningen behöver kvantifieras, och det behöver kontrolleras om lösningarna är realiserbara, det vill säga direkt applicerbara i verkligheten.

Därför vill Vattenfall nu skapa en simuleringsmodell som innehåller färre antaganden och förenklingar för att kunna bedöma om optimeringslösningar är realiserbara. Med realiserbarhet menas att elproduktionen i en produktionsplan kan exakt efterliknas i en mer verklighetstrogen simulering, utan att mekaniska begränsningar eller fysikaliska lagar överträds. Om inte produktionsplanerna är realiserbara ska vissa parametrar i op- timeringsmodellen kalibreras för att komma så nära realiserbarhet som möjligt, utan att förlora optimalitet.

1.2 Syfte

Syftet med projektet har varit att skapa en simuleringsmodell i Matlab som kan använ- das som komplement till optimeringsmodellen. Simuleringsmodellen ska vara baserad på tabelldata och så detaljerad som möjligt. Samtidigt ska beräkningstiden hållas rimligt låg för att göra modellen praktiskt användbar. Det primära syftet är att kunna visualisera vad som sker ifall en föreslagen plan efterföljs. Det sekundära syftet är att kunna ta fram en både optimal och realiserbar plan för kraftproduktion i en älv.

1.3 Frågeställningar

Frågor som projektet ämnar besvara är:

• Genererar optimeringsmodellen realiserbara lösningar?

• Hur nära realiserbara och optimala produktionsplaner kan en kalibrerad version av optimeringsmodellen generera?

(10)

1.4 Avgränsningar

Projektet utgår ifrån en redan befintlig optimeringsmodell. Stora delar av denna modell har även varit användbara till simuleringsmodellen och har därför nyttjats. Antaget är därmed att redan befintlig kod fungerar enligt beskrivning. De överlappande delar som använts nämns endast översiktligt i rapporten.

Inga praktiska experiment för att verifiera simuleringsmodellens funktion har utförts. I stället har det simulerade resultatet analyserats för att bedöma funktionen av simule- ringsmodellen.

På grund av att simuleringsmodellen byggts för att integreras i befintlig optimeringsmo- dell är den kod som skapats under projektet till stor del obegriplig utan optimeringsmo- dellen. Därför har all kod exkluderats från rapporten.

(11)

2 Teori

I detta kapitel presenteras de samband som använts för att skapa simuleringsmodellen och bedöma resultatet. Dessa samband hänvisas till i senare kapitel och kan ses som en formelsamling.

2.1 Teoretisk effektberäkning

I ett vattenkraftverk omvandlas vattnets potentiella energi till elektrisk energi med hjälp av en turbin. Den teoretiskt möjliga effekten som kan producerad beräknas med följande samband:

p = ηρgq∆h (1)

där p ∈ [Pmin, Pmax] är producerad effekt, η är verkningsgrad, ρ är vattnets densitet, g är tyngdaccelerationen, q ∈ [Qmin, Qmax] är vattenflödet och ∆h är fallhöjden. Qmin, Qmax, Pmin, Pmax är egenskaper för vattenkraftverket.

Genom omskrivning av ekvation (1) kan verkningsgraden (η) beräknas. Detta görs enligt följande ekvation:

η = p

ρgq∆h (2)

2.2 Effektberäkning i optimeringsmodellen

I optimeringsmodellen används en förenklad version av ekvation 1 för att minska beräk- ningstiden. En mer utförlig beskrivning av dessa förenklingar finns i kapitel 4. Nedan presenteras endast de ekvationer som används.

Producerad effekt beräknas i optimeringsmodellen med olika ekvationer beroende på om linjära eller tvådelat linjära produktionsfunktioner valts av användaren.

För linjära produktionsfunktioner används

p = kq (3)

där q ∈ [Qmin, Qmax] och k är en konstant som beräknas enligt:

k = Pmax

Qmax (4)

För tvådelat linjära produktionsfunktioner används istället följande ekvation:

p =

(k1q, om q ∈ [0, 0.8Qmax]

k10.8Qmax+ k2(q − 0.8Qmax), om q ∈ (0.8Qmax, Qmax] (5) där k1 och k2 för närvarande beräknas med hjälp av antagandet att vid 80% flöde fås 90% effekt. Detta antagandet är godtyckligt valt av skaparen till optimeringsmodellen.

k1 = 0.9Pmax

0.8Qmax (6)

k2 = (1 − 0.9)Pmax

(1 − 0.8)Q (7)

(12)

Följande uttryck för konstanten k erhålls genom att kombinera ekvation (1) och (3).

Ekvationen visar de parametrar som finns inbakade i konstanten.

k = ηρg∆h (8)

Notera att både η och (∆h) är beroende av vattenflödet vilket förändras över tiden. Att anta ett konstant k, vilket görs i optimeringsmodellen, är en förenkling av verklighe- ten.

2.3 Kalibrering av nya produktionsfunktioner

För att kalibrera linjära produktionsfunktioner används qp-punkterna från föregående simuleringsresultat. Då används normalekvationen för att finna en minsta-kvadratlösning

ATAx = ATb (9)

där A är indatavaliabeln (flöde eller effekt) och b är flöde eller effekt (den variabel som inte är indatavariabel). En lösning ˆx minimerar |Ax − b| och är således en minsta- kvadratlösning till ekvationen Ax = b (KTH 2005). Produktionsfunktionens lutning, k, tilldelas sedan värdet av ˆx.

2.4 Skattning av realiserbarhet

För att bedöma hur långt ifrån realiserbarhet en produktionsplan är används fyra olika mått: Relativ avvikelse i total energiproduktion (∆E), genomsnittlig absolut effektavvi- kelse (|dP |avg), maximal effektavvikelse (|dP |max) samt standardavvikelse för momentan effektavvikelse (σ(dP )). Hur dessa beräknas beskrivs nedan.

Avvikelse i total energiproduktion:

∆E = |Esim− Eopt|

Eopt (10)

där Esim och Eopt är den totala energiproduktionen i simulering och optimering.

Genomsnittlig absolut effektavvikelse, maximal effektavvikelse och standardavvikelse för momentan effektavvikelse grundas alla i den momentana effektavvikelsen mellan simule- ring och optimering (dP ), som beräknas enligt följande:

dP = Psim− Popt

Pkap (11)

där Psim och Popt är momentat producerad effekt i simulering och optimering. Pkap är den installerade maxkapaciteten. Utifrån dP kan sedan resterande värden beräknas.

Genomsnittlig absolut effektavvikelse:

|dP |avg = P |dP |

N (12)

Maximal effektavvikelse:

dPmax = max(|dP |) (13)

(13)

Standardavvikelse för momentan effektavvikelse:

σ(dP ) =

rP(dP − ¯dP )2

N (14)

där N är antalet uppmätta värden och summering görs över hela den simulerade tidspe- rioden.

Vid vissa beräkningar innehav endast ett stickprov, och inte en komplett mätserie. Då används Bessels korrektion, vilket ger en snarlik formel som ovan.

s =r P(x − ¯x)2

N − 1 (15)

Den studerade variabeln betecknas x, ¯x är medelvärdet av samtliga stickprov och N antalet stickprov.

Om en variabel antas vara normalfördelad är sannolikheten ungefär 97.5% att värdet på ett stickprov är mindre än medelvärdet plus två standardavvikelser:

P (X ≤ µ + 2σ) ≈ 0.975 (16)

där µ är medelvärdet, σ är standardavvikelsen, och X är värdet av stickprovet.

(14)

3 Bakgrund

I detta kapitel ingår vad som bedöms vara den viktigaste bakrgundsfaktan för att förstå uppbyggnaden av simuleringsmodellen och det resultat som senare presenteras.

3.1 Optimeringsmodeller

En optimeringsmodell har typiskt ett antal beslutsvariabler som beräknas för att mini- mera eller maximera en objektfunktion. Denna objektfunktion är ofta påverkad av re- striktioner som lösningen ska uppfylla, så kallade bivillkor (Lund m. fl. 2017). Syftet med en optimeringsmodell är att besvara frågan Vad är den optimala lösningen? (Carson och Maria 1997). För att kunna hitta en optimal lösning behöver ett mål specificeras och utifrån målet kan en objektfunktion formuleras. Ofta är målet att maximera ekonomisk vinst, men andra mål är även vanligt förekommande. I en optimeringsmodell antas att en ensam optimal lösning existerar för ett givet system och objektfunktion (Lund m. fl.

2017). Figur 1 visar en generisk objektfunktion med en ensam optimal lösning med målet att maximera index. I detta exempel beror objektsfunktionen endast på en parameter, x, men ofta beror objektsfunktioner på flera parametrar.

Exakt hur en optimeringsalgoritm fungerar beror på vilken algoritm som används. Över- gripande kan sägas att optimeringsalgoritmer evaluerar ett stort antal olika lösningar och söker efter en optimal lösning. Det finns flera olika sätt att klassificera optimerings- algortimer som till exempel gradient-baserad/gradient-fri eller deterministisk/stokastisk.

Beteendet för olika optimeringsalgoritmer skiljer sig åt och därför är olika optimerings- algortimer bättre lämpade till vissa problem och sämre lämpade till andra problem (Yang 2011).

0 2 4 6 8 10

Parameter x 0

5 10 15 20 25

Index

Figur 1: Illustrering av en generisk objektsfunktion. En optimeringsmodell med syftet att max- imera index ska finna det x så att index antar sitt största värde inom det givna intervallet. I detta fall bör en optimeringsmodell generera x = 7.5 och index = 21.57.

3.2 Simuleringsmodeller

Syftet med en simuleringsmodell är att beräkna hur ett system förändras över tid, givet ett antal bestämda villkor. Genom att göra det kan frågan Vad händer om ...? besvaras.

(15)

Simuleringsmodeller utgår ifrån systembeskrivningen i startpunkten och förändrar sedan systemet för varje tidssteg utifrån de angivna villkoren (Carson och Maria 1997). Resulta- tet från en simuleringsmodell kan användas för att jämföra och analysera olika scenarion.

Simuleringsmodeller genererar inte ett optimalt svar utan snarare ett antal olika utpa- rametrar som sedan kan analyseras av utföraren. Det antas i en simuleringsmodell inte finnas ett optimalt svar utan snarare styrkor och svagheter med olika scenarion. Därför passar simuleringsmodeller bra för komplexa problem där inte en enskild parameter kan avgöra vilket scenario som är bäst lämpat (Lund m. fl. 2017). Figur 2 visar två generiska simuleringsscenarion Scenario Blå och Scenario Röd vilka båda har två utparametrar, båda beroende av inparametern x. Vilket scenario som är bäst kan inte bedömas utifrån figuren, utan måste analyseras vidare. I en simuleringsmodell finns inget som begränsar antalet in- och utparametrar.

0 2 4 6 8 10

Parameter x -10

-5 0 5 10 15 20 25 30

Index

Scenario Blå Scenario Röd

Figur 2: Illustrering av två generiska simuleringsscenarion. En simuleringsmodell ska endast ta fram scenarion utifrån givna beskrivningar, analysen görs av utföraren.

3.3 Beräkningstid

En komplex och omfattande optimering kan ta minuter, timmar och till och med dagar att beräkna. En onödigt lång beräkningstid kan kosta mycket tid och stora summor pengar för ett företag. Att minimera beräkningstiden är därför önskvärt. Ett sätt att minska beräkningstiden är att använda optimeringsalgoritmer som är väl anpassade till ett givet problem. En bra lämpad algoritm klarar av att lösa optimeringsproblemet med ett lägre antal iterationer jämfört med en sämre lämpad. Därför kan valet av optimeringsalgoritm vara av stor vikt (Yang 2011).

Ofta är dock valet av en väl anpassad algoritm inte tillräckligt för att uppnå önskad be- räkningstid. Då måste en förenkling av systemet införas. Ett vanligt sätt att åstadkomma detta är att ersätta olinjära samband med linjära approximationer eller styckvis linjära approximationer. Skillnaden mellan en linjär och olinjär modell av samma system kan vara flera storleksordningar i beräkningstid. Approximationer kommer dock på bekost- nad av att noggrannheten i resultatet sänks (Hochbaum 2007; Lund m. fl. 2017; Yang 2011).

(16)

3.4 Objektorienterad programmering

Matlab är kapabelt att hantera objektorienterad programmering. Då optimeringsmodellen är skriven med objektorienterad programmering har även simuleringsmodellen skrivits på den formen. Även om inte koden i detalj tas upp i denna rapport kommer den övergripande strukturen att diskuteras. Därför förklaras här nedan de mest vitala begreppen inom objektorienterad programmering i Matlab.

Ett objekt besitter individuella egenskaper och ett antal gemensamma metoder som delas med samtliga objekt tillhörande samma klass. En klass definierar ett antal gemensamma egenskaper och metoder som delas av samtliga objekt tillhörande klassen.

Exempelvis kan en klass vara Bil. Varje objekt tillhörande klassen har de individuella egenskaperna färg och hästkrafter samt de gemensamma metoderna gasa, bromsa, sväng.

Två olika objekt Ferrari och Volvo tillhör båda klassen Bil. Både Ferrari och Volvo besitter metoderna gasa, bromsa, sväng men har olika individuella egenskaper. Ferrari har egenskaperna röd och 500 hästkrafter medan Volvo har egenskaperna svart och 150 hästkrafter.

Genom att ändra koden till Bil ändras koden för både Ferrari och Volvo, detta minskar mängden kod som behövs skrivas och eventuellt korrigeras. Dessutom kan information som tillhör ett specifikt objekt enkelt lagras i objektet och tas fram vid behov. På så sätt blir modellen lätthanterlig och överskådlig.

För att anropa en metod hos ett objekt används syntaxen objekt.metod. Ferrari.sväng får alltså objektet Ferrari att utföra metoden sväng.

På samma sätt som en klass är en samling av gemensamma egenskaper och metoder för objekt tillhörande klassen är en superklass en samling egenskaper och metoder ge- mensamma för dess subklasser. Exempelvis kan en subklass hund tillhöra superklassen husdjur.

3.5 Opt+data

Opt+data är tabelldata som beskriver relationen mellan vattenflöde, fallhöjd och ge- nererad elektrisk effekt. Fallhöjden beräknas från uppströms till nedströms magasin och inkluderar därmed även förluster i älvssträckan mellan stationer. Ska därför inte förväxlas med stationens verkningsgrad, som endast innefattar stationens förluster.

Opt+data anses vara den mest verklighetstrogna kvantifikationen som Vattenfall har till- gängligt idag. I projektet har opt+data antagits vara väl överensstämmande med verk- ligheten.

(17)

4 Optimeringsmodellen

I detta kapitel beskrivs de förenklingar som återfinns i optimeringsmodellen. Utöver de för- enklingar som finns i modellen finns även en osäkerhet i de prognoser som används.

Vattenfall har idag ett egenutvecklat verktyg för att utföra optimeringsberäkningar för älvsystem med vattenkraftverk. Älvsystemets topografi, komponenters egenskaper, elpris, lokalt inflöde till älven och vattendomar laddas in från specificerade datafiler. Använda- ren får sedan specificera ett antal parametrar. Dessa parametrar inkluderar bland annat mål, tidsupplösning och vilka produktionsfunktioner som används. Utifrån detta byggs en modell av älvsystemet upp. Verktyget använder sedan Matlabs Optimization Toolbox alternativt de externa lösarna Gurobi eller CPLEX för att bestämma beslutsvariablerna optimalt, utifrån det specificerade målet. Beslutsvariablerna är i det här fallet flöde och spill. Målet är som standard att maximera inkomsten.

4.1 Approximationer

För att begränsa beräkningstiden har vissa approximationer i optimeringsmodellen gjorts.

Exempelvis har olinjära samband antagits vara linjära, icke konstanta variabler antagits vara konstanta och vissa mekaniska begränsningar ignorerats. Dessa approximationer ut- gör en osäkerhet i lösningen och medför en risk att lösningen inte blir realiserbar. Nedan tas de approximationer som bedöms medföra störst osäkerhet i lösningen upp.

Konstant verkningsgrad

Ett vattenkraftverk har inte en konstant verkningsgrad, den beror både på flödet och fall- höjden, H. Hur stort tapp i verkningsgrad som fås när parametrar avviker från optimum är olika för olika kraftenheter. Ett exempel på detta visas i figur 3. Som kan ses är verk- ningsgraden olinjär och icke konstant. I optimeringsmodellen har dock verkningsgraden approximerats som konstant eller styckvis konstant, beroende vilka produktionsfunktio- ner som använts (se avsnitt 2.2).

100 200 300 400 500 600 700 800 900 Flöde [m3/s]

55 60 65 70 75 80 85 90 95

Verkningsgrad

H = 34.5m H = 33.0m H = 32.0m H = 30.5m

Figur 3: Verkningsgrad för en exempelstation som en funktion av flöde och fallhöjd.

(18)

Konstant fallhöjd

Mängden vatten som finns i magasinen varierar över tiden beroende på tillrinning från omgivande natur och hur flödena i älven styrs. Vattennivåerna är således inte konstanta och därmed inte fallhöjden heller. Som kan ses i ekvation (1) är producerad effekt linjärt beroende av fallhöjden. I optimeringsmodellen antas konstant fallhöjd vilket medför en osäkerhet i lösningen.

Mekaniska begränsningar förbises

En kraftenhet har mekaniska begränsningar hur den kan användas. Flödet måste ligga i intervallet [Qmin, Qmax] och effekten måste ligga i intervallet [Pmin, Pmax] för att kraften- heten ska fungera. Dessutom kan flöde och effekt vara noll, det vill säga att kraftenheten är avstängd. För att modellera denna diskontinuitet krävs binära variabler. Binära vari- abler är dock något som Vattenfall vill undvika då beräkningstiden ökar väsentligt. Det går att aktivera binära variabler i optimeringsmodellen men undviks ofta. I stället tillåts flödet vara i intervallet [0, Qmax] och effekten i intervallet [0, Pmax]. Därmed tillåts (0, Qmin) och (0, Qmin). Dessa tillstånd kan därmed finnas i lösningen men kan inte användas i verkligheten.

Produktionsfunktionerna

Samtliga av de tre ovan nämnda approximationerna adderas ihop när produktionsfunktio- nerna definieras enligt ekvation (3), (5) och (8). Detta eftersom approximationen om kon- stant verkningsgrad påverkar η, approximationen om konstant fallhöjd påverkar ∆h och mekaniska begränsningar som förbises påverkar intervallet för tillåtna q och p. Antagan- den och approximationer i produktionsfunktionerna bedöms, tillsammans med osäkerhet i prognoser för elpris och tillrinnning, stå för en klart övervägande del av den osäkerhet och avvikelse från verkligheten som finns i optimeringsmodellens lösningar. Figur 4 visar qp-data, det vill säga den verkliga produktionsfunktionen, för en exempelstation.

100 200 300 400 500 600 700 800 900 Flöde [m3/s]

0 50 100 150 200 250

Effekt [MW]

H = 34.5m H = 33.0m H = 32.0m H = 30.5m

Figur 4: qp-data för en exempelstation som en funktion av flöde och fallhöjd.

(19)

5 Uppbyggnad av simuleringsmodellen

I detta kapitel beskrivs simuleringsmodellen som skapats under projektet översiktligt. Då simuleringsmodellen är integrerad i den redan befintliga optimeringsmodellen är koden som skrivits under projektet ofullständig och kommer därför inte att presenteras.

Simuleringsmodellen bygger på opt+data som har antagits vara väl överensstämmande med verkligheten. Istället för att använda 2-dimensionella och linjära (eller tvådelat lin- jära) produktionsfunktioner används opt+data för omvandling mellan flöde, effekt och fallhöjd. Figur 4 visar hur opt+data spänner upp en 3-dimensionell yta, som motsvarar en mer verklighetstrogen produktionsfunktion. För extrahering av opt+data används linjär interpolation och linjär extrapolation.

Simuleringsmodellen består av ett antal olika klasser och funktioner med specifika syften.

Strukturen är konstruerad för att så enkelt som möjligt integreras tillsammans med opti- meringsmodellen. Figur 5 nedan visar en översiktsbild av simuleringsmodellens uppbygg- nad. Figur 6 visar ett blackbox-diagram över simuleringsmodellen. Efterföljande avsnitt innehåller en kortare beskrivning av respektive klass/funktion.

Figur 5: Förenklad bild över uppbyggnaden av simuleringsmodellen.

(20)

Simulering

Flöde/Effekt

Spill

Flöde Spill Volym

Effekt

Figur 6: Blackbox-diagram över simuleringsmodellen.

5.1 Klasser och funktioner

RiverSystem

Objekt som innehåller information om älvsystemet. Innehåller i sin tur ett antal magasin- stations- och aggregatobjekt samt information om hur dessa är sammankopplade. Klassen fanns sedan tidigare och endast små tillägg har gjorts under detta projekt.

Scenario

Objekt som innehåller information om den tidsperiod som optimeras eller simuleras. In- nehåller bland annat start och sluttid, startvolymer, vissa vattendomar, tillrinning och elpris. Även denna klass fanns sedan tidigare och inga förändringar har gjorts under detta projekt.

OptimizationResult

Objekt som lagrar information om optimeringsmodellen, optimeringsproblemet och op- timeringslösningen samt innehåller metoder för att göra beräkningar av olika nyckeltal.

Underklass till Result som innehåller de överlappande delarna mellan klasserna Opti- mizationResult och SimulationResult. Även denna klass fanns sedan tidigare och inga korrigeringar har gjorts.

OptPlus

Objekt som innehåller Opt+data (se 3.5). Vid skapande av objektet läses en Excelfil in och sedan skapas en interpolant med hjälp av den inbyggda Matlabfunktionen Scat- teredInterpolant. Interpolanten är en 3D-interpolant där fallhöjd, flöde och effekt utgör de tre axlarna. Linjär interpolation och linjär extrapolation har valts. Vid användning anropas någon av metoderna getPower eller getFlow genom att specificera namn på kraf- tenhet, nivåer för uppströms och nedströms magasin samt flöde (till getPower) eller effekt (till getFlow). Då returnerar metoderna i OptPlus ett flöde eller en effekt.

Linjär interpolation och extrapolation anses vara tillräckligt precist och har kortare be- räkningstid än de mer komplexa alternativen. Att skapa en interpolant och interpolera fram data är relativt tidskrävande så en minskning av denna beräkningstid får betydande påverkan på den totala simuleringstiden.

Extrapolering används för att simuleringen ska fortsätta även vid de tillfällen då sy- stemets tillstånd hamnar utanför dataspannet. Om extrapolation är avstängt kommer OptPlus returnera NaN vilket orsakar fel i övrig kod och simuleringen avslutas, oavsett

(21)

hur lite utanför dataspannet tillståndet är. I vissa fall är det otillåtna tillståndet kortva- rigt eller minimalt. Då kan lösningen ändå vara realiserbar och därmed bör simuleringen inte avbrytas. I andra fall är det otillåtna tillståndet permanent eller stort vilket gör att lösningen ej blir realiserbar. Då kan det ändå vara praktiskt att se hur systemet utvecklas över hela simuleringstiden för att göra behövda korrigeringar.

Denna klass fanns till stor del sedan tidigare och endast mindre tillägg samt test av olika interpolations- och extrapolationsmetoder har utförts under detta projekt.

SimulationInput

Objekt som extraherar lösningen från ett OptimizationResult, gör om lösningen från en matris till tidtabell (timetable) och sedan korrigerar tidsstegen från tidsupplösningen i optimeringsmodellen till valt tidssteg för simuleringsmodellen. I optimeringsmodellen är högsta tidsupplösning en timme, men för att öka noggrannheten kan tidsupplösning ner till en sekund väljas i simuleringsmodellen. För att ändra tidsupplösningen används ZOH.

Tidtabeller används i stället för matriser på grund av att det finns enkla Matlabfunktioner för att ändra tidsupplösning samt att de anses enklare att tyda för en användare.

Ett Scenario används för att ange startvolymer och lokalt inflöde.

SimulationModel

Objekt som innehåller de metoder som används för att köra simuleringen. För att skapa en SimulationModel behövs ett RiverSystem och ett OptPlus. För att köra en simulering anropas metoden run vars struktur visas i figur 7, och vars delar beskrivs nedan.

Figur 7: Uppbyggnad av metoden run i SimulationModel

(22)

Metoden updateVolumes uppdaterar volymen i samtliga magasin genom att summera volymen i föregående tidssteg med nettoflödet från/till magasinet.

Metoden updateLevels uppdaterar vattennivån i samtliga magasin genom att kalla på metoden calcLev som finns i klassen Reservoir. calcLev bygger på tabelldata och linjär interpolation. Reservoir och calcLev fanns sedan tidigare.

Metoden flow2power eller power2flow används beroende på vilken variabel, flöde eller effekt, som valts som indatavariabel. Båda fungerar på samma sätt. De använder upp- ströms vattennivå, nedströms vattennivå och flöde/effekt för att kalla OptPlus.getPower eller OptPlus.getFlow och beräknar flödet/effekten för samtliga kraftenheter. Beroende på användarens val av parametern modInput görs eventuellt korrigeringar i indatavari- ablerna för att uppfylla fysiska och mekaniska begränsningar. Om fallhöjden är negativ, nedströms reservoar är översvämmad eller det inte finns tillräckligt med vatten i maga- sinet nollställs, begränsas eller senareläggs flödet/effekten. Indatavariablerna korrigeras även så att flödet och effekten ligger inom kraftenhetens märkning.

Metoden moveFlowWater flyttar flödet från uppströms till nedströms magasin. Bero- ende på användarens val av parametern propagationDelay inkluderas eller exkluderas transporttid.

Metoden moveSpillWater flyttar spill från uppströms till nedströms magasin. Beroende på användarens val av parametern propagationDelay inkluderas eller exkluderas trans- porttid.

runSimulation

Funktion som anropar SimulationModel.run, extraherar lösningen och skapar ett Simu- lationResult.

SimulationResult

Objekt som lagrar information om simuleringsmodellen och simuleringsresultatet samt innehåller metoder för att göra beräkningar av olika nyckeltal. Subklass till Result som in- nehåller de överlappande delarna mellan OptimizationResult och SimulationResult.

Result fanns sedan tidigare men den kod som finns i SimulationResult har skrivits under projektet. Viktigast är metoderna calcNewEquivalents och calcNewTwoSegmentPoints som beskrivs nedan, men även metoden displayWarnings återfinns i klassen. displayWar- nings kontrollerar ifall några gränsvärden brutits under simuleringen, noterar var och när dessa överträdelser sker, och meddelar användaren att överträdelser skett.

calcNewEquivalents och calcNewTwoSegmentPoints

Metoder i SimulationResult som används för att kalibrera optimeringsmodellen. Detta genom att beräkna nya produktionsfunktioner och ersätta de gamla. Till skillnad från de ursprungliga produktionsfunktionerna baseras dessa på simuleringsresultatet.

På grund av de approximationer som görs i produktionsfunktionerna (se 4.1) kommer de skilja sig från verkligheten, och Opt+datan. I vissa segment är differensen större och i andra segment mindre. Fördelen med att basera produktionsfunktionerna utifrån

(23)

simuleringsresultatet är att de då baseras på de segment av Opt+kurvan som faktiskt används i optimeringslösningen. Exempelvis är det viktigare att produktionsfunktionen är väl överensstämmande med verkligheten i intervallet q = [0, 0.5Qmax] än i intervallet q = (0.5Qmax, Qmax] för en station som sällan har ett flöde på mer än 50%. Förenklat kan man uttrycka det som att noggrannheten i vissa segment offras till förmån för andra segment.

För linjära produktionsfunktioner används calcNewEquivalents som bygger på ekvation (9). Av stabilitetsskäl tillåts maximalt en förändring om ±20%

För tvådelat linjära produktionsfunktioner används calcNewTwoSegmentPoints. Ekva- tion (9) ger dock ingen garanti på att formen blir verklighetstrogen. I ekvation (5) bör nämligen k1 > k2 så att produktionsfunktionen blir konkav. Ekvation (9) kan dock le- da till en konvex produktionsfunktion, vilket bedöms mindre verklighetstroget. I stället används OptPlus.getPower för att ta fram qp-punkter för medelfallhöjden i simulerings- resultatet. Verkningsgraden i samtliga av dessa punkter beräknas enligt ekvation (2) och sedan väljs den punkt med högst verkningsgrad ut som (Qbest, Pbest)och ersätter punkten (0.8Qmax, 0.9Pmax) i ekvation (5), (6) och (7). Även punkten (Qmax, Pmax) väljs ut från qp-punkterna. (Qbest, Pbest) och (Qmax, Pmax) används sedan i ekvation (5). På så sätt garanteras att produktionsfunktionerna förblir konkava. De baseras inte på qp-punkterna men bedöms ge en tillräckligt bra noggrannhet då medelfallhöjden används.

solveProblem

Funktion som används för att lösa ett optimeringsproblem. Omfattas ej av detta projekt.

Plot and display

En samling funktioner och metoder som används för att skapa grafer över resultatet samt skriva ut information, nyckeltal och varningar i kommandofönstret. Till stora delar fanns detta kodat sedan tidigare. Samtliga grafer ges med samma tidsupplösning som optime- ringen.

IterateOptSim

En funktion som används för att avgöra om resultatet är bra nog och vid behov iterera bå- de optimering och simulering med nya produktionsfunktioner i optimeringen. Funktionen omfattar den del av hela simuleringsmodellen som visas i figur 8 nedan. Om resulta- tet anses godkänt eller ej baseras på ekvation (12) och användarens val av parametern maxMeanRelativeDiff. För att undvika risken av oändlig iteration kan parametern maxI- terations väljas för att sätta ett tak på antalet iterationer.

(24)

Figur 8: Uppbyggnad av funktionen iterateOptSim som används vid kalibering av optimerings- modellen.

(25)

5.2 Lista över valbara parametrar

Ett antal parametrar är valbara för användaren och specificerar hur simuleringsmodellen ska köras. Ytterligare parametrar finns valbara till optimeringsmodellen. Samtliga para- metrar lagras i en struct. De parametrar som står på formen sim.parameter används endast i simuleringsmodellen medan övriga parametrar är gemensamma för simulering och optimering.

from Starttid.

to Sluttid (ej inklusive).

dt Tidsupplösning i optimeringen [h]. Minimum 1 timme. Denna

tidsupplösning används i graferna.

sim.dt Tidsupplösning i simuleringen, utan enhet.

sim.dtUnit Enhet på tidsupplösning i simuleringen: h, min eller sec.

powerPlantResolution Upplösning på kraftenhet: station eller generator.

prodFunction Använda linjära eller tvådelat linjära produktionsfunktioner:

linear eller twoSegments.

propagationDelay Inkludera transporttid av flöde och spill: True eller False.

sim.inputCase Använda flöde eller effekt som indatavariabel: Q eller P. Spill är alltid en andra indatavariabel.

sim.modInput Tillåt simuleringsmodellen att korrigera indata för att resul- tatet ska hållas inom fysikaliska och mekaniska gränser: True eller False. För att förhindra effekt högre än maxeffekt när flö- de är indatavariabel omvandlas flöde till spill, då behålls det totala flödet i tidssteget. För att förhindra övriga problem se- nareläggs flöde/effekt.

sim.iterations Tillåt iterateOptSim att utföra extra optimeringar med nya produktionsfunktioner samt extra simuleringar för att förbätt- ra resultatet: True eller False.

sim.maxMeanRelativeDiff Maxvärde hur stor den relativa skillnaden i total energiproduk- tion/totalt flöde får vara för att resultatet ska anses godkänt (se ekvation (12)).

sim.maxIterations Maxantal iterationer som tillåts.

(26)

6 Resultat

Modellen har testats på en älv och med historiska data för tillrinning och elpriser. Resul- tatet från testerna presenteras i detta kapitel.

Viktigt att notera är målet att optimeringslösningen och simuleringsresultatet ska vara väl överensstämmande. Det viktiga är hur de korrelerar med varandra och inte det enskilda grafernas utseende. Att en graf eller ett värde påverkas eller ej påverkas till följd av att en parameter ändras betyder genomgående att skillnaden mellan optimeringslösningen och simuleringsresultat påverkas eller ej påverkas.

Då antalet kombinationer av parametrar är för många för att visa resultatet av samtliga har ett antal olika signifikanta fall valts ut för presentation. Dessa fall har ett antal parametrar gemensamma, om inget annat anges i respektive fall:

• Tidsperioden är en månad, 15:e mars 2017 till 15:e april 2017.

• Tidsstegen är 1 timme för optimeringen.

• Upplösning på kraftenhet är station

• Transporttid för flöde och spill är aktiverat.

• Fem iterationer utförs oberoende av hur väl resultaten från optimering och simule- ring stämmer överens. Om inget annat anges visas endast graferna för sista itera- tionen. Antalet iterationer har valts utifrån observationer av antalet kalibreringar som behövs för att produktionsfunktionerna ska konvergera.

Fallen som presenteras sammanfattas i tabell 1. Tabellen visar de parameterinställning- arna som skiljer fallen åt.

Tabell 1: Sammanfattning av de fall som simulerats. Endast de parametrar som skiljer fallen åt visas.

Fall 1 Fall 2 Fall 3 Fall 4 Fall 5 Fall 6 Indatavariabel flöde flöde flöde flöde effekt effekt

Korrigera indata nej nej ja ja nej ja

Produktionsfunktioner linjära tvådelat linjära linjära linjära linjära linjära Tidssteg i simulering 15 min 15 min 15 min 30 min 15 min 15 min

För att begränsa antalet grafer har en exempelstation med omkringliggande magasin valts ut för presentation. På Vattenfalls begäran hålls stationen och magasinen anonyma.

Exempelstationen är en medelstor station jämtemot de andra stationerna i älven. Den gränsar till två mindre magasin där avvikelser i volym snabbt visar sig i form av avvikande vattennivåer.

6.1 Flöde som indatavariabel

Fall 1-4 har alla flöde som indatavariabel, tillsammans med spill. Dessa fall ger ofta liknande resultat och därför har vissa grafer exkluderats från texten.

(27)

6.1.1 Fall 1

I Fall 1 har följande parametrar valts:

• Linjära produktionsfunktioner.

• Indata korrigeras ej.

• Simuleringens tidssteg är 15 minuter.

I figur 9 och 10 visas att stationsflöde och vattennivåer är samma i optimering och simulering. Detta är väntat då optimeringslösningens flöde och spill används som indata till simuleringen. Därmed bör vattennivåerna vara även vara samma, vilket stämmer enligt figur 9. De ytterst små avvikelserna beror på avrundningar.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 75.5

76 76.5 77 77.5 78

Nivå [m]

Optimering Simulering

(a) Uppströms.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 43.4

43.6 43.8 44 44.2 44.4 44.6 44.8 45

Nivå [m]

Optimering Simulering

(b) Nedströms.

Figur 9: Vattennivå i magasin angränsande till exempelstationen i både simulering och opti- mering. Fall 1.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

200 400 600 800 1000

Flöde [m3 /s]

Optimering Simulering

Figur 10: Flöde genom exempelstationen i både simulering och optimering. Fall 1.

(28)

I figur 11 visas hur producerad effekt ser ut första och sista iterationen. Optimering och si- mulering stämmer bättre överens efter att produktionsfunktionerna har itererats eftersom medelavvikelsen är mindre. Innan kalibrering överskattas stationen i optimeringsmodel- len. Notera dock att detta fall bortser från fysikaliska och mekaniska begränsningar.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

50 100 150 200 250

Effekt [MW]

Optimering Simulering

(a) Första

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

50 100 150 200 250

Optimering Simulering

(b) Femte

Figur 11: Producerad effekt första och femte iterationen av exempelstationen. Både simulering och optimering. Fall 1.

I figur 12 kan ses hur stationens produktionsfunktion har itererats. Stationens linjära produktionsfunktion stämmer relativt väl överens med Opt+data redan från start, men en mindre kalibrering utförs. Redan efter första iterationen hittas en produktionsfunk- tion som är ungefär samma som den slutgiltiga. I figur 13 och 14 kan ses hur skillnaden i produktion ser ut för hela älven i den sista iterationen. Det kan ses att avvikelsen mellan optimering och simulering minskar och efter två iterationer når den under 1%. Efter det planar kurvan ut på en avvikelse runt 0.25%. Detta beror på att produktionsfunktionerna för älvens samtliga stationer har konvergerat. Det kommer alltid att finnas momentana skillnader i elproduktion, på grund av optimeringsmodellens approximationer. Den kon- stanta skillnaden är dock mycket mindre den femte iterationen. Detta kan ses i figur 14b där den momentana avvikelsen är centrerad runt noll, vilket den inte är första iteratio- nen.

(29)

0 100 200 300 400 500 600 700 800 900 Flöde [m3/s]

0 50 100 150 200 250

Effekt [MW]

Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5

Figur 12: Exempelstationens itererade produktionsfunktion. Fall 1.

1 2 3 4 5

Iteration 0

0.5 1 1.5 2

Andel [%]

Figur 13: Genomsnittlig absolut effektavvikelse mellan optimering och simulering. Inkluderar hela älven. Fall 1.

(30)

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 -6

-4 -2 0 2 4 6 8

Andel av maximal kapacitet [%]

(a) Första

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 -4

-2 0 2 4 6 8 10

Andel av maximal kapacitet [%]

(b) Femte

Figur 14: Momentan skillnad i produktion mellan optimering och simulering första och femte iterationen. Inkluderar hela älven. Fall 1.

Tabell 2 visar total energiproduktion, total spilld energi och total intäkt för hela älven i både optimering och simulering. Skillnaderna är under 0.5%.

Tabell 2: Total produktion, spill och intäkt för period. Inkluderar hela älven. Fall 1.

Total energiproduktion Totalt spill Total intäkt

[GWh] [GWh] [MEUR]

Simulering 948.13 0.00 29.45

Optimering 945.97 0.00 29.39

Differens [%] 0.23 0.00 0.20

6.1.2 Fall 2

I Fall 2 har följande parametrar valts:

• Tvådelat linjära produktionsfunktioner.

• Indata korrigeras ej.

• Simuleringens tidssteg är 15 minuter.

Fall 2 är alltså samma som Fall 1, med undantag att tvådelat linjära produktionsfunk- tioner använts. Flöde och vattennivåer är även i detta fall samma i optimering och simu- lering.

Producerad effekt är mycket lika det i Fall 1 efter kalibrering. Detta tyder på att skillnaden mellan att använda linjära eller tvådelat linjära produktionsfunktioner är relativt liten, med avseende på simuleringsmodellens funktionalitet.

(31)

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 0

50 100 150 200 250

Effekt [MW]

Optimering Simulering

(a) Första

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

50 100 150 200 250 300

Effekt [MW]

Optimering Simulering

(b) Femte

Figur 15: Producerad effekt första och femte iterationen av exempelstationen. Både simulering och optimering. Fall 2.

Som kan ses i figur 16 och 17 går konvergensen snabbare vid tvådelat linjära produktions- funktioner. Det beror på att dessa produktionsfunktioner inte har någon begränsning i hur mycket de kan ändras per iteration. Av stabilitetsskäl har linjära produktionsfunktio- ner en maximal förändring på ± 20%. Efter fem iterationer ger även Fall 2 en avvikelse på cirka 0.25%.

Noterbart är att antagandet om maximal verkningsgrad vid 80% av maxflödet visar sig vara relativt långt från Opt+data för vissa stationer. Stationen uppnår maximal verk- ningsgrad vid 6% av maxflödet. Detta kan bero på att det aggregat med högst verknings- grad används ensamt vid låga flöden, och att andra mindre effektiva aggregat kopplas in när flödet stiger. En mer kvalificerad startapproximation skulle kunna innebära att färre iterationer behövs för att hitta en godkänd lösning.

0 200 400 600 800

Flöde [m3/s]

0 50 100 150 200 250

Effekt [MW]

Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5

Figur 16: Exempelstationens itererade produktionsfunktion. Fall 2.

(32)

1 2 3 4 5 Iteration

0 1 2 3 4

Andel [%]

(a) Genomsnittlig absolut effektavvikelse.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 -4

-2 0 2 4 6 8 10 12

Andel av maximal kapacitet [%]

(b) Momentan effekt.

Figur 17: Skillnad i produktion mellan simulering och optimering. Inkluderar hela älven. Fall 2.

Även i Fall 2 är skillnaderna i total produktion, spill och intäkt under 0.5%. De är dock högre än i Fall 1 vilket antyder att linjära produktionsfunktioner ger bättre resultat.

Ingen definitiv slutsats kan dock dras från endast ett exempel.

Tabell 3: Total produktion, spill och intäkt för period. Inkluderar hela älven. Fall 2.

Total energiproduktion Totalt spill Total intäkt

[GWh] [GWh] [MEUR]

Simulering 997.37 0.00 30.48

Optimering 993.35 0.00 30.35

Differens [%] 0.40 0.00 0.43

6.1.3 Fall 3

I Fall 3 har följande parametrar valts:

• Linjära produktionsfunktioner.

• Indata tillåts korrigeras.

• Simuleringens tidssteg är 15 minuter.

Fall 3 är alltså samma som Fall 1, med undantaget att indata tillåts att korrigeras för att inte bryta mot fysikaliska och mekaniska gränser. Juridiska gränsvärden kan dock fort- farande brytas. När indata korrigeras frångås den optimalitet som optimeringslösningen har.

Till följd av att indata tillåts korrigeras uppkommer en avvikelse i flöden och vattennivåer mellan optimering och simulering. Behovet av att ändra indata bedöms härstamma från två saker. Det första är att optimeringsmodellen inte beaktar det faktum att varje station har ett minimiflöde och en minimieffekt. Det andra är att en högre fallhöjd än den i optimeringsmodellen antagna tillsammans med ett högt flöde kan medföra att effekten

(33)

överstiger maxvärdet för stationen. I båda dessa fall behövs det planerade flödet korrigeras vilket i sin tur påverkar vattennivåerna. Detta kan ses i figur 18 och 19. Dessa differenser ökar ju längre tidssteg som används i simuleringen eftersom en korrigering då påverkar en längre tidsperiod och påverkar främst de små magasinen där en stor andel vatten byts ut varje tidssteg.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 75.5

76 76.5 77 77.5 78

Nivå [m]

Optimering Simulering

(a) Uppströms.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 43.5

44 44.5 45

Nivå [m]

Optimering Simulering

(b) Nedströms.

Figur 18: Vattennivå i magasin angränsande till exempelstationen i både simulering och opti- mering. Fall 3.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

200 400 600 800 1000

Flöde [m3 /s]

Optimering Simulering

Figur 19: Flöde genom exempelstationen i både simulering och optimering. Fall 3.

Elproduktionen påverkas endast marginellt av att korrigering av indata tillåts om tids- stegen hålls så korta att vattennivåerna stämmer någorlunda överens i optimering och simulering. Även kalibreringen fungerar, men en större avvikelse mellan optimering och simulering uppstår. Avvikelsen efter fem iterationer blir mer än dubbelt så stor som i Fall 1. Stora momentana skillnader kan uppstå då indata korrigeras vilket kan ses i figur

(34)

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 0

50 100 150 200 250

Effekt [MW]

Optimering Simulering

(a) Första

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

50 100 150 200 250

Effekt [MW]

Optimering Simulering

(b) Femte

Figur 20: Producerad effekt första och femte iterationen av exempelstationen. Både simulering och optimering. Fall 3.

1 2 3 4 5

Iteration 1

1.5 2 2.5

Andel [%]

(a) Genomsnittlig absolut effektavvikelse.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 -30

-20 -10 0 10 20 30

Andel av maximal kapacitet [%]

(b) Momentan effekt.

Figur 21: Skillnad i produktion mellan simulering och optimering. Inkluderar hela älven. Fall 3.

I Fall 3 är skillnaderna i total produktion, spill och intäkt under 2%, se tabell 4. Den totala skillnaden är högre än i Fall 1 och 2, se tabell 2 och 3. Icke genomförbart flöde korrigeras till spill, vilket förklarar de 15.08 GWh spill som uppstår i simuleringen.

(35)

Tabell 4: Total produktion, spill och intäkt för period. Inkluderar hela älven. Fall 3.

Total energiproduktion Totalt spill Total intäkt

[GWh] [GWh] [MEUR]

Simulering 937.75 15.08 29.12

Optimering 952.08 0.00 29.58

Differens [%] 1.53 - 1.58

6.1.4 Fall 4

I Fall 4 har följande parametrar valts:

• Linjära produktionsfunktioner.

• Indata tillåts korrigeras.

• Simuleringens tidssteg är 30 minuter.

Fall 4 är alltså samma som Fall 3, med undantaget att simuleringens tidsintervall är längre.

Två problem uppstår i detta fall. Det första är att transporttiden blir olika i optimering och simulering. Simuleringsmodellen bygger på ZOH och därför måste fördröjningen vara en multipel av längden på ett tidssteg. Därför rundas fördröjningen upp till nästa mul- tipel av par.sim.dt. Optimeringsmodellen däremot kan hantera transporttider som inte är en multipel av dess längd på tidssteg. För att undvika detta måste tidsstegen i simu- leringen som längst väljas till den tidsupplösning som finns återgiven för transporttid i älvsdatafilen. I denna älv är upplösningen 15 minuter.

Det andra problemet är att korrigeringar av indata inte kan göras i förebyggande syfte.

Korrigeringarna görs endast med hänsyn till systemets tillstånd i ögonblicket. I vissa fall kan de skapa större problem längre fram. Om tidsstegen är korta får modellen fler chanser att utföra korrigeringar och varje korrigering hinner påverka systemet mindre, då den är aktiv under en kortare tid.

Om endast en av parametrarna modInput eller propagationDelay är aktiverade fås fort- farande ett likartat fel.

Figur 22 visar hur vattennivåerna skiljer sig i optimering och simulering. I detta fall antas optimeringen vara den mer verklighetstrogna lösningen. Dessa nivåer kan jämföras med de i Fall 3, figur 18, där enda skillnaden är längden per tidssteg.

(36)

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12 2017 75.5

76 76.5 77 77.5 78 78.5

Nivå [m]

Optimering Simulering

(a) Uppströms

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 43.5

44 44.5 45 45.5

Nivå [m]

Optimering Simulering

(b) Nedströms

Figur 22: Vattennivå i magasin angränsande till exempelstationen i både simulering och opti- mering. Fall 4.

De avvikande vattennivåerna ger i sin tur avvikande produktion, se figur 23. Även efter fem iterationer ses en ökad avvikelse i produktion jämfört med Fall 3. Till exempel måste produktionen slås av helt när nedströms magasin svämmar över.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 0

50 100 150 200 250

Effekt [MW]

Optimering Simulering

Figur 23: Producerad effekt femte iterationen av exempelstationen. Både simulering och opti- mering. Fall 4.

(37)

1 2 3 4 5 Iteration

26.2 26.4 26.6 26.8 27 27.2 27.4 27.6

Andel [%]

Figur 24: Genomsnittlig absolut effektavvikelse mellan optimering och simulering. Inkluderar hela älven. Fall 4.

I Fall 4 blir avvikelsen större för total energiproduktion, totalt spill och total intäkt. Detta visar att tidsstegen är viktiga för simuleringsmodellens funktion.

Tabell 5: Total produktion, spill och intäkt för period. Inkluderar hela älven. Fall 4.

Total energiproduktion Totalt spill Total intäkt

[GWh] [GWh] [MEUR]

Simulering 930.21 16.20 27.26

Optimering 959.88 0.00 29.82

Differens [%] 3.19 - 9.39

(38)

6.2 Effekt som indatavariabel

Fall 5 och 6 har effekt som indatavariabel, tillsammans med spill. Dessa fall ger ofta liknande resultat och därför har vissa grafer exkluderats från texten.

6.2.1 Fall 5

I Fall 5 har följande parametrar valts:

• Linjära produktionsfunktioner.

• Indata korrigeras ej.

• Simuleringens tidssteg är 15 minuter.

När effekt används som indatavariabel ses en stor avvikelse i vattennivåer mellan simule- ring och optimering. Båda magasinen får stora negativa vattennivåer. Flödet i optimering och simulering visar stora skillnader trots att produktionsfunktionerna har kalibrerats.

Större magasin är mer stabila och tar det tar längre tid att se stora avvikelser i vatten- nivån.

Eftersom vattennivåerna är beroende av inflöde och utflöde påverkar en förändring i flöde även fallhöjden (∆h). Produktionsfunktionerna är approximationer och kommer underskatta eller överskatta hur mycket flöde som behövs för att producera en given effekt. Det betyder att flödena skiljer sig mellan optimering och simulering. Problemet blir då att ett lägre flöde än väntat leder till ökad fallhöjd som leder till ett ännu lägre flöde i nästa tidssteg, givet att elproduktionen är förbestämd. Till slut blir fallhöjden så stor att magasinet nedströms blir tom och magasinet uppströms svämmar över. Omvänt förlopp sker om flödet blir högre än väntat. Ett exempel på detta kan ses i figur 25 och 26 nedan. Systemet är uppenbart instabilt.

Eftersom korrigering för fysikaliska gränser är avaktiverat kan negativa och orealistiskt stora volymer fås i simuleringen.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 -1400

-1200 -1000 -800 -600 -400 -200 0 200

Nivå [m]

Optimering Simulering

(a) Uppströms.

Mar 15 Mar 22 Mar 29 Apr 05 Apr 12

2017 -4

-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0

Nivå [m]

105

Optimering Simulering

(b) Nedströms.

Figur 25: Vattennivå i magasin angränsande till exempelstationen i både simulering och opti- mering. Fall 5.

References

Outline

Related documents

Jag medger att ovan nämnda handlingar och uppgifter får lämnas ut till Svedea samt att mitt personnummer får användas för en säker identifiering. Fullmakten gäller under

Underlagsmaterialet för beräkningarna är det första årets (2003) fältdata från Nationell Inventering av Landskapet i Sverige (NILS). Linjeobjekten har inventerats med s

ellt skulle kunna komma ifråga för ett bevarande. Vid detta första urval kom inventerarnas samlade kunskaper väl till pass med kännedom om de flesta av landets

Efter detta steg går lastaren genom en härdugn samt en kylugn för att sedan gå vidare till monteringens första buffert ”Suckarnas gång”... Bild_14 till och med bild_17 visar

Avbördning med hjälp av en dumplast har inte formellt utretts tidigare. Tekniken togs ur- sprungligen fram för att hantera lastfrånslag och patentet hålls av Urban Lundin vid

Svenska Kyrkans organisationsstruktur kan beskrivas genom ett antal olika hierarkier, ett exempel är den pastorala hierarkin. Högst upp i hierarkin på nationell

Denna sändning tar ca 15.4ms och detta innebär att det tar för lång tid ifall något av dessa meddelanden skulle skickas med 100Hz överföringsfrekvens. Detta syns även på den

Att personer med normal syn skulle kunna finna underhållning i ett spel utan grafik är däremot möjligt, då fenomen som till exempel radiodrama visat sig vara en stor succé..