Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

ANSI 301-2022: Airflow #702

Merged
merged 62 commits into from
Mar 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
5bc9748
Squashed 'hpxml-measures/' changes from b0f18ace10..fbf067fdcb
shorowit Jan 6, 2024
ae0930c
Merge commit '5bc97487df1ead05d69849bdfbf4756171cb416b' into ansi_301…
shorowit Jan 6, 2024
3ca7c02
First pass.
shorowit Jan 6, 2024
36cc3a1
Merge commit 'e67a6ec4b6df3a50397cdf998527f1f919ee1fdb' into ansi_301…
shorowit Jan 6, 2024
e67a6ec
Squashed 'hpxml-measures/' changes from fbf067fdcb..46fe162b76
shorowit Jan 6, 2024
3805c70
Fix/simplify tests.
shorowit Jan 6, 2024
0a681d9
Latest results.
Jan 6, 2024
1ae6922
Bugfix, cleanup. Remove global infil variables.
shorowit Jan 10, 2024
1fd01b1
Latest results.
Jan 10, 2024
0fb75e0
Squashed 'hpxml-measures/' changes from 46fe162b76..c102844ee2
shorowit Jan 10, 2024
c8e3979
Merge commit '0fb75e01ca9dc9e85da167406ba01636e2b5c3a9' into ansi_301…
shorowit Jan 10, 2024
b8c505d
Squashed 'hpxml-measures/' changes from c102844ee2..d42c040f55
shorowit Jan 10, 2024
252c188
Merge commit 'b8c505dbd331cccbcb464dcd8bb5806dcd3ef44d' into ansi_301…
shorowit Jan 10, 2024
08f492c
Some refactoring/cleanup.
shorowit Jan 10, 2024
75ddb1b
Latest results.
Jan 10, 2024
85e9288
A little cleanup.
shorowit Jan 11, 2024
d777d99
Squashed 'hpxml-measures/' changes from d42c040f55..6be89690f6
shorowit Jan 11, 2024
3f5a4c0
Merge commit 'd777d99687929b31acc42bf1ab0365e4fdea426f' into ansi_301…
shorowit Jan 11, 2024
54e2e94
Merge branch 'ansi_301_2022_airflow' of https://github.com/NREL/OpenS…
shorowit Jan 11, 2024
4eb6534
Merge branch 'ansi_301_2022' of https://github.com/NREL/OpenStudio-ER…
shorowit Jan 12, 2024
6031f7a
Latest results.
Jan 12, 2024
7ef616b
Add supplemental balanced mech vent to the Rated Home if needed.
shorowit Jan 12, 2024
b3c3299
Merge branch 'ansi_301_2022_airflow' of https://github.com/NREL/OpenS…
shorowit Jan 12, 2024
98ee593
Latest results.
Jan 12, 2024
c3f4f19
Squashed 'hpxml-measures/' changes from 6be89690f6..dc687d155e
shorowit Jan 17, 2024
859521c
Merge commit 'c3f4f194e21ccaad070ddbbfeff54eee7ae03e6a' into ansi_301…
shorowit Jan 17, 2024
f835f40
Merge branch 'ansi_301_2022' of https://github.com/NREL/OpenStudio-ER…
shorowit Jan 17, 2024
849c1f1
Merge branch 'ansi_301_2022' of https://github.com/NREL/OpenStudio-ER…
shorowit Jan 18, 2024
099cb34
Merge branch 'ansi_301_2022' of https://github.com/NREL/OpenStudio-ER…
shorowit Jan 18, 2024
e5aaf6f
Merge branch 'ansi_301_2022' of https://github.com/NREL/OpenStudio-ER…
shorowit Jan 18, 2024
82d3c46
Latest results.
Jan 18, 2024
38fcfbf
Merge branch 'latest-os-hpxml' of https://github.com/NREL/OpenStudio-…
shorowit Feb 20, 2024
59030b4
Squashed 'hpxml-measures/' changes from ff99d251f8..5ff6774afa
shorowit Feb 20, 2024
f2eaa27
Merge commit '59030b41db3840c6a2e4fb46234a1a01dd49ce3c' into ansi_301…
shorowit Feb 20, 2024
356cca8
Merge bugfix
shorowit Feb 20, 2024
285f12e
Latest results.
Feb 20, 2024
5fe078a
Merge branch 'latest-os-hpxml' of https://github.com/NREL/OpenStudio-…
shorowit Feb 23, 2024
b286ee9
Squashed 'hpxml-measures/' changes from 26fdf9c4a7..b10fd27d1e
shorowit Feb 23, 2024
0fa0133
Merge commit 'b286ee9f63e959ec2c4ee09f807bfcad5de0c5cb' into ansi_301…
shorowit Feb 23, 2024
de23fcb
Allow optional AverageCeilingHeight input; bugfix for Rated Home supp…
shorowit Feb 23, 2024
5b4e903
Merge branch 'latest-os-hpxml' of https://github.com/NREL/OpenStudio-…
shorowit Feb 23, 2024
a7511f6
Latest results.
Feb 23, 2024
4f69f5c
Merge branch 'latest-os-hpxml' of https://github.com/NREL/OpenStudio-…
shorowit Mar 6, 2024
aaf1a63
Squashed 'hpxml-measures/' changes from b651b6900d..f88480c299
shorowit Mar 6, 2024
47267f4
Merge commit 'aaf1a634d60b29f0fcff2360d6901c56f243067d' into ansi_301…
shorowit Mar 6, 2024
1fb3d2e
Latest results.
Mar 6, 2024
d283edc
Merge branch 'latest-os-hpxml' of https://github.com/NREL/OpenStudio-…
shorowit Mar 6, 2024
4b0f06b
Squashed 'hpxml-measures/' changes from f88480c299..55a199a0ad
shorowit Mar 6, 2024
182c2b1
Merge commit '4b0f06b08cfb24d6575353fd057656f0ff87693c' into ansi_301…
shorowit Mar 6, 2024
dc218d0
Squashed 'hpxml-measures/' changes from 55a199a0ad..39f10fcb07
shorowit Mar 8, 2024
bd152fb
Merge commit 'dc218d07d254547468d5c91a192b83e8b5521c3a' into ansi_301…
shorowit Mar 8, 2024
6de7432
Just use 8.2 ft as the default.
shorowit Mar 8, 2024
05ef53e
Squashed 'hpxml-measures/' changes from 39f10fcb07..fc7bec4e8f
shorowit Mar 8, 2024
11420ba
Merge commit '05ef53ee96569107803416ec7f23210d4486ae4a' into ansi_301…
shorowit Mar 8, 2024
ab0aaab
Latest results.
Mar 8, 2024
dec3d11
Squashed 'hpxml-measures/' changes from fc7bec4e8f..e4a03fb770
shorowit Mar 8, 2024
f65a13f
Merge commit 'dec3d112956b8e26ac4de16760392f49d77ea634' into ansi_301…
shorowit Mar 8, 2024
6065904
Merge branch 'ansi_301_2022_airflow' of https://github.com/NREL/OpenS…
shorowit Mar 8, 2024
6f28a6b
Sync.
shorowit Mar 8, 2024
696e329
Latest results.
Mar 8, 2024
722c569
Remove old file [ci skip]
shorowit Mar 8, 2024
0ec804a
Merge branch 'ansi_301_2022_airflow' of https://github.com/NREL/OpenS…
shorowit Mar 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ __New Features__
- The `ElectricAuxiliaryEnergy` input for boilers is no longer used.
- **Breaking change**: ERI_Results.csv and ERI_Worksheet.csv combined into a single ERI_Results.csv that better reflects the current ERI calculation components; additional fields (e.g., PEfrac) added and a few renamed/removed.
- **Breaking change**: Each `VentilationFan` must have one (and only one) `UsedFor...` element set to true.
- Allows `AverageCeilingHeight` to be optionally provided for infiltration calculations.
- Ground source heat pump model enhancements.
- Allows `Roof/RadiantBarrier` to be omitted; defaults to false.
- Adds more error-checking for inappropriate inputs (e.g., HVAC SHR=0 or clothes washer IMEF=0).
Expand Down
59 changes: 30 additions & 29 deletions docs/source/workflow_inputs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,16 @@ HPXML Building Construction

