Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defrost Model Improvements #1674

Merged
merged 30 commits into from
May 18, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0b08c5f
change E+ defrost inputs
yzhou601 Mar 25, 2024
dc68b98
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 4, 2024
152071e
first cut of defrost EMS and other equipment objects
yzhou601 Apr 4, 2024
1596977
bugfix, default, and more test files
yzhou601 Apr 4, 2024
6330e3c
docs and hvac unit test added.
yzhou601 Apr 4, 2024
94b7513
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 25, 2024
b35a7b6
unit multiplier bugfix, update q_dot p_dot calculation
yzhou601 Apr 25, 2024
ef48fd2
p_dot_blower and p_dot_odu_fan
yzhou601 Apr 25, 2024
af7ab86
bugfix
yzhou601 Apr 25, 2024
f186290
unit multiplier fix with blower and fan power accounted
yzhou601 Apr 25, 2024
502f687
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 1, 2024
bb25da0
updates for ductless systems
yzhou601 May 1, 2024
a4c855c
Latest results.
May 1, 2024
280d3ca
address a few comments
yzhou601 May 6, 2024
b12ba51
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit May 7, 2024
82d5f84
Latest results.
May 7, 2024
cba595e
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 8, 2024
a5b0fcc
refactor inputs
yzhou601 May 14, 2024
27b02b3
bugfix and docs
yzhou601 May 14, 2024
9c7249b
Latest results.
May 14, 2024
079f029
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 17, 2024
e2710bb
update measures
yzhou601 May 17, 2024
0f7604c
Merge branch 'defrost_improvements' of https://github.com/NREL/OpenSt…
yzhou601 May 17, 2024
f242ee1
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit May 17, 2024
ed22b0e
Misc language suggestions.
shorowit May 17, 2024
7305b3c
Latest results.
May 17, 2024
3da62e2
address comments
yzhou601 May 17, 2024
1953ddf
oops
yzhou601 May 17, 2024
dfadcfb
Fix error.
shorowit May 18, 2024
512a071
Throw error if old TCM input is used.
shorowit May 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 11 additions & 0 deletions BuildResidentialHPXML/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2405,6 +2405,17 @@ Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-ai

<br/>

**Heat Pump: Advanced Defrost Approach**

Whether to apply advanced defrost approach.

- **Name:** ``heat_pump_advanced_defrost_approach``
- **Type:** ``Boolean``

- **Required:** ``false``

<br/>

**HVAC Detailed Performance Data: Capacity Type**

Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps).
Expand Down
12 changes: 12 additions & 0 deletions BuildResidentialHPXML/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1439,6 +1439,11 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
arg.setUnits('W')
args << arg

arg = OpenStudio::Measure::OSArgument::makeBoolArgument('heat_pump_advanced_defrost_approach', false)
arg.setDisplayName('Heat Pump: Advanced Defrost Approach')
arg.setDescription('Whether to apply advanced defrost approach.')
args << arg

perf_data_capacity_type_choices = OpenStudio::StringVector.new
perf_data_capacity_type_choices << 'Absolute capacities'
perf_data_capacity_type_choices << 'Normalized capacity fractions'
Expand Down Expand Up @@ -5519,6 +5524,12 @@ def self.set_heat_pumps(hpxml_bldg, args)
end
end

if args[:heat_pump_advanced_defrost_approach].is_initialized
if [HPXML::HVACTypeHeatPumpAirToAir, HPXML::HVACTypeHeatPumpMiniSplit, HPXML::HVACTypeHeatPumpPTHP, HPXML::HVACTypeHeatPumpRoom].include?(heat_pump_type)
heat_pump_advanced_defrost_approach = args[:heat_pump_advanced_defrost_approach].get
end
end

fraction_heat_load_served = args[:heat_pump_fraction_heat_load_served]
fraction_cool_load_served = args[:heat_pump_fraction_cool_load_served]

