Difference between revisions of "Helsinki energy production"

From Testiwiki
Jump to: navigation, search
m (Energy balance)
(Energy balance: initiation code moved to Energy balance)
Line 44: Line 44:
 
*Chalmers University of Technology: Towards a Sustainable Oil Refinery, Pre-study for larger co-operation projects<ref>http://publications.lib.chalmers.se/records/fulltext/69752.pdf</ref>
 
*Chalmers University of Technology: Towards a Sustainable Oil Refinery, Pre-study for larger co-operation projects<ref>http://publications.lib.chalmers.se/records/fulltext/69752.pdf</ref>
 
*Energy Department of The United States: Geothermal Heat Pumps<ref>http://energy.gov/energysaver/articles/geothermal-heat-pumps</ref>
 
*Energy Department of The United States: Geothermal Heat Pumps<ref>http://energy.gov/energysaver/articles/geothermal-heat-pumps</ref>
 +
 +
<rcode name="energyProcess" label="Initiate energyProcess (for developers only)" embed=1 store=1>
 +
## This code is Op_en7311/energyProcess on page [[Helsinki energy production]]
 +
library(OpasnetUtils)
 +
 +
energyProcess <- Ovariable("energyProcess", ddata = "Op_en7311", subset = "Heat, power and cooling processes")
 +
 +
objects.store(energyProcess)
 +
cat("Ovariable energyProcess stored.\n")
 +
</rcode>
 +
  
 
<t2b name="Plant parameters" index="Year,Plant,Parameter" locations="Min,Max,Investment cost,Management cost,Operation cost" unit="MW,MW,M€,M€ /a,€ /MWh" desc="Description">
 
<t2b name="Plant parameters" index="Year,Plant,Parameter" locations="Min,Max,Investment cost,Management cost,Operation cost" unit="MW,MW,M€,M€ /a,€ /MWh" desc="Description">
Line 75: Line 86:
 
*Power and production in Suvilahti <ref>https://www.helen.fi/uutiset/2015/aurinkovoiman-tuotanto-on-kaynnistynyt-helsingin-suvilahdessa/</ref>  
 
*Power and production in Suvilahti <ref>https://www.helen.fi/uutiset/2015/aurinkovoiman-tuotanto-on-kaynnistynyt-helsingin-suvilahdessa/</ref>  
 
*Loviisan sanomat: Loviisan ydinvoimalan tehoja aiotaan nostaa 52 megawattia. <ref> http://www.loviisansanomat.net/lue.php?id=5361</ref>
 
*Loviisan sanomat: Loviisan ydinvoimalan tehoja aiotaan nostaa 52 megawattia. <ref> http://www.loviisansanomat.net/lue.php?id=5361</ref>
 +
 +
<rcode name="plantParameters" label="Initiate plantParameters (for developers only)" embed=1 store=1>
 +
## This code is Op_en7311/plantParameters on page [[Helsinki energy production]]
 +
library(OpasnetUtils)
 +
 +
plantParameters <- Ovariable("plantParameters", ddata = "Op_en7311", subset = "Plant parameters")
 +
 +
objects.store(plantParameters)
 +
cat("Ovariable plantparameters stored.\n")
 +
</rcode>
  
  
Line 88: Line 109:
 
These equations aim to reflect the energy production facilities and capabilities.
 
These equations aim to reflect the energy production facilities and capabilities.
  
Note! Maintenance cost only contains costs that do not depend on activity. Operational cost contains costs that depend on activity but NOT fuel costs; those are calculated separately based on energy produced.
+
Note! Maintenance cost only contains costs that do not depend on activity. Operational cost contains costs that depend on activity but NOT fuel costs; those are calculated separately based on energy produced.
 
 
<rcode label="Optimising function" embed=1>
 
## This is a code Op_en7311 (no name) on page Helsinki energy production.
 
library(OpasnetUtils)
 
 
 
energyProcess <- Ovariable("energyProcess", ddata = "Op_en7311", subset = "Heat, power and cooling processes")
 
plantParameters <- Ovariable("plantParameters", ddata = "Op_en7311", subset = "Plant parameters")
 
objects.latest("Op_en4151", code_name="fuelPrice")
 
requiredEnergy <- Ovariable("requiredEnergy", data = data.frame(
 
RenovationPolicy = c("BAU", "Active"),
 
Result = c(3000, 2500)
 
))
 
 
 
requiredName <- "Heat"
 
 
 
