You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,22 @@ Classify the change according to the following categories:
25
25
### Deprecated
26
26
### Removed
27
27
28
+
## v0.58.0
29
+
### Added
30
+
- New optional attributes for **CHP** object **CHP.serve_absorption_chiller_only**, **CHP.months_serving_absorption_chiller_only**, and **CHP.follow_electrical_load**, which impose constraints on CHP operations if selected. The default is set to `false` for both attributes.
31
+
- New result **thermal_to_absorption_chiller_series_mmbtu_per_hour** added to heating technologies and new result **storage_to_absorption_chiller_series_mmbtu_per_hour** for hot thermal storage technologies. This result is included as a part of the thermal site loads served, i.e., the adding this result does not change the existing results.
32
+
- Added results fields to **HighTempThermalStorage** to match those of **HotThermalStorage**.
33
+
34
+
### Changed
35
+
- Updated heating dispatch results by separating heat flows to absorption chiller from heating load served (formerly, these were aggregated).
36
+
37
+
### Fixed
38
+
- Fixed a bug in which the CHP system requires a **DomesticHotWater** load.
39
+
- Fixed a bug in which the storage to steam turbine flow was included in the thermal heating load served.
40
+
41
+
### Changed
42
+
-**HotThermalStorage** and **HighTempThermalStorage** output **storage_to_turbine_series_mmbtu_per_hour** to **storage_to_steamturbine_series_mmbtu_per_hour**
43
+
28
44
## v0.57.0
29
45
### Fixed
30
46
- Include boiler emissions in emissions calculations
max_diff_size_bigM =2*max(p.max_sizes["CHP"], maximum(p.s.electric_load.loads_kw) #+ sum(p.heating_loads_kw[q][ts] for q in p.heating_loads)) #exclude heating electrification but include elec cooling?
Copy file name to clipboardExpand all lines: src/constraints/steam_turbine_constraints.jl
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,12 @@ function steam_turbine_thermal_input(m, p; _n="")
5
5
# This constraint is already included in storage_constraints.jl if HotThermalStorage and SteamTurbine are considered that also includes dvProductionToStorage["HotThermalStorage"] in LHS
6
6
ifisempty(p.s.storage.types.hot)
7
7
@constraint(m, SupplySteamTurbineProductionLimit[t in p.techs.can_supply_steam_turbine, q in p.heating_loads, ts in p.time_steps],
@constraint(m, SupplySteamTurbineProductionLimit[t in p.techs.can_supply_steam_turbine, q in p.heating_loads, ts in p.time_steps],
13
-
m[Symbol("dvThermalToSteamTurbine"*_n)][t,q,ts] +sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] <=
13
+
m[Symbol("dvThermalToSteamTurbine"*_n)][t,q,ts] +sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] + m[Symbol("dvHeatToAbsorptionChiller"*_n)][t,q,ts] <=
Copy file name to clipboardExpand all lines: src/constraints/thermal_tech_constraints.jl
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -28,18 +28,18 @@ function add_heating_tech_constraints(m, p; _n="")
28
28
if!isempty(p.techs.steam_turbine)
29
29
if!isempty(p.s.storage.types.hot)
30
30
@constraint(m, [t in p.techs.can_supply_steam_turbine, q in p.heating_loads, ts in p.time_steps],
31
-
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvThermalToSteamTurbine"*_n)][t,q,ts] + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] <=
31
+
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvThermalToSteamTurbine"*_n)][t,q,ts] + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] + m[Symbol("dvHeatToAbsorptionChiller"*_n)][t,q,ts] <=
@constraint(m, [t insetdiff(union(p.techs.heating,p.techs.chp),p.techs.can_supply_steam_turbine), q in p.heating_loads, ts in p.time_steps],
36
-
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] <=
36
+
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] + m[Symbol("dvHeatToAbsorptionChiller"*_n)][t,q,ts] <=
37
37
m[Symbol("dvHeatingProduction"*_n)][t,q,ts]
38
38
)
39
39
end
40
40
else
41
41
@constraint(m, [t in p.techs.can_supply_steam_turbine, q in p.heating_loads, ts in p.time_steps],
@@ -51,7 +51,7 @@ function add_heating_tech_constraints(m, p; _n="")
51
51
else
52
52
if!isempty(p.s.storage.types.hot)
53
53
@constraint(m, [t inunion(p.techs.heating, p.techs.chp), q in p.heating_loads, ts in p.time_steps],
54
-
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] <=
54
+
sum(m[Symbol("dvHeatToStorage"*_n)][b,t,q,ts] for b in p.s.storage.types.hot) + m[Symbol("dvProductionToWaste"*_n)][t,q,ts] + m[Symbol("dvHeatToAbsorptionChiller"*_n)][t,q,ts] <=
0 commit comments