CHANGELOG.md 8.96 KB
Newer Older
Erkka Rinne's avatar
Erkka Rinne committed
1
2
3
# Changelog
All notable changes to this project will be documented in this file.

Niina Helistö's avatar
Niina Helistö committed
4
5
6
7
## Unreleased
### Added
- Result parameters for start-up energy consumption and start-up emissions
- Result parameter for realized diffusions
Tomi J. Lindroos's avatar
Tomi J. Lindroos committed
8
9
- Result tables for average marginal values (generation, reserves)
- Result tables for annual reserve results (gn, resTransfer)
Niina Helistö's avatar
Niina Helistö committed
10
- Two additional constraints to make transfer constraints tighter
11
- New set for the m, s, f, t combinations including the previous sample
Niina Helistö's avatar
Niina Helistö committed
12
13
14
15

### Changed
- Replaced commodity set with a parameter usePrice and updated results calculation related to it
- Replaced q_energyMax, q_energyShareMax and q_energyShareMin with q_energyLimit and q_energyShareLimit
Tomi J. Lindroos's avatar
Tomi J. Lindroos committed
16
- Removing Eps values from r_reserve results table
Niina Helistö's avatar
Niina Helistö committed
17
18
19
20

### Fixed
- Including start-up fuel consumption in q_balance
- Updated start-up cost and start-up emission calculation
Juha Kiviluoma's avatar
Juha Kiviluoma committed
21
- output_dir command line argument was missing quotes in the code and directories with space did not work 
22
- Checking solve and model status
Niina Helistö's avatar
Niina Helistö committed
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
## 1.5 - 2021-10-05
### Added
- Additional conditions in the objective function to avoid summing empty sets
- Possibility to model maintenance break with `utAvailalability` limits

### Changed
- Speedups

### Fixed 
- Templates for time and sample sets as well as model definitions files
- N-1 reserve equation did not include last hour of day/solve
- Setting the default update_frequency for reserve types
- Better control of reserve-related assignments


Erkka Rinne's avatar
Erkka Rinne committed
39
## 1.4 - 2021-06-29
Juha Kiviluoma's avatar
Juha Kiviluoma committed
40
41
42
- Time series for transmission availability and losses
- More versatile reading of input files. Translating input Excel to input GDX supported inside Backbone 1e_inputs.gms

Erkka Rinne's avatar
Erkka Rinne committed
43
## 1.3.3 - 2021-04-14
Juha Kiviluoma's avatar
Juha Kiviluoma committed
44
- Transfer can have additional 'variable' costs (costs per MWh transferred)
Niina Helistö's avatar
Niina Helistö committed
45
- Reserve activation duration and reactivation time included (in state constraints)
46
- Raise execution error if solver did not finish normally
47
- Updated the selection of unit efficiency approximation levels
Juha Kiviluoma's avatar
Juha Kiviluoma committed
48
49
- Additional result outputs

Erkka Rinne's avatar
Erkka Rinne committed
50
## 1.3.2 - 2021-01-19
Juha Kiviluoma's avatar
Juha Kiviluoma committed
51
52
- Moving from p_groupPolicy3D to separate p_groupPolicyUnit and p_groupPolicyEmission

Erkka Rinne's avatar
Erkka Rinne committed
53
## 1.3.1 - 2021-01-19
Juha Kiviluoma's avatar
Juha Kiviluoma committed
54
55
56
- Maximum (and minimum) limit to sum of energy inputs/outputs of selected group of units
- Additional result outputs concerning emissions

Erkka Rinne's avatar
Erkka Rinne committed
57
## 1.3 - 2020-10-21
58
- Static inertia requirement can be fulfilled by both rotational inertia of machines and certain reserve products
59
- Dynamic generation portfolios aka pathway modelling aka multi-year simulations with discounted costs enabled
Niina Helistö's avatar
Niina Helistö committed
60
- Parameters p_gnPolicy and p_groupPolicy3D replaced with p_groupPolicyEmission and p_groupPolicyUnit
Juha Kiviluoma's avatar
Juha Kiviluoma committed
61

Erkka Rinne's avatar
Erkka Rinne committed
62
## 1.2.2 - 2020-06-09
63
- Clean up, minor bug fixes and more results outputs
Juha Kiviluoma's avatar
Juha Kiviluoma committed
64

Erkka Rinne's avatar
Erkka Rinne committed
65
## 1.2.1 - 2019-11-26
Niina Helistö's avatar
Niina Helistö committed
66
67
68
69
70
71
72
### Fixed
- Fixed a possible division by zero in the calculation of r_gnuUtilizationRate
- Updated debugSymbols.inc and 1e_scenChanges.gms to match with the current naming of sets and parameters

