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

BuildResidentialHPXML: expose blower W/cfm #1531

Closed
wants to merge 9 commits into from
13 changes: 13 additions & 0 deletions BuildResidentialHPXML/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2315,6 +2315,19 @@ The heat load served fraction of the second heating system. Ignored if this heat

<br/>

**HVAC Distribution: Blower Fan Efficiency**

The blower fan efficiency at maximum fan speed. Applies only to Furnace heating system, central air conditioner and mini-split cooling systems, and air-to-air, mini-split, and ground-to-air heat pumps. If not provided, the OS-HPXML default is used.

- **Name:** ``hvac_distribution_fan_watts_per_cfm``
- **Type:** ``Double``

- **Units:** ``W/CFM``

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

<br/>

**HVAC Control: Heating Weekday Setpoint Schedule**

Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided.
Expand Down
36 changes: 35 additions & 1 deletion BuildResidentialHPXML/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1402,6 +1402,12 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
arg.setDefaultValue(0.25)
args << arg

arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hvac_distribution_fan_watts_per_cfm', false)
arg.setDisplayName('HVAC Distribution: Blower Fan Efficiency')
arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeFurnace} heating system, #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner} cooling systems, and #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir} heat pumps. If not provided, the OS-HPXML default is used.")
arg.setUnits('W/CFM')
args << arg

arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_heating_weekday_setpoint', false)
arg.setDisplayName('HVAC Control: Heating Weekday Setpoint Schedule')
arg.setDescription('Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided.')
Expand Down Expand Up @@ -4856,6 +4862,12 @@ def self.set_heating_systems(hpxml_bldg, args)
end
end

if args[:hvac_distribution_fan_watts_per_cfm].is_initialized
if [HPXML::HVACTypeFurnace].include?(heating_system_type)
fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get
end
end

fraction_heat_load_served = args[:heating_system_fraction_heat_load_served]

if heating_system_type.include?('Shared')
Expand All @@ -4878,6 +4890,7 @@ def self.set_heating_systems(hpxml_bldg, args)
airflow_defect_ratio: airflow_defect_ratio,
pilot_light: pilot_light,
pilot_light_btuh: pilot_light_btuh,
fan_watts_per_cfm: fan_watts_per_cfm,
is_shared_system: is_shared_system,
number_of_units_served: number_of_units_served,
primary_system: true)
Expand Down Expand Up @@ -4934,6 +4947,12 @@ def self.set_cooling_systems(hpxml_bldg, args)
end
end

if args[:hvac_distribution_fan_watts_per_cfm].is_initialized
if [HPXML::HVACTypeCentralAirConditioner, HPXML::HVACTypeMiniSplitAirConditioner].include?(cooling_system_type)
fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get
end
end

if [HPXML::HVACTypePTAC, HPXML::HVACTypeRoomAirConditioner].include?(cooling_system_type)
if args[:cooling_system_integrated_heating_system_fuel].is_initialized
integrated_heating_system_fuel = args[:cooling_system_integrated_heating_system_fuel].get
Expand Down Expand Up @@ -4966,6 +4985,7 @@ def self.set_cooling_systems(hpxml_bldg, args)
airflow_defect_ratio: airflow_defect_ratio,
charge_defect_ratio: charge_defect_ratio,
crankcase_heater_watts: cooling_system_crankcase_heater_watts,
fan_watts_per_cfm: fan_watts_per_cfm,
primary_system: true,
integrated_heating_system_fuel: integrated_heating_system_fuel,
integrated_heating_system_capacity: integrated_heating_system_capacity,
Expand Down Expand Up @@ -5073,6 +5093,12 @@ def self.set_heat_pumps(hpxml_bldg, args)
end
end

if args[:hvac_distribution_fan_watts_per_cfm].is_initialized
if [HPXML::HVACTypeHeatPumpAirToAir, HPXML::HVACTypeHeatPumpMiniSplit, HPXML::HVACTypeHeatPumpGroundToAir].include?(heat_pump_type)
fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].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 @@ -5113,6 +5139,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,
fan_watts_per_cfm: fan_watts_per_cfm,
primary_heating_system: primary_heating_system,
primary_cooling_system: primary_cooling_system)
end
Expand Down Expand Up @@ -5147,13 +5174,20 @@ def self.set_secondary_heating_systems(hpxml_bldg, args)
fraction_heat_load_served = args[:heating_system_2_fraction_heat_load_served]
end

if args[:hvac_distribution_fan_watts_per_cfm].is_initialized
if [HPXML::HVACTypeFurnace].include?(heating_system_type)
fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get
end
end

hpxml_bldg.heating_systems.add(id: "HeatingSystem#{hpxml_bldg.heating_systems.size + 1}",
heating_system_type: heating_system_type,
heating_system_fuel: heating_system_fuel,
heating_capacity: heating_capacity,
fraction_heat_load_served: fraction_heat_load_served,
heating_efficiency_afue: heating_efficiency_afue,
heating_efficiency_percent: heating_efficiency_percent)
heating_efficiency_percent: heating_efficiency_percent,
fan_watts_per_cfm: fan_watts_per_cfm)
end

