newTechnology | R Documentation |
This function initializes and returns an S4 object of class technology
,
representing a specific technology with given attributes.
The function has the same arguments as slot-names in the technology
class.
Every argument has a specific format as described below and in the class
documentation.
newTechnology(
name = "",
desc = "",
input = data.frame(),
output = data.frame(),
group = data.frame(),
aux = data.frame(),
units = data.frame(),
cap2act = as.numeric(1),
geff = data.frame(),
ceff = data.frame(),
aeff = data.frame(),
af = data.frame(),
afs = data.frame(),
weather = data.frame(),
capacity = data.frame(),
invcost = data.frame(),
fixom = data.frame(),
varom = data.frame(),
olife = data.frame(),
region = character(),
start = data.frame(),
end = data.frame(),
timeframe = character(),
fullYear = TRUE,
optimizeRetirement = FALSE,
misc = list(),
...
)
## S4 method for signature 'technology'
update(object, ...)
name |
character. Name of the technology, used in sets. |
desc |
character. Optional description of the technology for reference. |
input |
data.frame. Main commodities input. Main commodities are linked to the process capacity and activity. Their parameters are defined in the
|
output |
data.frame. Main commodities output. Main commodities are linked to the process capacity and activity. Their parameters are defined in the
|
group |
data.frame. Details for commodity groups if defined in input and output slots (for reference).
|
aux |
data.frame. Auxilary commodities, both input and output, their parameters are defined in the
|
units |
data.frame. Key units of the process activity and capacity (for reference).
|
cap2act |
numeric. Capacity to activity ratio. Default is 1. Specifies how much product (activity, or output commodity if identical) will be produced per unit of capacity. |
geff |
data.frame. Input-commodity-group efficiency parameters.
|
ceff |
data.frame. Main commodity and activity efficiency parameters.
|
aeff |
data.frame. Parameters linking main commodities, activities, and capacities to auxiliary commodities.
|
af |
data.frame. Timeslice-level availability factor parameters.
|
afs |
data.frame. Timeframe-level availability factor constraints.
|
weather |
data.frame. Parameters linking
|
capacity |
data.frame. Capacity of the installed technology (in units of capacity).
|
invcost |
data.frame. Total overnight investment costs of the project (per unit of capacity).
|
fixom |
data.frame. Fixed operational and maintenance cost (per unit of capacity a year).
|
varom |
data.frame. Variable operational and maintenance cost (per unit of activity or commodity).
|
olife |
data.frame. Operational life of the installed technology (in years).
|
region |
character. Vector of regions where the technology exists or can be installed. Optional. If not specified, the technology is applied to all regions. If specified, must include all regions used in other slots. |
start |
data.frame. The first year the technology can be installed.
|
end |
data.frame. The last year the technology can be installed.
|
timeframe |
character. Name of timeframe level the technology is operating. By default, the lowest level of timeframe of commodities used in the technology is applied. |
fullYear |
logical. Incidates if the technology is operating on a full-year basis. Used in storages. currently ignored for technologies. |
optimizeRetirement |
logical. Incidates if the retirement of the technology should be optimized. Also requires the same parameter in the |
misc |
list. List of additional parameters that are not used in the model but can be used for reference or user-defined functions. For example, links to the source of the technology data, or other metadata. |
... |
slot-names with data to update (see |
object |
object of class technology |
An object of class technology.
ECOAL <- newTechnology(
name = "ECOAL", # name, used in sets, no white spaces or special characters
desc = "Generic coal power plant", # any description of the technology
input = data.frame(
comm = "COAL", # name of input commodity
unit = "MMBtu", # unit of the input commodity
# combustion factor from 0 to 1 (default 1) to calculate emissions
# from fuels combustion (commodities intermediate consumption, more broadly)
combustion = 1
),
output = data.frame(
comm = "ELC", # name of output commodity
unit = "MWh" # unit of the output commodity
),
aux = data.frame(
acomm = c("NOx", "SO2", "Hg"), # names of auxilary commodities
unit = c("kg", "kg", "g") # units
),
# Capacity to activity ration: 8760 MWh output a year per MW of capacity
cap2act = 8760,
ceff = data.frame( # efficiency parameters for the main commodities
comm = "COAL",
# efficiency, 1/10 MWh per MMBtu, inverse heat rate
# check: 1 / convert(10, "MMBtu", "MWh") ~= 34% efficiency
cinp2use = 1 / 10
),
aeff = data.frame( # paramaters for the auxilary commodities
acomm = c("NOx", "SO2", "Hg"),
act2aout = c(0.1, 0.2, 0.3) # emission factors, linked to activity
),
af = data.frame( # availability (capacity) factor by time slices
af.up = 0.95 # maximum 95% per hour
),
afs = data.frame( # availability factor by timeframes
slice = "ANNUAL", # annual availability factor
afs.lo = 0.40, # at least 40% per year
afs.up = 0.85 # maximum 85% per year
),
fixom = data.frame( # fixed operational and maintenance cost
region = c("R1", "R2", NA), # regions, NA - all other regions
fixom = c(100, 200, 150) # MW a year
),
varom = data.frame( # variable operational and maintenance cost
region = c("R1", "R2"), # regions
varom = c(1, 2) # $1 and $2 per MWh
),
invcost = data.frame( # investment cost
year = c(2020, 2030, 2040), # to differentiate by years
invcost = c(1000, 900, 800) # $1000, $900, $800 per MW
),
start = data.frame( # start year
start = 2020 # can be installed from 2020
),
end = data.frame( # end year
end = 2040 # can be installed until 2040
),
olife = data.frame( # operational life
olife = 30 # years
),
capacity = data.frame( # existing capacity
year = c(2020, 2030, 2040), # to differentiate by years
region = c("R1"), # exists only in R1
stock = c(300, 200, 100) # age-based exogenous retirement
),
# regions where the technology can be installed
region = c("R1", "R2", "R5", "R7"),
)
draw(ECOAL)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.