Expand Down Expand Up @@ -5562,6 +5573,7 @@ def self.set_heat_pumps(hpxml_bldg, args)
airflow_defect_ratio: airflow_defect_ratio,
charge_defect_ratio: charge_defect_ratio,
crankcase_heater_watts: heat_pump_crankcase_heater_watts,
advanced_defrost_approach: heat_pump_advanced_defrost_approach,
primary_heating_system: primary_heating_system,
primary_cooling_system: primary_cooling_system)

Expand Down
68 changes: 34 additions & 34 deletions BuildResidentialHPXML/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>build_residential_hpxml</name>
<uid>a13a8983-2b01-4930-8af2-42030b6e4233</uid>
<version_id>c3c0c169-df40-4201-8c40-2491d3c416d2</version_id>
<version_modified>2024-04-23T23:55:38Z</version_modified>
<version_id>1b4d8737-b784-41ca-9364-a808acd1f128</version_id>
<version_modified>2024-04-04T08:14:34Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>BuildResidentialHPXML</class_name>
<display_name>HPXML Builder</display_name>
Expand Down Expand Up @@ -2982,6 +2982,24 @@
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>heat_pump_advanced_defrost_approach</name>
<display_name>Heat Pump: Advanced Defrost Approach</display_name>
<description>Whether to apply advanced defrost approach.</description>
<type>Boolean</type>
<required>false</required>
<model_dependent>false</model_dependent>
<choices>
<choice>
<value>true</value>
<display_name>true</display_name>
</choice>
<choice>
<value>false</value>
<display_name>false</display_name>
</choice>
</choices>
</argument>
<argument>
<name>hvac_perf_data_capacity_type</name>
<display_name>HVAC Detailed Performance Data: Capacity Type</display_name>
Expand Down Expand Up @@ -3454,6 +3472,15 @@
<model_dependent>false</model_dependent>
<default_value>0.1</default_value>
</argument>
<argument>
<name>ducts_return_leakage_to_outside_value</name>
<display_name>Ducts: Return Leakage to Outside Value</display_name>
<description>The leakage value to outside for the return ducts.</description>
<type>Double</type>
<required>true</required>
<model_dependent>false</model_dependent>
<default_value>0.1</default_value>
</argument>
<argument>
<name>ducts_supply_location</name>
<display_name>Ducts: Supply Location</display_name>
Expand Down Expand Up @@ -3547,7 +3574,7 @@
<argument>
<name>ducts_supply_insulation_r</name>
<display_name>Ducts: Supply Insulation R-Value</display_name>
<description>The nominal insulation r-value of the supply ducts excluding air films. Use 0 for uninsulated ducts.</description>
<description>The insulation r-value of the supply ducts excluding air films.</description>
<type>Double</type>
<units>h-ft^2-R/Btu</units>
<required>true</required>
Expand Down Expand Up @@ -3598,24 +3625,6 @@
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>ducts_supply_fraction_rectangular</name>
<display_name>Ducts: Supply Fraction Rectangular</display_name>
<description>The fraction of supply ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see &lt;a href='https://openstudio-hpxml.readthedocs.io/en/v1.7.0/workflow_inputs.html#air-distribution'&gt;Air Distribution&lt;/a&gt;) is used.</description>
<type>Double</type>
<units>frac</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>ducts_return_leakage_to_outside_value</name>
<display_name>Ducts: Return Leakage to Outside Value</display_name>
<description>The leakage value to outside for the return ducts.</description>
<type>Double</type>
<required>true</required>
<model_dependent>false</model_dependent>
<default_value>0.1</default_value>
</argument>
<argument>
<name>ducts_return_location</name>
<display_name>Ducts: Return Location</display_name>
Expand Down Expand Up @@ -3709,7 +3718,7 @@
<argument>
<name>ducts_return_insulation_r</name>
<display_name>Ducts: Return Insulation R-Value</display_name>
<description>The nominal insulation r-value of the return ducts excluding air films. Use 0 for uninsulated ducts.</description>
<description>The insulation r-value of the return ducts excluding air films.</description>
<type>Double</type>
<units>h-ft^2-R/Btu</units>
<required>true</required>
Expand Down Expand Up @@ -3769,15 +3778,6 @@
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>ducts_return_fraction_rectangular</name>
<display_name>Ducts: Return Fraction Rectangular</display_name>
<description>The fraction of return ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see &lt;a href='https://openstudio-hpxml.readthedocs.io/en/v1.7.0/workflow_inputs.html#air-distribution'&gt;Air Distribution&lt;/a&gt;) is used.</description>
<type>Double</type>
<units>frac</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>mech_vent_fan_type</name>
<display_name>Mechanical Ventilation: Fan Type</display_name>
Expand Down Expand Up @@ -7262,7 +7262,7 @@
<filename>README.md</filename>
<filetype>md</filetype>
<usage_type>readme</usage_type>
<checksum>DBA0E5FD</checksum>
<checksum>975F4A10</checksum>
</file>
<file>
<filename>README.md.erb</filename>
Expand All @@ -7279,7 +7279,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>90280349</checksum>
<checksum>A7D1CD3D</checksum>
</file>
<file>
<filename>geometry.rb</filename>
Expand All @@ -7291,7 +7291,7 @@
<filename>test_build_residential_hpxml.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>DA394361</checksum>
<checksum>571E6145</checksum>
</file>
</files>
</measure>
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ __New Features__
- Allows autosizing with detailed performance data inputs for variable-speed HVAC systems using `CapacityFractionOfNominal`.
- Adds maximum power ratio detailed schedule for variable-speed HVAC systems to model shedding controls per [AHRI 1380](https://www.ahrinet.org/search-standards/ahri-1380-i-p-demand-response-through-variable-capacity-hvac-systems-residential-and-small).
- Now defaults to -20F for `CompressorLockoutTemperature` for variable-speed heat pump systems.
- Allow an optional boolean input `HeatPump/extension/AdvancedDefrostApproach` for heat pump advanced defrost model.
- Ground source heat pump enhancements:
- Allows optional detailed inputs related to geothermal loop (`HVACPlant/GeothermalLoop`).
- Allows optional ground diffusivity input.
Expand Down
9 changes: 6 additions & 3 deletions HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1599,7 +1599,8 @@ def add_cooling_system(model, runner, weather, spaces, airloop_map)

airloop_map[sys_id] = HVAC.apply_air_source_hvac_systems(model, runner, cooling_system, heating_system, sequential_cool_load_fracs, sequential_heat_load_fracs,
weather.data.AnnualMaxDrybulb, weather.data.AnnualMinDrybulb,
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg)
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg,
spaces[HPXML::LocationConditionedSpace], @hpxml_bldg.building_construction.number_of_units)

