From b05a24cb85c450492ce9c6970c456591f20c2ee7 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Tue, 18 May 2021 12:12:14 -0600 Subject: [PATCH] Squashed 'hpxml-measures/' changes from 4e35921a1..fc8b4d312 fc8b4d312 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 713e829aa Removes IsPackagedSystem since split systems can still have pre-charged line sets. We'll just assume that if someone is providing a non-zero value, it makes sense for their system type. Added some documentation to clarify. fc08a1433 Merge pull request #765 from NREL/default_vent_fan_power c0b0d06a4 Latest results. 8e56249cd Allows defaulting of mechanical ventilation fan power (by type). e6e5c15e2 Merge pull request #674 from NREL/hvac_dhw_default_efficiencies 08db7a78c Update Changelog.md 47c8de4a6 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 7befb82d2 Update projects 3df7ce7b0 Latest results. c4228096c update the default efficiency of the electric type heating systems 17f6ebc69 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 1f8403e4f Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality f53765eff Merge pull request #763 from NREL/mech_vent_precond_energy_only 3ce2810d6 Latest results. a2c4fb5dd Code changes from https://github.com/NREL/OpenStudio-HPXML/pull/753, energy impact only. 5cac9dbd2 address comments c8872d6cb Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 95409f512 address comments f6f88ca30 Merge pull request #761 from NREL/seasons_followup 4c8870a3c Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies ce4298508 doc update 824d6959e add invalid test 31901ae87 Update Changelog.md 87144acba Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 3cdc84532 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 6e5f10028 fix test_fireplaces 183acefa2 update test_defaults fe1e69a8b Merge branch 'hvac_dhw_default_efficiencies' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies ecae4c26e Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies dd56e58a7 update fireplace/stove efficiency defaulting 19e7ad5b0 Latest results. 3a69e9432 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 276f9403e Latest results. 8601281b4 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 391100932 Latest results. 6d0c3755a Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 277d71c55 cleanup + fix 7a55ea4b0 Merge branch 'gshp-installation-quality' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality d50bdd14e cleanup 440f6eecc cleanup for heating hvacsizing method a274d8ef9 Latest results. 7a20077d2 One more. 5f2a4b862 Manually fix code that was previously accidentally reverted. cb9962ec3 Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 7b8bb7ca9 Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 4976c3dcf Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 544a15ad3 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies beefde88b update documentation 4948ed5ed Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies fc1faeb7f coarse efficiency defaulting for fireplace/stove Use energyplus.rb for fuel type mapping a8f7a9304 revert merging 814183b01 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 0e94275b4 Add configuration of packaged system with 0 charge defect for schematron test ca2a92b9d Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality f7fb92967 delete repeating rule 6f9f06da1 only gshp to use is_packaged_system 0ab14df13 fix validator. 53b1794cf update test file multiple 5cb9bd19e Add packaged system element c3a067621 Add test for gshp iq a531df874 Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 370299fbc Latest results. 09efbc4f0 Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 05c5934a4 Latest results. 48da5c831 Merge branch 'hvac_dhw_default_efficiencies' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies b9d4fd4e2 code cleanup and add more tests 4ca0de478 Latest results. bb4e92346 fix test_furnaces 4e2f3ab4c Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies a25e7204c Merge branch 'os_v320' of https://github.com/NREL/OpenStudio-HPXML into gshp-installation-quality 72ed16096 Added clarification to the docs about packaged vs split GSHPs systems. (Also updated it to remove the "zero only" limitation while I'm in there.) cdc0bc802 add charge defect ratio to gshp ee5afad48 fix base-misc-defaults.xml 631235b16 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 4bdbd77d3 pick up the rest of the initial comments 2255a1a29 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 3ad035b7e pick up some of the initial comments 21d7ecb8e another documentation update f6c4f7c3d update documentation f0e0c56b5 revert assertions for tankless and heatpump water heaters 8a0d1acd3 remove Fixmes 072c0f2ea Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 5955f3ea8 update hpxml for water heaters and change the assertions for water heater efficiencies 0728f7a1f update EPvalidator for water heating systems 861ef8a7b Bugfix and update EPvalidator.xml and hpxml.rb 8bf095e75 update test_defaults 2b0fe12a1 run tasks.rb fdc7aadff Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 6a477f99a Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into hvac_dhw_default_efficiencies 2e5032654 first pass git-subtree-dir: hpxml-measures git-subtree-split: fc8b4d312064b04e852a861f7a41feeadeac8dd8 --- Changelog.md | 4 + HPXMLtoOpenStudio/measure.xml | 186 ++++--- HPXMLtoOpenStudio/resources/EPvalidator.xml | 37 +- HPXMLtoOpenStudio/resources/airflow.rb | 76 ++- HPXMLtoOpenStudio/resources/hpxml.rb | 19 +- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 79 +++ HPXMLtoOpenStudio/resources/hvac.rb | 197 ++++--- HPXMLtoOpenStudio/resources/hvac_sizing.rb | 291 ++++++----- .../lu_hvac_equipment_efficiency.csv | 493 ++++++++++++++++++ .../resources/lu_water_heater_efficiency.csv | 157 ++++++ HPXMLtoOpenStudio/resources/waterheater.rb | 24 + HPXMLtoOpenStudio/tests/test_defaults.rb | 370 +++++++++++-- HPXMLtoOpenStudio/tests/test_hvac.rb | 39 +- README.md | 8 +- docs/source/workflow_inputs.rst | 175 ++++--- tasks.rb | 33 +- .../base-hvac-autosize-boiler-elec-only.xml | 2 +- .../base-hvac-autosize-furnace-elec-only.xml | 2 +- ...e-hvac-autosize-wall-furnace-elec-only.xml | 2 +- .../base-hvac-boiler-elec-only.xml | 2 +- .../base-hvac-furnace-elec-only.xml | 2 +- ...ll-quality-all-ground-to-air-heat-pump.xml | 2 +- .../base-hvac-wall-furnace-elec-only.xml | 2 +- workflow/sample_files/base-misc-defaults.xml | 18 +- workflow/tests/base_results/results.csv | 20 +- .../base_results/results_hvac_sizing.csv | 2 +- 26 files changed, 1734 insertions(+), 508 deletions(-) create mode 100644 HPXMLtoOpenStudio/resources/lu_hvac_equipment_efficiency.csv create mode 100644 HPXMLtoOpenStudio/resources/lu_water_heater_efficiency.csv diff --git a/Changelog.md b/Changelog.md index 2a059e50ed..47c8ea9765 100644 --- a/Changelog.md +++ b/Changelog.md @@ -6,8 +6,12 @@ __New Features__ - **Breaking change**: Replaces ClothesDryer `extension/IsVented` and `extension/VentedFlowRate` with `Vented` and `VentedFlowRate`. - Allows additional fuel types for generators. - Adds an `--ep-input-format` argument to run_simulation.rb to choose epJSON as the EnergyPlus input file format instead of IDF. +- Allows non-zero refrigerant charge defect ratios for ground source heat pumps. - Allows `HeatingSeason` & `CoolingSeason` to be specified for defining heating and cooling equipment availability. - Removes error-check for number of bedrooms based on conditioned floor area, per RESNET guidance. +- Revises shared mechanical ventilation preconditioning control logic to operate less often. +- Allows defaulting of HVAC/DHW system efficiency (by age). +- Allows defaulting of mechanical ventilation fan power (by type). __Bugfixes__ - Improves ground reflectance when there is shading of windows/skylights. diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index b84d1cefac..697bf9152d 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -4,8 +4,8 @@ Unable to extract OpenStudio::Measure::OSMeasure object from /mnt/c/git/openstudio-hpxml/HPXMLtoOpenStudio/measure.rb. The script should contain a class that derives from OpenStudio::Measure::OSMeasure and should close with a line stating the class name followed by .new.registerWithApplication. hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - c929f134-7b14-43a4-a9ee-11bb8d27da1f - 20210513T171148Z + 4504b4bf-e810-4812-a317-05fc92bb5ca2 + 20210518T180935Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -149,12 +149,6 @@ resource 38ED685E - - util.rb - rb - resource - 7DAA5F02 - materials.rb rb @@ -378,46 +372,52 @@ 19007457 - test_hotwater_appliance.rb + test_water_heater.rb rb test - E962DB16 + C8BB1267 - simcontrols.rb + test_airflow.rb rb - resource - C18610A9 + test + 9219EDE1 - test_water_heater.rb + test_enclosure.rb rb test - C8BB1267 + 2A7EF627 - validator.rb + constructions.rb rb resource - BF53D293 + 2BDDE11F - test_validation.rb + energyplus.rb + rb + resource + CA9A2E46 + + + test_generator.rb rb test - 4C662AE0 + 19007457 - airflow.rb + test_lighting.rb rb - resource - 99EB6060 + test + CC725437 - geometry.rb + simcontrols.rb rb resource - 3AB6308D + C18610A9 generator.rb @@ -432,88 +432,100 @@ 2ADA335B - waterheater.rb + xmlhelper.rb rb resource - A9868999 + CD54C911 - xmlhelper.rb + util.rb rb resource - CD54C911 + 7DAA5F02 - pv.rb + minitest_helper.rb rb resource - AF98955A + F3E1BE58 - test_airflow.rb + test_validation.rb rb test - 9219EDE1 + 4C662AE0 - test_enclosure.rb + test_hotwater_appliance.rb rb test - 2A7EF627 + E962DB16 - constructions.rb + util.rb rb - resource - 2BDDE11F + test + B185ACE7 - energyplus.rb + weather.rb rb resource - CA9A2E46 + 9BDDB2C2 - version.rb + pv.rb rb resource - 1277B716 + AF98955A - hvac_sizing.rb + validator.rb rb resource - 25E2DA28 + BF53D293 - util.rb + geometry.rb rb - test - B185ACE7 + resource + 3AB6308D - minitest_helper.rb + waterheater.rb rb resource - F3E1BE58 + 25442288 - weather.rb + airflow.rb rb resource - 9BDDB2C2 + E5C505B7 - schedules.rb - rb + BaseElements.xsd + xsd resource - 38A6C75D + FD773DB8 - lighting.rb + HPXMLDataTypes.xsd + xsd + resource + CA8F8CC3 + + + HPXMLvalidator.xml + xml + resource + E14BA8AB + + + hpxml.rb rb resource - C028223B + 66982214 constants.rb @@ -522,34 +534,40 @@ F895FFF9 - HPXMLDataTypes.xsd - xsd + lighting.rb + rb resource - CA8F8CC3 + C028223B - BaseElements.xsd - xsd + lu_hvac_equipment_efficiency.csv + csv resource - FD773DB8 + 69BCF0A4 - HPXMLvalidator.xml - xml + lu_water_heater_efficiency.csv + csv resource - E14BA8AB + 9EC3B4D6 - test_hvac.rb + schedules.rb rb - test - F3E85A51 + resource + 38A6C75D + + + version.rb + rb + resource + 1277B716 OpenStudio - 2.1.1 - 2.1.1 + 3.2.0 + 3.2.0 measure.rb rb @@ -557,34 +575,40 @@ 76BEB7AB - hvac.rb + test_defaults.rb + rb + test + 6E8F8702 + + + hpxml_defaults.rb rb resource - ECBD9662 + 5B7CE0A0 - test_defaults.rb + test_hvac.rb rb test - BB81D4C0 + D1B2EEE6 - hpxml_defaults.rb + hvac.rb rb resource - EDF78BC3 + 91535DE6 - EPvalidator.xml - xml + hvac_sizing.rb + rb resource - 8EE695FA + DB29573A - hpxml.rb - rb + EPvalidator.xml + xml resource - 4BBE084E + B409E941 diff --git a/HPXMLtoOpenStudio/resources/EPvalidator.xml b/HPXMLtoOpenStudio/resources/EPvalidator.xml index c63d72eb8b..26dd777c09 100644 --- a/HPXMLtoOpenStudio/resources/EPvalidator.xml +++ b/HPXMLtoOpenStudio/resources/EPvalidator.xml @@ -442,7 +442,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value + Expected 0 or 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value Expected AnnualHeatingEfficiency[Units="Percent"]/Value to be less than or equal to 1 @@ -455,7 +455,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value + Expected 1 or more element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value | YearInstalled Expected AnnualHeatingEfficiency[Units="AFUE"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWattsPerCFM Expected extension/FanPowerWattsPerCFM to be greater than or equal to 0 @@ -471,7 +471,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value + Expected 1 or more element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value | YearInstalled Expected AnnualHeatingEfficiency[Units="AFUE"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -485,7 +485,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value + Expected 1 or more element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value | YearInstalled Expected AnnualHeatingEfficiency[Units="AFUE"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -499,7 +499,7 @@ Expected 1 element(s) for xpath: DistributionSystem Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value + Expected 1 or more element(s) for xpath: AnnualHeatingEfficiency[Units="AFUE"]/Value | YearInstalled Expected AnnualHeatingEfficiency[Units="AFUE"]/Value to be less than or equal to 1 @@ -548,7 +548,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value + Expected 0 or 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value Expected AnnualHeatingEfficiency[Units="Percent"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -562,7 +562,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value + Expected 0 or 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value Expected AnnualHeatingEfficiency[Units="Percent"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -576,7 +576,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value + Expected 0 or 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value Expected AnnualHeatingEfficiency[Units="Percent"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -590,7 +590,7 @@ Expected 1 element(s) for xpath: HeatingSystemFuel Expected HeatingSystemFuel to be 'electricity' or 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value + Expected 0 or 1 element(s) for xpath: AnnualHeatingEfficiency[Units="Percent"]/Value Expected AnnualHeatingEfficiency[Units="Percent"]/Value to be less than or equal to 1 Expected 0 or 1 element(s) for xpath: extension/FanPowerWatts Expected extension/FanPowerWatts to be greater than or equal to 0 @@ -618,7 +618,7 @@ Expected 0 or 1 element(s) for xpath: CoolingCapacity Expected 0 or 1 element(s) for xpath: CompressorType Expected CompressorType to be 'single stage' or 'two stage' or 'variable speed' - Expected 1 element(s) for xpath: AnnualCoolingEfficiency[Units="SEER"]/Value + Expected 1 or more element(s) for xpath: AnnualCoolingEfficiency[Units="SEER"]/Value | YearInstalled Expected 0 or 1 element(s) for xpath: SensibleHeatFraction Expected 0 or 1 element(s) for xpath: extension/FanPowerWattsPerCFM Expected extension/FanPowerWattsPerCFM to be greater than or equal to 0 @@ -634,7 +634,7 @@ Expected 0 element(s) for xpath: DistributionSystem Expected 0 or 1 element(s) for xpath: CoolingCapacity - Expected 1 element(s) for xpath: AnnualCoolingEfficiency[Units="EER"]/Value + Expected 1 or more element(s) for xpath: AnnualCoolingEfficiency[Units="EER"]/Value | YearInstalled Expected 0 or 1 element(s) for xpath: SensibleHeatFraction @@ -746,8 +746,8 @@ Expected 0 or 1 element(s) for xpath: CoolingSensibleHeatFraction Expected 1 element(s) for xpath: FractionHeatLoadServed Expected 1 element(s) for xpath: FractionCoolLoadServed - Expected 1 element(s) for xpath: AnnualCoolingEfficiency[Units="SEER"]/Value - Expected 1 element(s) for xpath: AnnualHeatingEfficiency[Units="HSPF"]/Value + Expected 1 or more element(s) for xpath: AnnualCoolingEfficiency[Units="SEER"]/Value | YearInstalled + Expected 1 or more element(s) for xpath: AnnualHeatingEfficiency[Units="HSPF"]/Value | YearInstalled Expected 0 or 1 element(s) for xpath: extension/FanPowerWattsPerCFM Expected extension/FanPowerWattsPerCFM to be greater than or equal to 0 Expected 0 or 1 element(s) for xpath: extension/AirflowDefectRatio @@ -806,10 +806,10 @@ Expected 0 or 1 element(s) for xpath: extension/AirflowDefectRatio Expected extension/AirflowDefectRatio to be greater than -1 Expected 0 or 1 element(s) for xpath: extension/ChargeDefectRatio - Expected extension/ChargeDefectRatio to be 0 + Expected extension/ChargeDefectRatio to be greater than -1 - + [HeatPumpType=GroundSourceWithSharedLoop] @@ -990,7 +990,7 @@ Expected FanType to be 'energy recovery ventilator' or 'heat recovery ventilator' or 'exhaust only' or 'supply only' or 'balanced' or 'central fan integrated supply' Expected 1 or more element(s) for xpath: TestedFlowRate | RatedFlowRate Expected 0 or 1 element(s) for xpath: HoursInOperation - Expected 1 element(s) for xpath: FanPower + Expected 0 or 1 element(s) for xpath: FanPower @@ -1113,8 +1113,9 @@ Expected FuelType to be 'natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'diesel' or 'propane' or 'kerosene' or 'coal' or 'coke' or 'bituminous coal' or 'anthracite coal' or 'electricity' or 'wood' or 'wood pellets' Expected 0 or 1 element(s) for xpath: TankVolume Expected 0 or 1 element(s) for xpath: HeatingCapacity - Expected 1 element(s) for xpath: UniformEnergyFactor | EnergyFactor - Expected 1 or more element(s) for xpath: FirstHourRating | EnergyFactor + Expected 1 or more element(s) for xpath: UniformEnergyFactor | EnergyFactor | YearInstalled + Expected 0 or 1 element(s) for xpath: UniformEnergyFactor | EnergyFactor + Expected 0 or 2 element(s) for xpath: FirstHourRating | UniformEnergyFactor Expected UniformEnergyFactor to be less than 1 Expected EnergyFactor to be less than 1 Expected 0 or 1 element(s) for xpath: RecoveryEfficiency diff --git a/HPXMLtoOpenStudio/resources/airflow.rb b/HPXMLtoOpenStudio/resources/airflow.rb index 8d56d39835..7c4f991da3 100644 --- a/HPXMLtoOpenStudio/resources/airflow.rb +++ b/HPXMLtoOpenStudio/resources/airflow.rb @@ -2,7 +2,7 @@ class Airflow def self.apply(model, runner, weather, spaces, hpxml, cfa, nbeds, - ncfl_ag, duct_systems, nv_clg_ssn_sensor, hvac_map, eri_version, + ncfl_ag, duct_systems, clg_ssn_sensor, hvac_map, eri_version, frac_windows_operable, apply_ashrae140_assumptions) # Global variables @@ -106,10 +106,10 @@ def self.apply(model, runner, weather, spaces, hpxml, cfa, nbeds, vented_crawl = foundation end - apply_natural_ventilation_and_whole_house_fan(model, weather, hpxml.site, vent_fans_whf, open_window_area, nv_clg_ssn_sensor) + apply_natural_ventilation_and_whole_house_fan(model, weather, hpxml.site, vent_fans_whf, open_window_area, clg_ssn_sensor) apply_infiltration_and_ventilation_fans(model, weather, hpxml.site, vent_fans_mech, vent_fans_kitchen, vent_fans_bath, vented_dryers, hpxml.building_construction.has_flue_or_chimney, hpxml.air_infiltration_measurements, - vented_attic, vented_crawl, hvac_map) + vented_attic, vented_crawl, hvac_map, clg_ssn_sensor) end def self.get_default_fraction_of_windows_operable() @@ -1486,6 +1486,8 @@ def self.calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_er # Calculate mass flow rate based on outdoor air density # Address load with flow-weighted combined effectiveness infil_program.addLine("Set Fan_MFR = #{q_var} * OASupRho") + infil_program.addLine('Set ZoneInEnth = OASupInEnth') + infil_program.addLine('Set ZoneInTemp = OASupInTemp') if not vent_mech_erv_hrv_tot.empty? # ERV/HRV EMS load model # E+ ERV model is using standard density for MFR calculation, caused discrepancy with other system types. @@ -1502,14 +1504,12 @@ def self.calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_er infil_program.addLine('Set ERVTotalHeatTrans = Fan_MFR * (ERVSupOutEnth - OASupInEnth)') infil_program.addLine('Set ERVLatHeatTrans = ERVTotalHeatTrans - ERVSensHeatTrans') # ERV/HRV Load calculation - infil_program.addLine('Set FanTotalToLv = Fan_MFR * (ERVSupOutEnth - ZoneAirEnth)') - infil_program.addLine('Set FanSensToLv = Fan_MFR * ZoneCp * (ERVSupOutTemp - ZoneTemp)') - infil_program.addLine('Set FanLatToLv = FanTotalToLv - FanSensToLv') - else - infil_program.addLine('Set FanTotalToLv = Fan_MFR * (OASupInEnth - ZoneAirEnth)') - infil_program.addLine('Set FanSensToLv = Fan_MFR * ZoneCp * (OASupInTemp - ZoneTemp)') - infil_program.addLine('Set FanLatToLv = FanTotalToLv - FanSensToLv') + infil_program.addLine('Set ZoneInEnth = ERVSupOutEnth') + infil_program.addLine('Set ZoneInTemp = ERVSupOutTemp') end + infil_program.addLine('Set FanTotalToLv = Fan_MFR * (ZoneInEnth - ZoneAirEnth)') + infil_program.addLine('Set FanSensToLv = Fan_MFR * ZoneCp * (ZoneInTemp - ZoneTemp)') + infil_program.addLine('Set FanLatToLv = FanTotalToLv - FanSensToLv') # Actuator, # If preconditioned, handle actuators later in calculate_precond_loads @@ -1519,11 +1519,23 @@ def self.calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_er end end - def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_mech_precool, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, hvac_map) + def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_mech_precool, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, hvac_map, clg_ssn_sensor) # Preconditioning # Assume introducing no sensible loads to zone if preconditioned + if not vent_mech_preheat.empty? + htg_stp_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Zone Thermostat Heating Setpoint Temperature') + htg_stp_sensor.setName("#{Constants.ObjectNameAirflow} htg stp s") + htg_stp_sensor.setKeyName(@living_zone.name.to_s) + infil_program.addLine("Set HtgStp = #{htg_stp_sensor.name}") # heating thermostat setpoint + end + if not vent_mech_precool.empty? + clg_stp_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Zone Thermostat Cooling Setpoint Temperature') + clg_stp_sensor.setName("#{Constants.ObjectNameAirflow} clg stp s") + clg_stp_sensor.setKeyName(@living_zone.name.to_s) + infil_program.addLine("Set ClgStp = #{clg_stp_sensor.name}") # cooling thermostat setpoint + end vent_mech_preheat.each_with_index do |f_preheat, i| - infil_program.addLine('If OASupInTemp < ZoneTemp') + infil_program.addLine("If (OASupInTemp < HtgStp) && (#{clg_ssn_sensor.name} < 1)") htg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent preheating energy #{i}", space: @living_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_preheat.preheating_fuel, end_use: Constants.ObjectNameMechanicalVentilationPreconditioning) hvac_map["#{f_preheat.id}_preheat"] = [htg_energy_actuator.actuatedComponent.get] infil_program.addLine(" Set Qpreheat = #{UnitConversions.convert(f_preheat.average_oa_unit_flow_rate, 'cfm', 'm^3/s').round(4)}") @@ -1534,16 +1546,21 @@ def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_m end calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, 'Qpreheat', true) - infil_program.addLine(" Set PreHeatingEnergy = (-FanSensToLv) * #{f_preheat.preheating_fraction_load_served}") - infil_program.addLine(" Set #{fan_sens_load_actuator.name} = #{fan_sens_load_actuator.name} + PreHeatingEnergy") - infil_program.addLine(" Set #{fan_lat_load_actuator.name} = #{fan_lat_load_actuator.name} - FanLatToLv") - infil_program.addLine(" Set #{htg_energy_actuator.name} = PreHeatingEnergy / #{f_preheat.preheating_efficiency_cop}") + infil_program.addLine(' If ZoneInTemp < HtgStp') + infil_program.addLine(' Set FanSensToSpt = Fan_MFR * ZoneCp * (ZoneInTemp - HtgStp)') + infil_program.addLine(" Set PreHeatingWatt = (-FanSensToSpt) * #{f_preheat.preheating_fraction_load_served}") + infil_program.addLine(" Set #{fan_sens_load_actuator.name} = #{fan_sens_load_actuator.name} + PreHeatingWatt") + infil_program.addLine(" Set #{fan_lat_load_actuator.name} = #{fan_lat_load_actuator.name} - FanLatToLv") # Fixme:Does this assumption still apply? + infil_program.addLine(' Else') + infil_program.addLine(' Set PreHeatingWatt = 0.0') + infil_program.addLine(' EndIf') infil_program.addLine('Else') - infil_program.addLine(" Set #{htg_energy_actuator.name} = 0.0") + infil_program.addLine(' Set PreHeatingWatt = 0.0') infil_program.addLine('EndIf') + infil_program.addLine("Set #{htg_energy_actuator.name} = PreHeatingWatt / #{f_preheat.preheating_efficiency_cop}") end vent_mech_precool.each_with_index do |f_precool, i| - infil_program.addLine('If OASupInTemp > ZoneTemp') + infil_program.addLine("If (OASupInTemp > ClgStp) && (#{clg_ssn_sensor.name} > 0)") clg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent precooling energy #{i}", space: @living_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_precool.precooling_fuel, end_use: Constants.ObjectNameMechanicalVentilationPreconditioning) hvac_map["#{f_precool.id}_precool"] = [clg_energy_actuator.actuatedComponent.get] infil_program.addLine(" Set Qprecool = #{UnitConversions.convert(f_precool.average_oa_unit_flow_rate, 'cfm', 'm^3/s').round(4)}") @@ -1554,18 +1571,23 @@ def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_m end calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, 'Qprecool', true) - infil_program.addLine(" Set PreCoolingEnergy = FanSensToLv * #{f_precool.precooling_fraction_load_served}") - infil_program.addLine(" Set #{fan_sens_load_actuator.name} = #{fan_sens_load_actuator.name} - PreCoolingEnergy") - infil_program.addLine(" Set #{fan_lat_load_actuator.name} = #{fan_lat_load_actuator.name} - FanLatToLv") - infil_program.addLine(" Set #{clg_energy_actuator.name} = PreCoolingEnergy / #{f_precool.precooling_efficiency_cop}") + infil_program.addLine(' If ZoneInTemp > ClgStp') + infil_program.addLine(' Set FanSensToSpt = Fan_MFR * ZoneCp * (ZoneInTemp - ClgStp)') + infil_program.addLine(" Set PreCoolingWatt = FanSensToSpt * #{f_precool.precooling_fraction_load_served}") + infil_program.addLine(" Set #{fan_sens_load_actuator.name} = #{fan_sens_load_actuator.name} - PreCoolingWatt") + infil_program.addLine(" Set #{fan_lat_load_actuator.name} = #{fan_lat_load_actuator.name} - FanLatToLv") # Fixme:Does this assumption still apply? + infil_program.addLine(' Else') + infil_program.addLine(' Set PreCoolingWatt = 0.0') + infil_program.addLine(' EndIf') infil_program.addLine('Else') - infil_program.addLine(" Set #{clg_energy_actuator.name} = 0.0") + infil_program.addLine(' Set PreCoolingWatt = 0.0') infil_program.addLine('EndIf') + infil_program.addLine("Set #{clg_energy_actuator.name} = PreCoolingWatt / #{f_precool.precooling_efficiency_cop}") end end def self.apply_infiltration_and_mechanical_ventilation(model, site, vent_fans_mech, living_ach50, living_const_ach, weather, vent_fans_kitchen, vent_fans_bath, vented_dryers, - range_sch_sensors_map, bath_sch_sensors_map, dryer_exhaust_sch_sensors_map, has_flue_chimney, hvac_map) + range_sch_sensors_map, bath_sch_sensors_map, dryer_exhaust_sch_sensors_map, has_flue_chimney, hvac_map, clg_ssn_sensor) # Categorize fans into different types vent_mech_preheat = vent_fans_mech.select { |vent_mech| (not vent_mech.preheating_efficiency_cop.nil?) } vent_mech_precool = vent_fans_mech.select { |vent_mech| (not vent_mech.precooling_efficiency_cop.nil?) } @@ -1640,7 +1662,7 @@ def self.apply_infiltration_and_mechanical_ventilation(model, site, vent_fans_me calculate_fan_loads(model, infil_program, vent_mech_erv_hrv_tot, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, 'Qload') # Address preconditioning - calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_mech_precool, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, hvac_map) + calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_mech_precool, hrv_erv_effectiveness_map, fan_sens_load_actuator, fan_lat_load_actuator, hvac_map, clg_ssn_sensor) program_calling_manager = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model) program_calling_manager.setName("#{infil_program.name} calling manager") @@ -1649,7 +1671,7 @@ def self.apply_infiltration_and_mechanical_ventilation(model, site, vent_fans_me end def self.apply_infiltration_and_ventilation_fans(model, weather, site, vent_fans_mech, vent_fans_kitchen, vent_fans_bath, vented_dryers, - has_flue_chimney, air_infils, vented_attic, vented_crawl, hvac_map) + has_flue_chimney, air_infils, vented_attic, vented_crawl, hvac_map, clg_ssn_sensor) # Get living space infiltration living_ach50 = nil living_const_ach = nil @@ -1687,7 +1709,7 @@ def self.apply_infiltration_and_ventilation_fans(model, weather, site, vent_fans # Get mechanical ventilation apply_infiltration_and_mechanical_ventilation(model, site, vent_fans_mech, living_ach50, living_const_ach, weather, vent_fans_kitchen, vent_fans_bath, vented_dryers, - range_sch_sensors_map, bath_sch_sensors_map, dryer_exhaust_sch_sensors_map, has_flue_chimney, hvac_map) + range_sch_sensors_map, bath_sch_sensors_map, dryer_exhaust_sch_sensors_map, has_flue_chimney, hvac_map, clg_ssn_sensor) end def self.apply_infiltration_to_living(site, living_ach50, living_const_ach, infil_program, weather, has_flue_chimney) diff --git a/HPXMLtoOpenStudio/resources/hpxml.rb b/HPXMLtoOpenStudio/resources/hpxml.rb index ae9ef48625..75fc998235 100644 --- a/HPXMLtoOpenStudio/resources/hpxml.rb +++ b/HPXMLtoOpenStudio/resources/hpxml.rb @@ -2709,14 +2709,16 @@ def to_oga(doc) if [HVACTypeFurnace, HVACTypeWallFurnace, HVACTypeFloorFurnace, HVACTypeBoiler].include? @heating_system_type efficiency_units = UnitsAFUE efficiency_value = @heating_efficiency_afue + efficiency_value_isdefaulted = @heating_efficiency_afue_isdefaulted elsif [HVACTypeElectricResistance, HVACTypeStove, HVACTypePortableHeater, HVACTypeFixedHeater, HVACTypeFireplace].include? @heating_system_type efficiency_units = UnitsPercent efficiency_value = @heating_efficiency_percent + efficiency_value_isdefaulted = @heating_efficiency_percent_isdefaulted end if not efficiency_value.nil? annual_efficiency = XMLHelper.add_element(heating_system, 'AnnualHeatingEfficiency') XMLHelper.add_element(annual_efficiency, 'Units', efficiency_units, :string) - XMLHelper.add_element(annual_efficiency, 'Value', efficiency_value, :float) + XMLHelper.add_element(annual_efficiency, 'Value', efficiency_value, :float, efficiency_value_isdefaulted) end XMLHelper.add_element(heating_system, 'FractionHeatLoadServed', @fraction_heat_load_served, :float, @fraction_heat_load_served_isdefaulted) unless @fraction_heat_load_served.nil? XMLHelper.add_element(heating_system, 'ElectricAuxiliaryEnergy', @electric_auxiliary_energy, :float, @electric_auxiliary_energy_isdefaulted) unless @electric_auxiliary_energy.nil? @@ -2857,17 +2859,20 @@ def to_oga(doc) if [HVACTypeCentralAirConditioner, HVACTypeMiniSplitAirConditioner].include? @cooling_system_type efficiency_units = UnitsSEER efficiency_value = @cooling_efficiency_seer + efficiency_value_isdefaulted = @cooling_efficiency_seer_isdefaulted elsif [HVACTypeRoomAirConditioner].include? @cooling_system_type efficiency_units = UnitsEER efficiency_value = @cooling_efficiency_eer + efficiency_value_isdefaulted = @cooling_efficiency_eer_isdefaulted elsif [HVACTypeChiller].include? @cooling_system_type efficiency_units = UnitsKwPerTon efficiency_value = @cooling_efficiency_kw_per_ton + efficiency_value_isdefaulted = @cooling_efficiency_kw_per_ton_isdefaulted end if not efficiency_value.nil? annual_efficiency = XMLHelper.add_element(cooling_system, 'AnnualCoolingEfficiency') XMLHelper.add_element(annual_efficiency, 'Units', efficiency_units, :string) - XMLHelper.add_element(annual_efficiency, 'Value', efficiency_value, :float) + XMLHelper.add_element(annual_efficiency, 'Value', efficiency_value, :float, efficiency_value_isdefaulted) end XMLHelper.add_element(cooling_system, 'SensibleHeatFraction', @cooling_shr, :float, @cooling_shr_isdefaulted) unless @cooling_shr.nil? XMLHelper.add_extension(cooling_system, 'AirflowDefectRatio', @airflow_defect_ratio, :float, @airflow_defect_ratio_isdefaulted) unless @airflow_defect_ratio.nil? @@ -3027,23 +3032,27 @@ def to_oga(doc) if [HVACTypeHeatPumpAirToAir, HVACTypeHeatPumpMiniSplit].include? @heat_pump_type clg_efficiency_units = UnitsSEER clg_efficiency_value = @cooling_efficiency_seer + clg_efficiency_value_isdefaulted = @cooling_efficiency_seer_isdefaulted htg_efficiency_units = UnitsHSPF htg_efficiency_value = @heating_efficiency_hspf + htg_efficiency_value_isdefaulted = @heating_efficiency_hspf_isdefaulted elsif [HVACTypeHeatPumpGroundToAir, HVACTypeHeatPumpWaterLoopToAir].include? @heat_pump_type clg_efficiency_units = UnitsEER clg_efficiency_value = @cooling_efficiency_eer + clg_efficiency_value_isdefaulted = @cooling_efficiency_eer_isdefaulted htg_efficiency_units = UnitsCOP htg_efficiency_value = @heating_efficiency_cop + htg_efficiency_value_isdefaulted = @heating_efficiency_cop_isdefaulted end if not clg_efficiency_value.nil? annual_efficiency = XMLHelper.add_element(heat_pump, 'AnnualCoolingEfficiency') XMLHelper.add_element(annual_efficiency, 'Units', clg_efficiency_units, :string) - XMLHelper.add_element(annual_efficiency, 'Value', clg_efficiency_value, :float) + XMLHelper.add_element(annual_efficiency, 'Value', clg_efficiency_value, :float, clg_efficiency_value_isdefaulted) end if not htg_efficiency_value.nil? annual_efficiency = XMLHelper.add_element(heat_pump, 'AnnualHeatingEfficiency') XMLHelper.add_element(annual_efficiency, 'Units', htg_efficiency_units, :string) - XMLHelper.add_element(annual_efficiency, 'Value', htg_efficiency_value, :float) + XMLHelper.add_element(annual_efficiency, 'Value', htg_efficiency_value, :float, htg_efficiency_value_isdefaulted) end XMLHelper.add_extension(heat_pump, 'AirflowDefectRatio', @airflow_defect_ratio, :float, @airflow_defect_ratio_isdefaulted) unless @airflow_defect_ratio.nil? XMLHelper.add_extension(heat_pump, 'ChargeDefectRatio', @charge_defect_ratio, :float, @charge_defect_ratio_isdefaulted) unless @charge_defect_ratio.nil? @@ -3862,7 +3871,7 @@ def to_oga(doc) XMLHelper.add_element(water_heating_system, 'TankVolume', @tank_volume, :float, @tank_volume_isdefaulted) unless @tank_volume.nil? XMLHelper.add_element(water_heating_system, 'FractionDHWLoadServed', @fraction_dhw_load_served, :float) unless @fraction_dhw_load_served.nil? XMLHelper.add_element(water_heating_system, 'HeatingCapacity', @heating_capacity, :float, @heating_capacity_isdefaulted) unless @heating_capacity.nil? - XMLHelper.add_element(water_heating_system, 'EnergyFactor', @energy_factor, :float) unless @energy_factor.nil? + XMLHelper.add_element(water_heating_system, 'EnergyFactor', @energy_factor, :float, @energy_factor_isdefaulted) unless @energy_factor.nil? XMLHelper.add_element(water_heating_system, 'UniformEnergyFactor', @uniform_energy_factor, :float) unless @uniform_energy_factor.nil? XMLHelper.add_element(water_heating_system, 'FirstHourRating', @first_hour_rating, :float) unless @first_hour_rating.nil? XMLHelper.add_element(water_heating_system, 'RecoveryEfficiency', @recovery_efficiency, :float, @recovery_efficiency_isdefaulted) unless @recovery_efficiency.nil? diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 6fd105c28e..7814402060 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -428,6 +428,77 @@ def self.apply_hvac(hpxml, weather, convert_shared_systems) HVAC.apply_shared_systems(hpxml) end + # HVAC efficiencies (based on HEScore assumption) + hpxml.heating_systems.each do |heating_system| + year_installed = heating_system.year_installed + heating_system_type = heating_system.heating_system_type + heating_system_fuel = heating_system.heating_system_fuel + + if [HPXML::HVACTypeBoiler, HPXML::HVACTypeFurnace, HPXML::HVACTypeWallFurnace, HPXML::HVACTypeFloorFurnace].include? heating_system_type + next unless heating_system.heating_efficiency_afue.nil? + + if heating_system_fuel == HPXML::FuelTypeElectricity + heating_system.heating_efficiency_afue = 0.98 + else + heating_system.heating_efficiency_afue = HVAC.get_default_hvac_efficiency_by_year_installed(year_installed, heating_system_type, heating_system_fuel, HPXML::UnitsAFUE) + end + heating_system.heating_efficiency_afue_isdefaulted = true + elsif [HPXML::HVACTypeElectricResistance].include? heating_system_type + next unless heating_system.heating_efficiency_percent.nil? + + heating_system.heating_efficiency_percent = 1.0 + heating_system.heating_efficiency_percent_isdefaulted = true + elsif [HPXML::HVACTypeStove, HPXML::HVACTypeFireplace, HPXML::HVACTypePortableHeater, HPXML::HVACTypeFixedHeater].include? heating_system_type + next unless heating_system.heating_efficiency_percent.nil? + + if heating_system_fuel == HPXML::FuelTypeElectricity + heating_system.heating_efficiency_percent = 1.0 + elsif heating_system_fuel == HPXML::FuelTypeWoodCord + heating_system.heating_efficiency_percent = 0.60 # HEScore assumption + elsif heating_system_fuel == HPXML::FuelTypeWoodPellets + heating_system.heating_efficiency_percent = 0.78 # HEScore assumption + else + heating_system.heating_efficiency_percent = 0.81 # https://www.lopistoves.com/products/ and https://www.kozyheat.com/products/ + end + heating_system.heating_efficiency_percent_isdefaulted = true + end + end + + hpxml.cooling_systems.each do |cooling_system| + year_installed = cooling_system.year_installed + cooling_system_type = cooling_system.cooling_system_type + cooling_system_fuel = HPXML::FuelTypeElectricity + + if cooling_system_type == HPXML::HVACTypeCentralAirConditioner + next unless cooling_system.cooling_efficiency_seer.nil? + + cooling_system.cooling_efficiency_seer = HVAC.get_default_hvac_efficiency_by_year_installed(year_installed, cooling_system_type, cooling_system_fuel, HPXML::UnitsSEER) + cooling_system.cooling_efficiency_seer_isdefaulted = true + elsif cooling_system_type == HPXML::HVACTypeRoomAirConditioner + next unless cooling_system.cooling_efficiency_eer.nil? + + cooling_system.cooling_efficiency_eer = HVAC.get_default_hvac_efficiency_by_year_installed(year_installed, cooling_system_type, cooling_system_fuel, HPXML::UnitsEER) + cooling_system.cooling_efficiency_eer_isdefaulted = true + end + end + + hpxml.heat_pumps.each do |heat_pump| + year_installed = heat_pump.year_installed + heat_pump_type = heat_pump.heat_pump_type + heat_pump_fuel = HPXML::FuelTypeElectricity + + next unless [HPXML::HVACTypeHeatPumpAirToAir].include? heat_pump_type + + if heat_pump.cooling_efficiency_seer.nil? + heat_pump.cooling_efficiency_seer = HVAC.get_default_hvac_efficiency_by_year_installed(year_installed, heat_pump_type, heat_pump_fuel, HPXML::UnitsSEER) + heat_pump.cooling_efficiency_seer_isdefaulted = true + end + if heat_pump.heating_efficiency_hspf.nil? + heat_pump.heating_efficiency_hspf = HVAC.get_default_hvac_efficiency_by_year_installed(year_installed, heat_pump_type, heat_pump_fuel, HPXML::UnitsHSPF) + heat_pump.heating_efficiency_hspf_isdefaulted = true + end + end + # Default AC/HP compressor type hpxml.cooling_systems.each do |cooling_system| next unless cooling_system.compressor_type.nil? @@ -864,6 +935,10 @@ def self.apply_ventilation_fans(hpxml) vent_fan.hours_in_operation = (vent_fan.fan_type == HPXML::MechVentTypeCFIS) ? 8.0 : 24.0 vent_fan.hours_in_operation_isdefaulted = true end + if vent_fan.fan_power.nil? + flow_rate = [vent_fan.rated_flow_rate.to_f, vent_fan.tested_flow_rate.to_f].max + vent_fan.fan_power = flow_rate * Airflow.get_default_mech_vent_fan_power(vent_fan) + end end # Default kitchen fan @@ -951,6 +1026,10 @@ def self.apply_water_heaters(hpxml, nbeds, eri_version) water_heating_system.tank_volume = Waterheater.get_default_tank_volume(water_heating_system.fuel_type, nbeds, hpxml.building_construction.number_of_bathrooms) water_heating_system.tank_volume_isdefaulted = true end + if water_heating_system.energy_factor.nil? && water_heating_system.uniform_energy_factor.nil? + water_heating_system.energy_factor = Waterheater.get_default_water_heater_efficiency_by_year_installed(water_heating_system.year_installed, water_heating_system.fuel_type) + water_heating_system.energy_factor_isdefaulted = true + end if water_heating_system.recovery_efficiency.nil? water_heating_system.recovery_efficiency = Waterheater.get_default_recovery_efficiency(water_heating_system) water_heating_system.recovery_efficiency_isdefaulted = true diff --git a/HPXMLtoOpenStudio/resources/hvac.rb b/HPXMLtoOpenStudio/resources/hvac.rb index 3dda66ab86..1b90c21a9f 100644 --- a/HPXMLtoOpenStudio/resources/hvac.rb +++ b/HPXMLtoOpenStudio/resources/hvac.rb @@ -392,9 +392,9 @@ def self.apply_ground_to_air_heat_pump(model, runner, weather, heat_pump, end # Cooling Coil - clg_total_cap_curve = create_curve_quad_linear(model, hp_ap.cool_cap_ft_spec[0], obj_name + ' clg total cap curve') - clg_sens_cap_curve = create_curve_quint_linear(model, hp_ap.cool_sh_ft_spec[0], obj_name + ' clg sens cap curve') - clg_power_curve = create_curve_quad_linear(model, hp_ap.cool_power_ft_spec[0], obj_name + ' clg power curve') + clg_total_cap_curve = create_curve_quad_linear(model, hp_ap.cool_cap_curve_spec[0], obj_name + ' clg total cap curve') + clg_sens_cap_curve = create_curve_quint_linear(model, hp_ap.cool_sh_curve_spec[0], obj_name + ' clg sens cap curve') + clg_power_curve = create_curve_quad_linear(model, hp_ap.cool_power_curve_spec[0], obj_name + ' clg power curve') clg_coil = OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit.new(model, clg_total_cap_curve, clg_sens_cap_curve, clg_power_curve) clg_coil.setName(obj_name + ' clg coil') clg_coil.setRatedCoolingCoefficientofPerformance(1.0 / hp_ap.cool_rated_eirs[0]) @@ -407,8 +407,8 @@ def self.apply_ground_to_air_heat_pump(model, runner, weather, heat_pump, hvac_map[heat_pump.id] << clg_coil # Heating Coil - htg_cap_curve = create_curve_quad_linear(model, hp_ap.heat_cap_ft_spec[0], obj_name + ' htg cap curve') - htg_power_curve = create_curve_quad_linear(model, hp_ap.heat_power_ft_spec[0], obj_name + ' htg power curve') + htg_cap_curve = create_curve_quad_linear(model, hp_ap.heat_cap_curve_spec[0], obj_name + ' htg cap curve') + htg_power_curve = create_curve_quad_linear(model, hp_ap.heat_power_curve_spec[0], obj_name + ' htg power curve') htg_coil = OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit.new(model, htg_cap_curve, htg_power_curve) htg_coil.setName(obj_name + ' htg coil') htg_coil.setRatedHeatingCoefficientofPerformance(1.0 / hp_ap.heat_rated_eirs[0]) @@ -1308,9 +1308,9 @@ def self.set_curves_gshp(heat_pump) # Coefficients generated by catalog data: https://files.climatemaster.com/Genesis-GS-Series-Product-Catalog.pdf, p180 # Data point taken as rated condition: # EWT: 80F EAT:80/67F, AFR: 1200cfm, WFR: 4.5gpm - hp_ap.cool_cap_ft_spec = [[-1.57177156131221, 4.60343712716819, -2.15976622898044, 0.0590964827802021, 0.0194696644460315]] - hp_ap.cool_power_ft_spec = [[-4.42471086639888, 0.658017281046304, 4.37331801294626, 0.174096187531254, -0.0526514790164159]] - hp_ap.cool_sh_ft_spec = [[4.54172823345154, 14.7653304889134, -18.3541272090485, -0.74401391092935, 0.545560799548833, 0.0182620032235494]] + hp_ap.cool_cap_curve_spec = [[-1.57177156131221, 4.60343712716819, -2.15976622898044, 0.0590964827802021, 0.0194696644460315]] + hp_ap.cool_power_curve_spec = [[-4.42471086639888, 0.658017281046304, 4.37331801294626, 0.174096187531254, -0.0526514790164159]] + hp_ap.cool_sh_curve_spec = [[4.54172823345154, 14.7653304889134, -18.3541272090485, -0.74401391092935, 0.545560799548833, 0.0182620032235494]] hp_ap.cool_rated_shrs_gross = [heat_pump.cooling_shr] # FUTURE: Reconcile these fan/pump adjustments with ANSI/RESNET/ICC 301-2019 Section 4.4.5 fan_adjust_kw = UnitConversions.convert(400.0, 'Btu/hr', 'ton') * UnitConversions.convert(1.0, 'cfm', 'm^3/s') * 1000.0 * 0.35 * 249.0 / 300.0 # Adjustment per ISO 13256-1 Internal pressure drop across heat pump assumed to be 0.5 in. w.g. @@ -1321,8 +1321,8 @@ def self.set_curves_gshp(heat_pump) # E+ equation fit coil coefficients from Tang's thesis: # See Appendix B Figure B.3 of https://hvac.okstate.edu/sites/default/files/pubs/theses/MS/27-Tang_Thesis_05.pdf # Coefficients generated by catalog data - hp_ap.heat_cap_ft_spec = [[-5.12650150, -0.93997630, 7.21443206, 0.121065721, 0.051809805]] - hp_ap.heat_power_ft_spec = [[-7.73235249, 6.43390775, 2.29152262, -0.175598629, 0.005888871]] + hp_ap.heat_cap_curve_spec = [[-5.12650150, -0.93997630, 7.21443206, 0.121065721, 0.051809805]] + hp_ap.heat_power_curve_spec = [[-7.73235249, 6.43390775, 2.29152262, -0.175598629, 0.005888871]] heat_eir = (1.0 - heat_pump.heating_efficiency_cop * (fan_adjust_kw + pump_adjust_kw)) / (heat_pump.heating_efficiency_cop * (1.0 - fan_adjust_kw)) hp_ap.heat_rated_eirs = [heat_eir] end @@ -3718,7 +3718,7 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita if (not clg_coil.nil?) && (cooling_system.fraction_cool_load_served > 0) clg_ap = cooling_system.additional_properties clg_cfm = cooling_system.cooling_airflow_cfm - if clg_coil.to_CoilCoolingDXSingleSpeed.is_initialized + if clg_coil.to_CoilCoolingDXSingleSpeed.is_initialized || clg_coil.to_CoilCoolingWaterToAirHeatPumpEquationFit.is_initialized cool_airflow_rated_defect_ratio = [UnitConversions.convert(clg_cfm, 'cfm', 'm^3/s') / clg_coil.ratedAirFlowRate.get - 1.0] elsif clg_coil.to_CoilCoolingDXMultiSpeed.is_initialized cool_airflow_rated_defect_ratio = clg_coil.stages.zip(clg_ap.cool_fan_speed_ratios).map { |stage, speed_ratio| UnitConversions.convert(clg_cfm * speed_ratio, 'cfm', 'm^3/s') / stage.ratedAirFlowRate.get - 1.0 } @@ -3729,7 +3729,7 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita if (not htg_coil.nil?) && (heating_system.fraction_heat_load_served > 0) htg_ap = heating_system.additional_properties htg_cfm = heating_system.heating_airflow_cfm - if htg_coil.to_CoilHeatingDXSingleSpeed.is_initialized + if htg_coil.to_CoilHeatingDXSingleSpeed.is_initialized || htg_coil.to_CoilHeatingWaterToAirHeatPumpEquationFit.is_initialized heat_airflow_rated_defect_ratio = [UnitConversions.convert(htg_cfm, 'cfm', 'm^3/s') / htg_coil.ratedAirFlowRate.get - 1.0] elsif htg_coil.to_CoilHeatingDXMultiSpeed.is_initialized heat_airflow_rated_defect_ratio = htg_coil.stages.zip(htg_ap.heat_fan_speed_ratios).map { |stage, speed_ratio| UnitConversions.convert(htg_cfm * speed_ratio, 'cfm', 'm^3/s') / stage.ratedAirFlowRate.get - 1.0 } @@ -3763,9 +3763,24 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita num_speeds = clg_coil.stages.size cool_cap_fff_curves = clg_coil.stages.map { |stage| stage.totalCoolingCapacityFunctionofFlowFractionCurve.to_CurveQuadratic.get } cool_eir_fff_curves = clg_coil.stages.map { |stage| stage.energyInputRatioFunctionofFlowFractionCurve.to_CurveQuadratic.get } + elsif clg_coil.is_a? OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit + num_speeds = 1 + cool_cap_fff_curves = [clg_coil.totalCoolingCapacityCurve.to_CurveQuadLinear.get] # quadlinear curve, only forth term is for airflow + cool_eir_fff_curves = [clg_coil.coolingPowerConsumptionCurve.to_CurveQuadLinear.get] # quadlinear curve, only forth term is for airflow + # variables are the same for eir and cap curve + var1_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 1 Value') + var1_sensor.setName('Cool Cap Curve Var 1') + var1_sensor.setKeyName(cool_cap_fff_curves[0].name.to_s) + var2_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 2 Value') + var2_sensor.setName('Cool Cap Curve Var 2') + var2_sensor.setKeyName(cool_cap_fff_curves[0].name.to_s) + var4_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 4 Value') + var4_sensor.setName('Cool Cap Curve Var 4') + var4_sensor.setKeyName(cool_cap_fff_curves[0].name.to_s) else fail 'cooling coil not supported' end + for speed in 0..(num_speeds - 1) cool_cap_fff_curve = cool_cap_fff_curves[speed] cool_cap_fff_act = OpenStudio::Model::EnergyManagementSystemActuator.new(cool_cap_fff_curve, 'Curve', 'Curve Result') @@ -3776,15 +3791,25 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita cool_eir_fff_act.setName("#{obj_name} eir clg act") # NOTE: heat pump (cooling) curves don't exhibit expected trends at extreme faults; - fault_program.addLine("Set a1_AF_Qgr_c = #{cool_cap_fff_curve.coefficient1Constant}") - fault_program.addLine("Set a2_AF_Qgr_c = #{cool_cap_fff_curve.coefficient2x}") - fault_program.addLine("Set a3_AF_Qgr_c = #{cool_cap_fff_curve.coefficient3xPOW2}") - fault_program.addLine("Set a1_AF_EIR_c = #{cool_eir_fff_curve.coefficient1Constant}") - fault_program.addLine("Set a2_AF_EIR_c = #{cool_eir_fff_curve.coefficient2x}") - fault_program.addLine("Set a3_AF_EIR_c = #{cool_eir_fff_curve.coefficient3xPOW2}") + if not clg_coil.is_a? OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit + fault_program.addLine("Set a1_AF_Qgr_c = #{cool_cap_fff_curve.coefficient1Constant}") + fault_program.addLine("Set a2_AF_Qgr_c = #{cool_cap_fff_curve.coefficient2x}") + fault_program.addLine("Set a3_AF_Qgr_c = #{cool_cap_fff_curve.coefficient3xPOW2}") + fault_program.addLine("Set a1_AF_EIR_c = #{cool_eir_fff_curve.coefficient1Constant}") + fault_program.addLine("Set a2_AF_EIR_c = #{cool_eir_fff_curve.coefficient2x}") + fault_program.addLine("Set a3_AF_EIR_c = #{cool_eir_fff_curve.coefficient3xPOW2}") + else + fault_program.addLine("Set a1_AF_Qgr_c = #{cool_cap_fff_curve.coefficient1Constant} + (#{cool_cap_fff_curve.coefficient2w}*#{var1_sensor.name}) + (#{cool_cap_fff_curve.coefficient3x}*#{var2_sensor.name}) + (#{cool_cap_fff_curve.coefficient5z}*#{var4_sensor.name})") + fault_program.addLine("Set a2_AF_Qgr_c = #{cool_cap_fff_curve.coefficient4y}") + fault_program.addLine('Set a3_AF_Qgr_c = 0') + fault_program.addLine("Set a1_AF_EIR_c = #{cool_eir_fff_curve.coefficient1Constant} + (#{cool_eir_fff_curve.coefficient2w}*#{var1_sensor.name}) + (#{cool_eir_fff_curve.coefficient3x}*#{var2_sensor.name}) + (#{cool_eir_fff_curve.coefficient5z}*#{var4_sensor.name})") + fault_program.addLine("Set a2_AF_EIR_c = #{cool_eir_fff_curve.coefficient4y}") + fault_program.addLine('Set a3_AF_EIR_c = 0') + end qgr_values, p_values, ff_chg_values = get_installation_quality_cooling_coeff(f_chg) + # charge defect impact fault_program.addLine("Set a1_CH_Qgr_c = #{qgr_values[0]}") fault_program.addLine("Set a2_CH_Qgr_c = #{qgr_values[1]}") fault_program.addLine("Set a3_CH_Qgr_c = #{qgr_values[2]}") @@ -3795,43 +3820,31 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita fault_program.addLine("Set a3_CH_P_c = #{p_values[2]}") fault_program.addLine("Set a4_CH_P_c = #{p_values[3]}") - ff_ch_c = 1.0 / (1.0 + (qgr_values[0] + (qgr_values[1] * ff_chg_values[0]) + (qgr_values[2] * ff_chg_values[1]) + (qgr_values[3] * f_chg)) * f_chg) - fault_program.addLine("Set FF_CH_c = #{ff_ch_c.round(3)}") - fault_program.addLine('Set q0_CH = a1_CH_Qgr_c') fault_program.addLine("Set q1_CH = a2_CH_Qgr_c*#{tin_sensor.name}") fault_program.addLine("Set q2_CH = a3_CH_Qgr_c*#{tout_sensor.name}") fault_program.addLine('Set q3_CH = a4_CH_Qgr_c*F_CH') fault_program.addLine('Set Y_CH_Q_c = 1 + ((q0_CH+(q1_CH)+(q2_CH)+(q3_CH))*F_CH)') - fault_program.addLine('Set q0_AF_CH = a1_AF_Qgr_c') - fault_program.addLine('Set q1_AF_CH = a2_AF_Qgr_c*FF_CH_c') - fault_program.addLine('Set q2_AF_CH = a3_AF_Qgr_c*FF_CH_c*FF_CH_c') - fault_program.addLine('Set p_CH_Q_c = Y_CH_Q_c/(q0_AF_CH+(q1_AF_CH)+(q2_AF_CH))') - fault_program.addLine('Set p1_CH = a1_CH_P_c') fault_program.addLine("Set p2_CH = a2_CH_P_c*#{tin_sensor.name}") fault_program.addLine("Set p3_CH = a3_CH_P_c*#{tout_sensor.name}") fault_program.addLine('Set p4_CH = a4_CH_P_c*F_CH') fault_program.addLine('Set Y_CH_COP_c = Y_CH_Q_c/(1 + (p1_CH+(p2_CH)+(p3_CH)+(p4_CH))*F_CH)') - fault_program.addLine('Set eir0_AF_CH = a1_AF_EIR_c') - fault_program.addLine('Set eir1_AF_CH = a2_AF_EIR_c*FF_CH_c') - fault_program.addLine('Set eir2_AF_CH = a3_AF_EIR_c*FF_CH_c*FF_CH_c') - fault_program.addLine('Set p_CH_COP_c = Y_CH_COP_c*(eir0_AF_CH+(eir1_AF_CH)+(eir2_AF_CH))') - + # air flow defect and charge defect combined to modify airflow curve output + ff_ch_c = 1.0 / (1.0 + (qgr_values[0] + (qgr_values[1] * ff_chg_values[0]) + (qgr_values[2] * ff_chg_values[1]) + (qgr_values[3] * f_chg)) * f_chg) + fault_program.addLine("Set FF_CH_c = #{ff_ch_c.round(3)}") fault_program.addLine("Set FF_AF_c = 1.0 + #{cool_airflow_rated_defect_ratio[speed].round(3)}") fault_program.addLine('Set FF_AF_comb_c = FF_CH_c * FF_AF_c') - fault_program.addLine('Set q0_AF_comb = a1_AF_Qgr_c') - fault_program.addLine('Set q1_AF_comb = a2_AF_Qgr_c*FF_AF_comb_c') - fault_program.addLine('Set q2_AF_comb = a3_AF_Qgr_c*FF_AF_comb_c*FF_AF_comb_c') - fault_program.addLine('Set p_AF_Q_c = q0_AF_comb+(q1_AF_comb)+(q2_AF_comb)') + fault_program.addLine('Set q_AF_CH = (a1_AF_Qgr_c) + (a2_AF_Qgr_c*FF_CH_c) + (a3_AF_Qgr_c*FF_CH_c*FF_CH_c)') + fault_program.addLine('Set eir_AF_CH = (a1_AF_EIR_c) + (a2_AF_EIR_c*FF_CH_c) + (a3_AF_EIR_c*FF_CH_c*FF_CH_c)') + fault_program.addLine('Set p_CH_Q_c = Y_CH_Q_c/q_AF_CH') + fault_program.addLine('Set p_CH_COP_c = Y_CH_COP_c*eir_AF_CH') - fault_program.addLine('Set eir0_AF_comb = a1_AF_EIR_c') - fault_program.addLine('Set eir1_AF_comb = a2_AF_EIR_c*FF_AF_comb_c') - fault_program.addLine('Set eir2_AF_comb = a3_AF_EIR_c*FF_AF_comb_c*FF_AF_comb_c') - fault_program.addLine('Set p_AF_COP_c = 1.0/(eir0_AF_comb+(eir1_AF_comb)+(eir2_AF_comb))') + fault_program.addLine('Set p_AF_Q_c = (a1_AF_Qgr_c) + (a2_AF_Qgr_c*FF_AF_comb_c) + (a3_AF_Qgr_c*FF_AF_comb_c*FF_AF_comb_c)') + fault_program.addLine('Set p_AF_COP_c = 1.0 / ((a1_AF_EIR_c) + (a2_AF_EIR_c*FF_AF_comb_c) + (a3_AF_EIR_c*FF_AF_comb_c*FF_AF_comb_c))') fault_program.addLine("Set #{cool_cap_fff_act.name} = (p_CH_Q_c * p_AF_Q_c)") fault_program.addLine("Set #{cool_eir_fff_act.name} = (1.0 / (p_CH_COP_c * p_AF_COP_c))") @@ -3848,6 +3861,20 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita num_speeds = htg_coil.stages.size heat_cap_fff_curves = htg_coil.stages.map { |stage| stage.heatingCapacityFunctionofFlowFractionCurve.to_CurveQuadratic.get } heat_eir_fff_curves = htg_coil.stages.map { |stage| stage.energyInputRatioFunctionofFlowFractionCurve.to_CurveQuadratic.get } + elsif htg_coil.is_a? OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit + num_speeds = 1 + heat_cap_fff_curves = [htg_coil.heatingCapacityCurve.to_CurveQuadLinear.get] # quadlinear curve, only forth term is for airflow + heat_eir_fff_curves = [htg_coil.heatingPowerConsumptionCurve.to_CurveQuadLinear.get] # quadlinear curve, only forth term is for airflow + # variables are the same for eir and cap curve + var1_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 1 Value') + var1_sensor.setName('Heat Cap Curve Var 1') + var1_sensor.setKeyName(heat_cap_fff_curves[0].name.to_s) + var2_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 2 Value') + var2_sensor.setName('Heat Cap Curve Var 2') + var2_sensor.setKeyName(heat_cap_fff_curves[0].name.to_s) + var4_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Performance Curve Input Variable 4 Value') + var4_sensor.setName('Heat Cap Curve Var 4') + var4_sensor.setKeyName(heat_cap_fff_curves[0].name.to_s) else fail 'heating coil not supported' end @@ -3860,15 +3887,26 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita heat_eir_fff_act = OpenStudio::Model::EnergyManagementSystemActuator.new(heat_eir_fff_curve, 'Curve', 'Curve Result') heat_eir_fff_act.setName("#{obj_name} eir htg act") - fault_program.addLine("Set a1_AF_Qgr_h = #{heat_cap_fff_curve.coefficient1Constant}") - fault_program.addLine("Set a2_AF_Qgr_h = #{heat_cap_fff_curve.coefficient2x}") - fault_program.addLine("Set a3_AF_Qgr_h = #{heat_cap_fff_curve.coefficient3xPOW2}") - fault_program.addLine("Set a1_AF_EIR_h = #{heat_eir_fff_curve.coefficient1Constant}") - fault_program.addLine("Set a2_AF_EIR_h = #{heat_eir_fff_curve.coefficient2x}") - fault_program.addLine("Set a3_AF_EIR_h = #{heat_eir_fff_curve.coefficient3xPOW2}") + # NOTE: heat pump (cooling) curves don't exhibit expected trends at extreme faults; + if not htg_coil.is_a? OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit + fault_program.addLine("Set a1_AF_Qgr_h = #{heat_cap_fff_curve.coefficient1Constant}") + fault_program.addLine("Set a2_AF_Qgr_h = #{heat_cap_fff_curve.coefficient2x}") + fault_program.addLine("Set a3_AF_Qgr_h = #{heat_cap_fff_curve.coefficient3xPOW2}") + fault_program.addLine("Set a1_AF_EIR_h = #{heat_eir_fff_curve.coefficient1Constant}") + fault_program.addLine("Set a2_AF_EIR_h = #{heat_eir_fff_curve.coefficient2x}") + fault_program.addLine("Set a3_AF_EIR_h = #{heat_eir_fff_curve.coefficient3xPOW2}") + else + fault_program.addLine("Set a1_AF_Qgr_h = #{heat_cap_fff_curve.coefficient1Constant} + (#{heat_cap_fff_curve.coefficient2w}*#{var1_sensor.name}) + (#{heat_cap_fff_curve.coefficient3x}*#{var2_sensor.name}) + (#{heat_cap_fff_curve.coefficient5z}*#{var4_sensor.name})") + fault_program.addLine("Set a2_AF_Qgr_h = #{heat_cap_fff_curve.coefficient4y}") + fault_program.addLine('Set a3_AF_Qgr_h = 0') + fault_program.addLine("Set a1_AF_EIR_h = #{heat_eir_fff_curve.coefficient1Constant} + (#{heat_eir_fff_curve.coefficient2w}*#{var1_sensor.name}) + (#{heat_eir_fff_curve.coefficient3x}*#{var2_sensor.name}) + (#{heat_eir_fff_curve.coefficient5z}*#{var4_sensor.name})") + fault_program.addLine("Set a2_AF_EIR_h = #{heat_eir_fff_curve.coefficient4y}") + fault_program.addLine('Set a3_AF_EIR_h = 0') + end qgr_values, p_values, ff_chg_values = get_installation_quality_heating_coeff(f_chg) + # charge defect impact fault_program.addLine("Set a1_CH_Qgr_h = #{qgr_values[0]}") fault_program.addLine("Set a2_CH_Qgr_h = #{qgr_values[1]}") fault_program.addLine("Set a3_CH_Qgr_h = #{qgr_values[2]}") @@ -3877,41 +3915,30 @@ def self.apply_installation_quality(model, heating_system, cooling_system, unita fault_program.addLine("Set a2_CH_P_h = #{p_values[1]}") fault_program.addLine("Set a3_CH_P_h = #{p_values[2]}") - ff_ch_h = 1 / (1 + (qgr_values[0] + qgr_values[1] * ff_chg_values[0] + qgr_values[2] * f_chg) * f_chg) - fault_program.addLine("Set FF_CH_h = #{ff_ch_h.round(3)}") - fault_program.addLine('Set qh1_CH = a1_CH_Qgr_h') fault_program.addLine("Set qh2_CH = a2_CH_Qgr_h*#{tout_sensor.name}") fault_program.addLine('Set qh3_CH = a3_CH_Qgr_h*F_CH') fault_program.addLine('Set Y_CH_Q_h = 1 + ((qh1_CH+(qh2_CH)+(qh3_CH))*F_CH)') - fault_program.addLine('Set qh0_AF_CH = a1_AF_Qgr_h') - fault_program.addLine('Set qh1_AF_CH = a2_AF_Qgr_h*FF_CH_h') - fault_program.addLine('Set qh2_AF_CH = a3_AF_Qgr_h*FF_CH_h*FF_CH_h') - fault_program.addLine('Set p_CH_Q_h = Y_CH_Q_h/(qh0_AF_CH + (qh1_AF_CH) +(qh2_AF_CH))') - fault_program.addLine('Set ph1_CH = a1_CH_P_h') fault_program.addLine("Set ph2_CH = a2_CH_P_h*#{tout_sensor.name}") fault_program.addLine('Set ph3_CH = a3_CH_P_h*F_CH') fault_program.addLine('Set Y_CH_COP_h = Y_CH_Q_h/(1 + ((ph1_CH+(ph2_CH)+(ph3_CH))*F_CH))') - fault_program.addLine('Set eirh0_AF_CH = a1_AF_EIR_h') - fault_program.addLine('Set eirh1_AF_CH = a2_AF_EIR_h*FF_CH_h') - fault_program.addLine('Set eirh2_AF_CH = a3_AF_EIR_h*FF_CH_h*FF_CH_h') - fault_program.addLine('Set p_CH_COP_h = Y_CH_COP_h*(eirh0_AF_CH + (eirh1_AF_CH) + (eirh2_AF_CH))') + # air flow defect and charge defect combined to modify airflow curve output + ff_ch_h = 1 / (1 + (qgr_values[0] + qgr_values[1] * ff_chg_values[0] + qgr_values[2] * f_chg) * f_chg) + fault_program.addLine("Set FF_CH_h = #{ff_ch_h.round(3)}") fault_program.addLine("Set FF_AF_h = 1.0 + #{heat_airflow_rated_defect_ratio[speed].round(3)}") fault_program.addLine('Set FF_AF_comb_h = FF_CH_h * FF_AF_h') - fault_program.addLine('Set qh0_AF_comb = a1_AF_Qgr_h') - fault_program.addLine('Set qh1_AF_comb = a2_AF_Qgr_h*FF_AF_comb_h') - fault_program.addLine('Set qh2_AF_comb = a3_AF_Qgr_h*FF_AF_comb_h*FF_AF_comb_h') - fault_program.addLine('Set p_AF_Q_h = qh0_AF_comb+(qh1_AF_comb)+(qh2_AF_comb)') + fault_program.addLine('Set qh_AF_CH = a1_AF_Qgr_h + (a2_AF_Qgr_h*FF_CH_h) + (a3_AF_Qgr_h*FF_CH_h*FF_CH_h)') + fault_program.addLine('Set eirh_AF_CH = a1_AF_EIR_h + (a2_AF_EIR_h*FF_CH_h) + (a3_AF_EIR_h*FF_CH_h*FF_CH_h)') + fault_program.addLine('Set p_CH_Q_h = Y_CH_Q_h / qh_AF_CH') + fault_program.addLine('Set p_CH_COP_h = Y_CH_COP_h * eirh_AF_CH') - fault_program.addLine('Set eirh0_AF_comb = a1_AF_EIR_h') - fault_program.addLine('Set eirh1_AF_comb = a2_AF_EIR_h*FF_AF_comb_h') - fault_program.addLine('Set eirh2_AF_comb = a3_AF_EIR_h*FF_AF_comb_h*FF_AF_comb_h') - fault_program.addLine('Set p_AF_COP_h = 1.0/(eirh0_AF_comb+(eirh1_AF_comb)+(eirh2_AF_comb))') + fault_program.addLine('Set p_AF_Q_h = a1_AF_Qgr_h + (a2_AF_Qgr_h*FF_AF_comb_h) + (a3_AF_Qgr_h*FF_AF_comb_h*FF_AF_comb_h)') + fault_program.addLine('Set p_AF_COP_h = 1.0 / ((a1_AF_EIR_h)+(a2_AF_EIR_h*FF_AF_comb_h)+(a3_AF_EIR_h*FF_AF_comb_h*FF_AF_comb_h))') fault_program.addLine("Set #{heat_cap_fff_act.name} = (p_CH_Q_h * p_AF_Q_h)") fault_program.addLine("Set #{heat_eir_fff_act.name} = 1.0 / (p_CH_COP_h * p_AF_COP_h)") @@ -4205,4 +4232,44 @@ def self.get_dehumidifier_default_values(capacity) return { rh_setpoint: rh_setpoint, ief: ief } end + + def self.get_default_hvac_efficiency_by_year_installed(year, hvac_type, fuel_type, units) + if [HPXML::HVACTypeWallFurnace, HPXML::HVACTypeFloorFurnace].include? hvac_type + # For wall/floor furnaces, map other fuel types to natural gas because the lookup table only provides efficiencies for natural gas. + fuel_type = HPXML::FuelTypeNaturalGas + end + + type_id = { HPXML::HVACTypeCentralAirConditioner => 'split_dx', + HPXML::HVACTypeRoomAirConditioner => 'packaged_dx', + HPXML::HVACTypeHeatPumpAirToAir => 'heat_pump', + HPXML::HVACTypeFurnace => 'central_furnace', + HPXML::HVACTypeWallFurnace => 'wall_furnace', + HPXML::HVACTypeFloorFurnace => 'wall_furnace', # floor furnaces mapped to wall furnaces + HPXML::HVACTypeBoiler => 'boiler' }[hvac_type] + + fuel_primary_id = { EPlus::FuelTypeElectricity => 'electric', + EPlus::FuelTypeNaturalGas => 'natural_gas', + EPlus::FuelTypeOil => 'fuel_oil', + EPlus::FuelTypeCoal => 'fuel_oil', # assumption + EPlus::FuelTypeWoodCord => 'fuel_oil', # assumption + EPlus::FuelTypeWoodPellets => 'fuel_oil', # assumption + EPlus::FuelTypePropane => 'lpg' }[EPlus.fuel_type(fuel_type)] + + metric_id = units.downcase + value = nil + lookup_year = 0 + CSV.foreach(File.join(File.dirname(__FILE__), 'lu_hvac_equipment_efficiency.csv'), headers: true) do |row| + next unless row['type_id'] == type_id + next unless row['fuel_primary_id'] == fuel_primary_id + next unless row['metric_id'] == metric_id + + row_year = Integer(row['year']) + if (row_year - year).abs <= (lookup_year - year).abs + lookup_year = row_year + value = Float(row['value']) + end + end + + return value + end end diff --git a/HPXMLtoOpenStudio/resources/hvac_sizing.rb b/HPXMLtoOpenStudio/resources/hvac_sizing.rb index 157d7189c1..8dfb4bc593 100644 --- a/HPXMLtoOpenStudio/resources/hvac_sizing.rb +++ b/HPXMLtoOpenStudio/resources/hvac_sizing.rb @@ -1554,7 +1554,6 @@ def self.apply_hvac_equipment_adjustments(hvac_sizing_values, weather, hvac, cfa elsif hvac.HeatType == HPXML::HVACTypeHeatPumpGroundToAir if hvac_sizing_values.Cool_Capacity > 0 - coil_bf = gshp_coil_bf hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Load @@ -1571,7 +1570,7 @@ def self.apply_hvac_equipment_adjustments(hvac_sizing_values, weather, hvac, cfa hvac_sizing_values.Cool_Capacity_Sens = hvac_sizing_values.Cool_Capacity * hvac.SHRRated[hvac.SizingSpeed] cool_Load_SensCap_Design = (hvac_sizing_values.Cool_Capacity_Sens * sensibleCap_CurveValue / - (1.0 + (1.0 - coil_bf * bypassFactor_CurveValue) * + (1.0 + (1.0 - gshp_coil_bf * bypassFactor_CurveValue) * (80.0 - @cool_setpoint) / (@cool_setpoint - hvac.LeavingAirTemp))) hvac_sizing_values.Cool_Airflow = calc_airflow_rate(cool_Load_SensCap_Design, (@cool_setpoint - hvac.LeavingAirTemp)) else @@ -1651,180 +1650,169 @@ def self.apply_hvac_installation_quality(hvac_sizing_values, weather, hvac) tout_cool = UnitConversions.convert(weather.design.CoolingDrybulb, 'F', 'C') tout_heat = UnitConversions.convert(weather.design.HeatingDrybulb, 'F', 'C') - if hvac.CoolType == HPXML::HVACTypeHeatPumpGroundToAir - if hvac.CoolingLoadFraction > 0 - # Cooling - coil_bf = gshp_coil_bf - # Calculate curve point w/ and w/o defect ratios - design_wb_temp = UnitConversions.convert(@wetbulb_indoor_cooling, 'f', 'k') - design_db_temp = UnitConversions.convert(@cool_setpoint, 'f', 'k') - design_w_temp = UnitConversions.convert(hvac.GSHP_design_chw, 'f', 'k') - design_vfr_air = UnitConversions.convert(hvac_sizing_values.Cool_Airflow, 'cfm', 'm^3/s') - design_vfr_air_defect = UnitConversions.convert(hvac_sizing_values.Cool_Airflow, 'cfm', 'm^3/s') * (1 + hvac.AirflowDefectRatioCooling) - # calculate water flow based on current capacity. - loop_flow = [1.0, UnitConversions.convert([hvac_sizing_values.Heat_Capacity, hvac_sizing_values.Cool_Capacity].max, 'Btu/hr', 'ton')].max.floor * 3.0 - loop_flow_m3s = UnitConversions.convert(loop_flow, 'gal/min', 'm^3/s') - - totalCap_CurveValue, sensibleCap_CurveValue = calc_gshp_clg_curve_value(hvac, design_wb_temp, design_db_temp, design_w_temp, design_vfr_air, loop_flow_m3s) - totalCap_CurveValue_d, sensibleCap_CurveValue_d = calc_gshp_clg_curve_value(hvac, design_wb_temp, design_db_temp, design_w_temp, design_vfr_air_defect, loop_flow_m3s) - - cap_clg_ratio = 1 / (totalCap_CurveValue_d / totalCap_CurveValue) - if cap_clg_ratio > 1 - hvac_sizing_values.Cool_Capacity *= cap_clg_ratio - hvac_sizing_values.Cool_Capacity_Sens = hvac_sizing_values.Cool_Capacity * hvac.SHRRated[hvac.SizingSpeed] - bypassFactor_CurveValue = MathTools.biquadratic(@wetbulb_indoor_cooling, @cool_setpoint, gshp_coil_bf_ft_spec) - - cool_Load_SensCap_Design = (hvac_sizing_values.Cool_Capacity_Sens * sensibleCap_CurveValue / - (1.0 + (1.0 - coil_bf * bypassFactor_CurveValue) * - (80.0 - @cool_setpoint) / (@cool_setpoint - hvac.LeavingAirTemp))) - hvac_sizing_values.Cool_Airflow = calc_airflow_rate(cool_Load_SensCap_Design, (@cool_setpoint - hvac.LeavingAirTemp)) - end - end - - # Heating - if hvac.HeatingLoadFraction > 0 - # Calculate curve point w/ and w/o defect ratios - design_db_temp = UnitConversions.convert(@heat_setpoint, 'f', 'k') - design_w_temp = UnitConversions.convert(hvac.GSHP_design_chw, 'f', 'k') - design_vfr_air = UnitConversions.convert(hvac_sizing_values.Heat_Airflow, 'cfm', 'm^3/s') - design_vfr_air_defect = UnitConversions.convert(hvac_sizing_values.Heat_Airflow, 'cfm', 'm^3/s') * (1 + hvac.AirflowDefectRatioHeating) - # calculate water flow based on current capacity. - loop_flow = [1.0, UnitConversions.convert([hvac_sizing_values.Heat_Capacity, hvac_sizing_values.Cool_Capacity].max, 'Btu/hr', 'ton')].max.floor * 3.0 - loop_flow_m3s = UnitConversions.convert(loop_flow, 'gal/min', 'm^3/s') + f_ch = hvac.ChargeDefectRatio.round(3) - totalCap_CurveValue = calc_gshp_htg_curve_value(hvac, design_db_temp, design_w_temp, design_vfr_air, loop_flow_m3s) - totalCap_CurveValue_d = calc_gshp_htg_curve_value(hvac, design_db_temp, design_w_temp, design_vfr_air_defect, loop_flow_m3s) + # Cooling + if [HPXML::HVACTypeHeatPumpAirToAir, + HPXML::HVACTypeCentralAirConditioner, + HPXML::HVACTypeHeatPumpMiniSplit, + HPXML::HVACTypeMiniSplitAirConditioner, + HPXML::HVACTypeHeatPumpGroundToAir].include?(hvac.CoolType) && hvac.CoolingLoadFraction > 0 - cap_htg_ratio = 1 / (totalCap_CurveValue_d / totalCap_CurveValue) - if cap_htg_ratio > 1 - hvac_sizing_values.Heat_Capacity *= cap_htg_ratio - hvac_sizing_values.Heat_Airflow = calc_airflow_rate(hvac_sizing_values.Heat_Capacity, (hvac.SupplyAirTemp - @heat_setpoint)) - end - end - else - f_ch = hvac.ChargeDefectRatio.round(3) - - # Cooling - if [HPXML::HVACTypeHeatPumpAirToAir, - HPXML::HVACTypeCentralAirConditioner, - HPXML::HVACTypeHeatPumpMiniSplit, - HPXML::HVACTypeMiniSplitAirConditioner].include?(hvac.CoolType) && hvac.CoolingLoadFraction > 0 - cool_airflow_rated_defect_ratio = [] - cool_airflow_rated_ratio = [] - cool_cfm_m3s = UnitConversions.convert(hvac_sizing_values.Cool_Airflow, 'cfm', 'm^3/s') + cool_airflow_rated_defect_ratio = [] + cool_airflow_rated_ratio = [] + cool_cfm_m3s = UnitConversions.convert(hvac_sizing_values.Cool_Airflow, 'cfm', 'm^3/s') + if hvac.CoolType != HPXML::HVACTypeHeatPumpGroundToAir for speed in 0..(hvac.NumSpeedsCooling - 1) cool_airflow_rated_ratio << cool_cfm_m3s / HVAC.calc_rated_airflow(hvac_sizing_values.Cool_Capacity, hvac.RatedCFMperTonCooling[speed], hvac.CapacityRatioCooling[speed]) cool_airflow_rated_defect_ratio << cool_cfm_m3s * (1 + hvac.AirflowDefectRatioCooling) / HVAC.calc_rated_airflow(hvac_sizing_values.Cool_Capacity, hvac.RatedCFMperTonCooling[speed], hvac.CapacityRatioCooling[speed]) end - if not cool_airflow_rated_defect_ratio.empty? - cap_clg_ratios = [] - for speed in 0..(hvac.NumSpeedsCooling - 1) - # NOTE: heat pump (cooling) curves don't exhibit expected trends at extreme faults; + else + cool_airflow_rated_ratio = [1.0] # actual air flow is equal to rated (before applying defect ratio) in current methodology + cool_airflow_rated_defect_ratio = [1 + hvac.AirflowDefectRatioCooling] + end + if not cool_airflow_rated_defect_ratio.empty? + cap_clg_ratios = [] + for speed in 0..(hvac.NumSpeedsCooling - 1) + # NOTE: heat pump (cooling) curves don't exhibit expected trends at extreme faults; + if hvac.CoolType != HPXML::HVACTypeHeatPumpGroundToAir a1_AF_Qgr_c = hvac.COOL_CAP_FFLOW_SPEC[speed][0] a2_AF_Qgr_c = hvac.COOL_CAP_FFLOW_SPEC[speed][1] a3_AF_Qgr_c = hvac.COOL_CAP_FFLOW_SPEC[speed][2] + else + a1_AF_Qgr_c = 1 - hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][3] + a2_AF_Qgr_c = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][3] + a3_AF_Qgr_c = 0 + end - p_values, qgr_values, ff_chg_values = HVAC.get_installation_quality_cooling_coeff(f_ch) + p_values, qgr_values, ff_chg_values = HVAC.get_installation_quality_cooling_coeff(f_ch) - a1_CH_Qgr_c = qgr_values[0] - a2_CH_Qgr_c = qgr_values[1] - a3_CH_Qgr_c = qgr_values[2] - a4_CH_Qgr_c = qgr_values[3] + a1_CH_Qgr_c = qgr_values[0] + a2_CH_Qgr_c = qgr_values[1] + a3_CH_Qgr_c = qgr_values[2] + a4_CH_Qgr_c = qgr_values[3] - ff_ch_c = (1.0 / (1.0 + (qgr_values[0] + (qgr_values[1] * ff_chg_values[0]) + (qgr_values[2] * ff_chg_values[1]) + (qgr_values[3] * f_ch)) * f_ch)).round(3) + q0_CH = a1_CH_Qgr_c + q1_CH = a2_CH_Qgr_c * tin_cool + q2_CH = a3_CH_Qgr_c * tout_cool + q3_CH = a4_CH_Qgr_c * f_ch + y_CH_Q_c = 1 + ((q0_CH + q1_CH + q2_CH + q3_CH) * f_ch) - q0_CH = a1_CH_Qgr_c - q1_CH = a2_CH_Qgr_c * tin_cool - q2_CH = a3_CH_Qgr_c * tout_cool - q3_CH = a4_CH_Qgr_c * f_ch - y_CH_Q_c = 1 + ((q0_CH + q1_CH + q2_CH + q3_CH) * f_ch) + ff_ch_c = (1.0 / (1.0 + (qgr_values[0] + (qgr_values[1] * ff_chg_values[0]) + (qgr_values[2] * ff_chg_values[1]) + (qgr_values[3] * f_ch)) * f_ch)).round(3) + ff_AF_c = cool_airflow_rated_defect_ratio[speed].round(3) + ff_AF_comb_c = ff_ch_c * ff_AF_c - q0_AF_CH = a1_AF_Qgr_c - q1_AF_CH = a2_AF_Qgr_c * ff_ch_c - q2_AF_CH = a3_AF_Qgr_c * ff_ch_c * ff_ch_c - p_CH_Q_c = y_CH_Q_c / (q0_AF_CH + q1_AF_CH + q2_AF_CH) + q_AF_CH = a1_AF_Qgr_c + (a2_AF_Qgr_c * ff_ch_c) + (a3_AF_Qgr_c * ff_ch_c * ff_ch_c) + p_CH_Q_c = y_CH_Q_c / q_AF_CH - ff_AF_c = cool_airflow_rated_defect_ratio[speed].round(3) - ff_AF_c_nodefect = cool_airflow_rated_ratio[speed].round(3) - ff_AF_comb_c = ff_ch_c * ff_AF_c + p_AF_Q_c = a1_AF_Qgr_c + (a2_AF_Qgr_c * ff_AF_comb_c) + (a3_AF_Qgr_c * ff_AF_comb_c * ff_AF_comb_c) - q0_AF_comb = a1_AF_Qgr_c - q1_AF_comb = a2_AF_Qgr_c * ff_AF_comb_c - q2_AF_comb = a3_AF_Qgr_c * ff_AF_comb_c * ff_AF_comb_c - p_AF_Q_c = q0_AF_comb + q1_AF_comb + q2_AF_comb + cool_cap_fff = (p_CH_Q_c * p_AF_Q_c) - cool_cap_fff = (p_CH_Q_c * p_AF_Q_c) + # calculate the capacity impact by defects + ff_AF_c_nodefect = cool_airflow_rated_ratio[speed].round(3) + if hvac.CoolType != HPXML::HVACTypeHeatPumpGroundToAir cool_cap_fff_nodefect = a1_AF_Qgr_c + a2_AF_Qgr_c * ff_AF_c_nodefect + a3_AF_Qgr_c * ff_AF_c_nodefect * ff_AF_c_nodefect - cap_clg_ratio = 1 / (cool_cap_fff / cool_cap_fff_nodefect) - cap_clg_ratios << cap_clg_ratio + else + cool_cap_fff_nodefect = 1 end - prev_capacity = hvac_sizing_values.Cool_Capacity - hvac_sizing_values.Cool_Capacity *= cap_clg_ratios.max - hvac_sizing_values.Cool_Capacity_Sens = hvac_sizing_values.Cool_Capacity * hvac.SHRRated[hvac.SizingSpeed] + cap_clg_ratio = 1 / (cool_cap_fff / cool_cap_fff_nodefect) + cap_clg_ratios << cap_clg_ratio + end + + prev_capacity = hvac_sizing_values.Cool_Capacity + hvac_sizing_values.Cool_Capacity *= cap_clg_ratios.max + hvac_sizing_values.Cool_Capacity_Sens = hvac_sizing_values.Cool_Capacity * hvac.SHRRated[hvac.SizingSpeed] + if hvac.CoolType != HPXML::HVACTypeHeatPumpGroundToAir if prev_capacity > 0 # Preserve cfm/ton hvac_sizing_values.Cool_Airflow = hvac_sizing_values.Cool_Airflow * hvac_sizing_values.Cool_Capacity / prev_capacity else hvac_sizing_values.Cool_Airflow = 0.0 end + else + design_wb_temp = UnitConversions.convert(@wetbulb_indoor_cooling, 'f', 'k') + design_db_temp = UnitConversions.convert(@cool_setpoint, 'f', 'k') + design_w_temp = UnitConversions.convert(hvac.GSHP_design_chw, 'f', 'k') + # calculate water flow based on current capacity. + loop_flow = [1.0, UnitConversions.convert([hvac_sizing_values.Heat_Capacity, hvac_sizing_values.Cool_Capacity].max, 'Btu/hr', 'ton')].max.floor * 3.0 + sensibleCap_CurveValue = calc_gshp_clg_curve_value(hvac, design_wb_temp, design_db_temp, design_w_temp, UnitConversions.convert(hvac_sizing_values.Cool_Airflow, 'cfm', 'm^3/s'), UnitConversions.convert(loop_flow, 'gal/min', 'm^3/s'))[1] + bypassFactor_CurveValue = MathTools.biquadratic(@wetbulb_indoor_cooling, @cool_setpoint, gshp_coil_bf_ft_spec) + cool_Load_SensCap_Design = (hvac_sizing_values.Cool_Capacity_Sens * sensibleCap_CurveValue / + (1.0 + (1.0 - gshp_coil_bf * bypassFactor_CurveValue) * + (80.0 - @cool_setpoint) / (@cool_setpoint - hvac.LeavingAirTemp))) + hvac_sizing_values.Cool_Airflow = calc_airflow_rate(cool_Load_SensCap_Design, (@cool_setpoint - hvac.LeavingAirTemp)) end end + end - # Heating - if [HPXML::HVACTypeHeatPumpAirToAir, - HPXML::HVACTypeHeatPumpMiniSplit].include?(hvac.HeatType) && hvac.HeatingLoadFraction > 0 - heat_airflow_rated_defect_ratio = [] - heat_airflow_rated_ratio = [] - heat_cfm_m3s = UnitConversions.convert(hvac_sizing_values.Heat_Airflow, 'cfm', 'm^3/s') + # Heating + if [HPXML::HVACTypeHeatPumpAirToAir, + HPXML::HVACTypeHeatPumpMiniSplit, + HPXML::HVACTypeHeatPumpGroundToAir].include?(hvac.HeatType) && hvac.HeatingLoadFraction > 0 + heat_airflow_rated_defect_ratio = [] + heat_airflow_rated_ratio = [] + heat_cfm_m3s = UnitConversions.convert(hvac_sizing_values.Heat_Airflow, 'cfm', 'm^3/s') + if hvac.HeatType != HPXML::HVACTypeHeatPumpGroundToAir for speed in 0..(hvac.NumSpeedsHeating - 1) heat_airflow_rated_ratio << heat_cfm_m3s / HVAC.calc_rated_airflow(hvac_sizing_values.Heat_Capacity, hvac.RatedCFMperTonHeating[speed], hvac.CapacityRatioHeating[speed]) heat_airflow_rated_defect_ratio << heat_cfm_m3s * (1 + hvac.AirflowDefectRatioHeating) / HVAC.calc_rated_airflow(hvac_sizing_values.Heat_Capacity, hvac.RatedCFMperTonHeating[speed], hvac.CapacityRatioHeating[speed]) end - if not heat_airflow_rated_defect_ratio.empty? - cap_htg_ratios = [] - for speed in 0..(hvac.NumSpeedsHeating - 1) + else + heat_airflow_rated_ratio = [1.0] # actual air flow is equal to rated (before applying defect ratio) in current methodology + heat_airflow_rated_defect_ratio = [1 + hvac.AirflowDefectRatioHeating] + end + if not heat_airflow_rated_defect_ratio.empty? + cap_htg_ratios = [] + for speed in 0..(hvac.NumSpeedsHeating - 1) + if hvac.HeatType != HPXML::HVACTypeHeatPumpGroundToAir a1_AF_Qgr_h = hvac.HEAT_CAP_FFLOW_SPEC[speed][0] a2_AF_Qgr_h = hvac.HEAT_CAP_FFLOW_SPEC[speed][1] a3_AF_Qgr_h = hvac.HEAT_CAP_FFLOW_SPEC[speed][2] + else + # Fixme: Please review these coefficients. Relationship independent of other variables, to mimic fFF curves. + a1_AF_Qgr_h = 1 - hvac.HEAT_CAP_CURVE_SPEC[hvac.SizingSpeed][3] + a2_AF_Qgr_h = hvac.HEAT_CAP_CURVE_SPEC[hvac.SizingSpeed][3] + a3_AF_Qgr_h = 0 + end - p_values, qgr_values, ff_chg_values = HVAC.get_installation_quality_heating_coeff(f_ch) + p_values, qgr_values, ff_chg_values = HVAC.get_installation_quality_heating_coeff(f_ch) - a1_CH_Qgr_h = qgr_values[0] - a2_CH_Qgr_h = qgr_values[1] - a3_CH_Qgr_h = qgr_values[2] + a1_CH_Qgr_h = qgr_values[0] + a2_CH_Qgr_h = qgr_values[1] + a3_CH_Qgr_h = qgr_values[2] - ff_ch_h = (1 / (1 + (qgr_values[0] + qgr_values[1] * ff_chg_values[0] + qgr_values[2] * f_ch) * f_ch)).round(3) + qh1_CH = a1_CH_Qgr_h + qh2_CH = a2_CH_Qgr_h * tout_heat + qh3_CH = a3_CH_Qgr_h * f_ch + y_CH_Q_h = 1 + ((qh1_CH + qh2_CH + qh3_CH) * f_ch) - qh1_CH = a1_CH_Qgr_h - qh2_CH = a2_CH_Qgr_h * tout_heat - qh3_CH = a3_CH_Qgr_h * f_ch - y_CH_Q_h = 1 + ((qh1_CH + qh2_CH + qh3_CH) * f_ch) + ff_ch_h = (1 / (1 + (qgr_values[0] + qgr_values[1] * ff_chg_values[0] + qgr_values[2] * f_ch) * f_ch)).round(3) + ff_AF_h = heat_airflow_rated_defect_ratio[speed].round(3) + ff_AF_comb_h = ff_ch_h * ff_AF_h - qh0_AF_CH = a1_AF_Qgr_h - qh1_AF_CH = a2_AF_Qgr_h * ff_ch_h - qh2_AF_CH = a3_AF_Qgr_h * ff_ch_h * ff_ch_h - p_CH_Q_h = y_CH_Q_h / (qh0_AF_CH + qh1_AF_CH + qh2_AF_CH) + qh_AF_CH = a1_AF_Qgr_h + (a2_AF_Qgr_h * ff_ch_h) + (a3_AF_Qgr_h * ff_ch_h * ff_ch_h) + p_CH_Q_h = y_CH_Q_h / qh_AF_CH - ff_AF_h = heat_airflow_rated_defect_ratio[speed].round(3) - ff_AF_h_nodefect = heat_airflow_rated_ratio[speed].round(3) - ff_AF_comb_h = ff_ch_h * ff_AF_h + p_AF_Q_h = a1_AF_Qgr_h + (a2_AF_Qgr_h * ff_AF_comb_h) + (a3_AF_Qgr_h * ff_AF_comb_h * ff_AF_comb_h) - qh0_AF_comb = a1_AF_Qgr_h - qh1_AF_comb = a2_AF_Qgr_h * ff_AF_comb_h - qh2_AF_comb = a3_AF_Qgr_h * ff_AF_comb_h * ff_AF_comb_h - p_AF_Q_h = qh0_AF_comb + qh1_AF_comb + qh2_AF_comb + heat_cap_fff = (p_CH_Q_h * p_AF_Q_h) - heat_cap_fff = (p_CH_Q_h * p_AF_Q_h) + # calculate the capacity impact by defects + ff_AF_h_nodefect = heat_airflow_rated_ratio[speed].round(3) + if hvac.HeatType != HPXML::HVACTypeHeatPumpGroundToAir heat_cap_fff_nodefect = a1_AF_Qgr_h + a2_AF_Qgr_h * ff_AF_h_nodefect + a3_AF_Qgr_h * ff_AF_h_nodefect * ff_AF_h_nodefect - cap_htg_ratio = 1 / (heat_cap_fff / heat_cap_fff_nodefect) - cap_htg_ratios << cap_htg_ratio - end - prev_capacity = hvac_sizing_values.Heat_Capacity - hvac_sizing_values.Heat_Capacity *= cap_htg_ratios.max - if prev_capacity > 0 # Preserve cfm/ton - hvac_sizing_values.Heat_Airflow = hvac_sizing_values.Heat_Airflow * hvac_sizing_values.Heat_Capacity / prev_capacity else - hvac_sizing_values.Heat_Airflow = 0.0 + heat_cap_fff_nodefect = 1 end + cap_htg_ratio = 1 / (heat_cap_fff / heat_cap_fff_nodefect) + cap_htg_ratios << cap_htg_ratio + end + prev_capacity = hvac_sizing_values.Heat_Capacity + hvac_sizing_values.Heat_Capacity *= cap_htg_ratios.max + if prev_capacity > 0 # Preserve cfm/ton + hvac_sizing_values.Heat_Airflow = hvac_sizing_values.Heat_Airflow * hvac_sizing_values.Heat_Capacity / prev_capacity + else + hvac_sizing_values.Heat_Airflow = 0.0 end end end @@ -2059,24 +2047,29 @@ def self.calc_airflow_rate(load_or_capacity, deltaT) return load_or_capacity / (1.1 * @acf * deltaT) end - def self.calc_gshp_clg_curve_value(hvac, wb_temp, db_temp, w_temp, vfr_air, loop_flow) + def self.calc_gshp_clg_curve_value(hvac, wb_temp, db_temp, w_temp, vfr_air, loop_flow = nil, rated_vfr_air = nil) # Reference conditions in thesis with largest capacity: # See Appendix B Figure B.3 of https://hvac.okstate.edu/sites/default/files/pubs/theses/MS/27-Tang_Thesis_05.pdf ref_temp = 283 # K - ref_vfr_air = UnitConversions.convert(1200, 'cfm', 'm^3/s') + if rated_vfr_air.nil? + # rated volume flow rate used to fit the curve + ref_vfr_air = UnitConversions.convert(1200, 'cfm', 'm^3/s') + else + ref_vfr_air = UnitConversions.convert(rated_vfr_air, 'cfm', 'm^3/s') + end ref_vfr_water = 0.000284 - a_1 = hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed][0] - a_2 = hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed][1] - a_3 = hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed][2] - a_4 = hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed][3] - a_5 = hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed][4] - b_1 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][0] - b_2 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][1] - b_3 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][2] - b_4 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][3] - b_5 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][4] - b_6 = hvac.COOL_SH_FT_SPEC[hvac.SizingSpeed][5] + a_1 = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][0] + a_2 = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][1] + a_3 = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][2] + a_4 = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][3] + a_5 = hvac.COOL_CAP_CURVE_SPEC[hvac.SizingSpeed][4] + b_1 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][0] + b_2 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][1] + b_3 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][2] + b_4 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][3] + b_5 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][4] + b_6 = hvac.COOL_SH_CURVE_SPEC[hvac.SizingSpeed][5] if not loop_flow.nil? totalCap_CurveValue = a_1 + wb_temp / ref_temp * a_2 + w_temp / ref_temp * a_3 + vfr_air / ref_vfr_air * a_4 + loop_flow / ref_vfr_water * a_5 @@ -2405,6 +2398,15 @@ def self.get_hvac_information(hvac_system) if hpxml_hvac_ap.respond_to? :heat_cap_fflow_spec hvac.HEAT_CAP_FFLOW_SPEC = hpxml_hvac_ap.heat_cap_fflow_spec end + if hpxml_hvac_ap.respond_to? :cool_cap_curve_spec + hvac.COOL_CAP_CURVE_SPEC = hpxml_hvac_ap.cool_cap_curve_spec + end + if hpxml_hvac_ap.respond_to? :cool_sh_curve_spec + hvac.COOL_SH_CURVE_SPEC = hpxml_hvac_ap.cool_sh_curve_spec + end + if hpxml_hvac_ap.respond_to? :heat_cap_curve_spec + hvac.HEAT_CAP_CURVE_SPEC = hpxml_hvac_ap.cool_cap_curve_spec + end # WLHP if hpxml_hvac.respond_to? :heating_efficiency_cop @@ -3372,6 +3374,7 @@ def initialize :RatedCFMperTonCooling, :RatedCFMperTonHeating, :ChargeDefectRatio, :COOL_CAP_FT_SPEC, :HEAT_CAP_FT_SPEC, :COOL_SH_FT_SPEC, :COOL_CAP_FFLOW_SPEC, :HEAT_CAP_FFLOW_SPEC, + :COOL_CAP_CURVE_SPEC, :COOL_SH_CURVE_SPEC, :HEAT_CAP_CURVE_SPEC, :SHRRated, :CapacityRatioCooling, :CapacityRatioHeating, :OverSizeLimit, :OverSizeDelta, :HeatingEIR, :CoolingEIR, :SizingSpeed, :HeatingCOP, diff --git a/HPXMLtoOpenStudio/resources/lu_hvac_equipment_efficiency.csv b/HPXMLtoOpenStudio/resources/lu_hvac_equipment_efficiency.csv new file mode 100644 index 0000000000..7d148573d0 --- /dev/null +++ b/HPXMLtoOpenStudio/resources/lu_hvac_equipment_efficiency.csv @@ -0,0 +1,493 @@ +year,performance_id,category_id,type_id,region_id,fuel_primary_id,metric_id,units_id,value +1970,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1971,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1972,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1973,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1974,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1975,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1976,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1977,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1978,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1979,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1980,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1981,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1982,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1983,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1984,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1985,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1986,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1987,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1988,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1989,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1990,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1991,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1992,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1993,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.05 +1994,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9 +1995,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.03 +1996,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.08 +1997,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.09 +1998,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.08 +1999,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.07 +2000,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.3 +2001,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.63 +2002,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.75 +2003,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.75 +2004,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.71 +2005,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.95 +2006,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,10.02 +2007,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.81 +2008,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.93 +2009,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.93 +2010,shipment_weighted,cooling,packaged_dx,,electric,eer,btu/wh,9.93 +1970,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1971,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1972,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1973,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1974,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1975,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1976,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1977,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1978,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1979,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1980,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1981,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8 +1982,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.31 +1983,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.43 +1984,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.66 +1985,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.82 +1986,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.87 +1987,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,8.97 +1988,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,9.11 +1989,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,9.25 +1990,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,9.31 +1991,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,9.49 +1992,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.46 +1993,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.56 +1994,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.61 +1995,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.68 +1996,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.68 +1997,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.66 +1998,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.92 +1999,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.96 +2000,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,10.95 +2001,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,11.07 +2002,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,11.07 +2003,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,11.19 +2004,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,11.29 +2005,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,11.32 +2006,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,13.17 +2007,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,13.66 +2008,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,13.76 +2009,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,13.76 +2010,shipment_weighted,cooling,split_dx,,electric,seer,btu/wh,13.76 +1970,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1971,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1972,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1973,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1974,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1975,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1976,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1977,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1978,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1979,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1980,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1981,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1982,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1983,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1984,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1985,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1986,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1987,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9 +1988,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9.13 +1989,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9.26 +1990,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9.46 +1991,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,9.77 +1992,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,10.6 +1993,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,10.86 +1994,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,10.94 +1995,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,10.97 +1996,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11 +1997,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,10.97 +1998,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.29 +1999,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.29 +2000,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.21 +2001,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.3 +2002,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.31 +2003,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.46 +2004,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.56 +2005,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,11.6 +2006,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,13.17 +2007,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,13.66 +2008,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,13.76 +2009,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,13.76 +2010,shipment_weighted,cooling,heat_pump,,electric,seer,btu/wh,13.76 +1970,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1971,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1972,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1973,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1974,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1975,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1976,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1977,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1978,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1979,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1980,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1981,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1982,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1983,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.72 +1984,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.726 +1985,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.729 +1986,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.737 +1987,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.743 +1988,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.749 +1989,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.747 +1990,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.767 +1991,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.775 +1992,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.821 +1993,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.824 +1994,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.824 +1995,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.823 +1996,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.827 +1997,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.829 +1998,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.826 +1999,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.826 +2000,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.826 +2001,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.831 +2002,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.831 +2003,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.835 +2004,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.836 +2005,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.839 +2006,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.84 +2007,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.841 +2008,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.848 +2009,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.848 +2010,shipment_weighted,heating,central_furnace,,natural_gas,afue,btu/btu,0.848 +1970,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1971,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1972,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1973,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1974,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1975,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1976,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1977,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1978,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1979,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1980,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1981,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1982,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1983,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1984,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1985,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1986,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1987,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1988,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1989,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1990,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1991,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1992,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1993,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1994,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1995,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1996,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1997,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1998,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1999,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2000,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2001,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2002,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2003,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2004,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2005,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2006,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2007,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2008,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2009,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +2010,shipment_weighted,heating,central_furnace,,electric,afue,btu/btu,0.98 +1970,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.72 +1971,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.72 +1972,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.736 +1973,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.736 +1974,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.736 +1975,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.736 +1976,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.741 +1977,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.745 +1978,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.75 +1979,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.755 +1980,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.76 +1981,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.768 +1982,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.775 +1983,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.783 +1984,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.786 +1985,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.786 +1986,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.796 +1987,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.798 +1988,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.804 +1989,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.804 +1990,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.803 +1991,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.808 +1992,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.808 +1993,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1994,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1995,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1996,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1997,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1998,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1999,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2000,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2001,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2002,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2003,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2004,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2005,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2006,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2007,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2008,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2009,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +2010,shipment_weighted,heating,central_furnace,,fuel_oil,afue,btu/btu,0.809 +1970,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1971,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1972,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1973,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1974,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1975,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1976,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1977,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1978,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1979,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1980,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1981,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1982,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1983,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.72 +1984,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.73 +1985,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.738 +1986,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.743 +1987,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.751 +1988,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.758 +1989,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.755 +1990,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.757 +1991,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.769 +1992,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.832 +1993,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.838 +1994,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.839 +1995,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +1996,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +1997,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +1998,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +1999,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2000,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2001,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2002,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2003,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2004,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2005,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2006,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2007,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2008,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2009,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +2010,shipment_weighted,heating,central_furnace,,lpg,afue,btu/btu,0.841 +1970,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.5 +1971,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.548 +1972,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1973,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1974,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1975,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1976,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1977,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1978,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1979,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1980,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.595 +1981,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.631 +1982,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.631 +1983,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.631 +1984,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.631 +1985,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.631 +1986,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.642 +1987,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.642 +1988,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.642 +1989,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1990,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1991,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1992,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1993,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1994,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1995,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1996,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1997,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1998,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1999,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2000,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2001,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2002,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2003,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2004,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2005,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2006,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2007,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2008,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2009,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +2010,shipment_weighted,heating,wall_furnace,,natural_gas,afue,btu/btu,0.656 +1970,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.7 +1971,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.712 +1972,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1973,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1974,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1975,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1976,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1977,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1978,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1979,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1980,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.723 +1981,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.774 +1982,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.774 +1983,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.774 +1984,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.774 +1985,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.774 +1986,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.782 +1987,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.782 +1988,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.782 +1989,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1990,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1991,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1992,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1993,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1994,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1995,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1996,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1997,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1998,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1999,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2000,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2001,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2002,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2003,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2004,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2005,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2006,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2007,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2008,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2009,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +2010,shipment_weighted,heating,boiler,,natural_gas,afue,btu/btu,0.797 +1970,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.72 +1971,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.736 +1972,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1973,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1974,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1975,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1976,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1977,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1978,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1979,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1980,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.752 +1981,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.774 +1982,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.774 +1983,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.774 +1984,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.774 +1985,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.774 +1986,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.816 +1987,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.816 +1988,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.816 +1989,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1990,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1991,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1992,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1993,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1994,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1995,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1996,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1997,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1998,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1999,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2000,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2001,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2002,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2003,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2004,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2005,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2006,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2007,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2008,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2009,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +2010,shipment_weighted,heating,boiler,,fuel_oil,afue,btu/btu,0.831 +1970,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.72 +1971,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.736 +1972,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1973,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1974,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1975,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1976,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1977,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1978,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1979,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1980,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.752 +1981,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.774 +1982,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.774 +1983,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.774 +1984,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.774 +1985,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.774 +1986,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.816 +1987,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.816 +1988,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.816 +1989,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1990,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1991,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1992,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1993,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1994,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1995,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1996,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1997,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1998,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1999,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2000,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2001,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2002,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2003,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2004,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2005,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2006,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2007,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2008,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2009,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +2010,shipment_weighted,heating,boiler,,lpg,afue,btu/btu,0.831 +1970,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1971,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1972,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1973,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1974,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1975,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1976,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1977,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1978,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1979,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1980,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1981,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1982,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1983,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1984,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1985,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.5 +1986,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.55 +1987,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.71 +1988,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.88 +1989,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,6.92 +1990,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.03 +1991,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.06 +1992,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.1 +1993,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.1 +1994,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.1 +1995,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.1 +1996,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +1997,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.1 +1998,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +1999,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2000,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2001,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2002,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2003,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2004,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2005,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.4 +2006,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.9 +2007,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.9 +2008,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.9 +2009,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.9 +2010,shipment_weighted,heating,heat_pump,,electric,hspf,btu/wh,7.9 diff --git a/HPXMLtoOpenStudio/resources/lu_water_heater_efficiency.csv b/HPXMLtoOpenStudio/resources/lu_water_heater_efficiency.csv new file mode 100644 index 0000000000..30933e665e --- /dev/null +++ b/HPXMLtoOpenStudio/resources/lu_water_heater_efficiency.csv @@ -0,0 +1,157 @@ +year,performance_id,type_id,fuel_primary_id,metric_id,units_id,value +1972,shipment_weighted,storage,electric,EF,none,0.798 +1973,shipment_weighted,storage,electric,EF,none,0.798 +1974,shipment_weighted,storage,electric,EF,none,0.798 +1975,shipment_weighted,storage,electric,EF,none,0.798 +1976,shipment_weighted,storage,electric,EF,none,0.799 +1977,shipment_weighted,storage,electric,EF,none,0.799 +1978,shipment_weighted,storage,electric,EF,none,0.8 +1979,shipment_weighted,storage,electric,EF,none,0.801 +1980,shipment_weighted,storage,electric,EF,none,0.802 +1981,shipment_weighted,storage,electric,EF,none,0.803 +1982,shipment_weighted,storage,electric,EF,none,0.804 +1983,shipment_weighted,storage,electric,EF,none,0.806 +1984,shipment_weighted,storage,electric,EF,none,0.809 +1985,shipment_weighted,storage,electric,EF,none,0.812 +1986,shipment_weighted,storage,electric,EF,none,0.815 +1987,shipment_weighted,storage,electric,EF,none,0.819 +1988,shipment_weighted,storage,electric,EF,none,0.823 +1989,shipment_weighted,storage,electric,EF,none,0.828 +1990,shipment_weighted,storage,electric,EF,none,0.832 +1991,shipment_weighted,storage,electric,EF,none,0.837 +1992,shipment_weighted,storage,electric,EF,none,0.842 +1993,shipment_weighted,storage,electric,EF,none,0.846 +1994,shipment_weighted,storage,electric,EF,none,0.85 +1995,shipment_weighted,storage,electric,EF,none,0.854 +1996,shipment_weighted,storage,electric,EF,none,0.857 +1997,shipment_weighted,storage,electric,EF,none,0.857 +1998,shipment_weighted,storage,electric,EF,none,0.857 +1999,shipment_weighted,storage,electric,EF,none,0.857 +2000,shipment_weighted,storage,electric,EF,none,0.857 +2001,shipment_weighted,storage,electric,EF,none,0.857 +2002,shipment_weighted,storage,electric,EF,none,0.857 +2003,shipment_weighted,storage,electric,EF,none,0.857 +2004,shipment_weighted,storage,electric,EF,none,0.9 +2005,shipment_weighted,storage,electric,EF,none,0.9 +2006,shipment_weighted,storage,electric,EF,none,0.9 +2007,shipment_weighted,storage,electric,EF,none,0.9 +2008,shipment_weighted,storage,electric,EF,none,0.9 +2009,shipment_weighted,storage,electric,EF,none,0.9 +2010,shipment_weighted,storage,electric,EF,none,0.9 +1972,shipment_weighted,storage,natural_gas,EF,none,0.474 +1973,shipment_weighted,storage,natural_gas,EF,none,0.474 +1974,shipment_weighted,storage,natural_gas,EF,none,0.474 +1975,shipment_weighted,storage,natural_gas,EF,none,0.474 +1976,shipment_weighted,storage,natural_gas,EF,none,0.475 +1977,shipment_weighted,storage,natural_gas,EF,none,0.475 +1978,shipment_weighted,storage,natural_gas,EF,none,0.476 +1979,shipment_weighted,storage,natural_gas,EF,none,0.476 +1980,shipment_weighted,storage,natural_gas,EF,none,0.477 +1981,shipment_weighted,storage,natural_gas,EF,none,0.478 +1982,shipment_weighted,storage,natural_gas,EF,none,0.479 +1983,shipment_weighted,storage,natural_gas,EF,none,0.48 +1984,shipment_weighted,storage,natural_gas,EF,none,0.481 +1985,shipment_weighted,storage,natural_gas,EF,none,0.483 +1986,shipment_weighted,storage,natural_gas,EF,none,0.484 +1987,shipment_weighted,storage,natural_gas,EF,none,0.486 +1988,shipment_weighted,storage,natural_gas,EF,none,0.488 +1989,shipment_weighted,storage,natural_gas,EF,none,0.49 +1990,shipment_weighted,storage,natural_gas,EF,none,0.492 +1991,shipment_weighted,storage,natural_gas,EF,none,0.494 +1992,shipment_weighted,storage,natural_gas,EF,none,0.496 +1993,shipment_weighted,storage,natural_gas,EF,none,0.498 +1994,shipment_weighted,storage,natural_gas,EF,none,0.499 +1995,shipment_weighted,storage,natural_gas,EF,none,0.5 +1996,shipment_weighted,storage,natural_gas,EF,none,0.501 +1997,shipment_weighted,storage,natural_gas,EF,none,0.501 +1998,shipment_weighted,storage,natural_gas,EF,none,0.501 +1999,shipment_weighted,storage,natural_gas,EF,none,0.501 +2000,shipment_weighted,storage,natural_gas,EF,none,0.501 +2001,shipment_weighted,storage,natural_gas,EF,none,0.501 +2002,shipment_weighted,storage,natural_gas,EF,none,0.501 +2003,shipment_weighted,storage,natural_gas,EF,none,0.501 +2004,shipment_weighted,storage,natural_gas,EF,none,0.55 +2005,shipment_weighted,storage,natural_gas,EF,none,0.55 +2006,shipment_weighted,storage,natural_gas,EF,none,0.55 +2007,shipment_weighted,storage,natural_gas,EF,none,0.55 +2008,shipment_weighted,storage,natural_gas,EF,none,0.55 +2009,shipment_weighted,storage,natural_gas,EF,none,0.55 +2010,shipment_weighted,storage,natural_gas,EF,none,0.55 +1972,shipment_weighted,storage,lpg,EF,none,0.474 +1973,shipment_weighted,storage,lpg,EF,none,0.474 +1974,shipment_weighted,storage,lpg,EF,none,0.474 +1975,shipment_weighted,storage,lpg,EF,none,0.474 +1976,shipment_weighted,storage,lpg,EF,none,0.475 +1977,shipment_weighted,storage,lpg,EF,none,0.475 +1978,shipment_weighted,storage,lpg,EF,none,0.476 +1979,shipment_weighted,storage,lpg,EF,none,0.476 +1980,shipment_weighted,storage,lpg,EF,none,0.477 +1981,shipment_weighted,storage,lpg,EF,none,0.478 +1982,shipment_weighted,storage,lpg,EF,none,0.479 +1983,shipment_weighted,storage,lpg,EF,none,0.48 +1984,shipment_weighted,storage,lpg,EF,none,0.481 +1985,shipment_weighted,storage,lpg,EF,none,0.483 +1986,shipment_weighted,storage,lpg,EF,none,0.484 +1987,shipment_weighted,storage,lpg,EF,none,0.486 +1988,shipment_weighted,storage,lpg,EF,none,0.488 +1989,shipment_weighted,storage,lpg,EF,none,0.49 +1990,shipment_weighted,storage,lpg,EF,none,0.492 +1991,shipment_weighted,storage,lpg,EF,none,0.494 +1992,shipment_weighted,storage,lpg,EF,none,0.496 +1993,shipment_weighted,storage,lpg,EF,none,0.498 +1994,shipment_weighted,storage,lpg,EF,none,0.499 +1995,shipment_weighted,storage,lpg,EF,none,0.5 +1996,shipment_weighted,storage,lpg,EF,none,0.501 +1997,shipment_weighted,storage,lpg,EF,none,0.501 +1998,shipment_weighted,storage,lpg,EF,none,0.501 +1999,shipment_weighted,storage,lpg,EF,none,0.501 +2000,shipment_weighted,storage,lpg,EF,none,0.501 +2001,shipment_weighted,storage,lpg,EF,none,0.501 +2002,shipment_weighted,storage,lpg,EF,none,0.501 +2003,shipment_weighted,storage,lpg,EF,none,0.501 +2004,shipment_weighted,storage,lpg,EF,none,0.55 +2005,shipment_weighted,storage,lpg,EF,none,0.55 +2006,shipment_weighted,storage,lpg,EF,none,0.55 +2007,shipment_weighted,storage,lpg,EF,none,0.55 +2008,shipment_weighted,storage,lpg,EF,none,0.55 +2009,shipment_weighted,storage,lpg,EF,none,0.55 +2010,shipment_weighted,storage,lpg,EF,none,0.55 +1972,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1973,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1974,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1975,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1976,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1977,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1978,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1979,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1980,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1981,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1982,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1983,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1984,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1985,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1986,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1987,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1988,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1989,shipment_weighted,storage,fuel_oil,EF,none,0.54 +1990,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1991,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1992,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1993,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1994,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1995,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1996,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1997,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1998,shipment_weighted,storage,fuel_oil,EF,none,0.59 +1999,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2000,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2001,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2002,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2003,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2004,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2005,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2006,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2007,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2008,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2009,shipment_weighted,storage,fuel_oil,EF,none,0.59 +2010,shipment_weighted,storage,fuel_oil,EF,none,0.59 diff --git a/HPXMLtoOpenStudio/resources/waterheater.rb b/HPXMLtoOpenStudio/resources/waterheater.rb index a10c3690b7..7c3dd7a9ac 100644 --- a/HPXMLtoOpenStudio/resources/waterheater.rb +++ b/HPXMLtoOpenStudio/resources/waterheater.rb @@ -1729,4 +1729,28 @@ def self.get_water_heater_solar_fraction(water_heating_system, solar_thermal_sys end return solar_fraction.to_f end + + def self.get_default_water_heater_efficiency_by_year_installed(year, fuel_type) + fuel_primary_id = { EPlus::FuelTypeElectricity => 'electric', + EPlus::FuelTypeNaturalGas => 'natural_gas', + EPlus::FuelTypeOil => 'fuel_oil', + EPlus::FuelTypeCoal => 'fuel_oil', # assumption + EPlus::FuelTypeWoodCord => 'fuel_oil', # assumption + EPlus::FuelTypeWoodPellets => 'fuel_oil', # assumption + EPlus::FuelTypePropane => 'lpg' }[EPlus.fuel_type(fuel_type)] + + value = nil + lookup_year = 0 + CSV.foreach(File.join(File.dirname(__FILE__), 'lu_water_heater_efficiency.csv'), headers: true) do |row| + next unless row['fuel_primary_id'] == fuel_primary_id + + row_year = Integer(row['year']) + if (row_year - year).abs <= (lookup_year - year).abs + lookup_year = row_year + value = Float(row['value']) + end + end + + return value + end end diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 3d2b5934f8..dae0a02e7e 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -398,9 +398,11 @@ def test_central_air_conditioners hpxml.cooling_systems[0].charge_defect_ratio = -0.11 hpxml.cooling_systems[0].airflow_defect_ratio = -0.22 hpxml.cooling_systems[0].cooling_capacity = 12345 + hpxml.cooling_systems[0].cooling_efficiency_seer = 12.5 + hpxml.cooling_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_central_air_conditioner_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345) + _test_default_central_air_conditioner_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.5) # Test defaults hpxml.cooling_systems[0].cooling_shr = nil @@ -409,9 +411,11 @@ def test_central_air_conditioners hpxml.cooling_systems[0].charge_defect_ratio = nil hpxml.cooling_systems[0].airflow_defect_ratio = nil hpxml.cooling_systems[0].cooling_capacity = nil + hpxml.cooling_systems[0].cooling_efficiency_seer = nil + hpxml.cooling_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_central_air_conditioner_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil) + _test_default_central_air_conditioner_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.375, 0, 0, nil, 13.76) end def test_room_air_conditioners @@ -419,16 +423,20 @@ def test_room_air_conditioners hpxml = _create_hpxml('base-hvac-room-ac-only.xml') hpxml.cooling_systems[0].cooling_shr = 0.88 hpxml.cooling_systems[0].cooling_capacity = 12345 + hpxml.cooling_systems[0].cooling_efficiency_eer = 12.5 + hpxml.cooling_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_room_air_conditioner_values(hpxml_default, 0.88, 12345) + _test_default_room_air_conditioner_values(hpxml_default, 0.88, 12345, 12.5) # Test defaults hpxml.cooling_systems[0].cooling_shr = nil hpxml.cooling_systems[0].cooling_capacity = nil + hpxml.cooling_systems[0].cooling_efficiency_eer = nil + hpxml.cooling_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_room_air_conditioner_values(hpxml_default, 0.65, nil) + _test_default_room_air_conditioner_values(hpxml_default, 0.65, nil, 9.93) end def test_evaporative_coolers @@ -469,23 +477,44 @@ def test_mini_split_air_conditioners _test_default_mini_split_air_conditioner_values(hpxml_default, 0.73, 0.18, 0, 0, nil) end + def test_elec_resistance + # Test inputs not overridden by defaults + hpxml = _create_hpxml('base-hvac-elec-resistance-only.xml') + hpxml.heating_systems[0].heating_efficiency_percent = 0.98 + hpxml.heating_systems[0].year_installed = 2010 + XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) + hpxml_default = _test_measure() + _test_default_elec_resistance(hpxml_default, 0.98) + + # Test defaults + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 2010 + XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) + hpxml_default = _test_measure() + _test_default_elec_resistance(hpxml_default, 1.0) + end + def test_furnaces # Test inputs not overridden by defaults hpxml = _create_hpxml('base.xml') hpxml.heating_systems[0].fan_watts_per_cfm = 0.66 hpxml.heating_systems[0].airflow_defect_ratio = -0.22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_afue = 0.85 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_furnace_values(hpxml_default, 0.66, -0.22, 12345) + _test_default_furnace_values(hpxml_default, 0.66, -0.22, 12345, 0.85) # Test defaults hpxml.heating_systems[0].fan_watts_per_cfm = nil hpxml.heating_systems[0].airflow_defect_ratio = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_furnace_values(hpxml_default, 0.375, 0, nil) + _test_default_furnace_values(hpxml_default, 0.5, 0, nil, 0.848) # Test defaults w/ gravity distribution system hpxml = _create_hpxml('base-hvac-furnace-gas-only.xml') @@ -493,9 +522,10 @@ def test_furnaces hpxml.heating_systems[0].fan_watts_per_cfm = nil hpxml.heating_systems[0].airflow_defect_ratio = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_furnace_values(hpxml_default, 0.0, 0, nil) + _test_default_furnace_values(hpxml_default, 0.0, 0, nil, 0.92) end def test_wall_furnaces @@ -503,16 +533,20 @@ def test_wall_furnaces hpxml = _create_hpxml('base-hvac-wall-furnace-elec-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_afue = 0.60 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_wall_furnace_values(hpxml_default, 22, 12345) + _test_default_wall_furnace_values(hpxml_default, 22, 12345, 0.60) # Test defaults hpxml.heating_systems[0].fan_watts = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_wall_furnace_values(hpxml_default, 0, nil) + _test_default_wall_furnace_values(hpxml_default, 0, nil, 0.98) end def test_floor_furnaces @@ -520,15 +554,19 @@ def test_floor_furnaces hpxml = _create_hpxml('base-hvac-floor-furnace-propane-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_afue = 0.60 + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_floor_furnace_values(hpxml_default, 22, 12345) + _test_default_floor_furnace_values(hpxml_default, 22, 12345, 0.60) # Test defaults hpxml.heating_systems[0].fan_watts = nil + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_floor_furnace_values(hpxml_default, 0, nil) + _test_default_floor_furnace_values(hpxml_default, 0, nil, 0.595) end def test_boilers @@ -536,30 +574,38 @@ def test_boilers hpxml = _create_hpxml('base-hvac-boiler-gas-only.xml') hpxml.heating_systems[0].electric_auxiliary_energy = 99.9 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_afue = 0.85 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_boiler_values(hpxml_default, 99.9, 12345) + _test_default_boiler_values(hpxml_default, 99.9, 12345, 0.85) # Test defaults w/ in-unit boiler hpxml.heating_systems[0].electric_auxiliary_energy = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_boiler_values(hpxml_default, 170.0, nil) + _test_default_boiler_values(hpxml_default, 170.0, nil, 0.797) # Test inputs not overridden by defaults (shared boiler) hpxml = _create_hpxml('base-bldgtype-multifamily-shared-boiler-only-baseboard.xml') hpxml.heating_systems[0].shared_loop_watts = nil hpxml.heating_systems[0].electric_auxiliary_energy = 99.9 + hpxml.heating_systems[0].heating_efficiency_afue = 0.85 + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_boiler_values(hpxml_default, 99.9, nil) + _test_default_boiler_values(hpxml_default, 99.9, nil, 0.85) # Test defaults w/ shared boiler hpxml.heating_systems[0].electric_auxiliary_energy = nil + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_boiler_values(hpxml_default, 220.0, nil) + _test_default_boiler_values(hpxml_default, 220.0, nil, 0.723) end def test_stoves @@ -567,16 +613,20 @@ def test_stoves hpxml = _create_hpxml('base-hvac-stove-oil-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_percent = 0.70 + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_stove_values(hpxml_default, 22, 12345) + _test_default_stove_values(hpxml_default, 22, 12345, 0.70) # Test defaults hpxml.heating_systems[0].fan_watts = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 1980 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_stove_values(hpxml_default, 40, nil) + _test_default_stove_values(hpxml_default, 40, nil, 0.81) end def test_portable_heaters @@ -584,16 +634,20 @@ def test_portable_heaters hpxml = _create_hpxml('base-hvac-portable-heater-gas-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_percent = 0.65 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_portable_heater_values(hpxml_default, 22, 12345) + _test_default_portable_heater_values(hpxml_default, 22, 12345, 0.65) # Test defaults hpxml.heating_systems[0].fan_watts = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_portable_heater_values(hpxml_default, 0, nil) + _test_default_portable_heater_values(hpxml_default, 0, nil, 0.81) end def test_fixed_heaters @@ -601,16 +655,20 @@ def test_fixed_heaters hpxml = _create_hpxml('base-hvac-fixed-heater-gas-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_percent = 0.60 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_fixed_heater_values(hpxml_default, 22, 12345) + _test_default_fixed_heater_values(hpxml_default, 22, 12345, 0.60) # Test defaults hpxml.heating_systems[0].fan_watts = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_fixed_heater_values(hpxml_default, 0, nil) + _test_default_fixed_heater_values(hpxml_default, 0, nil, 0.81) end def test_fireplaces @@ -618,16 +676,30 @@ def test_fireplaces hpxml = _create_hpxml('base-hvac-fireplace-wood-only.xml') hpxml.heating_systems[0].fan_watts = 22 hpxml.heating_systems[0].heating_capacity = 12345 + hpxml.heating_systems[0].heating_efficiency_percent = 0.50 + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_fireplace_values(hpxml_default, 22, 12345) + _test_default_fireplace_values(hpxml_default, 22, 12345, 0.50) # Test defaults hpxml.heating_systems[0].fan_watts = nil hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_fireplace_values(hpxml_default, 0, nil) + _test_default_fireplace_values(hpxml_default, 0, nil, 0.60) + + # Test defaults with electric fireplace + hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity + hpxml.heating_systems[0].fan_watts = nil + hpxml.heating_systems[0].heating_capacity = nil + hpxml.heating_systems[0].heating_efficiency_percent = nil + hpxml.heating_systems[0].year_installed = 2010 + XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) + hpxml_default = _test_measure() + _test_default_fireplace_values(hpxml_default, 0, nil, 1.0) end def test_air_source_heat_pumps @@ -642,9 +714,12 @@ def test_air_source_heat_pumps hpxml.heat_pumps[0].heating_capacity = 23456 hpxml.heat_pumps[0].heating_capacity_17F = 9876 hpxml.heat_pumps[0].backup_heating_capacity = 34567 + hpxml.heat_pumps[0].cooling_efficiency_seer = 14.0 + hpxml.heat_pumps[0].heating_efficiency_hspf = 8.0 + hpxml.heat_pumps[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_air_to_air_heat_pump_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567) + _test_default_air_to_air_heat_pump_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0) # Test defaults hpxml.heat_pumps[0].cooling_shr = nil @@ -656,9 +731,12 @@ def test_air_source_heat_pumps hpxml.heat_pumps[0].heating_capacity = nil hpxml.heat_pumps[0].heating_capacity_17F = nil hpxml.heat_pumps[0].backup_heating_capacity = nil + hpxml.heat_pumps[0].cooling_efficiency_seer = nil + hpxml.heat_pumps[0].heating_efficiency_hspf = nil + hpxml.heat_pumps[0].year_installed = 2010 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_air_to_air_heat_pump_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil) + _test_default_air_to_air_heat_pump_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil, 13.76, 7.9) end def test_mini_split_heat_pumps @@ -927,7 +1005,7 @@ def test_hvac_distribution end def test_mech_ventilation_fans - # Test inputs not overridden by defaults + # Test inputs not overridden by defaults w/ shared exhaust system hpxml = _create_hpxml('base-mechvent-exhaust.xml') hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0] @@ -935,9 +1013,10 @@ def test_mech_ventilation_fans vent_fan.fraction_recirculation = 0.0 vent_fan.in_unit_flow_rate = 10.0 vent_fan.hours_in_operation = 22.0 + vent_fan.fan_power = 12.5 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_mech_vent_values(hpxml_default, true, 22.0) + _test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5) # Test defaults vent_fan.rated_flow_rate = nil @@ -947,25 +1026,46 @@ def test_mech_ventilation_fans vent_fan.fraction_recirculation = nil vent_fan.in_unit_flow_rate = nil vent_fan.hours_in_operation = nil + vent_fan.fan_power = nil XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_mech_vent_values(hpxml_default, false, 24.0) + _test_default_mech_vent_values(hpxml_default, false, 24.0, 38.5) # Test inputs not overridden by defaults w/ CFIS hpxml = _create_hpxml('base-mechvent-cfis.xml') vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0] vent_fan.is_shared_system = false vent_fan.hours_in_operation = 12.0 + vent_fan.fan_power = 12.5 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_mech_vent_values(hpxml_default, false, 12.0) + _test_default_mech_vent_values(hpxml_default, false, 12.0, 12.5) # Test defaults w/ CFIS vent_fan.is_shared_system = nil vent_fan.hours_in_operation = nil + vent_fan.fan_power = nil + XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) + hpxml_default = _test_measure() + _test_default_mech_vent_values(hpxml_default, false, 8.0, 165.0) + + # Test inputs not overridden by defaults w/ ERV + hpxml = _create_hpxml('base-mechvent-erv.xml') + vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0] + vent_fan.is_shared_system = false + vent_fan.hours_in_operation = 20.0 + vent_fan.fan_power = 45.0 XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() - _test_default_mech_vent_values(hpxml_default, false, 8.0) + _test_default_mech_vent_values(hpxml_default, false, 20.0, 45.0) + + # Test defaults w/ CFIS + vent_fan.is_shared_system = nil + vent_fan.hours_in_operation = nil + vent_fan.fan_power = nil + XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) + hpxml_default = _test_measure() + _test_default_mech_vent_values(hpxml_default, false, 24.0, 110.0) end def test_local_ventilation_fans @@ -1017,11 +1117,13 @@ def test_storage_water_heaters wh.recovery_efficiency = 0.95 wh.location = HPXML::LocationLivingSpace wh.temperature = 111 + wh.energy_factor = 0.90 + wh.year_installed = 2003 end XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() _test_default_storage_water_heater_values(hpxml_default, - [true, 15000.0, 40.0, 0.95, HPXML::LocationLivingSpace, 111]) + [true, 15000.0, 40.0, 0.95, HPXML::LocationLivingSpace, 111, 0.90]) # Test defaults w/ 3-bedroom house & electric storage water heater hpxml.water_heating_systems.each do |wh| @@ -1031,11 +1133,13 @@ def test_storage_water_heaters wh.recovery_efficiency = nil wh.location = nil wh.temperature = nil + wh.energy_factor = nil + wh.year_installed = 2003 end XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() _test_default_storage_water_heater_values(hpxml_default, - [false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125]) + [false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.857]) # Test defaults w/ 5-bedroom house & electric storage water heater hpxml = _create_hpxml('base-enclosure-beds-5.xml') @@ -1046,11 +1150,13 @@ def test_storage_water_heaters wh.recovery_efficiency = nil wh.location = nil wh.temperature = nil + wh.energy_factor = nil + wh.year_installed = 2010 end XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() _test_default_storage_water_heater_values(hpxml_default, - [false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125]) + [false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.90]) # Test defaults w/ 3-bedroom house & 2 storage water heaters (1 electric and 1 natural gas) hpxml = _create_hpxml('base-dhw-multiple.xml') @@ -1063,12 +1169,14 @@ def test_storage_water_heaters wh.recovery_efficiency = nil wh.location = nil wh.temperature = nil + wh.energy_factor = nil + wh.year_installed = 2010 end XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path) hpxml_default = _test_measure() _test_default_storage_water_heater_values(hpxml_default, - [false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125], - [false, 36000.0, 40.0, 0.756, HPXML::LocationBasementConditioned, 125]) + [false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.90], + [false, 36000.0, 40.0, 0.746, HPXML::LocationBasementConditioned, 125, 0.55]) end def test_tankless_water_heaters @@ -1902,6 +2010,94 @@ def test_fuel_loads _test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154') end + def test_hvac_lookup + central_air_conditioner_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER') + assert_equal(central_air_conditioner_seer, 8.0) + + room_air_conditioner_eer = HVAC.get_default_hvac_efficiency_by_year_installed(1993, 'room air conditioner', 'electricity', 'EER') + assert_equal(room_air_conditioner_eer, 9.05) + + furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'Furnace', 'natural gas', 'AFUE') + assert_equal(furnace_afue, 0.829) + + furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1981, 'Furnace', 'diesel', 'AFUE') + assert_equal(furnace_afue, 0.768) + + wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'WallFurnace', 'natural gas', 'AFUE') + assert_equal(wall_furnace_afue, 0.656) + + wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1971, 'WallFurnace', 'propane', 'AFUE') + assert_equal(wall_furnace_afue, 0.548) + + wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'FloorFurnace', 'natural gas', 'AFUE') + assert_equal(wall_furnace_afue, 0.5) + + boiler_afue = HVAC.get_default_hvac_efficiency_by_year_installed(2004, 'Boiler', 'propane', 'AFUE') + assert_equal(boiler_afue, 0.831) + + heatpump_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1991, 'air-to-air', 'electricity', 'SEER') + assert_equal(heatpump_seer, 9.77) + + heatpump_hspf = HVAC.get_default_hvac_efficiency_by_year_installed(1988, 'air-to-air', 'electricity', 'HSPF') + assert_equal(heatpump_hspf, 6.88) + + assert_equal( + HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'air-to-air', 'electricity', 'SEER'), + HVAC.get_default_hvac_efficiency_by_year_installed(2011, 'air-to-air', 'electricity', 'SEER') + ) + + assert_equal( + HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'Furnace', 'natural gas', 'AFUE'), + HVAC.get_default_hvac_efficiency_by_year_installed(2020, 'Furnace', 'natural gas', 'AFUE') + ) + + assert_equal( + HVAC.get_default_hvac_efficiency_by_year_installed(1969, 'Boiler', 'fuel oil', 'AFUE'), + HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'Boiler', 'fuel oil', 'AFUE') + ) + + assert_equal( + HVAC.get_default_hvac_efficiency_by_year_installed(1955, 'central air conditioner', 'electricity', 'SEER'), + HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER') + ) + end + + def test_dhw_lookup + waterheater_elec_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2006, 'electricity') + assert_equal(waterheater_elec_ef, 0.9) + + waterheater_natural_gas_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1998, 'natural gas') + assert_equal(waterheater_natural_gas_ef, 0.501) + + waterheater_propane_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2007, 'propane') + assert_equal(waterheater_propane_ef, 0.55) + + waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'fuel oil') + assert_equal(waterheater_fuel_oil_ef, 0.54) + + waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'wood') + assert_equal(waterheater_fuel_oil_ef, 0.54) + + ['natural gas', 'electricity', 'propane', 'fuel oil'].each do |fuel_type| + assert_equal( + Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type), + Waterheater.get_default_water_heater_efficiency_by_year_installed(2011, fuel_type) + ) + assert_equal( + Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type), + Waterheater.get_default_water_heater_efficiency_by_year_installed(2020, fuel_type) + ) + assert_equal( + Waterheater.get_default_water_heater_efficiency_by_year_installed(1971, fuel_type), + Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type) + ) + assert_equal( + Waterheater.get_default_water_heater_efficiency_by_year_installed(1955, fuel_type), + Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type) + ) + end + end + def _test_measure() # create an instance of the measure measure = HPXMLtoOpenStudio.new @@ -2053,7 +2249,7 @@ def _test_default_skylight_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_sum end def _test_default_central_air_conditioner_values(hpxml, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio, - airflow_defect_ratio, cooling_capacity) + airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer) cooling_system = hpxml.cooling_systems[0] assert_equal(shr, cooling_system.cooling_shr) @@ -2066,9 +2262,14 @@ def _test_default_central_air_conditioner_values(hpxml, shr, compressor_type, fa else assert_equal(cooling_system.cooling_capacity, cooling_capacity) end + if cooling_efficiency_seer.nil? + assert_nil(cooling_system.cooling_efficiency_seer) + else + assert_equal(cooling_system.cooling_efficiency_seer, cooling_efficiency_seer) + end end - def _test_default_room_air_conditioner_values(hpxml, shr, cooling_capacity) + def _test_default_room_air_conditioner_values(hpxml, shr, cooling_capacity, cooling_efficiency_eer) cooling_system = hpxml.cooling_systems[0] assert_equal(shr, cooling_system.cooling_shr) @@ -2077,6 +2278,11 @@ def _test_default_room_air_conditioner_values(hpxml, shr, cooling_capacity) else assert_equal(cooling_system.cooling_capacity, cooling_capacity) end + if cooling_efficiency_eer.nil? + assert_nil(cooling_system.cooling_efficiency_eer) + else + assert_equal(cooling_system.cooling_efficiency_eer, cooling_efficiency_eer) + end end def _test_default_evap_cooler_values(hpxml, cooling_capacity) @@ -2104,8 +2310,18 @@ def _test_default_mini_split_air_conditioner_values(hpxml, shr, fan_watts_per_cf end end + def _test_default_elec_resistance(hpxml, heating_efficiency_percent) + heating_system = hpxml.heating_systems[0] + + if heating_efficiency_percent.nil? + assert_nil(heating_system.heating_efficiency_percent) + else + assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent) + end + end + def _test_default_furnace_values(hpxml, fan_watts_per_cfm, airflow_defect_ratio, - heating_capacity) + heating_capacity, heating_efficiency_afue) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts_per_cfm, heating_system.fan_watts_per_cfm) @@ -2115,9 +2331,14 @@ def _test_default_furnace_values(hpxml, fan_watts_per_cfm, airflow_defect_ratio, else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_afue.nil? + assert_nil(heating_system.heating_efficiency_afue) + else + assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue) + end end - def _test_default_wall_furnace_values(hpxml, fan_watts, heating_capacity) + def _test_default_wall_furnace_values(hpxml, fan_watts, heating_capacity, heating_efficiency_afue) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2126,9 +2347,14 @@ def _test_default_wall_furnace_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_afue.nil? + assert_nil(heating_system.heating_efficiency_afue) + else + assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue) + end end - def _test_default_floor_furnace_values(hpxml, fan_watts, heating_capacity) + def _test_default_floor_furnace_values(hpxml, fan_watts, heating_capacity, heating_efficiency_afue) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2137,9 +2363,14 @@ def _test_default_floor_furnace_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_afue.nil? + assert_nil(heating_system.heating_efficiency_afue) + else + assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue) + end end - def _test_default_boiler_values(hpxml, eae, heating_capacity) + def _test_default_boiler_values(hpxml, eae, heating_capacity, heating_efficiency_afue) heating_system = hpxml.heating_systems[0] assert_equal(eae, heating_system.electric_auxiliary_energy) @@ -2148,9 +2379,14 @@ def _test_default_boiler_values(hpxml, eae, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_afue.nil? + assert_nil(heating_system.heating_efficiency_afue) + else + assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue) + end end - def _test_default_stove_values(hpxml, fan_watts, heating_capacity) + def _test_default_stove_values(hpxml, fan_watts, heating_capacity, heating_efficiency_percent) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2159,9 +2395,14 @@ def _test_default_stove_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_percent.nil? + assert_nil(heating_system.heating_efficiency_percent) + else + assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent) + end end - def _test_default_portable_heater_values(hpxml, fan_watts, heating_capacity) + def _test_default_portable_heater_values(hpxml, fan_watts, heating_capacity, heating_efficiency_percent) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2170,9 +2411,14 @@ def _test_default_portable_heater_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_percent.nil? + assert_nil(heating_system.heating_efficiency_percent) + else + assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent) + end end - def _test_default_fixed_heater_values(hpxml, fan_watts, heating_capacity) + def _test_default_fixed_heater_values(hpxml, fan_watts, heating_capacity, heating_efficiency_percent) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2181,9 +2427,14 @@ def _test_default_fixed_heater_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_percent.nil? + assert_nil(heating_system.heating_efficiency_percent) + else + assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent) + end end - def _test_default_fireplace_values(hpxml, fan_watts, heating_capacity) + def _test_default_fireplace_values(hpxml, fan_watts, heating_capacity, heating_efficiency_percent) heating_system = hpxml.heating_systems[0] assert_equal(fan_watts, heating_system.fan_watts) @@ -2192,11 +2443,17 @@ def _test_default_fireplace_values(hpxml, fan_watts, heating_capacity) else assert_equal(heating_system.heating_capacity, heating_capacity) end + if heating_efficiency_percent.nil? + assert_nil(heating_system.heating_efficiency_percent) + else + assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent) + end end def _test_default_air_to_air_heat_pump_values(hpxml, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio, airflow_defect_ratio, cooling_capacity, heating_capacity, - heating_capacity_17F, backup_heating_capacity) + heating_capacity_17F, backup_heating_capacity, + cooling_efficiency_seer, heating_efficiency_hspf) heat_pump = hpxml.heat_pumps[0] assert_equal(shr, heat_pump.cooling_shr) @@ -2224,6 +2481,16 @@ def _test_default_air_to_air_heat_pump_values(hpxml, shr, compressor_type, fan_w else assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity) end + if cooling_efficiency_seer.nil? + assert_nil(heat_pump.cooling_efficiency_seer) + else + assert_equal(heat_pump.cooling_efficiency_seer, cooling_efficiency_seer) + end + if heating_efficiency_hspf.nil? + assert_nil(heat_pump.heating_efficiency_hspf) + else + assert_equal(heat_pump.heating_efficiency_hspf, heating_efficiency_hspf) + end end def _test_default_mini_split_heat_pump_values(hpxml, shr, fan_watts_per_cfm, charge_defect_ratio, @@ -2322,11 +2589,12 @@ def _test_default_duct_values(hpxml, supply_locations, return_locations, supply_ end end - def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation) + def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation, fan_power) vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0] assert_equal(is_shared_system, vent_fan.is_shared_system) assert_equal(hours_in_operation, vent_fan.hours_in_operation) + assert_equal(fan_power, vent_fan.fan_power) end def _test_default_kitchen_fan_values(hpxml, quantity, rated_flow_rate, hours_in_operation, fan_power, start_hour) @@ -2353,13 +2621,19 @@ def _test_default_storage_water_heater_values(hpxml, *expected_wh_values) storage_water_heaters = hpxml.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeStorage } assert_equal(expected_wh_values.size, storage_water_heaters.size) storage_water_heaters.each_with_index do |wh_system, idx| - is_shared, heating_capacity, tank_volume, recovery_efficiency, location = expected_wh_values[idx] + is_shared, heating_capacity, tank_volume, recovery_efficiency, location, temperature, energy_factor = expected_wh_values[idx] assert_equal(is_shared, wh_system.is_shared_system) assert_in_epsilon(heating_capacity, wh_system.heating_capacity, 0.01) assert_equal(tank_volume, wh_system.tank_volume) assert_in_epsilon(recovery_efficiency, wh_system.recovery_efficiency, 0.01) assert_equal(location, wh_system.location) + assert_equal(temperature, wh_system.temperature) + if energy_factor.nil? + assert_nil(wh_system.energy_factor) + else + assert_equal(energy_factor, wh_system.energy_factor) + end end end diff --git a/HPXMLtoOpenStudio/tests/test_hvac.rb b/HPXMLtoOpenStudio/tests/test_hvac.rb index 30bd1652f4..8d2441e260 100644 --- a/HPXMLtoOpenStudio/tests/test_hvac.rb +++ b/HPXMLtoOpenStudio/tests/test_hvac.rb @@ -780,7 +780,44 @@ def test_install_quality_furnace_gas_ratio end def test_install_quality_ground_to_air_heat_pump_ratio - # TODO + args_hash = {} + args_hash['hpxml_path'] = File.absolute_path(File.join(sample_files_dir, 'base-hvac-install-quality-all-ground-to-air-heat-pump.xml')) + model, hpxml = _test_measure(args_hash) + + # Get HPXML values + heat_pump = hpxml.heat_pumps[0] + airflow_defect = heat_pump.airflow_defect_ratio + charge_defect = heat_pump.charge_defect_ratio + fan_watts_cfm = heat_pump.fan_watts_per_cfm + + # model objects: + # Unitary system + assert_equal(1, model.getAirLoopHVACUnitarySystems.size) + unitary_system = model.getAirLoopHVACUnitarySystems[0] + cooling_cfm = UnitConversions.convert(unitary_system.supplyAirFlowRateDuringCoolingOperation.get, 'm^3/s', 'cfm') + heating_cfm = UnitConversions.convert(unitary_system.supplyAirFlowRateDuringHeatingOperation.get, 'm^3/s', 'cfm') + + # Cooling coil + assert_equal(1, model.getCoilCoolingWaterToAirHeatPumpEquationFits.size) + clg_coil = model.getCoilCoolingWaterToAirHeatPumpEquationFits[0] + rated_airflow_cfm_clg = UnitConversions.convert(clg_coil.ratedAirFlowRate.get, 'm^3/s', 'cfm') + + # Heating coil + assert_equal(1, model.getCoilHeatingWaterToAirHeatPumpEquationFits.size) + htg_coil = model.getCoilHeatingWaterToAirHeatPumpEquationFits[0] + rated_airflow_cfm_htg = UnitConversions.convert(htg_coil.ratedAirFlowRate.get, 'm^3/s', 'cfm') + + # Fan + fanonoff = unitary_system.supplyFan.get.to_FanOnOff.get + assert_in_epsilon(fan_watts_cfm, fanonoff.pressureRise / fanonoff.fanEfficiency * UnitConversions.convert(1.0, 'cfm', 'm^3/s'), 0.01) + + # Check installation quality EMS + program_values = get_ems_values(model.getEnergyManagementSystemPrograms, "#{unitary_system.name} install quality") + + # defect ratios in EMS is calculated correctly + assert_in_epsilon(program_values['F_CH'].sum, charge_defect, 0.01) + assert_in_epsilon(program_values['FF_AF_c'].sum, cooling_cfm / rated_airflow_cfm_clg, 0.01) + assert_in_epsilon(program_values['FF_AF_h'].sum, heating_cfm / rated_airflow_cfm_htg, 0.01) end def test_install_quality_mini_split_air_conditioner_ratio diff --git a/README.md b/README.md index 1396f005ca..61fff3a7ac 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,11 @@ This repository contains two OpenStudio measures: ## Projects The OpenStudio-HPXML workflow is used by a number of other residential projects, including: -- [Energy Rating Index (ERI)](https://github.com/NREL/OpenStudio-ERI) -- Home Energy Score (pending) -- Weatherization Assistant (pending) -- ResStock (pending) +- [Energy Rating Index (ERI) and ENERGY STAR](https://github.com/NREL/OpenStudio-ERI) +- [Home Energy Score](https://betterbuildingssolutioncenter.energy.gov/home-energy-score) - [UrbanOpt](https://www.nrel.gov/buildings/urbanopt.html) +- ResStock (pending) +- Weatherization Assistant (pending) ## License diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 715aea525e..c4dc9c24d8 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -654,7 +654,7 @@ If electric resistance heating is specified, additional information is entered i ================================================== ====== ===== =========== ======== ======= ========== Element Type Units Constraints Required Default Notes ================================================== ====== ===== =========== ======== ======= ========== - ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 Yes Efficiency + ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 No 1.0 Efficiency ================================================== ====== ===== =========== ======== ======= ========== Furnace @@ -662,16 +662,17 @@ Furnace If a furnace is specified, additional information is entered in ``HeatingSystem``. - =============================================== ====== ===== =========== ======== ========= ================================================ - Element Type Units Constraints Required Default Notes - =============================================== ====== ===== =========== ======== ========= ================================================ - ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system - ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` double frac 0 - 1 Yes Rated efficiency - ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power [#]_ - ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ - =============================================== ====== ===== =========== ======== ========= ================================================ + ==================================================================== ================= ========= =============== ======== ======== ================================================ + Element Type Units Constraints Required Default Notes + ==================================================================== ================= ========= =============== ======== ======== ================================================ + ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system + ``YearInstalled`` or ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` integer or double # or frac > 1600 or 0 - 1 Yes See [#]_ Year installed or Rated efficiency + ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan efficiency [#]_ + ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ + ==================================================================== ================= ========= =============== ======== ======== ================================================ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity" or "gravity") or DSE. + .. [#] If AnnualHeatingEfficiency[Units="AFUE"]/Value not provided, defaults to 0.98 if FuelType is "electricity", else AFUE from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. .. [#] If FanPowerWattsPerCFM not provided, defaulted to 0 W/cfm if gravity distribution system, else 0.5 W/cfm if AFUE <= 0.9, else 0.375 W/cfm. .. [#] If there is a cooling system attached to the DistributionSystem, the heating and cooling systems cannot have different values for FanPowerWattsPerCFM. .. [#] AirflowDefectRatio is defined as (InstalledAirflow - DesignAirflow) / DesignAirflow; a value of zero means no airflow defect. @@ -682,12 +683,14 @@ Wall/Floor Furnace If a wall furnace or floor furnace is specified, additional information is entered in ``HeatingSystem``. - =============================================== ====== ===== =========== ======== ======= =================== - Element Type Units Constraints Required Default Notes - =============================================== ====== ===== =========== ======== ======= =================== - ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` double frac 0 - 1 Yes Rated efficiency - ``extension/FanPowerWatts`` double W >= 0 No 0 Fan power - =============================================== ====== ===== =========== ======== ======= =================== + ==================================================================== ================= ========= =============== ======== ======== ================================== + Element Type Units Constraints Required Default Notes + ==================================================================== ================= ========= =============== ======== ======== ================================== + ``YearInstalled`` or ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` integer or double # or frac > 1600 or 0 - 1 Yes See [#]_ Year installed or Rated efficiency + ``extension/FanPowerWatts`` double W >= 0 No 0 Fan power + ==================================================================== ================= ========= =============== ======== ======== ================================== + + .. [#] If AnnualHeatingEfficiency[Units="AFUE"]/Value not provided, defaults to 0.98 if FuelType is "electricity", else AFUE from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. .. _hvac_heating_boiler: @@ -696,17 +699,19 @@ Boiler If a boiler is specified, additional information is entered in ``HeatingSystem``. - ========================================================================== ======== ====== =========== ======== ======== ========================================= - Element Type Units Constraints Required Default Notes - ========================================================================== ======== ====== =========== ======== ======== ========================================= - ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units - ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system - ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` double frac 0 - 1 Yes Rated efficiency - ========================================================================== ======== ====== =========== ======== ======== ========================================= + ==================================================================== ================= ========= =============== ======== ======== ========================================= + Element Type Units Constraints Required Default Notes + ==================================================================== ================= ========= =============== ======== ======== ========================================= + ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units + ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system + ``YearInstalled`` or ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` integer or double # or frac > 1600 or 0 - 1 Yes See [#]_ Year installed or Rated efficiency + ==================================================================== ================= ========= =============== ======== ======== ========================================= .. [#] For in-unit boilers, HVACDistribution type must be HydronicDistribution (type: "radiator", "baseboard", "radiant floor", "radiant ceiling", or "water loop") or DSE. For shared boilers, HVACDistribution type must be HydronicDistribution (type: "radiator", "baseboard", "radiant floor", "radiant ceiling", or "water loop") or AirDistribution (type: "fan coil"). If the shared boiler has "water loop" distribution, a :ref:`hvac_heatpump_wlhp` must also be specified. + .. [#] If AnnualHeatingEfficiency[Units="AFUE"]/Value not provided, defaults to 0.98 if FuelType is "electricity", else AFUE from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. + If an in-unit boiler if specified, additional information is entered in ``HeatingSystem``. @@ -747,10 +752,12 @@ If a stove is specified, additional information is entered in ``HeatingSystem``. ================================================== ====== ===== =========== ======== ========= =================== Element Type Units Constraints Required Default Notes ================================================== ====== ===== =========== ======== ========= =================== - ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 Yes Efficiency + ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 No See [#]_ Efficiency ``extension/FanPowerWatts`` double W >= 0 No 40 Fan power ================================================== ====== ===== =========== ======== ========= =================== + .. [#] Defaulted to 1.0 if FuelType is "electricity", 0.60 if FuelType is "wood", 0.78 if FuelType is "wood pellets", otherwise 0.81. + Portable/Fixed Heater ~~~~~~~~~~~~~~~~~~~~~ @@ -759,10 +766,12 @@ If a portable heater or fixed heater is specified, additional information is ent ================================================== ====== ===== =========== ======== ========= =================== Element Type Units Constraints Required Default Notes ================================================== ====== ===== =========== ======== ========= =================== - ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 Yes Efficiency + ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 No See [#]_ Efficiency ``extension/FanPowerWatts`` double W >= 0 No 0 Fan power ================================================== ====== ===== =========== ======== ========= =================== + .. [#] Defaulted to 1.0 if FuelType is "electricity", 0.60 if FuelType is "wood", 0.78 if FuelType is "wood pellets", otherwise 0.81. + Fireplace ~~~~~~~~~ @@ -771,10 +780,12 @@ If a fireplace is specified, additional information is entered in ``HeatingSyste ================================================== ====== ===== =========== ======== ========= =================== Element Type Units Constraints Required Default Notes ================================================== ====== ===== =========== ======== ========= =================== - ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 Yes Efficiency + ``AnnualHeatingEfficiency[Units="Percent"]/Value`` double frac 0 - 1 No See [#]_ Efficiency ``extension/FanPowerWatts`` double W >= 0 No 0 Fan power ================================================== ====== ===== =========== ======== ========= =================== + .. [#] Defaulted to 1.0 if FuelType is "electricity", 0.60 if FuelType is "wood", 0.78 if FuelType is "wood pellets", otherwise 0.81. + .. _hvac_cooling: HPXML Cooling Systems @@ -800,20 +811,21 @@ Central Air Conditioner If a central air conditioner is specified, additional information is entered in ``CoolingSystem``. - =============================================== ======== ====== =========== ======== ========= ================================================ - Element Type Units Constraints Required Default Notes - =============================================== ======== ====== =========== ======== ========= ================================================ - ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system - ``AnnualCoolingEfficiency[Units="SEER"]/Value`` double Btu/Wh > 0 Yes Rated efficiency - ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity - ``SensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction - ``CompressorType`` string See [#]_ No See [#]_ Type of compressor - ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power [#]_ - ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ - ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_ - =============================================== ======== ====== =========== ======== ========= ================================================ + ==================================================================== ================= =========== =============== ======== ========= ================================================ + Element Type Units Constraints Required Default Notes + ==================================================================== ================= =========== =============== ======== ========= ================================================ + ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system + ``YearInstalled`` or ``AnnualCoolingEfficiency[Units="SEER"]/Value`` integer or double # or Btu/Wh > 1600 or > 0 Yes See [#]_ Year installed or Rated efficiency + ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity + ``SensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction + ``CompressorType`` string See [#]_ No See [#]_ Type of compressor + ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power [#]_ + ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ + ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_ + ==================================================================== ================= =========== =============== ======== ========= ================================================ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE. + .. [#] If AnnualCoolingEfficiency[Units="SEER"]/Value not provided, defaults to SEER from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. .. [#] CompressorType choices are "single stage", "two stage", or "variable speed". .. [#] If CompressorType not provided, defaults to "single stage" if SEER <= 15, else "two stage" if SEER <= 21, else "variable speed". .. [#] If FanPowerWattsPerCFM not provided, defaults to using attached furnace W/cfm if available, else 0.5 W/cfm if SEER <= 13.5, else 0.375 W/cfm. @@ -821,6 +833,7 @@ If a central air conditioner is specified, additional information is entered in .. [#] AirflowDefectRatio is defined as (InstalledAirflow - DesignAirflow) / DesignAirflow; a value of zero means no airflow defect. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. .. [#] ChargeDefectRatio is defined as (InstalledCharge - DesignCharge) / DesignCharge; a value of zero means no refrigerant charge defect. + A non-zero charge defect should typically only be applied for systems that are pre-charged on site. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. Room Air Conditioner @@ -828,13 +841,15 @@ Room Air Conditioner If a room air conditioner is specified, additional information is entered in ``CoolingSystem``. - ============================================== ======== ====== =========== ======== ========= ====================== - Element Type Units Constraints Required Default Notes - ============================================== ======== ====== =========== ======== ========= ====================== - ``AnnualCoolingEfficiency[Units="EER"]/Value`` double Btu/Wh > 0 Yes Rated efficiency - ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity - ``SensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction - ============================================== ======== ====== =========== ======== ========= ====================== + =================================================================== ================= =========== =============== ======== ========= ================================== + Element Type Units Constraints Required Default Notes + =================================================================== ================= =========== =============== ======== ========= ================================== + ``YearInstalled`` or ``AnnualCoolingEfficiency[Units="EER"]/Value`` integer or double # or Btu/Wh > 1600 or > 0 Yes See [#]_ Year installed or Rated efficiency + ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity + ``SensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction + =================================================================== ================= =========== =============== ======== ========= ================================== + + .. [#] If AnnualCoolingEfficiency[Units="EER"]/Value not provided, defaults to EER from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. Evaporative Cooler ~~~~~~~~~~~~~~~~~~ @@ -969,33 +984,36 @@ Air-to-Air Heat Pump If an air-to-air heat pump is specified, additional information is entered in ``HeatPump``. - =============================================== ======== ====== =========== ======== ========= ================================================ - Element Type Units Constraints Required Default Notes - =============================================== ======== ====== =========== ======== ========= ================================================ - ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system - ``CompressorType`` string See [#]_ No See [#]_ Type of compressor - ``HeatingCapacity`` double Btu/hr >= 0 No autosized Heating capacity (excluding any backup heating) - ``HeatingCapacity17F`` double Btu/hr >= 0 No Heating capacity at 17F, if available - ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity - ``CoolingSensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction - ``FractionHeatLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of heating load served - ``FractionCoolLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of cooling load served - ``AnnualCoolingEfficiency[Units="SEER"]/Value`` double Btu/Wh > 0 Yes Rated cooling efficiency - ``AnnualHeatingEfficiency[Units="HSPF"]/Value`` double Btu/Wh > 0 Yes Rated heating efficiency - ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power - ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ - ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_ - =============================================== ======== ====== =========== ======== ========= ================================================ + ==================================================================== ================= =========== =============== ======== ========= ================================================= + Element Type Units Constraints Required Default Notes + ==================================================================== ================= =========== =============== ======== ========= ================================================= + ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system + ``CompressorType`` string See [#]_ No See [#]_ Type of compressor + ``HeatingCapacity`` double Btu/hr >= 0 No autosized Heating capacity (excluding any backup heating) + ``HeatingCapacity17F`` double Btu/hr >= 0 No Heating capacity at 17F, if available + ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity + ``CoolingSensibleHeatFraction`` double frac 0 - 1 No Sensible heat fraction + ``FractionHeatLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of heating load served + ``FractionCoolLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of cooling load served + ``YearInstalled`` or ``AnnualCoolingEfficiency[Units="SEER"]/Value`` integer or double # or Btu/Wh > 1600 or > 0 Yes See [#]_ Year installed or Rated cooling efficiency + ``YearInstalled`` or ``AnnualHeatingEfficiency[Units="HSPF"]/Value`` integer or double # or Btu/Wh > 1600 or > 0 Yes See [#]_ Year installed or Rated heating efficiency + ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power + ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ + ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_ + ==================================================================== ================= =========== =============== ======== ========= ================================================= .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE. .. [#] CompressorType choices are "single stage", "two stage", or "variable speed". .. [#] If CompressorType not provided, defaults to "single stage" if SEER <= 15, else "two stage" if SEER <= 21, else "variable speed". .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1. .. [#] The sum of all ``FractionCoolLoadServed`` (across both CoolingSystems and HeatPumps) must be less than or equal to 1. + .. [#] If AnnualCoolingEfficiency[Units="SEER"]/Value not provided, defaults to SEER from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. + .. [#] If AnnualHeatingEfficiency[Units="HSPF"]/Value not provided, defaults to HSPF from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_hvac_equipment_efficiency.csv`` based on YearInstalled. .. [#] If FanPowerWattsPerCFM not provided, defaulted to 0.5 W/cfm if HSPF <= 8.75, else 0.375 W/cfm. .. [#] AirflowDefectRatio is defined as (InstalledAirflow - DesignAirflow) / DesignAirflow; a value of zero means no airflow defect. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. .. [#] ChargeDefectRatio is defined as (InstalledCharge - DesignCharge) / DesignCharge; a value of zero means no refrigerant charge defect. + A non-zero charge defect should typically only be applied for systems that are pre-charged on site. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. Mini-Split Heat Pump @@ -1058,7 +1076,7 @@ If a ground-to-air heat pump is specified, additional information is entered in ``extension/SharedLoopWatts`` double W >= 0 See [#]_ Shared pump power [#]_ ``extension/FanPowerWattsPerCFM`` double W/cfm >= 0 No See [#]_ Fan power ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_ - ``extension/ChargeDefectRatio`` double frac 0.0 [#]_ No 0.0 Deviation between design/installed charges [#]_ + ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_ =============================================== ======== ====== =========== ======== ========= ============================================== .. [#] IsSharedSystem should be true if the SFA/MF building has multiple ground source heat pumps connected to a shared hydronic circulation loop. @@ -1074,8 +1092,8 @@ If a ground-to-air heat pump is specified, additional information is entered in .. [#] If FanPowerWattsPerCFM not provided, defaulted to 0.5 W/cfm if COP <= 8.75/3.2, else 0.375 W/cfm. .. [#] AirflowDefectRatio is defined as (InstalledAirflow - DesignAirflow) / DesignAirflow; a value of zero means no airflow defect. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. - .. [#] ChargeDefectRatio currently constrained to zero for ground-to-air heat pumps due to an EnergyPlus limitation; this constraint will be relaxed in the future. .. [#] ChargeDefectRatio is defined as (InstalledCharge - DesignCharge) / DesignCharge; a value of zero means no refrigerant charge defect. + A non-zero charge defect should typically only be applied for systems that are pre-charged on site. See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information. .. _hvac_heatpump_wlhp: @@ -1318,13 +1336,19 @@ If not entered, the simulation will not include mechanical ventilation. ``FanType`` string See [#]_ Yes Type of ventilation system ``TestedFlowRate`` or ``RatedFlowRate`` double cfm >= 0 Yes Flow rate [#]_ ``HoursInOperation`` double hrs/day 0 - 24 No See [#]_ Hours per day of operation - ``FanPower`` double W >= 0 Yes Fan power + ``FanPower`` double W >= 0 No See [#]_ Fan power ======================================= ======== ======= =========== ======== ========= ========================================= .. [#] For central fan integrated supply systems, IsSharedSystem must be false. .. [#] FanType choices are "energy recovery ventilator", "heat recovery ventilator", "exhaust only", "supply only", "balanced", or "central fan integrated supply". .. [#] For a central fan integrated supply system, the flow rate should equal the amount of outdoor air provided to the distribution system. .. [#] If HoursInOperation not provided, defaults to 24 (i.e., running continuously) for all system types other than central fan integrated supply (CFIS), and 8.0 (i.e., running intermittently) for CFIS systems. + .. [#] If FanPower not provided, defaults based on `ANSI/RESNET/ICC 301-2019 `_: + + - "energy recovery ventilator", "heat recovery ventilator", or shared system: 1.0 W/cfm + - "balanced": 0.7 W/cfm + - "central fan integrated supply": 0.5 W/cfm + - "exhaust only" or "supply only": 0.35 W/cfm Exhaust/Supply Only ~~~~~~~~~~~~~~~~~~~ @@ -1498,21 +1522,22 @@ Conventional Storage If a conventional storage water heater is specified, additional information is entered in ``WaterHeatingSystem``. - ============================================= ======= ============ =========== ======== ======== ========================================== - Element Type Units Constraints Required Default Notes - ============================================= ======= ============ =========== ======== ======== ========================================== - ``FuelType`` string See [#]_ Yes Fuel type - ``TankVolume`` double gal > 0 No See [#]_ Tank volume - ``HeatingCapacity`` double Btuh > 0 No See [#]_ Heating capacity - ``UniformEnergyFactor`` or ``EnergyFactor`` double frac < 1 Yes EnergyGuide label rated efficiency - ``FirstHourRating`` double gal/hr > 0 See [#]_ EnergyGuide label first hour rating - ``RecoveryEfficiency`` double frac 0 - 1 No See [#]_ Recovery efficiency - ``WaterHeaterInsulation/Jacket/JacketRValue`` double F-ft2-hr/Btu >= 0 No 0 R-value of additional tank insulation wrap - ============================================= ======= ============ =========== ======== ======== ========================================== + ================================================================== ================= ============ ============= ======== ======== ==================================================== + Element Type Units Constraints Required Default Notes + ================================================================== ================= ============ ============= ======== ======== ==================================================== + ``FuelType`` string See [#]_ Yes Fuel type + ``TankVolume`` double gal > 0 No See [#]_ Tank volume + ``HeatingCapacity`` double Btuh > 0 No See [#]_ Heating capacity + ``YearInstalled`` or (``UniformEnergyFactor`` or ``EnergyFactor``) integer or double # or frac > 1600 or < 1 Yes See [#]_ Year installed or EnergyGuide label rated efficiency + ``FirstHourRating`` double gal/hr > 0 See [#]_ EnergyGuide label first hour rating + ``RecoveryEfficiency`` double frac 0 - 1 No See [#]_ Recovery efficiency + ``WaterHeaterInsulation/Jacket/JacketRValue`` double F-ft2-hr/Btu >= 0 No 0 R-value of additional tank insulation wrap + ================================================================== ================= ============ ============= ======== ======== ==================================================== .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "electricity", "wood", or "wood pellets". .. [#] If TankVolume not provided, defaults based on Table 8 in the `2014 BAHSP `_. .. [#] If HeatingCapacity not provided, defaults based on Table 8 in the `2014 BAHSP `_. + .. [#] If UniformEnergyFactor and EnergyFactor not provided, defaults to EnergyFactor from the lookup table that can be found at ``HPXMLtoOpenStudio\resources\lu_water_heater_efficiency.csv`` based on YearInstalled. .. [#] FirstHourRating only required if UniformEnergyFactor provided. .. [#] If RecoveryEfficiency not provided, defaults as follows based on a regression analysis of `AHRI certified water heaters `_: diff --git a/tasks.rb b/tasks.rb index c41877f1bd..2548f0b96b 100644 --- a/tasks.rb +++ b/tasks.rb @@ -98,6 +98,7 @@ def create_hpxmls 'invalid_files/invalid-datatype-float.xml' => 'base.xml', 'invalid_files/invalid-datatype-integer.xml' => 'base.xml', 'invalid_files/invalid-daylight-saving.xml' => 'base-simcontrol-daylight-saving-custom.xml', + 'invalid_files/invalid-distribution-cfa-served.xml' => 'base.xml', 'invalid_files/invalid-epw-filepath.xml' => 'base.xml', 'invalid_files/invalid-facility-type-equipment.xml' => 'base-bldgtype-multifamily-shared-laundry-room.xml', 'invalid_files/invalid-facility-type-surfaces.xml' => 'base.xml', @@ -118,6 +119,7 @@ def create_hpxmls 'invalid_files/invalid-timestep.xml' => 'base.xml', 'invalid_files/invalid-window-height.xml' => 'base-enclosure-overhangs.xml', 'invalid_files/lighting-fractions.xml' => 'base.xml', + 'invalid_files/missing-duct-location.xml' => 'base-hvac-multiple.xml', 'invalid_files/missing-elements.xml' => 'base.xml', 'invalid_files/multifamily-reference-appliance.xml' => 'base.xml', 'invalid_files/multifamily-reference-duct.xml' => 'base.xml', @@ -131,6 +133,8 @@ def create_hpxmls 'invalid_files/net-area-negative-wall.xml' => 'base.xml', 'invalid_files/orphaned-hvac-distribution.xml' => 'base-hvac-furnace-gas-room-ac.xml', 'invalid_files/refrigerator-location.xml' => 'base.xml', + 'invalid_files/refrigerators-multiple-primary.xml' => 'base.xml', + 'invalid_files/refrigerators-no-primary.xml' => 'base.xml', 'invalid_files/repeated-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml', 'invalid_files/repeated-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml', 'invalid_files/solar-fraction-one.xml' => 'base-dhw-solar-fraction.xml', @@ -147,10 +151,6 @@ def create_hpxmls 'invalid_files/unattached-window.xml' => 'base.xml', 'invalid_files/water-heater-location.xml' => 'base.xml', 'invalid_files/water-heater-location-other.xml' => 'base.xml', - 'invalid_files/missing-duct-location.xml' => 'base-hvac-multiple.xml', - 'invalid_files/invalid-distribution-cfa-served.xml' => 'base.xml', - 'invalid_files/refrigerators-multiple-primary.xml' => 'base.xml', - 'invalid_files/refrigerators-no-primary.xml' => 'base.xml', 'base-appliances-coal.xml' => 'base.xml', 'base-appliances-dehumidifier.xml' => 'base-location-dallas-tx.xml', 'base-appliances-dehumidifier-ief-portable.xml' => 'base-appliances-dehumidifier.xml', @@ -2895,7 +2895,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml) elsif ['base-hvac-boiler-elec-only.xml'].include? hpxml_file hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity - hpxml.heating_systems[0].heating_efficiency_afue = 1.0 + hpxml.heating_systems[0].heating_efficiency_afue = 0.98 elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml', 'base-hvac-boiler-gas-only.xml'].include? hpxml_file hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler @@ -2920,7 +2920,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml) hpxml.heating_systems[0].heating_efficiency_percent = 1 elsif ['base-hvac-furnace-elec-only.xml'].include? hpxml_file hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity - hpxml.heating_systems[0].heating_efficiency_afue = 1 + hpxml.heating_systems[0].heating_efficiency_afue = 0.98 elsif ['base-hvac-furnace-oil-only.xml'].include? hpxml_file hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeOil elsif ['base-hvac-furnace-propane-only.xml'].include? hpxml_file @@ -3032,7 +3032,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml) hpxml.heating_systems[0].distribution_system_idref = nil hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeWallFurnace hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity - hpxml.heating_systems[0].heating_efficiency_afue = 1.0 + hpxml.heating_systems[0].heating_efficiency_afue = 0.98 hpxml.heating_systems[0].fan_watts = 0.0 elsif ['base-hvac-furnace-x3-dse.xml'].include? hpxml_file hpxml.heating_systems << hpxml.heating_systems[0].dup @@ -3115,6 +3115,9 @@ def set_hpxml_heating_systems(hpxml_file, hpxml) hpxml.heating_systems[0].heating_capacity = 48000 elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heating_systems.nil?) && (hpxml.heating_systems.size > 0) hpxml.heating_systems[0].heating_capacity = nil + elsif ['base-misc-defaults.xml'].include? hpxml_file + hpxml.heating_systems[0].heating_efficiency_afue = nil + hpxml.heating_systems[0].year_installed = 2009 end end @@ -3247,6 +3250,8 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml) elsif ['base-misc-defaults.xml'].include? hpxml_file hpxml.cooling_systems[0].cooling_shr = nil hpxml.cooling_systems[0].compressor_type = nil + hpxml.cooling_systems[0].cooling_efficiency_seer = nil + hpxml.cooling_systems[0].year_installed = 2009 elsif ['base-bldgtype-multifamily-shared-chiller-only-baseboard.xml', 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml', 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml', @@ -3393,7 +3398,7 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml) 'base-hvac-ground-to-air-heat-pump-cooling-only.xml', 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml'].include? hpxml_file hpxml.heat_pumps[0].heating_capacity = 0 - if not ['base-hvac-ground-to-air-heat-pump-cooling-only.xml'].include? hpxml_file + if hpxml_file != 'base-hvac-ground-to-air-heat-pump-cooling-only.xml' hpxml.heat_pumps[0].heating_capacity_17F = 0 end hpxml.heat_pumps[0].fraction_heat_load_served = 0 @@ -3494,11 +3499,7 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml) 'base-hvac-install-quality-all-ground-to-air-heat-pump.xml'].include? hpxml_file hpxml.heat_pumps[0].airflow_defect_ratio = -0.25 hpxml.heat_pumps[0].fan_watts_per_cfm = 0.365 - if hpxml_file != 'base-hvac-install-quality-all-ground-to-air-heat-pump.xml' - hpxml.heat_pumps[0].charge_defect_ratio = -0.25 - else - hpxml.heat_pumps[0].charge_defect_ratio = 0.0 - end + hpxml.heat_pumps[0].charge_defect_ratio = -0.25 elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heat_pumps.nil?) && (hpxml.heat_pumps.size > 0) hpxml.heat_pumps[0].cooling_capacity = nil hpxml.heat_pumps[0].heating_capacity = nil @@ -4012,6 +4013,10 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml) start_hour: 7, used_for_local_ventilation: true) elsif ['base-misc-defaults.xml'].include? hpxml_file + hpxml.ventilation_fans.add(id: 'MechanicalVentilation', + fan_type: HPXML::MechVentTypeExhaust, + tested_flow_rate: 110, + used_for_whole_building_ventilation: true) hpxml.ventilation_fans.add(id: 'KitchenRangeFan', fan_location: HPXML::LocationKitchen, used_for_local_ventilation: true) @@ -4428,6 +4433,8 @@ def set_hpxml_water_heating_systems(hpxml_file, hpxml) hpxml.water_heating_systems[0].heating_capacity = nil hpxml.water_heating_systems[0].tank_volume = nil hpxml.water_heating_systems[0].recovery_efficiency = nil + hpxml.water_heating_systems[0].energy_factor = nil + hpxml.water_heating_systems[0].year_installed = 2009 elsif ['base-bldgtype-multifamily-shared-water-heater.xml', 'base-bldgtype-multifamily-shared-laundry-room.xml'].include? hpxml_file hpxml.water_heating_systems.clear diff --git a/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml b/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml index 3704df5715..bbd22243f1 100644 --- a/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +++ b/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml @@ -313,7 +313,7 @@ electricity AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml b/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml index cf72b68236..bf31a69506 100644 --- a/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +++ b/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml @@ -313,7 +313,7 @@ electricity AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml b/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml index e4e43fc4e6..f5420195e6 100644 --- a/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +++ b/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml @@ -312,7 +312,7 @@ electricity AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-hvac-boiler-elec-only.xml b/workflow/sample_files/base-hvac-boiler-elec-only.xml index 1a63dc9efa..e227270a53 100644 --- a/workflow/sample_files/base-hvac-boiler-elec-only.xml +++ b/workflow/sample_files/base-hvac-boiler-elec-only.xml @@ -314,7 +314,7 @@ 36000.0 AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-hvac-furnace-elec-only.xml b/workflow/sample_files/base-hvac-furnace-elec-only.xml index 899e800e0a..0544f0606f 100644 --- a/workflow/sample_files/base-hvac-furnace-elec-only.xml +++ b/workflow/sample_files/base-hvac-furnace-elec-only.xml @@ -314,7 +314,7 @@ 36000.0 AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml b/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml index 18678bc05f..b5b2c6229f 100644 --- a/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +++ b/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml @@ -330,7 +330,7 @@ -0.25 - 0.0 + -0.25 0.365 30.0 diff --git a/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml b/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml index 46375fee9a..bf3717c95b 100644 --- a/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +++ b/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml @@ -313,7 +313,7 @@ 36000.0 AFUE - 1.0 + 0.98 1.0 diff --git a/workflow/sample_files/base-misc-defaults.xml b/workflow/sample_files/base-misc-defaults.xml index ed6d4ad691..faec1a3e91 100644 --- a/workflow/sample_files/base-misc-defaults.xml +++ b/workflow/sample_files/base-misc-defaults.xml @@ -236,29 +236,23 @@ + 2009 natural gas 36000.0 - - AFUE - 0.92 - 1.0 + 2009 central air conditioner electricity 24000.0 1.0 - - SEER - 13.0 - @@ -304,6 +298,12 @@ + + + exhaust only + 110.0 + true + kitchen @@ -321,8 +321,8 @@ electricity storage water heater + 2009 1.0 - 0.95 diff --git a/workflow/tests/base_results/results.csv b/workflow/tests/base_results/results.csv index 662abeb8a3..a144ce72ed 100644 --- a/workflow/tests/base_results/results.csv +++ b/workflow/tests/base_results/results.csv @@ -39,8 +39,8 @@ base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml,26. base-bldgtype-multifamily-shared-generator.xml,25.45,22.6,0.78,0.0,14.17,0.0,0.0,0.0,0.0,0.02,2.26,0.41,9.67,0.0,0.0,2.03,0.0,0.21,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-2.84,0.78,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.74,6.49,9.52,0.58,0.0,0.0,0.0,0.01,6188.0,6177.0,8.63,6.98,0.0,-0.01,2.61,0.0,0.0,0.41,1.46,0.0,-0.01,0.0,-0.34,1.64,0.0,0.51,0.0,0.0,-5.57,0.0,-0.0,-0.86,0.0,0.0,-0.04,3.33,0.0,-0.0,0.0,-0.33,-0.65,-3.11,-0.17,0.0,0.0,8.44,1354.0,998.0,11594.0,3210.0 base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml,27.48,27.48,0.0,0.0,0.0,0.0,0.0,0.0,0.21,1.95,1.27,1.3,9.67,0.0,0.0,2.03,0.0,0.21,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.74,6.49,9.52,0.58,0.0,0.0,0.0,0.01,6362.0,6265.0,8.63,6.98,0.0,-0.01,2.61,0.0,0.0,0.41,1.46,0.0,-0.01,0.0,-0.34,1.64,0.0,0.51,0.0,0.0,-5.57,0.0,-0.0,-0.86,0.0,0.0,-0.04,3.33,0.0,-0.0,0.0,-0.33,-0.65,-3.11,-0.17,0.0,0.0,8.44,1354.0,998.0,11594.0,3210.0 base-bldgtype-multifamily-shared-laundry-room.xml,15.69,15.69,13.33,0.0,0.0,0.0,0.0,0.0,0.0,0.02,2.19,0.4,0.0,0.0,0.0,2.03,0.0,0.21,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.81,12.51,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.77,6.18,9.54,0.57,0.0,0.0,0.0,0.01,2882.0,2943.0,3.78,7.01,0.0,-0.01,2.64,0.0,0.0,0.41,1.44,0.0,-0.01,0.0,-0.33,2.08,0.0,0.0,0.0,0.0,-5.45,0.0,-0.0,-0.82,0.0,0.0,-0.03,3.34,0.0,-0.0,0.0,-0.32,-0.8,-3.07,0.0,0.0,0.0,7.95,1355.0,998.0,11403.0,3157.0 -base-bldgtype-multifamily-shared-mechvent-multiple.xml,30.65,30.65,23.73,0.0,0.0,0.0,0.0,0.0,0.0,0.15,2.03,0.34,9.69,0.0,0.0,2.03,0.0,0.21,3.77,1.42,0.17,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.96,0.0,0.0,0.0,17.77,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.63,5.32,9.52,0.61,0.0,0.0,0.0,0.0,6412.0,6394.0,7.85,8.48,0.0,-0.01,2.75,0.0,0.0,0.38,0.55,0.0,-0.01,0.0,-0.16,0.15,0.0,9.31,0.0,0.0,-7.2,0.0,-0.0,-0.31,0.0,0.0,0.01,3.09,0.0,-0.0,0.0,-0.16,-0.03,-2.48,-1.68,0.0,0.0,6.83,1354.0,998.0,11593.0,3210.0 -base-bldgtype-multifamily-shared-mechvent-preconditioning.xml,26.91,26.91,7.53,0.0,0.0,0.0,0.0,0.0,0.0,0.04,2.19,0.39,9.68,0.0,0.0,2.03,0.0,0.21,1.49,0.0,0.05,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.42,0.0,0.0,0.0,6.11,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.35,6.09,9.52,0.59,0.0,0.0,0.0,0.01,6241.0,6250.0,8.8,7.23,0.0,-0.01,2.7,0.0,0.0,0.41,1.25,0.0,-0.01,0.0,-0.31,1.67,0.0,1.8,0.0,0.0,-6.17,0.0,-0.0,-0.67,0.0,0.0,-0.02,3.29,0.0,-0.0,0.0,-0.3,-0.53,-2.99,-0.43,0.0,0.0,7.84,1354.0,998.0,11593.0,3210.0 +base-bldgtype-multifamily-shared-mechvent-multiple.xml,29.85,29.85,20.36,0.0,0.0,0.0,0.0,0.0,0.0,0.21,1.73,0.25,9.71,0.0,0.0,2.03,0.0,0.21,3.75,0.95,0.17,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.18,0.0,0.0,0.0,12.17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.74,4.01,9.52,0.62,0.0,0.0,0.0,0.0,6412.0,6364.0,8.45,8.37,0.0,-0.01,2.83,0.0,0.0,0.4,0.44,0.0,-0.01,0.0,-0.25,0.15,0.0,12.34,0.0,0.0,-7.97,0.0,-0.0,-0.01,0.0,0.0,0.07,3.31,0.0,-0.01,0.0,-0.24,-0.01,-1.57,-3.77,0.0,0.0,6.08,1354.0,998.0,11593.0,3210.0 +base-bldgtype-multifamily-shared-mechvent-preconditioning.xml,26.71,26.71,5.6,0.0,0.0,0.0,0.0,0.0,0.0,0.04,2.02,0.34,9.68,0.0,0.0,2.03,0.0,0.21,1.49,0.0,0.05,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.64,0.0,0.0,0.0,3.95,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.55,5.3,9.52,0.59,0.0,0.0,0.0,0.01,6242.0,6237.0,8.8,7.21,0.0,-0.01,2.78,0.0,0.0,0.41,1.19,0.0,-0.01,0.0,-0.27,1.71,0.0,2.35,0.0,0.0,-6.6,0.0,-0.0,-0.5,0.0,0.0,0.0,3.37,0.0,-0.01,0.0,-0.26,-0.43,-2.57,-1.68,0.0,0.0,7.42,1354.0,998.0,11593.0,3210.0 base-bldgtype-multifamily-shared-mechvent.xml,26.68,26.68,4.09,0.0,0.0,0.0,0.0,0.0,0.0,0.11,1.98,0.33,9.69,0.0,0.0,2.03,0.0,0.21,1.49,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.09,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.87,5.16,9.52,0.6,0.0,0.0,0.0,0.01,6254.0,6240.0,10.43,7.88,0.0,-0.01,2.75,0.0,0.0,0.38,0.68,0.0,-0.01,0.0,-0.18,1.65,0.0,5.71,0.0,0.0,-7.03,0.0,-0.0,-0.37,0.0,0.0,-0.0,3.1,0.0,-0.0,0.0,-0.17,-0.38,-2.57,-1.43,0.0,0.0,7.0,1354.0,998.0,11593.0,3210.0 base-bldgtype-multifamily-shared-pv.xml,25.45,1.01,0.78,0.0,0.0,0.0,0.0,0.0,0.0,0.02,2.26,0.41,9.67,0.0,0.0,2.03,0.0,0.21,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,-24.43,0.0,0.78,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.74,6.49,9.52,0.58,0.0,0.0,0.0,0.01,6188.0,6177.0,8.63,6.98,0.0,-0.01,2.61,0.0,0.0,0.41,1.46,0.0,-0.01,0.0,-0.34,1.64,0.0,0.51,0.0,0.0,-5.57,0.0,-0.0,-0.86,0.0,0.0,-0.04,3.33,0.0,-0.0,0.0,-0.33,-0.65,-3.11,-0.17,0.0,0.0,8.44,1354.0,998.0,11594.0,3210.0 base-bldgtype-multifamily-shared-water-heater-recirc.xml,16.79,16.79,13.48,0.0,0.0,0.0,0.0,0.0,0.0,0.03,2.19,0.39,0.0,1.1,0.0,2.03,0.0,0.21,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,2.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.97,12.51,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.92,6.2,9.54,0.57,0.0,0.0,0.0,0.01,2931.0,3065.0,8.78,7.01,0.0,-0.01,2.65,0.0,0.0,0.41,1.4,0.0,-0.01,0.0,-0.34,2.0,0.0,0.51,0.0,0.0,-5.71,0.0,-0.0,-0.79,0.0,0.0,-0.03,3.33,0.0,-0.0,0.0,-0.33,-0.74,-3.05,-0.17,0.0,0.0,8.09,1355.0,998.0,11403.0,3157.0 @@ -148,7 +148,7 @@ base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml base-hvac-autosize-air-to-air-heat-pump-2-speed.xml,39.73,39.73,0.0,0.0,0.0,0.0,0.0,0.0,5.96,0.55,2.19,0.6,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.5,10.85,9.22,0.61,0.0,0.0,0.0,0.01,7724.0,6579.0,25.82,20.1,0.0,3.74,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,6.13,-11.47,0.0,0.06,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,2.55,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml,40.09,40.09,0.0,0.0,0.0,0.0,0.0,0.0,6.49,0.7,2.19,0.3,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.36,12.39,9.22,0.61,0.0,0.0,0.0,0.0,8263.0,6529.0,26.63,21.14,0.0,3.63,3.75,0.54,4.12,1.87,-0.3,0.0,0.0,3.17,-0.11,5.44,0.0,0.49,0.0,9.08,-11.49,0.0,-0.0,-0.38,-0.01,3.79,-0.29,9.07,0.0,0.0,-5.87,-0.05,-1.12,-6.58,-0.11,0.0,4.14,9.81,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-air-to-air-heat-pump-var-speed.xml,39.29,39.29,0.0,0.0,0.0,0.0,0.0,0.0,5.94,0.63,2.1,0.2,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,19.29,11.82,9.22,0.61,0.0,0.0,0.0,0.0,7589.0,6524.0,26.19,20.19,0.0,3.67,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,7.97,-11.48,0.0,0.02,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.55,9.81,1354.0,998.0,11562.0,2653.0 -base-hvac-autosize-boiler-elec-only.xml,42.66,42.66,0.0,0.0,0.0,0.0,0.0,0.0,12.12,0.13,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8692.0,0.0,18.4,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-autosize-boiler-elec-only.xml,42.91,42.91,0.0,0.0,0.0,0.0,0.0,0.0,12.37,0.13,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8738.0,0.0,18.4,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-autosize-boiler-gas-central-ac-1-speed.xml,35.22,35.22,13.22,0.0,0.0,0.0,0.0,0.0,0.0,0.15,3.66,0.99,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.22,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.56,12.17,9.22,0.61,0.0,0.0,0.0,0.13,6539.0,6715.0,18.4,21.14,0.0,3.97,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,0.0,-11.47,0.0,-0.0,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.88,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-boiler-gas-only.xml,30.56,30.56,13.16,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.16,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6489.0,0.0,18.4,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-autosize-central-ac-only-1-speed.xml,35.07,35.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.63,0.97,9.19,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.02,9.22,0.66,0.0,0.0,0.0,0.13,6434.0,6711.0,0.3,21.1,0.0,2.85,2.63,0.37,3.56,1.28,-3.79,0.0,0.0,0.52,-0.21,3.58,0.0,0.35,0.0,0.0,-11.29,0.0,-0.07,-0.44,-0.02,3.92,-0.32,8.97,0.0,0.0,-6.12,-0.04,-1.19,-6.44,-0.12,0.0,3.84,10.05,1354.0,998.0,11562.0,2653.0 @@ -160,7 +160,7 @@ base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml,34.29,34.29,7.69,0. base-hvac-autosize-elec-resistance-only.xml,41.93,41.93,0.0,0.0,0.0,0.0,0.0,0.0,11.52,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8660.0,0.0,18.39,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-autosize-evap-cooler-furnace-gas.xml,31.71,31.71,17.1,0.0,0.0,0.0,0.0,0.0,0.0,0.44,0.0,0.85,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.17,8.34,9.22,0.61,0.0,0.0,0.0,0.02,6530.0,6323.0,25.52,13.36,0.0,3.79,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.76,-11.48,0.0,0.14,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.55,-0.11,0.0,-0.0,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-floor-furnace-propane-only.xml,30.41,30.41,0.0,0.0,15.64,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.64,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.5,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6471.0,0.0,18.85,0.0,0.0,3.96,3.73,0.54,4.13,1.86,-0.31,0.0,0.0,3.07,-0.12,6.55,0.0,0.49,0.0,0.0,-11.48,0.0,-0.2,-0.72,-0.06,3.58,-0.46,8.02,0.0,0.0,-6.56,-0.07,-1.69,-11.4,-0.14,0.0,0.0,9.8,1354.0,998.0,11562.0,2653.0 -base-hvac-autosize-furnace-elec-only.xml,46.51,46.51,0.0,0.0,0.0,0.0,0.0,0.0,15.66,0.44,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.09,0.0,9.22,0.6,0.0,0.0,0.0,0.0,10410.0,2146.0,25.52,0.19,0.0,3.78,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.74,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-autosize-furnace-elec-only.xml,46.83,46.83,0.0,0.0,0.0,0.0,0.0,0.0,15.98,0.44,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.09,0.0,9.22,0.6,0.0,0.0,0.0,0.0,10526.0,2181.0,25.52,0.19,0.0,3.78,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.74,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-autosize-furnace-gas-central-ac-2-speed.xml,34.68,34.68,16.85,0.0,0.0,0.0,0.0,0.0,0.0,0.36,3.22,0.67,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.85,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.86,12.56,9.22,0.61,0.0,0.0,0.0,0.07,6569.0,6594.0,25.08,21.14,0.0,3.8,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.45,-11.48,0.0,-0.02,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,4.28,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-furnace-gas-central-ac-var-speed.xml,34.03,34.03,16.86,0.0,0.0,0.0,0.0,0.0,0.0,0.36,2.78,0.46,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.86,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.87,12.94,9.22,0.61,0.0,0.0,0.0,0.16,6569.0,6507.0,25.09,20.96,0.0,3.8,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.46,-11.48,0.0,-0.04,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.58,-0.11,0.0,4.71,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-furnace-gas-only.xml,30.85,30.85,17.02,0.0,0.0,0.0,0.0,0.0,0.0,0.44,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.09,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6530.0,426.0,25.52,0.19,0.0,3.78,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.74,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 @@ -176,10 +176,10 @@ base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml, base-hvac-autosize-mini-split-heat-pump-ducted.xml,36.52,36.52,0.0,0.0,0.0,0.0,0.0,0.0,4.1,0.24,1.68,0.07,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.27,9.56,9.22,0.61,0.0,0.0,0.0,0.01,7271.0,6465.0,21.16,15.8,0.0,3.86,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,2.81,-11.47,0.0,0.11,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,1.25,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-room-ac-only.xml,34.39,34.39,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.93,0.0,9.19,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.23,9.22,0.66,0.0,0.0,0.0,0.1,0.0,6876.0,0.0,13.32,0.0,2.85,2.63,0.37,3.56,1.28,-3.79,0.0,0.0,0.52,-0.21,3.58,0.0,0.35,0.0,0.0,-11.29,0.0,0.06,-0.44,-0.02,3.92,-0.32,8.97,0.0,0.0,-6.12,-0.04,-1.19,-6.42,-0.12,0.0,0.0,10.05,1354.0,998.0,11562.0,2653.0 base-hvac-autosize-stove-oil-only.xml,30.48,30.48,0.0,15.55,0.0,0.0,0.0,0.0,0.0,0.07,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.55,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.5,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6479.0,0.0,18.85,0.0,0.0,3.96,3.73,0.54,4.13,1.86,-0.31,0.0,0.0,3.07,-0.12,6.55,0.0,0.49,0.0,0.0,-11.48,0.0,-0.2,-0.72,-0.06,3.58,-0.46,8.02,0.0,0.0,-6.56,-0.07,-1.69,-11.4,-0.14,0.0,0.0,9.8,1354.0,998.0,11562.0,2653.0 -base-hvac-autosize-wall-furnace-elec-only.xml,41.93,41.93,0.0,0.0,0.0,0.0,0.0,0.0,11.52,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8660.0,0.0,18.39,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-autosize-wall-furnace-elec-only.xml,42.16,42.16,0.0,0.0,0.0,0.0,0.0,0.0,11.75,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8736.0,0.0,18.39,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-autosize.xml,35.2,35.2,16.79,0.0,0.0,0.0,0.0,0.0,0.0,0.44,3.62,0.73,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.79,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.88,12.14,9.22,0.61,0.0,0.0,0.0,0.11,6579.0,6674.0,25.1,21.18,0.0,3.8,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.46,-11.48,0.0,0.0,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.85,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-boiler-coal-only.xml,30.58,30.58,0.0,0.0,0.0,0.0,0.0,13.63,0.0,0.17,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.63,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6491.0,0.0,18.38,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 -base-hvac-boiler-elec-only.xml,43.1,43.1,0.0,0.0,0.0,0.0,0.0,0.0,12.61,0.09,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8794.0,0.0,18.38,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-boiler-elec-only.xml,43.36,43.36,0.0,0.0,0.0,0.0,0.0,0.0,12.87,0.09,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8843.0,0.0,18.38,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-boiler-gas-central-ac-1-speed.xml,35.01,35.01,13.76,0.0,0.0,0.0,0.0,0.0,0.0,0.1,3.54,0.94,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.76,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.56,11.33,9.22,0.61,0.0,0.0,0.0,0.01,6533.0,6703.0,18.38,21.34,0.0,3.97,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,0.0,-11.47,0.0,0.03,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.04,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-boiler-gas-only.xml,30.51,30.51,13.69,0.0,0.0,0.0,0.0,0.0,0.0,0.1,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.69,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6483.0,0.0,18.38,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-boiler-oil-only.xml,30.58,30.58,0.0,13.63,0.0,0.0,0.0,0.0,0.0,0.17,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.63,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6491.0,0.0,18.38,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 @@ -205,7 +205,7 @@ base-hvac-fixed-heater-gas-only.xml,30.41,30.41,11.52,0.0,0.0,0.0,0.0,0.0,0.0,0. base-hvac-floor-furnace-propane-only.xml,30.41,30.41,0.0,0.0,15.64,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.64,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.5,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6471.0,0.0,18.85,0.0,0.0,3.96,3.73,0.54,4.13,1.86,-0.31,0.0,0.0,3.07,-0.12,6.55,0.0,0.49,0.0,0.0,-11.48,0.0,-0.2,-0.72,-0.06,3.58,-0.46,8.02,0.0,0.0,-6.56,-0.07,-1.69,-11.4,-0.14,0.0,0.0,9.8,1354.0,998.0,11562.0,2653.0 base-hvac-furnace-coal-only.xml,30.84,30.84,0.0,0.0,0.0,0.0,0.0,16.5,0.0,0.43,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.6,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6528.0,425.0,24.77,0.2,0.0,3.8,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.23,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-furnace-elec-central-ac-1-speed.xml,49.67,49.67,0.0,0.0,0.0,0.0,0.0,0.0,14.65,0.41,3.49,0.7,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.05,11.3,9.22,0.61,0.0,0.0,0.0,0.01,9929.0,6664.0,23.86,21.21,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.62,-11.47,0.0,0.04,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.0,9.82,1354.0,998.0,11562.0,2653.0 -base-hvac-furnace-elec-only.xml,46.01,46.01,0.0,0.0,0.0,0.0,0.0,0.0,15.18,0.43,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.6,0.0,9.22,0.6,0.0,0.0,0.0,0.0,10172.0,2106.0,24.77,0.2,0.0,3.8,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.23,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-furnace-elec-only.xml,46.32,46.32,0.0,0.0,0.0,0.0,0.0,0.0,15.49,0.43,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.6,0.0,9.22,0.6,0.0,0.0,0.0,0.0,10284.0,2141.0,24.77,0.2,0.0,3.8,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.23,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 base-hvac-furnace-gas-central-ac-2-speed.xml,34.37,34.37,16.11,0.0,0.0,0.0,0.0,0.0,0.0,0.27,3.05,0.63,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.11,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.07,11.87,9.22,0.61,0.0,0.0,0.0,0.01,6555.0,6586.0,23.9,21.31,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.64,-11.47,0.0,0.01,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.58,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-furnace-gas-central-ac-var-speed.xml,33.71,33.71,16.11,0.0,0.0,0.0,0.0,0.0,0.0,0.27,2.71,0.32,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.11,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.07,12.46,9.22,0.61,0.0,0.0,0.0,0.01,6555.0,6505.0,23.9,21.11,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.64,-11.47,0.0,-0.02,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.58,-0.11,0.0,4.21,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-furnace-gas-only.xml,30.84,30.84,16.5,0.0,0.0,0.0,0.0,0.0,0.0,0.43,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.6,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6528.0,425.0,24.77,0.2,0.0,3.8,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,4.23,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 @@ -225,7 +225,7 @@ base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml,35.58,35.58,16. base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml,34.82,34.82,16.96,0.0,0.0,0.0,0.0,0.0,0.0,0.2,3.61,0.58,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.96,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.8,12.59,9.22,0.61,0.0,0.0,0.0,0.05,6548.0,6634.0,24.81,21.34,0.0,3.81,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.39,-11.48,0.0,-0.02,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,4.31,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml,34.1,34.1,16.96,0.0,0.0,0.0,0.0,0.0,0.0,0.2,3.1,0.37,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.96,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.8,13.02,9.22,0.61,0.0,0.0,0.0,0.06,6548.0,6543.0,24.81,21.22,0.0,3.81,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,4.39,-11.48,0.0,-0.04,-0.38,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.59,-0.11,0.0,4.8,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-install-quality-all-furnace-gas-only.xml,30.74,30.74,17.59,0.0,0.0,0.0,0.0,0.0,0.0,0.33,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.59,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6516.0,414.0,25.92,0.17,0.0,3.76,3.73,0.54,4.14,1.86,-0.3,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,5.17,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,-0.0,9.83,1354.0,998.0,11561.0,2653.0 -base-hvac-install-quality-all-ground-to-air-heat-pump.xml,37.21,37.21,0.0,0.0,0.0,0.0,0.0,0.0,3.81,0.49,1.88,0.61,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.57,10.42,9.22,0.61,0.0,0.0,0.0,0.01,7186.0,6539.0,23.08,18.34,0.0,3.85,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.13,-11.47,0.0,0.07,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,2.12,9.82,1354.0,998.0,11562.0,2653.0 +base-hvac-install-quality-all-ground-to-air-heat-pump.xml,41.04,41.04,0.0,0.0,0.0,0.0,0.0,0.0,6.12,0.72,3.07,0.7,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.26,10.58,9.22,0.61,0.0,0.0,0.0,0.0,7678.0,6704.0,23.88,18.89,0.0,3.82,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.83,-11.48,0.0,0.07,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,2.29,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml,32.72,32.72,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.11,0.15,9.19,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.76,9.22,0.66,0.0,0.0,0.0,0.01,6113.0,6523.0,0.25,16.09,0.0,2.85,2.63,0.37,3.56,1.28,-3.79,0.0,0.0,0.52,-0.21,3.58,0.0,0.35,0.0,0.0,-11.29,0.0,0.03,-0.45,-0.02,3.92,-0.32,8.96,0.0,0.0,-6.12,-0.04,-1.19,-6.44,-0.12,0.0,1.59,10.05,1354.0,998.0,11562.0,2653.0 base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml,37.28,37.28,0.0,0.0,0.0,0.0,0.0,0.0,4.32,0.4,2.0,0.13,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.16,9.49,9.22,0.61,0.0,0.0,0.0,0.01,7332.0,6535.0,21.14,15.77,0.0,3.86,3.74,0.54,4.12,1.87,-0.29,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,2.7,-11.47,0.0,0.11,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,1.18,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml,34.98,34.98,15.94,0.0,0.0,0.0,0.0,0.0,0.0,0.4,3.48,0.68,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.94,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.06,11.3,9.22,0.61,0.0,0.0,0.0,0.01,6573.0,6661.0,23.86,21.2,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.62,-11.47,0.0,0.04,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.0,9.82,1354.0,998.0,11562.0,2653.0 @@ -250,7 +250,7 @@ base-hvac-stove-oil-only.xml,30.46,30.46,0.0,15.58,0.0,0.0,0.0,0.0,0.0,0.05,0.0, base-hvac-stove-wood-pellets-only.xml,30.46,30.46,0.0,0.0,0.0,0.0,15.58,0.0,0.0,0.05,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.5,0.0,9.22,0.6,0.0,0.0,0.0,0.0,6476.0,0.0,18.85,0.0,0.0,3.96,3.73,0.54,4.13,1.86,-0.31,0.0,0.0,3.07,-0.12,6.55,0.0,0.49,0.0,0.0,-11.48,0.0,-0.2,-0.72,-0.06,3.58,-0.46,8.02,0.0,0.0,-6.56,-0.07,-1.69,-11.4,-0.14,0.0,0.0,9.8,1354.0,998.0,11562.0,2653.0 base-hvac-undersized-allow-increased-fixed-capacities.xml,34.62,34.62,14.35,0.0,0.0,0.0,0.0,0.0,0.0,0.37,3.2,0.62,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.35,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.57,10.2,9.22,0.61,0.0,0.0,0.0,0.02,6568.0,6638.0,21.66,17.7,0.0,3.88,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,2.09,-11.47,0.0,0.08,-0.39,-0.01,3.79,-0.29,9.08,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,1.91,9.82,1354.0,998.0,11562.0,2653.0 base-hvac-undersized.xml,32.24,32.24,8.73,0.0,0.0,0.0,0.0,0.0,0.0,0.23,1.41,0.18,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.73,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,18.24,10.95,9.22,0.61,0.0,0.0,10.01,7.74,6550.0,6435.0,22.54,16.64,0.0,3.72,3.75,0.54,4.12,1.87,-0.33,0.0,0.0,3.16,-0.09,5.44,0.0,0.49,0.0,6.97,-11.5,0.0,0.06,-0.38,-0.01,3.79,-0.29,9.05,0.0,0.0,-5.87,-0.04,-1.12,-6.59,-0.11,0.0,2.74,9.8,1354.0,998.0,11562.0,2653.0 -base-hvac-wall-furnace-elec-only.xml,41.93,41.93,0.0,0.0,0.0,0.0,0.0,0.0,11.52,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8660.0,0.0,18.39,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 +base-hvac-wall-furnace-elec-only.xml,42.16,42.16,0.0,0.0,0.0,0.0,0.0,0.0,11.75,0.0,0.0,0.0,9.13,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.51,0.0,9.22,0.6,0.0,0.0,0.0,0.0,8736.0,0.0,18.39,0.0,0.0,3.96,3.73,0.54,4.14,1.86,-0.31,0.0,0.0,3.13,-0.11,5.42,0.0,0.49,0.0,0.0,-11.45,0.0,-0.22,-0.74,-0.07,3.56,-0.48,7.95,0.0,0.0,-6.56,-0.06,-1.41,-11.57,-0.15,0.0,0.0,9.83,1354.0,998.0,11561.0,2653.0 base-lighting-ceiling-fans.xml,35.44,35.44,15.91,0.0,0.0,0.0,0.0,0.0,0.0,0.41,3.41,0.67,9.14,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.52,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.91,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.04,11.0,9.22,0.61,0.0,0.0,0.0,0.01,6575.0,6767.0,23.86,21.29,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.17,-0.11,5.44,0.0,0.49,0.0,3.62,-11.47,0.0,0.0,-0.43,-0.02,3.73,-0.31,8.96,0.0,0.0,-5.98,-0.06,-1.15,-6.86,-0.11,0.0,2.92,10.34,1354.0,998.0,11562.0,2653.0 base-lighting-detailed.xml,35.25,35.25,16.03,0.0,0.0,0.0,0.0,0.0,0.0,0.42,3.51,0.7,9.15,0.0,0.0,4.51,0.0,0.53,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.03,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.15,11.39,9.22,0.61,0.0,0.0,0.0,0.01,6567.0,6684.0,23.85,21.27,0.0,3.82,3.74,0.54,4.11,1.86,-0.29,0.0,0.0,3.16,-0.11,5.43,0.0,0.49,0.0,3.64,-11.34,0.0,0.03,-0.39,-0.01,3.77,-0.29,9.08,0.0,0.0,-5.88,-0.06,-1.12,-6.59,-0.11,0.0,3.02,9.95,1354.0,998.0,11562.0,2653.0 base-lighting-none.xml,29.95,29.95,18.07,0.0,0.0,0.0,0.0,0.0,0.0,0.47,3.27,0.64,9.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,18.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17.08,10.33,9.22,0.62,0.0,0.0,0.0,0.01,6384.0,6470.0,24.33,20.76,0.0,3.79,3.71,0.54,3.87,1.85,-0.42,0.0,0.0,2.81,-0.12,5.42,0.0,0.49,0.0,4.06,-9.0,0.0,0.11,-0.33,-0.01,4.01,-0.26,9.25,0.0,0.0,-5.61,-0.07,-1.07,-6.16,-0.11,0.0,2.8,7.78,1354.0,998.0,11562.0,2653.0 @@ -277,7 +277,7 @@ base-mechvent-hrv.xml,36.95,36.95,19.94,0.0,0.0,0.0,0.0,0.0,0.0,0.52,3.51,0.7,9. base-mechvent-multiple.xml,37.86,37.86,36.58,0.0,0.0,0.0,0.0,0.0,0.0,0.95,3.72,0.74,9.15,0.0,0.0,4.51,0.0,0.33,1.65,0.0,0.0,0.37,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,36.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,34.6,12.43,9.22,0.62,0.0,0.0,0.0,0.16,6672.0,6611.0,37.49,27.59,0.0,3.47,3.79,0.55,4.13,1.92,-0.24,0.0,0.0,2.92,-0.3,2.12,0.0,11.98,0.0,16.17,-11.91,0.0,0.14,-0.15,0.02,3.96,-0.13,9.75,0.0,0.0,-5.68,-0.27,-0.24,0.0,-2.06,-7.18,4.81,9.39,1354.0,998.0,11562.0,2653.0 base-mechvent-supply.xml,36.18,36.18,28.8,0.0,0.0,0.0,0.0,0.0,0.0,0.75,3.43,0.68,9.15,0.0,0.0,4.51,0.0,0.33,0.9,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,28.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,27.24,10.98,9.22,0.62,0.0,0.0,0.0,0.01,6644.0,6651.0,29.21,23.24,0.0,3.79,3.76,0.55,4.1,1.9,-0.31,0.0,0.0,2.9,-0.23,1.6,0.0,14.72,0.0,6.24,-11.81,0.0,0.23,-0.22,0.01,3.91,-0.18,9.52,0.0,0.0,-5.78,-0.19,-0.21,-5.49,-3.12,0.0,2.96,9.49,1354.0,998.0,11561.0,2653.0 base-mechvent-whole-house-fan.xml,34.53,34.53,16.02,0.0,0.0,0.0,0.0,0.0,0.0,0.42,2.58,0.46,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.64,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.15,7.37,9.22,0.62,0.0,0.0,0.0,0.01,6575.0,6354.0,23.86,20.2,0.0,3.85,3.75,0.54,4.11,1.87,-0.26,0.0,0.0,3.22,-0.11,5.45,0.0,0.49,0.0,3.64,-11.51,0.0,0.08,-0.23,0.01,3.9,-0.21,9.56,0.0,0.0,-5.51,-0.06,-0.97,0.0,-0.09,-10.7,2.06,9.79,1354.0,998.0,11562.0,2653.0 -base-misc-defaults.xml,30.33,10.7,14.04,0.0,0.0,0.0,0.0,0.0,0.0,0.37,3.15,0.61,2.54,0.0,0.32,4.51,0.0,0.33,0.07,0.0,0.0,0.0,2.36,0.0,0.0,0.45,0.34,2.51,1.53,0.74,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,-19.63,0.0,14.04,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.27,9.73,10.51,0.64,0.0,8.61,0.0,0.01,6582.0,5310.0,18.97,16.46,0.0,3.85,3.72,0.54,4.14,1.86,-0.3,0.0,0.0,3.2,-0.1,5.1,0.0,1.55,0.0,1.24,-11.62,0.0,0.32,-0.38,-0.01,3.7,-0.29,9.04,0.0,0.0,-5.96,-0.05,-1.06,-6.62,-0.39,0.0,0.78,10.76,1583.0,1522.0,10961.0,3863.0 +base-misc-defaults.xml,32.56,12.92,28.84,0.0,0.0,0.0,0.0,0.0,0.0,0.92,2.95,0.8,3.08,0.0,0.32,4.51,0.0,0.33,1.23,0.0,0.0,0.0,2.36,0.0,0.0,0.45,0.34,2.51,1.53,0.74,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,-19.63,0.0,28.84,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,25.36,9.33,10.5,1.33,0.0,8.76,0.0,0.01,6667.0,5367.0,24.2,18.45,0.0,3.91,3.75,0.54,4.11,1.9,-0.34,0.0,0.0,2.89,-0.23,2.05,0.0,16.8,0.0,2.35,-12.4,0.0,0.52,-0.2,0.02,3.84,-0.18,9.51,0.0,0.0,-5.87,-0.19,-0.27,-5.45,-3.78,0.0,0.76,10.67,1603.0,1542.0,11150.0,3929.0 base-misc-generators.xml,35.02,31.61,24.42,8.5,0.0,0.0,0.0,0.0,0.0,0.41,3.49,0.7,9.15,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,2.22,0.0,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-3.41,15.92,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.05,11.3,9.22,0.61,0.0,0.0,0.0,0.01,6575.0,6664.0,23.86,21.21,0.0,3.83,3.74,0.54,4.12,1.87,-0.28,0.0,0.0,3.18,-0.11,5.44,0.0,0.49,0.0,3.62,-11.47,0.0,0.04,-0.39,-0.01,3.79,-0.29,9.09,0.0,0.0,-5.86,-0.06,-1.12,-6.57,-0.11,0.0,3.0,9.82,1354.0,998.0,11562.0,2653.0 base-misc-loads-large-uncommon.xml,67.02,67.02,64.63,0.0,2.5,5.5,0.0,0.0,0.0,0.31,4.12,0.86,9.14,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,7.34,2.39,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,5.12,1.62,0.0,9.21,4.44,3.41,0.0,0.0,11.87,0.0,0.0,0.0,0.0,49.97,0.0,0.0,2.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.22,14.11,9.22,0.61,0.0,0.0,0.0,0.01,8219.0,8219.0,22.87,22.52,0.0,3.92,3.79,0.55,4.63,1.89,-0.01,0.0,0.0,3.92,-0.11,5.5,0.0,0.49,0.0,2.76,-16.24,0.0,-0.12,-0.52,-0.03,3.2,-0.36,8.76,0.0,0.0,-6.58,-0.06,-1.26,-7.64,-0.12,0.0,3.57,15.31,1354.0,998.0,11561.0,2653.0 base-misc-loads-large-uncommon2.xml,63.47,63.47,14.66,2.5,0.0,0.0,5.5,0.0,0.0,0.31,4.12,0.86,9.14,0.0,0.0,4.51,0.0,0.33,0.0,0.0,0.0,0.0,7.34,2.39,0.0,0.32,0.37,1.51,1.53,0.0,2.11,8.37,5.12,1.62,0.0,9.21,0.89,3.41,0.0,0.0,11.87,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.22,14.11,9.22,0.61,0.0,0.0,0.0,0.01,8169.0,8169.0,22.87,22.52,0.0,3.92,3.79,0.55,4.63,1.89,-0.01,0.0,0.0,3.92,-0.11,5.5,0.0,0.49,0.0,2.76,-16.24,0.0,-0.12,-0.52,-0.03,3.2,-0.36,8.76,0.0,0.0,-6.58,-0.06,-1.26,-7.64,-0.12,0.0,3.57,15.31,1354.0,998.0,11561.0,2653.0 diff --git a/workflow/tests/base_results/results_hvac_sizing.csv b/workflow/tests/base_results/results_hvac_sizing.csv index 6e29fb2180..238a7e4e5f 100644 --- a/workflow/tests/base_results/results_hvac_sizing.csv +++ b/workflow/tests/base_results/results_hvac_sizing.csv @@ -277,7 +277,7 @@ base-mechvent-hrv.xml,34141.0,8646.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,217 base-mechvent-multiple.xml,43725.0,16536.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,7615.0,24025.0,10147.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,1553.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,794.0,24000.0,998.0 base-mechvent-supply.xml,36055.0,8684.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,7797.0,19327.0,5221.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,1781.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 base-mechvent-whole-house-fan.xml,32781.0,8610.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,4597.0,18163.0,5219.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,619.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 -base-misc-defaults.xml,28793.0,4622.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,4597.0,13847.0,903.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,619.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 +base-misc-defaults.xml,32004.0,4634.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,7797.0,15008.0,902.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,1781.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 base-misc-generators.xml,32781.0,8610.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,4597.0,18163.0,5219.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,619.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 base-misc-loads-large-uncommon.xml,32781.0,8610.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,4597.0,18163.0,5219.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,619.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0 base-misc-loads-large-uncommon2.xml,32781.0,8610.0,7508.0,0.0,1149.0,6300.0,0.0,0.0,2446.0,2171.0,4597.0,18163.0,5219.0,7127.0,0.0,414.0,254.0,0.0,0.0,0.0,2010.0,619.0,2520.0,0.0,0.0,0.0,0.0,36000.0,0.0,795.0,24000.0,998.0