Difference between revisions of "Pump storage"

From Simulace.info
Jump to: navigation, search
(Introduction)
(Code)
Line 73: Line 73:
  
 
==Code==
 
==Code==
(01)    Cost Generated= INTEG (
+
The simulation model can be viewed with [[File:PHES.mdl]]
 +
 
 +
  (01)    Cost Generated= INTEG (
 
         Pump flow * flow to volume per hour / Generator Power Factor * 1.3*Market Prices OffPeak
 
         Pump flow * flow to volume per hour / Generator Power Factor * 1.3*Market Prices OffPeak
 
     ,
 
     ,
Line 79: Line 81:
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(02)    Downstream Reservoir Max Volume Capacity=
+
  (02)    Downstream Reservoir Max Volume Capacity=
 
         Upstream Reservoir Max Volume Capacity/"UpS Reservoir/DwS Reservoir Proportion"
 
         Upstream Reservoir Max Volume Capacity/"UpS Reservoir/DwS Reservoir Proportion"
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(03)    Downstream Reservoir Volume= INTEG (
+
  (03)    Downstream Reservoir Volume= INTEG (
 
         IF THEN ELSE
 
         IF THEN ELSE
 
         (((Generation Flow - Pump flow - Stream flow) * flow to volume per hour)  
 
         (((Generation Flow - Pump flow - Stream flow) * flow to volume per hour)  
Line 102: Line 104:
 
     Units: Hour [0,?]
 
     Units: Hour [0,?]
 
      
 
      
(04)    DwS Reservoir Initial Level=
+
  (04)    DwS Reservoir Initial Level=
 
         0.3
 
         0.3
 
     Units: **undefined** [0,1,0.1]
 
     Units: **undefined** [0,1,0.1]
 
      
 
      
(05)    Evaporation=
+
  (05)    Evaporation=
 
         0.01
 
         0.01
 
     Units: **undefined** [0,0.2]
 
     Units: **undefined** [0,0.2]
 
      
 
      
(06)    FINAL TIME  = 8760
+
  (06)    FINAL TIME  = 8760
 
     Units: Hour
 
     Units: Hour
 
     The final time for the simulation.
 
     The final time for the simulation.
  
(07)    flow to volume per hour= INITIAL(
+
  (07)    flow to volume per hour= INITIAL(
 
         60*60)
 
         60*60)
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(08)    Generation Flow=
+
  (08)    Generation Flow=
 
         PULSE TRAIN(8,12,24,8760) *  
 
         PULSE TRAIN(8,12,24,8760) *  
 
         IF THEN ELSE( Upstream Reservoir Volume <= Upstream Reservoir Max Volume Capacity
 
         IF THEN ELSE( Upstream Reservoir Volume <= Upstream Reservoir Max Volume Capacity
Line 124: Line 126:
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(09)    Generator Power Factor=
+
  (09)    Generator Power Factor=
 
         10
 
         10
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(10)    INITIAL TIME  = 0
+
  (10)    INITIAL TIME  = 0
 
     Units: Hour
 
     Units: Hour
 
     The initial time for the simulation.
 
     The initial time for the simulation.
  
(11)    Installed Capacity=
+
  (11)    Installed Capacity=
 
         50
 
         50
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(12)    Market Prices OffPeak=
+
  (12)    Market Prices OffPeak=
 
         100
 
         100
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(13)    Market Prices Peak=
+
  (13)    Market Prices Peak=
 
         200
 
         200
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(14)    Precipitation=
+
  (14)    Precipitation=
 
         RANDOM NORMAL(0, 50 , 25 , 5 , 10 )
 
         RANDOM NORMAL(0, 50 , 25 , 5 , 10 )
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(15)    Profit Balance=
+
  (15)    Profit Balance=
 
         Revenue Generated-Cost Generated
 
         Revenue Generated-Cost Generated
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(16)    Pump flow=
+
  (16)    Pump flow=
 
         (PULSE TRAIN(0,8,24,8760)  
 
         (PULSE TRAIN(0,8,24,8760)  
 
         + PULSE TRAIN(20,4,24,8760)) * IF THEN ELSE(Downstream Reservoir Volume <
 
         + PULSE TRAIN(20,4,24,8760)) * IF THEN ELSE(Downstream Reservoir Volume <
Line 158: Line 160:
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(17)    Revenue Generated= INTEG (
+
  (17)    Revenue Generated= INTEG (
 
         Generation Flow*flow to volume per hour/Generator Power Factor*Market Prices Peak
 
         Generation Flow*flow to volume per hour/Generator Power Factor*Market Prices Peak
 
     ,
 
     ,
Line 164: Line 166:
 
     Units: Hour
 
     Units: Hour
 
      
 
      
(18)    SAVEPER  =  
+
  (18)    SAVEPER  =  
 
             TIME STEP
 
             TIME STEP
 
     Units: Hour [0,?]
 
     Units: Hour [0,?]
 
     The frequency with which output is stored.
 
     The frequency with which output is stored.
  
(19)    Stream flow=
+
  (19)    Stream flow=
 
         50
 
         50
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(20)    TIME STEP  = 1
+
  (20)    TIME STEP  = 1
 
     Units: Hour [0,?]
 
     Units: Hour [0,?]
 
     The time step for the simulation.
 
     The time step for the simulation.
  
(21)    UpS Reservoir Initial Level=
+
  (21)    UpS Reservoir Initial Level=
 
         0.7
 
         0.7
 
     Units: **undefined** [0,1,0.1]
 
     Units: **undefined** [0,1,0.1]
 
      
 
      
(22)    "UpS Reservoir/DwS Reservoir Proportion"=
+
  (22)    "UpS Reservoir/DwS Reservoir Proportion"=
 
         1
 
         1
 
     Units: **undefined** [0.1,10]
 
     Units: **undefined** [0.1,10]
 
      
 
      
(23)    Upstream Inflow=
+
  (23)    Upstream Inflow=
 
         25 + Precipitation
 
         25 + Precipitation
 
     Units: **undefined**
 
     Units: **undefined**
 
      
 
      
(24)    Upstream Reservoir Max Volume Capacity=
+
  (24)    Upstream Reservoir Max Volume Capacity=
 
         50*60*60*12
 
         50*60*60*12
 
     Units: Hour [3e+06,1e+07,250000]
 
     Units: Hour [3e+06,1e+07,250000]
 
      
 
      
(25)    Upstream Reservoir Volume= INTEG (
+
  (25)    Upstream Reservoir Volume= INTEG (
 
         IF THEN ELSE
 
         IF THEN ELSE
 
         (((Pump flow + Upstream Inflow - Generation Flow) * flow to volume per hour
 
         (((Pump flow + Upstream Inflow - Generation Flow) * flow to volume per hour

Revision as of 23:36, 22 January 2023

Introduction

Pumped-storage hydroelectricity (PSH), or pumped hydroelectric energy storage (PHES), is a type of hydroelectric energy storage used by electric power systems for load balancing. The method stores energy in the form of gravitational potential energy of water, pumped from a lower elevation reservoir to a higher elevation. Low-cost surplus off-peak electric power is typically used to run the pumps. During periods of high electrical demand, the stored water is released through turbines to produce electric power. Although the losses of the pumping process make the plant a net consumer of energy overall, the system increases revenue by selling more electricity during periods of peak demand, when electricity prices are highest. If the upper lake collects significant rainfall or is fed by a river then the plant may be a net energy producer in the manner of a traditional hydroelectric plant. Pumped-storage hydroelectricity allows energy from intermittent sources (such as solar, wind) and other renewables, or excess electricity from continuous base-load sources (such as coal or nuclear) to be saved for periods of higher demand. The reservoirs used with pumped storage are quite small when compared to conventional hydroelectric dams of similar power capacity, and generating periods are often less than half a day.

Problem definition  Company PMP wants to build a new pumped storage hydroelectricity power plant across a river. This facility will be generating power during the peak hours of the day because of its half day upstream reservoir capacity. And for the off-peak hours it will be pumping up the water that is collected in its downstream reservoir using the power from the grid. So, basically, during the day it will be generating power and selling it with peak prices, and during the evening it will be consuming energy and will need to buy it for off peak prices. The Company PMP is trying to decide about downstream reservoir capacity. To decide it they need to simulate the system with water inflow input and market prices to decide what proportion of upstream and downstream reservoirs would be optimal to decide on size of downstream reservoir.

Parameters:

Upstream Inflow = (25 m3/s) + Precipitation

Precipitation = Random normal between 0 and 50 m3/s with mean 25 and std. 5

Stream Flow(m3) (Fixed) = 50m3/s

Generation Flow (m3/s) = (Every Peak Hours from 08:00 to 20:00 in a year ) If Upstream Reservoir Volume is more than half capacity => Installed Capacity x Generator Power Factor (With less than half of full reservoir capacity, generation is inefficient. Therefore no generation occurs when capacity level drops below 0.5 capacity)

Pump Flow = (Every Off Peak Hours from 20:00 to 08:00 in a year )(25 m3/s)


Upstream Reservoir Volume (m3/h) = Stock Variable, accumulated by ((Pump flow + Upstream Inflow - Generation Flow) x 60 x 60 ) - (Evaporation x Upstream Reservoir Volume))), must be between 0 and Upstream Reservoir Max Volume Capacity

Downstream Reservoir Volume (m3/h) = Stock Variable, accumulated by (((Generation Flow - Pump flow - Stream flow) x 60 x 60 ) - (Evaporation x Downstream Reservoir Volume))), must be between 0 and Downstream Reservoir Max Volume Capacity


Evaporation = 1 percentage lost every hour

Generator Power Factor = How much water volume needed for per MWh generation, 10m3/s per MW

Pumping Consumption (Efficiency Loss for pumping water = Generator power factor x 0.3) => Generator Power Factor x 1.3


Initial active reservoir levels (Upstream Reservoir = 0.7; Downstream Reservoir = 0.3)

Spot Market Prices (Eur/MWh) = (12 Off-peak hours from 20:00 to 08:00 average 100 Eur/MWh, 12 peak hours from 08:00 to 20:00 average 200 Eur/MWh)


Revenue Generated = Generation Flow (m3/s) x 60 x 60 / Generator power factor x Peak Spot Market Prices

Cost Generated = Pump flow x 60 x 60 / Pumping Consumption x Off Peak Spot Market Prices


Upstream Reservoir Max Volume Capacity (m3)= 12 hour upstream expected inflow (25 m3/s + Precipitation) accumulation equalivalent

Downstream reservoir Max Volume Capacity (m3) (Variable) = Upstream Reservoir Max Volume Capacity x "UpS Reservoir/DwS Reservoir Proportion"

"UpS Reservoir/DwS Reservoir Proportion" (Variable) = (Two different runs with value = 1 (Equal Capacities) and value = 5 (Upstream reservoir capacity is 5 times bigger than Downstream reservoir capacity)

Installed capacity = 50 MW

Profit Balance = Revenue Generated - Cost Generated

How to use the program

With Vensim system simulator, a stock and flow diagram was created as illustrated.


Conclusion

To improve the profit, two different runs were tested with changing “UpS Reservoir/DwS Reservoir Proportion”. First reservoir capacity proportion used is 1, which basically means equivalent capacities. And the second capacity proportion used is 5, which basically means Upstream Maximum reservoir capacity is 5 times larger than Downstream reservoir capacity.


End of year simulation with Reservoir Capacity Proportion = 1


End of year simulation with Reservoir Capacity Proportion = 5


According to the two runs tested, proportion 1 is less profitable than proportion 5.

Which basically explains The Company PMP should not invest in constructing a second (Downstream) reservoir as large as the first (Upstream reservoir). Pumped up water volume can trigger discharge of water in the first reservoir if both reservoirs have equivalent capacities, which can cause loss of generation in the long run and therefore loss of revenues. For further improvement of profit, pumping flow rate can be adjusted according to the proportion of reservoir capacities.

Profit Balance Comparison

Code

The simulation model can be viewed with File:PHES.mdl

 (01)    Cost Generated= INTEG (
       Pump flow * flow to volume per hour / Generator Power Factor * 1.3*Market Prices OffPeak
   ,
           0)
   Units: Hour
   
 (02)    Downstream Reservoir Max Volume Capacity=
       Upstream Reservoir Max Volume Capacity/"UpS Reservoir/DwS Reservoir Proportion"
   Units: **undefined**
   
 (03)    Downstream Reservoir Volume= INTEG (
       IF THEN ELSE
       (((Generation Flow - Pump flow - Stream flow) * flow to volume per hour) 
        + (Downstream Reservoir Volume * (1 - Evaporation)) > Downstream Reservoir Max Volume Capacity
   , 
       
       Downstream Reservoir Max Volume Capacity - Downstream Reservoir Volume, 
       
       IF THEN ELSE(
       ((Generation Flow - Pump flow - Stream flow) * flow to volume per hour) 
        + (Downstream Reservoir Volume * (1 - Evaporation)) <= 0,
       
       -Downstream Reservoir Volume,
       
       ((Generation Flow - Pump flow - Stream flow) * flow to volume per hour )
        - (Evaporation * Downstream Reservoir Volume))),
           Downstream Reservoir Max Volume Capacity*DwS Reservoir Initial Level)
   Units: Hour [0,?]
   
 (04)    DwS Reservoir Initial Level=
       0.3
   Units: **undefined** [0,1,0.1]
   
 (05)    Evaporation=
       0.01
   Units: **undefined** [0,0.2]
   
 (06)    FINAL TIME  = 8760
   Units: Hour
   The final time for the simulation.
 (07)    flow to volume per hour= INITIAL(
       60*60)
   Units: Hour
   
 (08)    Generation Flow=
       PULSE TRAIN(8,12,24,8760) * 
       IF THEN ELSE( Upstream Reservoir Volume <= Upstream Reservoir Max Volume Capacity
   *0.5 ,0 , Installed Capacity * Generator Power Factor )
   Units: **undefined**
   
 (09)    Generator Power Factor=
       10
   Units: **undefined**
   
 (10)    INITIAL TIME  = 0
   Units: Hour
   The initial time for the simulation.
 (11)    Installed Capacity=
       50
   Units: **undefined**
   
 (12)    Market Prices OffPeak=
       100
   Units: Hour
   
 (13)    Market Prices Peak=
       200
   Units: Hour
   
 (14)    Precipitation=
       RANDOM NORMAL(0, 50 , 25 , 5 , 10 )
   Units: Hour
   
 (15)    Profit Balance=
       Revenue Generated-Cost Generated
   Units: Hour
   
 (16)    Pump flow=
       (PULSE TRAIN(0,8,24,8760) 
       + PULSE TRAIN(20,4,24,8760)) * IF THEN ELSE(Downstream Reservoir Volume <
    25*flow to volume per hour, 0, 25)
   Units: **undefined**
   
 (17)    Revenue Generated= INTEG (
       Generation Flow*flow to volume per hour/Generator Power Factor*Market Prices Peak
   ,
           0)
   Units: Hour
   
 (18)    SAVEPER  = 
           TIME STEP
   Units: Hour [0,?]
   The frequency with which output is stored.
 (19)    Stream flow=
       50
   Units: **undefined**
   
 (20)    TIME STEP  = 1
   Units: Hour [0,?]
   The time step for the simulation.
 (21)    UpS Reservoir Initial Level=
       0.7
   Units: **undefined** [0,1,0.1]
   
 (22)    "UpS Reservoir/DwS Reservoir Proportion"=
       1
   Units: **undefined** [0.1,10]
   
 (23)    Upstream Inflow=
       25 + Precipitation
   Units: **undefined**
   
 (24)    Upstream Reservoir Max Volume Capacity=
       50*60*60*12
   Units: Hour [3e+06,1e+07,250000]
   
 (25)    Upstream Reservoir Volume= INTEG (
       IF THEN ELSE
       (((Pump flow + Upstream Inflow - Generation Flow) * flow to volume per hour
   ) 
        + (Upstream Reservoir Volume * (1 - Evaporation)) > Upstream Reservoir Max Volume Capacity
   , 
       
       Upstream Reservoir Max Volume Capacity - Upstream Reservoir Volume, 
       
       IF THEN ELSE(
       ((Pump flow + Upstream Inflow - Generation Flow) * flow to volume per hour
   ) 
        + (Upstream Reservoir Volume * (1 - Evaporation)) <= 0,
       
       -Upstream Reservoir Volume,
       
       ((Pump flow + Upstream Inflow - Generation Flow) * flow to volume per hour
    )
        - (Evaporation * Upstream Reservoir Volume))),
           Upstream Reservoir Max Volume Capacity*UpS Reservoir Initial Level)
   Units: Hour [0,?]

Sources