Skip to content

Commit

Permalink
Merge pull request #1751 from NREL/mj_blower_heat_and_piping
Browse files Browse the repository at this point in the history
MJ blower fan heat and piping inputs
  • Loading branch information
shorowit authored Jun 17, 2024
2 parents d9b1811 + 3a1e75d commit d5a3942
Show file tree
Hide file tree
Showing 22 changed files with 897 additions and 660 deletions.
2 changes: 2 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

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

Expand Down
20 changes: 10 additions & 10 deletions HPXMLtoOpenStudio/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>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>381502ab-7765-4f0b-a10b-78f2efc7bfd3</version_id>
<version_modified>2024-06-17T18:00:58Z</version_modified>
<version_id>e3cf35e9-a352-4b87-9862-1b4c43330a84</version_id>
<version_modified>2024-06-17T22:16:28Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -339,19 +339,19 @@
<filename>hotwater_appliances.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>124A8828</checksum>
<checksum>DC5153B2</checksum>
</file>
<file>
<filename>hpxml.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>B1E551FB</checksum>
<checksum>FEEDB03A</checksum>
</file>
<file>
<filename>hpxml_defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>1F33E8E0</checksum>
<checksum>EA81001E</checksum>
</file>
<file>
<filename>hpxml_schema/HPXML.xsd</filename>
Expand All @@ -369,7 +369,7 @@
<filename>hpxml_schematron/EPvalidator.xml</filename>
<filetype>xml</filetype>
<usage_type>resource</usage_type>
<checksum>86A23E4E</checksum>
<checksum>E9004049</checksum>
</file>
<file>
<filename>hpxml_schematron/iso-schematron.xsd</filename>
Expand All @@ -387,7 +387,7 @@
<filename>hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>58F3C17A</checksum>
<checksum>C4D7EF6D</checksum>
</file>
<file>
<filename>lighting.rb</filename>
Expand Down Expand Up @@ -429,7 +429,7 @@
<filename>output.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>69B65815</checksum>
<checksum>75C259E5</checksum>
</file>
<file>
<filename>psychrometrics.rb</filename>
Expand Down Expand Up @@ -639,7 +639,7 @@
<filename>test_defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>FD16E4B2</checksum>
<checksum>EF2DA229</checksum>
</file>
<file>
<filename>test_enclosure.rb</filename>
Expand Down Expand Up @@ -669,7 +669,7 @@
<filename>test_hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>4DA78186</checksum>
<checksum>36E97140</checksum>
</file>
<file>
<filename>test_lighting.rb</filename>
Expand Down
6 changes: 3 additions & 3 deletions HPXMLtoOpenStudio/resources/hotwater_appliances.rb
Original file line number Diff line number Diff line change
Expand Up @@ -952,7 +952,7 @@ def self.refrigerator_or_freezer_coefficients_schedule(model, col_name, obj_name
# @param has_uncond_bsmnt [TODO] TODO
# @param has_cond_bsmnt [TODO] TODO
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
# @param ncfl [TODO] TODO
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
# @param water_heating_system [TODO] TODO
# @param hot_water_distribution [TODO] TODO
# @return [TODO] TODO
Expand Down Expand Up @@ -988,7 +988,7 @@ def self.get_dist_energy_consumption_adjustment(has_uncond_bsmnt, has_cond_bsmnt
# @param has_uncond_bsmnt [TODO] TODO
# @param has_cond_bsmnt [TODO] TODO
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
# @param ncfl [TODO] TODO
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
# @return [TODO] TODO
def self.get_default_std_pipe_length(has_uncond_bsmnt, has_cond_bsmnt, cfa, ncfl)
# ANSI/RESNET 301-2014 Addendum A-2015
Expand Down Expand Up @@ -1314,7 +1314,7 @@ def self.get_water_gains_sens_lat(nbeds, general_water_use_usage_multiplier = 1.
# @param has_uncond_bsmnt [TODO] TODO
# @param has_cond_bsmnt [TODO] TODO
# @param cfa [Double] Conditioned floor area in the dwelling unit (ft^2)
# @param ncfl [TODO] TODO
# @param ncfl [Double] Total number of conditioned floors in the dwelling unit
# @param hot_water_distribution [TODO] TODO
# @param frac_low_flow_fixtures [TODO] TODO
# @param fixtures_usage_multiplier [TODO] TODO
Expand Down
34 changes: 24 additions & 10 deletions HPXMLtoOpenStudio/resources/hpxml.rb
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,8 @@ class HPXML < Object
hdl_slabs: 'Slabs',
hdl_ceilings: 'Ceilings',
hdl_infil: 'Infiltration',
hdl_vent: 'Ventilation' }
hdl_vent: 'Ventilation',
hdl_piping: 'Piping' }
CDL_SENS_ATTRS = { cdl_sens_total: 'Total',
cdl_sens_ducts: 'Ducts',
cdl_sens_windows: 'Windows',
Expand All @@ -511,6 +512,7 @@ class HPXML < Object
cdl_sens_infil: 'Infiltration',
cdl_sens_vent: 'Ventilation',
cdl_sens_intgains: 'InternalLoads',
cdl_sens_blowerheat: 'BlowerHeat',
cdl_sens_aedexcursion: 'AEDExcursion',
cdl_sens_aed_curve: 'AEDCurve' }
CDL_LAT_ATTRS = { cdl_lat_total: 'Total',
Expand Down Expand Up @@ -4776,7 +4778,8 @@ def initialize(hpxml_object, *args, **kwargs)
:third_party_certification, :htg_seed_id, :is_shared_system, :number_of_units_served,
:shared_loop_watts, :shared_loop_motor_efficiency, :fan_coil_watts, :fan_watts_per_cfm,
:airflow_defect_ratio, :fan_watts, :heating_airflow_cfm, :location, :primary_system,
:pilot_light, :pilot_light_btuh, :electric_resistance_distribution, :heating_autosizing_factor, :heating_autosizing_limit]
:pilot_light, :pilot_light_btuh, :electric_resistance_distribution, :heating_autosizing_factor,
:heating_autosizing_limit]
attr_accessor(*ATTRS)
attr_reader(:heating_detailed_performance_data)