### Changed
- Changed variable O&M costs from p_unit(unit, 'omCosts') to p_gnu(grid, node, unit, 'vomCosts')

Erkka Rinne's avatar
Erkka Rinne committed
73
## 1.2 - 2019-11-12
Erkka Rinne's avatar
Erkka Rinne committed
74
75

### Added
Juha Kiviluoma's avatar
Juha Kiviluoma committed
76
77
78
79
- Dynamic inertia requirements based on loss of unit and loss of export/import (ROCOF constraints)
- N-1 reserve requirement for transfer links
- A separate parameter to tell whether units can provide offline reserve (non-spinning reserve)
- Maximum share of reserve provision from a group of units
Erkka Rinne's avatar
Erkka Rinne committed
80
81
- All input files, including *inputData.gdx*, are optional
- Enabling different combinations of LP and MIP online and invest variables
Niina Helistö's avatar
Niina Helistö committed
82
- Separate availability parameter for output units in the capacity margin constraint
83
- Parameter `gn_forecasts(*, node, timeseries)` to tell which nodes and timeseries use forecasts
Erkka Rinne's avatar
Erkka Rinne committed
84
85

### Changed 
Juha Kiviluoma's avatar
Juha Kiviluoma committed
86
87
- Reserve requirements are now based on groups (previously node based)
- Changed the v_startup (and v_shutdown) variables into integers to improve the performance online approximations
Niina Helistö's avatar
Niina Helistö committed
88
- Updated tool definitions for Sceleton Titan and Spine Toolbox
Juha Kiviluoma's avatar
Juha Kiviluoma committed
89
- The program will now stop looping in case of execution errors
90
- Scenario reduction is done based on total available energy
Erkka Rinne's avatar
Erkka Rinne committed
91
- Maintain original scenario labels after reduction
92
- Clear time series data from droppped samples after scenario reduction
Erkka Rinne's avatar
Erkka Rinne committed
93

