From ff78df1f89a81576a08639bff90500bba8bfb113 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 1 Jul 2024 14:03:32 +0000 Subject: [PATCH] build based on 32c618b --- dev/.documenter-siteinfo.json | 2 +- dev/GTEP/index.html | 2 +- dev/GTEP_inputs/index.html | 2 +- dev/PCM/index.html | 2 +- dev/PCM_inputs/index.html | 2 +- dev/hope_model_settings/index.html | 2 +- dev/index.html | 2 +- dev/installation/index.html | 2 +- dev/model_introduction/index.html | 2 +- dev/notation/index.html | 2 +- dev/objects.inv | Bin 722 -> 735 bytes dev/reference/index.html | 2 +- dev/run_case/index.html | 2 +- dev/search_index.js | 2 +- dev/solver_settings/index.html | 2 +- 15 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 31a4e05..b8dd875 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-06-30T05:56:57","documenter_version":"1.5.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-07-01T14:03:22","documenter_version":"1.5.0"}} \ No newline at end of file diff --git a/dev/GTEP/index.html b/dev/GTEP/index.html index 73e9e0d..7d5bd85 100644 --- a/dev/GTEP/index.html +++ b/dev/GTEP/index.html @@ -18,4 +18,4 @@ \end{aligned}\]

(27) Cap & Trade - State carbon allowance cap:

\[\sum_{g \in (\bigcup_{i \in I_{w}} G_{i}) \cap G^{F}} a_{g,t} - em_{w}^{emis} \le ALW_{t,w}; w \in W, t \in T\]

(28) Cap & Trade - Balance between allowances and emissions:

\[N_{t} \sum_{h \in H_{t}} EF_{g} \times p_{g,t,h} = a_{g,t} + b_{g,t-1} = b_{g,t}; g \in (\bigcup_{i \in I_{w}} G_{i}) \cap G_{F}, w \in W, t \in T\]

(29) Cap & Trade - No cross-year banking:

\[b_{g,1} = b_{g,end} = 0; g \in G_{F}\]

(30) Binary variables:

\[x_{g} = \{0,1 \}; \forall g \in G_{+} y_{l} = \{0,1 \}; \forall l \in L_{+} z_{s} = \{0,1 \}; \forall s \in S_{+}\]

(31) Nonnegative variable:

\[a_{g,t}, b_{g,t}, p_{g,t,h}, p_{d,t,h}^{LS}, c_{s,t,h}, dc_{s,t,h}, dr_{i,t,h}^{DR}, dr_{i,t,h}^{UP}, dr_{i,t,h}^{DN},soc_{s,t,h}, pt^{rps}, pw_{g,w}, pwi_{g,w,w'}, em^{emis} \\ -\ge 0\]

(32) Demand response (load shifting) constraints - 1:

\[dr_{i,t,h}^{DR} = DR_{i,t,h}^{REF} + dr_{i,t,h}^{UP} - dr_{i,t,h}^{DN}; \forall i \in I, h \in H\]

(33) Demand response (load shifting) constraints - 2:

\[\sum_{i=h}^{h+23} dr_{i,t,h}^{UP} = \sum_{i=h}^{h+23} dr_{i,t,h}^{DN}; \forall i \in I, h \in HD \text{{1, 25, 49, T-23}}\]

(34) Demand response (load shifting) constraints - 3:

\[DR_{i,t,h}^{REF} + dr_{i,t,h}^{UP} \le DR^{MAX}; \forall i \in I, h \in H\]

(35) Demand response (load shifting) constraints - 4:

\[dr_{i,t,h}^{DN} \le DR_{i,t,h}^{REF}; \forall i \in I, h \in H\]

+\ge 0\]

(32) Demand response (load shifting) constraints - 1:

\[dr_{i,t,h}^{DR} = DR_{i,t,h}^{REF} + dr_{i,t,h}^{UP} - dr_{i,t,h}^{DN}; \forall i \in I, h \in H\]

(33) Demand response (load shifting) constraints - 2:

\[\sum_{i=h}^{h+23} dr_{i,t,h}^{UP} = \sum_{i=h}^{h+23} dr_{i,t,h}^{DN}; \forall i \in I, h \in HD \text{{1, 25, 49, T-23}}\]

(34) Demand response (load shifting) constraints - 3:

\[DR_{i,t,h}^{REF} + dr_{i,t,h}^{UP} \le DR^{MAX}; \forall i \in I, h \in H\]

(35) Demand response (load shifting) constraints - 4:

\[dr_{i,t,h}^{DN} \le DR_{i,t,h}^{REF}; \forall i \in I, h \in H\]

diff --git a/dev/GTEP_inputs/index.html b/dev/GTEP_inputs/index.html index 58740de..de996d2 100644 --- a/dev/GTEP_inputs/index.html +++ b/dev/GTEP_inputs/index.html @@ -1,2 +1,2 @@ -GTEP Inputs · HOPE.jl

GTEP Inputs Explanation

The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used.

zonedata

This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).


Column NameDescription
Zone_idName of each zone (should be unique)
Demand (MW)Peak demand of the zone in MW
StateThe state that the zone is belonging to

gendata

This is the input dataset for existing generators.


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Flag_RET1 if the generator is eligible for retirement, and 0 otherwise
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
Cost (/MWh)Operating cost of the generator in /MWh
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator
AFThe avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)

gendata_candidate

This is the input dataset for candidate generators (a set of all generators that can be selected for installation).


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Cost (/MW/yr)Annualized investment cost for the generator in /MW/yr
Cost (/MWh)Operating cost of the generator in /MWh
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator
AFThe avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)

linedata

This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line

linedata_candidate

This is the input dataset for candidate transmission lines (a set of all inter-zonal lines that can be selected for installation).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line
Cost (M$)Investment cost for the generator in million dollars (M$)
XReactance of the line in P.U. (optional)

storagedata

This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower).


Column NameDescription
ZoneThe zone that the storage is belonging to
TypeThe technology type of the storage
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MWh)Operating cost of the storage in /MWh
EFThe CO2 emission factor for the storage in tons/MWh
CCThe capacity credit for the storage
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

storagedata_candidate

This is the input dataset for candidate energy storage units (a set of all storage units that can be selected for installation).


Column NameDescription
ZoneThe zone that the storage is belonging to
TypeThe technology type of the storage
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MW/yr)Annualized investment cost for the storage in /MW/yr
Cost (/MWh)Operating cost of the storage in /MWh
EFThe CO2 emission factor for the storage in tons/MWh
CCThe capacity credit for the storage
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

solartimeseriesregional

This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Solar power generation data in zone 1 on a specific period, day, and month
Zone 2Solar power generation data in zone 2 on a specific period, day, and month
......

windtimeseriesregional

This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Wind power generation data in zone 1 on a specific period, day, and month
Zone 2Wind power generation data in zone 2 on a specific period, day, and month
......

loadtimeseriesregional

This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Load data in zone 1 on a specific period, day, and month
Zone 2Load data in zone 2 on a specific period, day, and month
......
NINet load import on a specific period, day, and month

carbonpolicies

This is the input dataset for carbon policies.


Column NameDescription
StateName of the state
Time PeriodTime periods for carbon allowance (can be yearly or quarterly, set by users)
Allowance (tons)Carbon emission allowance for each state in tons

rpspolicies

This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.


Column NameDescription
From_stateState that trading the renewable credits from
To_stateState that trading the renewable credits to
RPSRPS requirement (renewable generation percentage) for the state in "From_state" column, range from 0-1, unitless

+GTEP Inputs · HOPE.jl

GTEP Inputs Explanation

The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used.

zonedata

This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).


Column NameDescription
Zone_idName of each zone (should be unique)
Demand (MW)Peak demand of the zone in MW
StateThe state that the zone is belonging to

gendata

This is the input dataset for existing generators.


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Flag_RET1 if the generator is eligible for retirement, and 0 otherwise
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
Cost (/MWh)Operating cost of the generator in /MWh
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator
AFThe avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)

gendata_candidate

This is the input dataset for candidate generators (a set of all generators that can be selected for installation).


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Cost (/MW/yr)Annualized investment cost for the generator in /MW/yr
Cost (/MWh)Operating cost of the generator in /MWh
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator
AFThe avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)

linedata

This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line

linedata_candidate

This is the input dataset for candidate transmission lines (a set of all inter-zonal lines that can be selected for installation).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line
Cost (M$)Investment cost for the generator in million dollars (M$)
XReactance of the line in P.U. (optional)

storagedata

This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower).


Column NameDescription
ZoneThe zone that the storage is belonging to
TypeThe technology type of the storage
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MWh)Operating cost of the storage in /MWh
EFThe CO2 emission factor for the storage in tons/MWh
CCThe capacity credit for the storage
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

storagedata_candidate

This is the input dataset for candidate energy storage units (a set of all storage units that can be selected for installation).


Column NameDescription
ZoneThe zone that the storage is belonging to
TypeThe technology type of the storage
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MW/yr)Annualized investment cost for the storage in /MW/yr
Cost (/MWh)Operating cost of the storage in /MWh
EFThe CO2 emission factor for the storage in tons/MWh
CCThe capacity credit for the storage
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

solartimeseriesregional

This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Solar power generation data in zone 1 on a specific period, day, and month
Zone 2Solar power generation data in zone 2 on a specific period, day, and month
......

windtimeseriesregional

This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Wind power generation data in zone 1 on a specific period, day, and month
Zone 2Wind power generation data in zone 2 on a specific period, day, and month
......

loadtimeseriesregional

This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Load data in zone 1 on a specific period, day, and month
Zone 2Load data in zone 2 on a specific period, day, and month
......
NINet load import on a specific period, day, and month

carbonpolicies

This is the input dataset for carbon policies.


Column NameDescription
StateName of the state
Time PeriodTime periods for carbon allowance (can be yearly or quarterly, set by users)
Allowance (tons)Carbon emission allowance for each state in tons

rpspolicies

This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.


Column NameDescription
From_stateState that trading the renewable credits from
To_stateState that trading the renewable credits to
RPSRPS requirement (renewable generation percentage) for the state in "From_state" column, range from 0-1, unitless

single parameters

This is the input dataset for some parameters that can be directly defined based on users' need. If not changed, they remain with default values.


Column NameDescription
VOLLValue of lost load, default = 100000
planningreservemarginpercentage of total capacity that is used for reserve, default = 0.02
Big M, unitless
PT_RPSPenalty of the state not satisfying RPS requirement, default = 10000000000000
PT_emisPenalty of the state not satisfying CO2 emission requirement, default = 10000000000000
InvbugtgenBudget for newly installed generators, default = 10000000000000000
InvbugtlineBudget for newly installed transmission lines, default = 10000000000000000
InvbugtstorageBudget for newly installed storages, default = 10000000000000000

diff --git a/dev/PCM/index.html b/dev/PCM/index.html index 30c1d9c..2f4c173 100644 --- a/dev/PCM/index.html +++ b/dev/PCM/index.html @@ -14,4 +14,4 @@ \ge \sum_{i \in I_{w},h \in H} \sum_{d \in D_{i}} p_{d,h} \times RPS_{w};\\ w \in W \end{aligned}\]

(18) Cap & Trade - State carbon allowance cap:

\[\sum_{g \in (\bigcup_{i \in I_{w}} G_{i}) \cap G^{F}} a+{g,t} - \sum_{t \in T} N_{t} em_{w,h}^{emis} \le ALW_{t,w}; w \in W\]

(19) Cap & Trade - Balance between allowances and emissions:

\[\sum_{h \in H} EF_{g} \times p_{g,h} = a_{g,t} + b_{g,t-1} = b_{g,t}; g \in (\bigcup_{i \in I_{w}} G_{i}) \cap G_{F}, w \in W, t \in T\]

(20) Cap & Trade - No cross-year banking:

\[b_{g,1} = b_{g,end} = 0; g \in G_{F}\]

(21) Nonnegative variable:

\[a_{g,t}, b_{g,t}, p_{g,h}, p_{d,h}^{LS}, c_{s,h}, soc_{s,h}, pt^{rps}, pw_{g,w}, pwi_{g,w,w'}, em^{emis} \\ -\ge 0\]

+\ge 0\]

diff --git a/dev/PCM_inputs/index.html b/dev/PCM_inputs/index.html index 8d4d2cd..7f5415b 100644 --- a/dev/PCM_inputs/index.html +++ b/dev/PCM_inputs/index.html @@ -1,2 +1,2 @@ -PCM Inputs · HOPE.jl

PCM Inputs Explanation

The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used.

zonedata

This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).


Column NameDescription
Zone_idName of each zone (should be unique)
Demand (MW)Peak demand of the zone in MW
StateThe state that the zone is belonging to
AreaThe area that the zone is belonging to

gendata

This is the input dataset for existing generators.


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
Flag_UC1 if the generator is eligible for unit commitment constraints, and 0 otherwise
Cost (/MWh)Operating cost of the generator in /MWh
Startupcost (/MW)Start up cost for UC generator in /MW
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)
FORForced outrage rate, unitless
RM_SPINSpinning reserve margin, unitless
RURamp up rate, unitless
RDRamp down rate, unitless
MindowntimeMinimum down time for turning off a generator, hour
MinuptimeMinimum up time for turning on a generator, hour

linedata

This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line

storagedata

This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower).


Column NameDescription
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MWh)Operating cost of the generator in /MWh
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

solartimeseriesregional

This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Solar power generation data in zone 1 on a specific period, day, and month
Zone 2Solar power generation data in zone 2 on a specific period, day, and month
......