Expand Down Expand Up @@ -5776,7 +5779,8 @@ def initialize(hpxml_bldg, *args, **kwargs)
super(hpxml_bldg, *args, **kwargs)
end
ATTRS = [:id, :distribution_system_type, :annual_heating_dse, :annual_cooling_dse, :duct_system_sealed,
:conditioned_floor_area_served, :number_of_return_registers, :air_type, :hydronic_type]
:conditioned_floor_area_served, :number_of_return_registers, :air_type, :hydronic_type,
:manualj_blower_fan_heat_btuh, :manualj_hot_water_piping_btuh]
attr_accessor(*ATTRS)
attr_reader(:duct_leakage_measurements, :ducts)

Expand Down Expand Up @@ -5857,15 +5861,23 @@ def to_doc(building)
end

if [HPXML::HVACDistributionTypeHydronic].include? @distribution_system_type
distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/HydronicDistribution')
XMLHelper.add_element(distribution, 'HydronicDistributionType', @hydronic_type, :string) unless @hydronic_type.nil?
hydronic_distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/HydronicDistribution')
XMLHelper.add_element(hydronic_distribution, 'HydronicDistributionType', @hydronic_type, :string) unless @hydronic_type.nil?
if not @manualj_hot_water_piping_btuh.nil?
manualj_inputs = XMLHelper.create_elements_as_needed(hydronic_distribution, ['extension', 'ManualJInputs'])
XMLHelper.add_element(manualj_inputs, 'HotWaterPipingBtuh', @manualj_hot_water_piping_btuh, :float, @manualj_hot_water_piping_btuh_isdefaulted)
end
end
if [HPXML::HVACDistributionTypeAir].include? @distribution_system_type
distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/AirDistribution')
XMLHelper.add_element(distribution, 'AirDistributionType', @air_type, :string) unless @air_type.nil?
@duct_leakage_measurements.to_doc(distribution)
@ducts.to_doc(distribution)
XMLHelper.add_element(distribution, 'NumberofReturnRegisters', @number_of_return_registers, :integer, @number_of_return_registers_isdefaulted) unless @number_of_return_registers.nil?
air_distribution = XMLHelper.get_element(hvac_distribution, 'DistributionSystemType/AirDistribution')
XMLHelper.add_element(air_distribution, 'AirDistributionType', @air_type, :string) unless @air_type.nil?
@duct_leakage_measurements.to_doc(air_distribution)
@ducts.to_doc(air_distribution)
XMLHelper.add_element(air_distribution, 'NumberofReturnRegisters', @number_of_return_registers, :integer, @number_of_return_registers_isdefaulted) unless @number_of_return_registers.nil?
if not @manualj_blower_fan_heat_btuh.nil?
manualj_inputs = XMLHelper.create_elements_as_needed(air_distribution, ['extension', 'ManualJInputs'])
XMLHelper.add_element(manualj_inputs, 'BlowerFanHeatBtuh', @manualj_blower_fan_heat_btuh, :float, @manualj_blower_fan_heat_btuh_isdefaulted)
end
end

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

if not hydronic_distribution.nil?
@hydronic_type = XMLHelper.get_value(hydronic_distribution, 'HydronicDistributionType', :string)
@manualj_hot_water_piping_btuh = XMLHelper.get_value(hydronic_distribution, 'extension/ManualJInputs/HotWaterPipingBtuh', :float)
end
if not air_distribution.nil?
@air_type = XMLHelper.get_value(air_distribution, 'AirDistributionType', :string)
@number_of_return_registers = XMLHelper.get_value(air_distribution, 'NumberofReturnRegisters', :integer)
@duct_leakage_measurements.from_doc(air_distribution)
@ducts.from_doc(air_distribution)
@manualj_blower_fan_heat_btuh = XMLHelper.get_value(air_distribution, 'extension/ManualJInputs/BlowerFanHeatBtuh', :float)
end
end
end
Expand Down
Loading

0 comments on commit d5a3942

Please sign in to comment.