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
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,8 +23,43 @@ Classify the change according to the following categories:
23
23
### Deprecated
24
24
### Removed
25
25
26
+
## v. 0.46.0
27
+
### Added
28
+
- In `src/core/absorption_chiller.jl` struct, added field **heating_load_input** to the AbsorptionChiller struct
29
+
- Added new variables **dvHeatToStorage** and **dvHeatFromStorage** which are indexed on `p.heating_loads` and added reconciliation constraints so that **dvProductionToStorage** and **dvDischargeFromStorage** maintain their relationship to state of charge for Hot thermal energy storage.
30
+
- In `src/constraints/thermal_tech_constraints.jl`, added function **no_existing_boiler_production** which prevents ExistingBoiler from producing heat in optimized (non-BAU) scenarios
31
+
- for all heating techs and CHP, added fields **can_serve_space_heating**, **can_serve_dhw**, and **can_serve_process_heat** in core structs and added new results fields **thermal_to_dhw_load_series_mmbtu_per_hour**, **thermal_to_space_heating_load_series_mmbtu_per_hour**, and **thermal_to_process_heat_load_series_mmbtu_per_hour**
32
+
- In `src/core/techs.jl`, added new sets **ghp_techs**, **cooling_techs**, **techs_can_serve_space_heating**, **techs_can_serve_dhw**, and **techs_can_serve_process_heat**
33
+
- In `src/core/reopt_inputs.jl`, added new fields **heating_loads**, **heating_loads_kw**, **heating_loads_served_by_tes**, and **absorption_chillers_using_heating_load** to the REoptInputs and BAUInputs structs. in the math, new set `p.heating_loads` has index q (to represent "qualities" of heat).
34
+
- In `src/core/heating_cooling_loads.jl`, added new struct **ProcessHeatLoad**
35
+
- In `src/core/scenario.jl`, added new field **process_heat_load**
36
+
- In `src/mpc/inputs.jl`, added new field **heating_loads**
37
+
- In `src/core/existing_boiler.jl`, added field **retire_in_optimal** to the ExistingBoiler struct
38
+
- Info to user including name of PV and/or temperature datasource used and distance from site location to datasource location
39
+
- Warning to user if data is not from NSRDB or if data is more than 200 miles away
40
+
- In `results/heating_cooling_load.jl`, added new fields **process_heat_thermal_load_series_mmbtu_per_hour**, **process_heat_boiler_fuel_load_series_mmbtu_per_hour**, **annual_calculated_process_heat_thermal_load_mmbtu**, and **annual_calculated_process_heat_boiler_fuel_load_mmbtu** to HeatingLoad results, with sum heating loads now including process heat
41
+
### Changed
42
+
- Change the way we determine which dataset to utilize in the PVWatts API call. Previously, we utilized defined lat-long bounds to determine if "nsrdb" or "intl" data should be used in PVWatts call. Now, we call the Solar Dataset Query API (v2) (https://developer.nrel.gov/docs/solar/data-query/v2/) to determine the dataset to use, and include "tmy3" as an option, as this is currently the best-available data for many locations in Alaska.
43
+
- Refactored **dvThermalProduction** to be separated in **dvCoolingProduction** and **dvHeatingProduction** with **dvHeatingProduction** now indexed on `p.heating_loads`
44
+
- Refactored heating load balance constraints so that a separate flow balance is reconciled for each heating load in `p.heating_loads`
45
+
- Renamed **dvThermalProductionYIntercept** to **dvHeatingProductionYIntercept**
46
+
- Divided **ThermalStorage** into **HotThermalStorage** and **ColdThermalStorage** as the former now has attributes related to the compatible heat loads as input or output.
47
+
- Changed technologies included **dvProductionToWaste** to all heating techs. NOTE: this variable is forced to zero to allow steam turbine tests to pass, but I believe that waste heat should be allowed for the turbine. A TODO is in place to review this commit (a406cc5df6e4a27b56c92815c35d04815904e495).
48
+
- Changed test values and tolerances for CHP Sizing test.
49
+
- Updated test sets "Emissions and Renewable Energy Percent" and "Minimize Unserved Load" to decrease computing time.
50
+
- Test for tiered TOU demand rates in `test/runtests.jl`
51
+
- Updated `pop_year` and `income_year` used in call to EASIUR data (`get_EASIUR2005`) each to 2024, from 2020.
52
+
- Updated usd conversion used for EASIUR health cost calcs from USD_2010_to_2020 = 1.246 to USD_2010_to_2024 = 1.432
53
+
### Fixed
54
+
- Added a constraint in `src/constraints/steam_turbine_constraints.jl` that allows for heat loads to reconcile when thermal storage is paired with a SteamTurbine.
55
+
- Fixed a bug in which net-metering system size limits could be exceeded while still obtaining the net-metering benefit due to a large "big-M".
56
+
- Fixed a reshape call in function `parse_urdb_tou_demand` that incorrectly assumed row major instead of column major ordering
57
+
- Fixed a loop range in function `parse_urdb_tou_demand` that incorrectly started at 0 instead of 1
58
+
- Added the missing tier index when accessing `p.s.electric_tariff.tou_demand_rates` in function `add_elec_utility_expressions`
59
+
26
60
## v0.45.0
27
61
### Fixed
62
+
- Fixed bug in call to `GhpGhx.jl` when sizing hybrid GHP using the fractional sizing method
28
63
- Added `export_rate_beyond_net_metering_limit` to list of inputs to be converted to type Real, to avoid MethodError if type is vector of Any.
29
64
- Fix blended CRB processing when one or more load types have zero annual energy
30
65
- When calculating CHP fuel intercept and slope, use 1 for the HHV because CHP fuel measured in units of kWh, instead of using non-existent **CHP.fuel_higher_heating_value_kwh_per_gal**
@@ -110,7 +111,7 @@ function add_chp_supplementary_firing_constraints(m, p; _n="")
110
111
#There's no upper bound specified for the CHP supplementary firing, so assume the entire heat load as a reasonable maximum that wouldn't be exceeded (but might not be the best possible value).
) for ts in p.s.electric_tariff.time_steps_monthly[m]) for m in p.months
78
+
])
79
+
])
80
+
68
81
@constraint(m,
69
-
sum(m[Symbol("dvSize"*_n)][t] for t in NEM_techs) <=p.s.electric_utility.interconnection_limit_kw- (p.s.electric_utility.interconnection_limit_kw- p.s.electric_utility.net_metering_limit_kw)*binNEM
82
+
sum(m[Symbol("dvSize"*_n)][t] for t in NEM_techs) <=max_interconnection_size- (max_interconnection_size- p.s.electric_utility.net_metering_limit_kw)*binNEM
70
83
)
71
84
end
72
85
@@ -371,7 +384,7 @@ function add_elec_utility_expressions(m, p; _n="")
0 commit comments