energyBalance <- Ovariable("energyBalance",
 
dependencies = data.frame(
 
Name = c(
 
"energyProcess", # Matric showing inputs and outputs the processes of each plant.
 
"fuelPrice", # Prices of fuels (by Time)
 
"plantParameters", # Capacities and costs of running plants
 
"requiredEnergy", # Energy demand that must be met by production plus all other energy
 
#demand and supply that is not centrally controlled.
 
"requiredName" # Fuel name for the energy type that is balanced for inputs and outputs.
 
),
 
Ident = c(
 
NA,
 
"Op_en4151/fuelPrice",
 
NA,
 
NA,
 
NA
 
)
 
),
 
formula = function(...) {
 
 
# First, define the optimising function
 
optfunction <- function(
 
x, # Variables to optimise (activities of power plants).
 
requiredEnergy, # energy demand that must be met by supply (scalar)
 
unitprice, # vector of prices per activity unit (by plant).
 
unitRequired # vector of required energy produced per activity uniit (by plant).
 
) {
 
 
 
out <- sum(x * unitprice) + (requiredEnergy - sum(x * unitRequired))^2 * 1E6
 
 
return(out)
 
}
 
 
 
# Operational costs per unit of activity. Fuel price is excluded and calculated elsewhere.
 
operationCost <- plantParameters
 
operationCost@output <- operationCost@output[operationCost@output$Parameter == "Operation cost" , ]
 
operationCost <- unkeep(operationCost, cols = "Parameter")
 
 
 
# Costs per unit of activity by plant. Fuel price included. Change into vector.
 
unitprice <- oapply(energyProcess * fuelPrice * -1, cols = "Fuel", FUN = sum) + operationCost
 
 
colnames(unitprice@output)[colnames(unitprice@output) == "plantParametersResult"] <- "unitpriceResult"
 
unitprice@output$unitpriceResult <- result(unitprice) # Save result into another column
 
 
# Required energy produced per unit activity by plant. Change into vector.
 
unitRequired <- energyProcess
 
unitRequired@output <- unitRequired@output[unitRequired@output$Fuel == requiredName , ]
 
unitRequired <- unkeep(unitRequired, cols = "Fuel")
 
 
# Put all inputs into one ovariable and sort by Plant. Note: important outputs in columns
 
# unitpriceResult, requiredEnergyResult, energyProcessResult, and Result.
 
temp <- (unitprice * unitRequired * requiredEnergy * 0 + 
 
unkeep(plantParameters, prevresults = TRUE, sources = TRUE)
 
)
 
indices <- unique(temp@output[temp@marginal & !colnames(temp@output) %in% c("Plant", "Parameter")])
 
 
 
out <- data.frame()
 
 
for(i in 1:nrow(indices)) {
 
temp2 <- merge(indices[i , , drop = FALSE], temp@output)
 
temp2 <- temp2[order(temp2$Plant) , ]
 
temp3 <- optim(
 
par = temp2[temp2$Parameter == "Min" , "Result"], # from plantParameters
 
fn = optfunction,
 
lower = temp2[temp2$Parameter == "Min" , "Result"], # from plantParameters
 
upper = temp2[temp2$Parameter == "Max" , "Result"], # from plantParameters
 
unitprice = temp2[temp2$Parameter == "Min" , "unitpriceResult"], # from unitprice
 
requiredEnergy = temp2[temp2$Parameter == "Min" , "requiredEnergyResult"][1], # from requiredEnergy
 
unitRequired = temp2[temp2$Parameter == "Min" , "energyProcessResult"], # from energyProcess
 
method = "L-BFGS-B"
 
)
 
 
 
out <- rbind(out, data.frame(
 
indices[i , , drop = FALSE],
 
Plant = temp2$Plant[temp2$Parameter == "Min"],
 
Result = temp3$par
 
))
 
}
 
return(out)
 
}
 
)
 
 
energyBalance <- EvalOutput(energyBalance)
 
test <- energyBalance * energyProcess
 
oprint(oapply(test, cols = "Plant", FUN = sum))
 
 
 
</rcode>
 
 
 
[[Prices of fuels in heat production]] are used as direct inputs in the optimising.
 
  
 
=== Heating ===
 
=== Heating ===

Revision as of 20:26, 1 July 2015


Question

What is the amount of energy produced (including distributed production) in Helsinki? Where is it produced (-> emissions)? Which processes are used in its production?

Answer

Rationale

Energy balance

Amount produced is determined largely by the energy balance in Helsinki and Helsinki energy consumption. Energy produced and fuels used by of all Helen's power plants.[1]

Heat, power and cooling processes(MJ /MJ)
ObsPlantElectricityHeatCoolingCoalGasFuel oilBiofuelDescription
1Hanasaari0.310.600-1000Assume 91 % efficiency. Capacity: electricity 220 MW heat 420 MW Loss 64 MW
2Hanasaari biofuel renovation0.310.600-0.600-0.4
3Vuosaari A&B0.470.4400-100Capacity: electricity 630 MW heat 580 MW loss 121 MW
4Vuosaari C biofuel0.470.440000-1
5Salmisaari A&B0.320.590-1000Capacity: electricity 160 MW heat 300 MW loss 46 MW
6Salmisaari biofuel renovation0.320.590000-1
7Smaller gas heat plants around Helsinki00.9100-100
8Smaller fuel oil heat plants around Helsinki00.91000-10
9Katri Vala heat-0.35100000Heat from cleaned waste water and district heating network's returing water.
10Katri Vala cooling-0.55010000District cooling produced by absorption (?) heat pumps.
11Kymijoki River's plants1000000Hydropower
12Powerplant museum in Vanhakaupunki1000000Hydropower
13Kellosaari back-up plant0.350000-10
14Suvilahti power storage1000000
15Loviisa nuclear heat-0.1100000
16Neste oil refinery heat-0.1100000
17Household heat pumps-0.3100000The efficiency of heat pumps is largely dependent on outside air temperature. While they can easily reach very high efficiencies (5x) in a warm temperature, their efficiency as a heat source drops dramatically at low temperatures. This model presumes that a household heat pump is used as the main heat source at temperatures -15 °C - 10°C.
18Deep-drill heat-0.1100000
19Sea heat pump-0.2100000
20Small-scale wood burning00.50000-1
21Air conditioning-0.4010000
22CHP diesel generators0.30.4000-10