elsif [HPXML::HVACTypeEvaporativeCooler].include? cooling_system.cooling_system_type

Expand Down Expand Up @@ -1644,7 +1645,8 @@ def add_heating_system(runner, model, weather, spaces, airloop_map)

airloop_map[sys_id] = HVAC.apply_air_source_hvac_systems(model, runner, nil, heating_system, [0], sequential_heat_load_fracs,
weather.data.AnnualMaxDrybulb, weather.data.AnnualMinDrybulb,
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg)
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg,
spaces[HPXML::LocationConditionedSpace], @hpxml_bldg.building_construction.number_of_units)

elsif [HPXML::HVACTypeBoiler].include? heating_system.heating_system_type

Expand Down Expand Up @@ -1707,7 +1709,8 @@ def add_heat_pump(runner, model, weather, spaces, airloop_map)

airloop_map[sys_id] = HVAC.apply_air_source_hvac_systems(model, runner, heat_pump, heat_pump, sequential_cool_load_fracs, sequential_heat_load_fracs,
weather.data.AnnualMaxDrybulb, weather.data.AnnualMinDrybulb,
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg)
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg,
spaces[HPXML::LocationConditionedSpace], @hpxml_bldg.building_construction.number_of_units)
elsif [HPXML::HVACTypeHeatPumpGroundToAir].include? heat_pump.heat_pump_type

airloop_map[sys_id] = HVAC.apply_ground_to_air_heat_pump(model, runner, weather, heat_pump,
Expand Down