def self.set_hvac_distribution(hpxml_bldg, args)
Expand Down
17 changes: 13 additions & 4 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>73f05c97-2d2b-4e1e-8709-67b264ec605e</version_id>
<version_modified>2023-11-13T20:11:04Z</version_modified>
<version_id>23e5a0b4-214a-420a-9750-871db7fadab8</version_id>
<version_modified>2023-11-20T16:25:16Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>BuildResidentialHPXML</class_name>
<display_name>HPXML Builder</display_name>
Expand Down Expand Up @@ -2902,6 +2902,15 @@
<model_dependent>false</model_dependent>
<default_value>0.25</default_value>
</argument>
<argument>
<name>hvac_distribution_fan_watts_per_cfm</name>
<display_name>HVAC Distribution: Blower Fan Efficiency</display_name>
<description>The blower fan efficiency at maximum fan speed. Applies only to Furnace heating system, central air conditioner and mini-split cooling systems, and air-to-air, mini-split, and ground-to-air heat pumps. If not provided, the OS-HPXML default is used.</description>
<type>Double</type>
<units>W/CFM</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>hvac_control_heating_weekday_setpoint</name>
<display_name>HVAC Control: Heating Weekday Setpoint Schedule</display_name>
Expand Down Expand Up @@ -6751,7 +6760,7 @@
<filename>README.md</filename>
<filetype>md</filetype>
<usage_type>readme</usage_type>
<checksum>92C872C5</checksum>
<checksum>DB7A3C33</checksum>
</file>
<file>
<filename>README.md.erb</filename>
Expand All @@ -6768,7 +6777,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>DEA666BB</checksum>
<checksum>F6C9495A</checksum>
</file>
<file>
<filename>geometry.rb</filename>
Expand Down
6 changes: 1 addition & 5 deletions tasks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1629,11 +1629,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
end
end
end
if hpxml_file.include? 'install-quality'
hpxml_bldg.hvac_systems.each do |hvac_system|
hvac_system.fan_watts_per_cfm = 0.365
end
elsif ['base-hvac-setpoints-daily-setbacks.xml'].include? hpxml_file
if ['base-hvac-setpoints-daily-setbacks.xml'].include? hpxml_file
hpxml_bldg.hvac_controls[0].heating_setback_temp = 66
hpxml_bldg.hvac_controls[0].heating_setback_hours_per_week = 7 * 7
hpxml_bldg.hvac_controls[0].heating_setback_start_hour = 23 # 11pm
Expand Down
33 changes: 22 additions & 11 deletions workflow/hpxml_inputs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2010,57 +2010,68 @@
"sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml": {
"parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml",
"heat_pump_airflow_defect_ratio": -0.25,
"heat_pump_charge_defect_ratio": -0.25
"heat_pump_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml": {
"parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml",
"heat_pump_airflow_defect_ratio": -0.25,
"heat_pump_charge_defect_ratio": -0.25
"heat_pump_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml": {
"parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml",
"heat_pump_airflow_defect_ratio": -0.25,
"heat_pump_charge_defect_ratio": -0.25
"heat_pump_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed-detailed-performance.xml": {
"parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml"
"parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml",
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml": {
"parent_hpxml": "sample_files/base.xml",
"heating_system_airflow_defect_ratio": -0.25,
"cooling_system_airflow_defect_ratio": -0.25,
"cooling_system_charge_defect_ratio": -0.25
"cooling_system_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml": {
"parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml",
"heating_system_airflow_defect_ratio": -0.25,
"cooling_system_airflow_defect_ratio": -0.25,
"cooling_system_charge_defect_ratio": -0.25
"cooling_system_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml": {
"parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml",
"heating_system_airflow_defect_ratio": -0.25,
"cooling_system_airflow_defect_ratio": -0.25,
"cooling_system_charge_defect_ratio": -0.25
"cooling_system_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-furnace-gas-only.xml": {
"parent_hpxml": "sample_files/base-hvac-furnace-gas-only.xml",
"heating_system_airflow_defect_ratio": -0.25
"heating_system_airflow_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml": {
"parent_hpxml": "sample_files/base-hvac-ground-to-air-heat-pump.xml",
"heat_pump_airflow_defect_ratio": -0.25,
"heat_pump_charge_defect_ratio": -0.25
"heat_pump_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml": {
"parent_hpxml": "sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml",
"cooling_system_airflow_defect_ratio": -0.25,
"cooling_system_charge_defect_ratio": -0.25
"cooling_system_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml": {
"parent_hpxml": "sample_files/base-hvac-mini-split-heat-pump-ducted.xml",
"heat_pump_airflow_defect_ratio": -0.25,
"heat_pump_charge_defect_ratio": -0.25
"heat_pump_charge_defect_ratio": -0.25,
"hvac_distribution_fan_watts_per_cfm": 0.365
},
"sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml": {
"parent_hpxml": "sample_files/base.xml",
Expand Down