-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a feature to enable thermal power plants to burn multiple fuels #586
Merged
Merged
Changes from 35 commits
Commits
Show all changes
61 commits
Select commit
Hold shift + click to select a range
10c5d76
include fuel.jl co2.jl from Qingyu's CO2 module
fc4uk f44eeb8
Update co2.jl
fc4uk 3c9a23a
Add a second fuel
qluo0320github 4983584
Edit dual fuel
qluo0320github fbc6395
Remove variables P1 and P2
qluo0320github e0e34d2
Cleaned up unused input data and added some comments
filippopecci 4c3b11c
no change made to example systems
filippopecci ae47121
Added option for two different heat rates, and modified generator dat…
filippopecci 84b0f5f
Add EPA new rules constraints
qluo0320github 7e32e58
epa separation commit
qluo0320github 9fa2a31
Add max cofire level for resources without retro
qluo0320github 8fb2e2b
Add max co-fire variable to input file
qluo0320github 70333d6
Enable resources in GenX to use multi fuel
qluo0320github f06db58
changes when writing outputs
qluo0320github d3e14cc
Add documentation about multi fuel in fuel.jl
qluo0320github 56ddfec
Update Generators_data.csv
qluo0320github 896e942
Remove outdated HiGHS setting `simplex_dualise_strategy`
qluo0320github 23a33aa
Merge remote-tracking branch 'origin/develop' into multi_fuels
qluo0320github e2e0df3
Add blending level constraints during startup processes
qluo0320github 1537f63
remove start fuel costs when writing costs
qluo0320github 0de8a13
Merge branch 'multi_fuels' into epa_ghg
qluo0320github 7e5b829
apply CF constraints to certain resources
qluo0320github 9aecca8
fix bugs related to multi fuels and unit-level emission constraints
qluo0320github f998ec4
Merge remote-tracking branch 'origin/develop' into epa_ghg
qluo0320github b0d2ec2
fix bugs after merge
qluo0320github 1660932
Only keep constraints about multi-fuels
qluo0320github 79162ea
Remove unneeded check when loading fuel data (#545)
cfe316 13ec11d
Maintenance formulation (for thermal generators) (#556)
cfe316 27d06db
Separate new build and retirement eligibility (#392)
cfe316 6e5d76c
Endogenous retirements bugfix
filippopecci 82e5cd4
[Fix] eELOSSByZone expr: access before initialization (#568)
lbonaldo e43e3b0
Removed unused capacity factor setting
qluo0320github eaeafa2
Merge remote-tracking branch 'origin/develop' into multi_fuels
qluo0320github 7c80cc7
Clean GenX.jl after merge
qluo0320github 39faec5
Update the example case for multi-fuels
qluo0320github 48945f1
Removed unused files
qluo0320github 3d7df51
Update Demand_data.csv
qluo0320github 34a9d62
Update data_documentation.md
qluo0320github eb157d1
Removed unused space, variables, and comments
qluo0320github 15ba005
undo changes to some files
qluo0320github c0c89b8
Add a function to read data related to multi fuels in Generators_dat…
qluo0320github 2a1616e
Assign variables at the beginning functions
qluo0320github 8dd4aff
Define variables for MULTI_FUELS only when MULTI_FUELS exists
qluo0320github 77afe78
Move if statement before fun call in load_generators_data
lbonaldo 8f48fa4
Add multi_fuels test
lbonaldo 5b983be
1. check the compatibility between multi-fuels and piesewise heat rat…
qluo0320github 4ac5a63
Merge remote-tracking branch 'origin/develop' into multi_fuels
qluo0320github 4805818
define THERM_COMMIT_PWFU in function load_multi_fuels_data
qluo0320github d518d99
use process_piecewisefuelusage so that THERM_COMMIT_PWFU can be used …
qluo0320github ab22570
check compatibility between piese wise heat rates and multi-fuels onl…
qluo0320github 92ad0cf
check compatibility between piese wise heat rates and multi-fuels onl…
qluo0320github 6bc4c5b
use variable "fuel_cols" when multi-fuel exists
qluo0320github 8ec89b0
reduce # of constraints to reduce memory use
qluo0320github e8fc0cb
remove used println()
qluo0320github 488d849
define CCS when loading input
qluo0320github 289558b
Modify write outputs scripts for CCS
qluo0320github a0f4a70
Merge remote-tracking branch 'origin/develop' into multi_fuels
qluo0320github c06660b
Add units to fuel outputs; fix bugs in fuel.jl
qluo0320github 0f54cc5
Add tests and fix HAS_FUEL flag
lbonaldo 1b25178
Fix resources filename
lbonaldo 3ca43a4
Update CHANGELOG.md
lbonaldo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
Example_Systems/SmallNewEngland/OneZone_MultiFuels/CO2_cap.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
,Network_zones,CO_2_Cap_Zone_1,CO_2_Max_tons_MWh_1,CO_2_Max_Mtons_1 | ||
NE,z1,1,0.05,0.018 |
2 changes: 2 additions & 0 deletions
2
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Capacity_reserve_margin.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
,Network_zones,CapRes_1 | ||
NE,z1,0.156 |
25 changes: 25 additions & 0 deletions
25
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Demand_data.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
Voll,Demand_Segment,Cost_of_Demand_Curtailment_per_MW,Max_Demand_Curtailment,Rep_Periods,Timesteps_per_Rep_Period,Sub_Weights,Time_Index,Demand_MW_z1 | ||
50000,1,1,1,1,24,24,1,11162 | ||
,,,,,,,2,10556 | ||
,,,,,,,3,10105 | ||
,,,,,,,4,9878 | ||
,,,,,,,5,9843 | ||
,,,,,,,6,10017 | ||
,,,,,,,7,10390 | ||
,,,,,,,8,10727 | ||
,,,,,,,9,11298 | ||
,,,,,,,10,11859 | ||
,,,,,,,11,12196 | ||
,,,,,,,12,12321 | ||
,,,,,,,13,12381 | ||
,,,,,,,14,12270 | ||
,,,,,,,15,12149 | ||
,,,,,,,16,12219 | ||
,,,,,,,17,13410 | ||
,,,,,,,18,14539 | ||
,,,,,,,19,14454 | ||
,,,,,,,20,14012 | ||
,,,,,,,21,13494 | ||
,,,,,,,22,12772 | ||
,,,,,,,23,11877 | ||
,,,,,,,24,10874 |
2 changes: 2 additions & 0 deletions
2
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Energy_share_requirement.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
,Network_zones,ESR_1,ESR_2 | ||
NE,z1,0.259,0.348 |
26 changes: 26 additions & 0 deletions
26
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Fuels_data.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
Time_Index,NG,None,H2 | ||
0,0.05306,0,0 | ||
1,5.28,0,16 | ||
2,5.28,0,16 | ||
3,5.28,0,16 | ||
4,5.28,0,16 | ||
5,5.28,0,16 | ||
6,5.28,0,16 | ||
7,5.28,0,16 | ||
8,5.28,0,16 | ||
9,5.28,0,16 | ||
10,5.28,0,16 | ||
11,5.28,0,16 | ||
12,5.28,0,16 | ||
13,5.28,0,16 | ||
14,5.28,0,16 | ||
15,5.28,0,16 | ||
16,5.28,0,16 | ||
17,5.28,0,16 | ||
18,5.28,0,16 | ||
19,5.28,0,16 | ||
20,5.28,0,16 | ||
21,5.28,0,16 | ||
22,5.28,0,16 | ||
23,5.28,0,16 | ||
24,5.28,0,16 |
5 changes: 5 additions & 0 deletions
5
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Generators_data.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,MULTI_FUELS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,Num_Fuels,Fuel1,Heat_Rate1_MMBTU_per_MWh,Fuel1_Min_Cofire_Level,Fuel1_Max_Cofire_Level,Fuel1_Min_Cofire_Level_Start,Fuel1_Max_Cofire_Level_Start,Fuel2,Heat_Rate2_MMBTU_per_MWh,Fuel2_Min_Cofire_Level,Fuel2_Max_Cofire_Level,Fuel2_Min_Cofire_Level_Start,Fuel2_Max_Cofire_Level_Start | ||
natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,2,NG,7.43,0,1,0,1,H2,7.43,0.05,1,0.05,1 | ||
solar_pv,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,1,None,0,0,0,0,0,None,0,0,0,0,1 | ||
onshore_wind,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,1,None,0,0,0,0,1,None,0,0,0,0,1 | ||
battery,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,1,0,battery_mid,0.95,0,0,NE,0,1,None,0,0,0,0,0,None,0,0,0,0,1 |
25 changes: 25 additions & 0 deletions
25
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Generators_variability.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
Time_Index,natural_gas_combined_cycle,solar_pv,onshore_wind,battery | ||
1,1,0,0.889717042,1 | ||
2,1,0,0.877715468,1 | ||
3,1,0,0.903424203,1 | ||
4,1,0,0.895153165,1 | ||
5,1,0,0.757258117,1 | ||
6,1,0,0.630928695,1 | ||
7,1,0,0.557177782,1 | ||
8,1,0,0.6072492,1 | ||
9,1,0.1779,0.423417866,1 | ||
10,1,0.429,0.007470775,1 | ||
11,1,0.5748,0.002535942,1 | ||
12,1,0.6484,0.002153709,1 | ||
13,1,0.6208,0.00445132,1 | ||
14,1,0.596,0.007711587,1 | ||
15,1,0.5013,0.100848213,1 | ||
16,1,0.3311,0.201802149,1 | ||
17,1,0.0642,0.141933054,1 | ||
18,1,0,0.567022562,1 | ||
19,1,0,0.946024895,1 | ||
20,1,0,0.923394203,1 | ||
21,1,0,0.953386247,1 | ||
22,1,0,0.929205418,1 | ||
23,1,0,0.849528909,1 | ||
24,1,0,0.665570974,1 |
4 changes: 4 additions & 0 deletions
4
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Maximum_capacity_requirement.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
MaxCapReqConstraint,ConstraintDescription,Max_MW | ||
1,PV,50000 | ||
2,Wind,100000 | ||
3,Batteries,60000 |
4 changes: 4 additions & 0 deletions
4
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Minimum_capacity_requirement.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
MinCapReqConstraint,ConstraintDescription,Min_MW | ||
1,PV,5000 | ||
2,Wind,10000 | ||
3,Batteries,6000 |
15 changes: 15 additions & 0 deletions
15
Example_Systems/SmallNewEngland/OneZone_MultiFuels/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Small New England: One Zone with resources that can use multiple fuels | ||
|
||
**SmallNewEngland** is set of a simplified versions of the more detailed example system RealSystemExample. It is condensed for easy comprehension and quick testing of different components of the GenX. **SmallNewEngland/OneZone_MultiFules** is one of our most basic models, a 24-hour example with hourly resolution containing only one zone representing New England. The model includes only natural gas (cofiring with H2), solar PV, wind, and lithium-ion battery storage with no initial capacity. | ||
|
||
To run the model, first navigate to the example directory at `GenX/Example_Systems/SmallNewEngland/OneZone_MultiFuels`: | ||
|
||
`cd("Example_Systems/SmallNewEngland/OneZone_MultiFuels")` | ||
|
||
Next, ensure that your settings in `GenX_settings.yml` are correct. The default settings use the solver HiGHS (`Solver: HiGHS`). Other optional policies include minimum capacity requirements, a capacity reserve margin, and more. | ||
|
||
Once the settings are confirmed, run the model with the `Run.jl` script in the example directory: | ||
|
||
`include("Run.jl")` | ||
|
||
Once the model has completed, results will write to the `Results` directory. |
2 changes: 2 additions & 0 deletions
2
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Reserves.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Reg_Req_Percent_Demand,Reg_Req_Percent_VRE,Rsv_Req_Percent_Demand,Rsv_Req_Percent_VRE,Unmet_Rsv_Penalty_Dollar_per_MW,Dynamic_Contingency,Static_Contingency_MW | ||
0.01,0.0032,0.033,0.0795,1000,0,0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
using GenX | ||
|
||
run_genx_case!(dirname(@__FILE__)) |
11 changes: 11 additions & 0 deletions
11
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/cbc_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# CBC Solver Parameters | ||
# Common solver settings | ||
TimeLimit: 110000 # Solution timeout limit. For example, set_optimizer_attribute(model, "seconds", 60.0). | ||
|
||
#CBC-specific solver settings | ||
logLevel: 1 # Set to 1 to enable solution output. For example, set_optimizer_attribute(model, "logLevel", 1). | ||
maxSolutions: -1 # Terminate after this many feasible solutions have been found. For example, set_optimizer_attribute(model, "maxSolutions", 1). | ||
maxNodes: 2000 # Terminate after this many branch-and-bound nodes have been evaluated. For example, set_optimizer_attribute(model, "maxNodes", 1). | ||
allowableGap: 1 # Terminate after optimality gap is less than this value (on an absolute scale). For example, set_optimizer_attribute(model, "allowableGap", 0.05). | ||
ratioGap: 0.01 # Terminate after optimality gap is smaller than this relative fraction. For example, set_optimizer_attribute(model, "allowableGap", 0.05). | ||
threads: 2 # Set the number of threads to use for parallel branch & bound. For example, set_optimizer_attribute(model, "threads", 2) |
14 changes: 14 additions & 0 deletions
14
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/clp_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Clp Solver parameters https://github.com/jump-dev/Clp.jl | ||
# Common solver settings | ||
Feasib_Tol: 1e-5 # Primal/Dual feasibility tolerance | ||
TimeLimit: -1.0 # Terminate after this many seconds have passed. A negative value means no time limit | ||
Pre_Solve: 0 # Set to 1 to disable presolve | ||
Method: 5 # Solution method: dual simplex (0), primal simplex (1), sprint (2), barrier with crossover (3), barrier without crossover (4), automatic (5) | ||
|
||
#Clp-specific solver settings | ||
DualObjectiveLimit: 1e308 # When using dual simplex (where the objective is monotonically changing), terminate when the objective exceeds this limit | ||
MaximumIterations: 2147483647 # Terminate after performing this number of simplex iterations | ||
LogLevel: 1 # Set to 1, 2, 3, or 4 for increasing output. Set to 0 to disable output | ||
InfeasibleReturn: 0 # Set to 1 to return as soon as the problem is found to be infeasible (by default, an infeasibility proof is computed as well) | ||
Scaling: 3 # 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 dynamic(later) | ||
Perturbation: 100 # switch on perturbation (50), automatic (100), don't try perturbing (102) |
10 changes: 10 additions & 0 deletions
10
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/cplex_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# CPLEX Solver Parameters | ||
Feasib_Tol: 1.0e-05 # Constraint (primal) feasibility tolerances. | ||
Optimal_Tol: 1e-5 # Dual feasibility tolerances. | ||
Pre_Solve: 1 # Controls presolve level. | ||
TimeLimit: 110000 # Limits total time solver. | ||
MIPGap: 1e-3 # Relative (p.u. of optimal) mixed integer optimality tolerance for MIP problems (ignored otherwise). | ||
Method: 2 # Algorithm used to solve continuous models (including MIP root relaxation). | ||
BarConvTol: 1.0e-08 # Barrier convergence tolerance (determines when barrier terminates). | ||
NumericFocus: 0 # Numerical precision emphasis. | ||
SolutionType: 2 # Solution type for LP or QP. |
20 changes: 20 additions & 0 deletions
20
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/genx_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
OverwriteResults: 0 # Overwrite existing results in output folder or create a new one; 0 = create new folder; 1 = overwrite existing results | ||
PrintModel: 0 # Write the model formulation as an output; 0 = active; 1 = not active | ||
NetworkExpansion: 0 # Transmission network expansionl; 0 = not active; 1 = active systemwide | ||
Trans_Loss_Segments: 1 # Number of segments used in piecewise linear approximation of transmission losses; 1 = linear, >2 = piecewise quadratic | ||
Reserves: 0 # Regulation (primary) and operating (secondary) reserves; 0 = not active, 1 = active systemwide | ||
EnergyShareRequirement: 1 # Minimum qualifying renewables penetration; 0 = not active; 1 = active systemwide | ||
CapacityReserveMargin: 1 # Number of capacity reserve margin constraints; 0 = not active; 1 = active systemwide | ||
CO2Cap: 0 # CO2 emissions cap; 0 = not active (no CO2 emission limit); 1 = mass-based emission limit constraint; 2 = demand + rate-based emission limit constraint; 3 = generation + rate-based emission limit constraint | ||
StorageLosses: 1 # Energy Share Requirement and CO2 constraints account for energy lost; 0 = not active (DO NOT account for energy lost); 1 = active systemwide (DO account for energy lost) | ||
MinCapReq: 1 # Activate minimum technology carveout constraints; 0 = not active; 1 = active | ||
MaxCapReq: 1 # Activate maximum technology carveout constraints; 0 = not active; 1 = active | ||
ParameterScale: 1 # Turn on parameter scaling wherein load, capacity and power variables are defined in GW rather than MW. 0 = not active; 1 = active systemwide | ||
WriteShadowPrices: 1 # Write shadow prices of LP or relaxed MILP; 0 = not active; 1 = active | ||
UCommit: 2 # Unit committment of thermal power plants; 0 = not active; 1 = active using integer clestering; 2 = active using linearized clustering | ||
TimeDomainReductionFolder: "TDR_Results" # Directory name where results from time domain reduction will be saved. If results already exist here, these will be used without running time domain reduction script again. | ||
TimeDomainReduction: 0 # Time domain reduce (i.e. cluster) inputs based on Demand_data.csv, Generators_variability.csv, and Fuels_data.csv; 0 = not active (use input data as provided); 0 = active (cluster input data, or use data that has already been clustered) | ||
ModelingToGenerateAlternatives: 0 # Modeling to generate alternatives; 0 = not active; 1 = active. Note: produces a single solution as output | ||
ModelingtoGenerateAlternativeSlack: 0.1 # Slack value as a fraction of least-cost objective in budget constraint used for evaluating alternative model solutions; positive float value | ||
ModelingToGenerateAlternativeIterations: 3 # Number of MGA iterations with maximization and minimization objective | ||
MethodofMorris: 0 #Flag for turning on the Method of Morris analysis |
15 changes: 15 additions & 0 deletions
15
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/gurobi_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Gurobi Solver Parameters | ||
# Common solver settings | ||
Feasib_Tol: 1.0e-05 # Constraint (primal) feasibility tolerances. | ||
Optimal_Tol: 1e-5 # Dual feasibility tolerances. | ||
TimeLimit: 110000 # Limits total time solver. | ||
Pre_Solve: 1 # Controls presolve level. | ||
Method: 2 # Algorithm used to solve continuous models (including MIP root relaxation). | ||
|
||
#Gurobi-specific solver settings | ||
MIPGap: 1e-3 # Relative (p.u. of optimal) mixed integer optimality tolerance for MIP problems (ignored otherwise). | ||
BarConvTol: 1.0e-08 # Barrier convergence tolerance (determines when barrier terminates). | ||
NumericFocus: 0 # Numerical precision emphasis. | ||
Crossover: 0 # Barrier crossver strategy. | ||
PreDual: 0 # Decides whether presolve should pass the primal or dual linear programming problem to the LP optimization algorithm. | ||
AggFill: 10 # Allowed fill during presolve aggregation. |
13 changes: 13 additions & 0 deletions
13
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/highs_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# HiGHS Solver Parameters | ||
# Common solver settings | ||
Feasib_Tol: 1.0e-05 # Primal feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07] | ||
Optimal_Tol: 1.0e-05 # Dual feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07] | ||
TimeLimit: 1.0e23 # Time limit # [type: double, advanced: false, range: [0, inf], default: inf] | ||
Pre_Solve: choose # Presolve option: "off", "choose" or "on" # [type: string, advanced: false, default: "choose"] | ||
Method: choose #HiGHS-specific solver settings # Solver option: "simplex", "choose" or "ipm" # [type: string, advanced: false, default: "choose"] | ||
|
||
#highs-specific solver settings | ||
|
||
# run the crossover routine for ipx | ||
# [type: string, advanced: "on", range: {"off", "on"}, default: "off"] | ||
run_crossover: "on" |
5 changes: 5 additions & 0 deletions
5
Example_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/scip_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# SCIP Solver Parameters | ||
|
||
#SCIP-specific solver settings | ||
Dispverblevel: 0 | ||
limitsgap: 0.05 |
151 changes: 151 additions & 0 deletions
151
...le_Systems/SmallNewEngland/OneZone_MultiFuels/Settings/time_domain_reduction_settings.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
##### | ||
# | ||
# TIME DOMAIN REDUCTION SETTINGS | ||
# | ||
# Set parameters here that organize how your full timeseries | ||
# data will be divided into representative period clusters. | ||
# Ensure that time_domain_reduction is set to 1 in GenX_settings.yml | ||
# before running. Run within GenX or use PreCluster.jl to test and | ||
# examine representative period output before proceeding. | ||
# Specify your data input directory as inpath within Run_test.jl | ||
# or PreCluster.jl. | ||
# | ||
##### | ||
|
||
# - TimestepsPerRepPeriod | ||
# Typically 168 timesteps (e.g., hours) per period, this designates | ||
# the length of each representative period. | ||
TimestepsPerRepPeriod: 168 | ||
|
||
# - ClusterMethod | ||
# Either 'kmeans' or 'kmedoids', this designates the method used to cluster | ||
# periods and determine each point's representative period. | ||
ClusterMethod: 'kmeans' | ||
|
||
# - ScalingMethod | ||
# Either 'N' or 'S', this designates directs the module to normalize ([0,1]) | ||
# or standardize (mean 0, variance 1) the input data. | ||
ScalingMethod: "S" | ||
|
||
# - MaxPeriods | ||
# The maximum number of periods - both clustered periods and extreme periods - | ||
# that may be used to represent the input data. If IterativelyAddPeriods is on and the | ||
# error threshold is never met, this will be the total number of periods. | ||
MaxPeriods: 11 | ||
|
||
# - MinPeriods | ||
# The minimum number of periods used to represent the input data. If using | ||
# UseExtremePeriods, this must be at least the number of extreme periods requests. If | ||
# IterativelyAddPeriods if off, this will be the total number of periods. | ||
MinPeriods: 8 | ||
|
||
# - IterativelyAddPeriods | ||
# Either 'yes' or 'no', this designates whether or not to add periods | ||
# until the error threshold between input data and represented data is met or the maximum | ||
# number of periods is reached. | ||
IterativelyAddPeriods: 1 | ||
|
||
# - IterateMethod | ||
# Either 'cluster' or 'extreme', this designates whether to add clusters to | ||
# the kmeans/kmedoids method or to set aside the worst-fitting periods as a new extreme periods. | ||
# The default option is 'cluster'. | ||
IterateMethod: "cluster" | ||
|
||
# - Threshold | ||
# Iterative period addition will end if the period farthest (Euclidean Distance) | ||
# from its representative period is within this percentage of the total possible error (for normalization) | ||
# or ~95% of the total possible error (for standardization). E.g., for a threshold of 0.01, | ||
# every period must be within 1% of the spread of possible error before the clustering | ||
# iterations will terminate (or until the max number of periods is reached). | ||
Threshold: 0.05 | ||
|
||
# - nReps | ||
# The number of times to repeat each kmeans/kmedoids clustering at the same setting. | ||
nReps: 100 | ||
|
||
# - DemandWeight | ||
# Default 1, this is an optional multiplier on demand columns in order to prioritize | ||
# better fits for demand profiles over resource capacity factor profiles. | ||
DemandWeight: 1 | ||
|
||
# - WeightTotal | ||
# Default 8760, the sum to which the relative weights of representative periods will be scaled. | ||
WeightTotal: 8760 | ||
|
||
# - ClusterFuelPrices | ||
# Either 1 (yes) or 0 (no), this indicates whether or not to use the fuel price | ||
# time series in Fuels_data.csv in the clustering process. If 0, this function will still write | ||
# Fuels_data_clustered.csv with reshaped fuel prices based on the number and size of the | ||
# representative weeks, assuming a constant time series of fuel prices with length equal to the | ||
# number of timesteps in the raw input data. | ||
ClusterFuelPrices: 1 | ||
|
||
# - UseExtremePeriods | ||
# Either 'yes' or 'no', this designates whether or not to include | ||
# outliers (by performance or demand/resource extreme) as their own representative periods. | ||
# This setting automatically includes the periods with maximum demand, minimum solar cf and | ||
# minimum wind cf as extreme periods. | ||
UseExtremePeriods: 1 | ||
|
||
# - MultiStageConcatenate | ||
# (Only considered if MultiStage = 1 in genx_settings.yml) | ||
# If 1, this designates that the model should time domain reduce the input data | ||
# of all model stages together. Else if 0, the model will time domain reduce each | ||
# stage separately | ||
MultiStageConcatenate: 0 | ||
|
||
# STILL IN DEVELOPMENT - Currently just uses integral max demand, integral min PV and wind. | ||
# - ExtremePeriods | ||
# Use this to define which periods to be included among the final representative periods | ||
# as "Extreme Periods". | ||
# Select by profile type: demand ("Demand"), solar PV capacity factors ("PV"), and wind capacity factors ("Wind"). | ||
# Select whether to examine these profiles by zone ("Zone") or across the whole system ("System"). | ||
# Select whether to look for absolute max/min at the timestep level ("Absolute") | ||
# or max/min sum across the period ("Integral"). | ||
# Select whether you want the maximum ("Max") or minimum ("Min") (of the prior type) for each profile type. | ||
ExtremePeriods: | ||
Demand: | ||
Zone: | ||
Absolute: | ||
Max: 0 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 0 | ||
System: | ||
Absolute: | ||
Max: 1 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 0 | ||
PV: | ||
Zone: | ||
Absolute: | ||
Max: 0 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 1 | ||
System: | ||
Absolute: | ||
Max: 0 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 0 | ||
Wind: | ||
Zone: | ||
Absolute: | ||
Max: 0 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 1 | ||
System: | ||
Absolute: | ||
Max: 0 | ||
Min: 0 | ||
Integral: | ||
Max: 0 | ||
Min: 0 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sub_Weights
should be 8760 to better emulate a full year.