Skip to content

Commit d5a3942

Browse files
authored
Merge pull request #1751 from NREL/mj_blower_heat_and_piping
MJ blower fan heat and piping inputs
2 parents d9b1811 + 3a1e75d commit d5a3942

22 files changed

+897
-660
lines changed

Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
__New Features__
44
- Adds inputs for modeling skylight curbs and/or shafts.
5+
- HVAC Manual J design load and sizing calculations:
6+
- Adds optional inputs and outputs for blower fan heat and piping load.
57
- Advanced research features:
68
- Maximum power ratio detailed schedule for variable-speed HVAC systems can now be used with `NumberofUnits` dwelling unit multiplier.
79

HPXMLtoOpenStudio/measure.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>hpxm_lto_openstudio</name>
55
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
6-
<version_id>381502ab-7765-4f0b-a10b-78f2efc7bfd3</version_id>
7-
<version_modified>2024-06-17T18:00:58Z</version_modified>
6+
<version_id>e3cf35e9-a352-4b87-9862-1b4c43330a84</version_id>
7+
<version_modified>2024-06-17T22:16:28Z</version_modified>
88
<xml_checksum>D8922A73</xml_checksum>
99
<class_name>HPXMLtoOpenStudio</class_name>
1010
<display_name>HPXML to OpenStudio Translator</display_name>
@@ -339,19 +339,19 @@
339339
<filename>hotwater_appliances.rb</filename>
340340
<filetype>rb</filetype>
341341
<usage_type>resource</usage_type>
342-
<checksum>124A8828</checksum>
342+
<checksum>DC5153B2</checksum>
343343
</file>
344344
<file>
345345
<filename>hpxml.rb</filename>
346346
<filetype>rb</filetype>
347347
<usage_type>resource</usage_type>
348-
<checksum>B1E551FB</checksum>
348+
<checksum>FEEDB03A</checksum>
349349
</file>
350350
<file>
351351
<filename>hpxml_defaults.rb</filename>
352352
<filetype>rb</filetype>
353353
<usage_type>resource</usage_type>
354-
<checksum>1F33E8E0</checksum>
354+
<checksum>EA81001E</checksum>
355355
</file>
356356
<file>
357357
<filename>hpxml_schema/HPXML.xsd</filename>
@@ -369,7 +369,7 @@
369369
<filename>hpxml_schematron/EPvalidator.xml</filename>
370370
<filetype>xml</filetype>
371371
<usage_type>resource</usage_type>
372-
<checksum>86A23E4E</checksum>
372+
<checksum>E9004049</checksum>
373373
</file>
374374
<file>
375375
<filename>hpxml_schematron/iso-schematron.xsd</filename>
@@ -387,7 +387,7 @@
387387
<filename>hvac_sizing.rb</filename>
388388
<filetype>rb</filetype>
389389
<usage_type>resource</usage_type>
390-
<checksum>58F3C17A</checksum>
390+
<checksum>C4D7EF6D</checksum>
391391
</file>
392392
<file>
393393
<filename>lighting.rb</filename>
@@ -429,7 +429,7 @@
429429
<filename>output.rb</filename>
430430
<filetype>rb</filetype>
431431
<usage_type>resource</usage_type>
432-
<checksum>69B65815</checksum>
432+
<checksum>75C259E5</checksum>
433433
</file>
434434
<file>
435435
<filename>psychrometrics.rb</filename>
@@ -639,7 +639,7 @@
639639
<filename>test_defaults.rb</filename>
640640
<filetype>rb</filetype>
641641
<usage_type>test</usage_type>
642-
<checksum>FD16E4B2</checksum>
642+
<checksum>EF2DA229</checksum>
643643
</file>
644644
<file>
645645
<filename>test_enclosure.rb</filename>
@@ -669,7 +669,7 @@
669669
<filename>test_hvac_sizing.rb</filename>
670670
<filetype>rb</filetype>
671671
<usage_type>test</usage_type>
672-
<checksum>4DA78186</checksum>
672+
<checksum>36E97140</checksum>
673673
</file>
674674
<file>
675675
<filename>test_lighting.rb</filename>

