openstudio-standards 0.2.10 → 0.2.11.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/data/geometry/ASHRAE90120042007LargeHotel.osm +101 -0
- data/data/geometry/ASHRAE90120042007RetailStandalone.osm +220 -0
- data/data/geometry/ASHRAE9012010LargeHotel.osm +101 -0
- data/data/geometry/ASHRAE9012010RetailStandalone.osm +218 -32
- data/data/geometry/ASHRAE9012013FullServiceRestaurant.osm +17 -0
- data/data/geometry/ASHRAE9012013Hospital.osm +288 -0
- data/data/geometry/ASHRAE9012013LargeHotel.osm +113 -12
- data/data/geometry/ASHRAE9012013LargeOffice.osm +205 -1
- data/data/geometry/ASHRAE9012013MediumOffice.osm +103 -1
- data/data/geometry/ASHRAE9012013Outpatient.osm +390 -102
- data/data/geometry/ASHRAE9012013PrimarySchool.osm +424 -0
- data/data/geometry/ASHRAE9012013QuickServiceRestaurant.osm +16 -0
- data/data/geometry/ASHRAE9012013RetailStandalone.osm +220 -0
- data/data/geometry/ASHRAE9012013SecondarySchool.osm +543 -0
- data/data/geometry/ASHRAE9012013SmallHotel.osm +50 -0
- data/data/geometry/ASHRAE9012013SmallOffice.osm +33 -0
- data/data/geometry/ASHRAE9012013Warehouse.osm +475 -238
- data/data/geometry/ASHRAEFullServiceRestaurant.osm +16 -0
- data/data/geometry/ASHRAEHospital.osm +288 -0
- data/data/geometry/ASHRAELargeOffice.osm +205 -1
- data/data/geometry/ASHRAELargeOfficeDetailed.osm +32 -32
- data/data/geometry/ASHRAEMediumOffice.osm +103 -1
- data/data/geometry/ASHRAEOutpatient.osm +390 -102
- data/data/geometry/ASHRAEPrimarySchool.osm +424 -0
- data/data/geometry/ASHRAEQuickServiceRestaurant.osm +16 -0
- data/data/geometry/ASHRAESecondarySchool.osm +1011 -162
- data/data/geometry/ASHRAESmallHotel.osm +50 -0
- data/data/geometry/ASHRAESmallOffice.osm +33 -0
- data/data/geometry/ASHRAEWarehouse.osm +476 -238
- data/data/standards/manage_OpenStudio_Standards.rb +1 -1
- data/data/standards/openstudio_standards_duplicates_log.csv +16 -0
- data/data/standards/test_performance_expected_dd_results.csv +1216 -1216
- data/data/weather/ARE_Abu.Dhabi.412170_IWEC.ddy +536 -0
- data/data/weather/ARE_Abu.Dhabi.412170_IWEC.epw +8768 -0
- data/data/weather/ARE_Abu.Dhabi.412170_IWEC.stat +544 -0
- data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.ddy +533 -0
- data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.epw +8768 -0
- data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.stat +553 -0
- data/data/weather/VNM_Hanoi.488200_IWEC.ddy +533 -0
- data/data/weather/VNM_Hanoi.488200_IWEC.epw +8768 -0
- data/data/weather/VNM_Hanoi.488200_IWEC.stat +544 -0
- data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.ddy +533 -0
- data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.epw +8768 -0
- data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.stat +546 -0
- data/lib/openstudio-standards.rb +27 -0
- data/lib/openstudio-standards/btap/btap.model.rb +4 -4
- data/lib/openstudio-standards/btap/btap_result.rb +8 -8
- data/lib/openstudio-standards/btap/economics.rb +11 -11
- data/lib/openstudio-standards/btap/envelope.rb +5 -5
- data/lib/openstudio-standards/btap/hvac.rb +55 -11
- data/lib/openstudio-standards/btap/measures.rb +7 -7
- data/lib/openstudio-standards/btap/spaceloads.rb +4 -4
- data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +105 -1
- data/lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb +2 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +0 -8
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +0 -8
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +0 -8
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +0 -8
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +6 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +9 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +3 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +22 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanConstantVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanOnOff.rb +33 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +9 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.elevators.rb +25 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +35 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.hvac_systems.rb +11 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +17 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +22 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +107 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +0 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +2 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +15 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +45 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +21 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +251 -364
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +4 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +4 -5
- data/lib/openstudio-standards/refs/references.rb +4 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +283 -97
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +5 -5
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Construction.rb +53 -45
- data/lib/openstudio-standards/standards/Standards.Fan.rb +10 -2
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Model.rb +39 -18
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +8 -8
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +12 -12
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.Space.rb +190 -181
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +36 -59
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.Surface.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +16 -12
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +16 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +1354 -1075
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +557 -17
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +28 -28
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +36 -36
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +233 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +1356 -1077
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +480 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +28 -28
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +36 -36
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +241 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +12 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +1367 -1087
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +480 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +36 -36
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +233 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +20 -27
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +8 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +1432 -1138
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +480 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +36 -36
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +241 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.climate_zone_sets.json +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.climate_zones.json +39 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +489 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +250 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +12 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +1920 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +5265 -9
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +2441 -1925
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.construction_properties.json +16658 -2578
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +212 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +11 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +159 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +2403 -1889
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.construction_properties.json +16664 -2584
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +209 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +11 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_properties.json +4113 -513
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_sets.json +40 -40
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.elevators.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ground_temperatures.json +650 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_pumps.json +90 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_pumps_heating.json +25 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +1909 -32
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.water_heaters.json +8 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +147 -155
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +29 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +45 -73
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +4 -72
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.boilers.json +20 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.chillers.json +400 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_properties.json +4444 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_sets.json +391 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +536 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.elevators.json +36 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +169 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ground_temperatures.json +650 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_pumps.json +290 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_pumps_heating.json +164 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +40 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.motors.json +274 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.prototype_inputs.json +704 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.refrigeration_compressors.json +22 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +6424 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.unitary_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +72 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_source_heat_pumps.json +31 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_source_heat_pumps_heating.json +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +829 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower.rb +19 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerSingleSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerTwoSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +34 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +80 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +68 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +146 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ThermalZone.rb +23 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +8 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.rb +16 -0
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +18 -0
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.heat_pumps_heating.json +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.heat_pumps_heating.json +5 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +5 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +5 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +5 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +8 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +12 -12
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +4 -0
- metadata +102 -18
- data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
- data/data/standards/OpenStudio_Standards-cbes(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-cbes.xlsx +0 -0
- data/data/standards/OpenStudio_Standards-deer(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-deer.xlsx +0 -0
- data/data/standards/OpenStudio_Standards_LA100.xlsx +0 -0
- data/data/standards/junk/legacy_dd_results - Copy.csv +0 -960
- data/data/standards/junk/legacy_dd_results.csv +0 -960
- data/data/standards/junk/legacy_dd_results_new - Copy.csv +0 -960
- data/data/standards/junk/legacy_dd_results_new.csv +0 -960
- data/data/standards/junk/legacy_dd_results_original.csv +0 -960
- data/lib/openstudio-standards/standards/necb/NECB2011/newway.json +0 -8102
@@ -153,4 +153,13 @@ module MediumOffice
|
|
153
153
|
|
154
154
|
return true
|
155
155
|
end
|
156
|
+
|
157
|
+
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
158
|
+
min_damper_position = template == '90.1-2010' || template == '90.1-2013' ? 0.2 : 0.3
|
159
|
+
|
160
|
+
# Set the minimum flow fraction
|
161
|
+
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
162
|
+
|
163
|
+
return true
|
164
|
+
end
|
156
165
|
end
|
@@ -132,4 +132,13 @@ module MediumOfficeDetailed
|
|
132
132
|
|
133
133
|
return true
|
134
134
|
end
|
135
|
+
|
136
|
+
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
137
|
+
min_damper_position = template == '90.1-2010' || template == '90.1-2013' ? 0.2 : 0.3
|
138
|
+
|
139
|
+
# Set the minimum flow fraction
|
140
|
+
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
141
|
+
|
142
|
+
return true
|
143
|
+
end
|
135
144
|
end
|
@@ -249,8 +249,33 @@ module Outpatient
|
|
249
249
|
end
|
250
250
|
end
|
251
251
|
|
252
|
-
# For operating room 1&2 in 2010 and 2013, VAV minimum air flow is set by schedule
|
253
252
|
def model_adjust_vav_minimum_damper(model)
|
253
|
+
# Minimum damper position for Outpatient prototype
|
254
|
+
# Based on AIA 2001 ventilation requirements
|
255
|
+
# See Section 5.2.2.16 in Thornton et al. 2010
|
256
|
+
# https://www.energycodes.gov/sites/default/files/documents/BECP_Energy_Cost_Savings_STD2010_May2011_v00.pdf
|
257
|
+
init_mdp = {
|
258
|
+
'FLOOR 1 ANESTHESIA' => 1.0,
|
259
|
+
'FLOOR 1 CLEAN' => 1.0,
|
260
|
+
'FLOOR 1 CLEAN WORK' => 1.0,
|
261
|
+
'FLOOR 1 LOBBY TOILET' => 1.0,
|
262
|
+
'FLOOR 1 MRI TOILET' => 1.0,
|
263
|
+
'FLOOR 1 NURSE TOILET' => 1.0,
|
264
|
+
'FLOOR 1 OPERATING ROOM 1' => 1.0,
|
265
|
+
'FLOOR 1 OPERATING ROOM 2' => 1.0,
|
266
|
+
'FLOOR 1 OPERATING ROOM 3' => 1.0,
|
267
|
+
'FLOOR 1 PACU' => 1.0,
|
268
|
+
'FLOOR 1 PRE-OP ROOM 1' => 1.0,
|
269
|
+
'FLOOR 1 PRE-OP ROOM 2' => 1.0,
|
270
|
+
'FLOOR 1 PRE-OP TOILET' => 1.0,
|
271
|
+
'FLOOR 1 PROCEDURE ROOM' => 1.0,
|
272
|
+
'FLOOR 1 RECOVERY ROOM' => 1.0,
|
273
|
+
'FLOOR 1 SOIL' => 1.0,
|
274
|
+
'FLOOR 1 SOIL HOLD' => 1.0,
|
275
|
+
'FLOOR 1 SOIL WORK' => 1.0,
|
276
|
+
'FLOOR 1 STEP DOWN' => 1.0
|
277
|
+
}
|
278
|
+
|
254
279
|
model.getThermalZones.each do |zone|
|
255
280
|
air_terminal = zone.airLoopHVACTerminal
|
256
281
|
if air_terminal.is_initialized
|
@@ -258,17 +283,24 @@ module Outpatient
|
|
258
283
|
if air_terminal.to_AirTerminalSingleDuctVAVReheat.is_initialized
|
259
284
|
air_terminal = air_terminal.to_AirTerminalSingleDuctVAVReheat.get
|
260
285
|
vav_name = air_terminal.name.get
|
286
|
+
zone_oa_per_area = thermal_zone_outdoor_airflow_rate_per_area(zone)
|
287
|
+
case template
|
261
288
|
# High OA zones
|
262
289
|
# Determine whether or not to use the high minimum guess.
|
263
290
|
# Cutoff was determined by correlating apparent minimum guesses
|
264
291
|
# to OA rates in prototypes since not well documented in papers.
|
265
|
-
zone_oa_per_area = thermal_zone_outdoor_airflow_rate_per_area(zone)
|
266
|
-
case template
|
267
292
|
when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004'
|
268
293
|
air_terminal.setConstantMinimumAirFlowFraction(1.0) if vav_name.include?('Floor 1')
|
294
|
+
# Minimum damper position for Outpatient prototype
|
295
|
+
# Based on AIA 2001 ventilation requirements
|
296
|
+
# See Section 5.2.2.16 in Thornton et al. 2010
|
297
|
+
# https://www.energycodes.gov/sites/default/files/documents/BECP_Energy_Cost_Savings_STD2010_May2011_v00.pdf
|
269
298
|
when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
|
270
|
-
|
271
|
-
|
299
|
+
zone_name = zone.name.to_s.upcase.gsub(' ZN', '').strip
|
300
|
+
if init_mdp.key? zone_name
|
301
|
+
air_terminal.setConstantMinimumAirFlowFraction(init_mdp[zone_name])
|
302
|
+
end
|
303
|
+
end
|
272
304
|
end
|
273
305
|
end
|
274
306
|
end
|
@@ -368,4 +400,74 @@ module Outpatient
|
|
368
400
|
|
369
401
|
return true
|
370
402
|
end
|
403
|
+
|
404
|
+
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
405
|
+
# Minimum damper position
|
406
|
+
# Based on AIA 2001 ventilation requirements
|
407
|
+
# See Section 5.2.2.16 in Thornton et al. 2010
|
408
|
+
# https://www.energycodes.gov/sites/default/files/documents/BECP_Energy_Cost_Savings_STD2010_May2011_v00.pdf
|
409
|
+
if template == '90.1-2004' || template == '90.1-2007'
|
410
|
+
min_damper_position = 0.3
|
411
|
+
init_mdp = {
|
412
|
+
'FLOOR 2 CONFERENCE TOILET' => 1.0,
|
413
|
+
'FLOOR 2 EXAM 1' => 1.0,
|
414
|
+
'FLOOR 2 EXAM 2' => 1.0,
|
415
|
+
'FLOOR 2 EXAM 3' => 1.0,
|
416
|
+
'FLOOR 2 EXAM 4' => 1.0,
|
417
|
+
'FLOOR 2 EXAM 5' => 1.0,
|
418
|
+
'FLOOR 2 EXAM 6' => 1.0,
|
419
|
+
'FLOOR 2 EXAM 7' => 1.0,
|
420
|
+
'FLOOR 2 EXAM 8' => 1.0,
|
421
|
+
'FLOOR 2 EXAM 9' => 1.0,
|
422
|
+
'FLOOR 2 RECEPTION TOILET' => 1.0,
|
423
|
+
'FLOOR 2 WORK TOILET' => 1.0,
|
424
|
+
'FLOOR 3 LOUNGE TOILET' => 1.0,
|
425
|
+
'FLOOR 3 OFFICE TOILET' => 1.0,
|
426
|
+
'FLOOR 3 PHYSICAL THERAPY 1' => 1.0,
|
427
|
+
'FLOOR 3 PHYSICAL THERAPY 2' => 1.0,
|
428
|
+
'FLOOR 3 PHYSICAL THERAPY TOILET' => 1.0,
|
429
|
+
'FLOOR 3 STORAGE 1' => 1.0,
|
430
|
+
'FLOOR 3 TREATMENT' => 1.0
|
431
|
+
}
|
432
|
+
elsif template == '90.1-2010' || template == '90.1-2013'
|
433
|
+
min_damper_position = 0.2
|
434
|
+
init_mdp = {
|
435
|
+
'FLOOR 2 CONFERENCE TOILET' => 1.0,
|
436
|
+
'FLOOR 2 EXAM 1' => 0.51,
|
437
|
+
'FLOOR 2 EXAM 2' => 1.0,
|
438
|
+
'FLOOR 2 EXAM 3' => 1.0,
|
439
|
+
'FLOOR 2 EXAM 4' => 0.64,
|
440
|
+
'FLOOR 2 EXAM 5' => 0.69,
|
441
|
+
'FLOOR 2 EXAM 6' => 0.94,
|
442
|
+
'FLOOR 2 EXAM 7' => 1.0,
|
443
|
+
'FLOOR 2 EXAM 8' => 0.93,
|
444
|
+
'FLOOR 2 EXAM 9' => 1.0,
|
445
|
+
'FLOOR 2 RECEPTION TOILET' => 1.0,
|
446
|
+
'FLOOR 2 WORK TOILET' => 1.0,
|
447
|
+
'FLOOR 3 LOUNGE TOILET' => 1.0,
|
448
|
+
'FLOOR 3 OFFICE TOILET' => 1.0,
|
449
|
+
'FLOOR 3 PHYSICAL THERAPY 1' => 0.69,
|
450
|
+
'FLOOR 3 PHYSICAL THERAPY 2' => 0.83,
|
451
|
+
'FLOOR 3 PHYSICAL THERAPY TOILET' => 1.0,
|
452
|
+
'FLOOR 3 STORAGE 1' => 1.0,
|
453
|
+
'FLOOR 3 TREATMENT' => 0.81
|
454
|
+
}
|
455
|
+
end
|
456
|
+
|
457
|
+
if !init_mdp.nil?
|
458
|
+
airlp = air_terminal_single_duct_vav_reheat.airLoopHVAC.get
|
459
|
+
init_mdp.each do |zn_name, mdp|
|
460
|
+
if air_terminal_single_duct_vav_reheat.name.to_s.upcase.strip.include? zn_name.to_s.strip
|
461
|
+
min_damper_position = mdp
|
462
|
+
end
|
463
|
+
end
|
464
|
+
else
|
465
|
+
min_damper_position = 0.3
|
466
|
+
end
|
467
|
+
|
468
|
+
# Set the minimum flow fraction
|
469
|
+
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
470
|
+
|
471
|
+
return true
|
472
|
+
end
|
371
473
|
end
|
@@ -68,4 +68,13 @@ module PrimarySchool
|
|
68
68
|
|
69
69
|
return true
|
70
70
|
end
|
71
|
+
|
72
|
+
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
73
|
+
min_damper_position = template == '90.1-2010' || template == '90.1-2013' ? 0.2 : 0.3
|
74
|
+
|
75
|
+
# Set the minimum flow fraction
|
76
|
+
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
77
|
+
|
78
|
+
return true
|
79
|
+
end
|
71
80
|
end
|
@@ -95,4 +95,13 @@ module SecondarySchool
|
|
95
95
|
|
96
96
|
return true
|
97
97
|
end
|
98
|
+
|
99
|
+
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
100
|
+
min_damper_position = template == '90.1-2010' || template == '90.1-2013' ? 0.2 : 0.3
|
101
|
+
|
102
|
+
# Set the minimum flow fraction
|
103
|
+
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
104
|
+
|
105
|
+
return true
|
106
|
+
end
|
98
107
|
end
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb
CHANGED
@@ -10,14 +10,6 @@ class Standard
|
|
10
10
|
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
11
11
|
min_damper_position = 0.3
|
12
12
|
|
13
|
-
# High OA zones
|
14
|
-
# Determine whether or not to use the high minimum guess.
|
15
|
-
# Cutoff was determined by correlating apparent minimum guesses
|
16
|
-
# to OA rates in prototypes since not well documented in papers.
|
17
|
-
if zone_oa_per_area > 0.001 # 0.001 m^3/s*m^2 = .196 cfm/ft2
|
18
|
-
min_damper_position = 0.7
|
19
|
-
end
|
20
|
-
|
21
13
|
# Set the minimum flow fraction
|
22
14
|
air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position)
|
23
15
|
|
@@ -9,7 +9,7 @@ class Standard
|
|
9
9
|
# @param type [String] the type of two speed DX coil to reference the correct curve set
|
10
10
|
def create_coil_cooling_dx_two_speed(model,
|
11
11
|
air_loop_node: nil,
|
12
|
-
name:
|
12
|
+
name: '2spd DX Clg Coil',
|
13
13
|
schedule: nil,
|
14
14
|
type: nil)
|
15
15
|
|
@@ -28,7 +28,7 @@ class Standard
|
|
28
28
|
elsif schedule.class == String
|
29
29
|
coil_availability_schedule = model_add_schedule(model, schedule)
|
30
30
|
|
31
|
-
if coil_availability_schedule.nil? && schedule ==
|
31
|
+
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
32
32
|
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
33
33
|
elsif coil_availability_schedule.nil?
|
34
34
|
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb
CHANGED
@@ -85,10 +85,8 @@ class Standard
|
|
85
85
|
def_eir_f_of_temp = create_curve_biquadratic(model, defrost_eir_coeffs, 'DefrostEIR', -100, 100, -100, 100, nil, nil)
|
86
86
|
elsif type == 'Residential Minisplit HP'
|
87
87
|
# Performance curves
|
88
|
-
# These coefficients are in IP UNITS
|
89
|
-
heat_cap_ft_coeffs_ip = [1.0029281211538501, -0.010386676170938, 0, 0.025961538461538501, 0, 0]
|
90
|
-
heat_cap_ft_coeffs_si = convert_curve_biquadratic(heat_cap_ft_coeffs_ip)
|
91
88
|
# These coefficients are in SI UNITS
|
89
|
+
heat_cap_ft_coeffs_si = [1.14715889038462, -0.010386676170938, 0, 0.00865384615384615, 0, 0]
|
92
90
|
heat_eir_ft_coeffs_si = [0.9999941697687026, 0.004684593830254383, 5.901286675833333e-05, -0.0028624467783091973, 1.3041120194135802e-05, -0.00016172918478765433]
|
93
91
|
heat_cap_fflow_coeffs = [1, 0, 0]
|
94
92
|
heat_eir_fflow_coeffs = [1, 0, 0]
|
@@ -102,7 +100,7 @@ class Standard
|
|
102
100
|
htg_part_load_fraction = create_curve_quadratic(model, heat_plf_fplr_coeffs, 'Heat-PLF-fPLR', 0, 1, 0.6, 1, is_dimensionless = true)
|
103
101
|
|
104
102
|
# Heating defrost curve for reverse cycle
|
105
|
-
def_eir_f_of_temp = create_curve_biquadratic(model, defrost_eir_coeffs, '
|
103
|
+
def_eir_f_of_temp = create_curve_biquadratic(model, defrost_eir_coeffs, 'Defrost EIR', -100, 100, -100, 100, nil, nil)
|
106
104
|
else # default curve set
|
107
105
|
htg_cap_f_of_temp = OpenStudio::Model::CurveCubic.new(model)
|
108
106
|
htg_cap_f_of_temp.setName("#{htg_coil.name} Htg Cap Func of Temp Curve")
|
@@ -1,6 +1,13 @@
|
|
1
1
|
class Standard
|
2
2
|
# @!group HeatExchangerAirToAirSensibleAndLatent
|
3
3
|
|
4
|
+
# Default fan efficiency assumption for the prm added fan power
|
5
|
+
def heat_exchanger_air_to_air_sensible_and_latent_prototype_default_fan_efficiency
|
6
|
+
default_fan_efficiency = 0.5
|
7
|
+
return default_fan_efficiency
|
8
|
+
end
|
9
|
+
|
10
|
+
# Sets the motor power to account for the extra fan energy from the increase in fan total static pressure
|
4
11
|
def heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_nominal_electric_power(heat_exchanger_air_to_air_sensible_and_latent)
|
5
12
|
# Get the nominal supply air flow rate
|
6
13
|
supply_air_flow_m3_per_s = nil
|
@@ -43,14 +50,18 @@ class Standard
|
|
43
50
|
# Convert the flow rate to cfm
|
44
51
|
supply_air_flow_cfm = OpenStudio.convert(supply_air_flow_m3_per_s, 'm^3/s', 'cfm').get
|
45
52
|
|
46
|
-
# Calculate the motor power for the
|
53
|
+
# Calculate the motor power for the rotary wheel per:
|
47
54
|
# Power (W) = (Nominal Supply Air Flow Rate (CFM) * 0.3386) + 49.5
|
48
55
|
# power = (supply_air_flow_cfm * 0.3386) + 49.5
|
49
56
|
|
50
|
-
# Calculate the motor power for the
|
57
|
+
# Calculate the motor power for the rotary wheel per:
|
51
58
|
# Power (W) = (Minimum Outdoor Air Flow Rate (m^3/s) * 212.5 / 0.5) + (Minimum Outdoor Air Flow Rate (m^3/s) * 162.5 / 0.5) + 50
|
52
|
-
power
|
53
|
-
|
59
|
+
# This power is largely the added fan power from the extra static pressure drop from the enthalpy wheel.
|
60
|
+
# It is included as motor power so it is only added when the enthalpy wheel is active, rather than a universal increase to the fan total static pressure.
|
61
|
+
# From p.96 of https://www.pnnl.gov/main/publications/external/technical_reports/PNNL-20405.pdf
|
62
|
+
default_fan_efficiency = heat_exchanger_air_to_air_sensible_and_latent_prototype_default_fan_efficiency
|
63
|
+
power = (supply_air_flow_m3_per_s * 212.5 / default_fan_efficiency) + (supply_air_flow_m3_per_s * 0.9 * 162.5 / default_fan_efficiency) + 50
|
64
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.HeatExchangerAirToAirSensibleAndLatent', "For #{heat_exchanger_air_to_air_sensible_and_latent.name}, ERV power is calculated to be #{power.round} W, based on a min OA flow of #{supply_air_flow_cfm.round} cfm. This power represents mostly the added fan energy from the extra static pressure, and is active only when the ERV is operating.")
|
54
65
|
|
55
66
|
# Set the power for the HX
|
56
67
|
heat_exchanger_air_to_air_sensible_and_latent.setNominalElectricPower(power)
|
@@ -225,7 +225,7 @@ class Standard
|
|
225
225
|
name_prefix = 'Drive Through Windows'
|
226
226
|
|
227
227
|
# create ext light def
|
228
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W/drive through window of lighting for #{multiplier}
|
228
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W/drive through window of lighting for #{multiplier} drive through windows.")
|
229
229
|
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
230
230
|
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
231
231
|
ext_lights_def.setDesignLevel(power)
|
@@ -259,7 +259,7 @@ class Standard
|
|
259
259
|
name_prefix = 'Base Site Allowance'
|
260
260
|
|
261
261
|
# create ext light def
|
262
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W of non landscape tradable exterior lighting.
|
262
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W of non landscape tradable exterior lighting. Will follow occupancy setback reduction.")
|
263
263
|
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
264
264
|
ext_lights_def.setName("#{name_prefix} Def (W)")
|
265
265
|
ext_lights_def.setDesignLevel(power)
|
@@ -572,7 +572,7 @@ Standard.class_eval do
|
|
572
572
|
|
573
573
|
# Loop through thermal zones and model_run(model) thermal_zone.add_exhaust
|
574
574
|
# If kitchen_makeup is "None" then exhaust will be modeled in every kitchen zone without makeup air
|
575
|
-
# If kitchen_makeup is "Adjacent" then exhaust will be modeled in every kitchen zone. Makeup air will be provided when there as an adjacent dining,cafe, or cafeteria zone of the same
|
575
|
+
# If kitchen_makeup is "Adjacent" then exhaust will be modeled in every kitchen zone. Makeup air will be provided when there as an adjacent dining,cafe, or cafeteria zone of the same building type.
|
576
576
|
# If kitchen_makeup is "Largest Zone" then exhaust will only be modeled in the largest kitchen zone, but the flow rate will be based on the kitchen area for all zones. Makeup air will be modeled in the largest dining,cafe, or cafeteria zone of the same building type.
|
577
577
|
#
|
578
578
|
# @param kitchen_makeup [String] Valid choices are
|
@@ -694,7 +694,7 @@ Standard.class_eval do
|
|
694
694
|
|
695
695
|
end
|
696
696
|
|
697
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Largest #{makeup_target} is #{largest_target_zone.name} which will provide
|
697
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Largest #{makeup_target} is #{largest_target_zone.name} which will provide exhaust for #{target_effective_floor_area} m^2")
|
698
698
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Largest #{makeup_source} is #{largest_source_zone.name} which will provide makeup air for #{makeup_target}")
|
699
699
|
|
700
700
|
# add in extra arguments for makeup air
|
@@ -927,7 +927,7 @@ Standard.class_eval do
|
|
927
927
|
nondimming_ext_lts.setControlOption('AstronomicalClock')
|
928
928
|
end
|
929
929
|
|
930
|
-
# Fuel Equipment
|
930
|
+
# Fuel Equipment being used to model external elevators
|
931
931
|
unless prototype_input['exterior_fuel_equipment1_power'].nil?
|
932
932
|
fuel_ext_power = prototype_input['exterior_fuel_equipment1_power']
|
933
933
|
fuel_ext_sch_name = prototype_input['exterior_fuel_equipment1_schedule']
|
@@ -937,6 +937,7 @@ Standard.class_eval do
|
|
937
937
|
fuel_ext_def.setDesignLevel(fuel_ext_power)
|
938
938
|
fuel_ext_sch = model_add_schedule(model, fuel_ext_sch_name)
|
939
939
|
fuel_ext_lts = OpenStudio::Model::ExteriorFuelEquipment.new(fuel_ext_def, fuel_ext_sch)
|
940
|
+
fuel_ext_lts.setFuelType('Electricity')
|
940
941
|
fuel_ext_lts.setName(fuel_ext_name.to_s)
|
941
942
|
end
|
942
943
|
|
@@ -949,6 +950,7 @@ Standard.class_eval do
|
|
949
950
|
fuel_ext_def.setDesignLevel(fuel_ext_power)
|
950
951
|
fuel_ext_sch = model_add_schedule(model, fuel_ext_sch_name)
|
951
952
|
fuel_ext_lts = OpenStudio::Model::ExteriorFuelEquipment.new(fuel_ext_def, fuel_ext_sch)
|
953
|
+
fuel_ext_lts.setFuelType('Electricity')
|
952
954
|
fuel_ext_lts.setName(fuel_ext_name.to_s)
|
953
955
|
end
|
954
956
|
|
@@ -1780,7 +1782,45 @@ Standard.class_eval do
|
|
1780
1782
|
|
1781
1783
|
# Check each airloop
|
1782
1784
|
model.getAirLoopHVACs.sort.each do |air_loop|
|
1783
|
-
|
1785
|
+
economizer_required = false
|
1786
|
+
|
1787
|
+
if air_loop_hvac_humidifier_count(air_loop) > 0
|
1788
|
+
# If airloop includes it is assumed that exception c to 90.1-2004 Section 6.5.1 applies
|
1789
|
+
# This exception exist through 90.1-2013, see Section 6.5.1.3
|
1790
|
+
economizer_required = false
|
1791
|
+
elsif @instvarbuilding_type == 'LargeOffice' &&
|
1792
|
+
air_loop.name.to_s.downcase.include?('datacenter') &&
|
1793
|
+
air_loop.name.to_s.downcase.include?('basement') &&
|
1794
|
+
!(template == '90.1-2004' || template == '90.1-2007')
|
1795
|
+
# System serving the data center in the basement of the large
|
1796
|
+
# office is assumed to be always large enough to require an
|
1797
|
+
# economizer when economizer requirement is based on equipment
|
1798
|
+
# size.
|
1799
|
+
#
|
1800
|
+
# No economizer modeled for 90.1-2004 and 2007:
|
1801
|
+
# Specific economizer requirements for computer rooms were
|
1802
|
+
# introduced in 90.1-2010. Before that, although not explicitly
|
1803
|
+
# specified, economizer requirements were aimed at comfort
|
1804
|
+
# cooling, not computer room cooling (as per input from the MSC).
|
1805
|
+
|
1806
|
+
# Get the size threshold requirement
|
1807
|
+
search_criteria = {
|
1808
|
+
'template' => template,
|
1809
|
+
'climate_zone' => climate_zone,
|
1810
|
+
'data_center' => true
|
1811
|
+
}
|
1812
|
+
econ_limits = model_find_object(standards_data['economizers'], search_criteria)
|
1813
|
+
minimum_capacity_btu_per_hr = econ_limits['capacity_limit']
|
1814
|
+
economizer_required = minimum_capacity_btu_per_hr.nil? ? false : true
|
1815
|
+
elsif @instvarbuilding_type == 'LargeOffice' && air_loop_hvac_include_wshp?(air_loop)
|
1816
|
+
# WSHP serving the IT closets are assumed to always be too
|
1817
|
+
# small to require an economizer
|
1818
|
+
economizer_required = false
|
1819
|
+
elsif air_loop_hvac_economizer_required?(air_loop, climate_zone)
|
1820
|
+
economizer_required = true
|
1821
|
+
end
|
1822
|
+
|
1823
|
+
if economizer_required
|
1784
1824
|
# If an economizer is required, determine the economizer type
|
1785
1825
|
# in the prototype buildings, which depends on climate zone.
|
1786
1826
|
economizer_type = model_economizer_type(model, climate_zone)
|
@@ -1801,7 +1841,7 @@ Standard.class_eval do
|
|
1801
1841
|
# Check that the economizer type set by the prototypes
|
1802
1842
|
# is not prohibited by code. If it is, change to no economizer.
|
1803
1843
|
unless air_loop_hvac_economizer_type_allowable?(air_loop, climate_zone)
|
1804
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.prototype.Model', "#{air_loop.name} is required to have an economizer, but the type chosen, #{economizer_type} is prohibited by code for
|
1844
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.prototype.Model', "#{air_loop.name} is required to have an economizer, but the type chosen, #{economizer_type} is prohibited by code for climate zone #{climate_zone}. Economizer type will be switched to No Economizer.")
|
1805
1845
|
oa_control.setEconomizerControlType('NoEconomizer')
|
1806
1846
|
end
|
1807
1847
|
|
@@ -259,7 +259,7 @@ class Standard
|
|
259
259
|
water_heater.setOffCycleLossCoefficienttoAmbientTemperature(6.0)
|
260
260
|
water_heater.setOnCycleLossCoefficienttoAmbientTemperature(6.0)
|
261
261
|
elsif water_heater_fuel == 'HeatPump'
|
262
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Model.Model', 'Simple
|
262
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Model.Model', 'Simple workaround to represent heat pump water heaters without incurring significant runtime penalty associated with using correct objects.')
|
263
263
|
# Make a part-load efficiency modifier curve with a value above 1, which
|
264
264
|
# is multiplied by the nominal efficiency of 100% to represent
|
265
265
|
# the COP of a HPWH.
|
@@ -23,7 +23,11 @@ class Standard
|
|
23
23
|
sizing_system.setPrecoolDesignHumidityRatio(0.008)
|
24
24
|
sizing_system.setCentralCoolingDesignSupplyAirHumidityRatio(0.0085)
|
25
25
|
sizing_system.setCentralHeatingDesignSupplyAirHumidityRatio(0.0080)
|
26
|
-
|
26
|
+
if air_loop_hvac.model.version < OpenStudio::VersionString.new('2.7.0')
|
27
|
+
sizing_system.setMinimumSystemAirFlowRatio(min_sys_airflow_ratio)
|
28
|
+
else
|
29
|
+
sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(min_sys_airflow_ratio)
|
30
|
+
end
|
27
31
|
sizing_system.setSizingOption(sizing_option)
|
28
32
|
sizing_system.setAllOutdoorAirinCooling(false)
|
29
33
|
sizing_system.setAllOutdoorAirinHeating(false)
|
@@ -33,4 +37,19 @@ class Standard
|
|
33
37
|
|
34
38
|
return sizing_system
|
35
39
|
end
|
36
|
-
|
40
|
+
|
41
|
+
def model_system_outdoor_air_sizing_vrp_method(air_loop_hvac)
|
42
|
+
sizing_system = air_loop_hvac.sizingSystem
|
43
|
+
# sizing_system.setSystemOutdoorAirMethod("VentilationRateProcedure")
|
44
|
+
# Set the minimum zone ventilation efficiency to be 0.6
|
45
|
+
air_loop_hvac.thermalZones.sort.each do |zone|
|
46
|
+
sizing_zone = zone.sizingZone
|
47
|
+
# It is not yet possible to adjust the minimum zone ventilation efficiency
|
48
|
+
# @todo, update this section when OS allows to adjust minimum zone ventilation efficiency
|
49
|
+
# In EnergyPlus this is done through the DesignSpecification:ZoneAirDistribution object
|
50
|
+
# which is then assigned to a Sizing:Zone object
|
51
|
+
end
|
52
|
+
|
53
|
+
return true
|
54
|
+
end
|
55
|
+
end
|