Model Configuration
This model has various configurations that the user can set using the function:
julia> config = ModelConfig()
Input
This function guides the user through creating a mutable struct with the model configurations. The outputs for this function should be stored in a variable, e.g. config = ModelConfig()
.
RunTransition
: Binary Input, i.e.(1, 0)
- When set to 1, the model will run a 20 year transition from 2020-2040 as wind and solar are incorporated into the global energy grid.
- The model automatically runs the transition with a subsidy included in the prices for the US.
RunBatteries
: Binary Input, i.e.(1, 0)
- When set to 1, the model will run the 20 year transition with the hours of storage for batteries set by the user in hoursvec.
RunBatteries = 1
andhoursvec
must both be set.- By default
hoursvec = [2, 4, 6]
RunExog
: Binary Input, i.e.(1, 0)
- When set to 1, the model assumes that technology is exogenous.
- Calculations for the steady state equilibrium and the transition assume that technology does not change.
- Specifically, the exogenous values impact the guesses for renewable capital prices in both the long run and the transition, setting the guesses on projections for wind / solar respectively.
RunCurtailment
: Binary Input, i.e.(1, 0)
- When set to 1, there is no subsidy during transition and battery hours of storage is assumed to be 12.
- This problem demonstrates the effects of renewable intermittency (inconsitency in energy production) without optimized storage hours.
Transiter
: Integer Input, i.e.100
- Controls the number of iterations the transition model will run.
- To create data for the paper, the transition model runs for 100 iterations, i.e.
Transiter = 100
. - To check that the code is working Transiter = 2.
Initialprod
: Integer Input, i.e.100
- Initial level of renewables cost of production.
- To create data for the paper,
Initialprod = 100
.
hoursofstorage
: Integer Input, i.e.4
- Hours of battery storage for renewable energy.
- This value is always set by the model. User input will be overwritten.
- Use
hoursvec
to set battery hours of prices whenRunBatteries==1
.
hoursvec
: List Input, i.e.2,4,6
- The hoursvec is a vector of battery storage hours used as inputs for the model.
- This will output results for the change in battery prices over the transition given that the number of hours of battery storage.
- It is useful for comparing different hours of storage.
- This variable is only relevant when
RunBatteries==1
.
Examples
Default Configuration
julia> config = ModelConfig()
Enter RunTransition (0 or 1, default = 1):
Enter RunBatteries (0 or 1, default=0):
Enter RunExog (0 or 1, default=0):
Enter RunCurtailment (0 or 1, default=0):
Enter the Number of Transition Iterations (recommend 0-100 iterations, default=2):
Enter Initial Production (default = 100):
Enter hoursofstorage (default=0):
Enter hoursvec (comma-separated, default = 2,4,6):
ModelConfig(1, 0, 0, 0, 2, 100, 0, [2, 4, 6])
Run Batteries with Hours 1,3,5
julia> config = ModelConfig()
Enter RunTransition (0 or 1, default = 1):
0
Enter RunBatteries (0 or 1, default=0):
1
Enter RunExog (0 or 1, default=0):
0
Enter RunCurtailment (0 or 1, default=0):
0
Enter the Number of Transition Iterations (recommend 0-100 iterations, default=2):
2
Enter Initial Production (default = 100):
0
Enter hoursofstorage (default=0):
0
Enter hoursvec (comma-separated, default = 2,4,6):
1,3,5
ModelConfig(0, 1, 0, 0, 2, 0, 0, [1, 3, 5])