HPXMLtoOpenStudio/resources/hotwater_appliances.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@ def self.refrigerator_or_freezer_coefficients_schedule(model, col_name, obj_name
952952
# @param has_uncond_bsmnt [TODO] TODO
953953
# @param has_cond_bsmnt [TODO] TODO
954954
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
955-
# @param ncfl [TODO] TODO
955+
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
956956
# @param water_heating_system [TODO] TODO
957957
# @param hot_water_distribution [TODO] TODO
958958
# @return [TODO] TODO
@@ -988,7 +988,7 @@ def self.get_dist_energy_consumption_adjustment(has_uncond_bsmnt, has_cond_bsmnt
988988
# @param has_uncond_bsmnt [TODO] TODO
989989
# @param has_cond_bsmnt [TODO] TODO
990990
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
991-
# @param ncfl [TODO] TODO
991+
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
992992
# @return [TODO] TODO
993993
def self.get_default_std_pipe_length(has_uncond_bsmnt, has_cond_bsmnt, cfa, ncfl)
994994
# ANSI/RESNET 301-2014 Addendum A-2015
@@ -1314,7 +1314,7 @@ def self.get_water_gains_sens_lat(nbeds, general_water_use_usage_multiplier = 1.
13141314
# @param has_uncond_bsmnt [TODO] TODO
13151315
# @param has_cond_bsmnt [TODO] TODO
13161316
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
1317-
# @param ncfl [TODO] TODO
1317+
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
13181318
# @param hot_water_distribution [TODO] TODO
13191319
# @param frac_low_flow_fixtures [TODO] TODO
13201320
# @param fixtures_usage_multiplier [TODO] TODO

HPXMLtoOpenStudio/resources/hpxml.rb

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,8 @@ class HPXML < Object
497497
hdl_slabs: 'Slabs',
498498
hdl_ceilings: 'Ceilings',
499499
hdl_infil: 'Infiltration',
500-
hdl_vent: 'Ventilation' }
500+
hdl_vent: 'Ventilation',
501+
hdl_piping: 'Piping' }
501502
CDL_SENS_ATTRS = { cdl_sens_total: 'Total',
502503
cdl_sens_ducts: 'Ducts',
503504
cdl_sens_windows: 'Windows',
@@ -511,6 +512,7 @@ class HPXML < Object
511512
cdl_sens_infil: 'Infiltration',
512513
cdl_sens_vent: 'Ventilation',
513514
cdl_sens_intgains: 'InternalLoads',
515+
cdl_sens_blowerheat: 'BlowerHeat',
514516
cdl_sens_aedexcursion: 'AEDExcursion',
515517
cdl_sens_aed_curve: 'AEDCurve' }
516518
CDL_LAT_ATTRS = { cdl_lat_total: 'Total',
@@ -4776,7 +4778,8 @@ def initialize(hpxml_object, *args, **kwargs)
47764778
:third_party_certification, :htg_seed_id, :is_shared_system, :number_of_units_served,
47774779
:shared_loop_watts, :shared_loop_motor_efficiency, :fan_coil_watts, :fan_watts_per_cfm,
47784780
:airflow_defect_ratio, :fan_watts, :heating_airflow_cfm, :location, :primary_system,
4779-
:pilot_light, :pilot_light_btuh, :electric_resistance_distribution, :heating_autosizing_factor, :heating_autosizing_limit]
4781+
:pilot_light, :pilot_light_btuh, :electric_resistance_distribution, :heating_autosizing_factor,
4782+
:heating_autosizing_limit]
47804783
attr_accessor(*ATTRS)
47814784
attr_reader(:heating_detailed_performance_data)
47824785

@@ -5776,7 +5779,8 @@ def initialize(hpxml_bldg, *args, **kwargs)
57765779
super(hpxml_bldg, *args, **kwargs)
57775780
end
57785781
ATTRS = [:id, :distribution_system_type, :annual_heating_dse, :annual_cooling_dse, :duct_system_sealed,
5779-
:conditioned_floor_area_served, :number_of_return_registers, :air_type, :hydronic_type]
5782+
:conditioned_floor_area_served, :number_of_return_registers, :air_type, :hydronic_type,
5783+
:manualj_blower_fan_heat_btuh, :manualj_hot_water_piping_btuh]
57805784
attr_accessor(*ATTRS)
57815785
attr_reader(:duct_leakage_measurements, :ducts)
57825786

