Ero sivun ”Ydinvoimalan kustannus-hyötyanalyysi” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(ensimmäinen luonnos, ei vielä laske kunnolla)
 
Rivi 31: Rivi 31:


#### Locations in the Excel sheet
#### Locations in the Excel sheet
# average_monthly_price  (/MWh)
# average_monthly_price  (€/MWh)
# discount_rate  
# discount_rate  
# noisedens calculations.2015!E5:DA5
# noisedens calculations.2015!E5:DA5
Rivi 46: Rivi 46:
# price.oil results!C5:J5 and scenarios!C25:J25
# price.oil results!C5:J5 and scenarios!C25:J25
# new_capacity_of_interest  (MW)
# new_capacity_of_interest  (MW)
# new_capacity_marginal_cost (/MWh)
# new_capacity_marginal_cost (€/MWh)
# noisedens calculations.2015!E5:DA5
# noisedens calculations.2015!E5:DA5
# noisegridbase calculation.2015!E3:DA3
# noisegridbase calculation.2015!E3:DA3
Rivi 55: Rivi 55:
# Dthermal_sd parameters!A20:A32 # standard deviations of demand shock for each week (GWh/month)
# Dthermal_sd parameters!A20:A32 # standard deviations of demand shock for each week (GWh/month)


###### INDICES
###### INDICES AND FUNCTIONS


year <- seq(2015, 2050, 5)
year <- seq(2015, 2050, 5)
Rivi 81: Rivi 81:


tim0 <- 2015
tim0 <- 2015
ERF <- function(x) {
  result(x) <- 2 * pnorm(result(x) * sqrt(2)) - 1 # Use pnorm to produce the error function (ERF in Excel) functionality.
  return(x)
}
cumfun <- (Ovariable("temp", data = data.frame(Year = year, Result = year)) <= Ovariable("temp2", data = data.frame(Year2 = year, Result = year))) * 1


##### USER INPUTS
##### USER INPUTS
Rivi 115: Rivi 122:
))
))


#new_capacity_other@data <- new_capacity_other@data[new_capacity_other@data$New_capacity == "1 %/a growth" , ]
#price.oil@data <- price.oil@data[price.oil@data$Oil_price == "Oil price 20 % higher" , ]
#change_in_demand@data <- change_in_demand@data[change_in_demand@data$Demand_change == "Demand 1 %/a growth" , ]
#scenariot <- Ovariable(data = data.frame(
#  New_capacity = "1 %/a growth",
#  Oil_price = "Oil price 20 % higher",
#  Demand_change = "Demand 1 %/a growth",
#  Result = 1
#))


##### CONSTANTS
##### CONSTANTS
Rivi 125: Rivi 143:
))
))


new_capacity_marginal_cost <- 12 #(/MWh) constant
new_capacity_marginal_cost <- 12 #(/MWh) constant


new_capacity_of_interest <- Ovariable("new_capacity", data = data.frame(
new_capacity_of_interest <- Ovariable("new_capacity", data = data.frame(
Rivi 184: Rivi 202:
result(Dthermal_noisegrid)[result(Dthermal_noisegrid) < 0] <- 0
result(Dthermal_noisegrid)[result(Dthermal_noisegrid) < 0] <- 0


k.new <- (new_capacity_of_interest + new_capacity_other - change_in_demand) * 24 * 7  
k.additional <- (new_capacity_of_interest + new_capacity_other - change_in_demand) * 24 * 7
k.new <- new_capacity_of_interest * 24 * 7  


ElPrice <- exp((1 / beta.p) * (Dthermal_noisegrid - k.new - beta.0 - beta.oil * price.oil - beta.eua * price.eua - dummies))
ElPrice <- exp((1 / beta.p) * (Dthermal_noisegrid - k.additional - beta.0 - beta.oil * price.oil - beta.eua * price.eua - dummies))
result(ElPrice)[result(ElPrice) < 0] <- 0
result(ElPrice)[result(ElPrice) < 0] <- 0
result(ElPrice)[result(ElPrice) > price.ceiling] <- price.ceiling
result(ElPrice)[result(ElPrice) > price.ceiling] <- price.ceiling
ERF <- function(x) {
  result(x) <- 2 * pnorm(result(x) * sqrt(2)) - 1 # Use pnorm to produce the error function (ERF in Excel) functionality.
  return(x)
}


noisedens <- 1/2 * (ERF((noisegridbase + noise_step / 2)/sqrt(2)) - ERF((noisegridbase - noise_step / 2)/sqrt(2)))
noisedens <- 1/2 * (ERF((noisegridbase + noise_step / 2)/sqrt(2)) - ERF((noisegridbase - noise_step / 2)/sqrt(2)))


average_monthly_price <- oapply(ElPrice * noisedens, cols = "Grid", FUN = sum) #  (/MWh)
average_monthly_price <- oapply(ElPrice * noisedens, cols = "Grid", FUN = sum) #  (€/MWh)


marginal_costs_for_the_new_capacity <- new_capacity_marginal_cost * k.new / 10^6 * 4
marginal_costs_for_the_new_capacity <- new_capacity_marginal_cost * k.new / 10^6 * 4 * 13 # There are 13 28-day months


revenue_for_the_new_capacity <- average_monthly_price * k.new / 10^6 * 4  
revenue_for_the_new_capacity <- average_monthly_price * k.new / 10^6 * 4  
Rivi 205: Rivi 219:
revenue_for_the_new_capacity <- oapply(unkeep(revenue_for_the_new_capacity, prevresults = TRUE, sources = TRUE), cols = "Month", FUN = sum)
revenue_for_the_new_capacity <- oapply(unkeep(revenue_for_the_new_capacity, prevresults = TRUE, sources = TRUE), cols = "Month", FUN = sum)


cumfun <- (Ovariable("temp", data = data.frame(Year = year, Result = year)) <= Ovariable("temp2", data = data.frame(Year2 = year, Result = year))) * 1
#revenue_for_the_new_capacity <- revenue_for_the_new_capacity * scenariot


###nominal analysis (euros millions) 2015-19
###nominal analysis (euros millions) 2015-19
nominal_costs <- -1 * fixed_costs_of_new_capacity - marginal_costs_for_the_new_capacity * 5 # (M€ per 5 a)
nominal_costs <- -1 * fixed_costs_of_new_capacity - marginal_costs_for_the_new_capacity * 5 # (per 5 a)
nominal_revenues <- revenue_for_the_new_capacity * 5 # (M€ per 5 a)
nominal_revenues <- revenue_for_the_new_capacity * 5 # (per 5 a)
nominal_net_revenues <- nominal_revenues + nominal_costs
nominal_net_revenues <- nominal_revenues + nominal_costs
cumulative_net_revenues <- oapply(nominal_net_revenues * cumfun, cols = "Year", FUN = sum) ###integrated over time
cumulative_net_revenues <- oapply(nominal_net_revenues * cumfun, cols = "Year", FUN = sum) ###integrated over time

Versio 28. syyskuuta 2014 kello 19.12




Kysymys

Miten lasketaan suunniteltavan ydinvoimalan kannattavuus käyttöiän aikana?

Vastaus

Perustelut

Riippuvuudet

Data

Laskenta

Nuclear investment calculator. Copyright James Corbishley and Matti Liski 2014 Original calculator in Excel [1].

+ Näytä koodi

Katso myös

Avainsanat

Viitteet


Aiheeseen liittyviä tiedostoja

<mfanonymousfilelist></mfanonymousfilelist>