94
95
### Fixed
- Removed hard-coded `elec grids` from *setVariableLimits* and *rampSched files*
Juha Kiviluoma's avatar
Juha Kiviluoma committed
96
97
- Cyclic bounds between different samples was not working correctly (#97)
- Time series smoothing not working at all (#100)
Erkka Rinne's avatar
Erkka Rinne committed
98
- Fix a number of compilation warnings
Niina Helistö's avatar
Niina Helistö committed
99
- Limiting the provision of online reserve based on the online variable
Juha Kiviluoma's avatar
Juha Kiviluoma committed
100
- Sample probability bug from scenario reduction (probability of single scenario above one)
101

102
103
104
105

## 1.1.5 - 2020-11-28
### Fixed
- Long-term scenario data when using only one scenario
106
- Bug with scenario smooting which caused wrong values on later than first solve
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123


## 1.1.4 - 2019-11-02
### Fixed
- Sample probability bug from scenario reduction


## 1.1.3 - 2019-10-24
### Changed 
- Scenario reduction is done based on total available energy


## 1.1.2 - 2019-10-23
### Changed 
- Maintain original scenario labels after reduction


Erkka Rinne's avatar
Erkka Rinne committed
124
## 1.1 - 2019-04-17
Erkka Rinne's avatar
Erkka Rinne committed
125
### Added
126
127
128
129
- New model setting 't_perfectForesight' tells the number of time steps (from 
  the beginning of current solve) for which realized data is used instead of 
  forecasts. This value cannot exceed current forecast length, however. Setting 
  the value lower than 't_jump' has no effect.
130
131
132
- Automated the calculation of sample start and end times if using long-term 
  scenarios. Also setting number of scenarios to one, instructs the model to use
  central forecast for the long-term.
133
- Speedup for model dimension calculation (set `msft` etc.)
Erkka Rinne's avatar
Erkka Rinne committed
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
- Support long time intervals in the first block
- Possibility to limit `v_online` to zero according to time series
- Output for reserve transfer results
- Reserve provision limits with investments
- Constrain the set of units to which ramp equations are applied
- Piecewise linear heat rate curves
- Checks for reserves
- Allow to set certain value for `v_gen` at 't000000'

### Changed
- Removed some old command line arguments
- Removed obsolete 'emissionIntensity' fuel parameter

### Fixed
- Unit ramps during start-up and shutdown
- Refreshing forecast data in *inputsLoop*
- Aggregated groups that were not in use were included in the model
- `mst_end` not found for the last sample
- Start-up not working for units without start costs or start fuel consumption
- *periodicInit* will fail with multiple model definitions
- Reserves should not be allowed to be locked when the interval is greater than 
  smallest interval in use
- Start-up phase and aggregated time steps do not work together
- In SOS2 unit cannot exceed the generation of `p_ut_runUp`
- Startup cost calculation
- Efficiency presentations
- `p_uNonoperational` not fully correct

Erkka Rinne's avatar
Erkka Rinne committed
162

Erkka Rinne's avatar
Erkka Rinne committed
163
## 1.0.6 - 2019-03-27
Erkka Rinne's avatar
Erkka Rinne committed
164
165
### Fixed
- Major bug in state variable reserve equations
Erkka Rinne's avatar
Erkka Rinne committed
166
167
168
169
- Scenario smoothing alogirithm

### Changed
- Speedup for timeseries calculations
Erkka Rinne's avatar
Erkka Rinne committed
170

171
172
173
174
### Added 
- New model setting `mSettings(mType, 'onlyExistingForecasts') = 0|1` to control 
  the reading of forecasts. Set to 1 to only read forecast data that exists in 
  the file. Note that zeros need to be saved as Eps when using this.
Erkka Rinne's avatar
Erkka Rinne committed
175
176
- Proper stochastic programming for the long-term scenarios period. Possible also
  to create a stochastic tree from the original data.
Erkka Rinne's avatar
Erkka Rinne committed
177
178
- Clickable link to *sr.log* in the process window in case of SCENRED2 error
- New diagnostic parameter for timeseries scenarios `d_ts_scenarios`
Erkka Rinne's avatar
Erkka Rinne committed
179

Erkka Rinne's avatar
Erkka Rinne committed
180

Erkka Rinne's avatar
Erkka Rinne committed
181
## 1.0.5 - 2019-02-14
182
183
184
### Fixed
- Probabilities were not updated after using scenario reduction

185
186
187
188
### Added
- Enable long-term samples that extend several years by using planning horizon 
  which is longer than one scenario (e.g. 3 years). Note: Cannot use all data for 
  samples as last years need to be reserved for the planning horizon.
Erkka Rinne's avatar
Erkka Rinne committed
189
190


Erkka Rinne's avatar
Erkka Rinne committed
191
## 1.0.4 - 2019-02-11
Erkka Rinne's avatar
Erkka Rinne committed
192
193
194
### Fixed
- Severe bug in setting node state level limits

Erkka Rinne's avatar
Erkka Rinne committed
195
196
### Changed
- Suppress ouput from SCENRED2
197

Erkka Rinne's avatar
Erkka Rinne committed
198

Erkka Rinne's avatar
Erkka Rinne committed
199
## 1.0.3 - 2019-02-05
200
201
### Fixed
- Only selects forecasts with positive probability for the solve
202

Erkka Rinne's avatar
Erkka Rinne committed
203

Erkka Rinne's avatar
Erkka Rinne committed
204
## 1.0.2 - 2019-02-04
Erkka Rinne's avatar
Erkka Rinne committed
205
206
207
### Added
- New model setting `dataLength` to set the length of time series data before it is
  recycled. Warn if this is not defined and automatically calculated from data.
208
209
- Command line arguments '--input_dir=<path>' and '--ouput_dir=<path' to set
  input and output directories, respectively.
Erkka Rinne's avatar
Erkka Rinne committed
210
211
212
213
- Added sample dimension to most variables and equations (excl. investments). 
  Samples can now be used as long-term scenario alternatives (for e.g. hydro scehduling)
- Number of parallel samples can be reduced using SCENRED2. Activate with active('scenRed')
  and set parameters in modelsInit.
Erkka Rinne's avatar
Erkka Rinne committed
214
215
216
217

### Changed
- Automatic calculation of parameter `dt_circular` takes into account time steps 
  only from `t000001` onwards.
218
219
220
- Debug mode yes/no changed to debug levels 0, 1 or 2. With higher level produces
  more information. Default is 0, when no extra files are written (not even *debug.gdx*).
  Set debug level with command line parameter `--debug=LEVEL`.
Erkka Rinne's avatar
Erkka Rinne committed
221
222
223
224
225
226
227
228
229
230

### Fixed
- Calculation of parameter `df_central`
- Readability of some displayed messages 


## 1.0 - 2018-09-12
### Changed
- Major updates to data structures etc.

Erkka Rinne's avatar
Erkka Rinne committed
231