@@ -5857,15 +5861,23 @@ def to_doc(building)
58575861
end
58585862

58595863
if [HPXML::HVACDistributionTypeHydronic].include? @distribution_system_type
5860-
distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/HydronicDistribution')
5861-
XMLHelper.add_element(distribution, 'HydronicDistributionType', @hydronic_type, :string) unless @hydronic_type.nil?
5864+
hydronic_distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/HydronicDistribution')
5865+
XMLHelper.add_element(hydronic_distribution, 'HydronicDistributionType', @hydronic_type, :string) unless @hydronic_type.nil?
5866+
if not @manualj_hot_water_piping_btuh.nil?
5867+
manualj_inputs = XMLHelper.create_elements_as_needed(hydronic_distribution, ['extension', 'ManualJInputs'])
5868+
XMLHelper.add_element(manualj_inputs, 'HotWaterPipingBtuh', @manualj_hot_water_piping_btuh, :float, @manualj_hot_water_piping_btuh_isdefaulted)
5869+
end
58625870
end
58635871
if [HPXML::HVACDistributionTypeAir].include? @distribution_system_type
5864-
distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/AirDistribution')
5865-
XMLHelper.add_element(distribution, 'AirDistributionType', @air_type, :string) unless @air_type.nil?
5866-
@duct_leakage_measurements.to_doc(distribution)
5867-
@ducts.to_doc(distribution)
5868-
XMLHelper.add_element(distribution, 'NumberofReturnRegisters', @number_of_return_registers, :integer, @number_of_return_registers_isdefaulted) unless @number_of_return_registers.nil?
5872+
air_distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/AirDistribution')
5873+
XMLHelper.add_element(air_distribution, 'AirDistributionType', @air_type, :string) unless @air_type.nil?
5874+
@duct_leakage_measurements.to_doc(air_distribution)
5875+
@ducts.to_doc(air_distribution)
5876+
XMLHelper.add_element(air_distribution, 'NumberofReturnRegisters', @number_of_return_registers, :integer, @number_of_return_registers_isdefaulted) unless @number_of_return_registers.nil?
5877+
if not @manualj_blower_fan_heat_btuh.nil?
5878+
manualj_inputs = XMLHelper.create_elements_as_needed(air_distribution, ['extension', 'ManualJInputs'])
5879+
XMLHelper.add_element(manualj_inputs, 'BlowerFanHeatBtuh', @manualj_blower_fan_heat_btuh, :float, @manualj_blower_fan_heat_btuh_isdefaulted)
5880+
end
58695881
end
58705882

58715883
if not @duct_system_sealed.nil?
@@ -5892,12 +5904,14 @@ def from_doc(hvac_distribution)
58925904

58935905
if not hydronic_distribution.nil?
58945906
@hydronic_type = XMLHelper.get_value(hydronic_distribution, 'HydronicDistributionType', :string)
5907+
@manualj_hot_water_piping_btuh = XMLHelper.get_value(hydronic_distribution, 'extension/ManualJInputs/HotWaterPipingBtuh', :float)
58955908
end
58965909
if not air_distribution.nil?
58975910
@air_type = XMLHelper.get_value(air_distribution, 'AirDistributionType', :string)
58985911
@number_of_return_registers = XMLHelper.get_value(air_distribution, 'NumberofReturnRegisters', :integer)
58995912
@duct_leakage_measurements.from_doc(air_distribution)
59005913
@ducts.from_doc(air_distribution)
5914+
@manualj_blower_fan_heat_btuh = XMLHelper.get_value(air_distribution, 'extension/ManualJInputs/BlowerFanHeatBtuh', :float)
59015915
end
59025916
end
59035917
end

0 commit comments

Comments
 (0)