windtimeseriesregional

This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Wind power generation data in zone 1 on a specific period, day, and month
Zone 2Wind power generation data in zone 2 on a specific period, day, and month
......

loadtimeseriesregional

This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Load data in zone 1 on a specific period, day, and month
Zone 2Load data in zone 2 on a specific period, day, and month
......
NINet load import on a specific period, day, and month

carbonpolicies

This is the input dataset for carbon policies.


Column NameDescription
StateName of the state
Time PeriodTime periods for carbon allowance (can be yearly or quarterly, set by users)
Allowance (tons)Carbon emission allowance for each state in tons

rpspolicies

This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.


Column NameDescription
From_stateState that trading the renewable credits from
To_stateState that trading the renewable credits to
RPSRPS requirement (renewable generation percentage) for the state in "From_state" column, range from 0-1, unitless

+PCM Inputs · HOPE.jl

PCM Inputs Explanation

The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used.

zonedata

This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).


Column NameDescription
Zone_idName of each zone (should be unique)
Demand (MW)Peak demand of the zone in MW
StateThe state that the zone is belonging to
AreaThe area that the zone is belonging to

gendata

This is the input dataset for existing generators.


Column NameDescription
Pmax (MW)Maximum generation (nameplate) capacity of the generator in MW
Pmin (MW)Minimum generation (nameplate) capacity of the generator in MW
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Flag_thermal1 if the generator belongs to thermal units, and 0 otherwise
Flag_VRE1 if the generator belongs to variable renewable energy units, and 0 otherwise
Flag_mustrun1 if the generator must run at its nameplate capacity, and 0 otherwise
Flag_UC1 if the generator is eligible for unit commitment constraints, and 0 otherwise
Cost (/MWh)Operating cost of the generator in /MWh
Startupcost (/MW)Start up cost for UC generator in /MW
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)
FORForced outrage rate, unitless
RM_SPINSpinning reserve margin, unitless
RURamp up rate, unitless
RDRamp down rate, unitless
MindowntimeMinimum down time for turning off a generator, hour
MinuptimeMinimum up time for turning on a generator, hour

linedata

This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).


Column NameDescription
From_zoneStarting zone of the inter-zonal transmission line
From_zoneEnding zone of the inter-zonal transmission line
Capacity (MW)Transmission capacity limit for the transmission line

storagedata

This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower).


Column NameDescription
ZoneThe zone that the generator is belonging to
TypeThe technology type of the generator
Capacity (MWh)Maximun energy capacity of the storage in MWh
Max Power (MW)Maximum energy rate (power capacity) of the storage in MW
Charging efficiencyRatio of how much energy is transferred from the charger to the storage unit
Discharging efficiencyRatio of how much energy is transferred from the storage unit to the charger
Cost (/MWh)Operating cost of the generator in /MWh
EFThe CO2 emission factor for the generator in tons/MWh
CCThe capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)
Charging RateThe maximum rates of charging, unitless
Discharging RateThe maximum rates of discharging, unitless

solartimeseriesregional

This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Solar power generation data in zone 1 on a specific period, day, and month
Zone 2Solar power generation data in zone 2 on a specific period, day, and month
......

windtimeseriesregional

This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Wind power generation data in zone 1 on a specific period, day, and month
Zone 2Wind power generation data in zone 2 on a specific period, day, and month
......

loadtimeseriesregional

This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.


Column NameDescription
MonthMonths of the year, ranging from 1 to 12
DayDays of the month, ranging from 1 to 31
PeriodHours of the day, ranging from 1 to 24
Zone 1Load data in zone 1 on a specific period, day, and month
Zone 2Load data in zone 2 on a specific period, day, and month
......
NINet load import on a specific period, day, and month

carbonpolicies

This is the input dataset for carbon policies.


Column NameDescription
StateName of the state
Time PeriodTime periods for carbon allowance (can be yearly or quarterly, set by users)
Allowance (tons)Carbon emission allowance for each state in tons

rpspolicies

This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.


Column NameDescription
From_stateState that trading the renewable credits from
To_stateState that trading the renewable credits to
RPSRPS requirement (renewable generation percentage) for the state in "From_state" column, range from 0-1, unitless

diff --git a/dev/hope_model_settings/index.html b/dev/hope_model_settings/index.html index 3f6662e..c53b785 100644 --- a/dev/hope_model_settings/index.html +++ b/dev/hope_model_settings/index.html @@ -1,2 +1,2 @@ -HOPE Settings · HOPE.jl

HOPE Model Settings Explanation

The Hope_model_settings.yml file configures system-level settings for running a HOPE case, including scenario settings (folder names), model mode settings, technology aggregation or not, using representative day or 8760 hourly time steps, integer or continuous for decision investment decisions, periods for setting representative days, planning reserve margin, value of loss of load, solver, debug flag, etc.

There are two columns: 1) the first column contains the names of setting parameters; 2) the second column contains the setting values. The explanation for setting parameters is also provided in the Hope_model_settings.yml file.


Parameter NameParameter Value (examples)Description
DataCase:Data_100RPS/#String, the folder name of data, default Data/ GTEP example: Data_100RPS/; PCM example: Data_PCM2035/
model_mode:GTEP#String, HOPE model mode: GTEP or PCM or ...
aggregated!:1#Binary, 1 aggregate technology resource; 0 Does Not
representative_day!:1#Binary, 1 use representative days (need to set time_periods); 0 Does Not
inv_dcs_bin:0#Binary, 1 use integer variable for investment decisions; 0 Does Not
time_periods:1 : (3, 20, 6, 20) <br> 2 : (6, 21, 9, 21) <br> 3 : (9, 22, 12, 20) <br> 4 : (12, 21, 3, 19)# 1: spring, March 20th to June 20th; <br> # 2: summer, June 21st to September 21st; <br> # 3: fall, September 22nd to December 20th; <br> # 4: winter, December 21st to March 19th.
planning_reserve_margin:0.02#Float, planningreservemargin
value_of_loss_of_load:100000#Float, value of loss of load d, /MWh
solver:cbc#String, solver: cbc, glpk, cplex, gurobi, etc.
debug:0#Binary, flag for turning on the Method of Debug, 0 = not active; 1 = active conflict method (works for gurobi and cplex); 2 = active penalty method

+HOPE Settings · HOPE.jl

HOPE Model Settings Explanation

The Hope_model_settings.yml file configures system-level settings for running a HOPE case, including scenario settings (folder names), model mode settings, technology aggregation or not, using representative day or 8760 hourly time steps, integer or continuous for decision investment decisions, periods for setting representative days, planning reserve margin, value of loss of load, solver, debug flag, etc.

There are two columns: 1) the first column contains the names of setting parameters; 2) the second column contains the setting values. The explanation for setting parameters is also provided in the Hope_model_settings.yml file.


Parameter NameParameter Value (examples)Description
DataCase:Data_100RPS/#String, the folder name of data, default Data/ GTEP example: Data_100RPS/; PCM example: Data_PCM2035/
model_mode:GTEP#String, HOPE model mode: GTEP or PCM or ...
aggregated!:1#Binary, 1 aggregate technology resource; 0 Does Not
representative_day!:1#Binary, 1 use representative days (need to set time_periods); 0 Does Not
inv_dcs_bin:0#Binary, 1 use integer variable for investment decisions; 0 Does Not
time_periods:1 : (3, 20, 6, 20) <br> 2 : (6, 21, 9, 21) <br> 3 : (9, 22, 12, 20) <br> 4 : (12, 21, 3, 19)# 1: spring, March 20th to June 20th; <br> # 2: summer, June 21st to September 21st; <br> # 3: fall, September 22nd to December 20th; <br> # 4: winter, December 21st to March 19th.
planning_reserve_margin:0.02#Float, planningreservemargin
value_of_loss_of_load:100000#Float, value of loss of load d, /MWh
solver:cbc#String, solver: cbc, glpk, cplex, gurobi, etc.
debug:0#Binary, flag for turning on the Method of Debug, 0 = not active; 1 = active conflict method (works for gurobi and cplex); 2 = active penalty method

diff --git a/dev/index.html b/dev/index.html index 8518707..80b037a 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Introduction · HOPE.jl

HOPE Documentation

Overview

The Holistic Optimization Program for Electricity (HOPE) model is a transparent and open-source tool for evaluating electric sector transition pathways and policy scenarios regarding power system planning, system operation, optimal power flow, and market designs. It is a highly configurable and modulized tool coded in the Julia language and optimization package JuMP. The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:

  1. GTEP mode: a generation & transmission expansion planning model
  2. PCM mode: a production cost model
  3. OPF mode: (under development): an optimal power flow model
  4. DART mode: (under development): a bilevel market model for simulating day-head and real-time markets

Users can select the proper mode of HOPE based on their research needs. Each mode is modeled as linear or mixed-integer linear programming and can be solved with open-source (e.g., Cbc, GLPK, Clp, etc.) or commercial (e.g., Groubi and CPLEX) solver packages.

Contributors

The HOPE model was originally developed by a team of researchers in Prof. Benjamin F. Hobbs's group at Johns Hopkins University. The main developers of the current HOPE version include Dr. Shen Wang, Dr. Mahdi Mehrtash, and Zoe Song.

+Introduction · HOPE.jl

HOPE Documentation

Overview

The Holistic Optimization Program for Electricity (HOPE) model is a transparent and open-source tool for evaluating electric sector transition pathways and policy scenarios regarding power system planning, system operation, optimal power flow, and market designs. It is a highly configurable and modulized tool coded in the Julia language and optimization package JuMP. The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:

  1. GTEP mode: a generation & transmission expansion planning model
  2. PCM mode: a production cost model
  3. OPF mode: (under development): an optimal power flow model
  4. DART mode: (under development): a bilevel market model for simulating day-head and real-time markets

Users can select the proper mode of HOPE based on their research needs. Each mode is modeled as linear or mixed-integer linear programming and can be solved with open-source (e.g., Cbc, GLPK, Clp, etc.) or commercial (e.g., Groubi and CPLEX) solver packages.

Contributors

The HOPE model was originally developed by a team of researchers in Prof. Benjamin F. Hobbs's group at Johns Hopkins University. The main developers of the current HOPE version include Dr. Shen Wang, Dr. Mahdi Mehrtash, and Zoe Song.

diff --git a/dev/installation/index.html b/dev/installation/index.html index e8fa92b..68f2747 100644 --- a/dev/installation/index.html +++ b/dev/installation/index.html @@ -1,2 +1,2 @@ -Installation · HOPE.jl

Installation

1. Install Julia

Install Julia language. A short video tutorial on how to download and install Julia is provided here.

2. Download HOPE repository

Clone or download the HOPE repository to your local directory - click the green "Code" button on the HOPE main page and choose "Download ZIP" (remember to change the folder name to HOPE after you decompress the zip file). You need to save the HOPE project in your home directory like: /yourpath/home/HOPE. image

3. Solver Packages

The open-source solver packages (e.g., Cbc, GLPK, Clp, etc.) will be automatically installed in step 2. While the commercial solver packages (e.g., Groubi and CPLEX) should be installed by users (if needed) by following their instructions.

pkg> add https://github.com/swang22/HOPE.jl
+Installation · HOPE.jl

Installation

1. Install Julia

Install Julia language. A short video tutorial on how to download and install Julia is provided here.

2. Download HOPE repository

Clone or download the HOPE repository to your local directory - click the green "Code" button on the HOPE main page and choose "Download ZIP" (remember to change the folder name to HOPE after you decompress the zip file). You need to save the HOPE project in your home directory like: /yourpath/home/HOPE. image

3. Solver Packages

The open-source solver packages (e.g., Cbc, GLPK, Clp, etc.) will be automatically installed in step 2. While the commercial solver packages (e.g., Groubi and CPLEX) should be installed by users (if needed) by following their instructions.

pkg> add https://github.com/swang22/HOPE.jl
diff --git a/dev/model_introduction/index.html b/dev/model_introduction/index.html index 058c1c8..554870a 100644 --- a/dev/model_introduction/index.html +++ b/dev/model_introduction/index.html @@ -1,2 +1,2 @@ -Model Introduction · HOPE.jl

Model Overview

The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:

  1. GTEP mode: a generation & transmission expansion planning model
  2. PCM mode: a production cost model
  3. OPF mode: (under development): an optimal power flow model
  4. DART mode: (under development): a bilevel market model for simulating day-head and real-time markets
+Model Introduction · HOPE.jl

Model Overview

The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:

  1. GTEP mode: a generation & transmission expansion planning model
  2. PCM mode: a production cost model
  3. OPF mode: (under development): an optimal power flow model
  4. DART mode: (under development): a bilevel market model for simulating day-head and real-time markets
diff --git a/dev/notation/index.html b/dev/notation/index.html index 74f9f6c..ec70015 100644 --- a/dev/notation/index.html +++ b/dev/notation/index.html @@ -1,2 +1,2 @@ -Notation · HOPE.jl

Nomenclature

Sets and Indices


NotationDescription
$D$Set of demand, index $d$
$G$Set of all types of generating units, index $g$
$H$Set of hours, index $h$
$K$Set of technology types, index $k$
$T$Set of time periods (e.g., representative days of seasons), index $t$
$S$Set of storage units, index $s$
$I,J$Set of zones, index $i,j$
$L$Set of transmission corridors, index $l$
$W$Set of states, index $w/w’$

Subsets


