diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e5005c98..8dfc2f33f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ Classify the change according to the following categories: ## Develop - 2024-10-11 ### Added -- Add new **ElectricStorage**, **ColdThermalStorage**, and **HotThermalStorage** parameters **max_duration_hours** and **min_duration_hours** to bound the energy duration of battery storage +- Add new **ElectricStorage** parameters **max_duration_hours** and **min_duration_hours** to bound the energy duration of battery storage ## Develop degradation-cleanup ### Added diff --git a/src/constraints/storage_constraints.jl b/src/constraints/storage_constraints.jl index c5e8c5ec5..c46d4e775 100644 --- a/src/constraints/storage_constraints.jl +++ b/src/constraints/storage_constraints.jl @@ -22,7 +22,7 @@ function add_storage_size_constraints(m, p, b; _n="") m[Symbol("dvStoragePower"*_n)][b] <= p.s.storage.attr[b].max_kw ) - # Constraint (4c)-3: Limit on Storage Energy Capacity based on Duration Hours + # Constraint (4c)-3: Limit on ElectricStorage Energy Capacity based on Duration Hours if p.s.storage.attr[b] isa ElectricStorage @constraint(m, m[Symbol("dvStorageEnergy"*_n)][b] <= m[Symbol("dvStoragePower"*_n)][b] * p.s.storage.attr[b].max_duration_hours diff --git a/src/core/energy_storage/thermal_storage.jl b/src/core/energy_storage/thermal_storage.jl index 0a4e8ee0b..50877023a 100644 --- a/src/core/energy_storage/thermal_storage.jl +++ b/src/core/energy_storage/thermal_storage.jl @@ -22,8 +22,6 @@ Cold thermal energy storage sytem; specifically, a chilled water system used to macrs_itc_reduction::Float64 = 0.5 total_itc_fraction::Float64 = 0.3 total_rebate_per_kwh::Float64 = 0.0 - #min_duration_hours::Real = 0.0 - #max_duration_hours::Real = 100000.0 ``` """ Base.@kwdef struct ColdThermalStorageDefaults <: AbstractThermalStorageDefaults @@ -42,8 +40,6 @@ Base.@kwdef struct ColdThermalStorageDefaults <: AbstractThermalStorageDefaults macrs_itc_reduction::Float64 = 0.5 total_itc_fraction::Float64 = 0.3 total_rebate_per_kwh::Float64 = 0.0 - #min_duration_hours::Real = 0.0 - #max_duration_hours::Real = 100000.0 end @@ -69,8 +65,6 @@ end can_serve_dhw::Bool = true can_serve_space_heating:Bool = true can_serve_process_heat::Bool = false - #min_duration_hours::Real = 0.0 - #max_duration_hours::Real = 100000.0 ``` """ Base.@kwdef struct HotThermalStorageDefaults <: AbstractThermalStorageDefaults @@ -92,8 +86,6 @@ Base.@kwdef struct HotThermalStorageDefaults <: AbstractThermalStorageDefaults can_serve_dhw::Bool = true can_serve_space_heating::Bool = true can_serve_process_heat::Bool = false - #min_duration_hours::Real = 0.0 - #max_duration_hours::Real = 100000.0 end @@ -127,8 +119,6 @@ struct ColdThermalStorage <: AbstractThermalStorage discharge_efficiency::Float64 net_present_cost_per_kwh::Float64 om_cost_per_kwh::Float64 - #min_duration_hours::Real - #max_duration_hours::Real function ColdThermalStorage(s::AbstractThermalStorageDefaults, f::Financial, time_steps_per_hour::Int) @@ -178,8 +168,6 @@ struct ColdThermalStorage <: AbstractThermalStorage discharge_efficiency, net_present_cost_per_kwh, om_cost_per_kwh - #s.min_duration_hours, - #s.max_duration_hours ) end end @@ -217,8 +205,6 @@ struct HotThermalStorage <: AbstractThermalStorage can_serve_dhw::Bool can_serve_space_heating::Bool can_serve_process_heat::Bool - #min_duration_hours::Real - #max_duration_hours::Real function HotThermalStorage(s::AbstractThermalStorageDefaults, f::Financial, time_steps_per_hour::Int) @@ -271,9 +257,7 @@ struct HotThermalStorage <: AbstractThermalStorage om_cost_per_kwh, s.can_serve_dhw, s.can_serve_space_heating, - s.can_serve_process_heat, - #s.min_duration_hours, - #s.max_duration_hours + s.can_serve_process_heat ) end end