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

Airloop naming convention change. #1856

Open
wants to merge 53 commits into
base: nrcan
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
661f55e
Fixed naming conventions for necb systems
Sep 6, 2024
506672b
updated airloop in method calls
Sep 9, 2024
f22006a
script to add system types
Sep 18, 2024
92e2703
updated syntax to support chillers
Sep 20, 2024
cb70b9e
system 6 fan_type does nothing. Setting to var_speed_drive only for now
Sep 20, 2024
92b4238
updated reference system namer
Sep 24, 2024
52cb7a6
Update HVAC system naming conventions for NECB2011
Sep 26, 2024
ef9b1d8
Merge pull request #1833 from NREL/nrcan
ckirney Oct 21, 2024
cde8482
Merge pull request #1850 from NREL/nrcan
ckirney Nov 13, 2024
de0ea01
Merge remote-tracking branch 'origin/nrcan_oee_dev' into nrcan_434
Nov 15, 2024
bbfd552
Merge pull request #1851 from NREL/nrcan
ckirney Nov 15, 2024
0c1d447
modifications to allow consistent naming of systems.
Nov 21, 2024
40609a4
Update .gitignore and refactor weather file download tests
Nov 22, 2024
78d246c
Merge remote-tracking branch 'origin/nrcan' into nrcan_oee_dev
Nov 25, 2024
04f412d
Merge remote-tracking branch 'origin/nrcan_oee_dev' into nrcan_434
Nov 25, 2024
b631f2b
updated regression test files.
Nov 26, 2024
58ed59a
update that include removing NECB2011 from autozone.rb code.
Dec 3, 2024
7d629e0
added new fields to datapoint.rb
Dec 3, 2024
9cf5323
Revised NECB version in create_hvac_by_name method
srgilani Dec 6, 2024
401cc5e
Revised NECB version in create_hvac_by_name method
srgilani Dec 7, 2024
b80a994
Merge pull request #1858 from NREL/nrcan_434
ckirney Dec 9, 2024
371b81b
Modified add_sys6_multi_zone_built_up_system_with_baseboard_heating m…
srgilani Dec 9, 2024
9a8d8e9
Updated expected results of regression tests for LargeOffice and Medi…
srgilani Dec 10, 2024
e5e8216
Including some minor fixes and significant revisions to code checking
ckirney Dec 10, 2024
3438fcc
Merge pull request #1862 from NREL/nrcan_434_sg
ckirney Dec 10, 2024
1eca421
Tweak a comment in test_dcv.rb just for the sake of re-running all te…
srgilani Dec 11, 2024
345d8ec
Inculding more changes to support code which determines if a hot water
ckirney Dec 11, 2024
ff837bf
Merge pull request #1863 from NREL/nrcan_434
ckirney Dec 11, 2024
e1e22ae
Including code to adjust system fuel types
ckirney Dec 13, 2024
acb5859
Removing HVAC system 5 which appears to be cooling only. Keeping the…
ckirney Dec 16, 2024
e2a5b9f
Merge pull request #1867 from NREL/nrcan_434hw
ckirney Dec 18, 2024
c9e6adf
Fixing type in boiler_fueltype parameter in noair baseboard ECM.
ckirney Dec 18, 2024
1ba4133
Merge branch 'nrcan_434' into nrcan_434hw
ckirney Dec 18, 2024
be329d5
Merge pull request #1868 from NREL/nrcan_434hw
ckirney Dec 18, 2024
32e791f
Including code which adds washrooms, corridors, storage spaces and dw…
ckirney Dec 19, 2024
c832b6e
Removing commas from btap_cli run_options test run_options.yml.
ckirney Dec 19, 2024
98bd9cd
Small syntax error and variable name error fixes in autozone.rb.
ckirney Dec 19, 2024
61887a5
Removing washrooms and locker rooms from method that finds wildcard s…
ckirney Dec 19, 2024
44f72e3
Ensuring that if washrooms, dwelling units, storage areas, and coorid…
ckirney Dec 20, 2024
fb4c2e9
Renaming systems_including_sys5.json table to distinguish it from the…
ckirney Dec 20, 2024
eebfa38
Ensure HW loops added to FPFC systems.
ckirney Dec 30, 2024
fed094e
Ensuring boiler created for FPFC systems in systems_including_sys5.json
ckirney Dec 30, 2024
7fddede
Ensure that undefined spaces are not inculded when assigning user def…
ckirney Dec 30, 2024
a8b9dff
Ensuring that HW loops are created if needed when custom system types…
ckirney Dec 31, 2024
57e5db2
Including sys2 heating coil type in primary heating fuel setting and
ckirney Dec 31, 2024
852dbfb
When setting standards performance, ensuring that the performance of a
ckirney Jan 2, 2025
9567ef1
Setting system type for wet, wild, and storage spaces as 4 when
ckirney Jan 6, 2025
b1230cc
Removing innapropriate .empty? on if an integer is returned.
ckirney Jan 6, 2025
bfd9955
Autosizing cooling tower fan power when below 500 W to avoid E+ failure.
ckirney Jan 7, 2025
530fdcb
Adding code to ensure fuel types sets are set to those defined by the…
ckirney Jan 9, 2025
d38f854
Merge pull request #1873 from NREL/nrcan_434chw
ckirney Jan 9, 2025
962b02e
Merge pull request #1877 from NREL/nrcan
ckirney Jan 20, 2025
1afcaf0
Merge pull request #1879 from NREL/nrcan
ckirney Jan 21, 2025
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
Prev Previous commit
Next Next commit
modifications to allow consistent naming of systems.
Phylroy committed Nov 21, 2024
commit 0c1d447be998b3966cde1b651fea58401317369b
Original file line number Diff line number Diff line change
@@ -88,7 +88,7 @@ def add_sys3and8_single_zone_packaged_rooftop_unit_with_baseboard_heating_single
sys_name_pars['zone_htg'] = baseboard_type
sys_name_pars['zone_clg'] = 'none'
sys_name_pars['sys_rf'] = 'none'
assign_base_sys_name(air_loop,
assign_base_sys_name(air_loop: air_loop,
sys_abbr: 'sys_3',
sys_oa: 'mixed',
sys_name_pars: sys_name_pars)
Original file line number Diff line number Diff line change
@@ -167,7 +167,7 @@ def add_sys4_single_zone_make_up_air_unit_with_baseboard_heating(model:,
sys_name_pars['zone_htg'] = baseboard_type
sys_name_pars['zone_clg'] = 'none'
sys_name_pars['sys_rf'] = 'none'
assign_base_sys_name(air_loop,
assign_base_sys_name(air_loop: air_loop,
sys_abbr: 'sys_4',
sys_oa: 'mixed',
sys_name_pars: sys_name_pars)
Original file line number Diff line number Diff line change
@@ -154,7 +154,7 @@ def add_sys6_multi_zone_built_up_system_with_baseboard_heating(model:,
sys_name_pars['zone_htg'] = baseboard_type
sys_name_pars['zone_clg'] = 'none'
sys_name_pars['sys_rf'] = 'vv'
assign_base_sys_name(air_loop,
assign_base_sys_name(air_loop: air_loop,
sys_abbr: 'sys_6',
sys_oa: 'mixed',
sys_name_pars: sys_name_pars)
5 changes: 4 additions & 1 deletion lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb
Original file line number Diff line number Diff line change
@@ -819,7 +819,10 @@ def add_air_system(model:,
sys_name_pars['sys_rf'] = 'none'
sys_name_pars['sys_rf'] = 'cv' if sys_ret_fan_type == 'constant_volume'
sys_name_pars['sys_rf'] = 'vv' if sys_ret_fan_type == 'variable_volume'
assign_base_sys_name(airloop, sys_abbr: sys_abbr, sys_oa: sys_vent_type, sys_name_pars: sys_name_pars)
assign_base_sys_name( air_loop: airloop,
sys_abbr: sys_abbr,
sys_oa: sys_vent_type,
sys_name_pars: sys_name_pars)
return airloop, clg_eqpt, htg_eqpt, return_fan
end

47 changes: 27 additions & 20 deletions lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb
Original file line number Diff line number Diff line change
@@ -18,17 +18,19 @@ def get_chiller_type_from_water_coil(cooling_coil_water: nil)
end #chillers

case chiller_names[0]
# Check if name contains ["Scroll","Centrifugal","RotaryScrew","Reciprocating"]
# Check if name contains ["Scroll","Centrifugal","RotaryScrew","Reciprocating","WaterCooled"]
when /Scroll/
chiller_type = 'scrl'
when /Centrifugal/
chiller_type = 'cent'
when /RotaryScrew/
when /RotaryScrew/ , /Rotary Screw/
chiller_type = 'screw'
when /Reciprocating/
chiller_type = 'recip'
when /WaterCooled/
chiller_type = 'water'
else
raise("Chiller type not recognized")
raise("Chiller type not recognized #{chiller_names[0]}")
end
end
end
@@ -71,8 +73,8 @@ def detect_air_system_type(air_loop: nil , sys_abbr: nil , old_system_name: nil)
chiller_type = get_chiller_type_from_water_coil(cooling_coil_water: cooling_coil_water)

# Zone Baseboard Heating.
zone_htg_b_elec = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Baseboard Convective Electric') }
zone_htg_b_water = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Baseboard Convective Water') }
zone_htg_b_elec = air_loop.thermalZones.first.respond_to?(:equipment) ? air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Baseboard Convective Electric') } : false
zone_htg_b_water = air_loop.thermalZones.first.respond_to?(:equipment) ? air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Baseboard Convective Water') } : false

# Zone VAV with Reheat.
zone_vav_rh = air_loop.components.detect(proc {false}) { |equip| equip.to_AirTerminalSingleDuctVAVReheat.is_initialized()} ? air_loop.components.detect() { |equip| equip.to_AirTerminalSingleDuctVAVReheat.is_initialized()}.to_AirTerminalSingleDuctVAVReheat.get : false
@@ -81,28 +83,33 @@ def detect_air_system_type(air_loop: nil , sys_abbr: nil , old_system_name: nil)
# Zone 2/4 Pipe Fan Coils.
zone_tpfc = false
zone_fpfc = false
if air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.to_ZoneHVACFourPipeFanCoil().is_initialized()}
case air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.to_ZoneHVACFourPipeFanCoil().is_initialized()}.to_ZoneHVACFourPipeFanCoil.get.coolingCoil.to_CoilCoolingWater.get.availabilitySchedule.nameString
when 'tpfc_clg_availability'
zone_tpfc = true
when OpenStudio::Model::Model.new.alwaysOnDiscreteSchedule.nameString
zone_fpfc = true
else
raise('unknown schedule type')
end
if air_loop.thermalZones.first.respond_to?(:equipment)
fan_coil = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.to_ZoneHVACFourPipeFanCoil().is_initialized() }
if fan_coil
case fan_coil.to_ZoneHVACFourPipeFanCoil.get.coolingCoil.to_CoilCoolingWater.get.availabilitySchedule.nameString
when 'tpfc_clg_availability'
zone_tpfc = true
when OpenStudio::Model::Model.new.alwaysOnDiscreteSchedule.nameString
zone_fpfc = true
else
raise('unknown schedule type')
end
cooling_coil_water = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.to_ZoneHVACFourPipeFanCoil().is_initialized()}.to_ZoneHVACFourPipeFanCoil.get.coolingCoil.to_CoilCoolingWater.get

# If chiller was not detected, from MAU or RTU, then detect it from the fan coil.
chiller_type = get_chiller_type_from_water_coil(cooling_coil_water: cooling_coil_water) if not chiller_type
end
end


zone_htg_pthp = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Packaged Terminal Heat Pump') }
zone_clg_ptac = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('PTAC') }
zone_clg_pthp = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Packaged Terminal Heat Pump') }
zone_rh_elec = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Electric') }
zone_rh_gas = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Gas') }
zone_rh_hw = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Water') }
if air_loop.thermalZones.first.respond_to?(:equipment)
zone_htg_pthp = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Packaged Terminal Heat Pump') }
zone_clg_ptac = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('PTAC') }
zone_clg_pthp = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Zone HVAC Packaged Terminal Heat Pump') }
zone_rh_elec = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Electric') }
zone_rh_gas = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Gas') }
zone_rh_hw = air_loop.thermalZones.first.equipment.detect(proc {false}) { |equip| equip.nameString.include?('Air Terminal Single Duct Constant Volume Reheat') and equip.to_AirTerminalSingleDuctConstantVolumeReheat.get.reheatCoil.nameString.include?('Coil Heating Water') }
end
return_fan = air_loop.components.detect(proc {false}) { |equip| equip.nameString.include?('Fan') }
# Determine System Outdoor Air type.
oa_controller = air_loop.components.detect(proc {false}) { |equip| equip.nameString.include?('ControllerOutdoorAir') }
Original file line number Diff line number Diff line change
@@ -429,7 +429,7 @@ def add_sys6_multi_zone_reference_hp_with_baseboard_heating(model:,
sys_name_pars['zone_htg'] = baseboard_type
sys_name_pars['zone_clg'] = 'none'
sys_name_pars['sys_rf'] = 'cv'
assign_base_sys_name(air_loop,
assign_base_sys_name(air_loop: air_loop,
sys_abbr: 'sys_6',
sys_oa: 'mixed',
sys_name_pars: sys_name_pars)