NotationDescription
$D_{i}$Set of demand connected to zone $i$, a subset of $D$
$G^{PV}$, $G^{W}$, $G^{F}$Set of solar, wind, and dispatchable generators, respectively, subsets of $G$
$G^{RPS}$Set of generators could provide RPS credits, subsets of $G$
$G^{L}_{l}$Set of generators linked to line $i$, subset of $G$
$G_{i}$Set of generating units connected to zone $i$, subset of $G$
$G^{E}/G^{+}$Set of existing/candidate generation units, index $g$, subset of $G$
$H_{t}$Set of hours in time period (day) $t$, index $h$, subset of $H$
$S^{E}/S^{+}$Set of existing/candidate storage units, subset of $S$
$S_{i}$Set of storage units connected to zone $i$, subset of $S$
$L^{E}/L^{+}$Set of existing/candidate transmission corridors
$LS_{l}/LR_{l}$Set of sending/receiving corridors for zone $i$, subset of $L$
$WIR_{w}$Set of states that state w can import renewable credits from (includes $w$ itself), subset of $W$
$WER_{w}$Set of states that state w can export renewable credits to (excludes $w$ itself), subset of $W$

Parameters


NotationDescription
$ALW_{t,w}$Total carbon allowance in time period $t$ in state $w$, ton
$AFRE_{g,h,i}$Availability factor of renewable energy source $g$ in hour $h$ in zone $i$, $g \in G^{PV} \bigcup G^{W}$
$CC_{g/s}$Capacity credit of resource $g/s$, unitless
$CP_{g}$Carbon price of generation $g \in\ G^{F}$, M/t
$DR_{i,t,h}^{ref}$Reference demand of demand response aggregator in time-period $t$ in hour $h$, MW
$DR_{i}^{MAX}$Maximum capacity limit for demand consumption of DR aggregator in zone $i$, MW
$DRC$Cost of demand response, unitless
$EF_{g}$Carbon emission factor of generator $g$, t/MWh
$ELMT_{w}$Carbon emission limits at state $w, t$
$F^{max}_{l}$Maximum capacity of transmission corridor/line $l$, MW
$\tilde{I}_{g}$Investment cost of candidate generator $g$, M$
$\tilde{I}_{l}$Investment cost of transmission line $l$, M$
$\tilde{I}_{s}$Investment cost of storage unit $s$, M$
$IBG$Total investment budget for generators
$IBL$Total investment budget for transmission lines
$IBS$Total investment budget for storages
$N_{t}$Number of time periods (days) represented by time period (day) $t$ per year, /sum{t /in T} N{t}
$NI_{i.h}$Net interchange in zone $i$ in hour $h, MWh
$P_{d,h}$Active power demand, MW
$PK$Peak power demand, MW
$PT^{rps}$RPS volitation penalty, /MWh
$PT^{emis}$Carbon emission volitation penalty, /t
$P_{g}^{min}/P_{g}^{max}$Minimum/Maximum power generation of unit $g$, MW
$RPS_{w}$Renewable portfolio standard in state $w$, %, unitless
$RM$Planning reserve margin, unitless
$SCAP_{s}$Maximum capacity of storage unit $s$, MW
$SECAP_{s}$Maximum energy capacity of storage unit $s$, MWh
$SC_{s}/SD_{s}$The maximum rates of charging/discharging, unitless
$VCG_{g}$Variable cost of generation unit $g$, / MWh
$VCS_{g}$Variable (degradation) cost of storage unit $s$, / MWh
$VOLL_{d}$Value of loss of load $d$, /MWh
$\epsilon_{ch}$Charging efficiency of storage unit $s$, unitless
$\epsilon_{dis}$Discharging efficiency of storage unit $s$, unitless

Variables


NotationDescription
$a_{g,t}$Bidding carbon allowance of unit $g$ in time period $t$, ton
$b_{g,t}$Banking of allowance of g in time period $t$, ton
$dr_{i,t,h}^{UP/DN}$Upwards/downwards demand change relative to reference demand during $h$ in time period $t$ in zone $i$, MW
$dr_{i,t,h}^{DR}$Demand from DR aggregator during $h$ in time period $t$ in zone $i$, MW
$p_{g,t,h}$Active power generation of unit $g$ in time period $t$ hour $h$, MW
$pw_{g,w}$Total renewable generation of unit $g$ in state $w$, MWh
$p^{LS}_{d,t,h}$Load shedding of demand $d$ in time period $t$ in hour $h$, MW
$pt^{rps}_{w}$Amount of active power violated RPS policy in state $w$, MW
$pwi_{g,w,w'}$State $w$ imported renewable credits of from state $w'$ annually, MWh
$f_{l,t,h}$Active power of generator $g$ through transmission corridor/line $l$ in time period $t$ and hour $h$, MW
$em^{emis}_{w}$Carbon emission violated emission limit in state $w$, ton
$x_{g}$Decision variable for candidate generator $g$, binary
$y_{l}$Decision variable for candidate line $l$, binary
$z_{s}$Decision variable for candidate storage $s$, binary
$soc_{s,t,h}$State of charge level of storage $s$ in time period $t$ in hour $h$, MWh
$c_{s,t,h}$Charging power of storage $s$ from grid in time period $t$ in hour $h$, MW
$dc_{s,t,h}$Discharging power of storage $s$ from grid in time period $t$ in hour $h$, MW

+Notation · HOPE.jl

Nomenclature

Sets and Indices


NotationDescription
$D$Set of demand, index $d$
$G$Set of all types of generating units, index $g$
$H$Set of hours, index $h$
$K$Set of technology types, index $k$
$T$Set of time periods (e.g., representative days of seasons), index $t$
$S$Set of storage units, index $s$
$I,J$Set of zones, index $i,j$
$L$Set of transmission corridors, index $l$
$W$Set of states, index $w/w’$

Subsets


NotationDescription
$D_{i}$Set of demand connected to zone $i$, a subset of $D$
$G^{PV}$, $G^{W}$, $G^{F}$Set of solar, wind, and dispatchable generators, respectively, subsets of $G$
$G^{RPS}$Set of generators could provide RPS credits, subsets of $G$
$G^{L}_{l}$Set of generators linked to line $i$, subset of $G$
$G_{i}$Set of generating units connected to zone $i$, subset of $G$
$G^{E}/G^{+}$Set of existing/candidate generation units, index $g$, subset of $G$
$H_{t}$Set of hours in time period (day) $t$, index $h$, subset of $H$
$S^{E}/S^{+}$Set of existing/candidate storage units, subset of $S$
$S_{i}$Set of storage units connected to zone $i$, subset of $S$
$L^{E}/L^{+}$Set of existing/candidate transmission corridors
$LS_{l}/LR_{l}$Set of sending/receiving corridors for zone $i$, subset of $L$
$WIR_{w}$Set of states that state w can import renewable credits from (includes $w$ itself), subset of $W$
$WER_{w}$Set of states that state w can export renewable credits to (excludes $w$ itself), subset of $W$

Parameters


NotationDescription
$ALW_{t,w}$Total carbon allowance in time period $t$ in state $w$, ton
$AFRE_{g,h,i}$Availability factor of renewable energy source $g$ in hour $h$ in zone $i$, $g \in G^{PV} \bigcup G^{W}$
$CC_{g/s}$Capacity credit of resource $g/s$, unitless
$CP_{g}$Carbon price of generation $g \in\ G^{F}$, M/t
$DR_{i,t,h}^{ref}$Reference demand of demand response aggregator in time-period $t$ in hour $h$, MW
$DR_{i}^{MAX}$Maximum capacity limit for demand consumption of DR aggregator in zone $i$, MW
$DRC$Cost of demand response, unitless
$EF_{g}$Carbon emission factor of generator $g$, t/MWh
$ELMT_{w}$Carbon emission limits at state $w, t$
$F^{max}_{l}$Maximum capacity of transmission corridor/line $l$, MW
$\tilde{I}_{g}$Investment cost of candidate generator $g$, M$
$\tilde{I}_{l}$Investment cost of transmission line $l$, M$
$\tilde{I}_{s}$Investment cost of storage unit $s$, M$
$IBG$Total investment budget for generators
$IBL$Total investment budget for transmission lines
$IBS$Total investment budget for storages
$N_{t}$Number of time periods (days) represented by time period (day) $t$ per year, /sum{t /in T} N{t}
$NI_{i.h}$Net interchange in zone $i$ in hour $h, MWh
$P_{d,h}$Active power demand, MW
$PK$Peak power demand, MW
$PT^{rps}$RPS volitation penalty, /MWh
$PT^{emis}$Carbon emission volitation penalty, /t
$P_{g}^{min}/P_{g}^{max}$Minimum/Maximum power generation of unit $g$, MW
$RPS_{w}$Renewable portfolio standard in state $w$, %, unitless
$RM$Planning reserve margin, unitless
$SCAP_{s}$Maximum capacity of storage unit $s$, MW
$SECAP_{s}$Maximum energy capacity of storage unit $s$, MWh
$SC_{s}/SD_{s}$The maximum rates of charging/discharging, unitless
$VCG_{g}$Variable cost of generation unit $g$, / MWh
$VCS_{g}$Variable (degradation) cost of storage unit $s$, / MWh
$VOLL_{d}$Value of loss of load $d$, /MWh
$\epsilon_{ch}$Charging efficiency of storage unit $s$, unitless
$\epsilon_{dis}$Discharging efficiency of storage unit $s$, unitless

Variables


NotationDescription
$a_{g,t}$Bidding carbon allowance of unit $g$ in time period $t$, ton
$b_{g,t}$Banking of allowance of g in time period $t$, ton
$dr_{i,t,h}^{UP/DN}$Upwards/downwards demand change relative to reference demand during $h$ in time period $t$ in zone $i$, MW
$dr_{i,t,h}^{DR}$Demand from DR aggregator during $h$ in time period $t$ in zone $i$, MW
$p_{g,t,h}$Active power generation of unit $g$ in time period $t$ hour $h$, MW
$pw_{g,w}$Total renewable generation of unit $g$ in state $w$, MWh
$p^{LS}_{d,t,h}$Load shedding of demand $d$ in time period $t$ in hour $h$, MW
$pt^{rps}_{w}$Amount of active power violated RPS policy in state $w$, MW
$pwi_{g,w,w'}$State $w$ imported renewable credits of from state $w'$ annually, MWh
$f_{l,t,h}$Active power of generator $g$ through transmission corridor/line $l$ in time period $t$ and hour $h$, MW
$em^{emis}_{w}$Carbon emission violated emission limit in state $w$, ton
$x_{g}$Decision variable for candidate generator $g$, binary
$y_{l}$Decision variable for candidate line $l$, binary
$z_{s}$Decision variable for candidate storage $s$, binary
$soc_{s,t,h}$State of charge level of storage $s$ in time period $t$ in hour $h$, MWh
$c_{s,t,h}$Charging power of storage $s$ from grid in time period $t$ in hour $h$, MW
$dc_{s,t,h}$Discharging power of storage $s$ from grid in time period $t$ in hour $h$, MW

diff --git a/dev/objects.inv b/dev/objects.inv index b724cf79dd6f055219003bd626bee7da4c11858c..53f9a55b2e9ea6f9ec5e91bf0fd7fc594df8d5d3 100644 GIT binary patch delta 604 zcmV-i0;B!X1>Xgbj(=h$ecAS!MO!Dejhe1|jEF%Q8ivT=rv3Iiz{J?Gv-Kr1=l}0G z{&yx)bMXS!@h{wzK<5BA+SP_PrISVzsjXv5F~7)FdAvZRTamia+mcz4%Tug?heiVf z|4b^wh1$w&yBs-xTfnW4^$XO-ofVg21>Chy2!Fq1y}Zre;Ii;P0m1zb zjk80t4aWpnk6-vaBl0d9vL^9wa}e8jL@S(=df%f)UKjBFe!YTCyCl}AXHk#RgI5J? zLZD->XEcWBnw5XpUPN569ojqW?z{JJJxeK)p8S%Uo1>+T74?8VH5noE2d0C_(H(>jyP znyz$cGtvX2do}Ncep4Mj@K3h}R5p*jz5VFWucmC!HaC(6(J);-30cgLIcjAXry)Zv z4#rCK^!4(*EM}0vn70E7dSfYCfJfu998O-|KCc8+LVv3yO6s?@5-%Id=n`j)Djs5-h9?wtRahOtjJ*&6Sy(W!{(?{R9Lr8xFej$DD5F(yj{d1AF>J9WuO zN`6}0m_BVvWT`VWGv>pCC{2Y;=YoHnvgZPSwfK}}xLSOMAciOgXL4tIn-Q;5f*x4S zD&fxVkySxEqZ&FjSxUcfcypQJG#wRg){R2 delta 591 zcmV-V0=l}0G z|L=^Y;^GC2+EmPlR32j`Jah^e zxO>uQF6xa;wo8%IrzPCFSYDvg_N2HNE8(ucBi|mEt5o9FrGLMY)#5gNg3HofJc9f0 zJ8Q;d9}Wqy9=C9LCgelZXN}_DdM`HN6^*b~s$E7+JTBq;{b~v8eo2h3pG7-Kj~8d`Ux6Mw^yA1s4}Aa}YEs=@-hR^<4x_XtyBtZuPf&Md={6qk560@8kZrgtWq zb-vQE%}9@o&T8HX^`<&p;Gb@dsAL|qz1`^0ue$2cHan39Q9oUogv<+M4yx9SQ=g#~ zdu=3o`g(a@<^@DB(+CzFy{L3=s<(bbY&*3XLga|5p?3ytlN+YV>hoP0yk==H0y dqM?tXZKPs#?%4Se48{c*BAh!&{sLRqqyH&8Ew}&x diff --git a/dev/reference/index.html b/dev/reference/index.html index 9958a79..766f999 100644 --- a/dev/reference/index.html +++ b/dev/reference/index.html @@ -1,2 +1,2 @@ -- · HOPE.jl
+- · HOPE.jl
diff --git a/dev/run_case/index.html b/dev/run_case/index.html index 9feccc1..0974686 100644 --- a/dev/run_case/index.html +++ b/dev/run_case/index.html @@ -1,2 +1,2 @@ -Run a case · HOPE.jl