Building construction is entered in ``/HPXML/Building/BuildingDetails/BuildingSummary/BuildingConstruction``.

======================================= ======== ========= ================================= ======== ======== =======================================================================
Element Type Units Constraints Required Default Notes
======================================= ======== ========= ================================= ======== ======== =======================================================================
``ResidentialFacilityType`` string See [#]_ Yes Type of dwelling unit
``NumberofConditionedFloors`` double > 0 Yes Number of conditioned floors (including a basement)
``NumberofConditionedFloorsAboveGrade`` double > 0, <= NumberofConditionedFloors Yes Number of conditioned floors above grade (including a walkout basement)
``NumberofBedrooms`` integer > 0 Yes Number of bedrooms
``ConditionedFloorArea`` double ft2 > 0 Yes Floor area within conditioned space boundary
======================================= ======== ========= ================================= ======== ======== =======================================================================
============================================================= ======== ========= ================================= ======== ======== =======================================================================
Element Type Units Constraints Required Default Notes
============================================================= ======== ========= ================================= ======== ======== =======================================================================
``ResidentialFacilityType`` string See [#]_ Yes Type of dwelling unit
``NumberofConditionedFloors`` double > 0 Yes Number of conditioned floors (including a basement)
``NumberofConditionedFloorsAboveGrade`` double > 0, <= NumberofConditionedFloors Yes Number of conditioned floors above grade (including a walkout basement)
``AverageCeilingHeight`` double ft > 0 No 8.2 Floor to ceiling height within conditioned space
``NumberofBedrooms`` integer > 0 Yes Number of bedrooms
``ConditionedFloorArea`` double ft2 > 0 Yes Floor area within conditioned space boundary
============================================================= ======== ========= ================================= ======== ======== =======================================================================

.. [#] ResidentialFacilityType choices are "single-family detached", "single-family attached", or "apartment unit".
For ENERGY STAR, "single-family detached" may only be used for SF versions and "apartment unit" may only be used for MF versions; "single-family attached" may be used for all versions.
Expand Down Expand Up @@ -302,52 +303,52 @@ Note that ELA is different than Equivalent Leakage Area (EqLA), which involves a
HPXML Attics
************

If the dwelling unit has an unvented attic, whether it is within the infiltration volume is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Attics/Attic[AtticType/Attic[Vented="false"]]``.
If the dwelling unit has an unvented attic, additional information is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Attics/Attic[AtticType/Attic[Vented="false"]]``.

============================ ======= ===== =========== ======== ======= ===============================================
Element Type Units Constraints Required Default Notes
============================ ======= ===== =========== ======== ======= ===============================================
``WithinInfiltrationVolume`` boolean Yes In accordance with ANSI/RESNET/ICC Standard 380
``WithinInfiltrationVolume`` boolean Yes Included in the air infiltration measurement?
============================ ======= ===== =========== ======== ======= ===============================================

If the dwelling unit has a vented attic, attic ventilation information can be optionally entered in ``/HPXML/Building/BuildingDetails/Enclosure/Attics/Attic[AtticType/Attic[Vented="true"]]/VentilationRate``.
If the dwelling unit has a vented attic, additional information is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Attics/Attic[AtticType/Attic[Vented="true"]]``.

================= ====== ===== =========== ======== ======= ==========================
Element Type Units Constraints Required Default Notes
================= ====== ===== =========== ======== ======= ==========================
``UnitofMeasure`` string See [#]_ No SLA Units for ventilation rate
``Value`` double > 0 No 1/300 Value for ventilation rate
================= ====== ===== =========== ======== ======= ==========================
================================= ====== ===== =========== ======== ======= ==========================
Element Type Units Constraints Required Default Notes
================================= ====== ===== =========== ======== ======= ==========================
``VentilationRate/UnitofMeasure`` string See [#]_ No SLA Units for ventilation rate
``VentilationRate/Value`` double > 0 No 1/300 Value for ventilation rate
================================= ====== ===== =========== ======== ======= ==========================

.. [#] UnitofMeasure choices are "SLA" (specific leakage area) or "ACHnatural" (natural air changes per hour).

HPXML Foundations
*****************

If the dwelling unit has an unconditioned basement, whether it is within the infiltration volume is entered in ``Enclosure/Foundations/Foundation/FoundationType/Basement[Conditioned='false']``.
If the dwelling unit has an unconditioned basement, additional information is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Foundations/Foundation[FoundationType/Basement[Conditioned='false']]``.

============================ ======= ===== =========== ======== ======= ===============================================
Element Type Units Constraints Required Default Notes
============================ ======= ===== =========== ======== ======= ===============================================
``WithinInfiltrationVolume`` boolean Yes In accordance with ANSI/RESNET/ICC Standard 380
``WithinInfiltrationVolume`` boolean Yes Included in the air infiltration measurement?
============================ ======= ===== =========== ======== ======= ===============================================

If the dwelling unit has an unvented crawlspace, whether it is within the infiltration volume is entered in ``Enclosure/Foundations/Foundation/FoundationType/Crawlspace[Vented='false']``.
If the dwelling unit has an unvented crawlspace, additional information is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Foundations/Foundation[FoundationType/Crawlspace[Vented='false']]``.

============================ ======= ===== =========== ======== ======= ===============================================
Element Type Units Constraints Required Default Notes
============================ ======= ===== =========== ======== ======= ===============================================
``WithinInfiltrationVolume`` boolean Yes In accordance with ANSI/RESNET/ICC Standard 380
``WithinInfiltrationVolume`` boolean Yes Included in the air infiltration measurement?
============================ ======= ===== =========== ======== ======= ===============================================

If the dwelling unit has a vented crawlspace, crawlspace ventilation information can be optionally entered in ``/HPXML/Building/BuildingDetails/Enclosure/Foundations/Foundation[FoundationType/Crawlspace[Vented="true"]]/VentilationRate``.
If the dwelling unit has a vented crawlspace, additional information is entered in ``/HPXML/Building/BuildingDetails/Enclosure/Foundations/Foundation[FoundationType/Crawlspace[Vented="true"]]``.

================= ====== ===== =========== ======== ======= ==========================
Element Type Units Constraints Required Default Notes
================= ====== ===== =========== ======== ======= ==========================
``UnitofMeasure`` string See [#]_ No SLA Units for ventilation rate
``Value`` double > 0 No 1/150 Value for ventilation rate
================= ====== ===== =========== ======== ======= ==========================
================================= ====== ===== =========== ======== ======= ==========================
Element Type Units Constraints Required Default Notes
================================= ====== ===== =========== ======== ======= ==========================
``VentilationRate/UnitofMeasure`` string See [#]_ No SLA Units for ventilation rate
``VentilationRate/Value`` double > 0 No 1/150 Value for ventilation rate
================================= ====== ===== =========== ======== ======= ==========================

.. [#] UnitofMeasure only choice is "SLA" (specific leakage area).

Expand Down
9 changes: 6 additions & 3 deletions hpxml-measures/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@ __New Features__
- Adds schedule inputs for hot water recirculation pumps and general water use internal gains.
- Updated water heater installation location defaulting to match ANSI 301-2022
- Updated calculation of hot water piping length for buildings with both conditioned and unconditioned basements to avoid double counting.
- Updates how imbalanced infiltration and mechanical ventilation are combined on an hourly basis.
- Small change to default flow rate for imbalanced mechanical ventilation systems.
- `AverageCeilingHeight` now used in natural ACH/CFM infiltration calculations.
- **Breaking change**: Replaces `BuildingSummary/Site/extension/GroundConductivity` with `BuildingSummary/Site/Soil/Conductivity`.
- **Breaking change**: Modeling whole SFA/MF buildings is now specified using a `SoftwareInfo/extension/WholeSFAorMFBuildingSimulation=true` element instead of `building-id=ALL` argument.
- Allows optional building site inputs (`GeoLocation/Latitude`, `GeoLocation/Longitude`, `Elevation`); useful when located far from, or at a very different elevation than, the EPW weather station.
- Air source heat pump enhancements:
- Air source heat pump/air conditioner enhancements:
- Adds heat pump backup autosizing methodology input (`HeatPumpBackupSizingMethodology`) with choices of "emergency" and "supplemental".
- Allows autosizing with detailed performance data inputs for variable-speed systems using `CapacityFractionOfNominal`.
- Now defaults to -20F for `CompressorLockoutTemperature` for variable-speed systems.
- Allows autosizing with detailed performance data inputs for variable-speed HVAC systems using `CapacityFractionOfNominal`.
- Adds maximum power ratio detailed schedule for variable-speed HVAC systems to model shedding controls per [AHRI 1380](https://www.ahrinet.org/search-standards/ahri-1380-i-p-demand-response-through-variable-capacity-hvac-systems-residential-and-small).
- Now defaults to -20F for `CompressorLockoutTemperature` for variable-speed heat pump systems.
- Ground source heat pump enhancements:
- Allows optional detailed inputs related to geothermal loop (`HVACPlant/GeothermalLoop`).
- Allows optional ground diffusivity input.
Expand Down
17 changes: 9 additions & 8 deletions hpxml-measures/HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ def create_unit_model(hpxml, hpxml_bldg, runner, model, epw_path, epw_file, weat
@hvac_unavailable_periods = Schedule.get_unavailable_periods(runner, SchedulesFile::Columns[:HVAC].name, @hpxml_header.unavailable_periods)
airloop_map = {} # Map of HPXML System ID -> AirLoopHVAC (or ZoneHVACFourPipeFanCoil)
add_ideal_system(model, spaces, epw_path)
add_cooling_system(model, weather, spaces, airloop_map)
add_cooling_system(model, runner, weather, spaces, airloop_map)
add_heating_system(runner, model, weather, spaces, airloop_map)
add_heat_pump(runner, model, weather, spaces, airloop_map)
add_dehumidifiers(runner, model, spaces)
Expand Down Expand Up @@ -1570,7 +1570,7 @@ def add_hot_water_and_appliances(runner, model, weather, spaces)
Waterheater.apply_combi_system_EMS(model, @hpxml_bldg.water_heating_systems, plantloop_map)
end

def add_cooling_system(model, weather, spaces, airloop_map)
def add_cooling_system(model, runner, weather, spaces, airloop_map)
conditioned_zone = spaces[HPXML::LocationConditionedSpace].thermalZone.get

HVAC.get_hpxml_hvac_systems(@hpxml_bldg).each do |hvac_system|
Expand Down Expand Up @@ -1603,9 +1603,9 @@ def add_cooling_system(model, weather, spaces, airloop_map)
HPXML::HVACTypeMiniSplitAirConditioner,
HPXML::HVACTypePTAC].include? cooling_system.cooling_system_type

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

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

Expand Down Expand Up @@ -1648,9 +1648,9 @@ def add_heating_system(runner, model, weather, spaces, airloop_map)
sys_id = heating_system.id
if [HPXML::HVACTypeFurnace].include? heating_system.heating_system_type

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

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

Expand Down Expand Up @@ -1710,9 +1710,10 @@ def add_heat_pump(runner, model, weather, spaces, airloop_map)
HPXML::HVACTypeHeatPumpMiniSplit,
HPXML::HVACTypeHeatPumpPTHP,
HPXML::HVACTypeHeatPumpRoom].include? heat_pump.heat_pump_type
airloop_map[sys_id] = HVAC.apply_air_source_hvac_systems(model, heat_pump, heat_pump, sequential_cool_load_fracs, sequential_heat_load_fracs,

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

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