Skip to content

Commit e1a763d

Browse files
committed
Merge branch 'develop' into add-cost-constraint
2 parents 04fab66 + e1c0561 commit e1a763d

12 files changed

Lines changed: 205 additions & 89 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ Classify the change according to the following categories:
2525
### Deprecated
2626
### Removed
2727

28+
29+
## fix-pbi
30+
### Fixed
31+
- Fix implementation of production-based incentives
32+
### Added
33+
- Added the fields `production_incentive_per_kwh`, `production_incentive_max_benefit`, `production_incentive_years`, and `production_incentive_max_kw` to the **SteamTurbine** struct.
2834

2935
## v0.51.1
3036
### Added
@@ -37,7 +43,7 @@ Classify the change according to the following categories:
3743
### Fixed
3844
- Update the **REoptInputs** parameter **tech_renewable_energy_fraction** so that only electricity-producing and fuel-burning heating technologies are included (instead of all technologies).
3945
- Included the following in the `Financial.lifecycle_capital_costs` and `Financial.initial_capital_costs`: `m[Symbol("OffgridOtherCapexAfterDepr"*_n)] - m[Symbol("AvoidedCapexByGHP"*_n)] - m[Symbol("ResidualGHXCapCost"*_n)] - m[Symbol("AvoidedCapexByASHP"*_n)]`
40-
46+
4147
## v0.51.0
4248
### Added
4349
- Add the following inputs to account for the clean or renewable energy fraction of grid-purchased electricity:

src/constraints/production_incentive_constraints.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"""
33
add_prod_incent_vars_and_constraints(m, p)
44
5-
When pbi_techs is not empty this function is called to add the variables and constraints for modeling production based
5+
When techs.pbi is not empty this function is called to add the variables and constraints for modeling production based
66
incentives.
77
"""
88
function add_prod_incent_vars_and_constraints(m, p)

src/core/bau_inputs.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ function BAUInputs(p::REoptInputs)
6565
cap_cost_slope[pvname] = 0.0
6666
tech_renewable_energy_fraction[pvname] = 1.0
6767
if pvname in p.techs.pbi
68-
push!(pbi_techs, pvname)
68+
push!(techs.pbi, pvname)
6969
end
7070
pv = get_pv_by_name(pvname, p.s.pvs)
71-
fillin_techs_by_exportbin(techs_by_exportbin, pv, pv.name)
71+
fillin_techs_by_exportbin(techs_by_exportbin, pv, pvname)
7272
if !pv.can_curtail
73-
push!(techs.no_curtail, pv.name)
73+
push!(techs.no_curtail, pvname)
7474
end
7575
end
7676

@@ -84,7 +84,7 @@ function BAUInputs(p::REoptInputs)
8484
tech_renewable_energy_fraction["Generator"] = p.s.generator.fuel_renewable_energy_fraction
8585
fillin_techs_by_exportbin(techs_by_exportbin, p.s.generator, "Generator")
8686
if "Generator" in p.techs.pbi
87-
push!(pbi_techs, "Generator")
87+
push!(techs.pbi, "Generator")
8888
end
8989
if !p.s.generator.can_curtail
9090
push!(techs.no_curtail, "Generator")
@@ -201,7 +201,7 @@ function BAUInputs(p::REoptInputs)
201201
seg_min_size,
202202
seg_max_size,
203203
seg_yint,
204-
p.pbi_pwf,
204+
p.pbi_pwf, # Same pbi dict as optimal case
205205
p.pbi_max_benefit,
206206
p.pbi_max_kw,
207207
p.pbi_benefit_per_kwh,

src/core/chp.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ conflict_res_min_allowable_fraction_of_max = 0.25
5454
utility_ibi_max::Float64 = 1.0e10
5555
utility_rebate_per_kw::Float64 = 0.0
5656
utility_rebate_max::Float64 = 1.0e10
57-
production_incentive_per_kwh::Float64 = 0.0
58-
production_incentive_max_benefit::Float64 = 1.0e9
59-
production_incentive_years::Int = 0
60-
production_incentive_max_kw::Float64 = 1.0e9
57+
production_incentive_per_kwh::Float64 = 0.0 # revenue from production incentive per kWh electricity produced, including curtailment
58+
production_incentive_max_benefit::Float64 = 1.0e9 # maximum allowable annual revenue from production incentives
59+
production_incentive_years::Int = 0 # number of year in which production incentives are paid
60+
production_incentive_max_kw::Float64 = 1.0e9 # maximum allowable system size to receive production incentives
6161
can_net_meter::Bool = false
6262
can_wholesale::Bool = false
6363
can_export_beyond_nem_limit::Bool = false

src/core/generator.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
utility_ibi_max::Real = 1.0e10,
3434
utility_rebate_per_kw::Real = 0.0,
3535
utility_rebate_max::Real = 1.0e10,
36-
production_incentive_per_kwh::Real = 0.0,
37-
production_incentive_max_benefit::Real = 1.0e9,
38-
production_incentive_years::Int = 0,
39-
production_incentive_max_kw::Real = 1.0e9,
36+
production_incentive_per_kwh::Float64 = 0.0 # revenue from production incentive per kWh electricity produced, including curtailment
37+
production_incentive_max_benefit::Float64 = 1.0e9 # maximum allowable annual revenue from production incentives
38+
production_incentive_years::Int = 0 # number of year in which production incentives are paid
39+
production_incentive_max_kw::Float64 = 1.0e9 # maximum allowable system size to receive production incentives
4040
fuel_renewable_energy_fraction::Real = 0.0,
4141
emissions_factor_lb_CO2_per_gal::Real = 22.58, # CO2e
4242
emissions_factor_lb_NOx_per_gal::Real = 0.0775544,

src/core/pv.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
utility_ibi_max::Real = 1.0e10,
3636
utility_rebate_per_kw::Real = 0.0,
3737
utility_rebate_max::Real = 1.0e10,
38-
production_incentive_per_kwh::Real = 0.0, # Applies to total estimated production, including curtailed energy.
39-
production_incentive_max_benefit::Real = 1.0e9,
40-
production_incentive_years::Int = 1,
41-
production_incentive_max_kw::Real = 1.0e9,
38+
production_incentive_per_kwh::Float64 = 0.0 # revenue from production incentive per kWh electricity produced, including curtailment
39+
production_incentive_max_benefit::Float64 = 1.0e9 # maximum allowable annual revenue from production incentives
40+
production_incentive_years::Int = 0 # number of year in which production incentives are paid
41+
production_incentive_max_kw::Float64 = 1.0e9 # maximum allowable system size to receive production incentives
4242
can_net_meter::Bool = off_grid_flag ? false : true,
4343
can_wholesale::Bool = off_grid_flag ? false : true,
4444
can_export_beyond_nem_limit::Bool = off_grid_flag ? false : true,

0 commit comments

Comments
 (0)