Run a Case in HOPE

Using VScode to Run a Case (Recommended)

Install Visual Studio Code: Download VScode and install it. A short video tutorial on how to install VScode and add Julia to it can be found here.

(1) Open the VScode, click the 'File' tab, select 'Open Folder...', and navigate to your home working directory:/yourpath/home (The home directory in the examples below is named Maryland-Electric-Sector-Transition).

(2) In the VScode TERMINAL, type Julia and press the "Enter" button. Julia will be opened as below:

image

(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory) or activate yourpath/home/HOPE (if you are not in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully.

image

(4) Type instantiate in the (HOPE) pkg prompt (make sure you are in your home directory, not the home/HOPE directory!).

(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)

image

(6) If there is no error in the above processes, the HOPE model has been successfully installed! Then, press Backspace button to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope("HOPE/ModelCases/MD_Excel_case/"), you will see the HOPE is running:

image

The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output.

image

(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6.

Using System Terminal to Run a Case

You can use a system terminal either with a "Windows system" or a "Mac system" to run a test case. See details below.

Windows users

(1) Open Command Prompt from Windows Start and navigate to your home path:/yourpath/home.

(2) Type julia. Julia will be opened as below:

image

(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully.

(4) Type instantiate in the (HOPE) pkg prompt. ( After the HOPE is successfully installed, you can skip this step)

(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)

image

(6) If there is no error in the above processes, the HOPE model has been successfully installed. Then, click Backspace to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope("HOPE/ModelCases/MD_Excel_case/"), you will see the HOPE is running:

image

The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output.

image

(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6.

+Run a case · HOPE.jl

Run a Case in HOPE

Using VScode to Run a Case (Recommended)

Install Visual Studio Code: Download VScode and install it. A short video tutorial on how to install VScode and add Julia to it can be found here.

(1) Open the VScode, click the 'File' tab, select 'Open Folder...', and navigate to your home working directory:/yourpath/home (The home directory in the examples below is named Maryland-Electric-Sector-Transition).

(2) In the VScode TERMINAL, type Julia and press the "Enter" button. Julia will be opened as below:

image

(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory) or activate yourpath/home/HOPE (if you are not in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully.

image

(4) Type instantiate in the (HOPE) pkg prompt (make sure you are in your home directory, not the home/HOPE directory!).

(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)

image

(6) If there is no error in the above processes, the HOPE model has been successfully installed! Then, press Backspace button to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope("HOPE/ModelCases/MD_Excel_case/"), you will see the HOPE is running:

image

The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output.

image

(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6.

Using System Terminal to Run a Case

You can use a system terminal either with a "Windows system" or a "Mac system" to run a test case. See details below.

Windows users

(1) Open Command Prompt from Windows Start and navigate to your home path:/yourpath/home.

(2) Type julia. Julia will be opened as below:

image

(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully.

(4) Type instantiate in the (HOPE) pkg prompt. ( After the HOPE is successfully installed, you can skip this step)

(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)

image

(6) If there is no error in the above processes, the HOPE model has been successfully installed. Then, click Backspace to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope("HOPE/ModelCases/MD_Excel_case/"), you will see the HOPE is running:

image

The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output.

image

(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6.

diff --git a/dev/search_index.js b/dev/search_index.js index 983563e..3f913c7 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"PCM_inputs/#PCM-Inputs-Explanation","page":"PCM Inputs","title":"PCM Inputs Explanation","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used. ","category":"page"},{"location":"PCM_inputs/#zonedata","page":"PCM Inputs","title":"zonedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nZone_id Name of each zone (should be unique)\nDemand (MW) Peak demand of the zone in MW\nState The state that the zone is belonging to\nArea The area that the zone is belonging to","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#gendata","page":"PCM Inputs","title":"gendata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing generators. ","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nFlag_UC 1 if the generator is eligible for unit commitment constraints, and 0 otherwise\nCost (/MWh) Operating cost of the generator in /MWh\nStartupcost (/MW) Start up cost for UC generator in /MW\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)\nFOR Forced outrage rate, unitless\nRM_SPIN Spinning reserve margin, unitless\nRU Ramp up rate, unitless\nRD Ramp down rate, unitless\nMindowntime Minimum down time for turning off a generator, hour\nMinuptime Minimum up time for turning on a generator, hour","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#linedata","page":"PCM Inputs","title":"linedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#storagedata","page":"PCM Inputs","title":"storagedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower). ","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nZone The zone that the generator is belonging to\nType The technology type of the generator\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MWh) Operating cost of the generator in /MWh\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#solar*timeseries*regional","page":"PCM Inputs","title":"solartimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Solar power generation data in zone 1 on a specific period, day, and month\nZone 2 Solar power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#wind*timeseries*regional","page":"PCM Inputs","title":"windtimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Wind power generation data in zone 1 on a specific period, day, and month\nZone 2 Wind power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#load*timeseries*regional","page":"PCM Inputs","title":"loadtimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Load data in zone 1 on a specific period, day, and month\nZone 2 Load data in zone 2 on a specific period, day, and month\n... ...\nNI Net load import on a specific period, day, and month","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#carbonpolicies","page":"PCM Inputs","title":"carbonpolicies","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for carbon policies.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nState Name of the state\nTime Period Time periods for carbon allowance (can be yearly or quarterly, set by users)\nAllowance (tons) Carbon emission allowance for each state in tons","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#rpspolicies","page":"PCM Inputs","title":"rpspolicies","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nFrom_state State that trading the renewable credits from\nTo_state State that trading the renewable credits to\nRPS RPS requirement (renewable generation percentage) for the state in \"From_state\" column, range from 0-1, unitless","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#GTEP-Inputs-Explanation","page":"GTEP Inputs","title":"GTEP Inputs Explanation","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used. ","category":"page"},{"location":"GTEP_inputs/#zonedata","page":"GTEP Inputs","title":"zonedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone_id Name of each zone (should be unique)\nDemand (MW) Peak demand of the zone in MW\nState The state that the zone is belonging to","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#gendata","page":"GTEP Inputs","title":"gendata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing generators. ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nFlag_RET 1 if the generator is eligible for retirement, and 0 otherwise\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nCost (/MWh) Operating cost of the generator in /MWh\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator\nAF The avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#gendata_candidate","page":"GTEP Inputs","title":"gendata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate generators (a set of all generators that can be selected for installation). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nCost (/MW/yr) Annualized investment cost for the generator in /MW/yr\nCost (/MWh) Operating cost of the generator in /MWh\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator\nAF The avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#linedata","page":"GTEP Inputs","title":"linedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#linedata_candidate","page":"GTEP Inputs","title":"linedata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate transmission lines (a set of all inter-zonal lines that can be selected for installation).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line\nCost (M$) Investment cost for the generator in million dollars (M$)\nX Reactance of the line in P.U. (optional)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#storagedata","page":"GTEP Inputs","title":"storagedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone The zone that the storage is belonging to\nType The technology type of the storage\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MWh) Operating cost of the storage in /MWh\nEF The CO2 emission factor for the storage in tons/MWh\nCC The capacity credit for the storage\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#storagedata_candidate","page":"GTEP Inputs","title":"storagedata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate energy storage units (a set of all storage units that can be selected for installation). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone The zone that the storage is belonging to\nType The technology type of the storage\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MW/yr) Annualized investment cost for the storage in /MW/yr\nCost (/MWh) Operating cost of the storage in /MWh\nEF The CO2 emission factor for the storage in tons/MWh\nCC The capacity credit for the storage\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#solar*timeseries*regional","page":"GTEP Inputs","title":"solartimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Solar power generation data in zone 1 on a specific period, day, and month\nZone 2 Solar power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#wind*timeseries*regional","page":"GTEP Inputs","title":"windtimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Wind power generation data in zone 1 on a specific period, day, and month\nZone 2 Wind power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#load*timeseries*regional","page":"GTEP Inputs","title":"loadtimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Load data in zone 1 on a specific period, day, and month\nZone 2 Load data in zone 2 on a specific period, day, and month\n... ...\nNI Net load import on a specific period, day, and month","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#carbonpolicies","page":"GTEP Inputs","title":"carbonpolicies","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for carbon policies.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nState Name of the state\nTime Period Time periods for carbon allowance (can be yearly or quarterly, set by users)\nAllowance (tons) Carbon emission allowance for each state in tons","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#rpspolicies","page":"GTEP Inputs","title":"rpspolicies","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_state State that trading the renewable credits from\nTo_state State that trading the renewable credits to\nRPS RPS requirement (renewable generation percentage) for the state in \"From_state\" column, range from 0-1, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"solver_settings/","page":"Solver Settings","title":"Solver Settings","text":"CurrentModule = HOPE","category":"page"},{"location":"solver_settings/#Solver-Settings-Explanation","page":"Solver Settings","title":"Solver Settings Explanation","text":"","category":"section"},{"location":"solver_settings/","page":"Solver Settings","title":"Solver Settings","text":"The HOPE model can use multiple solvers to solve optimization problems. The solver parameters are saved in the following yml files: cbc_settings.yml, clp_settings.yml, cplex_settings.yml, gurobi_settings.yml, highs_settings.yml, scip_settings.yml, etc. In general, users do not need to modify these files. Each solver may have its own different settings parameters, if one wants to modify these parameters, it would be better to check the corresponding solver's documentation.","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"CurrentModule = HOPE","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/#1.-Install-Julia","page":"Installation","title":"1. Install Julia","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"Install Julia language. A short video tutorial on how to download and install Julia is provided here.","category":"page"},{"location":"installation/#2.-Download-HOPE-repository","page":"Installation","title":"2. Download HOPE repository","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"Clone or download the HOPE repository to your local directory - click the green \"Code\" button on the HOPE main page and choose \"Download ZIP\" (remember to change the folder name to HOPE after you decompress the zip file). You need to save the HOPE project in your home directory like: /yourpath/home/HOPE. (Image: image)","category":"page"},{"location":"installation/#3.-Solver-Packages","page":"Installation","title":"3. Solver Packages","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"The open-source solver packages (e.g., Cbc, GLPK, Clp, etc.) will be automatically installed in step 2. While the commercial solver packages (e.g., Groubi and CPLEX) should be installed by users (if needed) by following their instructions. ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"pkg> add https://github.com/swang22/HOPE.jl","category":"page"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"CurrentModule = HOPE","category":"page"},{"location":"model_introduction/#Model-Overview","page":"Model Introduction","title":"Model Overview","text":"","category":"section"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:","category":"page"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"GTEP mode: a generation & transmission expansion planning model\nPCM mode: a production cost model\nOPF mode: (under development): an optimal power flow model\nDART mode: (under development): a bilevel market model for simulating day-head and real-time markets","category":"page"},{"location":"GTEP/#Overview","page":"GTEP","title":"Overview","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"The generation and transmission expansion planning (GTEP) model is for investment decision analysis under various policies and energy transition scenarios. This model is a Mixed-Integer Linear Programming (MILP) Problem.","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"The objective of this model is to minimize total system costs, including fixed investment costs, variable operation costs, and penalties for non-compliance with policies. The techno-economic and environmental constraints of this model are budget constraints, power balance, transmission transfer limits, generator operation constraints, storage operation constraints, resource adequacy requirements, and policy constraints (i.e., renewable portfolio standards (RPS) and carbon emission limitations). The decision variables of this model include integer decision variables for investment in resources and continuous decision variables for operations in representative days.","category":"page"},{"location":"GTEP/#Problem-Formulation","page":"GTEP","title":"Problem Formulation","text":"","category":"section"},{"location":"GTEP/#Objective-function","page":"GTEP","title":"Objective function","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(1) Minimize total system cost:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"beginaligned\n min_Gamma quad\n sum_g in G^+ tildeI_g times x_g + sum_g in G t in TVCG_g times N_t times sum_h in H_tp_gth + \n sum_l in L^+ tildeI_l times y_l + \n sum_s in S^+ tildeI_s times z_s + sum_s in S t in T VCS times N_t times sum_h in H_t (c_sth + dc_sth) + \n sum_d in D t in T VOLL_d times N_t times sum_h in H_t p_dth^LS + \n PT^rps times sum_w in W pt_w^rps + \n PT^emis times sum_w in W em_w^emis + \n sum_t in T DRC times N_t sum_i in I h in H_t (dr_ith^UP + dr_ith^DN)\nendaligned","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"Gamma = Bigl x_g y_l z_s f_lh p_gth p_dth^LS c_sth dc_sth dr_ith^DR dr_ith^UP dr_ith^DN soc_sth pt^rps pw_gw pwi_gww em^emis_w a_gt b_gt Bigr","category":"page"},{"location":"GTEP/#Constraints","page":"GTEP","title":"Constraints","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(2) Generator investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_+ tildeI_g times x_g le IBG","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(3) Transmission line investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_l in L_+ tildeI_l times y_l le IBL","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(4) Storage investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_s in S_+ tildeI_s times z_s le IBS","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(5) Power balance:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_i P_gth + sum_s in S_i (dc_sth - c_sth) - sum_l in LS_i f_lth \n+ sum_l in LR_i f_lth = sum_d in D_i (P_dth - P_dth^LS) forall i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(6) Transmission power flow limit for existing transmission lines:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"- F_l^max le f_glth le F_l^max forall g in G l in L^E h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(7) Transmission power flow limit for new installed transmission lines:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"- y_l times F_l^max le f_glth le y_l times F_l^max forall g in G l in L^+ h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(8) Maximum capacity limits for existing power generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth le P_g^max forall g in G_E h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(9) Maximum capacity limits for installed power generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth le P_g^max times x_g forall g in G_+ h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(10) Load shedding limit:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth^LS le P_gth forall d in D_i i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(11) Renewables generation availability for the existing plants:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"p_gh le AFRE_gthi times P_g^max forall g in G_E cap G_i cap (G^PV cup G^W) i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(12) Renewables generation availability for new installed plants:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"p_gh le AFRE_gthi times P_g^max times x_g forall g in G_+ cap G_i cap (G^PV cup G^W) i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(13) Storage charging rate limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracc_sthSC_s le SCAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(14) Storage discharging rate limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracdc_sthSD_s le SCAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(15) Storage charging rate limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracc_sthSC_s le z_s times SCAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(16) Storage discharging rate limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracdc_sthSD_s le z_s times SCAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(17) State of charge limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le soc_sth le SECAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(18) State of charge limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le soc_sth le z_s times SECAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(19) Storage operation constraints:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_sth = soc_sth-1 + epsilon_ch times c_sth - fracdc_sthepsilon_dis forall h in H_t t in T s in S","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(20) Daily 50% of storage level balancing for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_s1 = soc_send = 05 times SCAP_s s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(21) Daily 50% of storage level balancing for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_st1 = soc_stend = 05 times z_s SCAP_s s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(22) Resource adequacy:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_E (CC_g times P_g^max) + sum_g in G_+ (CC_g times P_g^max times x_g) \n+ sum_s in S^E(CC_s times SCAP_s) + sum_s in S^E(CC_s times SCAP_s times z_s) ge (1 + RM) times PK","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(23) RPS policy - State total renewable energy generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw = sum_t in T N_t times sum_h in H_t p+gth forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(24) RPS policy - State renewable credits export limitation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw ge sum_w in WER_w pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(25) RPS policy - State renewable credits import limitation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw ge pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W w in WIR_w","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(26) RPS policy - Renewable credits trading meets state RPS requirements:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"beginaligned\nsum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WIR_w pwi_gww\n- sum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WER_w pwi_gww + pt_w^rps \nge sum_t in T N_t times sum_i in I_wh in H_t sum_d in D_i p_dth times RPS_w\nw in W\nendaligned","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(27) Cap & Trade - State carbon allowance cap:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in (bigcup_i in I_w G_i) cap G^F a_gt - em_w^emis le ALW_tw w in W t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(28) Cap & Trade - Balance between allowances and emissions:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"N_t sum_h in H_t EF_g times p_gth = a_gt + b_gt-1 = b_gt g in (bigcup_i in I_w G_i) cap G_F w in W t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(29) Cap & Trade - No cross-year banking:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"b_g1 = b_gend = 0 g in G_F","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(30) Binary variables:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"x_g = 01 forall g in G_+\ny_l = 01 forall l in L_+\nz_s = 01 forall s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(31) Nonnegative variable:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"a_gt b_gt p_gth p_dth^LS c_sth dc_sth dr_ith^DR dr_ith^UP dr_ith^DNsoc_sth pt^rps pw_gw pwi_gww em^emis \nge 0","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(32) Demand response (load shifting) constraints - 1:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"dr_ith^DR = DR_ith^REF + dr_ith^UP - dr_ith^DN forall i in I h in H","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(33) Demand response (load shifting) constraints - 2:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_i=h^h+23 dr_ith^UP = sum_i=h^h+23 dr_ith^DN forall i in I h in HD text1 25 49 T-23","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(34) Demand response (load shifting) constraints - 3:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"DR_ith^REF + dr_ith^UP le DR^MAX forall i in I h in H","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(35) Demand response (load shifting) constraints - 4:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"dr_ith^DN le DR_ith^REF forall i in I h in H","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"CurrentModule = HOPE","category":"page"},{"location":"hope_model_settings/#HOPE-Model-Settings-Explanation","page":"HOPE Settings","title":"HOPE Model Settings Explanation","text":"","category":"section"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"The Hope_model_settings.yml file configures system-level settings for running a HOPE case, including scenario settings (folder names), model mode settings, technology aggregation or not, using representative day or 8760 hourly time steps, integer or continuous for decision investment decisions, periods for setting representative days, planning reserve margin, value of loss of load, solver, debug flag, etc. ","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"There are two columns: 1) the first column contains the names of setting parameters; 2) the second column contains the setting values. The explanation for setting parameters is also provided in the Hope_model_settings.yml file. ","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"Parameter Name Parameter Value (examples) Description\nDataCase: Data_100RPS/ #String, the folder name of data, default Data/ GTEP example: Data_100RPS/; PCM example: Data_PCM2035/\nmodel_mode: GTEP #String, HOPE model mode: GTEP or PCM or ...\naggregated!: 1 #Binary, 1 aggregate technology resource; 0 Does Not\nrepresentative_day!: 1 #Binary, 1 use representative days (need to set time_periods); 0 Does Not\ninv_dcs_bin: 0 #Binary, 1 use integer variable for investment decisions; 0 Does Not\ntime_periods: 1 : (3, 20, 6, 20)
2 : (6, 21, 9, 21)
3 : (9, 22, 12, 20)
4 : (12, 21, 3, 19) # 1: spring, March 20th to June 20th;
# 2: summer, June 21st to September 21st;
# 3: fall, September 22nd to December 20th;
# 4: winter, December 21st to March 19th.\nplanning_reserve_margin: 0.02 #Float, planningreservemargin\nvalue_of_loss_of_load: 100000 #Float, value of loss of load d, /MWh\nsolver: cbc #String, solver: cbc, glpk, cplex, gurobi, etc.\ndebug: 0 #Binary, flag for turning on the Method of Debug, 0 = not active; 1 = active conflict method (works for gurobi and cplex); 2 = active penalty method","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"","category":"page"},{"location":"PCM/#Overview","page":"PCM","title":"Overview","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"The production cost model (PCM) is for system operation analysis under various policies and energy transition scenarios. This model is a Linear Programming Problem.","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"The objective of this model is to minimize the system's (given by the planning model) total cost, including variable operation costs and penalties for non-compliance with policies. The constraints of this model are power balance, transmission transfer limit, generator operation constraints, storage operation constraints, resource adequacy requirements, and policy constraints (i.e., renewable portfolio standards (RPS) and carbon emission limitations).  The continuous decision variables of the PCM model are hourly operations of resources for a target year.","category":"page"},{"location":"PCM/#Problem-Formulation","page":"PCM","title":"Problem Formulation","text":"","category":"section"},{"location":"PCM/#Objective-function","page":"PCM","title":"Objective function","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(1) Minimize total system cost:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"beginaligned\n min_Gamma quad\n sum_g in G t in TVCG_g times N_t times sum_h in Hp_gh + \n sum_s in S t in T VCS times sum_h in H (c_sh + dc_sh) + \n sum_d in D t in T VOLL_d times sum_h in H p_dh^LS + \n sum_g in G^F t in T CP_g times sum_h in H p_gh + \n sum_w in W h in H PT^rps times pt_wh^rps + \n sum_t in T sum_w in W h in H PT^emis times em_wh^emis\nendaligned","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"Gamma = Bigl a_gt b_gt f_lh p_gh p_dh^LS c_sh dc_sh soc_sh pt_h^rps em^emis_h r_gh^G r_gh^S Bigr","category":"page"},{"location":"PCM/#Constraints","page":"PCM","title":"Constraints","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(2) Power balance:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_g in G_i P_gh + sum_s in S_i (dc_sh - c_sh) - sum_l in LS_i f_lh \n= sum_d in D_i (P_dh - P_dh^LS) forall i in I h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(3) Transmission:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"- F_l^max le f_lh le F_l^max forall l in L h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(4) Operation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"P_g^min le p_gh + r_gh^G le (1 - FOR_g) times P_g^max forall g in G","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(5) Spinning reserve limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"r_gh^G le RM_g^SPIN times (1 - FOR_g) times P_g^max forall g in G^F","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(6) Ramp limits - 1:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(p_gh + r_gh^G) - p_g h-1 le RU_g times (1 - FOR_g) times P_g^max forall g in G^F h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(7) Ramp limits - 2:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(p_gh + r_gh^G) - p_g h-1 ge -RU_g times (1 - FOR_g) times P_g^max forall g in G^F h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(8) Load shedding limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"0 le p_dh^LS le P_d forall d in D","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(9) Renewables generation availability:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"p_gh le AFRE_ghi times P_g^max forall h in H g in G_PV cup G^W) i in I","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(10) Storage charging rate limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"fracc_shSC_s le SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(11) Storage discharging rate limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"fracdc_shSD_s le SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(12) Storage operation limit - 1:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"0 le soc_sh le SECAP_s forall h in H s in S","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(13) Storage operation limit - 2:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"dc_sh + r_sh^S le SD_s times SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(14) Storage operation limit - 3:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"soc_sh = soc_sh-1 + epsilon_ch times c_sth - fracdc_sthepsilon_dis forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(15) RPS policy - State renewable credits export limitation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"pw_gw ge sum_w in WER_w pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(16) RPS policy - State renewable credits import limitation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"pw_gw ge pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W w in WIR_w","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(17) RPS policy - Renewable credits trading meets state RPS requirements:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"beginaligned\nsum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WIR_w pwi_gww\n- sum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WER_w pwi_gww + sum_w in W h in H pt_wh^rps \nge sum_i in I_wh in H sum_d in D_i p_dh times RPS_w\nw in W\nendaligned","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(18) Cap & Trade - State carbon allowance cap:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_g in (bigcup_i in I_w G_i) cap G^F a+gt - sum_t in T N_t em_wh^emis le ALW_tw w in W","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(19) Cap & Trade - Balance between allowances and emissions:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_h in H EF_g times p_gh = a_gt + b_gt-1 = b_gt g in (bigcup_i in I_w G_i) cap G_F w in W t in T","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(20) Cap & Trade - No cross-year banking:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"b_g1 = b_gend = 0 g in G_F","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(21) Nonnegative variable:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"a_gt b_gt p_gh p_dh^LS c_sh soc_sh pt^rps pw_gw pwi_gww em^emis \nge 0","category":"page"},{"location":"reference/","page":"-","title":"-","text":"CurrentModule = HOPE","category":"page"},{"location":"reference/","page":"-","title":"-","text":"","category":"page"},{"location":"reference/","page":"-","title":"-","text":"Modules = [HOPE]","category":"page"},{"location":"#HOPE-Documentation","page":"Introduction","title":"HOPE Documentation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"CurrentModule = HOPE","category":"page"},{"location":"#Overview","page":"Introduction","title":"Overview","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The Holistic Optimization Program for Electricity (HOPE) model is a transparent and open-source tool for evaluating electric sector transition pathways and policy scenarios regarding power system planning, system operation, optimal power flow, and market designs. It is a highly configurable and modulized tool coded in the Julia language and optimization package JuMP. The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"GTEP mode: a generation & transmission expansion planning model\nPCM mode: a production cost model\nOPF mode: (under development): an optimal power flow model\nDART mode: (under development): a bilevel market model for simulating day-head and real-time markets","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Users can select the proper mode of HOPE based on their research needs. Each mode is modeled as linear or mixed-integer linear programming and can be solved with open-source (e.g., Cbc, GLPK, Clp, etc.) or commercial (e.g., Groubi and CPLEX) solver packages.","category":"page"},{"location":"#Contributors","page":"Introduction","title":"Contributors","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The HOPE model was originally developed by a team of researchers in Prof. Benjamin F. Hobbs's group at Johns Hopkins University. The main developers of the current HOPE version include Dr. Shen Wang, Dr. Mahdi Mehrtash, and Zoe Song.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"CurrentModule = HOPE","category":"page"},{"location":"run_case/#Run-a-Case-in-HOPE","page":"Run a case","title":"Run a Case in HOPE","text":"","category":"section"},{"location":"run_case/#Using-VScode-to-Run-a-Case-(Recommended)","page":"Run a case","title":"Using VScode to Run a Case (Recommended)","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"Install Visual Studio Code: Download VScode and install it. A short video tutorial on how to install VScode and add Julia to it can be found here.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(1) Open the VScode, click the 'File' tab, select 'Open Folder...', and navigate to your home working directory:/yourpath/home (The home directory in the examples below is named Maryland-Electric-Sector-Transition). ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(2) In the VScode TERMINAL, type Julia and press the \"Enter\" button. Julia will be opened as below:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory) or activate yourpath/home/HOPE (if you are not in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(4) Type instantiate in the (HOPE) pkg prompt (make sure you are in your home directory, not the home/HOPE directory!).","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(6) If there is no error in the above processes, the HOPE model has been successfully installed! Then, press Backspace button to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope(\"HOPE/ModelCases/MD_Excel_case/\"), you will see the HOPE is running:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6. ","category":"page"},{"location":"run_case/#Using-System-Terminal-to-Run-a-Case","page":"Run a case","title":"Using System Terminal to Run a Case","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"You can use a system terminal either with a \"Windows system\" or a \"Mac system\" to run a test case. See details below.","category":"page"},{"location":"run_case/#Windows-users","page":"Run a case","title":"Windows users","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(1) Open Command Prompt from Windows Start and navigate to your home path:/yourpath/home.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(2) Type julia. Julia will be opened as below:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(4) Type instantiate in the (HOPE) pkg prompt. ( After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(6) If there is no error in the above processes, the HOPE model has been successfully installed. Then, click Backspace to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope(\"HOPE/ModelCases/MD_Excel_case/\"), you will see the HOPE is running:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6. ","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"CurrentModule = HOPE","category":"page"},{"location":"notation/#Nomenclature","page":"Notation","title":"Nomenclature","text":"","category":"section"},{"location":"notation/#Sets-and-Indices","page":"Notation","title":"Sets and Indices","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nD Set of demand, index d\nG Set of all types of generating units, index g\nH Set of hours, index h\nK Set of technology types, index k\nT Set of time periods (e.g., representative days of seasons), index t\nS Set of storage units, index s\nIJ Set of zones, index ij\nL Set of transmission corridors, index l\nW Set of states, index ww","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Subsets","page":"Notation","title":"Subsets","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nD_i Set of demand connected to zone i, a subset of D\nG^PV, G^W, G^F Set of solar, wind, and dispatchable generators, respectively, subsets of G\nG^RPS Set of generators could provide RPS credits, subsets of G\nG^L_l Set of generators linked to line i, subset of G\nG_i Set of generating units connected to zone i, subset of G\nG^EG^+ Set of existing/candidate generation units, index g, subset of G\nH_t Set of hours in time period (day) t, index h, subset of H\nS^ES^+ Set of existing/candidate storage units, subset of S\nS_i Set of storage units connected to zone i, subset of S\nL^EL^+ Set of existing/candidate transmission corridors\nLS_lLR_l Set of sending/receiving corridors for zone i, subset of L\nWIR_w Set of states that state w can import renewable credits from (includes w itself), subset of W\nWER_w Set of states that state w can export renewable credits to (excludes w itself), subset of W","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Parameters","page":"Notation","title":"Parameters","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nALW_tw Total carbon allowance in time period t in state w, ton\nAFRE_ghi Availability factor of renewable energy source g in hour h in zone i, g in G^PV bigcup G^W\nCC_gs Capacity credit of resource gs, unitless\nCP_g Carbon price of generation g in G^F, M/t\nDR_ith^ref Reference demand of demand response aggregator in time-period t in hour h, MW\nDR_i^MAX Maximum capacity limit for demand consumption of DR aggregator in zone i, MW\nDRC Cost of demand response, unitless\nEF_g Carbon emission factor of generator g, t/MWh\nELMT_w Carbon emission limits at state w t\nF^max_l Maximum capacity of transmission corridor/line l, MW\ntildeI_g Investment cost of candidate generator g, M$\ntildeI_l Investment cost of transmission line l, M$\ntildeI_s Investment cost of storage unit s, M$\nIBG Total investment budget for generators\nIBL Total investment budget for transmission lines\nIBS Total investment budget for storages\nN_t Number of time periods (days) represented by time period (day) t per year, /sum{t /in T} N{t}\nNI_ih Net interchange in zone i in hour $h, MWh\nP_dh Active power demand, MW\nPK Peak power demand, MW\nPT^rps RPS volitation penalty, /MWh\nPT^emis Carbon emission volitation penalty, /t\nP_g^minP_g^max Minimum/Maximum power generation of unit g, MW\nRPS_w Renewable portfolio standard in state w, %, unitless\nRM Planning reserve margin, unitless\nSCAP_s Maximum capacity of storage unit s, MW\nSECAP_s Maximum energy capacity of storage unit s, MWh\nSC_sSD_s The maximum rates of charging/discharging, unitless\nVCG_g Variable cost of generation unit g, / MWh\nVCS_g Variable (degradation) cost of storage unit s, / MWh\nVOLL_d Value of loss of load d, /MWh\nepsilon_ch Charging efficiency of storage unit s, unitless\nepsilon_dis Discharging efficiency of storage unit s, unitless","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Variables","page":"Notation","title":"Variables","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\na_gt Bidding carbon allowance of unit g in time period t, ton\nb_gt Banking of allowance of g in time period t, ton\ndr_ith^UPDN Upwards/downwards demand change relative to reference demand during h in time period t in zone i, MW\ndr_ith^DR Demand from DR aggregator during h in time period t in zone i, MW\np_gth Active power generation of unit g in time period t hour h, MW\npw_gw Total renewable generation of unit g in state w, MWh\np^LS_dth Load shedding of demand d in time period t in hour h, MW\npt^rps_w Amount of active power violated RPS policy in state w, MW\npwi_gww State w imported renewable credits of from state w annually, MWh\nf_lth Active power of generator g through transmission corridor/line l in time period t and hour h, MW\nem^emis_w Carbon emission violated emission limit in state w, ton\nx_g Decision variable for candidate generator g, binary\ny_l Decision variable for candidate line l, binary\nz_s Decision variable for candidate storage s, binary\nsoc_sth State of charge level of storage s in time period t in hour h, MWh\nc_sth Charging power of storage s from grid in time period t in hour h, MW\ndc_sth Discharging power of storage s from grid in time period t in hour h, MW","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"}] +[{"location":"PCM_inputs/#PCM-Inputs-Explanation","page":"PCM Inputs","title":"PCM Inputs Explanation","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used. ","category":"page"},{"location":"PCM_inputs/#zonedata","page":"PCM Inputs","title":"zonedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nZone_id Name of each zone (should be unique)\nDemand (MW) Peak demand of the zone in MW\nState The state that the zone is belonging to\nArea The area that the zone is belonging to","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#gendata","page":"PCM Inputs","title":"gendata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing generators. ","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nFlag_UC 1 if the generator is eligible for unit commitment constraints, and 0 otherwise\nCost (/MWh) Operating cost of the generator in /MWh\nStartupcost (/MW) Start up cost for UC generator in /MW\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)\nFOR Forced outrage rate, unitless\nRM_SPIN Spinning reserve margin, unitless\nRU Ramp up rate, unitless\nRD Ramp down rate, unitless\nMindowntime Minimum down time for turning off a generator, hour\nMinuptime Minimum up time for turning on a generator, hour","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#linedata","page":"PCM Inputs","title":"linedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#storagedata","page":"PCM Inputs","title":"storagedata","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower). ","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nZone The zone that the generator is belonging to\nType The technology type of the generator\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MWh) Operating cost of the generator in /MWh\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator (it is the fraction of the installed/nameplate capacity of a generator that can be relied upon at a given time)\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#solar*timeseries*regional","page":"PCM Inputs","title":"solartimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Solar power generation data in zone 1 on a specific period, day, and month\nZone 2 Solar power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#wind*timeseries*regional","page":"PCM Inputs","title":"windtimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Wind power generation data in zone 1 on a specific period, day, and month\nZone 2 Wind power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#load*timeseries*regional","page":"PCM Inputs","title":"loadtimeseriesregional","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Load data in zone 1 on a specific period, day, and month\nZone 2 Load data in zone 2 on a specific period, day, and month\n... ...\nNI Net load import on a specific period, day, and month","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#carbonpolicies","page":"PCM Inputs","title":"carbonpolicies","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for carbon policies.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nState Name of the state\nTime Period Time periods for carbon allowance (can be yearly or quarterly, set by users)\nAllowance (tons) Carbon emission allowance for each state in tons","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/#rpspolicies","page":"PCM Inputs","title":"rpspolicies","text":"","category":"section"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"Column Name Description\nFrom_state State that trading the renewable credits from\nTo_state State that trading the renewable credits to\nRPS RPS requirement (renewable generation percentage) for the state in \"From_state\" column, range from 0-1, unitless","category":"page"},{"location":"PCM_inputs/","page":"PCM Inputs","title":"PCM Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#GTEP-Inputs-Explanation","page":"GTEP Inputs","title":"GTEP Inputs Explanation","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"The input files for the HOPE model could be one big .XLSX file or multiple .csv files. If you use the XLSX file, each spreadsheet in the file needs to be prepared based on the input instructions below and the spreadsheet names should be carefully checked. If you use the csv files, each csv file will represent one spreadsheet from the XLSX file. If both XLSX file and csv files are provided, the XLSX files will be used. ","category":"page"},{"location":"GTEP_inputs/#zonedata","page":"GTEP Inputs","title":"zonedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for zone-relevant information (e.g., demand, mapping with state, etc.).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone_id Name of each zone (should be unique)\nDemand (MW) Peak demand of the zone in MW\nState The state that the zone is belonging to","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#gendata","page":"GTEP Inputs","title":"gendata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing generators. ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nFlag_RET 1 if the generator is eligible for retirement, and 0 otherwise\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nCost (/MWh) Operating cost of the generator in /MWh\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator\nAF The avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#gendata_candidate","page":"GTEP Inputs","title":"gendata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate generators (a set of all generators that can be selected for installation). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nPmax (MW) Maximum generation (nameplate) capacity of the generator in MW\nPmin (MW) Minimum generation (nameplate) capacity of the generator in MW\nZone The zone that the generator is belonging to\nType The technology type of the generator\nCost (/MW/yr) Annualized investment cost for the generator in /MW/yr\nCost (/MWh) Operating cost of the generator in /MWh\nFlag_thermal 1 if the generator belongs to thermal units, and 0 otherwise\nFlag_VRE 1 if the generator belongs to variable renewable energy units, and 0 otherwise\nFlag_mustrun 1 if the generator must run at its nameplate capacity, and 0 otherwise\nEF The CO2 emission factor for the generator in tons/MWh\nCC The capacity credit for the generator\nAF The avaliability factor for the generator (it is the fraction of the installed/nameplate capacity of a generator, default = 1)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#linedata","page":"GTEP Inputs","title":"linedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing transmission lines (e.g., transmission capacity limit for each inter-zonal transmission line).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#linedata_candidate","page":"GTEP Inputs","title":"linedata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate transmission lines (a set of all inter-zonal lines that can be selected for installation).","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_zone Starting zone of the inter-zonal transmission line\nFrom_zone Ending zone of the inter-zonal transmission line\nCapacity (MW) Transmission capacity limit for the transmission line\nCost (M$) Investment cost for the generator in million dollars (M$)\nX Reactance of the line in P.U. (optional)","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#storagedata","page":"GTEP Inputs","title":"storagedata","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for existing energy storage units (e.g., battery storage and pumped storage hydropower). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone The zone that the storage is belonging to\nType The technology type of the storage\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MWh) Operating cost of the storage in /MWh\nEF The CO2 emission factor for the storage in tons/MWh\nCC The capacity credit for the storage\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#storagedata_candidate","page":"GTEP Inputs","title":"storagedata_candidate","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for candidate energy storage units (a set of all storage units that can be selected for installation). ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nZone The zone that the storage is belonging to\nType The technology type of the storage\nCapacity (MWh) Maximun energy capacity of the storage in MWh\nMax Power (MW) Maximum energy rate (power capacity) of the storage in MW\nCharging efficiency Ratio of how much energy is transferred from the charger to the storage unit\nDischarging efficiency Ratio of how much energy is transferred from the storage unit to the charger\nCost (/MW/yr) Annualized investment cost for the storage in /MW/yr\nCost (/MWh) Operating cost of the storage in /MWh\nEF The CO2 emission factor for the storage in tons/MWh\nCC The capacity credit for the storage\nCharging Rate The maximum rates of charging, unitless\nDischarging Rate The maximum rates of discharging, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#solar*timeseries*regional","page":"GTEP Inputs","title":"solartimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly solar PV generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Solar power generation data in zone 1 on a specific period, day, and month\nZone 2 Solar power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#wind*timeseries*regional","page":"GTEP Inputs","title":"windtimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly wind generation profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Wind power generation data in zone 1 on a specific period, day, and month\nZone 2 Wind power generation data in zone 2 on a specific period, day, and month\n... ...","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#load*timeseries*regional","page":"GTEP Inputs","title":"loadtimeseriesregional","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for the annual hourly load profile in each zone. Each zone has 8760 data points and the values are per unit.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nMonth Months of the year, ranging from 1 to 12\nDay Days of the month, ranging from 1 to 31\nPeriod Hours of the day, ranging from 1 to 24\nZone 1 Load data in zone 1 on a specific period, day, and month\nZone 2 Load data in zone 2 on a specific period, day, and month\n... ...\nNI Net load import on a specific period, day, and month","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#carbonpolicies","page":"GTEP Inputs","title":"carbonpolicies","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for carbon policies.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nState Name of the state\nTime Period Time periods for carbon allowance (can be yearly or quarterly, set by users)\nAllowance (tons) Carbon emission allowance for each state in tons","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#rpspolicies","page":"GTEP Inputs","title":"rpspolicies","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for renewable portfolio standard (RPS) policies. It defines renewable credits trading relationship between different states (i.e., the states must be neighboring states) and the renewable credit requirement for each state.","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nFrom_state State that trading the renewable credits from\nTo_state State that trading the renewable credits to\nRPS RPS requirement (renewable generation percentage) for the state in \"From_state\" column, range from 0-1, unitless","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/#single-parameters","page":"GTEP Inputs","title":"single parameters","text":"","category":"section"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"This is the input dataset for some parameters that can be directly defined based on users' need. If not changed, they remain with default values. ","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"Column Name Description\nVOLL Value of lost load, default = 100000\nplanningreservemargin percentage of total capacity that is used for reserve, default = 0.02\nBig M , unitless\nPT_RPS Penalty of the state not satisfying RPS requirement, default = 10000000000000\nPT_emis Penalty of the state not satisfying CO2 emission requirement, default = 10000000000000\nInvbugtgen Budget for newly installed generators, default = 10000000000000000\nInvbugtline Budget for newly installed transmission lines, default = 10000000000000000\nInvbugtstorage Budget for newly installed storages, default = 10000000000000000","category":"page"},{"location":"GTEP_inputs/","page":"GTEP Inputs","title":"GTEP Inputs","text":"","category":"page"},{"location":"solver_settings/","page":"Solver Settings","title":"Solver Settings","text":"CurrentModule = HOPE","category":"page"},{"location":"solver_settings/#Solver-Settings-Explanation","page":"Solver Settings","title":"Solver Settings Explanation","text":"","category":"section"},{"location":"solver_settings/","page":"Solver Settings","title":"Solver Settings","text":"The HOPE model can use multiple solvers to solve optimization problems. The solver parameters are saved in the following yml files: cbc_settings.yml, clp_settings.yml, cplex_settings.yml, gurobi_settings.yml, highs_settings.yml, scip_settings.yml, etc. In general, users do not need to modify these files. Each solver may have its own different settings parameters, if one wants to modify these parameters, it would be better to check the corresponding solver's documentation.","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"CurrentModule = HOPE","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/#1.-Install-Julia","page":"Installation","title":"1. Install Julia","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"Install Julia language. A short video tutorial on how to download and install Julia is provided here.","category":"page"},{"location":"installation/#2.-Download-HOPE-repository","page":"Installation","title":"2. Download HOPE repository","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"Clone or download the HOPE repository to your local directory - click the green \"Code\" button on the HOPE main page and choose \"Download ZIP\" (remember to change the folder name to HOPE after you decompress the zip file). You need to save the HOPE project in your home directory like: /yourpath/home/HOPE. (Image: image)","category":"page"},{"location":"installation/#3.-Solver-Packages","page":"Installation","title":"3. Solver Packages","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"The open-source solver packages (e.g., Cbc, GLPK, Clp, etc.) will be automatically installed in step 2. While the commercial solver packages (e.g., Groubi and CPLEX) should be installed by users (if needed) by following their instructions. ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"pkg> add https://github.com/swang22/HOPE.jl","category":"page"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"CurrentModule = HOPE","category":"page"},{"location":"model_introduction/#Model-Overview","page":"Model Introduction","title":"Model Overview","text":"","category":"section"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:","category":"page"},{"location":"model_introduction/","page":"Model Introduction","title":"Model Introduction","text":"GTEP mode: a generation & transmission expansion planning model\nPCM mode: a production cost model\nOPF mode: (under development): an optimal power flow model\nDART mode: (under development): a bilevel market model for simulating day-head and real-time markets","category":"page"},{"location":"GTEP/#Overview","page":"GTEP","title":"Overview","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"The generation and transmission expansion planning (GTEP) model is for investment decision analysis under various policies and energy transition scenarios. This model is a Mixed-Integer Linear Programming (MILP) Problem.","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"The objective of this model is to minimize total system costs, including fixed investment costs, variable operation costs, and penalties for non-compliance with policies. The techno-economic and environmental constraints of this model are budget constraints, power balance, transmission transfer limits, generator operation constraints, storage operation constraints, resource adequacy requirements, and policy constraints (i.e., renewable portfolio standards (RPS) and carbon emission limitations). The decision variables of this model include integer decision variables for investment in resources and continuous decision variables for operations in representative days.","category":"page"},{"location":"GTEP/#Problem-Formulation","page":"GTEP","title":"Problem Formulation","text":"","category":"section"},{"location":"GTEP/#Objective-function","page":"GTEP","title":"Objective function","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(1) Minimize total system cost:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"beginaligned\n min_Gamma quad\n sum_g in G^+ tildeI_g times x_g + sum_g in G t in TVCG_g times N_t times sum_h in H_tp_gth + \n sum_l in L^+ tildeI_l times y_l + \n sum_s in S^+ tildeI_s times z_s + sum_s in S t in T VCS times N_t times sum_h in H_t (c_sth + dc_sth) + \n sum_d in D t in T VOLL_d times N_t times sum_h in H_t p_dth^LS + \n PT^rps times sum_w in W pt_w^rps + \n PT^emis times sum_w in W em_w^emis + \n sum_t in T DRC times N_t sum_i in I h in H_t (dr_ith^UP + dr_ith^DN)\nendaligned","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"Gamma = Bigl x_g y_l z_s f_lh p_gth p_dth^LS c_sth dc_sth dr_ith^DR dr_ith^UP dr_ith^DN soc_sth pt^rps pw_gw pwi_gww em^emis_w a_gt b_gt Bigr","category":"page"},{"location":"GTEP/#Constraints","page":"GTEP","title":"Constraints","text":"","category":"section"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(2) Generator investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_+ tildeI_g times x_g le IBG","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(3) Transmission line investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_l in L_+ tildeI_l times y_l le IBL","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(4) Storage investment budget:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_s in S_+ tildeI_s times z_s le IBS","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(5) Power balance:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_i P_gth + sum_s in S_i (dc_sth - c_sth) - sum_l in LS_i f_lth \n+ sum_l in LR_i f_lth = sum_d in D_i (P_dth - P_dth^LS) forall i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(6) Transmission power flow limit for existing transmission lines:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"- F_l^max le f_glth le F_l^max forall g in G l in L^E h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(7) Transmission power flow limit for new installed transmission lines:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"- y_l times F_l^max le f_glth le y_l times F_l^max forall g in G l in L^+ h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(8) Maximum capacity limits for existing power generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth le P_g^max forall g in G_E h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(9) Maximum capacity limits for installed power generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth le P_g^max times x_g forall g in G_+ h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(10) Load shedding limit:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le p_gth^LS le P_gth forall d in D_i i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(11) Renewables generation availability for the existing plants:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"p_gh le AFRE_gthi times P_g^max forall g in G_E cap G_i cap (G^PV cup G^W) i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(12) Renewables generation availability for new installed plants:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"p_gh le AFRE_gthi times P_g^max times x_g forall g in G_+ cap G_i cap (G^PV cup G^W) i in I h in H_t t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(13) Storage charging rate limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracc_sthSC_s le SCAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(14) Storage discharging rate limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracdc_sthSD_s le SCAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(15) Storage charging rate limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracc_sthSC_s le z_s times SCAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(16) Storage discharging rate limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"fracdc_sthSD_s le z_s times SCAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(17) State of charge limit for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le soc_sth le SECAP_s forall h in H_t t in T s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(18) State of charge limit for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"0 le soc_sth le z_s times SECAP_s forall h in H_t t in T s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(19) Storage operation constraints:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_sth = soc_sth-1 + epsilon_ch times c_sth - fracdc_sthepsilon_dis forall h in H_t t in T s in S","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(20) Daily 50% of storage level balancing for existing units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_s1 = soc_send = 05 times SCAP_s s in S_E","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(21) Daily 50% of storage level balancing for new installed units:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"soc_st1 = soc_stend = 05 times z_s SCAP_s s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(22) Resource adequacy:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in G_E (CC_g times P_g^max) + sum_g in G_+ (CC_g times P_g^max times x_g) \n+ sum_s in S^E(CC_s times SCAP_s) + sum_s in S^E(CC_s times SCAP_s times z_s) ge (1 + RM) times PK","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(23) RPS policy - State total renewable energy generation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw = sum_t in T N_t times sum_h in H_t p+gth forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(24) RPS policy - State renewable credits export limitation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw ge sum_w in WER_w pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(25) RPS policy - State renewable credits import limitation:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"pw_gw ge pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W w in WIR_w","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(26) RPS policy - Renewable credits trading meets state RPS requirements:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"beginaligned\nsum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WIR_w pwi_gww\n- sum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WER_w pwi_gww + pt_w^rps \nge sum_t in T N_t times sum_i in I_wh in H_t sum_d in D_i p_dth times RPS_w\nw in W\nendaligned","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(27) Cap & Trade - State carbon allowance cap:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_g in (bigcup_i in I_w G_i) cap G^F a_gt - em_w^emis le ALW_tw w in W t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(28) Cap & Trade - Balance between allowances and emissions:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"N_t sum_h in H_t EF_g times p_gth = a_gt + b_gt-1 = b_gt g in (bigcup_i in I_w G_i) cap G_F w in W t in T","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(29) Cap & Trade - No cross-year banking:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"b_g1 = b_gend = 0 g in G_F","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(30) Binary variables:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"x_g = 01 forall g in G_+\ny_l = 01 forall l in L_+\nz_s = 01 forall s in S_+","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(31) Nonnegative variable:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"a_gt b_gt p_gth p_dth^LS c_sth dc_sth dr_ith^DR dr_ith^UP dr_ith^DNsoc_sth pt^rps pw_gw pwi_gww em^emis \nge 0","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(32) Demand response (load shifting) constraints - 1:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"dr_ith^DR = DR_ith^REF + dr_ith^UP - dr_ith^DN forall i in I h in H","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(33) Demand response (load shifting) constraints - 2:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"sum_i=h^h+23 dr_ith^UP = sum_i=h^h+23 dr_ith^DN forall i in I h in HD text1 25 49 T-23","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(34) Demand response (load shifting) constraints - 3:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"DR_ith^REF + dr_ith^UP le DR^MAX forall i in I h in H","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"(35) Demand response (load shifting) constraints - 4:","category":"page"},{"location":"GTEP/","page":"GTEP","title":"GTEP","text":"dr_ith^DN le DR_ith^REF forall i in I h in H","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"CurrentModule = HOPE","category":"page"},{"location":"hope_model_settings/#HOPE-Model-Settings-Explanation","page":"HOPE Settings","title":"HOPE Model Settings Explanation","text":"","category":"section"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"The Hope_model_settings.yml file configures system-level settings for running a HOPE case, including scenario settings (folder names), model mode settings, technology aggregation or not, using representative day or 8760 hourly time steps, integer or continuous for decision investment decisions, periods for setting representative days, planning reserve margin, value of loss of load, solver, debug flag, etc. ","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"There are two columns: 1) the first column contains the names of setting parameters; 2) the second column contains the setting values. The explanation for setting parameters is also provided in the Hope_model_settings.yml file. ","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"Parameter Name Parameter Value (examples) Description\nDataCase: Data_100RPS/ #String, the folder name of data, default Data/ GTEP example: Data_100RPS/; PCM example: Data_PCM2035/\nmodel_mode: GTEP #String, HOPE model mode: GTEP or PCM or ...\naggregated!: 1 #Binary, 1 aggregate technology resource; 0 Does Not\nrepresentative_day!: 1 #Binary, 1 use representative days (need to set time_periods); 0 Does Not\ninv_dcs_bin: 0 #Binary, 1 use integer variable for investment decisions; 0 Does Not\ntime_periods: 1 : (3, 20, 6, 20)
2 : (6, 21, 9, 21)
3 : (9, 22, 12, 20)
4 : (12, 21, 3, 19) # 1: spring, March 20th to June 20th;
# 2: summer, June 21st to September 21st;
# 3: fall, September 22nd to December 20th;
# 4: winter, December 21st to March 19th.\nplanning_reserve_margin: 0.02 #Float, planningreservemargin\nvalue_of_loss_of_load: 100000 #Float, value of loss of load d, /MWh\nsolver: cbc #String, solver: cbc, glpk, cplex, gurobi, etc.\ndebug: 0 #Binary, flag for turning on the Method of Debug, 0 = not active; 1 = active conflict method (works for gurobi and cplex); 2 = active penalty method","category":"page"},{"location":"hope_model_settings/","page":"HOPE Settings","title":"HOPE Settings","text":"","category":"page"},{"location":"PCM/#Overview","page":"PCM","title":"Overview","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"The production cost model (PCM) is for system operation analysis under various policies and energy transition scenarios. This model is a Linear Programming Problem.","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"The objective of this model is to minimize the system's (given by the planning model) total cost, including variable operation costs and penalties for non-compliance with policies. The constraints of this model are power balance, transmission transfer limit, generator operation constraints, storage operation constraints, resource adequacy requirements, and policy constraints (i.e., renewable portfolio standards (RPS) and carbon emission limitations).  The continuous decision variables of the PCM model are hourly operations of resources for a target year.","category":"page"},{"location":"PCM/#Problem-Formulation","page":"PCM","title":"Problem Formulation","text":"","category":"section"},{"location":"PCM/#Objective-function","page":"PCM","title":"Objective function","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(1) Minimize total system cost:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"beginaligned\n min_Gamma quad\n sum_g in G t in TVCG_g times N_t times sum_h in Hp_gh + \n sum_s in S t in T VCS times sum_h in H (c_sh + dc_sh) + \n sum_d in D t in T VOLL_d times sum_h in H p_dh^LS + \n sum_g in G^F t in T CP_g times sum_h in H p_gh + \n sum_w in W h in H PT^rps times pt_wh^rps + \n sum_t in T sum_w in W h in H PT^emis times em_wh^emis\nendaligned","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"Gamma = Bigl a_gt b_gt f_lh p_gh p_dh^LS c_sh dc_sh soc_sh pt_h^rps em^emis_h r_gh^G r_gh^S Bigr","category":"page"},{"location":"PCM/#Constraints","page":"PCM","title":"Constraints","text":"","category":"section"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(2) Power balance:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_g in G_i P_gh + sum_s in S_i (dc_sh - c_sh) - sum_l in LS_i f_lh \n= sum_d in D_i (P_dh - P_dh^LS) forall i in I h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(3) Transmission:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"- F_l^max le f_lh le F_l^max forall l in L h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(4) Operation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"P_g^min le p_gh + r_gh^G le (1 - FOR_g) times P_g^max forall g in G","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(5) Spinning reserve limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"r_gh^G le RM_g^SPIN times (1 - FOR_g) times P_g^max forall g in G^F","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(6) Ramp limits - 1:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(p_gh + r_gh^G) - p_g h-1 le RU_g times (1 - FOR_g) times P_g^max forall g in G^F h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(7) Ramp limits - 2:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(p_gh + r_gh^G) - p_g h-1 ge -RU_g times (1 - FOR_g) times P_g^max forall g in G^F h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(8) Load shedding limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"0 le p_dh^LS le P_d forall d in D","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(9) Renewables generation availability:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"p_gh le AFRE_ghi times P_g^max forall h in H g in G_PV cup G^W) i in I","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(10) Storage charging rate limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"fracc_shSC_s le SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(11) Storage discharging rate limit:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"fracdc_shSD_s le SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(12) Storage operation limit - 1:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"0 le soc_sh le SECAP_s forall h in H s in S","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(13) Storage operation limit - 2:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"dc_sh + r_sh^S le SD_s times SCAP_s forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(14) Storage operation limit - 3:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"soc_sh = soc_sh-1 + epsilon_ch times c_sth - fracdc_sthepsilon_dis forall h in H","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(15) RPS policy - State renewable credits export limitation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"pw_gw ge sum_w in WER_w pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(16) RPS policy - State renewable credits import limitation:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"pw_gw ge pwi_gww forall g in (bigcup_i in I_w G_i) cap (G^RPS) w in W w in WIR_w","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(17) RPS policy - Renewable credits trading meets state RPS requirements:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"beginaligned\nsum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WIR_w pwi_gww\n- sum_g in (bigcup_i in I_w G_i) cap (G^RPS) w in WER_w pwi_gww + sum_w in W h in H pt_wh^rps \nge sum_i in I_wh in H sum_d in D_i p_dh times RPS_w\nw in W\nendaligned","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(18) Cap & Trade - State carbon allowance cap:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_g in (bigcup_i in I_w G_i) cap G^F a+gt - sum_t in T N_t em_wh^emis le ALW_tw w in W","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(19) Cap & Trade - Balance between allowances and emissions:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"sum_h in H EF_g times p_gh = a_gt + b_gt-1 = b_gt g in (bigcup_i in I_w G_i) cap G_F w in W t in T","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(20) Cap & Trade - No cross-year banking:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"b_g1 = b_gend = 0 g in G_F","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"(21) Nonnegative variable:","category":"page"},{"location":"PCM/","page":"PCM","title":"PCM","text":"a_gt b_gt p_gh p_dh^LS c_sh soc_sh pt^rps pw_gw pwi_gww em^emis \nge 0","category":"page"},{"location":"reference/","page":"-","title":"-","text":"CurrentModule = HOPE","category":"page"},{"location":"reference/","page":"-","title":"-","text":"","category":"page"},{"location":"reference/","page":"-","title":"-","text":"Modules = [HOPE]","category":"page"},{"location":"#HOPE-Documentation","page":"Introduction","title":"HOPE Documentation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"CurrentModule = HOPE","category":"page"},{"location":"#Overview","page":"Introduction","title":"Overview","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The Holistic Optimization Program for Electricity (HOPE) model is a transparent and open-source tool for evaluating electric sector transition pathways and policy scenarios regarding power system planning, system operation, optimal power flow, and market designs. It is a highly configurable and modulized tool coded in the Julia language and optimization package JuMP. The HOPE consists of multiple modes for modeling optimization problems of modern power systems and electricity markets, including:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"GTEP mode: a generation & transmission expansion planning model\nPCM mode: a production cost model\nOPF mode: (under development): an optimal power flow model\nDART mode: (under development): a bilevel market model for simulating day-head and real-time markets","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Users can select the proper mode of HOPE based on their research needs. Each mode is modeled as linear or mixed-integer linear programming and can be solved with open-source (e.g., Cbc, GLPK, Clp, etc.) or commercial (e.g., Groubi and CPLEX) solver packages.","category":"page"},{"location":"#Contributors","page":"Introduction","title":"Contributors","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The HOPE model was originally developed by a team of researchers in Prof. Benjamin F. Hobbs's group at Johns Hopkins University. The main developers of the current HOPE version include Dr. Shen Wang, Dr. Mahdi Mehrtash, and Zoe Song.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"CurrentModule = HOPE","category":"page"},{"location":"run_case/#Run-a-Case-in-HOPE","page":"Run a case","title":"Run a Case in HOPE","text":"","category":"section"},{"location":"run_case/#Using-VScode-to-Run-a-Case-(Recommended)","page":"Run a case","title":"Using VScode to Run a Case (Recommended)","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"Install Visual Studio Code: Download VScode and install it. A short video tutorial on how to install VScode and add Julia to it can be found here.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(1) Open the VScode, click the 'File' tab, select 'Open Folder...', and navigate to your home working directory:/yourpath/home (The home directory in the examples below is named Maryland-Electric-Sector-Transition). ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(2) In the VScode TERMINAL, type Julia and press the \"Enter\" button. Julia will be opened as below:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory) or activate yourpath/home/HOPE (if you are not in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(4) Type instantiate in the (HOPE) pkg prompt (make sure you are in your home directory, not the home/HOPE directory!).","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(6) If there is no error in the above processes, the HOPE model has been successfully installed! Then, press Backspace button to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope(\"HOPE/ModelCases/MD_Excel_case/\"), you will see the HOPE is running:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6. ","category":"page"},{"location":"run_case/#Using-System-Terminal-to-Run-a-Case","page":"Run a case","title":"Using System Terminal to Run a Case","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"You can use a system terminal either with a \"Windows system\" or a \"Mac system\" to run a test case. See details below.","category":"page"},{"location":"run_case/#Windows-users","page":"Run a case","title":"Windows users","text":"","category":"section"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(1) Open Command Prompt from Windows Start and navigate to your home path:/yourpath/home.","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(2) Type julia. Julia will be opened as below:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(3) Type ] into the Julia package mode, and type activate HOPE (if you are in your home directory), you will see prompt (@v1.8) pkg> changing to (HOPE) pkg>, which means the HOPE project is activated successfully. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(4) Type instantiate in the (HOPE) pkg prompt. ( After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(5) Type st to check that the dependencies (packages that HOPE needs) have been installed. Type up to update the version of dependencies (packages). (This step may take some time when you install HOPE for the first time. After the HOPE is successfully installed, you can skip this step)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(6) If there is no error in the above processes, the HOPE model has been successfully installed. Then, click Backspace to return to the Juila prompt. To run an example case (e.g., default Maryland 2035 case in PCM mode), type using HOPE, and type HOPE.run_hope(\"HOPE/ModelCases/MD_Excel_case/\"), you will see the HOPE is running:","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"The results will be saved in yourpath/home/HOPE/ModelCases/MD_Excel_case/output. ","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(Image: image)","category":"page"},{"location":"run_case/","page":"Run a case","title":"Run a case","text":"(7) For your future new runs, you can skip steps 4 and 5, and just follow steps 1, 2, 3, 6. ","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"CurrentModule = HOPE","category":"page"},{"location":"notation/#Nomenclature","page":"Notation","title":"Nomenclature","text":"","category":"section"},{"location":"notation/#Sets-and-Indices","page":"Notation","title":"Sets and Indices","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nD Set of demand, index d\nG Set of all types of generating units, index g\nH Set of hours, index h\nK Set of technology types, index k\nT Set of time periods (e.g., representative days of seasons), index t\nS Set of storage units, index s\nIJ Set of zones, index ij\nL Set of transmission corridors, index l\nW Set of states, index ww","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Subsets","page":"Notation","title":"Subsets","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nD_i Set of demand connected to zone i, a subset of D\nG^PV, G^W, G^F Set of solar, wind, and dispatchable generators, respectively, subsets of G\nG^RPS Set of generators could provide RPS credits, subsets of G\nG^L_l Set of generators linked to line i, subset of G\nG_i Set of generating units connected to zone i, subset of G\nG^EG^+ Set of existing/candidate generation units, index g, subset of G\nH_t Set of hours in time period (day) t, index h, subset of H\nS^ES^+ Set of existing/candidate storage units, subset of S\nS_i Set of storage units connected to zone i, subset of S\nL^EL^+ Set of existing/candidate transmission corridors\nLS_lLR_l Set of sending/receiving corridors for zone i, subset of L\nWIR_w Set of states that state w can import renewable credits from (includes w itself), subset of W\nWER_w Set of states that state w can export renewable credits to (excludes w itself), subset of W","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Parameters","page":"Notation","title":"Parameters","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\nALW_tw Total carbon allowance in time period t in state w, ton\nAFRE_ghi Availability factor of renewable energy source g in hour h in zone i, g in G^PV bigcup G^W\nCC_gs Capacity credit of resource gs, unitless\nCP_g Carbon price of generation g in G^F, M/t\nDR_ith^ref Reference demand of demand response aggregator in time-period t in hour h, MW\nDR_i^MAX Maximum capacity limit for demand consumption of DR aggregator in zone i, MW\nDRC Cost of demand response, unitless\nEF_g Carbon emission factor of generator g, t/MWh\nELMT_w Carbon emission limits at state w t\nF^max_l Maximum capacity of transmission corridor/line l, MW\ntildeI_g Investment cost of candidate generator g, M$\ntildeI_l Investment cost of transmission line l, M$\ntildeI_s Investment cost of storage unit s, M$\nIBG Total investment budget for generators\nIBL Total investment budget for transmission lines\nIBS Total investment budget for storages\nN_t Number of time periods (days) represented by time period (day) t per year, /sum{t /in T} N{t}\nNI_ih Net interchange in zone i in hour $h, MWh\nP_dh Active power demand, MW\nPK Peak power demand, MW\nPT^rps RPS volitation penalty, /MWh\nPT^emis Carbon emission volitation penalty, /t\nP_g^minP_g^max Minimum/Maximum power generation of unit g, MW\nRPS_w Renewable portfolio standard in state w, %, unitless\nRM Planning reserve margin, unitless\nSCAP_s Maximum capacity of storage unit s, MW\nSECAP_s Maximum energy capacity of storage unit s, MWh\nSC_sSD_s The maximum rates of charging/discharging, unitless\nVCG_g Variable cost of generation unit g, / MWh\nVCS_g Variable (degradation) cost of storage unit s, / MWh\nVOLL_d Value of loss of load d, /MWh\nepsilon_ch Charging efficiency of storage unit s, unitless\nepsilon_dis Discharging efficiency of storage unit s, unitless","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/#Variables","page":"Notation","title":"Variables","text":"","category":"section"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"Notation Description\na_gt Bidding carbon allowance of unit g in time period t, ton\nb_gt Banking of allowance of g in time period t, ton\ndr_ith^UPDN Upwards/downwards demand change relative to reference demand during h in time period t in zone i, MW\ndr_ith^DR Demand from DR aggregator during h in time period t in zone i, MW\np_gth Active power generation of unit g in time period t hour h, MW\npw_gw Total renewable generation of unit g in state w, MWh\np^LS_dth Load shedding of demand d in time period t in hour h, MW\npt^rps_w Amount of active power violated RPS policy in state w, MW\npwi_gww State w imported renewable credits of from state w annually, MWh\nf_lth Active power of generator g through transmission corridor/line l in time period t and hour h, MW\nem^emis_w Carbon emission violated emission limit in state w, ton\nx_g Decision variable for candidate generator g, binary\ny_l Decision variable for candidate line l, binary\nz_s Decision variable for candidate storage s, binary\nsoc_sth State of charge level of storage s in time period t in hour h, MWh\nc_sth Charging power of storage s from grid in time period t in hour h, MW\ndc_sth Discharging power of storage s from grid in time period t in hour h, MW","category":"page"},{"location":"notation/","page":"Notation","title":"Notation","text":"","category":"page"}] } diff --git a/dev/solver_settings/index.html b/dev/solver_settings/index.html index 8f697c9..f72b95e 100644 --- a/dev/solver_settings/index.html +++ b/dev/solver_settings/index.html @@ -1,2 +1,2 @@ -Solver Settings · HOPE.jl

Solver Settings Explanation

The HOPE model can use multiple solvers to solve optimization problems. The solver parameters are saved in the following yml files: cbc_settings.yml, clp_settings.yml, cplex_settings.yml, gurobi_settings.yml, highs_settings.yml, scip_settings.yml, etc. In general, users do not need to modify these files. Each solver may have its own different settings parameters, if one wants to modify these parameters, it would be better to check the corresponding solver's documentation.

+Solver Settings · HOPE.jl

Solver Settings Explanation

The HOPE model can use multiple solvers to solve optimization problems. The solver parameters are saved in the following yml files: cbc_settings.yml, clp_settings.yml, cplex_settings.yml, gurobi_settings.yml, highs_settings.yml, scip_settings.yml, etc. In general, users do not need to modify these files. Each solver may have its own different settings parameters, if one wants to modify these parameters, it would be better to check the corresponding solver's documentation.