Notes:

  • Household heat pump comparison[2]
  • Loss of thermal energy through distribution is around 10 %. From Norwegian Water Resources and Energy Directorate: Energy in Norway.[3]
  • Sustainable Energy Technology at Work: Use of waste heat from refining industry, Sweden.[4]
  • Chalmers University of Technology: Towards a Sustainable Oil Refinery, Pre-study for larger co-operation projects[5]
  • Energy Department of The United States: Geothermal Heat Pumps[6]

+ Show code


Plant parameters(MW,MW,M€,M€ /a,€ /MWh)
ObsYearPlantMinMaxInvestment costManagement costOperation costDescription
12015Hanasaari064010010495% coal, 5% pellets
22015Hanasaari biofuel renovation064010010460% coal, 40% biofuels
32015Vuosaari A&B01331100105natural gas
42015Vuosaari C biofuel0133110010580-100% biofuels, rest coal
52015Salmisaari A&B050610010495% coal, 5% pellets
62015Salmisaari biofuel renovation050610010460% coal, 40% biofuels
72015Smaller heat plants around Helsinki020151001010
82015Katri Vala heat090100103
92015Katri Vala cooling060100103
102015Kymijoki River's plants0601001010water
112015Powerplant museum in Vanhakaupunki00.2100100water
122015Kellosaari back-up plant01201001020oil
132015Suvilahti solar00.34100105
142015Suvilahti power storage-1.21.2100105electricity storage 0.6 MWh
152015Wind mills04100105
162015Loviisa nuclear heat03000100105
172015Neste oil refinery heat02000100105
182015Household heat pumps0300100105
192015Deep-drill heat0500100107
202015Sea heat pump0500100104
212015Small-scale wood burning0500100105
222015Air conditioning0500100105
232015CHP diesel generators0500100105

Notes:

  • Helens’s windpower [7]
  • Power and production in Suvilahti [8]
  • Loviisan sanomat: Loviisan ydinvoimalan tehoja aiotaan nostaa 52 megawattia. [9]

+ Show code


Non-adjustable energy production(MW)
ObsPlantFuel201520202030204020502060
1Suvilahti solarElectricity000000
2Wind millsElectricity000000

# : How to model non-adjustable energy production exactly? Probably needs a submodel instead of a t2b table. --Jouni (talk) 07:30, 27 June 2015 (UTC)

--# : Should air conditioning be in process matrix or in non-adjustable energy production? --Jouni (talk) 07:30, 27 June 2015 (UTC)

These equations aim to reflect the energy production facilities and capabilities.

Note! Maintenance cost only contains costs that do not depend on activity. Operational cost contains costs that depend on activity but NOT fuel costs; those are calculated separately based on energy produced.

Heating

Fuel use by heating type

Only district heating is Helsinki specific, rest should be taken from Emission factors for burning processes.

Fuel use by heating type(-)
ObsHeatingBurnerFuelFractionDescription
1DistrictLarge fluidized bedCoal0.6
2DistrictLarge fluidized bedGas0.4
3DistrictLarge fluidized bedWood0

+ Show code

Emission locations

Emission location and height by heating type.

Emission locations(-)
ObsHeatingEmission_siteEmission_heightDummy
1District010High
2Electricity010High
3Geothermal010High
4OilAt site of consumptionGround
5WoodAt site of consumptionGround
6GasAt site of consumptionGround
7CoalAt site of consumptionGround

This code creates technical ovariables emissionLocations and heatingShares that are needed to run the Building model and its ovariables buildings and heatingEnergy.

+ Show code

Production and emission statistics

Helsingin Energia energy sold in 2013 (GWh)[10]
Electricity 7145
District heat and steam 6807
District cooling 116

Dependencies

Calculations

+ Show code

See also

Helsinki energy decision 2015
In English
Assessment Main page | Helsinki energy decision options 2015
Helsinki data Building stock in Helsinki | Helsinki energy production | Helsinki energy consumption | Energy use of buildings | Emission factors for burning processes | Prices of fuels in heat production | External cost
Models Building model | Energy balance | Health impact assessment | Economic impacts
Related assessments Climate change policies in Helsinki | Climate change policies and health in Kuopio | Climate change policies in Basel
In Finnish
Yhteenveto Helsingin energiapäätös 2015 | Helsingin energiapäätöksen vaihtoehdot 2015 | Helsingin energiapäätökseen liittyviä arvoja | Helsingin energiapäätös 2015.pptx

Keywords

References