Skip to content

Commit

Permalink
Update development branch from master (#1560)
Browse files Browse the repository at this point in the history
* Add DEER DCV to ThermalZone.rb and AirLoopHVAC.rb

* Modified model_add_daylighting_controls method in a way to set minimum lux value for each space type as per NECB

* Modification of model_add_daylighting_controls method and unit test for it in progress; Updated bundler version in openstudio-standards.gemspec

* removed redundant tests.. now always rely on circle_ci.txt for what tests to run. and only rake test:parallel_run_all_tests_locally

* Modification of daylighting sensor control ECM and its unit test in progress

* Added min illuminance level to space_types.json of NECB2011; and NECB 2015 in progress

* Modified unit test for daylighting sensor control ecm

* Commented in unit test for daylighting sensor control ecm

* Activating gems only used by nrcan for the btap_cli.

* Updated bundler version in openstudio-standards.gemspec

* Added min illuminance level to space_types.json of NECB2015

* Adding min illuminance level to space_types.json of NECB2017, in progress

* Adding min illuminance level to space_types.json of NECB2017

* Added min illuminance level to space_types.json of NECB2020

* Orienting interior walls properly.

* Ensuring the volume of all spaces are auto-calculated.  Updating test results.

* Added min illuminance level to space_types.json of BTAPPRE1980 and BTAP1980TO2010; Added units of min illuminance level to space_type_unit_definitions.txt; Added reference of min illuminance level to all space_types.json of necb

* Set daylighting_type in model_apply_standard method of necb_2011.rb; Modified unit test for daylighting sensor control ecm and updated expected results for it

* Updated expected results files of regression tests for warehouse, retailstandalone, and smallhotel, due to changes in daylighting sensor control ecm

* Updated expected results files of regression tests for primary and secondary school due to changes in daylighting sensor control ecm

* Nrcan 380 (#1489)

* replaced costing_enabled with intrinsic method to check if BTAPCosting is present

* replaced costing_enabled with intrinsic method to check if BTAPCosting is present

* Variable for zone heating equipment in ECN HS12 was not properly set for DOAS

* Adding a 1W minimum boiler capacity.  Fixing a spelling mistake in a comment.

* Modify capacities of boiler and air cooled chiller so that the total available heating and cooling capacities of the plant loops are equal to the autosized capacities

* Set COP of air cooled chiller for HS14 ECM based on NECB 2020

* Add chiller_type key to the json file for chillers in ECM class.

Information for chiller type and capacity ranges was based on survey of manufacturers data by Ali

* Apply sort method to object arrays before updating model

* Added Northern osm files developed by RDH/Evoke

* Add json file for compressor type of air cooled chiller for ECM HS14

* Add water cooled chiller type json for NECB and update name of chiller based on compressor type

* Nrcan 372 (#1505)

Added thermal bridging inventory

* Update initial name of water-cooled chiller in ECM HS14

Set name of 'Screw' chillers to 'Rotary Screw'

Set default 'chiller_type' in file 'fuel_type_sets.json' to empty. In this case chiller type is set based on information in new file 'chiller_types.json'.

Update standard method for setting efficiency and curves of water cooled electric chillers to deal with the situation when the chiller name doesn't have information on the chiller type. If the name doesn't have information on the chiller type then this will be
set based on information from the new file 'chiller_types.json'.

Modify method in class 'BTAPPRE1980' to modify name of chiller when the original name doesn't include a compressor type

Update building regression tests osm files

* Update openstudio-standards.gemspec

Commenting out NRCan development gems.

* Update btap_datapoint.rb

Commenting out NRCan only development Gem require statements.

* Enabling gems required for NRCan development.

* Inculding ability to not apply daylighting by setting "daylighting_type" to none.

* Add NECB performance curves for air-cooled chillers

Add method for assigning performance curves and cop for chillers in ECM class

* Incorporating updates from nrcan branch (#1515)

* Add json file for compressor type of air cooled chiller for ECM HS14

* Add water cooled chiller type json for NECB and update name of chiller based on compressor type

* Update initial name of water-cooled chiller in ECM HS14

Set name of 'Screw' chillers to 'Rotary Screw'

Set default 'chiller_type' in file 'fuel_type_sets.json' to empty. In this case chiller type is set based on information in new file 'chiller_types.json'.

Update standard method for setting efficiency and curves of water cooled electric chillers to deal with the situation when the chiller name doesn't have information on the chiller type. If the name doesn't have information on the chiller type then this will be
set based on information from the new file 'chiller_types.json'.

Modify method in class 'BTAPPRE1980' to modify name of chiller when the original name doesn't include a compressor type

Update building regression tests osm files

---------

Co-authored-by: khaddad <khaddad.energy.eng@gmail.com>

* Updating regression tests from OS 3.5.1 to reflect merge of nrcan branch and master.

* Updating nrcan_os360_dev with changes to nrcan branch and updating with regression test results using OS 3.5.1.

* Incorporating recent changes to nrcan branch (#1518)

* Add json file for compressor type of air cooled chiller for ECM HS14

* Add water cooled chiller type json for NECB and update name of chiller based on compressor type

* Update initial name of water-cooled chiller in ECM HS14

Set name of 'Screw' chillers to 'Rotary Screw'

Set default 'chiller_type' in file 'fuel_type_sets.json' to empty. In this case chiller type is set based on information in new file 'chiller_types.json'.

Update standard method for setting efficiency and curves of water cooled electric chillers to deal with the situation when the chiller name doesn't have information on the chiller type. If the name doesn't have information on the chiller type then this will be
set based on information from the new file 'chiller_types.json'.

Modify method in class 'BTAPPRE1980' to modify name of chiller when the original name doesn't include a compressor type

Update building regression tests osm files

* Enabling gems required for NRCan development.

* Add NECB performance curves for air-cooled chillers

Add method for assigning performance curves and cop for chillers in ECM class

* Incorporating updates from nrcan branch (#1515)

* Add json file for compressor type of air cooled chiller for ECM HS14

* Add water cooled chiller type json for NECB and update name of chiller based on compressor type

* Update initial name of water-cooled chiller in ECM HS14

Set name of 'Screw' chillers to 'Rotary Screw'

Set default 'chiller_type' in file 'fuel_type_sets.json' to empty. In this case chiller type is set based on information in new file 'chiller_types.json'.

Update standard method for setting efficiency and curves of water cooled electric chillers to deal with the situation when the chiller name doesn't have information on the chiller type. If the name doesn't have information on the chiller type then this will be
set based on information from the new file 'chiller_types.json'.

Modify method in class 'BTAPPRE1980' to modify name of chiller when the original name doesn't include a compressor type

Update building regression tests osm files

---------

Co-authored-by: khaddad <khaddad.energy.eng@gmail.com>

* Updating regression tests from OS 3.5.1 to reflect merge of nrcan branch and master.

* Updating nrcan_os360_dev with changes to nrcan branch and updating with regression test results using OS 3.5.1.

---------

Co-authored-by: khaddad <khaddad.energy.eng@gmail.com>

* Updating regression test expected results to those used with OS 3.6.0 in preparation for merge with master.

* Updates default economizer type to FixedDryBulb and reverts exceptions for 90.1-2016, 2019, and NREL ZNE Ready 2017

* Adds possible fixed enthalpy limit to fixed drybulb economizer control

* Updates DEER economizer logic based on MASControl3

* Moves DEER economizer limits from code to data files

* Update openstudio-standards.gemspec

Made TBD a runtime dependency not just a development dependency.

* init refactor of CBE ctrl sequences

* add dimensionless schedule limits type

* removed code blocks not needed anymore

* modified/added comments

* set ems variables names to lowercase

* modified radiant system methods' arguments

* assign reversed radiant constructions to adjacent surfaces

* Fix min OA requirements

- Add "air_loop_hvac_demand_control_ventilation_limits" method to deer.AirLoopHVAC.rb
- Add minimum floor area to applicable DEER templates in ThermalZone.rb

* Update comments

* replace existing zone thermostat with constant thermostat to control radiant system

* added radiant system availability presets

* add erv method to deer 2020

* add placeholder for radiant controls tests

* add require_relative for new DEER files

- added `require_relative` for DEER code year files, such as ThermalZone and AirLoopHVAC

* safeguard for max_net_vert_distance equal to zero

* comstock economizer type

revert ashrae 90.1 changes and make them comstock specific

* removing if for zero

* remove .vscode artificats

* Update performance and regression tests results.

* remove VRP default in VAV constructor

Removes model_system_outdoor_air_sizing_vrp_method(air_loop) and air_loop_hvac_apply_vav_damper_action(air_loop) methods from the default constructor for VAV systems. Instead, default to ZoneSum for the controller mechanical ventilation, and single maximum for VAV reheat terminals.  Still apply these methods before the sizing run in the create PRM baseline and create prototype methods.

Also, harmonize the outdoor air system setup between the VAV and PVAV archetypes.

* undo vent controller name change

may change to ventilation eventually

* remove maximum flow fraction setting

we anticipated it was placed in the wrong place, but it's changing the performance results.

* Updating MiniTest inheritance to Minitest to accommodate change minitest-reporters v1.6.1.

* Update openstudio-standards.gemspec

Removing aws-sdk-s3 and git-revision gems not used in master

* update regression models

* formatting edits to hvac_system_test_helper

* update test model path lookup

* add test helper for radiant system controls

* change default test name arguments

* restore 0.5 maximum reheat flow fraction

* add python script to create expected results

* update performance and regression tests

---------

Co-authored-by: amylebar <41447070+amylebar@users.noreply.github.com>
Co-authored-by: srgilani <s.gilani@outlook.com>
Co-authored-by: phylroy <phylroy.lopez@gmail.com>
Co-authored-by: Chris Kirney <chris.kirney@canada.ca>
Co-authored-by: Chris Kirney <36897585+ckirney@users.noreply.github.com>
Co-authored-by: Sara Gilani <63085280+srgilani@users.noreply.github.com>
Co-authored-by: khaddad <khaddad.energy.eng@gmail.com>
Co-authored-by: Andrew Parker <Andrew.Parker@nrel.gov>
Co-authored-by: Matthew Dahlhausen <matthew.dahlhausen@gmail.com>
Co-authored-by: Carlos Duarte <cduarte@berkeley.edu>
Co-authored-by: Janghyun(JK)Kim <janghyun.kim@nrel.gov>
  • Loading branch information
12 people authored Aug 16, 2023
1 parent 6b3e4e0 commit 8918092
Show file tree
Hide file tree
Showing 568 changed files with 2,260,519 additions and 2,109,229 deletions.
90 changes: 90 additions & 0 deletions data/inventory/thermal_bridging.csv

Large diffs are not rendered by default.

2,933 changes: 1,528 additions & 1,405 deletions data/standards/test_performance_expected_dd_results.csv

Large diffs are not rendered by default.

21 changes: 20 additions & 1 deletion lib/openstudio-standards.rb
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,26 @@ module OpenstudioStandards
require_relative "#{stds}/deer/deer.AirLoopHVAC"
require_relative "#{stds}/deer/deer.Space"
require_relative "#{stds}/deer/deer.PlanarSurface"
# DEER 2003
require_relative "#{stds}/deer/deer_2003/deer_2003.ThermalZone"
# DEER 2007
require_relative "#{stds}/deer/deer_2007/deer_2007.ThermalZone"
# DEER 2011
require_relative "#{stds}/deer/deer_2011/deer_2011.ThermalZone"
# DEER 2014
require_relative "#{stds}/deer/deer_2014/deer_2014.Space"
require_relative "#{stds}/deer/deer_2014/deer_2014.ThermalZone"
# DEER 2015
require_relative "#{stds}/deer/deer_2015/deer_2015.Space"
require_relative "#{stds}/deer/deer_2015/deer_2015.ThermalZone"
# DEER 2017
require_relative "#{stds}/deer/deer_2017/deer_2017.Space"
require_relative "#{stds}/deer/deer_2017/deer_2017.ThermalZone"
# DEER 2020
require_relative "#{stds}/deer/deer_2020/deer_2020.AirLoopHVAC"
require_relative "#{stds}/deer/deer_2020/deer_2020.FanVariableVolume"
require_relative "#{stds}/deer/deer_2020/deer_2020.Space"
require_relative "#{stds}/deer/deer_2020/deer_2020.ThermalZone"
# CBES Common
require_relative "#{stds}/cbes/cbes.AirLoopHVAC"
require_relative "#{stds}/cbes/cbes.Model"
Expand Down Expand Up @@ -499,7 +519,6 @@ module OpenstudioStandards
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanOnOff"
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanVariableVolume"
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent"
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model"
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.elevators"
require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.hvac_systems"
# ZE AEDG Multifamily
Expand Down
1,301 changes: 660 additions & 641 deletions lib/openstudio-standards/btap/bridging.rb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,38 +1,6 @@
class ASHRAE9012016 < ASHRAE901
# @!group Model

# Determine the prototypical economizer type for the model.
#
# @param model [OpenStudio::Model::Model] OpenStudio model object
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
# @return [String] the economizer type. Possible values are:
# 'NoEconomizer'
# 'FixedDryBulb'
# 'FixedEnthalpy'
# 'DifferentialDryBulb'
# 'DifferentialEnthalpy'
# 'FixedDewPointAndDryBulb'
# 'ElectronicEnthalpy'
# 'DifferentialDryBulbAndEnthalpy'
def model_economizer_type(model, climate_zone)
economizer_type = case climate_zone
when 'ASHRAE 169-2006-0A',
'ASHRAE 169-2006-1A',
'ASHRAE 169-2006-2A',
'ASHRAE 169-2006-3A',
'ASHRAE 169-2006-4A',
'ASHRAE 169-2013-0A',
'ASHRAE 169-2013-1A',
'ASHRAE 169-2013-2A',
'ASHRAE 169-2013-3A',
'ASHRAE 169-2013-4A'
'DifferentialEnthalpy'
else
'DifferentialDryBulb'
end
return economizer_type
end

# Adjust model to comply with fenestration orientation requirements
# @note code_sections [90.1-2013_5.5.4.5]
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,38 +1,6 @@
class ASHRAE9012019 < ASHRAE901
# @!group Model

# Determine the prototypical economizer type for the model.
#
# @param model [OpenStudio::Model::Model] OpenStudio model object
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
# @return [String] the economizer type. Possible values are:
# 'NoEconomizer'
# 'FixedDryBulb'
# 'FixedEnthalpy'
# 'DifferentialDryBulb'
# 'DifferentialEnthalpy'
# 'FixedDewPointAndDryBulb'
# 'ElectronicEnthalpy'
# 'DifferentialDryBulbAndEnthalpy'
def model_economizer_type(model, climate_zone)
economizer_type = case climate_zone
when 'ASHRAE 169-2006-0A',
'ASHRAE 169-2006-1A',
'ASHRAE 169-2006-2A',
'ASHRAE 169-2006-3A',
'ASHRAE 169-2006-4A',
'ASHRAE 169-2013-0A',
'ASHRAE 169-2013-1A',
'ASHRAE 169-2013-2A',
'ASHRAE 169-2013-3A',
'ASHRAE 169-2013-4A'
'DifferentialEnthalpy'
else
'DifferentialDryBulb'
end
return economizer_type
end

# Adjust model to comply with fenestration orientation requirements
# @note code_sections [90.1-2013_5.5.4.5]
#
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ def model_create_prototype_model(climate_zone, epw_file, sizing_run_dir = Dir.pw
model_create_thermal_zones(model, @space_multiplier_map)
model_add_design_days_and_weather_file(model, climate_zone, epw_file)
model_add_hvac(model, @instvarbuilding_type, climate_zone, @prototype_input)
model.getAirLoopHVACs.each do |air_loop|
next unless air_loop_hvac_multizone_vav_system?(air_loop)
model_system_outdoor_air_sizing_vrp_method(air_loop)
air_loop_hvac_apply_vav_damper_action(air_loop)
end
model_add_constructions(model, @instvarbuilding_type, climate_zone)
model_fenestration_orientation(model, climate_zone)
model_custom_hvac_tweaks(model, building_type, climate_zone, @prototype_input)
Expand Down Expand Up @@ -2474,7 +2479,13 @@ def model_multiply_schedule(model, day_sch, multiplier, limit)
# end reduce schedule

# Determine the prototypical economizer type for the model.
# Defaults to the pre-90.1-2010 assumption of DifferentialDryBulb.
# Defaults to FixedDryBulb based on anecdotal evidence of this being
# the most common type encountered in the field, combined
# with this being the default option for many equipment manufacturers,
# and being the strategy recommended in the 2010 ASHRAE journal article
# "Economizer High Limit Devices and Why Enthalpy Economizers Don't Work"
# by Steven Taylor and Hwakong Cheng.
# https://tayloreng.egnyte.com/dl/mN0c9t4WSO/ASHRAE_Journal_-_Economizer_High_Limit_Devices_and_Why_Enthalpy_Economizers_Dont_Work.pdf_
#
# @param model [OpenStudio::Model::Model] the model
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
Expand All @@ -2488,7 +2499,7 @@ def model_multiply_schedule(model, day_sch, multiplier, limit)
# 'ElectronicEnthalpy'
# 'DifferentialDryBulbAndEnthalpy'
def model_economizer_type(model, climate_zone)
economizer_type = 'DifferentialDryBulb'
economizer_type = 'FixedDryBulb'
return economizer_type
end

Expand Down
Loading

0 comments on commit 8918092

Please sign in to comment.